Problem with Actor Battlers, undefined NilClass method

Catlunch

Villager
Member
Joined
Sep 19, 2018
Messages
8
Reaction score
0
First Language
English
Primarily Uses
RMVXA
I'm running into a problem with when I start a new game or load a file. When I approach an enemy or get a random encounter, this pops up.



I am using Victor Engine's Basic Module, Damage Numbers and Actors Battlers. When I do a battle test inside the database, everything works completely fine. It only happens in the actual game, not a battle test. I've used comments for the battler just in case, but that didn't work. Here is what my script looks like.

#--------------------------------------------------------------------------
# * New method: setup_x
#--------------------------------------------------------------------------
def setup_x
case $game_custom_formation
when :front then position = get_frontal_x
when :side then position = get_sideview_x
when :iso then position = get_isometric_x
when :custom then position = $game_custom_positions[index + 1][:x]
end
position + $game_position_adjust[:x]
end
I'm running out of ideas on how to fix this. Any tips? Here is the link to the script if needed.

https://victorenginescripts.wordpress.com/rpg-maker-vx-ace/actors-battlers/
 
Last edited:

Andar

Veteran
Veteran
Joined
Mar 5, 2013
Messages
31,433
Reaction score
7,712
First Language
German
Primarily Uses
RMMV
the script is looking for data that is not yet defined.
this can either happen due to script incompatibility, due to a wrong configuration of scripts or some database error (like no actors defined).

Have you deleted any actors that were originally in the actor tab, and if yes - did you also remove them from the starting party in the system tab?
If that is correct, we need a screenshot of your script editor, scrolled to a point where we can see which scripts you've installed and in which order.
 

Catlunch

Villager
Member
Joined
Sep 19, 2018
Messages
8
Reaction score
0
First Language
English
Primarily Uses
RMVXA
Have you deleted any actors that were originally in the actor tab?
I have not.

If that is correct, we need a screenshot of your script editor, scrolled to a point where we can see which scripts you've installed and in which order.
Sure.



I tried moving around Actor Battlers, but that didn't do any good. Here is the part that's broken (line 322)



EDIT: If it helps, here is the full script. I only edited the custom placements and variables.
Code:
#==============================================================================
# ** Victor Engine - Actors Battlers
#------------------------------------------------------------------------------
# Author : Victor Sant
#
# Version History:
#  v 1.00 - 2011.12.19 > First release
#  v 1.01 - 2011.12.30 > Faster Regular Expressions
#  v 1.02 - 2012.01.15 > Compatibility with Target Arrow
#  v 1.03 - 2012.01.28 > Compatibility with Animated Battle
#  v 1.04 - 2012.03.11 > Added position distance settings
#  v 1.05 - 2012.03.17 > Fixed battle test glitch
#  v 1.06 - 2012.05.20 > Compatibility with Map Turn Battle
#  v 1.07 - 2012.12.13 > Compatibility with State Graphics
#  v 1.08 - 2012.12.30 > Compatibility with Leap Attack
#  v 1.09 - 2013.01.07 > Fixed issue with custom formation and big parties
#------------------------------------------------------------------------------
#  This script adds visible battler graphics for the party actors actors
# during combat. With the visible battlers, new options will be available
# like setting actor's battlers positions and attack animations.
#------------------------------------------------------------------------------
# Compatibility
#   Requires the script 'Victor Engine - Basic Module' v 1.11 or higher.
#   If used with 'Victor Engine - Animated Battle' place this bellow it.
#
# * Overwrite methods
#   class Spriteset_Battle
#      def create_actors
#     def update_actors
#
#   class Scene_Battle < Scene_Base
#     def show_attack_animation(targets)
#
# * Alias methods
#   class << DataManager
#     def setup_new_game
#     def create_game_objects
#     def make_save_contents
#     def extract_save_contents(contents)
#
#   class Game_Actor < Game_Battler
#     def setup(actor_id)
#
#   class Game_Interpreter
#     def comment_call
#
#   class Scene_Battle < Scene_Base
#     def start
#
#------------------------------------------------------------------------------
# Instructions:
#  To instal the script, open you script editor and paste this script on
#  a new section bellow the Materials section. This script must also
#  be bellow the script 'Victor Engine - Basic'
#
#------------------------------------------------------------------------------
# Comment calls note tags:
#  Tags to be used in events comment box, works like a script call.
# 
#  <battler name id: x>
#   This tag allows to change the actor battler graphic.
#    id : actor ID
#    x  : battler graphic filename
#
#  <battler hue id: x>
#   This tag allows to change the actor battler graphic.
#    id : actor ID
#    x  : battler graphic hue (0-360)
#
#  <battler position i: x, y>
#   This tag allows to change the battler position during combat.
#   only valid if VE_BATTLE_FORMATION = :custom
#     i : position index
#     x : new coorditante X
#     y : new coorditante X
#
#------------------------------------------------------------------------------
# Actors and Enemies note tags:
#   Tags to be used on the Actors and Enemies note box in the database
#
#  <battler name: x>
#   This tag allows to set the initial battler graphic filename for the actor.
#    x : battler graphic filename
#
#  <battler hue: x>
#   This tag allows to set the initial battler graphic hur for the actor.
#    x : battler graphic hue (0-360)
#
#------------------------------------------------------------------------------
# Enemies note tags:
#   Tags to be used on the Enemies note box in the database
#
#  <attack animation: x>
#   This tag allows to set the normal attack animation for the enemy
#    x : animation ID
# 
#==============================================================================

