Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

[VX] Individual Battle Commands

Ok made this quickly during a break from coursework sorry if there are any errors.

http://i4.photobucket.com/albums/y139/Fomar0153/VX/VX001.png[/img]
http://i4.photobucket.com/albums/y139/F ... /VX002.png[/img]


Code:
=begin
Individual Actor Commands
by Fomar0153
Version 1.0.0

Instructions
First you need to copy this script below Materials then there is some editing
to be done, please note this script is aimed at people with a slight amount
of scripting experience.
You edit the commands just below in setup. I hope it's obvious how.
You can change commands through the course of the game using the script event
like this:
$game_actors[1].commands=['Heal']
You'd replace the 1 with the actor's id in the database

To make any new commands actually do anything you need to program them into
update_actor_command_selection which is also below, I have provided an example
of how to make a command cast a spell on you. I do intend to create some
interesting commands as add-ons but they will come later.

=end

class Game_Actor < Game_Battler
  
  attr_accessor :commands
  
  alias commands_setup setup
  def setup(actor_id)
    commands_setup(actor_id)
    @commands = ['Attack', 'Skill', 'Guard', 'Item']
    case actor_id
    when 1
      @commands = ['Attack', 'Heal', 'Skill', 'Guard', 'Item']
    when 2
      @commands = ['Attack', 'Guard', 'Item']
    end
  end
  
end

class Scene_Battle
  
  def update_actor_command_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      prior_actor
    elsif Input.trigger?(Input::C)
      case @active_battler.commands[@actor_command_window.index]
      when 'Attack'  # Attack
        Sound.play_decision
        @active_battler.action.set_attack
        start_target_enemy_selection
      when 'Skill'  # Skill
        Sound.play_decision
        start_skill_selection
      when 'Guard'  # Guard
        Sound.play_decision
        @active_battler.action.set_guard
        next_actor
      when 'Item'  # Item
        Sound.play_decision
        start_item_selection
      when 'Heal' # Add/Edit New commands here
        Sound.play_decision
        @active_battler.action.set_skill(33)
        @active_battler.action.target_index = @active_battler.index
        next_actor
      end
    end
  end
  
end

class Window_ActorCommand < Window_Command
  
  def setup(actor)
    @commands = actor.commands
    @item_max = @commands.size
    self.height = @item_max * WLH + 32
    self.create_contents
    refresh
    self.height = 128
    self.index = 0
  end
  
end

This is an add on which means you can use skills that you don't know, being as the only way to use skills anyway is via input so this will allow you to make commands which use skills without them appearing in the skills window.

Code:
=begin
Individual Actor Commands Add-On: Don't need to know skills
by Fomar0153
Version 1.0.0

Instructions
Copy this script below Materials and you're done

=end

class Game_Actor
  
  def skill_can_use?(skill)
    return super
  end
  
end

Ok I will release add-ons when I see fit, and for those of you that didn't see the punchline in the other VX script topic I made, I'm not willing to help with any problems (other than errors which are my own) when using my scripts for a couple of days, sorry for the inconvenience, it should only be a couple of days.
 
Code:
=begin
Individual Actor Commands
by Fomar0153
Version 1.0.0

Instructions
First you need to copy this script below Materials then there is some editing
to be done, please note this script is aimed at people with a slight amount
of scripting experience.
You edit the commands just below in setup. I hope it's obvious how.
You can change commands through the course of the game using the script event
like this:
$game_actors[1].commands=['Heal']
You'd replace the 1 with the actor's id in the database

To make any new commands actually do anything you need to program them into
update_actor_command_selection which is also below, I have provided an example
of how to make a command cast a spell on you. I do intend to create some
interesting commands as add-ons but they will come later.

=end

class Game_Actor < Game_Battler
  
  attr_accessor :commands
  
  alias commands_setup setup
  def setup(actor_id)
    commands_setup(actor_id)
    @commands = ['Attack', 'Skill', 'Guard', 'Item']
    case actor_id
    when 1
      @commands = ['Attack', 'Heal', 'Skill', 'Guard', 'Item']
    when 2
      @commands = ['Attack', 'Guard', 'Item']
    end
  end
  
end

class Scene_Battle
  
  def update_actor_command_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      prior_actor
    elsif Input.trigger?(Input::C)
      case @active_battler.commands[@actor_command_window.index]
      when 'Attack'  # Attack
        Sound.play_decision
        @active_battler.action.set_attack
        start_target_enemy_selection
      when 'Skill'  # Skill
        Sound.play_decision
        start_skill_selection
      when 'Guard'  # Guard
        Sound.play_decision
        @active_battler.action.set_guard
        next_actor
      when 'Item'  # Item
        Sound.play_decision
        start_item_selection
      when 'Heal' # Add/Edit New commands here
        Sound.play_decision
        @active_battler.action.set_skill(33)
        @active_battler.action.target_index = @active_battler.index
        next_actor
      end
    end
  end
  
end

class Window_ActorCommand < Window_Command
  
  def setup(actor)
    @commands = actor.commands
    @item_max = @commands.size
    self.height = @item_max * WLH + 32
    self.create_contents
    refresh
    self.height = 128
    self.index = 0
  end
  
end
 
You haven't edited it as far as I can tell, Ralph should have the additional command heal and Ulrika should be missing skill.

Edit: Are you doing it through events?
If so show me the event code.
 
There were some instructions in the script but basically you can edit them in the script during this bit:
Code:
    case actor_id
    when 1
      @commands = ['Attack', 'Heal', 'Skill', 'Guard', 'Item']
    when 2
      @commands = ['Attack', 'Guard', 'Item']
    end
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top