Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
 Need Help With Individual Battle Commands Script
#1
I'm using The Individual Battle Commands By Atoa.(Sorry if i'm wrong.)
It's a script that allows you to fully customize every actors command menu and add specific skill and magic to a battle command.
here is the script.

PHP Code:
#==============================================================================
# Individual Battle Commands
# by Atoa
# Based on Charlie Lee script
# Modified by Atoa, to work with ACBS
#==============================================================================
# Following some suggestions, i've made some changes to the individual
# battle commands script
#
# Now you can not only add an command to an skill, you can also add an command
# to an actor (like in RM2000/2003/VX) and add an skill directly to an command
# so if you select the command, the skill will be used without opening the
# skill menu


# IMPORTANT: If you using the Add-On 'Atoa ATB' or 'Atoa CTB', put this script
# *bellow* the ATB/CTB Add-On.
#==============================================================================

module N01
  
# Do not remove or change these lines
  
Skill_Command = {}
  
Actor_Command = {}
  
Usable_Command = {}
  
# Do not remove or change these lines

  # Show command list in status menu?
  
Show_Commands_In_Menu true
  
  
# Position of command window in status menu
  
Menu_Commands_Postition = [16,160]
  
# Note: you must edit the status menu, or the command window will stay above
  # other informations
  
  # Command Window Border Opacity
  
Command_Window_Border_Opacity 255
  
  
# Command Window Back Opacity
  
Command_Window_Back_Opacity 160
    
  
# Max number of commands shown
  
Max_Commands_Shown 5

  
# Skill Commands.
  # These commands appear automatically when an actor learn one of the skill
  # that is part of the command.
  #
  # Skill_Command[Command_Name] = [Skills_IDs]
  #
  
Skill_Command['Magic'] = [123456789101112131415
    
16171819202122232425262728293031323334,
    
35363738394041424344454647484950515253,
    
545556]
  
  
Skill_Command['Sword Skill'] = [575859606162636465666768,
    
697071727374757677787980]
  
  
Skill_Command['Unite'] = [98,99,100,101,102,103]
  
  
Skill_Command['Overdrive'] = [119]

  
Skill_Command['Summon'] = [120,121,122,123]

  
# Actor Commands.
  # These are the commands linked to the actors, they will be shown even if
  # the actor has none of the skill of this command.
  # You can add the same command for different actors, the list of skills shown
  # will be separated for each
  #
  # Actor_Command[Command_Name] = {Actor_id => [Skills_IDs]}
  #
  
Actor_Command['Sword Skill'] = {=> [1,2,3,], => [84,87,88,93,105,106,107],
    
=> [96,108,109,111,112,114]}
   
  
Actor_Command['Black Magic'] = {=> [4,5]}
  
  
# Usable Commands.
  # These commands are linked directly to an skill. Once you choose one of them
  # you will use without opening the skill menu.
  # This command appear automatically once the actor learn the skill linked to
  # the command. The skill linked to the command aren't shown in the skill
  # menu outside battle
  #
  # Direct_Comman[Command_Name] = Skill_ID
  #
  
Usable_Command['Steal'] = 83
  
  Usable_Command
['Cat Form'] = 97
  
  Usable_Command
['Return Summon'] = 124
end

#==============================================================================
# ? Atoa Module
#==============================================================================
$atoa_script['SBS Individual Commands'] = true

#==============================================================================
# ? Game_Actor
#==============================================================================
class Game_Actor
  
#--------------------------------------------------------------------------
  
include N01
  
#--------------------------------------------------------------------------
  
attr_accessor :individual_commands
  
#--------------------------------------------------------------------------
  
alias acbs_setup_ibc setup
  def setup
(actor_id)
    
acbs_setup_ibc(actor_id)
    @
individual_commands = []
  
end
  
#--------------------------------------------------------------------------
  
def refresh_commands
    
@individual_commands = []
    for 
i in 0...@skills.size
      skill 
$data_skills[@skills[i]]
      if 
skill != nil
        
for command in Skill_Command.dup
          
if command[1].include?(skill.id) and not @individual_commands.include?(command[0])
            @