#==============================================================================
# ** Victor Engine
#------------------------------------------------------------------------------
#   Setting module for the Victor Engine
#==============================================================================

module Victor_Engine
  #--------------------------------------------------------------------------
  # * Set the battle formation
  #    Choose here how the actors battlers will be placed on the combat.
  #    :front  : horizontal placement
  #    :side   : vertical placement
  #    :iso    : isometric placement
  #    :custom : custom placement
  #--------------------------------------------------------------------------
  VE_BATTLE_FORMATION = :custom
  #--------------------------------------------------------------------------
  # * Set battler centralization
  #    When true, battlers are centralized automatically.
  #    Not valid if VE_BATTLE_FORMATION = :custom
  #--------------------------------------------------------------------------
  VE_BATTLE_CENTRALIZE = false
  #--------------------------------------------------------------------------
  # * Set battlers custom positions
  #    Only if VE_BATTLE_FORMATION = :custom, allows to set the position of
  #    all party actors, don't forget to add values for all positions
  #    available if using a party bigger than the default.
  #--------------------------------------------------------------------------
  VE_CUSTOM_POSITION = {
  # Position
    1 => {x: 150, y: 302}, # Position for the first actor.
    2 => {x: 280, y: 302}, # Position for the second actor.
    3 => {x: 395, y: 302}, # Position for the thrid actor.
    4 => {x: 432, y: 290}, # Position for the fourth actor.
  } # Don't remove
  #--------------------------------------------------------------------------
  # * Actors battlers position adjust
  #    Used to adjust the position of all actors battlers.
  #--------------------------------------------------------------------------
  VE_POSITION_ADJUST = {x: 0, y: 0}
  #--------------------------------------------------------------------------
  # * Actors battlers position adjust
  #    Used to adjust the position of all actors battlers.
  #--------------------------------------------------------------------------
  VE_DISTANCE_ADJUST = {x: 8, y: 24}
  #--------------------------------------------------------------------------
  # * required
  #   This method checks for the existance of the basic module and other
  #   VE scripts required for this script to work, don't edit this
  #--------------------------------------------------------------------------
  def self.required(name, req, version, type = nil)
    if !$imported[:ve_basic_module]
      msg = "The script '%s' requires the script\n"
      msg += "'VE - Basic Module' v%s or higher above it to work properly\n"
      msg += "Go to http://victorenginescripts.wordpress.com/ to download this script."
      msgbox(sprintf(msg, self.script_name(name), version))
      exit
    else
      self.required_script(name, req, version, type)
    end
  end
  #--------------------------------------------------------------------------
  # * script_name
  #   Get the script name base on the imported value, don't edit this
  #--------------------------------------------------------------------------
  def self.script_name(name, ext = "VE")
    name = name.to_s.gsub("_", " ").upcase.split
    name.collect! {|char| char == ext ? "#{char} -" : char.capitalize }
    name.join(" ")
  end
