MGQ3 GC345's patch testing/Advanced

Advanced evades

 * You have the full control over both evade routines ("wind" and "water") if you want. You can set evade conditions and you can change the evade routine itself.


 * To start a customized evade routine - just use the custom dialogue as the skill_aqua= or skill_wind= target. The example: skill_aqua="!evade1". The game will go to the [evade1] routine.


 * Wind multi-evades are supported too.


 * Warning: the counterattack, 2 charged attacks, enemy healing, spirit canceling and AS summoning hit always and ignore both evade keys.


 * Warning: the customized evade routine not needs Sylph/Undine/Serene Mind/FAD. It starts always if defined. Because of this - it works in the surrender and request routines too. So you must check spirits and surrender conditions manually.


 * Supported commands for customized "water" evade routines:
 * var_ld, var_cal, var_cpa, var_jumpline, var_dice, var_dice2, gotoline - the syntax and usage are standard. Use these commands to calculate evade chances and to select the routine.
 * end - finishes the routine and return to the enemy attack (="no evade").
 * execute - this command starts the evade move (="the hero evades"). The syntax is ="execute[, ]". If is skipped - the game executes the standard "Serene Movement" (even if Undine or Serene Mind C aren't active).


 * Customized "wind" evade routine commands:
 * all of above commands. The standard wind evade works incorrectly if the %wind value is 0 so please check this (not use "execute" w/o parameters if %wind=0).


 * Customized "wind" multi-evade commands:
 * var_ld, var_cal, var_cpa, var_jumpline, var_dice, var_dice2, gotoline and end commands aren't changed.
 * the execute command evades 1 hit and continues an enemy attack.
 * the finish command evades 1 hit, skips all remaining hits and continues an enemy attack. The syntax is  ="finish[, ]".


 * Warning - be very accurate with the finish command. If an enemy attack not have the multi-evade flag - the finish command will be ignored. This can crash the evade logic or just freeze the script.

Example:

[skilla1] ... skill_wind="!evade1" skill_wind_anno="!evade1anno" ... [evade1] 100="var_ld,v19,kousan" 101="var_cpa,v19,>,0" 102="var_jumpline,108" 103="var_ld,v19,wind" 104="var_cpa,v19,=,1" 105="var_jumpline,109" 106="var_cpa,v19,=,2" 107="var_jumpline,113" 108="end" 109="var_dice,v19,100" 110="var_cpa,v19,<,10" 111="var_jumpline,117" 112="end" 113="var_dice,v19,100" 114="var_cpa,v19,<,25" 115="var_jumpline,117" 116="end" 117="execute" [evade1anno] 100="var_ld,v19,wind" 101="var_cpa,v19,=,1" 102="var_jumpline,105" 103="But Luka moves like the wind and dodges!" 104="end" 105="But the wind blows it away!" 106="end"
 * Supports both "Wind Wall" (10% chances) and "Wind Dance" (25% chances).

Advanced requests

 * The default Request routine in Spin-offs isn't very effective. There are many flaws (for the OHKO query mostly). Now you have the advanced control for which skills in which order will be executed. For different conditions.


 * To start a script - just use a custom dialogue link for the skill_onedari_use= key. Skill_onedari_use="! " transmits controls to the [ ] section.


 * Supported commands are:
 * Var_ld, var_cpa, var_cal, var_jumpline, var_dice, var_dice2, gotoline are standard.
 * End finishes the script and returns controls to the main enemy attacks routine.
 * Execute. The syntax is ="execute,". This command executes the enemy attack in the [] section and continues the script.
 * You can use a custom dialogue link as a target for the "execute" command. Use ="execute,! ".


 * Warning: the must use the naming convention.


 * Warning: you must stop each script branch with the "end" command or with the gotoline command to the previous string.


 * Warning: the 1st "execute" command starts standard Request preparations (unsumman all spirits, stops Guard, stops "Serene Mind A" etc). There are 2 versions of standard Request preparations in the game. The main difference is the bind status, the 1st routine always breaks the bind. To force this routine - use ="execute,a " command as the 1st execute. In other words if the 1st skill in the Request script starts from "a" then the bind will be stopped. All others skills not breaks the bind.

Example: [skilla4] skill_name="Mount" ... [skillb1] skillname="Goblin Insertion" ... [skilld1] skill_name="Goblin Tighten" ... [onused1] 100="var_ld,v18,kousoku" 101="var_cpa,v18,=,0" 102="var_jumpline,106" 103="var_cpa,v19,=,1" 104="var_jumpline,107" 105="gotoline,108" 106="execute,a4" 107="execute,b1" 108="execute,d1" 109="gotoline,108"
 * The standard routine always breaks the bind, then executes "Mount", "Goblin Insertion" and "Goblin Tighten".


 * This routine checks the bind level and executes [skilla4] - [skillb1] - [skilld1] continuously if hero is unbinded (lines 100-102, then 106-109). Or skips [skilla4] and starts from "Goblin Insertion" if hero is already binded (lines 103, 104). Or even starts from [skilld1] (the line 105).
 * The v19 variable is used to differ bind levels in the same query. [Skilla4] sets v19=1, [skillb1] sets v19=2.

Advanced links

 * You can use the special version of custom dialogues with the followup_instant= key. This feature was added for the multi-enemy battles mostly.


 * To start the advanced link - use followup_instant="! " then define needed commands in the [ ] section.


 * Supported commands:
 * Var_ld, var_cpa, var_cal, var_jumpline, var_dice, var_dice2, gotoline are same as in the main story and custom dialogues. They are used to choose what enemy skill you need to link. See the example below.
 * Name temporaly changes the current enemy name. The name is remembered at the followup_instant= start and is restored at the start of each turn. The syntax is standard -  ="name, ".
 * End stops the script and continues the standard enemy attack query.
 * Execute. The syntax is  ="execute, ". Stops the script and starts the [skill ] attack.  must use the name convention. "Win" isn't supported.

Example:

[skilla1] skill_kouka="7" skill_kakuritu="20" skill_sel1="Uuu...Aaa..." skill_sel2="Thirst...Heal..." skill_sel3="Man...Energy..." skill_anno1_1="Zombie Girl A slowly shambles toward Luka!" skill_message_mode="1" followup_instant="!query1" [query1] 100="var_cpa,v19,<,3" 101="var_jumpline,103" 102="end" 103="name,Zombie Girl B" 104="var_dice,v18,30" 105="var_cpa,v18,<,11" 106="var_jumpline,110" 107="var_cpa,v18,<,21" 108="var_jumpline,111" 109="execute,a11" 110="execute,a9" 111="execute,a10"


 * The v19 variable stores the battle stage (1 for 3 zombie girls, 2 for 2 zombie girls, 3 for the last zombie).
 * The line 100 checks if v19<3, jumps to the line 104 if the check is true (line 101) or end the script if there is only 1 enemy left.
 * The line 103 changes the name to Zombie Girl B so all linked attacks will use this name.
 * Lines 104-108 randomly select 1 skill from 3, lines 109-111 execure the selected skill.

Recursion example: [skilla1] ... followup_instant="!query1" [query1] 100="var_ld,v19,hit" 101="var_cpa,v19,>,0" 102="var_jumpline,104" 103="execute,a1" 104="end"
 * The skill will be used twice.

Custom hero attacks

 * You can now redirect the standard hero's attack to any custom dialogue. And then make anything you want with an enemy. :)


 * Use the  ="change,customattack, " command. It redirects the normall attack to the [customattack ] section. After "end" or "execute" commands the battle continues.


 * You can use all custom dialogue commands (sprites, sounds, change variables, print text).


 * There are 4 more commands:
 * commonattack ( ="commonattack") and commonattack1 ( ="commonattack1") execute the standard hero's attack ("Blade of Still Water" if Undine level 2 or 3 is active, 2 hits if Sylph level 3 is active, always critical if Gnome level 3 is active etc). "Commonattack1" not prints hero's messages and not changes SPs.


 * You can control the result with the "change,action" command. If you set the action before commonattack / commonattack1 - the result isn't random:


 * "change,action,1" forces normal attack.
 * "change,action,2" forces critical hit.
 * "change,action,3" forces miss.
 * "change,action,4" forces "Blade of still Water".
 * "change,action,-3" uses the standard hero's attack but it always hits, no misses.
 * Plus you can disable the attack sound and the damage routine with the "change,skill_sub,1" command. It's used for enemy evades and custom damage values.


 * the listX command creates the attack list. The syntax is  ="listX,[,]". "List1" starts the list, all keys except "listX" and "end" are ignored after "list1".


 * After the "end" command the attack list with founded values will be executed. You can choose one of attacks then the game goes to the  section. Or you can use right-click to return to the main hero actions menu. If  is absent - the standard hero's attack will be used.


 * the execute command. See HP traps.


 * Warning: the game still uses the standard "end of hero's attack" routine after a custom attack. So - you will go to the win routine if enemy HPs are 0 and will go to the enemy counter routine if enemy counter is active and the attack result isn't miss (%before_action=3) or "Magic Concentration" (%before_action=59). To change this - use HP traps with the ",1" or ",2" parameter and the "change,action,3" command.

Custom hero skills

 * Same as for custom hero's attacks - you activate this feature with the "change" command. Use ="change,customskill,". After this the game will analyze the [customskill] section before you execute any skill.


 * Possible [customskillX] keys are:
 * skillX=. The syntax is skillX="". Redirects the associated skill to the  section. You can use all custom dialogues commands.
 * skillXname= (skillXname="") - replaces the standard skill name in the Skill menu to.


 * Warning: this command affects the Skill menu only. The skill itself still uses the default nametag. You must overload the skill or use the skillXtag= key to change this.


 * skillXmp= (skillXmp=" ") - replaces the standard SP cost in the Skill menu to this.


 * Warning: this value affects the skills menu only. (Can you execute the skill or it's grayed). The skill itself still changes SPs per the default value. You must overload the skill or use the "customskill1" command to change this.


 * skillXoff= (skillXoff="1") - not shows the skill entry.


 * skillXtag= (skillXtag="") - replaces the standard skill plate to . This key not works for overloaded skills but works for commonskill/commonskill1 commands.


 * Warning: this key will be analyzed when the game executes the standard skill.


 * Warning: beta 11 have separated angelic and normal spirit summons. Now there are skill8d/10d/14d for skill_earth/aqua/fire="4" and skill8e/10e/14e for skill_earth/aqua/fire="5" (similar to Sylph summons). Slill8b/8d, skill8c/8e and skill14c/14e are identical. Skill10c/10e and skill14b/14d are identical except the SP cost. Skill10d is the "Serene Mind C" variant after Undine is returned (similar to skill7d).


 * Warning: beta 11 have changed skill18 ("Serene Mind" C) behavior. It always use gray icon and needs/sets "action"=60. After you got Undine back - the game uses skill10d now. So if you have used sinkou_listX="action,45,..." to intercept this skill - please replace it to sinkou_listX="action,60,...". Same for the action1 trigger.


 * SkillX can be skill1 ("Demon Decapitation", 21), skill2 ("Flail Wildly", 41), skill3 ("Thunder Thrust", 22), skill4 ("Meditation", 42), skill5 ("Demon Skull Beheading", 23), skill6 ("Death Sword Chaos Star", 24), skill7 ("Wind Protection", 43, skill02=0 or 1), skill7b ("Playful Wind", 43, skill02=2), skill7c ("Devastating Gale", 43, skill02=3), skill7d ("Fallen Angel Dance" B, 43, skill02=4), skill7e ("Fallen Angel Dance: Gale", 43, skill02=5), skill8 ("Strength of the Earth", 44, skill03=0 or 1), skill8b ("Breath of the Earth" A, 44, skill03=2), skill8c ("Wild Lands" A, 44, skill03=3), skill8d ("Breath of the Earth" D, 44, skill03=4), skill8c ("Wild Lands" B, 44, skill03=5), skill10 ("Water Wall", 45, skill04=1), skill10b ("Serene Mind" A, 45, skill04=2), skill10c ("Serene Mind" B, 45, skill04=3, 4 SPs), skill10d ("Serene Mind" D, 45, skill04=4), skill10e ("Serene Mind" E, 45, skill04=5, 2 SPs), skill11 ("Lightning Sword Flash", 25), skill12 ("Earth Rumbling Decapitation", 26), skill13 ("Serene Demon Sword", 27), skill14 ("Blade of Flame", 46, skill05=0 or 1), skill14b ("Hellfire Sword" A, 46, skill05=2, 2 SPs), skill14c ("Purgatory Flame" A, 46, skill05=3), skill14d ("Hellfire Sword" B, 46, skill05=4, 4 SPs), skill14e ("Purgatory Flame" B, 46, skill05=5), skill15 ("Quadruple Giga" preparation, 47), skill15d ("Quadruple Giga", 28), skill16 ("Vaporizing Rebellion Sword", 29), skill17 ("Edging", 55), skill18 ("Serene Mind" C, 60), skill19 ("Flash Kill", 30), skill20 ("Ninefold Rakshasa", 31), skill21 ("Heavenly Demon Revival", 32), skill22 ("Magic Concentration", 59), skill22x (Daystar), skill23 ("Fallen Angel Dance" A, 56), skill24 ("Element Spica", 34), skill25 ("Quad Spirit Summon", 57).


 * Additional commands in a body of custom hero skill:
 * commonskill and commonskill1 commands. Execute 1 standard skill. You control the skill choice with "change,action" and "change,skill_wind" / "change,skill_earth" / "change,skill_aqua" / "change,skill_fire" commands. Action values are listed above. Daystar can't be summoned by this method. Customskill1 not prints hero's messages and not changes SPs (similar to the commonattack1 command).


 * Warning: You can use the "change,skill_sub,1" command to suppress skill hit sound and damage routine. This is used for enemy evades/defence/custom damage (similar to custom hero attacks).


 * the execute command. See HP traps.

Example: if you want to execute Blade of Flame in a place of Purgatory Flame (Angelic skill menu):

[data] ... skill="22" skill_fire="5" ... [story] ... XXX="battle_st" ... YYY="change,customskill,1" ... ZZZ="battle" [customskill1] skill14e="newpurgatoryflame" skill14ename="Blade of Flame - 2" skill14emp="2" [newpurgatoryflame] 100="name,Luka" 101="Salamander, lend me your power...!" 102="name," 103="change,mp,2,-" 104="change,action,46" 105="change,skill_fire,1" 106="commonskill1" 107="change,skill_fire,5" 108="end" Example: make "Quad Spirits Summon" with different name, different SPs cost and 5 turns for Salamander:

[customskill1] skill25="unity" skill25name="Heinrich's Unity - 1" skill25mp="1" skill25tag="Heinrich's Unity" [unity] 100="name,Luka" 101="Here we go, everyone!" 102="name" 103="change,mp,1,-" 104="change,action,57" 105="commonskill1" 106="change,fire_turn,5" 107="end"

Example: show only Salamander summon, disable Sylph, Gnome and Undine (angelic skills after the Seal is removed):

[customskill1] skill7eoff="1" skill8eoff="1" skill10eoff="1"

Example: make an enemy invinsible to skill (Demon Decapitation):

[customskill1] skill1="newdecap" [newdecap] 100="change,action,21" 101="skill_sub,1" 102="commonskill" 103="se,2,earth3" 104="delay,90" 105="But enemy takes no damage!" 106="end"

Custom Guard and Wait

 * These 2 commands can be overloaded similar to Attack and Skill.


 * Use the ="change,customguard, " command to use the [guard ] section as the Guard command routine. Use ="change,customwait, " to use the [wait ] section as the Wait command routine. "Change,customguard,0" and "change,customwait,0" return to default routines.


 * Any guard routine still sets the corresponding variable. So the non-armor-piercing damage is halved and charge attacks are avoided.