diff options
Diffstat (limited to 'world/map/npc/025-4/battlecaves.txt')
-rw-r--r-- | world/map/npc/025-4/battlecaves.txt | 1064 |
1 files changed, 1064 insertions, 0 deletions
diff --git a/world/map/npc/025-4/battlecaves.txt b/world/map/npc/025-4/battlecaves.txt new file mode 100644 index 00000000..e92d0012 --- /dev/null +++ b/world/map/npc/025-4/battlecaves.txt @@ -0,0 +1,1064 @@ +// --------------------------------- Cave 1 ----------------------------------- + +025-4.gat,41,91,0 script #StartCaveFight1 324,{ + if ($@wave_cave1 != 0) end; + if (Rossy_Quest < 15) goto L_Cheat; + if ($@battlecave1 == 1) goto L_Start; + end; + +L_Cheat: + message strcharinfo(0), "You shouldn't be here, you cheater."; + percentheal -100, 0; + end; + +L_Start: + menu + "Place a root at the center of the energy source.", -, + "I am not prepared yet!", L_Close; + if ((countitem("Root")<1)) goto L_no_root; + close2; + delitem "Root", 1; + message strcharinfo(0), "As you place the root on the energy source, earth monsters seem to emerge from the ground."; + +L_Summon: + set $@cave1_loop, $@cave1_loop + 1; + areamonster "025-4.gat",26,63,60,97,"",$@CAVE1_MONSTERS_IDS[$@cave1_loop],$@CAVE1_MONSTERS_QTY[$@cave1_loop],"#StartCaveFight1::OnMonsterDeath"; + if ($@cave1_loop <= getarraysize($@CAVE1_MONSTERS_IDS)) goto L_Summon; + set $@cave1_loop, 0; + set $@wave_cave1, $@wave_cave1 + 1; + end; + +L_Done: + set $@cave1_kills, 0; + attachrid(getcharid(3,$@cave1fighter$)); + +// Here you can define the messages to be shown for the players on the beginning of each wave. +// Remember to adjust the number of conditionals according to the number of waves. + + if ($@wave_cave1 == 1) message strcharinfo(0), "Oh no, more monsters?!"; + if ($@wave_cave1 == 2) message strcharinfo(0), "I can't give up now!"; + if ($@wave_cave1 == 3) message strcharinfo(0), "As soon as you kill the last monster, your vision blacks out and you feel a strange sensation, as if you were being lifted from the ground... When you open your eyes, you are outside of the cave."; + + if ($@wave_cave1 < $@CAVE1_WAVES) goto L_Summon; + set cavefights, (cavefights ^ BATTLE_CAVE1); + warp "025-3.gat", 78, 129; + goto L_Cleaning; + end; + +L_Cleaning: + attachrid(getcharid(3,$@cave1fighter$)); + set $@wave_cave1, 0; + set $@cave1_kills, 0; + set $@cave1start, 0; + set $@cave1fighter$, ""; + set $@cave1fighterdeaths$, 0; + set $@battlecave1, 0; + killmonster "025-4.gat", "#StartCaveFight1::OnMonsterDeath"; + end; + +OnMonsterDeath: + set $@cave1_kills, $@cave1_kills + 1; + if ($@cave1_kills >= $@CAVE1_MONSTERS_QTY[1] + $@CAVE1_MONSTERS_QTY[2] + $@CAVE1_MONSTERS_QTY[3]) goto L_Done; + end; + +L_Close: + close; + +L_no_root: + mes "I don't have any root in my inventory!"; + close; + +onInit: +// Here you can define the specifics of each battle cave. +// Monsters IDs to be spawned. + setarray $@CAVE1_MONSTERS_IDS[1], 1050, 1051, 1083, 1084; +// Number of monsters of each ID. + setarray $@CAVE1_MONSTERS_QTY[1], 3, 2, 2, 2; +// Number of waves. + set $@CAVE1_WAVES, 3; +// Maximum time (in seconds) for the player to finish the fight. + set $@CAVE1_TIME, 900; +} + +// --------------------- Cave 1 Checker ---------------------------- + +025-4.gat,41,97,0 script #CheckCaveFight1 45,1,1,{ + if ($@wave_cave1 != 0) message strcharinfo(0), "You can't get out! Seems like a barrier was created when the energy transmuted itself into monsters."; + if ($@wave_cave1 == 0) goto L_Done; + end; + +L_Done: + warp "025-3.gat", 78, 130; + set $@battlecave1, 0; + set $@cave1fighter$, ""; + set $@cave1fighterdeaths, 0; + set $@cave1start, 0; + set $@timercontrol1, 1; + end; +} + +// --------------------------------- Cave 2 --------------------------------------- + + +025-4.gat,110,90,0 script #StartCaveFight2 324,{ + if ($@wave_cave2 != 0) end; + if (Rossy_Quest < 15) goto L_Cheat; + if ($@battlecave2 == 1) goto L_Start; + end; + +L_Cheat: + message strcharinfo(0), "You shouldn't be here, you cheater."; + percentheal -100, 0; + end; + +L_Start: + menu + "Place a root at the center of the energy source.", -, + "I am not prepared yet!", L_Close; + if ((countitem("Root")<1)) goto L_no_root; + close2; + delitem "Root", 1; + message strcharinfo(0), "As you place the root on the energy source, earth monsters seem to emerge from the ground."; + + +L_Summon: + set $@cave2_loop, $@cave2_loop + 1; + areamonster "025-4.gat",97, 62, 126, 96,"",$@CAVE2_MONSTERS_IDS[$@cave2_loop],$@CAVE2_MONSTERS_QTY[$@cave2_loop],"#StartCaveFight2::OnMonsterDeath"; + if ($@cave2_loop <= getarraysize($@CAVE2_MONSTERS_IDS)) goto L_Summon; + set $@cave2_loop, 0; + set $@wave_cave2, $@wave_cave2 + 1; + end; + +L_Done: + set $@cave2_kills, 0; + attachrid(getcharid(3,$@cave2fighter$)); + +// Here you can define the messages to be shown for the players on the beginning of each wave. +// Remember to adjust the number of conditionals according to the number of waves. + + if ($@wave_cave2 == 1) message strcharinfo(0), "Oh no, more monsters?!"; + if ($@wave_cave2 == 2) message strcharinfo(0), "I can't give up now!"; + if ($@wave_cave2 == 3) message strcharinfo(0), "As soon as you kill the last monster, your vision blacks out and you feel a strange sensation, as if you were being lifted from the ground... When you open your eyes, you are outside of the cave."; + + if ($@wave_cave2 < $@CAVE2_WAVES) goto L_Summon; + set cavefights, (cavefights ^ BATTLE_CAVE2); + warp "025-3.gat", 53, 109; + goto L_Cleaning; + end; + +L_Cleaning: + attachrid(getcharid(3,$@cave2fighter$)); + set $@wave_cave2, 0; + set $@cave2_kills, 0; + set $@cave2start, 0; + set $@cave2fighter$, ""; + set $@cave2fighterdeaths$, 0; + set $@battlecave2, 0; + killmonster "025-4.gat", "#StartCaveFight2::OnMonsterDeath"; + end; + +OnMonsterDeath: + set $@cave2_kills, $@cave2_kills + 1; + if ($@cave2_kills >= $@CAVE2_MONSTERS_QTY[1] + $@CAVE2_MONSTERS_QTY[2] + $@CAVE2_MONSTERS_QTY[3]) goto L_Done; + end; + +L_Close: + close; + +L_no_root: + mes "I don't have any root in my inventory!"; + close; + +onInit: +// Here you can define the specifics of each battle cave. +// Monsters IDs to be spawned. + setarray $@CAVE2_MONSTERS_IDS[1], 1050, 1051, 1083, 1084; +// Number of monsters of each ID. + setarray $@CAVE2_MONSTERS_QTY[1], 3, 2, 2, 2; +// Number of waves. + set $@CAVE2_WAVES, 3; +// Maximum time (in seconds) for the player to finish the fight. + set $@CAVE2_TIME, 900; +} + +// --------------------- Cave 2 Checker ---------------------------- + +025-4.gat,110,96,0 script #CheckCaveFight2 45,1,1,{ + if ($@wave_cave2 != 0) message strcharinfo(0), "You can't get out! Seems like a barrier was created when the energy transmuted itself into monsters."; + if ($@wave_cave2 == 0) goto L_Done; + end; + +L_Done: + warp "025-3.gat", 53, 110; + set $@battlecave2, 0; + set $@cave2fighter$, ""; + set $@cave2fighterdeaths, 0; + set $@cave2start, 0; + set $@timercontrol2, 1; + end; +} + +// ------------------------------------ Cave 3 -------------------------------------- +025-4.gat,168,111,0 script #StartCaveFight3 324,{ + if ($@wave_cave3 != 0) end; + if (Rossy_Quest < 15) goto L_Cheat; + if ($@battlecave3 == 1) goto L_Start; + end; + +L_Cheat: + message strcharinfo(0), "You shouldn't be here, you cheater."; + percentheal -100, 0; + end; + +L_Start: + menu + "Place a root at the center of the energy source.", -, + "I am not prepared yet!", L_Close; + if ((countitem("Root")<1)) goto L_no_root; + close2; + delitem "Root", 1; + message strcharinfo(0), "As you place the root on the energy source, earth monsters seem to emerge from the ground."; + + +L_Summon: + set $@cave3_loop, $@cave3_loop + 1; + areamonster "025-4.gat",150, 84, 177, 117,"",$@CAVE3_MONSTERS_IDS[$@cave3_loop],$@CAVE3_MONSTERS_QTY[$@cave3_loop],"#StartCaveFight3::OnMonsterDeath"; + if ($@cave3_loop <= getarraysize($@CAVE3_MONSTERS_IDS)) goto L_Summon; + set $@cave3_loop, 0; + set $@wave_cave3, $@wave_cave3 + 1; + end; + +L_Done: + set $@cave3_kills, 0; + attachrid(getcharid(3,$@cave3fighter$)); + +// Here you can define the messages to be shown for the players on the beginning of each wave. +// Remember to adjust the number of conditionals according to the number of waves. + + if ($@wave_cave3 == 1) message strcharinfo(0), "Oh no, more monsters?!"; + if ($@wave_cave3 == 2) message strcharinfo(0), "I can't give up now!"; + if ($@wave_cave3 == 3) message strcharinfo(0), "As soon as you kill the last monster, your vision blacks out and you feel a strange sensation, as if you were being lifted from the ground... When you open your eyes, you are outside of the cave."; + + if ($@wave_cave3 < $@CAVE3_WAVES) goto L_Summon; + set cavefights, (cavefights ^ BATTLE_CAVE3); + warp "025-3.gat", 71, 85; + goto L_Cleaning; + end; + +L_Cleaning: + attachrid(getcharid(3,$@cave3fighter$)); + set $@wave_cave3, 0; + set $@cave3_kills, 0; + set $@cave3start, 0; + set $@cave3fighter$, ""; + set $@cave3fighterdeaths$, 0; + set $@battlecave3, 0; + killmonster "025-4.gat", "#StartCaveFight3::OnMonsterDeath"; + end; + +OnMonsterDeath: + set $@cave3_kills, $@cave3_kills + 1; + if ($@cave3_kills >= $@CAVE3_MONSTERS_QTY[1] + $@CAVE3_MONSTERS_QTY[2] + $@CAVE3_MONSTERS_QTY[3]) goto L_Done; + end; + +L_Close: + close; + +L_no_root: + mes "I don't have any root in my inventory!"; + close; + +onInit: +// Here you can define the specifics of each battle cave. +// Monsters IDs to be spawned. + setarray $@CAVE3_MONSTERS_IDS[1], 1050, 1051, 1083, 1084; +// Number of monsters of each ID. + setarray $@CAVE3_MONSTERS_QTY[1], 3, 2, 2, 2; +// Number of waves. + set $@CAVE3_WAVES, 3; +// Maximum time (in seconds) for the player to finish the fight. + set $@CAVE3_TIME, 900; +} + +// --------------------- Cave 3 Checker ---------------------------- + +025-4.gat,168,117,0 script #CheckCaveFight3 45,1,1,{ + if ($@wave_cave3 != 0) message strcharinfo(0), "You can't get out! Seems like a barrier was created when the energy transmuted itself into monsters."; + if ($@wave_cave3 == 0) goto L_Done; + end; + +L_Done: + warp "025-3.gat", 71, 85; + set $@battlecave3, 0; + set $@cave3fighter$, ""; + set $@cave3fighterdeaths, 0; + set $@cave3start, 0; + set $@timercontrol3, 1; + end; +} + +// --------------------------- Cave 4 -------------------------------- +025-4.gat,32,150,0 script #StartCaveFight4 324,{ + if ($@wave_cave4 != 0) end; + if (Rossy_Quest < 15) goto L_Cheat; + if ($@battlecave4 == 1) goto L_Start; + end; + +L_Cheat: + message strcharinfo(0), "You shouldn't be here, you cheater."; + percentheal -100, 0; + end; + +L_Start: + menu + "Place a root at the center of the energy source.", -, + "I am not prepared yet!", L_Close; + if ((countitem("Root")<1)) goto L_no_root; + close2; + delitem "Root", 1; + message strcharinfo(0), "As you place the root on the energy source, earth monsters seem to emerge from the ground."; + +L_Summon: + set $@cave4_loop, $@cave4_loop + 1; + areamonster "025-4.gat",28, 124, 57, 156,"",$@CAVE4_MONSTERS_IDS[$@cave4_loop],$@CAVE4_MONSTERS_QTY[$@cave4_loop],"#StartCaveFight4::OnMonsterDeath"; + if ($@cave4_loop <= getarraysize($@CAVE4_MONSTERS_IDS)) goto L_Summon; + set $@cave4_loop, 0; + set $@wave_cave4, $@wave_cave4 + 1; + end; + +L_Done: + set $@cave4_kills, 0; + attachrid(getcharid(3,$@cave4fighter$)); + +// Here you can define the messages to be shown for the players on the beginning of each wave. +// Remember to adjust the number of conditionals according to the number of waves. + + if ($@wave_cave4 == 1) message strcharinfo(0), "Oh no, more monsters?!"; + if ($@wave_cave4 == 2) message strcharinfo(0), "I can't give up now!"; + if ($@wave_cave4 == 3) message strcharinfo(0), "As soon as you kill the last monster, your vision blacks out and you feel a strange sensation, as if you were being lifted from the ground... When you open your eyes, you are outside of the cave."; + + if ($@wave_cave4 < $@CAVE4_WAVES) goto L_Summon; + set cavefights, (cavefights ^ BATTLE_CAVE4); + warp "025-3.gat", 80, 85; + goto L_Cleaning; + end; + +L_Cleaning: + attachrid(getcharid(3,$@cave4fighter$)); + set $@wave_cave4, 0; + set $@cave4_kills, 0; + set $@cave4start, 0; + set $@cave4fighter$, ""; + set $@cave4fighterdeaths$, 0; + set $@battlecave4, 0; + killmonster "025-4.gat", "#StartCaveFight4::OnMonsterDeath"; + end; + +OnMonsterDeath: + set $@cave4_kills, $@cave4_kills + 1; + if ($@cave4_kills >= $@CAVE4_MONSTERS_QTY[1] + $@CAVE4_MONSTERS_QTY[2] + $@CAVE4_MONSTERS_QTY[3]) goto L_Done; + end; + +L_Close: + close; + +L_no_root: + mes "I don't have any root in my inventory!"; + close; + +onInit: +// Here you can define the specifics of each battle cave. +// Monsters IDs to be spawned. + setarray $@CAVE4_MONSTERS_IDS[1], 1050, 1051, 1083, 1084; +// Number of monsters of each ID. + setarray $@CAVE4_MONSTERS_QTY[1], 3, 2, 2, 2; +// Number of waves. + set $@CAVE4_WAVES, 3; +// Maximum time (in seconds) for the player to finish the fight. + set $@CAVE4_TIME, 900; +} + +// --------------------- Cave 4 Checker ---------------------------- + +025-4.gat,32,156,0 script #CheckCaveFight4 45,1,1,{ + if ($@wave_cave4 != 0) message strcharinfo(0), "You can't get out! Seems like a barrier was created when the energy transmuted itself into monsters."; + if ($@wave_cave4 == 0) goto L_Done; + end; + +L_Done: + warp "025-3.gat", 80, 85; + set $@battlecave4, 0; + set $@cave4fighter$, ""; + set $@cave4fighterdeaths, 0; + set $@cave4start, 0; + set $@timercontrol4, 1; + end; +} + +// ---------------------------- Cave 5 ------------------------------ + +025-4.gat,100,154,0 script #StartCaveFight5 324,{ + if ($@wave_cave5 != 0) end; + if (Rossy_Quest < 15) goto L_Cheat; + if ($@battlecave5 == 1) goto L_Start; + end; + +L_Cheat: + message strcharinfo(0), "You shouldn't be here, you cheater."; + percentheal -100, 0; + end; + +L_Start: + menu + "Place a root at the center of the energy source.", -, + "I am not prepared yet!", L_Close; + if ((countitem("Root")<1)) goto L_no_root; + close2; + delitem "Root", 1; + message strcharinfo(0), "As you place the root on the energy source, earth monsters seem to emerge from the ground."; + +L_Summon: + set $@cave5_loop, $@cave5_loop + 1; + areamonster "025-4.gat",91, 131, 124, 160,"",$@CAVE5_MONSTERS_IDS[$@cave5_loop],$@CAVE5_MONSTERS_QTY[$@cave5_loop],"#StartCaveFight5::OnMonsterDeath"; + if ($@cave5_loop <= getarraysize($@CAVE5_MONSTERS_IDS)) goto L_Summon; + set $@cave5_loop, 0; + set $@wave_cave5, $@wave_cave5 + 1; + end; + +L_Done: + set $@cave5_kills, 0; + attachrid(getcharid(3,$@cave5fighter$)); + +// Here you can define the messages to be shown for the players on the beginning of each wave. +// Remember to adjust the number of conditionals according to the number of waves. + + if ($@wave_cave5 == 1) message strcharinfo(0), "Oh no, more monsters?!"; + if ($@wave_cave5 == 2) message strcharinfo(0), "I can't give up now!"; + if ($@wave_cave5 == 3) message strcharinfo(0), "As soon as you kill the last monster, your vision blacks out and you feel a strange sensation, as if you were being lifted from the ground... When you open your eyes, you are outside of the cave."; + + if ($@wave_cave5 < $@CAVE5_WAVES) goto L_Summon; + set cavefights, (cavefights ^ BATTLE_CAVE5); + warp "025-3.gat", 71, 32; + goto L_Cleaning; + end; + +L_Cleaning: + attachrid(getcharid(3,$@cave5fighter$)); + set $@wave_cave5, 0; + set $@cave5_kills, 0; + set $@cave5start, 0; + set $@cave5fighter$, ""; + set $@cave5fighterdeaths$, 0; + set $@battlecave5, 0; + killmonster "025-4.gat", "#StartCaveFight5::OnMonsterDeath"; + end; + +OnMonsterDeath: + set $@cave5_kills, $@cave5_kills + 1; + if ($@cave5_kills >= $@CAVE5_MONSTERS_QTY[1] + $@CAVE5_MONSTERS_QTY[2] + $@CAVE5_MONSTERS_QTY[3]) goto L_Done; + end; + +L_Close: + close; + +L_no_root: + mes "I don't have any root in my inventory!"; + close; + +onInit: +// Here you can define the specifics of each battle cave. +// Monsters IDs to be spawned. + setarray $@CAVE5_MONSTERS_IDS[1], 1050, 1051, 1083, 1084; +// Number of monsters of each ID. + setarray $@CAVE5_MONSTERS_QTY[1], 3, 2, 2, 2; +// Number of waves. + set $@CAVE5_WAVES, 3; +// Maximum time (in seconds) for the player to finish the fight. + set $@CAVE5_TIME, 900; +} + +// --------------------- Cave 5 Checker ---------------------------- + +025-4.gat,100,160,0 script #CheckCaveFight5 45,1,1,{ + if ($@wave_cave5 != 0) message strcharinfo(0), "You can't get out! Seems like a barrier was created when the energy transmuted itself into monsters."; + if ($@wave_cave5 == 0) goto L_Done; + end; + +L_Done: + warp "025-3.gat", 71, 33; + set $@battlecave5, 0; + set $@cave5fighter$, ""; + set $@cave5fighterdeaths, 0; + set $@cave5start, 0; + set $@timercontrol5, 1; + end; +} + +// -------------------------------- Cave 6 ----------------------------------------- + +025-4.gat,159,168,0 script #StartCaveFight6 324,{ + if ($@wave_cave6 != 0) end; + if (Rossy_Quest < 15) goto L_Cheat; + if ($@battlecave6 == 1) goto L_Start; + end; + +L_Cheat: + message strcharinfo(0), "You shouldn't be here, you cheater."; + percentheal -100, 0; + end; + +L_Start: + menu + "Place a root at the center of the energy source.", -, + "I am not prepared yet!", L_Close; + if ((countitem("Root")<1)) goto L_no_root; + close2; + delitem "Root", 1; + message strcharinfo(0), "As you place the root on the energy source, earth monsters seem to emerge from the ground."; + +L_Summon: + set $@cave6_loop, $@cave6_loop + 1; + areamonster "025-4.gat",153, 143, 178, 174,"",$@CAVE6_MONSTERS_IDS[$@cave6_loop],$@CAVE6_MONSTERS_QTY[$@cave6_loop],"#StartCaveFight6::OnMonsterDeath"; + if ($@cave6_loop <= getarraysize($@CAVE6_MONSTERS_IDS)) goto L_Summon; + set $@cave6_loop, 0; + set $@wave_cave6, $@wave_cave6 + 1; + end; + +L_Done: + set $@cave6_kills, 0; + attachrid(getcharid(3,$@cave6fighter$)); + +// Here you can define the messages to be shown for the players on the beginning of each wave. +// Remember to adjust the number of conditionals according to the number of waves. + + if ($@wave_cave6 == 1) message strcharinfo(0), "Oh no, more monsters?!"; + if ($@wave_cave6 == 2) message strcharinfo(0), "I can't give up now!"; + if ($@wave_cave6 == 3) message strcharinfo(0), "As soon as you kill the last monster, your vision blacks out and you feel a strange sensation, as if you were being lifted from the ground... When you open your eyes, you are outside of the cave."; + + if ($@wave_cave6 < $@CAVE6_WAVES) goto L_Summon; + set cavefights, (cavefights ^ BATTLE_CAVE6); + warp "025-3.gat", 128, 37; + goto L_Cleaning; + end; + +L_Cleaning: + attachrid(getcharid(3,$@cave6fighter$)); + set $@wave_cave6, 0; + set $@cave6_kills, 0; + set $@cave6start, 0; + set $@cave6fighter$, ""; + set $@cave6fighterdeaths$, 0; + set $@battlecave6, 0; + killmonster "025-4.gat", "#StartCaveFight6::OnMonsterDeath"; + end; + +OnMonsterDeath: + set $@cave6_kills, $@cave6_kills + 1; + if ($@cave6_kills >= $@CAVE6_MONSTERS_QTY[1] + $@CAVE6_MONSTERS_QTY[2] + $@CAVE6_MONSTERS_QTY[3]) goto L_Done; + end; + +L_Close: + close; + +L_no_root: + mes "I don't have any root in my inventory!"; + close; + +onInit: +// Here you can define the specifics of each battle cave. +// Monsters IDs to be spawned. + setarray $@CAVE6_MONSTERS_IDS[1], 1050, 1051, 1083, 1084; +// Number of monsters of each ID. + setarray $@CAVE6_MONSTERS_QTY[1], 3, 2, 2, 2; +// Number of waves. + set $@CAVE6_WAVES, 3; +// Maximum time (in seconds) for the player to finish the fight. + set $@CAVE6_TIME, 900; +} + +// --------------------- Cave 6 Checker ---------------------------- + +025-4.gat,159,174,0 script #CheckCaveFight6 45,1,1,{ + if ($@wave_cave6 != 0) message strcharinfo(0), "You can't get out! Seems like a barrier was created when the energy transmuted itself into monsters."; + if ($@wave_cave6 == 0) goto L_Done; + end; + +L_Done: + warp "025-3.gat", 128, 38; + set $@battlecave6, 0; + set $@cave6fighter$, ""; + set $@cave6fighterdeaths, 0; + set $@cave6start, 0; + set $@timercontrol6, 1; + end; +} + +// -------------------------------- Cave 7 ----------------------------------- + +025-4.gat,39,215,0 script #StartCaveFight7 324,{ + if ($@wave_cave7 != 0) end; + if (Rossy_Quest < 15) goto L_Cheat; + if ($@battlecave7 == 1) goto L_Start; + end; + +L_Cheat: + message strcharinfo(0), "You shouldn't be here, you cheater."; + percentheal -100, 0; + end; + +L_Start: + menu + "Place a root at the center of the energy source.", -, + "I am not prepared yet!", L_Close; + if ((countitem("Root")<1)) goto L_no_root; + close2; + delitem "Root", 1; + message strcharinfo(0), "As you place the root on the energy source, earth monsters seem to emerge from the ground."; + + +L_Summon: + set $@cave7_loop, $@cave7_loop + 1; + areamonster "025-4.gat",27, 185, 61, 219,"",$@CAVE7_MONSTERS_IDS[$@cave7_loop],$@CAVE7_MONSTERS_QTY[$@cave7_loop],"#StartCaveFight7::OnMonsterDeath"; + if ($@cave7_loop <= getarraysize($@CAVE7_MONSTERS_IDS)) goto L_Summon; + set $@cave7_loop, 0; + set $@wave_cave7, $@wave_cave7 + 1; + end; + +L_Done: + set $@cave7_kills, 0; + attachrid(getcharid(3,$@cave7fighter$)); + +// Here you can define the messages to be shown for the players on the beginning of each wave. +// Remember to adjust the number of conditionals according to the number of waves. + + if ($@wave_cave7 == 1) message strcharinfo(0), "Oh no, more monsters?!"; + if ($@wave_cave7 == 2) message strcharinfo(0), "I can't give up now!"; + if ($@wave_cave7 == 3) message strcharinfo(0), "As soon as you kill the last monster, your vision blacks out and you feel a strange sensation, as if you were being lifted from the ground... When you open your eyes, you are outside of the cave."; + + if ($@wave_cave7 < $@CAVE7_WAVES) goto L_Summon; + set cavefights, (cavefights ^ BATTLE_CAVE7); + warp "025-3.gat", 70, 59; + goto L_Cleaning; + end; + +L_Cleaning: + attachrid(getcharid(3,$@cave7fighter$)); + set $@wave_cave7, 0; + set $@cave7_kills, 0; + set $@cave7start, 0; + set $@cave7fighter$, ""; + set $@cave7fighterdeaths$, 0; + set $@battlecave7, 0; + killmonster "025-4.gat", "#StartCaveFight7::OnMonsterDeath"; + end; + +OnMonsterDeath: + set $@cave7_kills, $@cave7_kills + 1; + if ($@cave7_kills >= $@CAVE7_MONSTERS_QTY[1] + $@CAVE7_MONSTERS_QTY[2] + $@CAVE7_MONSTERS_QTY[3]) goto L_Done; + end; + +L_Close: + close; + +L_no_root: + mes "I don't have any root in my inventory!"; + close; + +onInit: +// Here you can define the specifics of each battle cave. +// Monsters IDs to be spawned. + setarray $@CAVE7_MONSTERS_IDS[1], 1050, 1051, 1083, 1084; +// Number of monsters of each ID. + setarray $@CAVE7_MONSTERS_QTY[1], 3, 2, 2, 2; +// Number of waves. + set $@CAVE7_WAVES, 3; +// Maximum time (in seconds) for the player to finish the fight. + set $@CAVE7_TIME, 900; +} + +// --------------------- Cave 7 Checker ---------------------------- + +025-4.gat,42,219,0 script #CheckCaveFight7 45,1,1,{ + if ($@wave_cave7 != 0) message strcharinfo(0), "You can't get out! Seems like a barrier was created when the energy transmuted itself into monsters."; + if ($@wave_cave7 == 0) goto L_Done; + end; + +L_Done: + warp "025-3.gat", 70, 60; + set $@battlecave7, 0; + set $@cave7fighter$, ""; + set $@cave7fighterdeaths, 0; + set $@cave7start, 0; + set $@timercontrol7, 1; + end; +} + +// --------------------------- Cave 8 ------------------------------- + +025-4.gat,105,210,0 script #StartCaveFight8 324,{ + if ($@wave_cave8 != 0) end; + if (Rossy_Quest < 15) goto L_Cheat; + if ($@battlecave8 == 1) goto L_Start; + end; + +L_Cheat: + message strcharinfo(0), "You shouldn't be here, you cheater."; + percentheal -100, 0; + end; + +L_Start: + menu + "Place a root at the center of the energy source.", -, + "I am not prepared yet!", L_Close; + if ((countitem("Root")<1)) goto L_no_root; + close2; + delitem "Root", 1; + message strcharinfo(0), "As you place the root on the energy source, earth monsters seem to emerge from the ground."; + + +L_Summon: + set $@cave8_loop, $@cave8_loop + 1; + areamonster "025-4.gat",90, 193, 119, 216,"",$@CAVE8_MONSTERS_IDS[$@cave8_loop],$@CAVE8_MONSTERS_QTY[$@cave8_loop],"#StartCaveFight8::OnMonsterDeath"; + if ($@cave8_loop <= getarraysize($@CAVE8_MONSTERS_IDS)) goto L_Summon; + set $@cave8_loop, 0; + set $@wave_cave8, $@wave_cave8 + 1; + end; + +L_Done: + set $@cave8_kills, 0; + attachrid(getcharid(3,$@cave8fighter$)); + +// Here you can define the messages to be shown for the players on the beginning of each wave. +// Remember to adjust the number of conditionals according to the number of waves. + + if ($@wave_cave8 == 1) message strcharinfo(0), "Oh no, more monsters?!"; + if ($@wave_cave8 == 2) message strcharinfo(0), "I can't give up now!"; + if ($@wave_cave8 == 3) message strcharinfo(0), "As soon as you kill the last monster, your vision blacks out and you feel a strange sensation, as if you were being lifted from the ground... When you open your eyes, you are outside of the cave."; + + if ($@wave_cave8 < $@CAVE8_WAVES) goto L_Summon; + set cavefights, (cavefights ^ BATTLE_CAVE8); + warp "025-3.gat", 138, 94; + goto L_Cleaning; + end; + +L_Cleaning: + attachrid(getcharid(3,$@cave8fighter$)); + set $@wave_cave8, 0; + set $@cave8_kills, 0; + set $@cave8start, 0; + set $@cave8fighter$, ""; + set $@cave8fighterdeaths$, 0; + set $@battlecave8, 0; + killmonster "025-4.gat", "#StartCaveFight8::OnMonsterDeath"; + end; + +OnMonsterDeath: + set $@cave8_kills, $@cave8_kills + 1; + if ($@cave8_kills >= $@CAVE8_MONSTERS_QTY[1] + $@CAVE8_MONSTERS_QTY[2] + $@CAVE8_MONSTERS_QTY[3]) goto L_Done; + end; + +L_Close: + close; + +L_no_root: + mes "I don't have any root in my inventory!"; + close; + +onInit: +// Here you can define the specifics of each battle cave. +// Monsters IDs to be spawned. + setarray $@CAVE8_MONSTERS_IDS[1], 1050, 1051, 1083, 1084; +// Number of monsters of each ID. + setarray $@CAVE8_MONSTERS_QTY[1], 3, 2, 2, 2; +// Number of waves. + set $@CAVE8_WAVES, 3; +// Maximum time (in seconds) for the player to finish the fight. + set $@CAVE8_TIME, 900; +} + +// --------------------- Cave 8 Checker ---------------------------- + +025-4.gat,105,216,0 script #CheckCaveFight8 45,1,1,{ + if ($@wave_cave8 != 0) message strcharinfo(0), "You can't get out! Seems like a barrier was created when the energy transmuted itself into monsters."; + if ($@wave_cave8 == 0) goto L_Done; + end; + +L_Done: + warp "025-3.gat", 138, 95; + set $@battlecave8, 0; + set $@cave8fighter$, ""; + set $@cave8fighterdeaths, 0; + set $@cave8start, 0; + set $@timercontrol8, 1; + end; +} + +// --------------------------- Cave 9 ------------------------------- + +025-4.gat,157,220,0 script #StartCaveFight9 324,{ + if ($@wave_cave9 != 0) end; + if (Rossy_Quest < 15) goto L_Cheat; + if ($@battlecave9 == 1) goto L_Start; + end; + +L_Cheat: + message strcharinfo(0), "You shouldn't be here, you cheater."; + percentheal -100, 0; + end; + +L_Start: + menu + "Place a root at the center of the energy source.", -, + "I am not prepared yet!", L_Close; + if ((countitem("Root")<1)) goto L_no_root; + close2; + delitem "Root", 1; + message strcharinfo(0), "As you place the root on the energy source, earth monsters seem to emerge from the ground."; + +L_Summon: + set $@cave9_loop, $@cave9_loop + 1; + areamonster "025-4.gat",144, 192, 173, 226,"",$@CAVE9_MONSTERS_IDS[$@cave9_loop],$@CAVE9_MONSTERS_QTY[$@cave9_loop],"#StartCaveFight9::OnMonsterDeath"; + if ($@cave9_loop <= getarraysize($@CAVE9_MONSTERS_IDS)) goto L_Summon; + set $@cave9_loop, 0; + set $@wave_cave9, $@wave_cave9 + 1; + end; + +L_Done: + set $@cave9_kills, 0; + attachrid(getcharid(3,$@cave9fighter$)); + +// Here you can define the messages to be shown for the players on the beginning of each wave. +// Remember to adjust the number of conditionals according to the number of waves. + + if ($@wave_cave9 == 1) message strcharinfo(0), "Oh no, more monsters?!"; + if ($@wave_cave9 == 2) message strcharinfo(0), "I can't give up now!"; + if ($@wave_cave9 == 3) message strcharinfo(0), "As soon as you kill the last monster, your vision blacks out and you feel a strange sensation, as if you were being lifted from the ground... When you open your eyes, you are outside of the cave."; + + if ($@wave_cave9 < $@CAVE9_WAVES) goto L_Summon; + set cavefights, (cavefights ^ BATTLE_CAVE9); + warp "025-3.gat", 138, 158; + goto L_Cleaning; + end; + +L_Cleaning: + attachrid(getcharid(3,$@cave9fighter$)); + set $@wave_cave9, 0; + set $@cave9_kills, 0; + set $@cave9start, 0; + set $@cave9fighter$, ""; + set $@cave9fighterdeaths$, 0; + set $@battlecave9, 0; + killmonster "025-4.gat", "#StartCaveFight9::OnMonsterDeath"; + end; + +OnMonsterDeath: + set $@cave9_kills, $@cave9_kills + 1; + if ($@cave9_kills >= $@CAVE9_MONSTERS_QTY[1] + $@CAVE9_MONSTERS_QTY[2] + $@CAVE9_MONSTERS_QTY[3]) goto L_Done; + end; + +L_Close: + close; + +L_no_root: + mes "I don't have any root in my inventory!"; + close; + +onInit: +// Here you can define the specifics of each battle cave. +// Monsters IDs to be spawned. + setarray $@CAVE9_MONSTERS_IDS[1], 1050, 1051, 1083, 1084; +// Number of monsters of each ID. + setarray $@CAVE9_MONSTERS_QTY[1], 3, 2, 2, 2; +// Number of waves. + set $@CAVE9_WAVES, 3; +// Maximum time (in seconds) for the player to finish the fight. + set $@CAVE9_TIME, 900; +} + +// --------------------- Cave 9 Checker ---------------------------- + +025-4.gat,157,226,0 script #CheckCaveFight9 45,1,1,{ + if ($@wave_cave9 != 0) message strcharinfo(0), "You can't get out! Seems like a barrier was created when the energy transmuted itself into monsters."; + if ($@wave_cave9 == 0) goto L_Done; + end; + +L_Done: + warp "025-3.gat", 138, 158; + set $@battlecave9, 0; + set $@cave9fighter$, ""; + set $@cave9fighterdeaths, 0; + set $@cave9start, 0; + set $@timercontrol9, 1; + end; +} + +// --------------------- Boss Cave ---------------------------- + +025-4.gat,157,42,0 script #StartBossCaveFight 324,{ + if ($@wave_cave10 != 0) end; + if (Rossy_Quest >= 16) end; + if ($@battlebosscave == 1 && cavefights & BATTLE_CAVE1 && cavefights & BATTLE_CAVE2 && cavefights & BATTLE_CAVE3 && cavefights & BATTLE_CAVE4 && cavefights & BATTLE_CAVE5 && cavefights & BATTLE_CAVE6 && cavefights & BATTLE_CAVE7 && cavefights & BATTLE_CAVE8 && cavefights & BATTLE_CAVE9 && Rossy_Quest == 15) goto L_Start; + message strcharinfo(0), "You shouldn't be here, you cheater."; + percentheal -100, 0; + end; + +L_Start: + menu + "Place a root at the center of the energy source.", -, + "I am not prepared yet!", L_Close; + if ((countitem("Root")<1)) goto L_no_root; + close2; + delitem "Root", 1; + message strcharinfo(0), "As you place the root on the energy source, earth monsters seem to emerge from the ground."; + +L_Summon: + set $@cave10_loop, $@cave10_loop + 1; + areamonster "025-4.gat",142, 24, 172, 48,"",$@CAVE10_MONSTERS_IDS[$@cave10_loop],$@CAVE10_MONSTERS_QTY[$@cave10_loop],"#StartBossCaveFight::OnMonsterDeath"; + if ($@cave10_loop <= getarraysize($@CAVE10_MONSTERS_IDS)) goto L_Summon; + set $@cave10_loop, 0; + set $@wave_cave10, $@wave_cave10 + 1; + end; + +L_SummonBoss: + attachrid(getcharid(3,$@cave10fighter$)); + areamonster "025-4.gat",142, 24, 172, 48,"",$@BOSS,1,"#StartBossCaveFight::OnBossDeath"; + stopnpctimer; + setnpctimer 0; + end; + +L_Done: + set $@cave10_kills, 0; + attachrid(getcharid(3,$@cave10fighter$)); + +// Here you can define the messages to be shown for the players on the beginning of each wave. +// Remember to adjust the number of conditionals according to the number of waves. + + if ($@wave_cave10 == 1) message strcharinfo(0), "I can't give up now!"; + if ($@wave_cave10 == 2) message strcharinfo(0), "I feel I'm getting close to the end..."; + if ($@wave_cave10 == 3) message strcharinfo(0), "What? This is harder than I imagined!"; + if ($@wave_cave10 == 4) message strcharinfo(0), "Finally! It seems I have defeated all of them!"; + + if ($@wave_cave10 < $@CAVE10_WAVES) goto L_Summon; + set $@wave_cave10, 5; + startnpctimer; + end; + +L_Cleaning: + attachrid(getcharid(3,$@cave10fighter$)); + set $@wave_cave10, 0; + set $@cave10_kills, 0; + set $@cave10start, 0; + set $@cave10fighter$, ""; + set $@cave10fighterdeaths$, 0; + set $@battlebosscave, 0; + killmonster "025-4.gat", "#StartBossCaveFight::OnMonsterDeath"; + killmonster "025-4.gat", "#StartBossCaveFight::OnBossDeath"; + end; + +OnTimer4000: + attachrid(getcharid(3,$@cave10fighter$)); + set @boss, @boss + 1; + if (@boss == 1) message strcharinfo(0), "You feel something strange... Looks like something terrible is about to show up in this cave."; + if (@boss == 2) goto L_SummonBoss; + setnpctimer 0; + end; + +OnMonsterDeath: + set $@cave10_kills, $@cave10_kills + 1; + if ($@cave10_kills >= $@CAVE10_MONSTERS_QTY[1] + $@CAVE10_MONSTERS_QTY[2] + $@CAVE10_MONSTERS_QTY[3]) goto L_Done; + end; + +OnBossDeath: + attachrid(getcharid(3,$@cave10fighter$)); + set $@wave_cave10, 0; + set $@cave10_kills, 0; + set $@cave10start, 0; + set $@cave10fighter$, ""; + set $@cave10fighterdeaths$, 0; + message strcharinfo(0), "What a harsh battle! I should save Julia now."; + set Rossy_Quest, 16; + end; + +L_Close: + close; + +L_no_root: + mes "I don't have any root in my inventory!"; + close; + +onInit: +// Here you can define the specifics of each battle cave. +// Monsters IDs to be spawned. before the boss. + setarray $@CAVE10_MONSTERS_IDS[1], 1050, 1051, 1083, 1084; +// Number of monsters of each ID. + setarray $@CAVE10_MONSTERS_QTY[1], 3, 2, 2, 2; +// ID of the boss monster. + set $@BOSS, 1086; +// Number of waves. before the boss. + set $@CAVE10_WAVES, 4; +// Maximum time (in seconds) for the player to finish the fight. + set $@CAVE10_TIME, 1500; +} + +// --------------------- Boss Cave Checker ---------------------------- + +025-4.gat,157,48,0 script #CheckCaveFightBoss 45,1,1,{ + if (Rossy_Quest >= 17) goto L_Done; + if (Rossy_Quest == 16) goto L_Julia; + if (Rossy_Quest < 16) goto L_Out; + end; + +L_Julia: + message strcharinfo(0), "I shoudn't get out. Julia is still in danger."; + end; + +L_Done: + warp "025-3.gat", 77, 168; + end; + +L_Out: + set $@battlebosscave, 0; + set $@cave10fighter$, ""; + set $@cave10fighterdeaths, 0; + set $@cave10start, 0; + set $@timercontrol10, 1; + warp "025-3.gat", 77, 168; + end; +} + +// --------------------- Julia Cave Checker Outside ---------------------------- + +025-4.gat,157,24,0 script #CheckJuliaCaveOutside 45,1,1,{ + if (Rossy_Quest > 15) goto L_Done; + message strcharinfo(0), "As you try to walk through, you bump into a strong magical barrier."; + percentheal -10, 0; + end; + +L_Done: + warp "025-4.gat", 93, 33; + end; +} + +// --------------------- Julia Cave Checker Inside ---------------------------- + +025-4.gat,93,35,0 script #CheckJuliaCaveInside 45,1,1,{ + if (Rossy_Quest >= 17) goto L_Done; + if (Rossy_Quest == 16) goto L_Save; + if (Rossy_Quest <= 15) goto L_Cheat; + end; + +L_Cheat: + message strcharinfo(0), "You shouldn't be here, you cheater."; + percentheal -100, 0; + end; + +L_Done: + message strcharinfo(0), "As you go back to the cave you close your eyes, terrified of the bloody battle you just fought in this place, and go straight to the entrance of the cave."; + warp "025-3.gat", 77, 168; + end; + +L_Save: + message strcharinfo(0), "You can't leave Julia here, all alone!"; + end; +} + |