DoubleX RMVXA Tag Addon to Yami Engine Symphony - Battle Symphony

DoubleX

Just a nameless weakling
Veteran
Joined
Jan 2, 2014
Messages
1,787
Reaction score
939
First Language
Chinese
Primarily Uses
N/A
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

#==============================================================================|# ** 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#==============================================================================|
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
 

Attachments

Last edited by a moderator:

einlanzer

Villager
Member
Joined
Mar 22, 2014
Messages
28
Reaction score
2
First Language
English
Primarily Uses
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!
 

DoubleX

Just a nameless weakling
Veteran
Joined
Jan 2, 2014
Messages
1,787
Reaction score
939
First Language
Chinese
Primarily Uses
N/A
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.
 
Joined
Jan 23, 2014
Messages
161
Reaction score
19
First Language
English
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~

# 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

#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # 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

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 
 
Last edited by a moderator:

DoubleX

Just a nameless weakling
Veteran
Joined
Jan 2, 2014
Messages
1,787
Reaction score
939
First Language
Chinese
Primarily Uses
N/A
Try this instead:

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
 
Last edited by a moderator:
Joined
Jan 23, 2014
Messages
161
Reaction score
19
First Language
English
Try this instead:

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.
 
Last edited by a moderator:

DoubleX

Just a nameless weakling
Veteran
Joined
Jan 2, 2014
Messages
1,787
Reaction score
939
First Language
Chinese
Primarily Uses
N/A
You may want to give me your demo this time :)
 
Joined
Jan 23, 2014
Messages
161
Reaction score
19
First Language
English
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. >.<
 
Last edited by a moderator:

DoubleX

Just a nameless weakling
Veteran
Joined
Jan 2, 2014
Messages
1,787
Reaction score
939
First Language
Chinese
Primarily Uses
N/A
(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:

<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:

# 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
 
Last edited by a moderator:
Joined
Jan 23, 2014
Messages
161
Reaction score
19
First Language
English
(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:

<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:

# 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!

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.
 
Last edited by a moderator:

DoubleX

Just a nameless weakling
Veteran
Joined
Jan 2, 2014
Messages
1,787
Reaction score
939
First Language
Chinese
Primarily Uses
N/A
Finally figured out the root cause of your issue:

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.
 
Last edited by a moderator:

nazgul

Husband
Veteran
Joined
Jul 23, 2015
Messages
116
Reaction score
39
First Language
english
Primarily Uses
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.
 
Last edited by a moderator:

DoubleX

Just a nameless weakling
Veteran
Joined
Jan 2, 2014
Messages
1,787
Reaction score
939
First Language
Chinese
Primarily Uses
N/A
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 :)
 

XPhater

Veteran
Veteran
Joined
Apr 27, 2014
Messages
129
Reaction score
32
First Language
english
Primarily Uses
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
 

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

Latest Threads

Latest Posts

Latest Profile Posts

Couple hours of work. Might use in my game as a secret find or something. Not sure. Fancy though no? :D
Holy stink, where have I been? Well, I started my temporary job this week. So less time to spend on game design... :(
Cartoonier cloud cover that better fits the art style, as well as (slightly) improved blending/fading... fading clouds when there are larger patterns is still somewhat abrupt for some reason.
Do you Find Tilesetting or Looking for Tilesets/Plugins more fun? Personally I like making my tileset for my Game (Cretaceous Park TM) xD
How many parameters is 'too many'??

Forum statistics

Threads
105,862
Messages
1,017,049
Members
137,569
Latest member
Shtelsky
Top