individual_commands << command[0]
          
end
        end
        
for command in Usable_Command.dup
          
if command[1] == skill.id and not @individual_commands.include?(command[0])
            @
individual_commands << command[0]
          
end
        end        
      end
    end
    
for command in Actor_Command.dup
      
if command[1].include?(@actor_id) and not @individual_commands.include?(command[0])
        @
individual_commands << command[0]
      
end
    end
  end
end

#==============================================================================
# ? Game_Party
#==============================================================================
class Game_Party
  
#--------------------------------------------------------------------------
  
include N01
  
#--------------------------------------------------------------------------
  
alias acbs_add_actor_ibc add_actor
  
#--------------------------------------------------------------------------
  
def add_actor(actor_id)
    
acbs_add_actor_ibc(actor_id)
    
actor $game_actors[actor_id]
    
actor.refresh_commands
  end
end

#==============================================================================
# ? Scene_Battle
#==============================================================================
class Scene_Battle
  
#--------------------------------------------------------------------------
  
include N01
  
#--------------------------------------------------------------------------
  
attr_accessor :escape_name
  
#--------------------------------------------------------------------------
  
alias acbs_phase3_setup_command_window_ibc phase3_setup_command_window
  def phase3_setup_command_window
    acbs_phase3_setup_command_window_ibc
    
@active_battler.refresh_commands
    s1 
$data_system.words.attack
    s2 
$data_system.words.item
    s3 
$data_system.words.guard
    s4 
= @escape_name if @escape_type == 0
    
@individual_commands = [s1] + @active_battler.individual_commands + [s2s3]
    if @
escape_type == 0
      
@individual_commands = [s1]+  @active_battler.individual_commands + [s2s3s4]
    
end
    
@actor_command_window.dispose
    
@actor_command_window Window_Command.new(160, @individual_commands, @active_battler)
    
comand_size = (@individual_commands.size >= : @individual_commands.size)
    @
actor_command_window.COMMAND_WINDOW_POSITION[0]
    @
actor_command_window.COMMAND_WINDOW_POSITION[1] + 120 24 comand_size 
    
@actor_command_window.opacity Command_Window_Border_Opacity
    
@actor_command_window.back_opacity Command_Window_Back_Opacity
    
@actor_command_window.4500
    
@actor_command_window.index 0
    
@actor_command_window.active true
    
@actor_command_window.visible true
    
@active_battler_window.refresh(@active_battler)
    @
active_battler_window.visible BATTLER_NAME_WINDOW
    
@active_battler_window.COMMAND_WINDOW_POSITION[0]
    @
active_battler_window.COMMAND_WINDOW_POSITION[1] + 56 24 comand_size 
    
@active_battler_window.4500
  end
  
#--------------------------------------------------------------------------
  
alias acbs_update_phase3_basic_command_ibc update_phase3_basic_command
  def update_phase3_basic_command
    
@direct_command false
    
if Input.trigger?(Input::B)
      
$game_system.se_play($data_system.cancel_se)
      
phase3_prior_actor
      
return
    
end
    
if Input.trigger?(Input::C)
      @
command_name = @actor_command_window.commands[@actor_command_window.index]
      case @
command_name
      when $data_system
.words.attack
        $game_system
.se_play($data_system.decision_se)
        @
active_battler.current_action.kind 0
        
@active_battler.current_action.basic 0
        start_enemy_select
      when $data_system
.words.guard 
        $game_system
.se_play($data_system.decision_se)
        @
active_battler.current_action.kind 0
        
@active_battler.current_action.basic 1
        phase3_next_actor
      when $data_system
.words.item
        $game_system
.se_play($data_system.decision_se)
        @
active_battler.current_action.kind 2
        start_item_select
      when 
@escape_name
        
if $game_temp.battle_can_escape == false
          $game_system
.se_play($data_system.buzzer_se)
          return
        
end
        $game_system
.se_play($data_system.decision_se)
        
update_phase2_escape
        
return
      
end
      
if @active_battler != nil and 
        @
active_battler.individual_commands.include?(@command_name)
        if 
Usable_Command.include?(@command_name)
          
