summaryrefslogtreecommitdiff
path: root/world/map/npc/025-4
diff options
context:
space:
mode:
Diffstat (limited to 'world/map/npc/025-4')
-rw-r--r--world/map/npc/025-4/_import.txt9
-rw-r--r--world/map/npc/025-4/_mobs.txt15
-rw-r--r--world/map/npc/025-4/_warps.txt4
-rw-r--r--world/map/npc/025-4/battlecaves.txt1064
-rw-r--r--world/map/npc/025-4/clauquer.txt80
-rw-r--r--world/map/npc/025-4/julia.txt39
-rw-r--r--world/map/npc/025-4/mapflags.txt1
7 files changed, 1212 insertions, 0 deletions
diff --git a/world/map/npc/025-4/_import.txt b/world/map/npc/025-4/_import.txt
new file mode 100644
index 00000000..a8b01ca1
--- /dev/null
+++ b/world/map/npc/025-4/_import.txt
@@ -0,0 +1,9 @@
+// Map 025-4:
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 025-4.gat
+npc: npc/025-4/_mobs.txt
+npc: npc/025-4/_warps.txt
+npc: npc/025-4/battlecaves.txt
+npc: npc/025-4/clauquer.txt
+npc: npc/025-4/julia.txt
+npc: npc/025-4/mapflags.txt
diff --git a/world/map/npc/025-4/_mobs.txt b/world/map/npc/025-4/_mobs.txt
new file mode 100644
index 00000000..6ee5b1d1
--- /dev/null
+++ b/world/map/npc/025-4/_mobs.txt
@@ -0,0 +1,15 @@
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+// mobs
+
+025-4.gat,29,31,20,14 monster CaveMaggot 1056,3,0,0,Mob025-4::On1056
+025-4.gat,94,24,20,21 monster CaveMaggot 1056,5,0,0,Mob025-4::On1056
+
+
+025-4.gat,0,0,0 script Mob025-4 -1,{
+On1056:
+ set @mobID, 1056;
+ callfunc "MobPoints";
+ break;
+
+ end;
+}
diff --git a/world/map/npc/025-4/_warps.txt b/world/map/npc/025-4/_warps.txt
new file mode 100644
index 00000000..e0b9ae4d
--- /dev/null
+++ b/world/map/npc/025-4/_warps.txt
@@ -0,0 +1,4 @@
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+// warps
+
+025-4.gat,28,37 warp ToMainHall -1,-1,025-3.gat,105,87
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;
+}
+
diff --git a/world/map/npc/025-4/clauquer.txt b/world/map/npc/025-4/clauquer.txt
new file mode 100644
index 00000000..1acba11d
--- /dev/null
+++ b/world/map/npc/025-4/clauquer.txt
@@ -0,0 +1,80 @@
+025-4.gat,30,30,0 script Clauquer 169,{
+
+ if (Rossy_Quest >= 16 || FLAGS & FLAG_ROSSI_COMPLETED) goto L_Rescued;
+ if (Rossy_Quest == 15) goto L_Hmmm;
+ if (Rossy_Quest == 14) goto L_Help;
+ if (Rossy_Quest <= 13) goto L_Huh;
+
+L_Help:
+ mes "[Clauquer]";
+ mes "\"Hello stranger, are you lost?\"";
+ next;
+ mes "\"Don't answer, I know you are looking for someone... A little girl, is that right?\"";
+ menu
+ "I must admit you're right, but how come you...", -,
+ "I'm not lost and I don't need help, bye.", L_No;
+ next;
+ mes "[Clauquer]";
+ mes "\"How do I know you're looking for her? Well, because I saw her. I also heard her, she screamed and still screams like hell. Moreover, I don't think you would enter these caves just for fun!\"";
+ menu
+ "Of course not.", -;
+ next;
+ mes "[Clauquer]";
+ mes "\"I can see that you really want to save the little girl. She is trapped in a place inside one of these caves, protected by a magic barrier created by a fey spirit. To save her, you have to annulate the energy sources of this barrier. They are located in 10 different spots, each one in a different cave.\"";
+ next;
+ mes "\"To do this, you have to place a root on the exact center of the energy source. Once you do this, its entire power will transmute into some terrible earth monsters. If you defeat them, this source of energy will be close to nothing and the barrier will be weaker.\"";
+ next;
+ mes "\"If my observations are correct, the girl is trapped in a cave protected by a barrier fed by 9 different power sources. And inside this cave, there is another barrier, fed by a single, but very strong, power source. The girl is inside that cave, protected by that strong barrier.\"";
+ next;
+ mes "\"Be prepared before you enter one of those caves, because once you put the root in the power source, you won't be able to get out. Also, remember that you can't stay in those caves for a long time, because of the foul air.\"";
+ next;
+ mes "\"Now I should tell you more about how that little girl got into that cave and warn you about what you are going to face there...\"";
+ next;
+ menu
+ "Please go on.", -;
+L_Advice:
+ mes "[Clauquer]";
+ mes "\"I advise you to be mentally prepared for this rescue operation. A fey nature spirit creature kidnapped the little girl and is planning to replace her with a changeling.\"";
+ next;
+ mes "\"The old tales of hurnscald say this spirit always change his offspring with beautiful and smart human childs, to use them as servants. And his offspring usually forgets about its own origin, growing up in a human family. But they are usually 'people' with really bad temper, the kind of people who does terrible things in this world...\"";
+ next;
+ mes "However, the girl you are looking for is mentally too strong, and the spirit is having problems to create a changeling identical to her. So it locked her in one of those terrible caves, trying to scare the poor girl and make his task easier.\"";
+ next;
+ mes "\"Oh, and if you really plan to rescue the girl in the cave, I advise you to use potions for every single battle, I'm thinking of Concentration and Iron Potions. You might want to take some food with you, you might be hungry in battle. I would personally take some water, I'm always thirsty. Don't be afraid to take too much of each, the battles take time to end.\"";
+ next;
+ mes "\"I think you're now ready to explore these caves and fight.\"";
+ if (Rossy_Quest == 14) set Rossy_Quest, 15;
+ close;
+
+L_End:
+ mes "[Clauquer]";
+ mes "\"I see you came back because you didn't know enough of these caves... Well, well...\"";
+ next;
+ goto L_Advice;
+
+L_Hmmm:
+ mes "[Clauquer]";
+ mes "\"You already know everything about these caves. You don't need me anymore to find the little girl.\"";
+ menu
+ "But please, I really need your help!", -,
+ "You're right, I don't need your help!", L_No;
+ next;
+ mes "\"Ok, if you insist... But I can only repeat what I already said.\"";
+ goto L_Advice;
+
+L_Huh:
+ mes "[Clauquer]";
+ mes "Why are you here? Get out.";
+ close;
+
+L_No:
+ close;
+
+L_Rescued:
+ mes "[Clauquer]";
+ mes "Please put something here.";
+ next;
+ mes "*The man talks about you, rescuing the girl.*";
+ close;
+
+}
diff --git a/world/map/npc/025-4/julia.txt b/world/map/npc/025-4/julia.txt
new file mode 100644
index 00000000..8c7b3ce4
--- /dev/null
+++ b/world/map/npc/025-4/julia.txt
@@ -0,0 +1,39 @@
+025-4.gat,89,21,0 script Julia 114,{
+
+ if (Rossy_Quest > 16 || FLAGS & FLAG_ROSSI_COMPLETED) goto L_End;
+ if (Rossy_Quest == 16) goto L_Done;
+ if (Rossy_Quest <= 15) goto L_Hmmm;
+
+L_Done:
+ mes "[Julia]";
+ mes "I heard some battle noises a few minutes ago and I presume you are here to save me!";
+ next;
+ menu
+ "Of course I'm here to save you, Rossy sent me here!", -;
+ mes "Rossy? My twin sister? I knew she was going to look for me. Well, here is a present for you.";
+ getinventorylist;
+ if (@inventorylist_count == 100) goto L_TooMany;
+ getitem "BlackBoots", 1;
+ getexp 5000, 0;
+ set Rossy_Quest, 17;
+ mes "I'm out of here now, let's get out of this horrible cave.";
+ close;
+
+L_End:
+ mes "[Julia]";
+ mes "Let's get out of this horrible cave.";
+ close;
+
+L_Hmmm:
+ mes "[Julia]";
+ mes "Don't hurt me!";
+ close;
+
+L_TooMany:
+ mes "[Julia]";
+ mes "\"Oh, you don't have room for it. Come back when your backpack will not be full.\"";
+ next;
+ mes "I'll wait here until you get your present!";
+ close;
+
+}
diff --git a/world/map/npc/025-4/mapflags.txt b/world/map/npc/025-4/mapflags.txt
new file mode 100644
index 00000000..1c8999bb
--- /dev/null
+++ b/world/map/npc/025-4/mapflags.txt
@@ -0,0 +1 @@
+025-4.gat mapflag nosave 025-3,112,96;