DoubleX RMVXA Tag Addon to Yami Engine Symphony - Battle Symphony

● ARCHIVED · READ-ONLY
Started by DoubleX 15 posts View original ↗
  1. DoubleX RMVXA Tag Addon v1.00a to Yami Engine Symphony - Battle Symphony​
    by DoubleX​

    Prerequisites

    Yami Engine Symphony - Battle Symphony

    http://forums.rpgmakerweb.com/index.php?/topic/6037-battle-engine-symphony/?hl=%2Bbattle+%2Bengine+%2Bsymphony

    Introduction

    Allows users to add their own symphony tags for battler selections

    Spoiler
    #==============================================================================|# ** You only need to edit this part as it's about what this script does |#------------------------------------------------------------------------------|module DoubleX_RMVXA module YES_BattleSymphony_Tag_Addon # This method will only be called by methods get_action_mains and # get_action_targets under class Scene_Battle def self.symphony_tag(action, result) case action # Example new symphony tag: id x, game actor with id x when /ID[ ](\d+)/i result.push($game_actors[$1.to_i]) # #------------------------------------------------------------------------- # Add your own symphony tags here # #------------------------------------------------------------------------- end return result end # self.symphony_tag end # YES_BattleSymphony_Tag_Addonend # DoubleX_RMVXA#==============================================================================|
    Spoiler
    You may want to 'upgrade' the example new symphony tag to this(it can handle any number of game_actor ids):

    # Example new symphony tag: id x y - game actors with id x and y respectivelywhen /ID[ ](\d+(?:\s* \s*\d+)*)/i $1.scan(/\d+/).each { |num| result.push($game_actors[num.to_i]) }
    Features

    Decent symphony tag and scripting knowledge is needed to use this script

    How to use

    Open the script editor and put this script into an open slot below the script Yami Engine Symphony - Battle Symphony but above Main. Save to take effect.

    FAQ

    Q1: How to use symphony tags?

    A1: Check http://forums.rpgmakerweb.com/index.php?/topic/19884-a-guide-to-yamis-battle-symphony/?hl=symphony

    Q2: How to add new symphony tags using this script without having any scripting knowledge?

    A2: You can ask for solutions to deal with specific tags you want to add here(but I may be too nub to answer :) ), but right now I don't think I'm competent enough to teach general knowledge for adding new symphony tags XD

    Credit and Thanks

    DoubleX(Giving me credit is completely optional)

    The terms of use is the same as that of Yami Engine Symphony - Battle Symphony except that you must also give Yami credit(you should do this anyway) if you give DoubleX or his alias credit

    Compatibility
    Same as that of Yami Engine Symphony - Battle Symphony

    Changelog

    v1.00a(GMT 0200 7-3-2014):

    - 1st version of this script finished

    (DoubleX)YES-Symphony Tag Addon v1.00a.txt
  2. Thanks for this DoubleX!  The main thing I'm looking to be able to do is animate specific actors in conjunction with unison attacks.  It seems the standard tags only animate other actors based on their battle position, which is of course inadequate because unison attacks would typically be character-specific.  Is there a simple way for me to use this to do that?  Or was it already done and I'm just missing it?

    Thanks again!
  3. einlanzer said:
    Thanks for this DoubleX!  The main thing I'm looking to be able to do is animate specific actors in conjunction with unison attacks.  It seems the standard tags only animate other actors based on their battle position, which is of course inadequate because unison attacks would typically be character-specific.  Is there a simple way for me to use this to do that?  Or was it already done and I'm just missing it?

    Thanks again!
    I think all you need here is the actor's id, and it can be specified using the symphony tag I added as the example in my script: id x, game actor with id x.
  4. Hello DoubleX! Man you are just amazing.

    I have a question, I made a Hide Skill that makes the user vanish until they use a skill. (Hide States are 81,82,83) I want them to stay hidden from sight even if someone else makes a move.

    Here is my symphony tag added under yours~

    Spoiler
    # Hide the non-hidden, exclude the hidden when /(?:NOT HIDE FOCUS|NON HIDE FOCUS)/i vis_members = $game_party.alive_members $game_party.alive_members.each do |actor| hide1 = actor.states.include?($data_states[81]) hide2 = actor.states.include?($data_states[82]) hide3 = actor.states.include?($data_states[83]) hide = (hide1 || hide2 || hide3) vis_members.delete(actor) if hide == true end result = vis_members + $game_troop.alive_members result -= @action_targets result.delete(@subject) if @subject 
    Also here is the autosymphony tag

    show/hide nonfocus2

    Spoiler
    #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # autosymphony: hide nonfocus2 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # This hides whatever isn't the active battler and its targets and battler # with the effects of Hide. Great for long action sequences or summoning # sequences when the allied party members, who aren't involved, will # disappear. In addition to that, the screen will also fade black and the # battle waits 32 frames. #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= "HIDE NONFOCUS2" => [ ["VANISH", ["NOT HIDE FOCUS", "TRUE"]], ["SCREEN", ["DARKEN"]], ["WAIT", [32]], ], # end HIDE NONFOCUS2 #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # autosymphony: show nonfocus2 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # This removes the hidden effect from the vanished units in the hidden # version, except for battlers with Hide of this AutoSymphony. Returns all # of the hidden non-participating party members back into view. The screen's #fade will return back to normal and the battle waits 16 frames. #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= "SHOW NONFOCUS2" => [ ["VANISH", ["NOT HIDE FOCUS", "FALSE"]], ["SCREEN", ["LIGHTEN"]], ["WAIT", [16]], ], # end SHOW NONFOCUS2
    The supposed logic that I've done is check for the Hide states on each actor, if that actor has that state, remove them from the vanish pool. (since they are already vanish'd). Then focus on the user and the target.

    However it does the exact opposite, focuses on the hidden battle and vanishes the user and target.

    Here's what I mean: http://i.imgur.com/tJDUDn1.png <-- Both targets that are supposed to be focused aren't. Aquarius is just standing there lol

    Any Ideas?

    P.S. 

    Also just for reference:

    show/hide non focus

    Spoiler
    Code:
        #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=    # autosymphony: hide nonfocus    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -    # This hides whatever isn't the active battler and its targets. Great for    # long action sequences or summoning sequences when the allied party    # members, who aren't involved, will disappear. In addition to that, the    # screen will also fade black and the battle waits 32 frames.    #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=    "HIDE NONFOCUS" => [      ["VANISH", ["NOT FOCUS", "TRUE"]],      ["SCREEN", ["DARKEN"]],      ["WAIT", [32]],    ], # end HIDE NONFOCUS        #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=    # autosymphony: show nonfocus    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -    # This removes the hidden effect from the vanished units in the hidden    # version of this AutoSymphony. Returns all of the hidden non-participating    # party members back into view. The screen's fade will return back to    # normal and the battle waits 16 frames.    #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=    "SHOW NONFOCUS" => [      ["VANISH", ["NOT FOCUS", "FALSE"]],      ["SCREEN", ["LIGHTEN"]],      ["WAIT", [16]],    ], # end SHOW NONFOCUS 
  5. Try this instead:

    Spoiler
    Code:
          when /(?:NOT HIDE FOCUS|NON HIDE FOCUS)/i        vis_members = []        $game_party.alive_members.each { |actor|          hide = actor.states.include?($data_states[81])          hide ||= actor.states.include?($data_states[82])          hide ||= actor.states.include?($data_states[83])          vis_members << actor unless hide        }        result = @action_targets        result << @subject if @subject        result -= vis_members
  6. DoubleX said:
    Try this instead:

    Spoiler
    when /(?:NOT HIDE FOCUS|NON HIDE FOCUS)/i vis_members = [] $game_party.alive_members.each { |actor| hide = actor.states.include?($data_states[81]) hide ||= actor.states.include?($data_states[82]) hide ||= actor.states.include?($data_states[83]) vis_members << actor unless hide } result = @action_targets result << @subject if @subject result -= vis_members

    Thanks for the quick reply, It still has a problem though.

    The person with hidden state does stay hidden, but the vanish thing that I mentioned earlier still happens.

    As well as doing weird behavior.

    The weird thing happens when hide nonfocus2 is used. (show nonfocus2 works perfectly.) It's wierd right?

    Here's some screenies:

    http://i.imgur.com/MwjH8PI.png <-- everyone vanished. :o

     http://i.imgur.com/BjQN1oJ.png <-- a Wierd bug that happens now.
  7. You may want to give me your demo this time :)
  8. Sure thing! I'll pm you.

    EDIT: It seems that i can't attach a file in a pm. :/

    I got to set it up correctly. I'll edit this when I am ready!

    EDIT2: Ready!

    Apparently my demo is too big. D:

    EDIT3: Sent ya a pm that is a link to the folder. Had to upload it. >.<
  9. (Facepalmed)Turns out that I mixed symphony tags up :D

    So far, this script only deals with target typing symphony tags, meaning any new tag added in this script only returns what are included, so it doesn't care how the results are used.

    Using the example new tag as an example:

    Spoiler
    <whole action>immortal: targets, truemove id 1 2: forward, waitpose: id 1 2, caststance: id 1 2, castanimation 81: id 1 2, waiticon create: id 1 2, weapon</whole action><target action>pose: id 1 2, 2h swingstance: id 1 2, attackicon: id 1 2, weapon, swinganimation 65: targetani wait: 3skill effect: dmgwait for animation</target action><follow action>animation 81: id 1 2, waitpose: id 1 2, 2h swingstance: id 1 2, attackicon: id 1 2, weapon, swinganimation 68: targetsani wait: 2skill effect: wholeani wait: 2skill effect: wholeani wait: 2skill effect: wholeani wait: 2skill effect: wholeimmortal: targets, false</follow action>
    id 1 2 is the sole application of that example new tag in this example.

    It doesn't care whether it's used by move, pose, stance, animation or icon create. It just returns actors with id 1 and 2.

    Going back to your case, as the actual result's exact opposite to what you wanted, you can either use the opposite symphony tags that uses your new symphony tag, or change your new symphony tag to its opposite:

    Spoiler
    # Hide the non-hidden, exclude the hidden when /(?:NOT HIDE FOCUS|NON HIDE FOCUS)/i hide_members = [] $game_party.alive_members.each { |actor| hide = actor.states.include?($data_states[81]) hide ||= actor.states.include?($data_states[82]) hide ||= actor.states.include?($data_states[83]) hide_members << actor if hide } result = @action_targets + hide_members result << @subject if @subject result
    P.S.: Again, now I feel incredibly dumb for mixing such obvious stuffs up lol
  10. DoubleX said:
    (Facepalmed)Turns out that I mixed symphony tags up :D

    So far, this script only deals with target typing symphony tags, meaning any new tag added in this script only returns what are included, so it doesn't care how the results are used.

    Using the example new tag as an example:

    Spoiler
    <whole action>immortal: targets, truemove id 1 2: forward, waitpose: id 1 2, caststance: id 1 2, castanimation 81: id 1 2, waiticon create: id 1 2, weapon</whole action><target action>pose: id 1 2, 2h swingstance: id 1 2, attackicon: id 1 2, weapon, swinganimation 65: targetani wait: 3skill effect: dmgwait for animation</target action><follow action>animation 81: id 1 2, waitpose: id 1 2, 2h swingstance: id 1 2, attackicon: id 1 2, weapon, swinganimation 68: targetsani wait: 2skill effect: wholeani wait: 2skill effect: wholeani wait: 2skill effect: wholeani wait: 2skill effect: wholeimmortal: targets, false</follow action>
    Spoiler
    id 1 2 is the sole application of that example new tag in this example.

    It doesn't care whether it's used by move, pose, stance, animation or icon create. It just returns actors with id 1 and 2.

    Going back to your case, as the actual result's exact opposite to what you wanted, you can either use the opposite symphony tags that uses your new symphony tag, or change your new symphony tag to its opposite:

    # Hide the non-hidden, exclude the hidden when /(?:NOT HIDE FOCUS|NON HIDE FOCUS)/i hide_members = [] $game_party.alive_members.each { |actor| hide = actor.states.include?($data_states[81]) hide ||= actor.states.include?($data_states[82]) hide ||= actor.states.include?($data_states[83]) hide_members << actor if hide } result = @action_targets + hide_members result << @subject if @subject result
    P.S.: Again, now I feel incredibly dumb for mixing such obvious stuffs up lol

    This still has the same issue as before unfortunately. D:

    EDIT: I fixed my issue!

    Spoiler
    when /(?:NOT HIDE FOCUS|NON HIDE FOCUS)/i vis_members = Array.new($game_party.alive_members) $game_party.alive_members.each do |actor| hide = actor.states.include?($data_states[81]) hide ||= actor.states.include?($data_states[82]) hide ||= actor.states.include?($data_states[83]) vis_members.delete(actor) if hide == true end result = vis_members + $game_troop.alive_members result -= @action_targets result.delete(@subject) if @subject Instead of putting it under your ID tag, I put it just above the else in both your statements, and now it works perfectly! :c I wish I knew why it doesn't work for your custom tag.
  11. Finally figured out the root cause of your issue:

    Spoiler
    when /(?:FOCUS)/i result = @action_targets result.push(@subject) if @subject else # This part is added by this script to use custom symphony tags result = DoubleX_RMVXA::YES_BattleSymphony_Tag_Addon.symphony_tag(value.upcase, result) # end
    As your new tag is NOT HIDE FOCUS, which will be captured by /(?:FOCUS)/i, your new tag reader won't be reached at all, meaning NOT HIDE FOCUS effectively becomes FOCUS. Change the name of your new tag to something else.

    (Needing some scripting proficiency)As a general rule, always ensure new symphony tags added in this script won't be read by existing symphony tag readers.
  12. Thanks Double X. I had no idea that would happen. :D
  13. Does this script let you move a character forward when it is there turn to select an action? Sort of like this: Atb bar is full Actor A's turn, Actor A moves forward, select action target. Actor A moves back.

    I am not sure exactly how this script works looks interesting though. If I was right about how this script works, can someone help me set up a basic use of this? Some simple movement back and forward on battler selection.
  14. nazgul said:
    Does this script let you move a character forward when it is there turn to select an action? Sort of like this: Atb bar is full Actor A's turn, Actor A moves forward, select action target. Actor A moves back.

    I am not sure exactly how this script works looks interesting though. If I was right about how this script works, can someone help me set up a basic use of this? Some simple movement back and forward on battler selection.
    Uptil now, Battle Symphony only provides symphony tags that will be used for executing actions. This script doesn't change that :)
  15. Ahhh excellent, this will enable me to finish the Unison Skill where Donna gives Thren a bottle of Whiskey to spit out with Wind Magic while Leigha ignites it and they set everything on fire