MGQ3 GC345's patch testing

Summary

 * Beta 10.04 quickfix is out. Please reupload if you have used the earlier versions.


 * Warning: if you have installed the new patch version - please use "Extras"/"Autosave Data" before continuing the story. "Load game" can cause glitches.


 * Versions history:


 * Beta 2: The effect "99" (plugins) support for bg, sp, sp_non_alpha, sp_del commands; end space autodeleting for name and skillname commands; enemy counterstance attacks ([skill_counter2] - [skillcounter5]); enchanced [hero_sel] and [skillX]\skill_selX keys; the new enemy attack query; the short_name key support; the [data]\type="2" support; the [hero_skill5]\skill_tikei support; preemptive and petrified keys support; status attacks aren't used if hero's status isn't clear; the skill_status_hit key; the pass turn support; binding announcements (mogaku_anno1-4, mogaku_sel1-5, mogaku_dassyutu1/2, mogaku_earth_dassyutu1/2, mogaku_kaisin1/2) can be individual for each binding attack; the enemy healing support; the skill_counter_tatie key for counterstance attacks; the petrification status attack; enemy attacks linking (the followup key).
 * Beta 3: followups are fixed, Daystar counters a full attack. Skill_status_mid, skill_status_end and skill_status_anno keys are added.
 * Beta 4: Custom struggle announcements are fixed. The EOL/@ support is added. The enemy attacks query uses the old order (a1 - a8, tame0, counter0) by default, the new one must be forced manually. Custom surrender announcements (kousan_anno1/2). Up to 10 skill_selX/skill_annoX_X can be used. Win2_del and win2_set commands. Armor ignoring attacks. Skill_kousoku_anno0 can be used with [skilldX]. The hard difficulty can be forced.
 * Beta 5 fixes: the pass turn support; attacks in counterstance.
 * Beta 5 new features: up to 9 hits per attack; frames for each hit; frames can be constant; multiple rape scenes; the syasei_non_alpha command.
 * Beta 6 fixes: 2 typos (*tuika_kousoku, *skill18); the petrified key (now it works for [skilla6] - [skilla8]); the [skillc4] request.
 * Beta 6 new features: custom dialogues; special surrender/requests; 4 more skills in queries; cooldowns for counterstance attacks; the customisable attack strength for special binds (kousoku_type="2"); 2 more types of cooldowns; enemylife and enemykaihuku commands; HP traps; up to 12 skill messages variants; skill_onedari_use, skill_lose_start1/2, skill_multilose keys; the "win" followup/henka target; the skill_rukalose="0" support.
 * Beta 6.1 fix: Special surrender initialization is fixed.
 * Beta 7 fixes: Enemy healing (works if skill_damage1_1>=skill_damage1_2, no crash with counterstance attacks, frames work correctly); win2_del (now it deletes the window only).
 * Beta 7 new features: string sprites (the strsp command); sp_alpha and syasei_alpha commands; followup_always and followup_instant keys; the sprite buttons (spbtn) support; breaking from charged bind supports all 3 types of cooldowns now.
 * Beta 8 new features: the spbtn command can use any string numbers, supports left/right click, automatically hides text window; the "evade each hit" wind evasion; constant automode.
 * Beta 9 fixes: no need for face_x00a.bmp; multi-evade skips passive hits; cutins work always; followup is removed for the charged attack miss; the "change,mylife" command is fixed; skill_selxX keys work with all skill_kouka; the followup_instant key works with [skilld1] - [skilld8].
 * Beta 9 new features: hero messages are always customizable; the skill_rukalose="5" support; the poison status support; ending @, ~ and \ for custom skill_annoX_X; followup_counter and followup_guard keys; triggers; 4 more normal enemy attacks ([skilla13] - [skilla16]); the vic_effevt="3" support; skill_damage_mode and skill_message_mode keys; spirit canceling; the [skilltame2] attack; bg, sp_leftup, sp_rightup, syasei, syasei_non_alpha, syasei_alpha, suasei_leftup, syasei_rightup, syasei2, syasei_clear, select, goto, sp2, sp2_non_alpha, sp2_alpha, sp2_leftup, sp2_rightup, move commands in custom dialogues; the first_selX reset; on-the-fly changing of enemy attack odds; sp2 (all variants) and sp2_del work with the effect "99"; the effects "15" and "18" support; the basic color parameter for the monocro command; the element command supports artifical spirits.
 * Beta 9.1 fix: the change,onedari_list1 crash is fixed.
 * Beta 10 fixes: the var_out command crash is fixed; the Medusa test fight crash is fixed.
 * Beta 10 new features: customizable hero attacks; customizable hero skills; the normal attacks list; string number gotos; unlimited triggers per section; new henka type (",2"); var_XXX commands are added to custom dialogues; 10 more variables for var_XXX commands; "v0" - "v19" can be used as change/enemylife operands; var_ld reads some of variable values.
 * Beta 10.01 fixes: the Flail Wildly crash (since beta 2) is fixed; the version number is changed; no debug message in the custom attack list.
 * Beta 10.02 fixes: Gargoyle Girl's "Gargoyle Bosom" (used once then breaks the chain, since beta 2) is fixed.
 * Beta 10.03 fixes: Alice 15th "Nephilim End" crash (since beta 2) is fixed.
 * Beta 10.04 fixes: Centipede rape scene crash (since beta 2) is fixed; Kitsine's "Double Tail" (used only once per fight, since 19 Apr 2014) is fixed; Berryel's "Semen Sipping Mouth" (no nametag, since 20 Jan 2014); wrong/duplicated battle messages (since 20 Jan 2014) are fixed (Page 65535, Chrome(1), Tarantula, Cobra, Frog Girls, Cerberus, Alma Elma (2), Alra Rooty/Arum, Maccubus, Queen Elf, Valkyrie); "Serene Mind" (w/o Undine) message (since 8 Jan 2014) is fixed; Spin-offs "enemylife" and "enemykaihuku" commands (displays HP bars even if battle isn't active, since beta 6) are fixed; Spin-offs "change,mp" command (not filters negative MPs, since beta 10) is fixed; Spin-offs "damage" command crash (if the 2nd argument is lower the 1st, since beta 9) is fixed.


 * Download link


 * Unpack this archive in the MGQ3 directory.


 * 4 demonstration battles are still in the Map side-story.


 * To uninstall this patch - just delete/move 0.txt from the MGQ3 directory.
 * GC345 (talk) 22:27, February 5, 2016 (UTC)

Spin-off stories

 * You can use plugin effects with bg, sp (all 5 variants), sp_del, sp2 (all 5 variants), sp2_del commands. The syntax is "99, ,".
 * You can use "1", "2", "3" and 4 as library name aliases:
 * "1" uses "system\breakup.dll/urb" - standard monster sealing.
 * "2" uses "system\breakup.dll/lrB" - angel sealing.
 * "3" uses "system\lngtwave.dll/vwi" - wave like Ilias in a dreams.
 * "4" uses "system\trvswave.dll/h" - Black Alice's wave.
 * Examples: 100="bg,bg045,99,1000,3",
 * 100="sp_del,0,99,500,system\breackup.dll/lrB".


 * You can use effect 15 (mask fade) and effect 18 (mask crossfade) with above commands. Use "15, ," or "18, ," as ending parameters.
 * Now 1 ending space is deleted automatically for "name" and "skillname" commands. And for plain text lines. You can use both methods, with or without the ending space - the result will be same.
 * You can use @, ~ and \ at the end of text lines in Spin-off text sections (Warning: not in battle messages). "@" is the new line wait state, "~" just starts a new line w/o a wait state, "\" forces the default new page wait state (may be useful if the text line ends to ~ or @). Plus now the game removes all spaces after the last text symbol.
 * Example: "1234567  @      " result (2 spaces before "@") will be "1234567 " (1 space) with the new line wait state.


 * Warning: Use "@" and "~" with caution, you can easily break 4-strings limit and the game will crash.


 * Win2_del and win2_set commands. The 1st one deletes the story text window, the 2nd one - restores it. No arguments are needed.
 * Sp_alpha, sp_leftup and sp_rightup commands. Are added because the "sp" command always uses the alpha transparency mode for NSA files and the leftup transparency mode for custom files (sp_non_alpha - copy and leftup). These commands always use defined mode (alpha, leftup, rightup) Plus you can use sp_non_alpha with the full "sp" command syntax to force the copy transparency mode. The old syntax ( ="sp_non_alpha,,,[, ]") is still supported for compatibility.
 * Sp2_non_alpha, sp2_alpha, sp2_leftup, sp2_rightup - same as above but for advanced sprites.
 * 4 more variants of syasei command. Syasei_non_alpha, syasei_alpha, syasei_leftup, syasei_rightup. Again the only difference is transparency mode.
 * You can use monocro_on command with any basic color. The new syntax is ="monocro_on[, ]". #888888 used by default (if the parameter is absent).
 * Element command supports artifical spirits. Use "5" for Zylphe, "6" for Gnomaren, "7" for Grandine and "8" for Gigamander.
 * Strsp command. Creates sprite from the given text line. The syntax: ="strsp,,,,,,,, [, ]"
 *  - it is what you want to convert to the sprite. Warning: if this line includes commas - put \ at the start and the end of the line.
 * ,  - coordinates of the sprite upper-left corner.
 *  - font height in pixels.
 * <x_spacing> - character interval (in pixels).
 * - font parameters. 0 - no shadow and no boldface, 1 - shadow and no boldface, 2 - boldface and no shadow, 3 - shadow and boldface.
 * - sprite color in "#RRGGBB" format. You can use "white" as the "#FFFFFF" alias.
 * - optional, the sprite changes its color to this value if the sprite button is active.
 * Example: 100="strsp,\Yeah, right!\,0,0,20,0,3,#FF4444,white" creates red "Yeah, right!" text in the upper-left corner. The font size is 20 pixels. The text will change its color to white after you move cursor to it (if a button was linked with the spbtn command).


 * Spbtn command. Uses sprite as button and jumps to the linked story.ini section. The syntax is ="spbtn,, ".
 * - the button will be linked to this sprite and will be used if you left click this sprite.
 * - the section name in story.ini.
 * you can use "lclk" and "rclk" as sprite numbers. As the result - the 2nd variant jumps to the defined section if you press the right mouse button. The 1st one will be used if you press the left mouse button and the cursor is not above any of defined sprite buttons.
 * The "spbtn" command finishes the current story.ini section, all strings except others "spbtn" commands will be ignored.


 * Spbtn automatically deletes text window. Use "win2_set" command to return it.


 * Warning: you must have 1 non-empty command after the last spbtn. Or the game will freeze. The best way is to use the "end" command.


 * 10 more variables ("v10" - "v19") can be used for all "var_" commands.
 * Enemylife and enemykaihuku commands to damage/heal enemy. "Enemylife" flashes the default enemy sprite ("0") three times, prints " deals damage!" and actually changes enemy HPs/lifebar if the battle was started (after "battle_st" command). Enemykaihuku prints "<enemy_name> recovered HP!" and actually changes enemy HPs/lifebar if the battle is on. The syntax: ="enemylife, [, ]" and ="enemykaihuku, [, ]".
 * If is absent - the exact value will be dealed/recovered. Otherwise the value will be random number between and.


 * You can use "v0" - "v19" as enemylife and sources.


 * Gotoline ( ="gotoline, ") and var_jumpline ( ="var_jumpline, ") commands jumps to the line in the same section. "Var_jumpline" (same as "var_jump") works only if %mon_labo_var_flag was set by the "var_cpa" command.
 * Warning - you can break/freeze the game easily with these 2 commands.


 * Change command can be used to change some in-game values on-the-fly. Its syntax is ="change,, [, ]". The parameter is used only with "mp", "enemylife", "mylife" aliaces.
 * Supported aliases:
 * "Kousan_anno1", "onedari_list1", "mogaku_anno1" - "mogaku_anno4", "mogaku_sel1" - "mogaku_sel5", "mogaku_dassyutu1", "mogaku_dassyutu2", "mogaku_earth_dassyutu1", "mogaku_earth_dassyutu2", "mogaku_kaisin1", "mogaku_kaisin2" and "tatie1"-"tatie3" - changes associated battle section strings.
 * "First_sel1" - "first_sel10" switches 10 boolean keys. The syntax is ="change,first_selX" for activating the key and ="change,first_selX,0" to reset it. These 10 keys are used in custom dialogues only.
 * All below aliases can use "v0" - "v19" as the source.
 * "Monster_x", "monster_y", "tukix", "alice", "keigen", "earth_keigen", "kaihi", "alice_skill1" - "alice_skill3", "skill", "skill_wind", "skill_earth", "skill_aqua", "skill_fire" and "tikei" - changes corresponding battle section values.
 * "Skilla1" - "skilla8", "skillb1" - "skillb4", "skillc1" - "skill4", "skilld1" - "skilld4", "skilltame0", "skillcounter0" and "skillcounter2"-"skillcounter5" changes the odds ("skill_kakuritu") for associated skill.
 * "Henka1" - "henka3" changes HP levels for 3 enemy life traps.
 * "Mp", "mylife" and "enemylife" changes and prints hero MPs, HPs and enemy HPs. If the result value is below 0 or above the limit - it will be trimmed.


 * These 3 aliaces can be used with "+" or "-" methods. Example - 100="change,mp,5,+" adds 5 MPs, trims the value if it's above the maximum then draws the result.


 * "Kousoku" and "status" changes (plus prints) hero binding and condition statuses. Correct values are "0"-"3" for "kousoku", "1"-"7" and "9" for status (status 8 is partially supported).
 * "Sinkou", "customattack" and "customskill" switches sections for triggers and customized attacks/skills. See below...
 * "Action" changes the %before_action value. See customized skills.
 * "Wind", "wind_turn", "earth", "earth_turn", "aqua", "aqua_turn", "fire" and "fire_turn" changes (Warning: not draws) active Spirits and turns to spirit canceling.


 * There are 8 more normal enemy attacks and 4 more enemy attacks in each binding query. [Skilla9]-[skilla16], [skillb5]-[skillb8], [skillc5]-[skillc8], [skilld5]-[skilld8]. These skills can be used only as "followup", "followup_counter/guard/always", "henka1"-"henka3", "petrified" or "preemptive" targets. So - "skill_kakuritu" and "skill_count" keys are ignored for these skills.
 * 3rd binding query (skill_kouka="5") works properly. After hero was hit by this attack - the enemy attacks constantly (with [skilld1]-[skilld8]), you can't do anything. [Skilld1]-[skilld8] can't be status attacks, all status attack keys will be ignored.
 * You can define 4 more enemy attacks in the counterstance. [Skillcounter2]-[skillcounter5]. These skills can't be binding skills, all binding attack keys will be ignored. The old method ([skillcounter0]\skill_XXX_counter_midX) will be used if [skillcounter2]\tuika_kakuritu="0" or isn't defined.
 * You can define the [skilltame2] enemy attack. It will be used if you guard before the enemy charged attack ("skilltame0"). Use this if the charged guard must use different "skill_kouka" or "skill_selX". The game uses the [skilltame2]\skill_name key to detect this skill. If this key is missing/empty - the old method ([skilltame1]\skill_selmissX) will be used.

Custom dialogues

 * By default skill_selX/skill_annoX etc just define a text line which will be printed. You can't change the nametag, you can't use more than 2 text lines, you can only print text.


 * Custom dialogues just go to a section in story.ini when you can use almost all supported commands then return and continue to execute enemy attack.


 * To start the custom dialogue - use "! " as the key value. The game goes to the section in current story.ini. After the custom dialogue ends the game continues the standard battle routine. The example: [skilla1]\skill_sel1="!12345" will execute all commands in the [12345] section in story.ini then continues the standard a1 enemy skill routine.


 * If you need to print something starting from "!" - use "!!".


 * There are 2 methods to end the custom dialogue and return. The first method is the "end" command. The second method can be used only if you have started the dialogue with skill_annoX_X keys. Use string ended with "/" to return.


 * You can start custom dialogues with these keys: skill_selX, skill_annoX_X, skill_selxX, skill_selmissX, skill_sel_counter_midX, skill_sel_counter_endX, skill_anno_counter_midX, skill_anno_counter_endX, mogaku_dassyutu1, mogaku_earth_dassyutu1, mogaku_kaisin1, half_s1, kiki_s1, vic_sel1, vic_anno1, kousan1, skill_onedari1, skill_lose_start1, skill_lose_anno1, skill_lose_sel1.


 * No custom dialogues support: hero_loseX_X, hero_lose_lvdrain, hero_lose_konran, hero_attackX, hero_kaisinX, hero_missX, hero_stbladeX, hero_mogaku_hitX, hero_mogakuX, hero_mogaku_winX, hero_mogaku_earthX, hero_mogaku_earth_winX, hero_unchargeX, hero_freedomX, hero_konran_X, hero_kikiX_X, skill_tikei, mogaku_annoX, mogaku_selX, skill_wind_anno, skill_kousoku_anno0, skill_kousoku_anno, skill_status_anno, skill_status_hit, skill_status_mid, skill_status_end.


 * Warning: if you define 2 similar keys - custom dialogue will not start, just 2 text line will be printed. You must define 1 or more than 2 keys. P.S. [Hero_skillX]\skill_selX is the exception, if 2 keys are defined - it just selects 1 of defined keys.


 * Custom dialogues work different for kousan_anno1 and onedari_list1. After dialogue section is finished - the game returns to the hero's commands menu. This is used for special surrender/requests.


 * Custom dialogues can be HP traps (henkaX) or triggers (sinkou_listX) targets.


 * And customized attacks and skills ([customattackX], [customattackX]\listX and [customskillX]\skillX) are custom dialogues too and use same commands.

Custom dialogues commands

 * These commands: end, name, skillname, bg, sp, sp_non_alpha, sp_alpha, sp_leftup, sp_rightup, sp_del, wait, bgm, bgm_stop, se, se_stop, syasei, syasei_non_alpha, syasei_alpha, syasei_leftup, syasei_rightup, syasei2, syasei_clear, flash, monocro_on, monocro_off, quake, select, goto, gotoline, sp2, sp2_non_alpha, sp2_alpha, sp2_leftup, sp2_rightup, sp2_del, move, movie, element, var_ld, var_cal, var_cpa, var_out, var_jump, var_jumpline, var_dice, 'damage', 'kaihuku', enemylife, enemykaihuku, change, strsp - same as in the main story. So you can't use win2_set, win_set, win2_del, win_del, restart, anten, battle, battle_st, overkill_end and spbtn.
 * First and second commands are used to change printed lines if the dialogue used more than once. The syntax is ="first,, " and ="second, , ". <Key> is the boolean switch number, from 1 to 10. The "first" command prints only if the switch isn't activated. The "second" command prints only if the switch was activated. To manipulate switches - use the "change,first_selX" command.
 * Jumpfirst ( ="jumpfirst,, ") and jumpfirstline ( ="jumpfirst, , ") are var_jump/var_jumpline analogs but use one of 10 boolean switches.
 * There are some commands (list1, commonattack, commonattack1, commonskill) used in customized hero attacks/skills only.
 * And of course you can just print text. "@", "~" and "\" wait state modificators are supported.

Triggers

 * Triggers are used to customize enemy actions if something is happen. The game can start a custom dialog (then continue the standard query), force enemy skill (via followup) or end the battle if the trigger was activate


 * To configure triggers use sinkou_listX keys in [sinkouX] sections:

[sinkou1] sinkou_list1=... sinkou_list2=... ... [sinkou2] sinkou_list1=... ...
 * Sinkou_list keys must use sequental numeration (sinkou_list1, sinkou_list2 etc) and are checked in this order. If the game can't find the next sinkou_list number the game stops reading and continues the standard battle routine. If the key is activated - the game again stops reading, executes this 1 key then continues the standard routine.


 * Use the " ="change,sinkou,<section_number>" command to activate the [sinkou<section_number>] section. You can use "change,sinkou,0" to disable triggers.


 * By default the game checks [sinkou1]/sinkou_list1 key and disables triggers if this key isn't defined.


 * The trigger keys syntax is "sinkou_listX=<trigger_name>,, [,<new_section_number>]" or "sinkoulistX=element, , , [,<new_section_number>]"


 * Trigger_names:
 * "Enemylife" and "enemylife2" - activates if enemy HPs are lower or equal of . Enemylife2 works only if hero isn't binded.
 * "Element" - uses different syntax. The parameter chooses spirits for the check. Same as for spirit canceling: 1 for Sylph, 2 for Gnome, 4 for Undine, 8 for Salamander. Then the game compute total sum of levels for choosed and active spirits. And if this sum is bigger of the trigger activates.


 * Examples: "sinkou_list1=element,1,0,a9" activates if Sylph ("1") was summoned with any level. And enemy uses skilla9. "Sinkou_list1=element,15,5,a9" is the analog of Alice 8th (final) Spirit Canceling - if %wind+%earth+%aqua+%fire>5.


 * "Mylife" - activates if hero HPs are lower than.
 * "Action" - each hero action/skill have corresponding value (stored in the %before_action variable). So enemy can react differently to player actions. The trigger is activated if %before_action=.


 * Possible values are:
 * "1" - normal attack.
 * "2" - critical attack.
 * "3" - miss.
 * "4" - Blade of Still Water.
 * "7" - unsuccessful Struggle (or attack in a standard bind).
 * "8" - successful Struggle.
 * "9" - attack in a "charged" bind.
 * "10" - attack in a "special" bind.
 * "35" - Word of Dispel: Omega Blaze.
 * "36" - Word of Dispel: Frost Ozma.
 * "37" - Word of Dispel: Monster Lord's Cruelty.
 * "51" - Guard.
 * "52" - Wait.
 * "53" - Surrender.
 * "54" - Requests.
 * "58" - Word of Dispel: Eyes of Recovery.
 * Action for others hero skills can be found in the "Customized hero skills" section.


 * "Turn" - activates if the turn number equals.
 * "Status" - activates if hero status equals.
 * These triggers are checked before enemy attacks. If you want to check after enemy attack - use "enemylife1", "enemylife3", "element1", "mylife1", "action1", "turn1" and "status1" triggers names. Again, "enemylife3" works only if hero isn't binded.


 * <Destination> can be the attack name ("a1"-"a16", b1-b8, d1-d8, counter0-counter5, tame0, tame1, same as for "followup" key. Or you can use custom dialog link ("!<section_name>") to go to [<section_name>].


 * <New_section_number> changes the section value and loads correcponding section of triggers.

HP traps

 * You can use up to 3 "if enemy HPs are lower of value - do something once" triggers.


 * The syntax is henka1|henka2|henka3=", [, ]" in the [data] section.
 * - enemy HPs. Warning - the condition is "lower of value" not "lower or equal of value".
 * - same as for the enemy attacks linking, can be "a1"-"a16", "b1"-"b8", "c1"-"c8", "d1"-"d8", "tame0", "tame1", "counter0"-"counter5" or "win". Plus you can use a custom dialog link ("!XXX") as the target.
 * can be "1" or "2". Mode 1 and 2 force the HP trap even if you won the battle. Mode 2 not resets the HP trap, it will execute until you manually disable it (with the change,henka1/2/3 command).
 * Warning: HP traps are active only if hero isn't binded. Use "enemylife"/"enemylife1" triggers if you need the check for a binded state.

Spin-off stories battles, new parameters

 * Customized hero announcements work always (even if you not define [ruka]/name).
 * Customized hero announcements work for all skills ("Meditation" ([hero_skill4]), "Quadruple Giga" ([hero_skill15]), "Flash Kill" ([hero_skill19]), Quad Spirit Summon ([hero_skill25])). All 5 levels of Sylph and Undine use [hero_skill7] and [hero_skill10] now. [Hero_skillX]\skill_selX supports custom dialogues.
 * [Hero_sel]/hero_attack1-3 are used only with standard attack and self-damage (when confused). [Hero_sel]/hero_mogaku1-3 are used only when you try to break bind w/o Gnome. New keys are added in [hero_sel]:
 * hero_kaisin1 - hero_kaisin3 - used with critical hits.
 * hero_miss1 - hero_miss3 - used if hero missed.
 * hero_stblade1 - hero_stblade3 - used for Blade of Still Water.
 * hero_mogaku_hit1 - hero_mogaku_hit3 - used if you try to attack in a standard bind.
 * hero_mogaku_win1 - hero_mogaku_win3 - used when hero breaks a standard bind w/o Gnome.
 * hero_mogaku_earth1 - hero_mogaku_earth3 - used if you try to break a bind with Gnome.
 * hero_mogaku_earth_win1 - hero_mogaku_earth_win3 - used if you break a bind with Gnome.
 * hero_uncharge1 - hero_uncharge3 - used when you break a special bind (kousoku_type=1).
 * hero_freedom1 - hero_freedom3 - used when you break a special bind (kousoku_type=2).
 * hero_konran4 - hero_konran6 keys are added, so now you can customize up to 6 confuse messages.
 * The game uses default messages if custom ones aren't defined in [hero_skillX] and [hero_sel] sections.
 * You can define not all 3 (or 6) custom messages, the game will use defined ones only.
 * The query_new="1" key forces the new enemy skills order. The new order is counter stance/charged attack start/normal attacks.
 * The short_name key is added in the [data] section. It's value used as the monster name after the battle starts. As the example - [data]\name="Archangel Ariel", [data]\short_name="Ariel", [data]\type="0". Then we have the "Archangel Ariel appears!" message at the battle start but "Ariel" as the nametag.
 * The difficult key is added in the [data] section. It sets the difficulty level to Hard. Use "diffficult="1"". The only difference is 10% chance to fail a successful struggle.
 * The vic_effevt="3" ([data] section) support is added. It replaces the "was/were defeated!" message to the "was/were chased away!" message.
 * The type="2" ([data] section) support. Replaces "was defeated/was chased away" to "were defeated/were chased away".
 * Kousan_anno1 and kousan_anno2 keys are added in the [anno] section. Used when hero have surrendered. "Xxx completedly drops all resistance" is used by default.
 * The skill_tikei key was added in the [hero_skill5] section. Demon Skull Beheading is activated if this key is defined. Use "1", "2", "3", "4", "5" to select the predefined message or set the message completely.
 * "1" - " climbs the mast and jumps off from the top!"
 * "2" - " climbs a tree and jumps off from the top!"
 * "3" - " climbs onto the ceiling and jumps off!"
 * "4" - " climbs a pillar and jumps off from the top!"
 * "5" - " climbs a building and jumps off from the top!"
 * The preemptive key is added in the [data] section. Possible values are "a1" - "a16", "tame0", "counter0". Enemy uses the defined skill before hero's first turn (as the example - battle with Slime). Warning: if the target skill have skill_kakuritu undefined - the preemptive key will be ignored.
 * The petrified key is added in the [data] section. Possible values are "a1" - "a16". Enemy uses the defined skill if hero petrifies completely (see skill_status="6" and skill_status="8" below). Warning: if the target skill have skill_kakuritu and skill_damage1_1 undefined - the petrified key will be ignored.
 * Henka1, henka2, henka3 keys set 3 HP traps. See below.

Spin-off Stories battles, monster skills

 * You can define up to 12 skill_selX/skill_anno1_X/skill_anno2_X/skill_anno3_X.
 * You can define up to 9 hits in any attack. Use skill_anno4_X ... skill_anno9_X, skill_se4 ... skill_se9 and skill_damage4_X ... skill_damage9_X keys.
 * If skill_kousoku_anno and skill_kousoku_anno0 aren't defined - there is no wait state now.
 * "Attack to free from" binds support is fixed. Differences between kousoku_type="1" ("charged" bind) and kousoku_type="2" ("special" bind) - the "charged" one always needs 1 attack to free, enemy attacks once after you break the bind (you have 1 free turn after you break a "special" bind). And now you can't break "charged" bind by struggling. To add a finisher for these binds - use followup trigger (see below).
 * You can define the hero's attack strength when a "special" bind is active. Use skill_mogaku_abairitu key. The default value is 80.
 * Status attacks are used only if hero's status is clear.
 * Skill_status_hit, skill_status_anno, skill_status_mid and skill_status_end keys are added for status attacks (skill_kouka="2"). Skill_status_anno/skill_status_hit define announcement/hero's message after the status attack hits. Skill_status_mid is used when hero pass turn because of the status. Skill_status_end is used when the status is timed out or (for skill_status="6") when hero completely petrifies. The game uses default values if these keys aren't defined.
 * You can use @ (new line wait state) and ~ (new line) with skill_status_mid and skill_status_end keys. This setting overrides the default new page wait state.
 * By default all cooldowns are resetted after hero struggled successefully from a bind. Now you can use two more options:
 * use ,1 after the cooldown value to disable cooldown resetting.
 * use ,2 after the cooldown value to reset this cooldown only if a bind was started with this skill.
 * Examples: skill_count="9,2" - this cooldown resets only if this skill is a binding skill and the bind was successeful.


 * Ending of a bad status still resets all cooldowns.


 * If all attacks in a query are cooldowned - enemy will pass 1 turn.
 * Enemy healing is added. Use skill_kouka="7". Only 1 hit. The enemy heals the random HPs value between skill_damage1_1 and skill_damage1_2 values. These skills can't be countered, "Daystar" not works. P.S. You can use this to add enemy passive skills (set skill_damage1_1 and skill_damage1_2 to "0" or not define these keys).
 * Spirit canceling is added. Use skill_kouka="8". Only 1 hit. Skill_damage1_1 defines targeted spirits. 1 is for Sylph, 2 - for Gnome, 4 for Undine and 8 for Salamander. So if you want to dispel all 4 spirits - use 1+2+4+8=15 as the "skill_damage1_1" value. "Skill_anno2_X" will be printed after the cancel hits, "skill_anno3_X"-"skill_anno9_X" will be ignored. Warning: Spirits canceling can't be countered, "Daystar" not reacts to this attack.
 * [Skillcounter2]-[skillcounter5] have new skill_counter_tatie key. This key defines the counterstance sprite.
 * Skill_damage_mode key defines damage effect/animation and armor piercing mode.
 * "0" and "1" use standard damage (damage.ogg sound, horizontal shaking).
 * "2" and "3" use heavy damage (damage2.ogg sound, the example is Goblin Girl's Earth Crashing Goblin).
 * "4" and "5" use critical damage (ikazuti.ogg sound, long shaking). The example is Ilias' Judgement Tap.
 * "1", "3" and "5" ignore Gnome, guarding, "Water Wall", level draining and Salamander's bonus versus Grandine.
 * "0" is used by default (if the key is absent).


 * You can force Sylph/Fallen Angel Dance to evade each hit of a multi-hit attack. It works only for skill_kouka="0" and skill_kouka="1". To force this - use skill_multiwind="1" key. Chances and the evasion announcement are constant for all hits.
 * Warning - this evade don't breaks followup/followup_always/followup_instant query.


 * The petrification status attack can be used now. Use skill_kouka="2" and skill_status="6". After countdown ends - hero will petrify and will be unable to move. The only way to cure this status is Alice's "Eyes of Recovery".
 * The Poison attack support is added. Use skill_kouka="2" and skill_status="9". The poison hits right after enemy turn. The damage factor is 1/20 of hero's maximum HPs by default but you can set it with the skill_status_abairitu key. Damage itself is 90%-110% of the damage factor.
 * If hero was killed by poison - the game uses keys from poisoning attack to define lose sentience.


 * Multiple rape scenes are supported. Use the skill_lose_scene="xxx" key. If this key is defined the game go to the section [losexxx] after hero loses.
 * Miltihit attacks can stop right after hero's HPs will reach 0 (by default all hits are executed then the game starts a hero's lose sequence). Use the skill_multilose="1" key.
 * Each hit can show different frame (ct) if you want. Keys are skill_ct1_1 ... skill_ct1_9. The syntax is same as for the "skill_ct1: key. Frames use coordinates from "skill_ctx" and "skill_cty" keys. If you add ,0 to this command the frame will not be drawn (effect 0), it can be useful if you want draw the frame and a binding sprite simultaneously.
 * By default all frames are removed after enemy skill ends. If you want to make the frame constant - use the skill_ct_stay="1" key.
 * If you use the skill_rukalose="0" key (or this key isn't defined) - there is no hero's messages before bukkake. Same is for the skill_rukalose="5" key but it uses skill_rukalose=4 behavior (no bukkake, "... surrenders..." replaces "... was defeated...").
 * 2 more keys are used when hero loses: skill_lose_start1 and skill_lose_start2. They are printed from the name of enemy before bukkake.
 * Skill_message_mode key controls skill_selxX, hero_kiki1_X, hero_kiki2_X, kiki_sX and half_sX messages.
 * "0" (default) - all messages are always displayed.
 * "1" - no messages when hero HPs are below 50% or 20% of max HPs.
 * "2" - same as "0" but skill_selxX messages are ignored in requests mode.
 * "3" - same as "1" plus no skill_selxX in requests mode.

Enemy attacks linking

 * With keys below you can link enemy attacks in queries.


 * Followup key is the basic link. Possible values:
 * "counter1" - "counter5" if the enemy is in counterstance.
 * "a1"-"a16", "tame0", "tame1", "counter0", "counter1" if not binded.
 * "b1"-"b8" for the 1st bind query.
 * "c1"-"c8" for the 2nd bind query.
 * "d1"-"d8" for the OHKOs query.
 * "win".
 * The enemy attacks. If the attack wasn't evaded/countered - the game reads the "followup" value. If this value isn't empty - the game remembers it. Then hero have its turn. Then if the remembered value and the current query value match - the enemy uses skill with remembered name.


 * The "Win" skill works always and just finishes the battle by hero's victory.


 * Followup_guard and followup_counter - same as "followup" but are applied only if the enemy attack was evaded/countered.
 * Followup_always key is the "3-in-1" followup. Enemy uses defined skill in normal conditions and if the attack was evaded or was countered with "Daystar". If the "followup_always" key is defined - "followup", "foloowup_guard" and "followup_counter" keys are ignored.
 * Warning: followup_always not works if hero is in OHKO query. So - [skilld1]-[skilld8] and all skills with skill_kouka="5" ignore this key completely.


 * Followup_instant key links attacks in the same turn so enemy will attack twice/trice etc. Evasion and Daystar can break this chain. Warning - if the 1st attack is passive/healing (skill_kouka="7") - "Daystar" remains active and can counter the 2nd attack. If this key is defined - the "followup" key is ignored, the "followup_always" key is used only after evasion/Daystar.

Custom hero's 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 normall attack to the [customattack ] section. After the "end" command the battle continues.


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


 * There are 3 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 MPs.
 * "List1" - starts the attack list. The syntax is ="listX,<attack_name>[,<section_name>]".


 * After the game finds the "list1" command in the [customattackX] section - it ignores all others keys except "list2"-"list8". And 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_name> section. Or you can use right-click to return to the main hero actions menu.


 * If <section_name> is absent - the standard hero's attack will be used.

Custom hero skills

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


 * Possible [customskillX] keys are:
 * skillX. The syntax is skillX=<section_name>. Redirects the associated skill to the <section_name> section. You can use all custom dialogues commands.
 * skillXname (skillXname= ) - replaces the standard skill name in the Skill menu to . Currently not works for the 2nd skills page (Spirits and Quad Spirit Summon).


 * The game uses standard skills/skill names if they aren't reloaded.


 * 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), skill8 ("Strength of the Earth", 44, skill03=0 or 1), skill8b ("Breath of the Earth", 44, skill03=2 or 4), skill8c ("Wild Lands", 44, skill03=3 or 5), skill10 ("Water Wall", 45, skill04=1), skill10b ("Serene Mind" A, 45, skill04=2), skill10c ("Serene Mind" B, 45, skill04=3 or 5), 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", 46, skill05=2 or 4), skill14c ("Purgatory Flame", 46, skill05=3 or 5), skill15 ("Quadruple Giga" preparation, 47), skill15d ("Quadruple Giga", 28), skill16 ("Vaporizing Rebellion Sword", 29), skill17 ("Edging", 55), skill18 ("Serene Mind" C, 45, skill04=0), 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), skill7d ("Fallen Angel Dance" B, 43, skill02=4), skill7e ("Fallen Angel Dance: Gale", 43, skill02=5), skill24 ("Element Spica", 34), skill25 ("Quad Spirit Summon", 57).


 * You can use the commonskill command in the custom skill body. It executes 1 standard skill. You control the skill choice with "change,action" and "change,skill_wind/earth/aqua/fire" commands. Action values are listed above after the skill name. Daystar can't be summoned by this method.


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

[story] ... 100="battle_st" ... 200="change,customskill,1" ... 300="battle" [data] ... skill=22 skill_fire=5 ... [customskill1] skill14c=newpurgatoryflame [newpurgatoryflame] 100="change,action,46" 101="change,skill_fire,1" 102="commonskill" 103="change,skill_fire,5" 104="end" ...

HP Traps
[data] ... henka1="1,!custom001,1" henka2="1,!custom003,2" henka3="1,!break,2" ... [custom001] 100="change,enemylife,2000" 101="goto,custom002" [custom002] 100="name,Erubetie" 101="Do you honestly think you have driven me into a corner?@" 102="That you could beat the Queen of Slimes with a sword!?" 103="name," 104="se,1,ero_slime3" 105="sp,0,erbetie_st01,225,0,0" 106="sp,2,erbetie_st01,0,0,0" 107="sp,4,erbetie_st01,450,0,10,500" 108="Erubetie divides!" 109="name,Luka" 110="Guh... Which is the real body?" 111="name,Erubetie" 112="None is an illusion, nor is any a fake.@" 113="I can simply divide my body itself as freely as I wish..." 114="name,Luka" 115="N...No way...!" 116="name," 117="change,skilla4,0" 118="change,skilla5,0" 119="change,skilla6,0" 120="change,skilla7,0" 121="change,customattack,1" 122="change,customskill,1" 123="change,sinkou,0" 124="change,first_sel4" 125="change,henka1,0" 125="var_ld,v18,0" 126="end" [custom003] 100="se,1,ero_slime3" 101="sp_del,0,10,500" 102="Erubetie collapses!" 103="change,enemylife,2000" 104="name,Erubetie" 105="Pointless..." 106="name," 107="se,1,ero_slime3" 108="sp,0,erbetie_st01,225,0,0" 109="sp,2,erbetie_st01,0,0,0" 110="sp,4,erbetie_st01,450,0,10,500" 111="But Erubetie divides again!" 112="jumpfirst,2,ca1annox1" 113="jumpfirst,3,ca1annox2" 114="jumpfirst,4,ca1annox3" 115="end" [break] 100="end"
 * All 3 HP traps activate after enemy HPs are 0 or lower (=1,).


 * ",1" and ",2" modificators intercept the winning routine. So - after you kill the enemy you not win the battle, you will go to the current HP trap. ",1" does this only once, ",2" does this always.


 * The first trap (henka1) activates if you have killed Erubetie before she have said "...you have driven me into corner?". The trap just adds 2000 HPs to Erubetie, then goes to the next section([custom002]). This custom dialogue prints all text, draws 2 more Erubetie sprites (lines 105-107), disables 4 Erubetie's skills (lines 117-120), activates customized hero attack and skills (lines 121,122), disables triggers (line 123). Line 125 disables the first HP trap if this dialog was executed through triggers. After this - the 2nd trap will be set as active.


 * The 2nd trap activates each time you killed Erubetie. It restores 200 HPs to her and displays text/sprites for her "Pointless..." routine.


 * The 3rd trap activates after you have used "Purgatory Flame" and "Vaporizing Rebellion Sword" combo. Again it redirects the winning routine to the empty section ([break]). As the resilt - you will go to "Countdown" attack even if you killed Erubetie with this "Vaporizing Rebellion Sword".

Triggers
[sinkou1] sinkou_list1="enemylife3,19000,!custom007,2" [sinkou2] sinkou_list1="enemylife3,16000,!custom008,3" [sinkou3] sinkou_list1="enemylife3,13000,!custom009,4" [sinkou4] sinkou_list1="enemylife3,10000,!custom010,5" [sinkou5] sinkou_list1="enemylife3,7000,!custom011,6" [sinkou6] sinkou_list1="enemylife3,4000,!custom012,7" [sinkou7] sinkou_list1="enemylife2,4000,!custom002,0" [sinkou8] sinkou_list1="enemylife3,4000,!custom013,0" [sinkou9] sinkou_list1="action,29,a9,0" [custom007] 100="name,Erubetie" 101="You speak of coexisting with humans...@" 102="But do you simply not realize how long we have suffered at the hands of humans?" 103="Undine, whom you begged for power from...@" 104="She herself was driven to the edge as the area humans took up continued to grow." 105="Along with us Slimes, there are many other monsters suffering the same fate...@" 106="As you humans grow, we die!" 107="Is that what you mean when you talk about us living together!?" 108="name,Luka" 109="...Humans don't understand monsters at all yet.@" 110="The overwhelming majority don't even know about the troubles they are causing you." 111="But, as we come to understand each other..." 112="name,Erubetie" 113="Understand what!?@" 114="If they are ignoring our pains, then why should we care about theirs!?" 115="We shall instill fear in them, and show them the pain they showed us! Then we shall see just how long they can remain ignorant of our suffering!" 116="name,Luka" 117="..............." 118="name," 119="end" [custom008] 100="name,Luka" 101="Erubetie... Have you ever tried appealing to humans directly?@" 102="Telling them just how much your race has suffered?" 103="name,Erubetie" 104="What could humans possibly understand about our pains?" 105="name,Luka" 106="They'll understand... Humans aren't stupid.@" 107="If they know the pain you're in, many will come to your aid!" 108="If a step is never taken to resolving the issue, how can you expect it to ever get better!?" 109="name," 110="end" [custom009] 100="name,Erubetie" 101="Understanding... Coexistence... I'm sick of these hypocritical words! Is that why you fight? So you can overlook your own hypocrisy!?" 102="name,Luka" 103="If I am...@" 104="Then you're a hypocrite too, Erubetie." 105="You're acting the victim, and looking down on humans at the same time... Abandoning all attempts at an intelligent solution, and moving on a path of violence and fear." 106="Charging forth and fighting for the sake of victims, you're creating even more victims!@" 107="How is that anything but hypocrisy?" 108="name,Erubetie" 109="Humans would-" 110="name,Luka" 111="You think so little of humans.@" 112="You believe them to be beneath you, and you're unwilling to even try!" 113="name," 114="end" [custom010] 100="name,Luka" 101="...There are humans just like you.@" 102="They consider monsters things just to be destroyed." 103="There was a man who said much the same...@" 104="That humans would never be able to understand monsters." 105="As long as they were more powerful than us, we could never live side by side with them." 106="name,Erubetie" 107="...He sounds like a smart man.@" 108="Humans should be scared of us!" 109="We'll educate you with fear!@" 110="Until it's ingrained in humanity's mind that they should never trifle with us!" 111="name,Luka" 112="Educate humans with fear...?@" 113="The reason humans are even killing monsters is because they fear them!" 114="As long as humans are afraid of you, they'll never understand you!@" 115="All you're doing is prolonging the suffering on both sides!" 116="name," 117="end" [custom011] 100="name,Luka" 101="Erubetie...@" 102="The reason you hate humans so much is because you know nothing about them." 103="If we can come together in coexistence, everything will be so much better... The only reason this unhappy reality exists right now is because we aren't living in peace." 104="Your race has been forced into such a corner... Surely you must recognize that your path isn't working?" 105="name,Erubetie" 106="But, I...@" 107="I cannot forgive humans..." 108="Humans have tortured my race for so long...@" 109="So... I'll...!" 110="name,Luka" 111="So you want revenge?@" 112="That's your true motivation, isn't it?" 113="What does that get you?@" 114="After it's over, the human side is just going to fight back and get revenge, too!" 115="All you're doing is creating more misfortune and hatred!" 116="name,Erubetie" 117="If that's how it ends up, then so be it!@" 118="My belief in ruling humans by fear will not change!" 119="name,Luka" 120="If that's your intention, all the way to the end...@" 121="Then I'll stop you!" 122="name," 123="end" [custom012] 100="name,Erubetie" 101="No matter what you say...@" 102="I'll never live in peace with you humans!" 103="Get used to humans? Understand humans? I can't do that!" 104="name,Luka" 105=".............." 106="name," 107="It felt like Erubetie's heart wavered with that last shout..." 108="It was as if she was trying to convince herself more than me..." 109="end" [custom013] 100="name,Erubetie" 101="It's useless, no matter how much you attack...@" 102="I'll just keep dividing, forever." 103="name,Luka" 104="Guh...!" 105="name," 106="Does that mean this is a stalemate...?" 107="element,4" 108="name,Salamander" 109="Then all you have to do is defeat all of her bodies at once.@" 110="Fill your sword with flame, and let loose on them." 111="name,Luka" 112="Yeah... Let's give it a try!" 113="name," 114="end"
 * Triggers 1-7 print the associated text after Erubetie's attack and if Erubetie's HPs are below defined value ("enemylife3" trigger). Triggers 1-6 increase the section number to 1 each, trigger 7 uses 0 as the section number so all trigger will be disabled.


 * Trigger 8 prints another message after erubetie's attack. It is used in customized hero attack.


 * Trigger 9 intercepts Vaporizing Rebellion Sword ("action,29") and force starts Erubetie's "Countdown" attack.

Customized hero attacks
[data] henka2=1,!custom003,2 [sinkou8] sinkou_list1="enemylife3,4000,!custom013,0" [customattack1] 100="var_dice,v19,3" 101="var_cpa,v19,=,v18" 102="var_jump,customattack1" 103="name,Luka" 104="var_cpa,v19,=,3" 105="var_jumpline,114" 106="var_cpa,v19,=,2" 107="var_jumpline,111" 108="Ha!" 109="var_ld,v18,1" 110="gotoline,116" 111="Hya!" 112="var_ld,v18,2" 113="gotoline,116" 114="Orya!" 115="var_ld,v18,3" 116="name," 117="change,mp,1,+" 118="commonattack1" 119="var_ld,v19,enemylife" 120="var_cpa,v19,<,1" 121="var_jump,break" 122="goto,ca1annox" [break] 100="end" [ca1annox] 100="se,1,ero_slime3" 101="sp_del,0,10,500" 102="Erubetie collapses!" 103="name,Erubetie" 104="Pointless..." 105="name," 106="se,1,ero_slime3" 107="sp,0,erbetie_st01,225,0,0" 108="sp,2,erbetie_st01,0,0,0" 109="sp,4,erbetie_st01,450,0,10,500" 110="But Erubetie divides again!" 111="jumpfirst,2,ca1annox1" 112="jumpfirst,3,ca1annox2" 113="jumpfirst,4,ca1annox3" 114="end" [ca1annox1] 100="change,sinkou,8" 101="change,first_sel2" 102="end" [ca1annox2] 100="name,Erubetie" 101="No human can defeat all at once..." 102="name,Luka" 103="Guh...!" 104="name," 105="I can't just attack at random...@" 106="My only choice is to use the flame to power up an attack." 107="change,first_sel3" 108="end" [ca1annox3] 100="var_ld,v19,fire" 101="var_cpa,v19,!=,3" 102="var_jump,break" 103="name,Erubetie" 104="Such power... But it still isn't enough to defeat me." 105="name,Luka" 106="Guh...!" 107="name,Salamander" 108="That isn't good enough!@" 109="You have to overwhelm her with your flame!" 110="name," 111="change,first_sel4" 112="end" [custom003] 100="se,1,ero_slime3" 101="sp_del,0,10,500" 102="Erubetie collapses!" 103="change,enemylife,2000" 104="name,Erubetie" 105="Pointless..." 106="name," 107="se,1,ero_slime3" 108="sp,0,erbetie_st01,225,0,0" 109="sp,2,erbetie_st01,0,0,0" 110="sp,4,erbetie_st01,450,0,10,500" 111="But Erubetie divides again!" 112="jumpfirst,2,ca1annox1" 113="jumpfirst,3,ca1annox2" 114="jumpfirst,4,ca1annox3" 115="end" [custom013] 100="name,Erubetie" 101="It's useless, no matter how much you attack...@" 102="I'll just keep dividing, forever." 103="name,Luka" 104="Guh...!" 105="name," 106="Does that mean this is a stalemate...?" 107="element,4" 108="name,Salamander" 109="Then all you have to do is defeat all of her bodies at once.@" 110="Fill your sword with flame, and let loose on them." 111="name,Luka" 112="Yeah... Let's give it a try!" 113="name," 114="end"
 * V19 is used as the temporal variable, v18 is used to store the previous random value.

[customattack1] 100="var_dice,v19,3" 101="var_cpa,v19,=,v18" 102="var_jump,customattack1" ...
 * This section randomize the temporal variable from 1 to 3 (line 100), compare it to the v18 variable (line 101) and starts the section again if these variables are equal (line 102). As the result - same value can't be used twice.

[customattack1] ... 104="var_cpa,v19,=,3" 105="var_jumpline,114" 106="var_cpa,v19,=,2" 107="var_jumpline,111" 108="Ha!" 109="var_ld,v18,1" 110="gotoline,116" 111="Hya!" 112="var_ld,v18,2" 113="gotoline,116" 114="Orya!" 115="var_ld,v18,3" ...
 * These commands compare the temporal variable with 3 then 2 (lines 104, 106). And jumps to different lines if the comparation is successful (lines 105, 107). Then 1 of 3 Luka's messages will be printed (lines 108, 111, 114), the v18 variable stores the current temporal value (lines 109, 112, 115) and all 3 sections go to the line 116 (lines 110, 113).

[customattack1] ... 117="change,mp,1,+" 118="commonattack1" 119="var_ld,v19,enemylife" 120="var_cpa,v19,<,1" 121="var_jump,break" 122="goto,ca1annox"
 * Line 118 uses the modified standard Luka's attack - no Luka's messages (but they are already printed) and no +1 MP. So - line 117 adds this 1 MP.


 * Lines 119-121 read the enemy HPs to the temporal variable (line 119) and check if the enemy is dead (line 120). If you not killed the enemy - the game moves to the [ca1annox] section (line 122). If you have killed the enemy - the game goes to the [break] section (line 121). Then the HP trap (henka2) activates and the [custom003] section will be used. The only difference between [ca1annox] and [custom003] - the "change,enemyhp,2000" command. As the result if you kill Erubetie with this custom attack - she will restore 2000 HPs and will divide again. If your custom attack not made her HPs 0 or below - she will divide without HPs restoration.


 * Without lines 119-121 same messages/sprites will be displayed twice.

[ca1annox] ... 111="jumpfirst,2,ca1annox1" 112="jumpfirst,3,ca1annox2" 113="jumpfirst,4,ca1annox3" ...
 * These 3 lines are used to display additional dialogues once per battle. Each "ca1annoX" section have the command to activate the associated switch ("change,first_selX") so - no jump after another attack.
 * [Ca1anno1] activates "enemylife3" trigger because this message must be printed after an enemy attack.

Customized hero skills
[customskill1] skill11="customskill1_1" skill12="customskill1_1" skill13="customskill1_1" skill16="customskill1_1" skill14b="customskill1_2" [customskill1_1] 100="commonskill" 101="var_ld,v19,enemylife" 102="var_cpa,v19,<,1" 103="var_jump,break" 104="goto,ca1annox" [customskill1_2] 100="commonskill" 101="name,Salamander" 102="...That's no good.@" 103="You need to put more of your fighting spirit into your sword." 104="Otherwise, you'll never defeat Erubetie..." 105="name,Luka" 106="B...But... More than this...?" 107="name," 108="My spirit is already at its maximum.@" 109="Igniting my heart even further is too much..." 110="name,Salamander" 111="...Why did you pick up that sword of yours?@" 112="Wasn't it to fix the mistakes of those like Erubetie?" 113="name,Luka" 114="...!!" 115="name," 116="That's right..." 117="change,skill_fire,3" 118="commonskill" 119="name,Luka" 120="Th...This flame...!" 121="name," 122="My sword glows with a radiant light.@" 123="Almost as if humming with power, I can feel the incredible increase in power running up my sword arm." 124="name,Luka" 125="But... I feel somewhat calmer than before.@" 126="My heart isn't boiling in fighting spirit like it used to be." 127="name,Salamander" 128="You've become able to keep your presence of mind as you control your flames." 129="As you are now, you should be able to wield my power the same way you do Sylph and Gnome's." 130="name,Luka" 131="At the same time as Sylph and Gnome..." 132="name," 133="Even with my sword radiating power, I can still manage to meditate. Not only that, but my SP won't go to zero in exhaustion once the effect ends." 134="Finally, I should be able to summon Salamander at the same time as the other spirits..." 135="name,Salamander" 136="You're not simply borrowing my power like you were before.@" 137="Right now, you've completely made it your own." 138="In other words, my power is your power!@" 139="Now is the time to wield your scorching hot sword for what you believe in!" 140="name,Luka" 141="Alright, got it!" 142="name," 143="change,customskill,2" 144="change,first_sel2" 145="change,first_sel3" 146="change,first_sel4,0" 147="end"
 * The [customskill1] section intercepts 5 Luka skills: Lightning Sword Flash (skill11), Earth Rumbling Decapitation (skill12), Serene Demon Sword (skill13), Vaporizing Rebellion Sword (skill16) and Hellfire Sword (skill14b). First 4 are redirected to the [commonskill1_1] section. It's executes the standard skill (100="commonskill") then doing the same enemy HPs check as for customattack1 above. As the result - you can't kill Erubetie with skills and same 3 "once-per-battle" messages will be printed.


 * When you select a skill in the Skills menu this will automatically change the %before_action variable. So - one "commonskill" command executes correct standard skill each time.


 * "Hellfire Sword" will be redirected to another section ([customskill1_2]). There is 1 trick - the second "commonskill" command is used after skill_fire was changed to 3 (117="change,skill_fire,3") so it will execite "Purgatory Flame".

Strsp and spbtn
[story] 100="bg,map0,1" 101="bgm,zukan" 102="strsp,1,Endiel,210,250,15,0,3,#FFFFFF,#FF4444" 103="strsp,2,Medusa,360,140,15,0,3,#FFFFFF,#FF4444" 104="strsp,3,Quit,750,570,20,0,3,#FFFFFF,#FF4444" 105="sp_alpha,6,face_c00.bmp,335,25,1" 106="strsp,4,Erubetie,390,40,15,0,3,white,#FF4444" 107="goto,select" [select] 107="spbtn,1,endiel" 108="spbtn,lclk,left" 119="spbtn,6,erubetie" 120="spbtn,4,erubetie" 131="spbtn,2,medusa" 132="spbtn,3,quit" 143="spbtn,rclk,right" [endiel] 100="win2_set" 101="Endiel" 102="sp_del,1,0" 103="sp_del,2,0" 104="sp_del,3,0" 105="sp_del,4,0" 106="sp_del,6,0" 107="restart,Map\Endiel" [medusa] 100="win2_set" 101="Medusa" 102="sp_del,1,0" 103="sp_del,2,0" 104="sp_del,3,0" 105="sp_del,4,0" 106="sp_del,6,0" 107="restart,Map\Medusa" [erubetie] 100="win2_set" 101="Erubetie" 102="sp_del,1,0" 103="sp_del,2,0" 104="sp_del,3,0" 105="sp_del,4,0" 106="sp_del,6,0" 107="restart,Map\Erubetie" [right] 100="win2_set" 101="Right click!" 102="goto,select" [left] 100="win2_set" 101="Left click!" 102="goto,select" [quit] 100="win2_set" 101="Quit to menu..." 102="end"
 * 107="spbtn,1,endiel" link the sprite button to the sprite #1 and will go to the endiel section if this button will be selected. After the first spbtn command - all commands except another spbtn will end the current section ([select]) and will go to the actual selection.


 * 108="spbtn,lclk,left" sets left click sprite button. If you left click anf the cursor is not above any defined sprite buttons - the game will go to the section from this command ([left]).


 * 143="spbtn,rclk,right" - same as above but this command intercepts all right mouse clicks.


 * 144="end" is the first non-empty command after spbtn and after the game read this line - it will go to the actual selection. The line will be ignored and can contain anything.


 * Sp_del commands erase all sprites, the win2_set command restores the story text window.

Bug tracker
Use this page/section to report.

Use comments to this page.

I will try to fix.

Tnx.

GC345 (talk) 05:04, July 29, 2014 (UTC)

Simple ideas aren't always so easy
Well, the idea was simple and clear. Add the "Return" button support to Monsterpedia "Recall" battles.

The trouble was - battles use subroutines so you can't just use the *return zukan_commonkaisou0. You must track the subs level manually and "fire" additional levels before the command above. Something like this:

*stackret if %stack>0 sub %stack,1:return *stackret return *zukan_commonkaisou0

Well, I forgot 1 little trouble. I must add this add/sub %stack command for all battles, to each enemy skills and for all return commands in skills. *Censored*.

And, by the way, I must test this work. Yes, all battles, all enemy skills. And (I hope not) all returns...

Well, back to work...

GC345 (talk) 00:34, January 27, 2016 (UTC)