unless @active_battler.skill_can_use?(Usable_Command[@command_name])
            
$game_system.se_play($data_system.buzzer_se)
            return
          
end
          
@active_battler.current_action.kind 1
          
@commands_category = @command_name
          
@direct_command true
          start_command_select
(Usable_Command[@command_name])
        else
          
$game_system.se_play($data_system.decision_se)
          @
active_battler.current_action.kind 1
          
@commands_category = @command_name
          start_skill_select
        end
      end
      
return
    
end
    acbs_update_phase3_basic_command_ibc
  end
  
#--------------------------------------------------------------------------
  
alias acbs_start_skill_select_ibc start_skill_select
  def start_skill_select
    acbs_start_skill_select_ibc
    
@skill_window.dispose
    
@skill_window Window_Skill.new(@active_battler, @commands_category)
    @
skill_window.help_window = @help_window
  end
  
#--------------------------------------------------------------------------
  
def start_command_select(skill_id)
    if 
Input.trigger?(Input::C)
      @
skill $data_skills[skill_id]
      if @
skill.nil? or not @active_battler.skill_can_use?(@skill.id)
        
$game_system.se_play($data_system.buzzer_se)
        return
      
end
      $game_system
.se_play($data_system.decision_se)
      @
active_battler.current_action.skill_id = @skill.id
      
if @skill.extension.include?("TARGETALL")
        
start_select_all_battlers
        
return
      
elsif @skill.scope == or (@skill.scope and @skill.extension.include?("RANDOMTARGET"))
        
start_select_all_enemies
        
return
      
elsif @skill.scope == or (@skill.scope and @skill.extension.include?("RANDOMTARGET"))
        
start_select_all_actors
        
return
      
end
      
if @skill.scope == 1
        start_enemy_select
      elsif 
@skill.scope == or @skill.scope == 5
        start_actor_select
      
else
        
phase3_next_actor
      end
      
return
    
end
  end
  
#--------------------------------------------------------------------------
  
def active_command_window
    
@actor_command_window.active true
    
@actor_command_window.visible true
    
@help_window.visible false
    
@active_battler_window.visible true if BATTLER_NAME_WINDOW
  end
  
#--------------------------------------------------------------------------
  
alias acbs_update_phase3_enemy_select_ibc update_phase3_enemy_select
  def update_phase3_enemy_select
    
if Input.trigger?(Input::B) and @direct_command
      $game_system
.se_play($data_system.cancel_se)
      
end_enemy_select
      active_command_window
      
return
    
end
    
if Input.trigger?(Input::C) and @direct_command
      $game_system
.se_play($data_system.decision_se)
      @
active_battler.current_action.target_index = @enemy_arrow.index
      end_enemy_select
      phase3_next_actor
      
@help_window.visible false
      
return
    
end
    acbs_update_phase3_enemy_select_ibc
  end
  
#--------------------------------------------------------------------------
  
alias acbs_update_phase3_actor_select_ibc update_phase3_actor_select
  def update_phase3_actor_select
    
if Input.trigger?(Input::B) and @direct_command
      $game_system
.se_play($data_system.cancel_se)
      
end_actor_select
      active_command_window
      
return
    
end
    
if Input.trigger?(Input::C) and @direct_command
      $game_system
.se_play($data_system.decision_se)
      @
active_battler.current_action.target_index = @actor_arrow.index
      end_actor_select
      phase3_next_actor
      
@help_window.visible false
      
return
    
end
    acbs_update_phase3_actor_select_ibc
  end
  
#--------------------------------------------------------------------------
  
alias acbs_update_phase3_select_all_enemies_ibc update_phase3_select_all_enemies
  def update_phase3_select_all_enemies
    
@enemy_arrow_all.update_multi_arrow
    
if Input.trigger?(Input::B) and @direct_command
      $game_system
.se_play($data_system.cancel_se)
      
end_select_all_enemies
      active_command_window
      
return
    
end
    
if Input.trigger?(Input::C) and @direct_command
      $game_system
.se_play($data_system.decision_se)
      
end_select_all_enemies
      phase3_next_actor
      
@help_window.visible false
      
return
    
end
    acbs_update_phase3_select_all_enemies_ibc
  end
  
#--------------------------------------------------------------------------
  
alias acbs_update_phase3_select_all_actors_ibc update_phase3_select_all_actors
  def update_phase3_select_all_actors
    
@actor_arrow_all.update_multi_arrow
    
if Input.trigger?(Input::B) and @direct_command
      $game_system
.se_play($data_system.cancel_se)
      
end_select_all_actors
      active_command_window
      
return
    
end
    
if Input.trigger?(Input::C) and @direct_command
      $game_system
.se_play($data_system.decision_se)
      
end_select_all_actors
      phase3_next_actor
      
@help_window.visible false
      
return
    
end
    acbs_update_phase3_select_all_actors_ibc
  end      
  
#--------------------------------------------------------------------------
  
alias acbs_update_phase3_select_all_battlers_ibc update_phase3_select_all_battlers
  def update_phase3_select_all_battlers
    
@battler_arrow_all.update_multi_arrow
    
if Input.trigger?(Input::B) and @direct_command
      $game_system
.se_play($data_system.cancel_se)
      
end_select_all_battlers
      active_command_window
      
return
    
end
    
if Input.trigger?(Input::C) and @direct_command
      $game_system
.se_play($data_system.decision_se)
      
end_select_all_battlers
      phase3_next_actor
      
@help_window.visible false
      
return
    
end
    acbs_update_phase3_select_all_battlers_ibc
  end      
end

#==============================================================================
# ? Window_Skill
#==============================================================================
class Window_Skill Window_Selectable
  
#--------------------------------------------------------------------------
  
include N01
  
#--------------------------------------------------------------------------
  
def initialize(actorskill_command_type '')
    
super(0128640352)
    @
skill_command_type skill_command_type
    
@actor actor
    
@column_max 2
    refresh
    self
.index 0
    
if $game_temp.in_battle
      self
.320
      self
.height 160
      self
.900
      self
.back_opacity MENU_OPACITY
    end
  end
  
#--------------------------------------------------------------------------
  
def refresh
    
if self.contents != nil
      self
.contents.dispose
      self
.contents nil
    end
    
@data = []
    for 
i in 0...@actor.skills.size
      skill 
$data_skills[@actor.skills[i]]
      if 
skill != nil and $game_temp.in_battle and skill_in_command?(skill)
        @
data << skill
      elsif skill 
!= nil and not $game_temp.in_battle
        
for command in  Usable_Command.dup
          
@data << skill unless command[1] == skill.id or @data.include?(skill)
        
end
      end
    end
    
@item_max = @data.size
    
if @item_max 0
      self
.contents Bitmap.new(width 32row_max 32)
      for 
i in 0...@item_max
        draw_item
(i)
      
end
    end
  end
  
#--------------------------------------------------------------------------
  
def skill_in_command?(skill)
    if 
Skill_Command[@skill_command_type] != nil and 
       
Skill_Command[@skill_command_type].include?(skill.id)
      return 
true 
    elsif Actor_Command
[@skill_command_type] != nil and
       
Actor_Command[@skill_command_type].include?(@actor.id) and
       
Actor_Command[@skill_command_type][@actor.id].include?(skill.id)
      return 
true 
    end
    
return false
  end
end

#==============================================================================
# ? Window_Command
#==============================================================================
class Window_Command Window_Selectable
  
#--------------------------------------------------------------------------
  
include N01
  
#--------------------------------------------------------------------------
  
attr_accessor :commands
  
#--------------------------------------------------------------------------
  
def initialize(widthcommandsbattler nil)
    if 
$scene.is_a?(Scene_Battle)
      
comand_size = (commands.size >= 192 commands.size 32 32)
      
max_comand Max_Commands_Shown 32 32
    
else
      
comand_size =  commands.size 32 32
      max_comand 
comand_size
    end
    comand_size 
= [comand_sizemax_comand].min
    super
(00widthcomand_size)
    @
battler battler
    
@item_max commands.size
    
@commands commands
    self
.contents Bitmap.new(width 32, @item_max 32)
    
refresh
    self
.index 0
  end
  
#--------------------------------------------------------------------------
  
def refresh
    self
.contents.clear
    
for i in 0...@item_max
      
if $scene.is_a?(Scene_Battle) and @battler != nil and 
         
Usable_Command.include?(@commands[i]) and not
         
@battler.skill_can_use?(Usable_Command[@commands[i]])
        
draw_item(idisabled_color)
      
elsif $scene.is_a?(Scene_Battle) and @commands[i] == $scene.escape_name and 
         
$game_temp.battle_can_escape == false
        draw_item
(idisabled_color)
      else
        
draw_item(inormal_color)
      
end
    end
  end
end

#==============================================================================
# ? Scene_Status
#==============================================================================
class Scene_Status
  
#--------------------------------------------------------------------------
  
include N01
  
#--------------------------------------------------------------------------
  
alias acbs_main_scenestatus_ibc main
  def main
    set_command_window 
if Show_Commands_In_Menu
    acbs_main_scenestatus_ibc
    
@command_window.dispose if Show_Commands_In_Menu
  end
  
#--------------------------------------------------------------------------
  
def set_command_window
    actor 
$game_party.actors[@actor_index]
    
actor.refresh_commands
    s1 
$data_system.words.attack
    s2 
$data_system.words.item
    s3 
$data_system.words.guard
    
@individual_commands = [s1] + actor.individual_commands + [s2s3]
    @
command_window Window_Command.new(160, @individual_commandsactor)
    @
command_window.Menu_Commands_Postition[0]
    @
command_window.Menu_Commands_Postition[1]
    @
command_window.1000
    
@command_window.active false
    
@command_window.index = -1
  end
end 

Example: Heres what the default battle commands look like.
Attack
Skill
Defend
Item

Now I added more battle command options so now it looks like this.
[Image: scripterror.jpg]

Now I try to select one of the new battle commands and this error comes up.
[Image: scripterror2.jpg]

Any idea on how to fix this?
Reply }
#2
Do you have any custom menu script? It looks like there is one that is messing with the definition of the Skills window.
Reply }
#3
yes, i'm using MOG Scene Menu Itigo V1.5, and all his other scripts as well.
Reply }
#4
That must be the problem. This individual commands script uses a special skill window to which you pass an extra parameter representing the currently selected category of skills, as far as I know the MOG menu scripts don't.
Have you asked yourself how the menu system you are using should show the different categories of skills?
Reply }
#5
ok thanks, i deleted some of the mog scripts and now it works. ^^
Reply }


Possibly Related Threads…
Thread Author Replies Views Last Post
   ACBS - Atoa Custom Battle System and TP System zlsl 2 3,717 10-20-2021, 05:09 AM
Last Post: zlsl
   Script compatibility help Lord Vectra 3 3,559 07-25-2021, 11:42 PM
Last Post: DerVVulfman
   [RMXP] Showing skill gained by leveling up on battle result FrQise 12 10,299 05-07-2021, 02:05 PM
Last Post: FrQise
   Adding face script on Cogwheel's RTAB Battle Status rekkatsu 15 12,824 08-25-2020, 03:09 AM
Last Post: DerVVulfman
   "Wait" in the script Whisper 13 13,667 04-28-2020, 04:06 PM
Last Post: Whisper
   Skill Cooldown script Fenriswolf 11 14,077 12-10-2019, 11:10 AM
Last Post: Fenriswolf
   I want to add an Atoa Custom Battle System command cut-in. zlsl 11 11,831 11-11-2019, 08:55 PM
Last Post: DerVVulfman
   Question about ACBS (Atoa Custom Battle System) aeliath 10 10,857 08-08-2019, 02:50 PM
Last Post: aeliath
   YAMI Battle symphony + Holder add on (Loop casting anim) Starmage 0 3,897 03-01-2018, 09:03 AM
Last Post: Starmage
   (RMVXace) Battle error with Tankentai's battle system, help. x( Starmage 0 3,475 02-14-2018, 04:25 PM
Last Post: Starmage



Users browsing this thread: