MGQ3 GC345's patch testing

Summary

 * Beta 12 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.
 * Warning: beta 11 have changed the Ilias (1) entry conditions. You need 50 evaluations from 50 different Chapter 1 enemies. And the count is 0 by default. Sorry.


 * 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) is fixed; 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.
 * Beta 11 fixes: "Petrified" trigger is fixed (wrong message/crash, since beta 9); "var_ld,vX,wind_turn/earth_turn/aqua_turn/fire_turn" is fixed (wrong variable name, since beta 10); "var_ld,vX,keigen" crash is fixed (wrong variable name, since beta 10); spirit canceling is fixed (wait state after skill_anno2_X, not breaks "Daystar", since beta 9).
 * Beta 11 downgrades: classic enemy attacks query (since beta 4) and charged binds (since beta 2) are restored.
 * Beta 11 new Spin-Offs features: new enemy attacks query ([data]/query_new="2"); @/ wait state; partial petrification (skill_status="8"); "cls", "delay", "vsp" and "vsp2" commands; "commonskill1" command; 27 more "change" targets; custom dialogues for mogaku_anno1-4, mogaku_sel1-5 and skill_status_anno/mid/end; customized SP cost and visibility for custom attacks; can play as Alice/Heavenly Knights.
 * Beta 11.01 fixes: query_new=2 (forgot to replace > to >= for unbinded skills) is fixed; "Completed X Chapter Monsterpedia" is rechecked each time as you enter "Record".
 * Beta 12 fixes: Evaluations debug info is removed; ="change,kousoku,3" reads skill_kakuritu for skilldX now; henkaX="X,win" crash is fixed; the [ruka]\tukix key works correctly.
 * Beta12 new features: the skillXtag= key for custom attacks (changes the default skilltag); the "sp_del_multi" command; the "/" wait state support; full path support for spin-off resource files; the multienemy (to be precise - multisprite) battles support; custom dialogues for followup_instant and skill_onedari_use keys; tatie4 and name as "change" targets.


 * Download link


 * Unpack this archive in the MGQ3 directory.


 * To uninstall this patch - just delete/move 0.txt from the MGQ3 directory.

GC345 (talk) 10:05, April 5, 2016 (UTC)

Draw effects

 * You can use plugin effects with bg, sp (all 5 variants), sp_del, sp_del_multi, sp2 (all 5 variants), sp2_del, vsp and vsp2 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\breakup.dll/lrB".

GC345 (talk) 06:47, April 6, 2016 (UTC)
 * You can use effect 15 (mask fade) and effect 18 (mask crossfade) with above commands. Use "15, ," or "18, ," as ending parameters.

Text strings

 * 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, "@/" waits then continues in the same line, "~" starts a new line w/o a wait state, "/" just continues the same 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.
 * Warning: "@/" and "/" may add 1 space because wait states are aligned to the full-width characters grid.


 * Warning: use "@", "~", "@/" and "/" with caution. You may break the 4-rows limit and the game will crash.

GC345 (talk) 06:47, April 6, 2016 (UTC)