end

$imported ||= {}
$imported[:ve_actor_battlers] = 1.09
Victor_Engine.required(:ve_actor_battlers, :ve_basic_module, 1.11, :above)
Victor_Engine.required(:ve_actor_battlers, :ve_map_battle, 1.00, :bellow)
Victor_Engine.required(:ve_actor_battlers, :ve_state_graphics, 1.00, :bellow)

#==============================================================================
# ** DataManager
#------------------------------------------------------------------------------
#  This module handles the game and database objects used in game.
# Almost all global variables are initialized on this module
#==============================================================================

class << DataManager
  #--------------------------------------------------------------------------
  # * Alias method: setup_new_game
  #--------------------------------------------------------------------------
  alias :setup_new_game_ve_actor_battlers :setup_new_game
  def setup_new_game
    setup_new_game_ve_actor_battlers
    $game_custom_positions = VE_CUSTOM_POSITION.dup
    $game_custom_formation = VE_BATTLE_FORMATION
    $game_position_adjust  = VE_POSITION_ADJUST.dup
  end
  #--------------------------------------------------------------------------
  # * Alias method: setup_battle_test
  #--------------------------------------------------------------------------
  alias :setup_battle_test_ve_actor_battlers :setup_battle_test
  def setup_battle_test
    setup_battle_test_ve_actor_battlers
    $game_custom_positions = VE_CUSTOM_POSITION.dup
    $game_custom_formation = VE_BATTLE_FORMATION
    $game_position_adjust  = VE_POSITION_ADJUST.dup
  end
  #--------------------------------------------------------------------------
  # * Alias method: create_game_objects
  #--------------------------------------------------------------------------
  alias :create_game_objects_ve_actor_battlers :create_game_objects
  def create_game_objects
    create_game_objects_ve_actor_battlers
    $game_custom_positions = {}
    $game_custom_formation = VE_BATTLE_FORMATION
    $game_position_adjust  = VE_POSITION_ADJUST.dup
  end
  #--------------------------------------------------------------------------
  # * Alias method: make_save_contents
  #--------------------------------------------------------------------------
  alias :make_save_contents_ve_actor_battlers  :make_save_contents
  def make_save_contents
    contents = make_save_contents_ve_actor_battlers
    contents[:positions_ve]  = $game_custom_positions
    contents[:formation_ve]  = $game_custom_formation
    contents[:pos_adjust_ve] = $game_position_adjust
    contents
  end
  #--------------------------------------------------------------------------
  # * Alias method: extract_save_contents
  #--------------------------------------------------------------------------
  alias :extract_save_contents_ve_actor_battlers :extract_save_contents
  def extract_save_contents(contents)
    extract_save_contents_ve_actor_battlers(contents)
    $game_custom_positions = contents[:positions_ve]
    $game_custom_formation = contents[:formation_ve]
    $game_position_adjust  = contents[:pos_adjust_ve]
  end
end

#==============================================================================
# ** Game_Actor
#------------------------------------------------------------------------------
#  This class handles actors. It's used within the Game_Actors class
# ($game_actors) and referenced by the Game_Party class ($game_party).
#==============================================================================

