Actor Battle Commands

Help spread the word!Share on FacebookShare on TumblrTweet about this on TwitterShare on Google+Share on LinkedInShare on RedditFlattr the author

This plugin provides advanced battle command manage functionality that allows you to manage each and every one of your actors’ battle commands.

You can choose what commands an actor will be able to use.

You can enable or disable commands. This allows you to forcefully disable commands when certain conditions are met: maybe the enemy uses a spell that prevents all actors from using items!

You can also hide or show commands. By hiding commands, you can control when actors will be able to see a command.

If you are a plugin developer, you can also create your own commands easily and allow other game developers to use them in their games!

Download

Plugin: download here (right-click, save as)

Addons

Additional battle command related plugins!

Installation

Download ths plugin and place it in the “plugins” folder in your project’s “js” folder. Then open your Plugin Manager (F10), double-click an empty row, and select the HIME_ActorBattleCommands plugin.

Once it is in your list of plugins, turn the plugin on.

Usage

You can initialize commands for each actor. This plugin offers a basic note-tag:

<battle command: SYMBOL EXT />

Where the SYMBOL is the name of a pre-defined battle command. The ones available by default are

attack - the "attack" command
guard - the "guard" command
skill_list - all skill types the actor can use
item - the "item" command
skill_type ID - a specific skill type. Specify the skill type ID

Let’s take a look at these commands in detail.

Command: attack

actorBattleCommands4

This is your basic “Attack” command. It just uses the “Attack” skill, or whatever skill is assigned to the “attack” command. You can add it by writing

<battle command: attack />

Command: guard

actorBattleCommands5

This is your basic “Guard” command. It just uses the “Guard” skill, or whatever skill is assigned to the “guard” command”. You can add it by writing

<battle command: guard />

Command: skill_list

actorBattleCommands7

This command adds all of the skill types that your actor can use. For example, if it can use “Magic” and “Special” skills, both will be added to your list of commands automatically. You can add this by writing

<battle command: skill_list />

Command: item

actorBattleCommands6

This command let’s you use the “item” command, which will bring up the item window. You can add this by writing

<battle command: item />

Command: skill_type

actorBattleCommands8

This is a new command provided by this plugin. It allows you to display a certain skill type. For example, if you had “Magic” as skill type 1 and “Special” as skill type 2, you can add “Special” to your actors by writing

<battle command: skill_type 2 />

Note the use of the number 2 as extra data. This is how you specify which skill type to show. Please refer to your “Types” tab to see the ID’s for your skill types.

actorBattleCommands9

Managing Commands using Events

A number of script calls are available for managing commands during the game. You can add or remove commands, hide or show commands, enable or disable commands, and so on.

Hiding or Showing Commands

When a command is hidden, it won’t be shown to the player.

actorBattleCommands10

You can hide or show battle commands for each actor during the game. To hide or show a command, use the script call

hide_actor_command(ID, SYMBOL)
show_actor_command(ID, SYMBOL)

Where the ID is the ID of the actor, and the SYMBOl is the symbol of the command. If the actor doesn’t have that command, nothing will happen.

For example if you want to hide the item command for actor 4, use

hide_actor_command(4, "item")

If you need to specify extra data, you can specify extra data like this

hide_actor_command(ID, SYMBOL, EXT)
show_actor_command(ID, SYMBOL, EXT)

Where the EXT is your extra data.

Enabling or Disabling Commands

When a command is disabled, it cannot be selected. If the player tries to select it, the game will simply play a buzzer sound.

actorBattleCommands11

To enable or disable a command, use the script calls

enable_actor_command(ID, SYMBOL)
disable_actor_command(ID, SYMBOL)

Where the ID is the ID of the actor, and the SYMBOl is the symbol of the command. If the actor doesn’t have that command, nothing will happen.

For example if you want to disable all skill commands for actor 5, use

disable_actor_command(5, "skill_list")

If you need to specify extra data, you can specify extra data like this

hide_actor_command(ID, SYMBOL, EXT)
show_actor_command(ID, SYMBOL, EXT)

Where the EXT is your extra data for that command.

Help spread the word!Share on FacebookShare on TumblrTweet about this on TwitterShare on Google+Share on LinkedInShare on RedditFlattr the author

You may also like...