New and changed commands

 * 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 default (leftup) transparency mode for custom files (sp_non_alpha - copy and default (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.
 * Vsp and vsp2 commands hide/show sprites/advanced sprites. The syntax: ="vsp/vsp2,,0, [, [, ]]" to hide and  ="vsp,,1, [,duration>[, ]]" to show a sprite.
 * Sp_del_multi command deletes several sprites at once. The syntax: ="sp_del_multi,,, [, [, ]]".
 * 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,,,,,,,, [, ]"
 * <text_line> - 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.
 * <sprite_x>, <sprite_y> - coordinates of the sprite upper-left corner.
 * <font_size> - 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 (the var_cpa equation was true).
 * 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,, [, ]".
 * Supported aliases:
 * "Kousan_anno1", "onedari_list1", "mogaku_anno1"-"mogaku_anno4", "mogaku_sel1"-"mogaku_sel5", "mogaku_dassyutu1/2", "mogaku_earth_dassyutu1/2", "mogaku_kaisin1/2", and "tatie1"-"tatie4" - changes associated battle section strings.
 * "Tatie1b"-"tatie3b", "tatie1c"-"tatie3c" and "tatie1d"-"tatie3d" are used for multienemy (multisprite) battles.
 * "Name" changes the current enemy name set by [data]\name and [data]\short_name.
 * "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 aliaces can use v0-v19 as the source.
 * "Skilla1"-"skilla8", "skillb1"-"skillb4", "skillc1"-"skill4", "skilld1"-"skilld4", "skilltame0", "skillcounter0" and "skillcounter2"-"skillcounter5" changes the odds ("skill_kakuritu") for associated skill.
 * "Sinkou", "customattack", "customskill", "customguard" and "customwait" switch sections for triggers and customized attacks/skills/guard/wait. See below...
 * "Action" and "skill_sub" changes the way commonattack/commonskill commands work. See customized attack/skills.
 * All below aliases can use "v0" - "v19" as the source and can be used as var_ld 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" - change corresponding battle section values.
 * "Tekikazu",  "monster_xb", "monster_xc", "monster_xd", "monster_yb", "monster_yc", "monster_yd" - change multienemy (multisprite) battles parameters.
 * "Counta1" - "counta8", "countb1" - "countb4", "countc1" - "countc4", "counttame0" and "countcounter0" sets colldowns for corresponding skills. You can't change the limit (set with the skill_count key) but you can change the current value.
 * "Henka1"-"henka3" changes HP levels for 3 HP 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" changes the bind level and draws bind sprite/bind icon. Can be used with the "0" method to supress drawing. Enemy will use skillb1-skillb4 with %kousoku=1, skillc1-skillc4 with %kousoku=2 and skilld1-skilld4 (constantly) with %kousoku=3.
 * "Status" changes hero status and draws the corresponding icons.
 * "Genmogaku", "kousoku_type", "kousoku_hp" and "abairitu" change bind attributes.
 * "Status_turn" and "poison" change status attacks attributes "on the fly".
 * "Wind", "wind_turn", "earth", "earth_turn", "aqua", "aqua_turn", "fire" and "fire_turn" changes active Spirits and turns to spirit canceling. If you want to change and draw spirit icons - use "change,wind/earch/aqua/fire, ,1" command. "Change,wind/earth/aqua/fire, ,2" uses the delayed draw.
 * "Counter".


 * Var_ld can use 2 more aliaces except above:
 * "Hit" is used for enemy attack linking. See below.
 * "Kousan" checks surrender/request level. Surrender sets %kousan=1, Requests set %kousan=2, overkill sets %kousan=3.

GC345 (talk) 08:51, April 6, 2016 (UTC)
 * Cls command clears text in the text window.
 * Delay command - same as the wait command but can be skipped with FF/click. The syntax is ="delay, ".
 * 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", "followup_instant", "skill_finish", "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 ([hero_skillX] and [skillX] sections), 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, mogaku_annoX, mogaku_selX, skill_kousoku_anno0, skill_kousoku_anno, skill_status_anno, skill_status_mid, skill_status_end.


 * 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, skill_wind_anno, skill_status_hit.


 * 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.


 * Customized attacks, skills, guards and waits ([customattackX], [customattackX]\listX, [customskillX]\skillX, [customguardX] and [customwaitX]) are custom dialogues too and use similar syntax.


 * Plus advanced attack linking and advanced requests use limited custom dialogues syntax.

GC345 (talk) 08:58, April 6, 2016 (UTC)

Custom dialogues commands

 * These commands: end, name, skillname, bg, sp, sp_non_alpha, sp_alpha, sp_leftup, sp_rightup, sp_del, sp_del_multi, 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, cls, delay, vsp, vsp2 can be used w/o limitations. 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. These commands go to or line if the boolean key with the number isn't activated.
 * Warning: I repeat, jumps only if the key isn't activated.

GC345 (talk) 09:09, April 6, 2016 (UTC)
 * There are some commands (list1, commonattack, commonattack1, commonskill, commonskill1) used in customized hero attacks/skills only. See below.
 * Name command works differently for advanced enemy attacks linking. See below.
 * Execute command is used for advancer enemy attack linking and advanced requests. See below.
 * And of course you can just print text. "@", "~", "\", "@/" and "/" wait states 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 activated.


 * 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_name>:
 * "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.
 * Warning: there are no post triggers after the counterstance end, successful Struggle (with or w/o Gnome) and successful escape from a "special" bind.


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


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

GC345 (talk) 13:20, April 7, 2016 (UTC)

HP traps

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


 * The syntax is henkaX=", [, ]" in the [data] section. HenkaX may be henka1, henka2 or henka3.
 * - enemy HPs. Warning - the condition is "lower of value" not "lower or equal of value".
 * - can be "a1"-"a16", "b1"-"b8", "c1"-"c8", "d1"-"d8", "tame0", "tame1", "counter0"-"counter5" or "win". The "win" target ends the battle with hero's victory. 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 enemy HPs are 0 after your attack. Mode 2 not resets the HP trap, it will execute until you manually disable it (with the "change" 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.

GC345 (talk) 13:26, April 7, 2016 (UTC)

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.
 * You can use name="1" (in the [ruka] section) to play as Alice and name="2" - name="5" to play as Alma Elma/Tamamo/Erubetie/Granberia. Heavenly Knights have constant HPs/SPs maximums, Alice have the constant HPs maximum but SPs are level dependant.
 * The only difference is status icon. To get more - use custom attacks/skills.


 * The query_new="1" or "2" key in the [data] section forces the new enemy skills order. See below.
 * 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 game re-reads the [data]\name key before the victory routine.

GC345 (talk) 08:52, February 29, 2016 (UTC)
 * 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" (in the [data] section) support is added. It replaces the "was/were defeated!" message to the "was/were chased away!" message.
 * The type="2" (in the [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).
 * 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).
 * Henka1, henka2, henka3 keys set 3 HP traps. See above.

Enemy attack queries

 * Original japan version and Rogue's patch use the very strange attack selection method:

rnd2 %ransu,1,100 if %ransu<=%tuika_skilla1 && %tuika_owaza_count1a>=%max_owaza_count1a && %tuika_skilla1>0 gosub *tuika_a1:goto *common_main sub %ransu,%tuika_skilla1 if %ransu<=%tuika_skilla2 && %tuika_owaza_count1b>=%max_owaza_count1b && %tuika_skilla2>0 gosub *tuika_a2:goto *common_main sub %ransu,%tuika_skilla2 if %ransu<=%tuika_skilla3 && %tuika_owaza_count1c>=%max_owaza_count1c && %tuika_skilla3>0 gosub *tuika_a3:goto *common_main sub %ransu,%tuika_skilla3 if %ransu<=%tuika_skilla4 && %tuika_owaza_count1d>=%max_owaza_count1d && %tuika_skilla4>0 gosub *tuika_a4:goto *common_main sub %ransu,%tuika_skilla4 ...
 * The first trouble - cooldowns use the >= equation. So - there is no difference between skill_count="0" and skill_count="1". And the game uses "once per <skill_count> turns" condition, not the "<skill_count> turns between repeats" one. Plus enemy attacks with cooldowns can be used in the 1st turn.


 * The second trouble - if a skill can't be executed because of the coodown - next skill chances are enlarged. The cause is - sub %ransu,tuika_skillXX command is executed always, even if a skill is cooldowned. And the effect is cumulative.


 * Plus - cooldowns aren't resetted after you escape from a "special" bind.


 * [data]/query_new="2" forces the fixed enemy attacks query. It still uses the >= equation but skill chances are constant.


 * [data]/query_new="1" forces another query. It uses the > equation (same as story battles), constant skill chances and the enemy skills order is different. skillcount0, skilltame0, skilla1 - skilla8. After you escape from a special bind - cooldowns are resetted to 0. The last difference - normal and charged binds not set the bind length to 0 by default. If you not define skill_mogaku and skill_mogaku_earth - %genmogaku value not changes.


 * Query_new="1" is recommended.

GC345 (talk) 08:06, April 8, 2016 (UTC)

Full path support for resources

 * There were 2 methods to link a resourse file in the game. The 1st was "resource name only", the 2nd - "file name with the extension".


 * Both have flaws. The 1st one uses fixed locations (se\ for sound files, bgm\ for music etc). As the example - you can't use standard icons, effects etc (effect\ and system\), you can't use NSA voices (voices\).


 * The 2nd one can use files only in the current story.ini directory. So if you have several battles - you must copy resources to all subfolders.


 * Now the 2nd method is updated:
 * Use "\" to force the search point to the main game directory. Example - ="se,1,\voice\alice1_01.ogg" plays this .ogg from the .NSA voice directory.
 * Use "." to force the search point to the main story.ini directory. So if your Spin-off have subfolders (like Cecil's Quest) - you can store all resources in 1 folder.


 * Example - you have the main directory Test with 2 subfolder for battles (Test\Fight1 and Test\Fight2). Each have a separate story.ini. And you want to load the file bg001.bmp from the Test folder when you have started the first fight. Use ="bg,.bg001.bmp,10,500"


 * This feature was added for these keys: "tatie1"-"tatie4", "haikei", "music", "skill_se1"-"skill_se9", "skill_ct1", "skill_ct1_1"-"skill_ct1_9", "skill_ct2", "skill_bukkake".


 * This feature was added to these commands: "bg", "sp", "sp_non_alpha", "sp_alpha", "sp_leftup", "sp_rightup", "bgm", "se", "syasei", "syasei_non_alpha", "syasei_alpha", "syasei_leftup", "syasei_rightup", "syasei2", "sp2", "sp2_non_alpha", "sp2_alpha", "sp2_leftup", "sp2_rightup".


 * Plus now all keys are independent. As the example you can use the "name only" method for the "tatie1" key and the "name with extension" method for "tatie2" key simultaneously.

GC345 (talk) 08:08, April 8, 2016 (UTC)

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. The game checks the skill_damageX_1 value for 2nd and later hits and apply the hit only if this key is defined.
 * 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). 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 (except gradual petrification) 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" or "8") 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 or after a bad status ends. 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.


 * If all attacks in a query are cooldowned - enemy will pass 1 turn (needs [data]/query_new="1").
 * 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. The defined value will be loaded to all 4 stances (normal, happy, sad and bind) but you can change them later with the "change,tatieX" command. After the counterstance ends - the game will reload "tatie1"-"tatie4" values from the [data] section.
 * 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". See below.
 * The gradual petrification status attack support is added. Use skill_kouka="2" and skill_status="8". See below.
 * The poison status attack support is added. Use skill_kouka="2" and skill_status="9". See below.
 * Multiple rape scenes are supported. Use the skill_lose_scene="X" key. If this key is defined the game go to the section [loseX] 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.

GC345 (talk) 15:04, April 8, 2016 (UTC)

Petrification and gradual petrification

 * There are 2 types of petrification in the game.


 * The first type ("delayed") starts the countdown, lower the countdown each turn and petrifies a hero after the countdown ends. Used by Medusa in the main story. To use this attack in spin-off battle - set skill_souka="2" and skill_status="6". Skill_status_turn1/2 sets the coundown value in turns.


 * The 2nd type ("gradual" or "partial") petrifies a hero after several hits. Use skill_kouka="2" and skill_status="8". Skill_status_turn1/2 sets number of hits before a complete petrification. Next hit not set this value but lower it per 1. And when the value is 0 - the hero petrifies completely and can't use any commands.  Used by Chimera Medullahan and Basilisk.


 * If you use skill_status_turn1="0" and skill_status_turn2="0" or not define these keys - the petrification is instant for both variants.


 * These 2 statuses use skill_status_mid and skill_status_end keys differently. The skill_status_end key is used once when the hero petrifies fully. Skill_status_mid is used each turn after this.


 * "Petrified" trigger works for both variants.


 * "Eyes of Recovery" heals both variants of petrification.

GC345 (talk) 10:31, February 29, 2016 (UTC)

Poison

 * Skill_kouka="2" and skill_status"9".


 * After each enemy turn a hero will be hit by poison damage. The default damage factor is 1/20 from hero's maximum HPs. You can set the value with the skill_status_abairitu key or the "change,poison" command. The damage value is random between 90%-110% of the damage factor.


 * If the poison damage triggers half_s1/2 or kiki_s1/2 messages - the game checks the skill_message_mode key for the attack which started the poison status.


 * If the poison damage kills a hero - the game uses the skill_rukalose key and others lose routine keys from the same skill.


 * You can override both keys if you define them in the [poison] section.

GC345 (talk) 11:15, February 29, 2016 (UTC)

<p style="margin-left:24px;">

Enemy attacks linking

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


 * Followup key is the basic link. The syntax is "followup= ". Possible values for :
 * "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 syntax 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.

GC345 (talk) 15:59, February 29, 2016 (UTC)
 * 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") or spirit canceling (skill_kouka=8) - 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.
 * Skill_finish links 2 skills in the same turn too. The syntax is different: "skill_finish=<HPs>, ". The is executed only if hero's HPs are below the <HPs> value. If you use "skill_multihit="1"" - this will be checked after each hit.

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 SPs.


 * You can control the result with the "change,action" commands. 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.


 * "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.
 * 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.

GC345 (talk) 02:20, March 2, 2016 (UTC)

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.
 * Warning: this command affects the Skill menu only. The skill itself still uses the default nametag. You must overload the skill 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 to change this.


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


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


 * Warning: beta 11 have 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).


 * You can use the commonskill and commonskill1 commands 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. Customskill1 not prints hero's messages and not changes SPs (similar to the commonattack1 command).
 * You can use the "change,skill_sub,1" command to suppress skill hit sound and damage routine. Again use for enemy evades/defence/custom damage (similar to commonattack/commonattack1).


 * 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"
 * Example: make "Quad Spirits Summon" with different name and SPs cost (still uses Quad Spirits Summon skilltag):

[customskill1] skill25="unity" skill25name="Heinrich's Unity - 1" skill25mp="1" [unity] 100="name,Luka" 101="Here we go, everyone!" 102="name" 103="change,mp,1,-" 104="change,action,57" 105="commonskill1" 106="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" GC345 (talk) 00:49, March 1, 2016 (UTC)

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)