class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :screen_x                 # Coordenada X na tela
  attr_accessor :screen_y                 # Coordenada Y na tela
  #--------------------------------------------------------------------------
  # * Alias method: setup
  #--------------------------------------------------------------------------
  alias :setup_ve_actor_battlers :setup
  def setup(actor_id)
    setup_ve_actor_battlers(actor_id)
    @battler_name = actor_battler_name
    @battler_hue  = actor_battler_hue
  end
  #--------------------------------------------------------------------------
  # * Aquisição do índice do herói
  #--------------------------------------------------------------------------
  def index
    $game_party.members.index($game_actors[@actor_id])
  end
  #--------------------------------------------------------------------------
  # * Overwrite method: use_sprite?
  #--------------------------------------------------------------------------
  def use_sprite?
    return true
  end
  #--------------------------------------------------------------------------
  # * Overwrite method: screen_z
  #--------------------------------------------------------------------------
  def screen_z
    return 100
  end
  #--------------------------------------------------------------------------
  # * New method: actor_battler_name
  #--------------------------------------------------------------------------
  def actor_battler_name
    actor.note =~ /<BATTLER NAME: ([^><]*)>/i ? $1.to_s : ""
  end
  #--------------------------------------------------------------------------
  # * New method: actor_battler_hue
  #--------------------------------------------------------------------------
  def actor_battler_hue
    actor.note =~ /<BATTLER HUE: (\d+)>/i ? $1.to_i : 0
  end
  #--------------------------------------------------------------------------
  # * New method: battler_name
  #--------------------------------------------------------------------------
  def battler_name=(name)
    @battler_name = name if name.is_a?(String)
  end
  #--------------------------------------------------------------------------
  # * New method: battler_hue
  #--------------------------------------------------------------------------
  def battler_hue=(hue)
    @battler_hue = hue if hue.numeric?
  end
  #--------------------------------------------------------------------------
  # * New method: screen_x
  #--------------------------------------------------------------------------
  def screen_x
    setup_x
  end
  #--------------------------------------------------------------------------
  # * New method: screen_y
  #--------------------------------------------------------------------------
  def screen_y
    setup_y
  end
  #--------------------------------------------------------------------------
  # * New method: setup_x
  #--------------------------------------------------------------------------
  def setup_x
    case $game_custom_formation
    when :front  then position = get_frontal_x
    when :side   then position = get_sideview_x
    when :iso    then position = get_isometric_x
    when :custom then position = $game_custom_positions[index + 1][:x]
    end
    position + $game_position_adjust[:x]
  end
  #--------------------------------------------------------------------------
  # * New method: setup_y
  #--------------------------------------------------------------------------
  def setup_y
    case $game_custom_formation
    when :front  then position = get_frontal_y
    when :side   then position = get_sideview_y
    when :iso    then position = get_isometric_y
    when :custom then position = $game_custom_positions[index + 1][:y]
    end
    position + $game_position_adjust[:y]
  end
  #--------------------------------------------------------------------------
  # * New method: get_frontal_x
  #--------------------------------------------------------------------------
  def get_frontal_x
    if VE_BATTLE_CENTRALIZE
      size = $game_party.battle_members.size
      position = (index + 1) * Graphics.width / (size + 1)
    else
      size = $game_party.max_battle_members
      position = index * Graphics.width / size + 64
    end
    position
  end
  #--------------------------------------------------------------------------
  # * New method: get_frontal_y
  #--------------------------------------------------------------------------
  def get_frontal_y
    Graphics.height - 16
  end
  #--------------------------------------------------------------------------
  # * New method: get_sideview_x
  #--------------------------------------------------------------------------
  def get_sideview_x
    if VE_BATTLE_CENTRALIZE
      size = $game_party.max_battle_members
      x    = dist[:x] / 8
      position = -index * (index * x - x * size) + Graphics.width - 160
    else
      position = index * dist[:x] + Graphics.width - 192
    end
    position
  end
  #--------------------------------------------------------------------------
  # * New method: get_sideview_y
  #--------------------------------------------------------------------------
  def get_sideview_y
    if VE_BATTLE_CENTRALIZE
      size   = $game_party.battle_members.size
      height = Graphics.height
      position = (index - size) * dist[:y] + size * dist[:y] / 2 + height - 160
    else
      position = index * dist[:y] +  Graphics.height - 200
    end
    position
  end
  #--------------------------------------------------------------------------
  # * New method: get_isometric_x
  #--------------------------------------------------------------------------
  def get_isometric_x
    if VE_BATTLE_CENTRALIZE
      position = -index * (index * dist[:x] - 32) + Graphics.width - 160
    else
      position = index * dist[:x] +  Graphics.width - 192
    end
    position
  end
  #--------------------------------------------------------------------------
  # * New method: get_isometric_y
  #--------------------------------------------------------------------------
  def get_isometric_y
    if VE_BATTLE_CENTRALIZE
      position = index * (dist[:y] - index * 6) + Graphics.height - 160
    else
      position = Graphics.height - 96 - index * dist[:y]
    end
    position
  end
  #--------------------------------------------------------------------------
  # * New method: dist
  #--------------------------------------------------------------------------
  def dist
    VE_DISTANCE_ADJUST
  end
end

#==============================================================================
# ** Game_Enemy
#------------------------------------------------------------------------------
#  This class handles enemy characters. It's used within the Game_Troop class
# ($game_troop).
#==============================================================================

class Game_Enemy < Game_Battler
  #--------------------------------------------------------------------------
  # * Alias method: initialize
  #--------------------------------------------------------------------------
  alias :initialize_ve_actor_battlers :initialize
  def initialize(index, enemy_id)
    initialize_ve_actor_battlers(index, enemy_id)
    @battler_name = enemy_battler_name if enemy_battler_name
    @battler_hue  = enemy_battler_hue  if enemy_battler_hue
  end
  #--------------------------------------------------------------------------
  # * New method: enemy_battler_name
  #--------------------------------------------------------------------------
  def enemy_battler_name
    enemy.note =~ /<BATTLER NAME: ([^><]*)>/i ? $1.to_s : nil
  end
  #--------------------------------------------------------------------------
  # * New method: enemy_battler_hue
  #--------------------------------------------------------------------------
  def enemy_battler_hue
    enemy.note =~ /<BATTLER HUE: (\d+)>/i ? $1.to_i : nil
  end
  #--------------------------------------------------------------------------
  # * New method: atk_animation_id1
  #--------------------------------------------------------------------------
  def atk_animation_id1
    enemy.note =~ /<ATTACK ANIM(?:ATION): (\d+)>/i ? $1.to_i : 1
  end
  #--------------------------------------------------------------------------
  # * New method: atk_animation_id2
  #--------------------------------------------------------------------------
  def atk_animation_id2
    return 0
  end
end

#==============================================================================
# ** Game_Unit
#------------------------------------------------------------------------------
#  This class handles units. It's used as a superclass of the Game_Party and
# Game_Troop classes.
#==============================================================================

class Game_Unit
  #--------------------------------------------------------------------------
  # * New method: setup_in_battle
  #--------------------------------------------------------------------------
  def setup_in_battle
    @in_battle = true
  end
end

#==============================================================================
# ** Game_Interpreter
#------------------------------------------------------------------------------
#  An interpreter for executing event commands. This class is used within the
# Game_Map, Game_Troop, and Game_Event classes.
#==============================================================================

class Game_Interpreter
  #--------------------------------------------------------------------------
  # * Alias method: comment_call
  #--------------------------------------------------------------------------
  alias :comment_call_ve_actor_battlers :comment_call
  def comment_call
    change_battler_name
    change_battler_hue
    change_position
    comment_call_ve_actor_battlers
  end
  #--------------------------------------------------------------------------
  # * New method: change_battler_name
  #--------------------------------------------------------------------------
  def change_battler_name
    note.scan(/<BATTLER NAME (\d+): ([^><]*)>/i) do |id, name|
      $game_actors[id.to_i].battler_name = name
    end
  end
  #--------------------------------------------------------------------------
  # * New method: change_battler_hue
  #--------------------------------------------------------------------------
  def change_battler_hue
    note.scan(/<BATTLER HUE (\d+): (\d+)>/i) do |id, hue|
      $game_actors[id.to_i].battler_hue = hue
    end
  end
  #--------------------------------------------------------------------------
  # * New method: change_position
  #--------------------------------------------------------------------------
  def change_position
    regexp = /<BATTLER POSITION (\d+): (\d+) *, *(\d+)>/i
    note.scan(regexp) do |i, x, y|
      $game_custom_positions[i.to_i][:x] = x.to_i
      $game_custom_positions[i.to_i][:y] = y.to_i
    end
  end
end

#==============================================================================
# ** Spriteset_Battle
#------------------------------------------------------------------------------
#  This class brings together battle screen sprites. It's used within the
# Scene_Battle class.
#==============================================================================

class Spriteset_Battle
  #--------------------------------------------------------------------------
  # * Overwrite method: create_actors
  #--------------------------------------------------------------------------
  def create_actors
    @actor_sprites = $game_party.battle_members.reverse.collect do |actor|
      Sprite_Battler.new(@viewport1, actor)
    end
    @actors_party = $game_party.battle_members.dup
  end
  #--------------------------------------------------------------------------
  # * Overwrite method: update_actors
  #--------------------------------------------------------------------------
  def update_actors
    update_party if $game_party.battle_members != @actors_party
    @actor_sprites.each {|sprite| sprite.update }
  end
  #--------------------------------------------------------------------------
  # * New method: update_party
  #--------------------------------------------------------------------------
  def update_party
    @actor_sprites.each_index do |i|
      next if $game_party.battle_members.include?(@actor_sprites[i].battler)
      @actor_sprites[i].dispose
      @actor_sprites[i] = nil
    end
    $game_party.battle_members.collect do |actor|
      next if @actors_party.include?(actor)
      @actor_sprites.push(Sprite_Battler.new(@viewport1, actor))
    end
    @actor_sprites.compact!
    @actors_party = $game_party.battle_members.dup
    $game_party.battle_members.each do |actor|
      old_position = [actor.screen_x, actor.screen_y]
      actor.default_direction if $imported[:ve_animated_battle]
      if old_position != [actor.screen_x, actor.screen_y]
        sprite(actor).start_effect(:appear)
      end
    end
  end
end

#==============================================================================
# ** Scene_Battle
#------------------------------------------------------------------------------
#  This class performs battle screen processing.
#==============================================================================

class Scene_Battle < Scene_Base
  #--------------------------------------------------------------------------
  # * Alias method: start
  #--------------------------------------------------------------------------
  alias :start_ve_actor_battlers :start
  def start
    $game_party.setup_in_battle
    start_ve_actor_battlers
  end
  #--------------------------------------------------------------------------
  # * Overwrite method: show_attack_animation
  #--------------------------------------------------------------------------
  def show_attack_animation(targets)
    show_normal_animation(targets, @subject.atk_animation_id1, false)
    show_normal_animation(targets, @subject.atk_animation_id2, true)
  end
end
 
Last edited:

Sixth

Veteran
Veteran
Joined
Jul 4, 2014
Messages
2,162
Reaction score
823
First Language
Hungarian
Primarily Uses
RMVXA
The error says that the $game_custom_positions variable is not defined, which can only mean that you loaded a saved game which has been saved before you added that Actor Battlers script.

It works in battle test mode, because it will automatically load these new variables there, but it will not load them in your outdated save files.

Always do your tests in a new game when you add a new script to avoid these errors. It's not always necessary, but if you do, these kind of errors won't happen.

Ohh, you wrote that you started a new game too...
In that case, try to add this line at the beginning of the method that gives the error:
Code:
p "index: #{index}, custom pos: #{$game_custom_positions}"
Trigger the error, and check the console. Post what you see there.
If there is nothing showing up after the "custom pos:" text, than the required variable is not loaded at all. If there is something there, than it only misses the data for a specific position index.

If it's the latter, you need to setup a new position for your 5th, 6th, etc party member in the setting area.

Actually...
I'm pretty sure that indexes start from 0, and not from 1, so try to change those number to 0, 1, 2, 3 instead or just copy the first setting and use 0 for it's key.
Although I see that he added +1 for index numbers in his code, so at this point, I have no idea what kind of index that really is.
 
Last edited:

Catlunch

Villager
Member
Joined
Sep 19, 2018
Messages
8
Reaction score
0
First Language
English
Primarily Uses
RMVXA
The error says that the $game_custom_positions variable is not defined, which can only mean that you loaded a saved game which has been saved before you added that Actor Battlers script.

It works in battle test mode, because it will automatically load these new variables there, but it will not load them in your outdated save files.

Always do your tests in a new game when you add a new script to avoid these errors. It's not always necessary, but if you do, these kind of errors won't happen.
But I did start a new game. The problem still comes up. I did both a new game and a save file. I even deleted the save file and started a new game. Still the same problem.
 

Sixth

Veteran
Veteran
Joined
Jul 4, 2014
Messages
2,162
Reaction score
823
First Language
Hungarian
Primarily Uses
RMVXA
Yeah, kinda missed that part in your post. :D
Already edited my previous reply. Try to do that and see what happens.
 

Catlunch

Villager
Member
Joined
Sep 19, 2018
Messages
8
Reaction score
0
First Language
English
Primarily Uses
RMVXA
Ohh, you wrote that you started a new game too...
In that case, try to add this line at the beginning of the method that gives the error:
Code:
p "index: #{index}, custom pos: #{$game_custom_positions}"
Trigger the error, and check the console. Post what you see there.
If there is nothing showing up after the "custom pos:" text, than the required variable is not loaded at all. If there is something there, than it only misses the data for a specific position index.

If it's the latter, you need to setup a new position for your 5th, 6th, etc party member in the setting area.

Actually...
I'm pretty sure that indexes start from 0, and not from 1, so try to change those number to 0, 1, 2, 3 instead or just copy the first setting and use 0 for it's key.
Although I see that he added +1 for index numbers in his code, so at this point, I have no idea what kind of index that really is.
Sorry, I'm still learning these things. Where exactly is the beginning of the method? I tried putting it above line 322, but it did the same thing.
 

Sixth

Veteran
Veteran
Joined
Jul 4, 2014
Messages
2,162
Reaction score
823
First Language
Hungarian
Primarily Uses
RMVXA
Right below the def setup_x line.
And if your console is not yet enabled, make sure to enable it. It's somewhere in the editor, tick that "Show Console" option.
 

Catlunch

Villager
Member
Joined
Sep 19, 2018
Messages
8
Reaction score
0
First Language
English
Primarily Uses
RMVXA

I am getting this. Pretty lost on the variable part, too. I'm a little sleep deprived, so I appreciate the patience.
 
Last edited:

Andar

Veteran
Veteran
Joined
Mar 5, 2013
Messages
31,433
Reaction score
7,712
First Language
German
Primarily Uses
RMMV
have you configured the script correctly or only copied it?
How many actors do you have in the party? It is currently set to custom positions, and the script clearly states that you need to define your own custom positions if your party is too big.
Does the error also happen when you're using a non-custom configuration?
 

Sixth

Veteran
Veteran
Joined
Jul 4, 2014
Messages
2,162
Reaction score
823
First Language
Hungarian
Primarily Uses
RMVXA
That's weird...

Find this line in the Actor Battler scipt:
Code:
$game_custom_positions = {}
Replace that line with this:
Code:
$game_custom_positions = VE_CUSTOM_POSITION.dup
Check what happens with that edit.
 

Andar

Veteran
Veteran
Joined
Mar 5, 2013
Messages
31,433
Reaction score
7,712
First Language
German
Primarily Uses
RMMV
@Sixth there is a typo in your code, cutsom/custom
 

Sixth

Veteran
Veteran
Joined
Jul 4, 2014
Messages
2,162
Reaction score
823
First Language
Hungarian
Primarily Uses
RMVXA
@Andar
Indeed, there was! O_O
Thanks! :D
 

Catlunch

Villager
Member
Joined
Sep 19, 2018
Messages
8
Reaction score
0
First Language
English
Primarily Uses
RMVXA
have you configured the script correctly or only copied it?
I copied then followed the steps for the battler tags, i.e <battler name:filename>. Then I changed VE_BATTLE_FORMATION to :custom and messed around with:

1 => {x: 150, y: 302}, # Position for the first actor.
2 => {x: 280, y: 302}, # Position for the second actor.
3 => {x: 395, y: 302}, # Position for the thrid actor.[/quote]

How many actors do you have in the party?
For battle testing, it works for any party size. I'm going to have 3 members total. Using 1, 2 or 3 in my new game gives me the same error.