75 Responses

  1. Mark says:

    Using Yanfly’s Weapon Unleash Plugin, I had replaced the attack command with other skills, depending on weapon equipped.
    With this plugin, the plugin will still replace the skill used, however the command still appears as Attack.
    For example, when equipped with a Cane, the Attack command would be replaced with a skill called Pray which, instead of attacking, would restore some MP to the user.
    With this plugin, having a Cane equipped will still restore MP to the user, but it still says Attack on the command menu instead of replacing it with Pray.
    Is there anyway to fix this?

    • Mark says:

      Well, I followed @TravelingBard’s post and was able to get my weapons to dictate the type of attack again.
      Guess I won’t be needing Yanfly’s Weapon Unleash.
      Although I do wonder if I ever wanted to use the “Unleash” part of that plugin, if it would be compatible.
      For now though, I’m good.
      Thanks for this amazing plugin!

      • Mark says:

        And just in case another noob like me wants to change the attack based on weapon type instead of weapon id, here’s how you do it (took me the whole day to figure it out, lol):

        name: “Skill name”,
        symbol: “use_skill”,
        ext: “skillId”
        isEnabled: “a.isWtypeEquipped(TypeId)”,
        isVisible: “a.isWtypeEquipped(TypeId)”
        </battle command>

  2. TravelingBard says:

    I love your work, Tsukihime! lol, thanks to this, the two battle command scripts, and that yanfly equip change script… I was finally able to accomplish what I thought impossible… being able to swap weapons using Equip, mid battle, and have that change the first battle command from Heavy Strike to Precision Strike based on the weapon the character currently has equipped. I used commands like so (for those of you attempting the same):

    <battle command>
    name: "Heavy Strike",
    symbol: "use_skill",
    ext: "15",
    isEnabled: "a.hasWeapon($dataWeapons[1])",
    isVisible: "a.hasWeapon($dataWeapons[1])"
    </battle command>

    Thanks again 🙂

    • TravelingBard says:

      Also… I found this little guy under Actor Battle Commands:

      ‘Game_Battler.prototype.sortBattleCommands = function() {
      // TO DO
      };’

      Probably the reason that using advanced notetags don’t sort well with the normal battle command tags 😉 I mean we have the workaround to just set all of those normal battle command tags as advanced notetags in the order we want so it’s all good. Just answering drcakey from a few months back (can’t reply to his comment directly for some reason…)

      • Hime says:

        Yes, I never really thought about how to go about providing a way to sort commands.

        • TravelingBard says:

          Come to think of it there really isn’t a logical way to go about it lol I guess you could always just add a sort property and set it through 1-9 or nothing. Currently by default your sort goes “normal battle command tags” then “advanced battle command tags”. I feel like the expectation is to simply sort by the order you entered it in the notetag… for example:

          <battle command>
          name: "Heavy Strike",
          symbol: "use_skill",
          ext: "15",
          isEnabled: "a.hasWeapon($dataWeapons[1])",
          isVisible: "a.hasWeapon($dataWeapons[1])"
          < /battle command>
          <battle command>
          name: "Precision Strike",
          symbol: "use_skill",
          ext: "16",
          isEnabled: "a.hasWeapon($dataWeapons[2])",
          isVisible: "a.hasWeapon($dataWeapons[2])"
          < /battle command>
          <battle command: guard />
          <battle command: skill_list />
          <battle command: item />

          Should yield my choice of attack skill command at the top, then guard, then relevant skill list, and finally item. Currently, the above notetag will yield guard at the top, skill list, item, and then choice of attack skill command at the bottom. I am not sure if there is a logical way programmatically to sort like this, if not perhaps providing a sort order property would help. Just throwing out ideas 🙂 great work though! Always love your stuff. If I have a crazy specific thing I am trying to implement I can always count on your plugin lists to help and for that I thank you 🙂

          • Hime says:

            Actually that isn't due to sorting, but instead the script parses all "basic" note-tags, and then goes and parses all "advanced" note-tags. Basically I was taking the easy way out and just parsing them in two steps rather than trying to find a way to parse both basic and advanced note-tags in one regex.

            I like the priority idea. It is something I use often in other scripts where you want to specify that something appears before something else, and you want to have some sense of control over it.

  3. Mast-Yami says:

    Hello!
    First, I’ld like to thank you, this plugin is just what I was looking for quite a while. ^^
    Secondly, I have a problem with using the commands into a script. Each time I try to disable or hide a command, I got an error: “disable_actor_command is not defined” or “hide_actor_command is not defined”.

    This is the syntax I used: disable_actor_command(1, “item”)

    I’m pretty sure it could be something with plugins priorities since I’m also using some Yanfly’s plugins, but I cannot put the finger on it. =x

    Do you have any clue?

    • Mast-Yami says:

      I’m sorry for the double-post but I found out what was going wrong.
      I didn’t see this plugin needed another HIME plugin: HIME_ActorBattleCommands

      So I put both of them into my plugin list and all my troubles were gone! ^^’

      One more time, thank you very much for these awesome plugins! =D

  4. Matt says:

    First off thank you very much for this amazing plugin. It seems like its everything I need right now. A few things I cant seem to figure out despite my best efforts (im sure the fault is on my end). I cant figure out how to rename any battle commands. the way I understood it was that under an actors note section I could put to rename it. Also is this plugin capable of removing the “Fight” “Run” menu that appears when a battle starts? I also would like to add the option for an actor to pass on their turn simply giving the next actor without the enemy getting a free turn in between. Is this possible? I apologize for the questions I just cant seem to find this info anywhere.

    • Matt says:

      It removed my code from the post because it thought it was HTML. This is what I thought I could put in the actor tag.

      battle command: Inventory item

    • Hime says:

      It looks like I didn't include it on the description on this page. If you look at the plugin instructions through the "help" section when setting up the plugin, there is a section called "Working with Advanced Battle Command" that provides an example how to customize the command name, among other things.

      For removing the party commands at the start of battle, no, this plugin does not change the battle sequence logic. You would need a different plugin that will bypass that initial command.

      If you require a “wait” command, that largely depends on the battle system you’re using.

  5. Kai Asakuro says:

    Hey! I was wondering… I’m using yanfly’s subclass plugin and have it enabled where equipping a subclass grants that subclass command. How would i be able to display that subclass command? since currently it doesn’t show.

  6. Alliarys says:

    Hi, I’m super-confused as to the location of where to use these scripts.
    I’m trying to build a tutorial in the game to show how to use a specific skill, and I want all the other commands disabled.
    Since it’s only for a particular battle (the demo one), I’m trying to call it during a Battle Event.
    Where do I put disable_actor_command(1, "attack")?

  7. Songsmith says:

    Hi! I’m getting an error whenever this plugin is on and a battle starts. It says “Cannot read property “length” of “undefined”. I do have a lot of other plugins running too (nearly all yanfly stuff), so that could be it. Any help?

  8. Ironjoebob7 says:

    Hi so I’m having trouble with this plugin, literally everything in this plugin works except for the hide skill type part, which is exactly what i need it for. 🙁
    I just need to hide the passive skills from battle so that players can still see them outside of battle but its not in their way during…

    • Hime says:

      There was an issue where using the skill_list command to display all skill types that you can use didn't check whether the skill type was hidden or not. I have updated the plugin to address this issue.

      So for example, let's say your actor can use Magic and Special skill types. You displayed them all using the skill_list command since you didn't know which ones would be available depending on which traits were applied to the actor.

      If you used the script call

      hide_actor_command(2, "skill_type", 1)
      

      This would hide the first skill type, and it won't be listed even if you use the skill_list command.

      • Ironjoebob7 says:

        Awesome, Thank you so much for your help and quick reply, it totally works now. You and Yanfly are the reason Rpg maker is so amazing. 🙂

  9. DerekD says:

    How do I add a command using the Yanfly plugin ‘Change Battle Equip’? This plugin prevents the command from appearing in the battle menu, and I want players to be able to change their equipment mid-battle.

    • Hime says:

      I have added an add-on in the download section that will allow you to manage yanfly’s “Equip” command. The add-on must be placed below yanfly’s plugin.

  10. Kip says:

    I hope I’m not a to late on the message board to get a response or anything, but I would love a little input…

    Is anyone else having issues with the “hide_actor_command(ID, SYMBOL, EXT)” function?

    I’m trying to add a mechanic to my game where a certain skill set only becomes available when a specific condition is met
    Example:
    I have it set up to that if your fighting an enemy with a lasso and they use a move to wrap you up in their rope, you become “constricted”
    When you are “constricted, you cannot attack or use any traditional moves and a new move set would become available called “struggle”

    The thing is, when I call on the script ” hide_actor_command(1, “skill_type”, 1) ” nothing happens. the battle plays out as if I had made no changes.
    But when I call on the script ” hide_actor_command(1 “skill_list”) it will hide all skill lists just fine!

    Am I doing something wrong? Has anyone else experienced these issues?

    • Hime says:

      The way it works now, skill_list and skill_type are two different commands. So hiding a skill type doesn’t work if they’re generated using skill_list

  11. Kisai says:

    For some reason, the plugin doesn’t work anymore. At least, as far as disabling and hiding commands. I’ve even started a new project just to see if it was still having problems, and the plugin won’t even work on a new project, either.

    • Kisai says:

      Just in case anyone else makes the same mistake… I thought I was supposed to use “Plugin Command”, but after reading carefully, it’s actually “Script”. It’s a script call.
      I had actually made a brand new project, and STILL used “Plugin Command”, which is why it still wouldn’t work. I was SO sure it was “Plugin Command” until I finally took a look, noticed the help text said to “use a script call”, and after using that, it now works perfectly fine again.

  12. Sundricat says:

    I need to disable a skill type if a certain actor isn’t in battle. For example, I want to disable the Black Magic Sword skill type if the Black Mage isn’t in battle.

  13. Sundricat says:

    Is there a way I can hide a skill type using skill_list in battle, but still have it appear in another location in the command list?
    For example, there are several attack skills, and the Attack skill type appears first in battle. But it needs to only appear once in the list in battle while still appearing in the menu screen.

  14. rikku says:

    Hey I’m having a bit of an issue as well, I watched the video of this on youtube and found that you can place a skill in the command bar as well I was trying that by making one of my classes unable to attack she is a songstress so I wanted her to sing as an attack which will heal the party 10% when I took her attack away and went to add a skill its adding the drop
    down for the skills and I just want the one skill called sing to be used not the skills command. what did I do wrong?

    • Hime says:

      Are you using the use_skill command or the skill_list command?
      See the downloads section for a link to the Use Skill plugin.

  15. Anonymous says:

    Hi, I’m having trouble with this plugin. I try to disable items and guard from an event, but I get a Syntax error Unxpected end of input.

    • Anonymous says:

      Actually, that the error I got after trying commas at the end. Without the commas, I get “disable_actor_command is not defined”

      • Hime says:

        What is your script call? When I write
        disable_actor_command(5, "guard")
        It disables the guard command for actor 5.

  16. Chaos17 says:

    Hi,

    I tried your plugin with Moghunter Battle command and unfortunaly they’re not compatible together because I can’t manage to hide my passive skill : hide_actor_command(1, “skill_type 2”)

  17. drcakey says:

    So in the documentation the advanced battle command notetag looks like this:

    <battle command>
    name: "Guarding skill!"
    symbol: "guard",
    isEnabled: "a.hp > 200",
    isVisible: "a.hp > 100"
    </battle command>

    How do I specify extra data?

    • Hime says:

      Oops. It is the “ext” property.

      • drcakey says:

        Sorry, I’ve got another issue. Every time I use the advanced notetag, RPG Maker throws me a ‘SyntaxError: Unexpected identifier’.

        I’ve turned off all other plugins and copy-pasted the example from the documentation, so I haven’t mis-typed anything, and I’ve also tried re-downloading the plugin, but the error persists.

        • Hime says:

          Can you post the note-tag?

          • drcakey says:

            I found the problem. There needs to be a comma at the end of every line, like this:

            <battle command>
            name: "Guarding skill!",
            symbol: "guard",
            isEnabled: "a.hp > 200",
            isVisible: "a.hp > 100"
            </battle command>

            But it was written like this: (This is exactly how it is in the documentation)

            <battle command>
            name: "Guarding skill!"
            symbol: "guard",
            isEnabled: "a.hp > 200",
            isVisible: "a.hp > 100"
            </battle command>

            I wasn’t sure why the commas were there. Now I know.

          • Hime says:

            Hmm, I should probably mention that somewhere.

          • drcakey says:

            Also, I’ve noticed something odd. If the basic notetags like <battle command: item> are used in the same notebox as the advanced notetags, the advanced notetags will appear at the bottom of the command list, no matter the order they’re in in the notebox. This can be solved by using only the advanced notetags, but it’s still strange.

  18. Nev says:

    Hi, the plugin seems to not be working for me (or more likely I’m doing something wrong).

    I can define each command in the notetags and that seems to work (for example, if I leave out a command from the class/actor’s notetags the ones I haven’t listed like ‘guard’ stop appearing). But when I use the script call “disable_actor_command(1, “item”)” in a troop or any other combination then nothing happens. I can still select item just fine. It’s definitely Actor 1 i’m using as well.

    I also disabled all my other plugins, so it doesn’t seem to be a conflict with any of them. No one else in the comments seems to be having this problem though, so I don’t know why it’s happening to me. I must be overlooking something, any ideas?

  19. Kandos says:

    Great work. it seems this plugin is just i needed. in my game the main character have a ‘watcher’ in his side that temporarily can’t assist him during combat excpet healing spell.

  20. Mattchaby says:

    Hello, I have an issue with your plugin: actor 1 has the ability to change class during combat (through skill that calls common event), I have set the available commands for each class but when changing commands during combat the default class commands remain (except that the unavailable commands are simply disabled). There is the same issue with your Skill Command add-on where the command from the new class doesn’t show up. Is there a way around that? Am I doing something wrong? Would you be able to update the plugin? Thanks!

    • skyshadow235 says:

      Hello again,
      I am writing to report I am actually getting the same thing ^^’ . I even tried a simple event to hide the command if the actor is another class, but that didn’t work. Like the last time you helped me, I made sure the event was activating by using a message that was showing with the rest of the event. So the message shows, but the commands don’t hide/show with the new class. only the initial class can be affected.

  21. Anonymous_01 says:

    Hi Tsukihime.
    Is there a way to hide a command until an actor learn a certain skill? For exemple, until actor 1 learns ice, the Ice Magic command would be hidden or grayed out. Is it possible to do that?

    • Hime says:

      This depends on how you learn skills. For fairly simple situations, you can have an event run a conditional branch to check whether the actor has learned a certain skill or not (second page of conditions), and then enable/disable or hide/show commands as needed.

      For more complex situations, I am currently looking at how you could specify conditions directly for disabling or hiding commands.

  22. skyshadow235 says:

    Hi, I found a weird limitation in rpg maker’s system. Pretty sure its not a bug with the plugin, just something I thought I’d let you know about. If you have commands set in a classes note tag. and events to hide/show the commands during battle. If you have 2 actors with the same class with different events that require the same condition ie. actor 1 is in a certain state, and the other event actor 2 is in a similar certain state. The system will consider the 2 actors the same actor. This happens when battle testing in database and not ingame, so I am pretty sure its not a bug in the plugin ^-^ just something weird I thought I’d share

    • Hime says:

      Definitely a bug in the plugin. Both actors are referencing the same class command, which means if you disable/hide that command, all actors will not have it. This is a bug because you're not actually "sharing" the command between different actors; each actor should have their own copy of it.

      Though, the idea of sharing a command isn't too bad…but I will assume all commands should be independent.

      I’ve updated the plugin to address the issue.
      Thanks for the report!

  23. skyshadow235 says:

    Hello,
    I believe I have found a bug with the plugin. When using the scripts in a conditional branch, the script call being read won’t change when the conditional branch changes from true to false or vise-versa. EX: I placed a command/skill to be shown while a character is under a certain state, and hidden if not in that state. Since, at the start of the battle the character will not be in the state, the condition is false and the command/skill is hidden. Note I did also make sure that the game is checking each turn to make sure the condition is still false or not, but when the condition changes to true, the skill still won’t appear. I have double/triple checked all the settings and even tried to vise-versa the show/hide. Of course I tried it without the conditional branch and even tried a conditional branch that only checks to see if the condition is true. Without the conditional branch it works, but not with it. It just won’t work in a conditional branch :(. Anyway I just thought I’d point that out and see if it was an actual bug or not.

    • Hime says:

      Are you sure the conditional branch is actually running? If it works without the conditional branch, I would imagine your condition is never true.
      Try displaying a message before you show the command to see if the condition actually works.

      • Anonymous says:

        Yay, the problem was that while I had set it to it to turn 0 as the trigger point with each turn checking if the trigger condition is met… I changed it to end turn and added a different event with a turn 0 trigger to hide the command and it works thank you 😀 this plugin is awesome.

Leave a Reply

Your email address will not be published.

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax