RMRK is retiring.
Registration is disabled. The site will remain online, but eventually become a read-only archive. More information.

RMRK.net has nothing to do with Blockchains, Cryptocurrency or NFTs. We have been around since the early 2000s, but there is a new group using the RMRK name that deals with those things. We have nothing to do with them.
NFTs are a scam, and if somebody is trying to persuade you to buy or invest in crypto/blockchain/NFT content, please turn them down and save your money. See this video for more information.
XAS issue

0 Members and 1 Guest are viewing this topic.

***
3==D This is my bellend.
Rep:
Level 83
On my game,im using the XAS battle system,but everytime i attack or something attacks me it comes up with a error saying  Script 'XAS-Battler' Line 166: NoMethodError occured. Undefined method 'pages' for nil:NilClass
no

By Kraft

***
3==D This is my bellend.
Rep:
Level 83
From everything I've seen from scripts, you're probably using an old save file. If that's the case, press "New Game" instead of "Continue".
If that doesn't work, post the script so people can help you.
i did newgame,i'll post the script causing the problem later
no

By Kraft

***
3==D This is my bellend.
Rep:
Level 83
Here is the script that is the problem

Code: [Select]
#===============================================================================
#===============================================================================
# BATTLER
#===============================================================================
#===============================================================================



#===============================================================================
# SENSOR 
#===============================================================================
module XRXS_EnemySensor
 
 #--------------------------------------------------------------------------
 # Update Sensor
 #--------------------------------------------------------------------------
   def update_sensor
    if self.battler != nil and self.battler.is_a?(Game_Enemy)
       enemy_sensor =  XAS_BA_ENEMY::ENEMY_SENSOR[self.battler.id]
    end
    if enemy_sensor != nil 
      @sensor_range = enemy_sensor 
    else 
      @sensor_range = $game_variables[XAS_BA_ENEMY::DEFAULT_ENEMY_SENSOR_VARIABLE_ID]
    end     
    if self.battler != nil and (self.knockbacking? or
       self.battler.xas_states_stop == true or
       self.battler.xas_states_sleep == true or
       self.battler.hp == 0 or
       self.throw_on == true)
       @sensor_range = -1
    end
    distance = ($game_player.x - self.x).abs + ($game_player.y - self.y).abs
    enable   = (distance <= @sensor_range)
    key = [$game_map.map_id, self.id, XAS_BA::SENSOR_SELF_SWITCH]
    last_enable = $game_self_switches[key]
    last_enable = false if last_enable == nil
    if enable != last_enable
      $game_self_switches[key] = enable
      $game_map.need_refresh = true
    end
  end
end

#===============================================================================
# Game_Event
#===============================================================================
class Game_Event < Game_Character
  include XRXS_EnemySensor
end

#===============================================================================
# Game_Player
#===============================================================================
class Game_Player < Game_Character
  include XRXS_BattlerAttachment
 
 #--------------------------------------------------------------------------
 # Battler
 #--------------------------------------------------------------------------
  def battler
    return $game_party.actors[0]
  end
 
 #--------------------------------------------------------------------------
 # Defeat Process
 #--------------------------------------------------------------------------
  def defeat_process
    super 
    if XAS_BA::AUTOGAMEOVER == true
      $scene = Scene_Gameover.new rescue nil if self.collapse_done   
    else   
    $game_switches[XAS_BA::GAMEOVER_SWITCH_ID] = true
    $game_map.refresh
    end
  end
 
 #--------------------------------------------------------------------------
 # Update
 #--------------------------------------------------------------------------
  alias xrxs64c_update update
  def update
    xrxs64c_update
    self.battler.remove_states_auto if self.battler != nil
    if self.collapse_done
      self.collapse_done        = false
      @xrxs64c_defeat_done      = false
    end
  end
end

#===============================================================================
# Game Event
#===============================================================================
class Game_Event < Game_Character
  include XRXS_BattlerAttachment

 #--------------------------------------------------------------------------
 # Battler
 #--------------------------------------------------------------------------
  def battler
    return @battler
  end
 
 #--------------------------------------------------------------------------
 # Refresh
 #--------------------------------------------------------------------------
  alias xrxs64c_refresh refresh
  def refresh
    xrxs64c_refresh
    self.battler_recheck
  end
 
 #--------------------------------------------------------------------------
 # Battler Recheck
 #--------------------------------------------------------------------------
  def battler_recheck
    return if @battler != nil
    if @page == nil
      return
    end
    @enemy_id = 0
    for page in @event.pages.reverse
      condition = page.condition
      if condition.variable_valid and
         condition.variable_id == XAS_BA::ENEMY_ID_VARIABLE_ID and
       (!condition.switch1_valid or $game_switches[condition.switch1_id]) and
       (!condition.switch2_valid or $game_switches[condition.switch2_id])
        @enemy_id = condition.variable_value
        break
      end
    end
    if @enemy_id == 0
      return
    end
    troop_id     = -1
    member_index = -1
    for troop in $data_troops
      next if troop == nil
      for enemy in troop.members
        if enemy.enemy_id == @enemy_id
          troop_id     = $data_troops.index(troop)
          member_index = troop.members.index(enemy)
          break
        end
      end
    end
    if troop_id != -1 and member_index != -1
       @battler = Game_Enemy.new(troop_id, member_index)
    end
  end
 
 #--------------------------------------------------------------------------
 # Enemy Id
 #--------------------------------------------------------------------------
  def enemy_id
    self.battler
    return @enemy_id
  end
 
 #--------------------------------------------------------------------------
 # Treasure Dispose
 #--------------------------------------------------------------------------
 def treasure_dispose
  if self.battler == nil and self.is_a?(Game_Event)
   for pg in @event.pages
     if pg.condition.variable_id == 10000 and
        pg.condition.variable_value > 0
        pg.condition.variable_value -= 1
        if pg.condition.variable_value < 100
           self.zoom_x -= 0.01 if self.zoom_x > 0.01
        end
     elsif pg.condition.variable_id == 10000 and
           pg.condition.variable_value == 0
           $game_map.remove_token(self)
     end           
    end
  end
 end 
 

 #--------------------------------------------------------------------------
 # Update
 #--------------------------------------------------------------------------
  alias xrxs64c_update update
  def update
    if @collapse_wait_count.to_i > 0
      @collapse_wait_count -= 1
      if @collapse_wait_count == 0
        @collapse_wait_count = nil
        $game_map.remove_token(self)   
      end
      return
    end   
    treasure_dispose
    update_sensor
    xrxs64c_update   
    if self.battler != nil
      self.battler.remove_states_auto
    end   
    if self.collapse_duration.to_i > 0
      @through = true
    end   
    if self.collapse_done
      @opacity = 0
      @collapse_wait_count = 32
      return
    end   
 end 

 #--------------------------------------------------------------------------
 # Hit Reaction ON
 #--------------------------------------------------------------------------
  def hit_reaction_on
      self.hit_reaction = true
  end 
   
 #--------------------------------------------------------------------------
 # Hit Reaction Off
 #--------------------------------------------------------------------------
  def hit_reaction_off
      self.hit_reaction = false
  end 
   
 #--------------------------------------------------------------------------
 # Hp Hit Reaction
 #--------------------------------------------------------------------------
  def hp_hit_reaction(on)
      lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100
      if self.battler.hp > lowhp   
      self.hit_reaction = on
      else
      if on == true
      self.hit_reaction = false
      else
      self.hit_reaction = true
      end
      end 
  end       
 
 #--------------------------------------------------------------------------
 # Hero Level Hit Reaction
 #--------------------------------------------------------------------------
  def hero_level_hit_reaction(level,on)
      actor = $game_party.actors[0]
      if  actor.level >= level   
      self.hit_reaction = on
      else
      if on == true
      self.hit_reaction = false
      else
      self.hit_reaction = true
      end
      end 
  end             
 
 #--------------------------------------------------------------------------
 # Shield Enable!
 #--------------------------------------------------------------------------
  def shield_enable!
    @shield_disable = nil
  end
 
 #--------------------------------------------------------------------------
 # Shield Disable!
 #--------------------------------------------------------------------------
  def shield_disable!
    @shield_disable = true
  end 
 
 #--------------------------------------------------------------------------
 # LowHP Shield
 #--------------------------------------------------------------------------
  def lowhp_shield(on)
    lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100
      if on == true
      @shield_disable = true
      elsif on == false
      @shield_disable = nil
      end
  end     
 
 #--------------------------------------------------------------------------
 # Hero HP Shield
 #--------------------------------------------------------------------------
  def hp_shield(on)
    lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100
    if self.battler.hp > lowhp
      if on == true
      @shield_disable = nil
      else
      @shield_disable = true
      end
    else
      if on == true
      @shield_disable = true
      else
      @shield_disable = nil
      end           
    end
  end   
 
 #--------------------------------------------------------------------------
 # Hero Level Shield
 #--------------------------------------------------------------------------
  def hero_level_shield(level,on)
    actor = $game_party.actors[0]
    if  actor.level >= level       
      if on == true
      @shield_disable = nil
      else
      @shield_disable = true
      end         
    else
      if on == true
      @shield_disable = true
      else
      @shield_disable = nil
      end       
    end
  end   
 
 #--------------------------------------------------------------------------
 # Shield Directions
 #--------------------------------------------------------------------------
  def shield_directions
    set = @shield_disable ? [] : XAS_BA_ENEMY::SHILED_DIRECTIONS[self.enemy_id]
    set = [] if set == nil
    return set
  end
 
 #--------------------------------------------------------------------------
 # Shield Actions
 #--------------------------------------------------------------------------
  def shield_actions
    set = XAS_BA_ENEMY::SHILED_ACTIONS[self.enemy_id]
    set = [] if set == nil
    return set
  end
 
 #--------------------------------------------------------------------------
 # Knock Back Disable
 #--------------------------------------------------------------------------
  def knock_back_disable
    return XAS_BA_ENEMY::KNOCK_BACK_DISABLES.include?(self.enemy_id)
  end
 
 #--------------------------------------------------------------------------
 # Body Size
 #--------------------------------------------------------------------------
  def body_size
    return XAS_BA_ENEMY::BODY_SQUARE[self.enemy_id].to_i
  end
 
 #--------------------------------------------------------------------------
 # Defeat Process
 #--------------------------------------------------------------------------
  def defeat_process
    super
    enemy_defeat_process(self.battler)
    enemy_defeat_animation = XAS_BA_ENEMY::DEF_ANI[enemy_id]
    if XAS_BA_ENEMY::DEF_ANI[enemy_id] != nil and not
       terrain_tag == XAS::FALL_TERRAIN
       self.animation_id = enemy_defeat_animation
    end
  end
end


#===============================================================================
# Game Event
#===============================================================================
class Game_Event < Game_Character
  attr_reader   :collision_attack
 
 #--------------------------------------------------------------------------
 # Img Act Exist?
 #--------------------------------------------------------------------------
  def img_act_exist?
  RPG::Cache.character(@page.graphic.character_name + "_Act" , @page.graphic.character_hue) rescue return false
  end

 #--------------------------------------------------------------------------
 # Attack ON
 #--------------------------------------------------------------------------
  def attack_on
    if self.battler.is_a?(Game_Enemy) and
       (self.battler.states.include?(XAS::MUTE_ID) or
        self.battler.states.include?(XAS::SEALATTACK_ID))
        @collision_attack = false
        self.battler.damage = XAS::SEALED_TEXT
        self.battler.damage_pop = true
        return false     
    end   
    @collision_attack = true
    self.animation_id = self.battler.animation1_id
    if img_act_exist?   
    @character_name = @page.graphic.character_name + "_Act"
    end
  end
 
 #--------------------------------------------------------------------------
 # Attack Off
 #--------------------------------------------------------------------------
  def attack_off
    @collision_attack = false   
    @character_name = @page.graphic.character_name
  end
end


#===============================================================================
# Game_Player
#===============================================================================
class Game_Player < Game_Character
 
 #--------------------------------------------------------------------------
 # Check Event Trigger Touch
 #--------------------------------------------------------------------------
  alias xrxs64c_check_event_trigger_touch check_event_trigger_touch
  def check_event_trigger_touch(x, y)
    xrxs64c_check_event_trigger_touch(x, y)
    if $game_system.map_interpreter.running?
      return
    end
    for event in $game_map.events.values
      next unless event.collision_attack
      unless [1,2].include?(event.trigger)
        if event.battler != nil and event.x == x and event.y == y
          $game_player.attack_effect(event)
        end
      end
    end
  end
end

#===============================================================================
# Game_Event
#===============================================================================
class Game_Event < Game_Character
 
 #--------------------------------------------------------------------------
 # Check Event Trigger Touch
 #--------------------------------------------------------------------------
  alias xrxs64c_check_event_trigger_touch check_event_trigger_touch
  def check_event_trigger_touch(x, y)
    xrxs64c_check_event_trigger_touch(x, y)
    if $game_system.map_interpreter.running?
      return
    end
    return unless self.collision_attack
    if self.battler != nil and x == $game_player.x and y == $game_player.y
      $game_player.attack_effect(self)
    end
  end
end

#===============================================================================
# XAS_BA_BATTLEEVENT_NONPREEMPT
#===============================================================================
module XAS_BA_BATTLEEVENT_NONPREEMPT
 
 #--------------------------------------------------------------------------
 # Update
 #--------------------------------------------------------------------------
  def update
    return if self.battler != nil and $game_system.map_interpreter.running?
    super
  end 
end

#===============================================================================
# Game_Event
#===============================================================================
class Game_Event < Game_Character
  include XAS_BA_BATTLEEVENT_NONPREEMPT
end


#===============================================================================
# Sprite_Character
#===============================================================================
class Sprite_Character < RPG::Sprite
 
 #--------------------------------------------------------------------------
 # Update
 #--------------------------------------------------------------------------
  alias xrxs64c_update update
  def update
    if @battler == nil
       @battler = @character.battler
    end
    xrxs64c_update
    if @battler == nil or @_collapse_duration > 0 or
       @character.collapse_done
      return
    end
    if @battler.hiblink_duration.is_a?(Numeric)     
      if XAS_BA::BLINK_ON == true
      @character.opacity = (@character.opacity + 70) % 190 + 40
      end
      if XAS_ABS_SETUP::BATTLER_SHAKE_EFFECT == true and @character.knockbacking?
         self.x = @character.screen_x + rand(5)         
      end       
      @battler.hiblink_duration -= 1
      if @battler.hiblink_duration <= 0
        @battler.hiblink_duration = nil
        @character.opacity = 255
      end     
    end
  end
end


#===============================================================================
# Game_Character
#===============================================================================
class Game_Character
 
 #--------------------------------------------------------------------------
 # Blow
 #--------------------------------------------------------------------------
 def blow(d, power = 1)
    @knock_back_prespeed = @move_speed if @knock_back_prespeed == nil     
    if self.knock_back_disable and (self.battler.xas_states_sleep == true or
       self.battler.xas_states_stop == true)
       @move_speed = XAS_BA::KNOCK_BACK_SPEED
    end   
    return if self.knock_back_disable
    power.times do
      if passable?(self.x, self.y, d)
        @x += ([3,6,9].include?(d) ? 1 : [1,4,7].include?(d) ? -1 : 0)
        @y += ([1,2,3].include?(d) ? 1 : [7,8,9].include?(d) ? -1 : 0)
      end
    end
    if self.battler.is_a?(Game_Enemy)   
      enemy_knock_duration = XAS_BA_ENEMY::INVICIBLE_DURATION_ENEMY[enemy_id]
      if enemy_knock_duration != nil
        @knock_back_duration = enemy_knock_duration
      else
        @knock_back_duration = XAS_BA_ENEMY::DEFAULT_INVICIBLE_DURATION_ENEMY   
      end     
    else
       @knock_back_duration = XAS_BA::KNOCK_BACK_DURATION_HERO
    end   
    @move_speed = XAS_BA::KNOCK_BACK_SPEED
 end 
   
 #--------------------------------------------------------------------------
 # Hit Image Check
 #--------------------------------------------------------------------------
 def hit_image_check 
   if self.battler.is_a?(Game_Enemy)
      @collision_attack = false
      if img_hit_enemy_exist? and not
         self.battler.xas_states_stop == true
         @character_name = @page.graphic.character_name + "_Hit"
      end
   else
      if img_hit_actor_exist?(@actor) and not
         self.battler.xas_states_stop == true 
         @character_name = @actor.character_name + "_Hit"
      end
   end   
 end

 #--------------------------------------------------------------------------
 # Fall Effect Update
 #--------------------------------------------------------------------------
 def fall_effect_update
  unless moving? or jumping? or
    self.is_a?(Game_Player)
    if terrain_tag == XAS::FALL_TERRAIN  and
       terrain_tag != nil and
       fall_check?(@x, @y, @direction) and
       @fall_safe_time == 0 and
       self.through == false
       if @erased == false
           for event in $game_map.events.values
               self.animation_id = XAS::FALL_ANIMATION_ID
           end         
          self.erase
       end
    end     
  end
  if terrain_tag == XAS::SLIP_TERRAIN and @through == false and
     fall_check2?(@x, @y, @direction)
     unless self.is_a?(Game_Player) and
           $game_system.fly == true
     jump(0,0) unless jumping?
     @y += 1
     end
  end
 end

 #--------------------------------------------------------------------------
 # knockbacking?
 #--------------------------------------------------------------------------
 def knockbacking?
   return @knock_back_duration != nil
 end
 
 #--------------------------------------------------------------------------
 # Collapsing?
 #--------------------------------------------------------------------------
 def collapsing?
   return self.collapse_duration.to_i > 0
 end

 #--------------------------------------------------------------------------
 # Update
 #--------------------------------------------------------------------------
  alias xrxs64c_nb_update update
  def update
    @stop_count = -1 if self.knockbacking? or self.dead?
    @fall_safe_time -= 1 if @fall_safe_time > 0
    xrxs64c_nb_update
    throw_update
    fall_effect_update 
    if self.knockbacking?
       hit_image_check       
       @pattern = 0
       unless self.battler.xas_states_stop == true or
              self.battler.xas_states_sleep == true or
              self.dead?
              @knock_back_duration -= 1
       end
       if @knock_back_duration <= 0
          unless self.erased == true
            if self.battler.is_a?(Game_Enemy) 
              @character_name = @page.graphic.character_name
            else
              @character_name = @actor.character_name       
            end
          end
          @knock_back_duration = nil
          @move_speed = @knock_back_prespeed
          @knock_back_prespeed = nil
       end
       return
    end
  end
 
end
#===============================================================================
# XAS_DamageStop
#===============================================================================
module XAS_DamageStop
 
  #--------------------------------------------------------------------------
  # Actiong?
  #--------------------------------------------------------------------------
  def acting?
    return (super or self.knockbacking? or self.collapsing?)
  end
end

#===============================================================================
# Game_Player
#===============================================================================
class Game_Player < Game_Character
  include XAS_DamageStop
end

#===============================================================================
# Game_Event
#===============================================================================
class Game_Event < Game_Character
  include XAS_DamageStop
end

#===============================================================================
# module RPG
#===============================================================================
module RPG
class Sprite < ::Sprite
 
  #--------------------------------------------------------------------------
  # Dispose Animation
  #--------------------------------------------------------------------------
  def dispose_animation
    if @_animation_sprites != nil
    sprite = @_animation_sprites[0]
      if sprite != nil
      @@_reference_count[sprite.bitmap] -= 1
      end
      for sprite in @_animation_sprites
      sprite.dispose
      end
    @_animation_sprites = nil
    @_animation = nil
    end
    end
  end
end

#===============================================================================
# Game_Map
#===============================================================================
class Game_Map
 
  #--------------------------------------------------------------------------
  # Starting?
  #--------------------------------------------------------------------------
  def starting?
    if $game_system.map_interpreter.running?
      return true
    end
    for event in $game_map.events.values
      return true if event.starting
    end
    return false
  end
end

#===============================================================================
# class Interpreter
#===============================================================================
module XAS_ACTION
 
  #--------------------------------------------------------------------------
  # Xas Z Shoot Bullet
  #--------------------------------------------------------------------------
  alias xas_z_shoot_bullet shoot_bullet
  def shoot_bullet(action_id)
    bullet_token = xas_z_shoot_bullet(action_id)
    return bullet_token
  end
end

#===============================================================================
# Sprite_Battler Fix
#===============================================================================
class Sprite_Battler < RPG::Sprite
alias xas_damage_update update

 #--------------------------------------------------------------------------
 # Update
 #--------------------------------------------------------------------------
   def update
    super
    if @battler_visible
       if @battler.damage_pop
        damage(@battler.damage, @battler.critical,@battler.state,@battler.item)
        @battler.damage = nil
        @battler.critical = false
        @battler.damage_pop = false
      end
    end 
    xas_damage_update
   end
end
no

By Kraft