From b3c25ec3d41cf95c04270adbc08c0c30b1848d48 Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Mon, 17 Aug 2020 18:28:47 -0300 Subject: Doomsday Act 5 - Keshlam's Adventurer Guild (#560) Contains utils, gameplay and epilogue functions for Doomsday Act 5 THE FINAL BATTLE Note: Balancing patches may follow and are expected. The debug commands (`@js33`, `@js67` and `@js99`) were not removed. There might be overlap in voicing, in case specialeffect2() fails to work as intended. Bonus Content: * MONOCLE QUEST * Golden Apple healing is now instantaneous. * PVP Coin (Unrelated but anyway) * Golden PVP Cap. * Fix PVP Cap weight. --- world/map/npc/099-2/_import.txt | 3 +- world/map/npc/099-2/_warps.txt | 42 +- world/map/npc/099-2/logic.txt | 1189 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 1212 insertions(+), 22 deletions(-) create mode 100644 world/map/npc/099-2/logic.txt (limited to 'world/map/npc/099-2') diff --git a/world/map/npc/099-2/_import.txt b/world/map/npc/099-2/_import.txt index 16a3081c..a60bbc10 100644 --- a/world/map/npc/099-2/_import.txt +++ b/world/map/npc/099-2/_import.txt @@ -1,6 +1,7 @@ -// Map 099-2: Nu'RamRooms +// Map 099-2: Keshlam's Adventurer's Guild Quarters // This file is generated automatically. All manually added changes will be removed when running the Converter. map: 099-2 npc: npc/099-2/_mobs.txt npc: npc/099-2/_nodes.txt npc: npc/099-2/_warps.txt +npc: npc/099-2/logic.txt diff --git a/world/map/npc/099-2/_warps.txt b/world/map/npc/099-2/_warps.txt index 676f6f2f..6d824836 100644 --- a/world/map/npc/099-2/_warps.txt +++ b/world/map/npc/099-2/_warps.txt @@ -1,23 +1,23 @@ // This file is generated automatically. All manually added changes will be removed when running the Converter. -// Nu'RamRooms warps +// Keshlam's Adventurer's Guild Quarters warps -099-1,25,23|warp|-1,-1,099-1,29,17 -099-1,59,22|warp|-1,-1,099-1,77,17 -099-1,90,22|warp|-1,-1,099-1,105,9 -099-1,121,22|warp|-1,-1,099-1,91,137 -099-1,25,50|warp|-1,-1,099-1,20,116 -099-1,59,50|warp|-1,-1,099-1,97,86 -099-1,91,50|warp|-1,-1,099-1,112,127 -099-1,121,49|warp|-1,-1,099-1,64,115 -099-1,25,76|warp|-1,-1,099-1,64,73 -099-1,59,76|warp|-1,-1,099-1,42,52 -099-1,91,76|warp|-1,-1,099-1,92,45 -099-1,121,76|warp|-1,-1,099-1,15,78 -099-1,25,102|warp|-1,-1,099-1,49,130 -099-1,60,102|warp|-1,-1,099-1,113,62 -099-1,91,102|warp|-1,-1,099-1,131,79 -099-1,121,102|warp|-1,-1,099-1,72,59 -099-1,26,133|warp|-1,-1,099-1,47,93 -099-1,60,133|warp|-1,-1,099-1,102,25 -099-1,92,133|warp|-1,-1,099-1,120,45 -099-1,121,133|warp|-1,-1,099-1,97,106 +099-2,25,23|warp|-1,-1,099-1,29,17 +099-2,59,22|warp|-1,-1,099-1,77,17 +099-2,90,22|warp|-1,-1,099-1,105,9 +099-2,121,22|warp|-1,-1,099-1,91,137 +099-2,25,50|warp|-1,-1,099-1,20,116 +099-2,59,50|warp|-1,-1,099-1,97,86 +099-2,91,50|warp|-1,-1,099-1,112,127 +099-2,121,49|warp|-1,-1,099-1,64,115 +099-2,25,76|warp|-1,-1,099-1,64,73 +099-2,59,76|warp|-1,-1,099-1,42,52 +099-2,91,76|warp|-1,-1,099-1,92,45 +099-2,121,76|warp|-1,-1,099-1,15,78 +099-2,25,102|warp|-1,-1,099-1,49,130 +099-2,60,102|warp|-1,-1,099-1,113,62 +099-2,91,102|warp|-1,-1,099-1,131,79 +099-2,121,102|warp|-1,-1,099-1,72,59 +099-2,26,133|warp|-1,-1,099-1,47,93 +099-2,60,133|warp|-1,-1,099-1,102,25 +099-2,92,133|warp|-1,-1,099-1,120,45 +099-2,121,133|warp|-1,-1,099-1,97,106 diff --git a/world/map/npc/099-2/logic.txt b/world/map/npc/099-2/logic.txt new file mode 100644 index 00000000..45551e12 --- /dev/null +++ b/world/map/npc/099-2/logic.txt @@ -0,0 +1,1189 @@ +// Evol script +// Author: +// Jesusalva +// Description: +// 099-2 and 099-6 KESHLAM ADVENTURER GUILD QUARTERS +// Controls gimmicks in 099-3 as well +///////////////////////////////////////////////////////////////////////////////// + +-|script|#099-2_CMD|32767 +{ + end; + +OnStorage: + if ($DOOMSDAY != 3) + end; + if (getmap() != "099-5" && getmap() != "099-4") + end; + if ($@DD5_STATUS != 1 && $@DD5_STATUS != 2 && $@DD5_STATUS != 4 && $@DD5_STATUS != 6) + end; + openstorage; + end; + +// FIXME DEBUG DEBUG DEBUG FIXME +OnDebug: + debugmes "CHEAT - JS33"; + if (!debug || $DOOMSDAY != 3 || GM < GM_SYSOP) + end; + set $@DD5_TSWITCH, 18; + set $@DD5_OPENSESAME, 1; + message strcharinfo(0), "DOOMSDAY ACT 5 DEBUG SUCCESSFUL"; + end; + +// FIXME DEBUG DEBUG DEBUG FIXME +OnDebugDamage: + if (!debug || $DOOMSDAY != 3 || GM < GM_SYSOP) + end; + if ($@DD5_HP <= 1000) + end; + set $@DD5_HP, max(1000, $@DD5_HP-2500); + message strcharinfo(0), "Battle: Damage -2500 HP"; + callfunc "FinalExamAttack"; + end; + +// FIXME DEBUG DEBUG DEBUG FIXME +OnDebugX: + debugmes "CHEAT - JS99"; + if (!debug || $DOOMSDAY != 3 || GM < GM_SYSOP || $@DD5_STATUS) + end; + set $@DD5_HP, 100; + set $@DD5_STATUS, 7; + set $@DD5_BEGIN, gettimetick(2); + warp "099-5", 0, 0; + fakenpcname "Zax De'Kagen#0", "Zax De'Kagen#0", 1142; + message strcharinfo(0), "DOOMSDAY ACT 5 SUPER DEBUG SUCCESSFUL"; + end; + +OnInit: + // Register commands + registercmd "@js33", strnpcinfo(0)+"::OnDebug"; + registercmd "@js67", strnpcinfo(0)+"::OnDebugDamage"; + registercmd "@js99", strnpcinfo(0)+"::OnDebugX"; + registercmd "#storage", strnpcinfo(0)+"::OnStorage"; + end; +} + +099-2,0,0,0|script|#099-2_Prestart|32767 +{ + end; + +// FIXME Do not work. Again. +OnTrial1: + monster "099-1", 35, 27, "", 1140, 1, strnpcinfo(0)+"::OnTrial2"; + monster "099-1", 35, 27, "", 1141, 1, strnpcinfo(0)+"::OnTrial2"; + getexp 10000, 0; + getitem "TreasureKey", 1; + end; + +OnTrial2: + monster "099-1", 35, 27, "", 1143, 1, strnpcinfo(0)+"::OnTrial3"; + getexp 10000, 0; + getitem "DarkConcentrationPotion", 1; + end; + +OnTrial3: + getexp 10000, 0; + getitem "BentNeedle", 1; + end; + +// Janitor Function +OnTimer30000: + if (!$@DD5_STATUS) + end; + if (getmapusers("099-5") < 1) + donpcevent "#TMWFinalExam::OnAbort"; + initnpctimer; + end; + +OnInit: + // Initialize the 18 switches + set $@DD5_TSWITCH, 0; + // setarray $@DD5_SWITCH - not needed + + // Initialize the 16 passwords + setarray $@DD5_PASSWORDS, + 3555+rand(10000), + 3555+rand(10000), + 3555+rand(10000), + 3555+rand(10000), + 3555+rand(10000), + 3555+rand(10000), + 3555+rand(10000), + 3555+rand(10000), + 3555+rand(10000), + 3555+rand(10000), + 3555+rand(10000), + 3555+rand(10000), + 3555+rand(10000), + 3555+rand(10000), + 3555+rand(10000), + 3555+rand(10000); + + // Spawn monsters on maps + // The infantry + areamonster "099-2", 20, 20, 130, 130, "", 1159, 10; + areamonster "099-2", 20, 20, 130, 130, "", 1160, 10; + areamonster "099-6", 20, 20, 130, 130, "", 1159, 10; + areamonster "099-6", 20, 20, 130, 130, "", 1160, 10; + areamonster "099-3", 20, 20, 120, 80, "", 1159, 15; + areamonster "099-3", 20, 20, 120, 80, "", 1160, 15; + + // The small fry + areamonster "099-1", 20, 20, 130, 130, "", 1156, 30; + areamonster "099-2", 20, 20, 130, 130, "", 1156, 20; + areamonster "099-6", 20, 20, 130, 130, "", 1156, 20; + areamonster "099-3", 20, 20, 120, 80, "", 1156, 60; + // The advanced mobs + areamonster "099-1", 20, 20, 130, 130, "", 1152, 15; + areamonster "099-2", 20, 20, 130, 130, "", 1152, 5; + areamonster "099-6", 20, 20, 130, 130, "", 1152, 5; + areamonster "099-3", 20, 20, 120, 80, "", 1152, 20; + + // The boss. Used to be 1137 Tormenta but... Well... Better not. + monster "099-1", 35, 27, "", 1147, 1, "#099-2_Prestart::OnTrial1"; + end; + +OnJanitor: + // Maintain 099-5 (janitor) + initnpctimer; + end; +} + +///////////////////////////////////////////////////// +// Switches subsystem +// Switches are distributed between three maps +// There is a total of 18 switches +099-2,25,17,0|script|#099-2_25_17|422 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + if (!$@DD5_SWITCH[0]) goto L_Enable; + end; + +L_NoItem: + mes "The switch is stuck, if I only had a Needle or something..."; + close; + +L_Enable: + if ($DOOMSDAY_VANILLA) + end; + if (countitem("BentNeedle") == 0) goto L_NoItem; + delitem "BentNeedle", 1; + fakenpcname strnpcinfo(0), strnpcinfo(0)+"_", 423; + set $@DD5_SWITCH[0], 1; + set $@DD5_TSWITCH, $@DD5_TSWITCH+1; + getexp 100000, 0; + message strcharinfo(0), "The switch is now on!"; + end; +} + +099-2,90,18,0|script|#099-2_90_18|422 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + if (!$@DD5_SWITCH[1]) goto L_Enable; + end; + +L_NoItem: + mes "The switch is stuck, if I only had a Needle or something..."; + close; + +L_Enable: + if ($DOOMSDAY_VANILLA) + end; + if (countitem("BentNeedle") == 0) goto L_NoItem; + delitem "BentNeedle", 1; + fakenpcname strnpcinfo(0), strnpcinfo(0)+"_", 423; + set $@DD5_SWITCH[1], 1; + set $@DD5_TSWITCH, $@DD5_TSWITCH+1; + getexp 100000, 0; + message strcharinfo(0), "The switch is now on!"; + end; +} + +099-2,121,70,0|script|#099-2_121_70|422 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + if (!$@DD5_SWITCH[2]) goto L_Enable; + end; + +L_NoItem: + mes "The switch is stuck, if I only had a Needle or something..."; + close; + +L_Enable: + if ($DOOMSDAY_VANILLA) + end; + if (countitem("BentNeedle") == 0) goto L_NoItem; + delitem "BentNeedle", 1; + fakenpcname strnpcinfo(0), strnpcinfo(0)+"_", 423; + set $@DD5_SWITCH[2], 1; + set $@DD5_TSWITCH, $@DD5_TSWITCH+1; + getexp 100000, 0; + message strcharinfo(0), "The switch is now on!"; + end; +} + +099-2,23,95,0|script|#099-2_23_95|422 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + if (!$@DD5_SWITCH[3]) goto L_Enable; + end; + +L_NoItem: + mes "The switch is stuck, if I only had a Needle or something..."; + close; + +L_Enable: + if ($DOOMSDAY_VANILLA) + end; + if (countitem("BentNeedle") == 0) goto L_NoItem; + delitem "BentNeedle", 1; + fakenpcname strnpcinfo(0), strnpcinfo(0)+"_", 423; + set $@DD5_SWITCH[3], 1; + set $@DD5_TSWITCH, $@DD5_TSWITCH+1; + getexp 100000, 0; + message strcharinfo(0), "The switch is now on!"; + end; +} + +099-2,57,130,0|script|#099-2_57_130|422 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + if (!$@DD5_SWITCH[4]) goto L_Enable; + end; + +L_NoItem: + mes "The switch is stuck, if I only had a Needle or something..."; + close; + +L_Enable: + if ($DOOMSDAY_VANILLA) + end; + if (countitem("BentNeedle") == 0) goto L_NoItem; + delitem "BentNeedle", 1; + fakenpcname strnpcinfo(0), strnpcinfo(0)+"_", 423; + set $@DD5_SWITCH[4], 1; + set $@DD5_TSWITCH, $@DD5_TSWITCH+1; + getexp 100000, 0; + message strcharinfo(0), "The switch is now on!"; + end; +} + +099-6,25,17,0|script|#099-6_25_17|422 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + if (!$@DD5_SWITCH[5]) goto L_Enable; + end; + +L_NoItem: + mes "The switch is stuck, if I only had a Needle or something..."; + close; + +L_Enable: + if ($DOOMSDAY_VANILLA) + end; + if (countitem("BentNeedle") == 0) goto L_NoItem; + delitem "BentNeedle", 1; + fakenpcname strnpcinfo(0), strnpcinfo(0)+"_", 423; + set $@DD5_SWITCH[5], 1; + set $@DD5_TSWITCH, $@DD5_TSWITCH+1; + getexp 100000, 0; + message strcharinfo(0), "The switch is now on!"; + end; +} + +099-6,90,18,0|script|#099-6_90_18|422 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + if (!$@DD5_SWITCH[6]) goto L_Enable; + end; + +L_NoItem: + mes "The switch is stuck, if I only had a Needle or something..."; + close; + +L_Enable: + if ($DOOMSDAY_VANILLA) + end; + if (countitem("BentNeedle") == 0) goto L_NoItem; + delitem "BentNeedle", 1; + fakenpcname strnpcinfo(0), strnpcinfo(0)+"_", 423; + set $@DD5_SWITCH[6], 1; + set $@DD5_TSWITCH, $@DD5_TSWITCH+1; + getexp 100000, 0; + message strcharinfo(0), "The switch is now on!"; + end; +} + +099-6,121,71,0|script|#099-6_121_71|422 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + if (!$@DD5_SWITCH[7]) goto L_Enable; + end; + +L_NoItem: + mes "The switch is stuck, if I only had a Needle or something..."; + close; + +L_Enable: + if ($DOOMSDAY_VANILLA) + end; + if (countitem("BentNeedle") == 0) goto L_NoItem; + delitem "BentNeedle", 1; + fakenpcname strnpcinfo(0), strnpcinfo(0)+"_", 423; + set $@DD5_SWITCH[7], 1; + set $@DD5_TSWITCH, $@DD5_TSWITCH+1; + getexp 100000, 0; + message strcharinfo(0), "The switch is now on!"; + end; +} + +099-6,23,95,0|script|#099-6_23_95|422 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + if (!$@DD5_SWITCH[8]) goto L_Enable; + end; + +L_NoItem: + mes "The switch is stuck, if I only had a Needle or something..."; + close; + +L_Enable: + if ($DOOMSDAY_VANILLA) + end; + if (countitem("BentNeedle") == 0) goto L_NoItem; + delitem "BentNeedle", 1; + fakenpcname strnpcinfo(0), strnpcinfo(0)+"_", 423; + set $@DD5_SWITCH[8], 1; + set $@DD5_TSWITCH, $@DD5_TSWITCH+1; + getexp 100000, 0; + message strcharinfo(0), "The switch is now on!"; + end; +} + +099-6,57,130,0|script|#099-6_57_130|422 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + if (!$@DD5_SWITCH[9]) goto L_Enable; + end; + +L_NoItem: + mes "The switch is stuck, if I only had a Needle or something..."; + close; + +L_Enable: + if ($DOOMSDAY_VANILLA) + end; + if (countitem("BentNeedle") == 0) goto L_NoItem; + delitem "BentNeedle", 1; + fakenpcname strnpcinfo(0), strnpcinfo(0)+"_", 423; + set $@DD5_SWITCH[9], 1; + set $@DD5_TSWITCH, $@DD5_TSWITCH+1; + getexp 100000, 0; + message strcharinfo(0), "The switch is now on!"; + end; +} + +099-3,29,69,0|script|#099-3_29_69|422 +{ + // For the cells I need a smaller distance + set @npc_distance, 2; + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + if (!$@DD5_SWITCH[10]) goto L_Enable; + end; + +L_NoItem: + mes "The switch is stuck, if I only had a Needle or something..."; + close; + +L_Enable: + if ($DOOMSDAY_VANILLA) + end; + if (countitem("BentNeedle") == 0) goto L_NoItem; + delitem "BentNeedle", 1; + fakenpcname strnpcinfo(0), strnpcinfo(0)+"_", 423; + set $@DD5_SWITCH[10], 1; + set $@DD5_TSWITCH, $@DD5_TSWITCH+1; + getexp 100000, 0; + message strcharinfo(0), "The switch is now on!"; + end; +} + +099-3,35,69,0|script|#099-3_35_69|422 +{ + // For the cells I need a smaller distance + set @npc_distance, 2; + if(@npc_check) end; + + if (!$@DD5_SWITCH[11]) goto L_Enable; + end; + +L_NoItem: + mes "The switch is stuck, if I only had a Needle or something..."; + close; + +L_Enable: + if ($DOOMSDAY_VANILLA) + end; + if (countitem("BentNeedle") == 0) goto L_NoItem; + delitem "BentNeedle", 1; + fakenpcname strnpcinfo(0), strnpcinfo(0)+"_", 423; + set $@DD5_SWITCH[11], 1; + set $@DD5_TSWITCH, $@DD5_TSWITCH+1; + getexp 100000, 0; + message strcharinfo(0), "The switch is now on!"; + end; +} + +099-3,41,69,0|script|#099-3_41_69|422 +{ + // For the cells I need a smaller distance + set @npc_distance, 2; + if(@npc_check) end; + + if (!$@DD5_SWITCH[12]) goto L_Enable; + end; + +L_NoItem: + mes "The switch is stuck, if I only had a Needle or something..."; + close; + +L_Enable: + if ($DOOMSDAY_VANILLA) + end; + if (countitem("BentNeedle") == 0) goto L_NoItem; + delitem "BentNeedle", 1; + fakenpcname strnpcinfo(0), strnpcinfo(0)+"_", 423; + set $@DD5_SWITCH[12], 1; + set $@DD5_TSWITCH, $@DD5_TSWITCH+1; + getexp 100000, 0; + message strcharinfo(0), "The switch is now on!"; + end; +} + +099-3,59,69,0|script|#099-3_59_69|422 +{ + // For the cells I need a smaller distance + set @npc_distance, 2; + if(@npc_check) end; + + if (!$@DD5_SWITCH[13]) goto L_Enable; + end; + +L_NoItem: + mes "The switch is stuck, if I only had a Needle or something..."; + close; + +L_Enable: + if ($DOOMSDAY_VANILLA) + end; + if (countitem("BentNeedle") == 0) goto L_NoItem; + delitem "BentNeedle", 1; + fakenpcname strnpcinfo(0), strnpcinfo(0)+"_", 423; + set $@DD5_SWITCH[13], 1; + set $@DD5_TSWITCH, $@DD5_TSWITCH+1; + getexp 100000, 0; + message strcharinfo(0), "The switch is now on!"; + end; +} + +099-3,79,69,0|script|#099-3_79_69|422 +{ + // For the cells I need a smaller distance + set @npc_distance, 2; + if(@npc_check) end; + + if (!$@DD5_SWITCH[14]) goto L_Enable; + end; + +L_NoItem: + mes "The switch is stuck, if I only had a Needle or something..."; + close; + +L_Enable: + if ($DOOMSDAY_VANILLA) + end; + if (countitem("BentNeedle") == 0) goto L_NoItem; + delitem "BentNeedle", 1; + fakenpcname strnpcinfo(0), strnpcinfo(0)+"_", 423; + set $@DD5_SWITCH[14], 1; + set $@DD5_TSWITCH, $@DD5_TSWITCH+1; + getexp 100000, 0; + message strcharinfo(0), "The switch is now on!"; + end; +} + +099-3,91,69,0|script|#099-3_91_69|422 +{ + // For the cells I need a smaller distance + set @npc_distance, 2; + if(@npc_check) end; + + if (!$@DD5_SWITCH[15]) goto L_Enable; + end; + +L_NoItem: + mes "The switch is stuck, if I only had a Needle or something..."; + close; + +L_Enable: + if ($DOOMSDAY_VANILLA) + end; + if (countitem("BentNeedle") == 0) goto L_NoItem; + delitem "BentNeedle", 1; + fakenpcname strnpcinfo(0), strnpcinfo(0)+"_", 423; + set $@DD5_SWITCH[15], 1; + set $@DD5_TSWITCH, $@DD5_TSWITCH+1; + getexp 100000, 0; + message strcharinfo(0), "The switch is now on!"; + end; +} + +099-3,97,69,0|script|#099-3_97_69|422 +{ + // For the cells I need a smaller distance + set @npc_distance, 2; + if(@npc_check) end; + + if (!$@DD5_SWITCH[16]) goto L_Enable; + end; + +L_NoItem: + mes "The switch is stuck, if I only had a Needle or something..."; + close; + +L_Enable: + if ($DOOMSDAY_VANILLA) + end; + if (countitem("BentNeedle") == 0) goto L_NoItem; + delitem "BentNeedle", 1; + fakenpcname strnpcinfo(0), strnpcinfo(0)+"_", 423; + set $@DD5_SWITCH[16], 1; + set $@DD5_TSWITCH, $@DD5_TSWITCH+1; + getexp 100000, 0; + message strcharinfo(0), "The switch is now on!"; + end; +} + +099-3,115,69,0|script|#099-3_115_69|422 +{ + // For the cells I need a smaller distance + set @npc_distance, 2; + if(@npc_check) end; + + if (!$@DD5_SWITCH[17]) goto L_Enable; + end; + +L_NoItem: + mes "The switch is stuck, if I only had a Needle or something..."; + close; + +L_Enable: + if ($DOOMSDAY_VANILLA) + end; + if (countitem("BentNeedle") == 0) goto L_NoItem; + delitem "BentNeedle", 1; + fakenpcname strnpcinfo(0), strnpcinfo(0)+"_", 423; + set $@DD5_SWITCH[17], 1; + set $@DD5_TSWITCH, $@DD5_TSWITCH+1; + getexp 100000, 0; + message strcharinfo(0), "The switch is now on!"; + end; +} + + + + + +///////////////////////////////////////////////////// +// Password subsystem +// Passwords are distributed between two maps +// There is a total of 16 passwords +099-2,119,18,0|script|Writing#2_119_18|400 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + mes "##9 There is a strange writing here. ##0"; + mes ""; + mes "##1Password... NULL... It is... "+$@DD5_PASSWORDS[0]+"..."; + mes "The remainder was too blurred to read."; + close; +} + +099-2,25,45,0|script|Writing#2_25_45|400 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + mes "##9 There is a strange writing here. ##0"; + mes ""; + mes "##1Password... EIN... It is... "+$@DD5_PASSWORDS[1]+"..."; + mes "The remainder was too blurred to read."; + close; +} + +099-2,93,42,0|script|Writing#2_93_42|400 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + mes "##9 There is a strange writing here. ##0"; + mes ""; + mes "##1Password... ZWEI... It is... "+$@DD5_PASSWORDS[2]+"..."; + mes "The remainder was too blurred to read."; + close; +} + +099-2,59,72,0|script|Writing#2_59_72|400 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + mes "##9 There is a strange writing here. ##0"; + mes ""; + mes "##1Password... DREI... It is... "+$@DD5_PASSWORDS[3]+"..."; + mes "The remainder was too blurred to read."; + close; +} + +099-2,89,66,0|script|Writing#2_89_66|400 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + mes "##9 There is a strange writing here. ##0"; + mes ""; + mes "##1Password... VIER... It is... "+$@DD5_PASSWORDS[4]+"..."; + mes "The remainder was too blurred to read."; + close; +} + +099-2,123,94,0|script|Writing#2_123_94|400 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + mes "##9 There is a strange writing here. ##0"; + mes ""; + mes "##1Password... FUNF... It is... "+$@DD5_PASSWORDS[5]+"..."; + mes "The remainder was too blurred to read."; + close; +} + +099-2,62,94,0|script|Writing#2_62_94|400 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + mes "##9 There is a strange writing here. ##0"; + mes ""; + mes "##1Password... SECHS... It is... "+$@DD5_PASSWORDS[6]+"..."; + mes "The remainder was too blurred to read."; + close; +} + +099-2,27,94,0|script|Writing#2_27_94|400 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + mes "##9 There is a strange writing here. ##0"; + mes ""; + mes "##1Password... SIEBEN... It is... "+$@DD5_PASSWORDS[7]+"..."; + mes "The remainder was too blurred to read."; + close; +} + +099-6,119,18,0|script|Writing#6_119_18|400 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + mes "##9 There is a strange writing here. ##0"; + mes ""; + mes "##1Password... ACHT... It is... "+$@DD5_PASSWORDS[8]+"..."; + mes "The remainder was too blurred to read."; + close; +} + +099-6,25,45,0|script|Writing#6_25_45|400 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + mes "##9 There is a strange writing here. ##0"; + mes ""; + mes "##1Password... NEUN... It is... "+$@DD5_PASSWORDS[9]+"..."; + mes "The remainder was too blurred to read."; + close; +} + +099-6,93,42,0|script|Writing#6_93_42|400 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + mes "##9 There is a strange writing here. ##0"; + mes ""; + mes "##1Password... ZEHN... It is... "+$@DD5_PASSWORDS[10]+"..."; + mes "The remainder was too blurred to read."; + close; +} + +099-6,59,72,0|script|Writing#6_59_72|400 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + mes "##9 There is a strange writing here. ##0"; + mes ""; + mes "##1Password... ELF... It is... "+$@DD5_PASSWORDS[11]+"..."; + mes "The remainder was too blurred to read."; + close; +} + +099-6,89,66,0|script|Writing#6_89_66|400 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + mes "##9 There is a strange writing here. ##0"; + mes ""; + mes "##1Password... ZWOLF... It is... "+$@DD5_PASSWORDS[12]+"..."; + mes "The remainder was too blurred to read."; + close; +} + +099-6,123,94,0|script|Writing#6_123_94|400 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + mes "##9 There is a strange writing here. ##0"; + mes ""; + mes "##1Password... DREIZEHN... It is... "+$@DD5_PASSWORDS[13]+"..."; + mes "The remainder was too blurred to read."; + close; +} + +099-6,62,94,0|script|Writing#6_62_94|400 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + mes "##9 There is a strange writing here. ##0"; + mes ""; + mes "##1Password... VIERZEHN... It is... "+$@DD5_PASSWORDS[14]+"..."; + mes "The remainder was too blurred to read."; + close; +} + +099-6,27,94,0|script|Writing#6_27_94|400 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + mes "##9 There is a strange writing here. ##0"; + mes ""; + mes "##1Password... FUNFZEHN... It is... "+$@DD5_PASSWORDS[15]+"..."; + mes "The remainder was too blurred to read."; + close; +} + + + + + +///////////////////////////////////////////////////// +// Lore subsystem +// Lore tidbits are distributed between four maps +// Strategy notes are mixed as well +// There is a total of 18 lore parts + +099-2,57,17,0|script|???#099-2_57_17|400 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + mes ".:: V0id Flower ::."; + mes "This orange flower is dangerous!"; + mes "Do not disturb them - they have great range and damage!"; + mes ""; + mes "Whoever designed this artifical flower must have been crazy!"; + mes "Killing it is not fast enough, avoid its nectar at all costs!"; + close; +} + +099-2,123,128,0|script|???#099-2_123_128|400 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + mes ".:: V0id Slime ::."; + mes "A crazy combat unit made in a crazy laboratory."; + mes "If you can, just avoid it. It is slow enough."; + mes "It can be slain, but have a decent defense, so use magic."; + close; +} + +099-2,95,122,0|script|???#099-2_95_122|400 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + mes ".:: V0id Snake ::."; + mes "If I find who designed these monsters ... Grr..."; + mes "They are fast. And powerful. Goes down quickly, though."; + close; +} + +099-2,28,122,0|script|???#099-2_28_122|400 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + mes "Last night, we were attacked by Xakelbael the Dark."; + mes "Our attacks could barely do him any harm, and then..."; + mes "He cast \"Fourth Fall\". All our buffed soldiers fell down the same instant."; + mes ""; + mes "I am gravely injured, but I'm leaving this note here."; + mes "Comrades, please avenge me!"; + close; +} + +099-2,91,92,0|script|???#099-2_91_92|400 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + mes ".:: Sasquatch ::."; + mes "Developed for protection of the Earth Crystal."; + mes "They are extreme power houses capable to smash intruders."; + mes "They have very meh defense, though."; + mes "Also, even then could not harm Xakelbael the Dark."; + close; +} + +099-2,62,43,0|script|???#099-6_62_43|400 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + mes "Zax De'Kagen trademark skill, the Bliss of Oblivion."; + mes "A powerful skill which dispels mana around himself."; + mes "Monsters will perish the very moment he cast it, and anyone too close"; + mes "will have their mana drained as well, and might die from it."; + mes ""; + mes "Not only that, but he may become immune to certain sources of damage."; + mes "It is a killer move which also allows him to assemble an army right after."; + mes "I do believe there is a weakness, though. Something about excessive fur growth?"; + close; +} + +099-6,57,17,0|script|???#099-6_57_17|400 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + mes ".:: V0id Soldier ::."; + mes "These units can endure a lot of pain and use bows."; + mes "They are not dangerous, but do not let they become fodder."; + mes "A lot of soldiers can be very difficult to kill later on."; + mes "Random trivia: They are afraid of bone arrows and knifes."; + close; +} + +099-6,123,128,0|script|???#099-6_123_128|400 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + mes ".:: V0id Mouboo ::."; + mes "A solid all rounder unit, it has decent health and damage."; + mes "But it proved useless as a security biopart."; + mes "Figures out, we could not subvert its peaceful nature."; + close; +} + +099-6,95,122,0|script|???#099-6_95_122|400 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + mes ".:: Tengu ::."; + mes "Developed for protection of the Earth Crystal."; + mes "There shouldn't be any here, but they have a high defense."; + mes "They turned out vulnerable to magic, unfortunately."; + close; +} + +099-6,28,122,0|script|???#099-6_28_122|400 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + mes ".:: V0id Bat ::."; + mes "They fly very fast and can quickly swarm you."; + mes "Their damage and health is not important."; + mes "But if not careful, they will overwhelm you."; + mes "Also, did you hear about lay on hands on overlapping dimensions?"; + mes "This have nothing to do with bats but is a cool fact!"; + close; +} + +099-6,91,92,0|script|???#099-6_91_92|400 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + mes ".:: Mana Slayer ::."; + mes "An anti-magic unit, made to run and slay mages."; + mes "They look so much like us, that we are afraid of them all time."; + mes "Not strong against physical damage, but can resist magic pretty well."; + close; +} + +099-6,62,43,0|script|???#099-6_92_43|400 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + mes "Do not neglect the potions which you deemed useless until now."; + mes "Our foe is formidable. Our knowledge is being tested, here."; + mes "The same techniques which worked for years simply do not apply."; + mes ""; + mes "Knowing what and when to cast is important in survival."; + mes "I think what should sense magic, might sense mana devoid-ness as well."; + mes "In this case, such would be the only way to know how far of killing we are."; + mes "But I'm not sure if such trick would work except on support role."; + close; +} + + + +/////////////////////////////// +099-1,43,14,0|script|Painting#099-1|400 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + mes "Reading this is as hard as finding a needle in a haystack."; + if (countitem("FlawedLens") < 1) goto L_Tools; + mes "Although the painting also has no artistic value on its own..."; + mes "Something tells you there is something ominous with it."; + next; + mes "##9 Use [Flawed Lens] on the painting? ##0"; + menu + "No", L_Close, + "Yes", L_UseLens; + +L_Close: + close; + +L_Tools: + mes "The painting itself has no artistic value, either."; + mes "There is something ominous, but you don't know what."; + close; + +L_UseLens: + delitem "FlawedLens", 1; + getexp 10000, 10000; + mes "[@@https://wiki.themanaworld.org/images/5/57/Kirin_by_clef.jpg|There is the image of a woman on it@@]."; + mes ""; + mes "You can make out the following words on it:"; + mes "In memoriam ..... Kirin De'Kagen."; + mes ".... help .... stop ... neither ....."; + mes "Went missing .... .... .... The War."; + mes ""; + mes "Rest in Peace. Damnatio memoriae. Effective immediately."; + // ;-- TRANSLATORS: Damnatio memoriae - "condemnation of memory", indicating that a person is to be excluded from official accounts. History rewrite if required. + next; + mes "The lens break! They were not only poorly effective but also of bad quality."; + mes "If only we could make the real Lens, we would have been able to find out"; + mes "what is up with this ominous, eerie feeling this picture gives."; + close; +} + +099-1,35,22,0|script|Fireplace#099-1|400 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + mes "##9 There is something interesting on this fireplace. ##0"; + mes "##9 It doesn't seems to fit this building. ##0"; + mes "##9 As if it have been taken from another world and put here. ##0"; + next; + mes "##9 After searching it, you found nothing. ##0"; + mes "##9 It is just a common fireplace, after all. ##0"; + close; +} + +/////////////////////////////// +// Basic Monsters Knowledge +099-1,20,22,0|script|Bookcase#099-1|400 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + mes ".:: V0id Scorpion ::."; + mes "The most basic combat unit in Keshlam."; + mes "They have decent health, damage, and speed."; + mes ""; + mes ".:: V0id Mushroom ::."; + mes "The most basic combat unit in Keshlam."; + mes "They have decent health, damage, and speed, and a higher range."; + mes "Unlike the scorpions, they can move faster, but attack is slower."; + close; +} + +099-1,45,22,0|script|Bookcase#099-1b|400 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + mes ".:: V0id Maggot ::."; + mes "They are pathetic individually, and slow, a failed experiment."; + mes "But do not let them overwhelm you, togheter they are formidable!"; + mes ""; + mes ".:: V0id Archant ::."; + mes "An advanced combat unit, without weak points."; + mes "They are slow in movement, but other than that, they are good."; + close; +} + +/////////////////////////////// +// Boss fight general knowledge +099-3,107,50,0|script|Music Score#099-3|400 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + mes "There is a nice score here."; + mes "I assume important info will be sent by SFX only."; + next; + mes "Also, the time beats of this score are all in 600ms intervals."; + mes "Could it be that attack speed is overridden during the fight?!"; + mes ""; + mes "However, potions will still work, hmm."; + mes "There is also a spell here: \"##B#storage##b\"."; + mes "I assume it only works at specific times."; + close; +} + +099-3,39,46,0|script|Outstanding Book#099-3|400 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + mes "Zax De'Kagen's Diary, entry #27"; + mes ""; + mes "##9 I am all soaking wet. They found my weak point. ##0"; + mes "##9 However it was too late, Fourth Fall brought the end to this. ##0"; + mes "##9 I did not even had to cancel my illusion. ##0"; + next; + mes "Zax De'Kagen's Diary, entry #34"; + mes ""; + mes "##9 Today my Rubber Bat flew away. Probably shouldn't have given life to it. ##0"; + mes "##9 I'll miss it, my dear friend, I hope one day he returns? ##0"; + next; + mes "Zax De'Kagen's Diary, entry #42"; + mes ""; + mes "##9 What I wouldn't give for some pickled beets right now... ##0"; + mes "##9 Meh, whatever. I'm not going to Dimond's Cove ever again! ##0"; + close; +} + +099-3,64,62,0|script|Pan#099-3|400 +{ + // Default distance is 4 tiles - all we need + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + if (rand(6) % 2 == 0) + goto L_Shock; + goto L_Potion; + +L_Shock: + mes "Some was trying to make Shock Sweets here."; + mes "However, it doesn't seems to have been finished."; + next; + mes "There are the initials \"To stop F.F.\" nearby."; + mes "One can only wonder who or what F.F. is."; + close; + +L_Potion: + mes "Some was trying to make a Mana Potion here."; + mes "However, it doesn't seems to have been finished."; + next; + mes "There are the initials \"To stop Bob\" nearby."; + mes "Well, I assume it is \"Bob\", text is fainted."; + mes "it could be \"boo\" as well. Maybe from Mouboo?"; + close; +} + -- cgit v1.2.3-60-g2f50