It is currently set to custom positions, and the script clearly states that you need to define your own custom positions if your party is too big.
Like I said just now, I will only have 3 members total.

Does the error also happen when you're using a non-custom configuration?
Doing side gives me no error, but my Actor Battler doesn't show up. This is also being spammed in Console while I idle in the fight.



That's weird...

Find this line in the Actor Battler scipt:
Code:
$game_custom_positions = {}
Replace that line with this:
Code:
$game_custom_positions = VE_CUSTOM_POSITION.dup
Check what happens with that edit.
This worked. You are god. Thank you both so much. This can be locked now.
 

Sixth

Veteran
Veteran
Joined
Jul 4, 2014
Messages
2,162
Reaction score
823
First Language
Hungarian
Primarily Uses
RMVXA
Don't forget to remove that debug line you added now (which is printing endlessly on your console now), you don't need it anymore.
 

Catlunch

Villager
Member
Joined
Sep 19, 2018
Messages
8
Reaction score
0
First Language
English
Primarily Uses
RMVXA
Don't forget to remove that debug line you added now (which is printing endlessly on your console now), you don't need it anymore.
Will do.
 

gstv87

Veteran
Veteran
Joined
Oct 20, 2015
Messages
2,254
Reaction score
1,254
First Language
Spanish
Primarily Uses
RMVXA
That's weird...
Replace that line with this:
Code:
$game_custom_positions = VE_CUSTOM_POSITION.dup
Code:
class << DataManager
  #--------------------------------------------------------------------------
  # * Alias method: setup_new_game
  #--------------------------------------------------------------------------
  alias :setup_new_game_ve_actor_battlers :setup_new_game
  def setup_new_game
   setup_new_game_ve_actor_battlers
   $game_custom_positions = VE_CUSTOM_POSITION.dup
   $game_custom_formation = VE_BATTLE_FORMATION
   $game_position_adjust  = VE_POSITION_ADJUST.dup
  end
  #--------------------------------------------------------------------------
  # * Alias method: setup_battle_test
  #--------------------------------------------------------------------------
  alias :setup_battle_test_ve_actor_battlers :setup_battle_test
  def setup_battle_test
   setup_battle_test_ve_actor_battlers
   $game_custom_positions = VE_CUSTOM_POSITION.dup
   $game_custom_formation = VE_BATTLE_FORMATION
   $game_position_adjust  = VE_POSITION_ADJUST.dup
  end
  #--------------------------------------------------------------------------
  # * Alias method: create_game_objects
  #--------------------------------------------------------------------------
  alias :create_game_objects_ve_actor_battlers :create_game_objects
  def create_game_objects
   create_game_objects_ve_actor_battlers
   $game_custom_positions = {}
   $game_custom_formation = VE_BATTLE_FORMATION
   $game_position_adjust  = VE_POSITION_ADJUST.dup
  end
create_game_objects happens before setup_battle_test
Code:
$game_custom_positions = VE_CUSTOM_POSITION.dup
is already called.... you're calling it twice.
 

Sixth

Veteran
Veteran
Joined
Jul 4, 2014
Messages
2,162
Reaction score
823
First Language
Hungarian
Primarily Uses
RMVXA
... you're calling it twice.
No, I don't, Victor did, for whatever reason.
I sure won't check for that reason, but if it bothers you that much, you are free to do so.

The only place those variables should be initialized is the place where he used an empty hash instead, the other 2 methods are the redundant ones. But I don't know what did he do in his Basic Module script, and I don't plan on checking it.
 

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Profile Posts

Day 9 of giveaways! 8 prizes today :D
He mad, but he cute :kaopride:

Our latest feature is an interview with... me?!

People4_2 (Capelet off and on) added!

Just beat the last of us 2 last night and starting jedi: fallen order right now, both use unreal engine & when I say i knew 80% of jedi's buttons right away because they were the same buttons as TLOU2 its ridiculous, even the same narrow hallway crawl and barely-made-it jump they do. Unreal Engine is just big budget RPG Maker the way they make games nearly identical at its core lol.

Forum statistics

Threads
106,040
Messages
1,018,479
Members
137,824
Latest member
dobratemporal
Top