From d6b1eff66e797bb4a235947ada67f6db1a93b10a Mon Sep 17 00:00:00 2001
From: Jessica Tölke <jtoelke@mail.upb.de>
Date: Wed, 2 Mar 2011 21:35:54 +0100
Subject: Putting the yeti fight cave into a different map and setting
 nosaveflag.

---
 npc/031-3_Cave/_import.txt   |   1 -
 npc/031-3_Cave/cindyCave.txt | 235 ---------------------------------------
 npc/031-3_Cave/labyrinth.txt |  10 +-
 npc/031-4_Cave/_import.txt   |   6 +
 npc/031-4_Cave/_mobs.txt     |   7 ++
 npc/031-4_Cave/_warps.txt    |   2 +
 npc/031-4_Cave/barrier.txt   |   8 ++
 npc/031-4_Cave/cindyCave.txt | 256 +++++++++++++++++++++++++++++++++++++++++++
 npc/031-4_Cave/mapflags.txt  |   1 +
 npc/_import.txt              |   1 +
 10 files changed, 282 insertions(+), 245 deletions(-)
 delete mode 100644 npc/031-3_Cave/cindyCave.txt
 create mode 100644 npc/031-4_Cave/_import.txt
 create mode 100644 npc/031-4_Cave/_mobs.txt
 create mode 100644 npc/031-4_Cave/_warps.txt
 create mode 100644 npc/031-4_Cave/barrier.txt
 create mode 100644 npc/031-4_Cave/cindyCave.txt
 create mode 100644 npc/031-4_Cave/mapflags.txt

(limited to 'npc')

diff --git a/npc/031-3_Cave/_import.txt b/npc/031-3_Cave/_import.txt
index 44ec9310..d28ddba7 100644
--- a/npc/031-3_Cave/_import.txt
+++ b/npc/031-3_Cave/_import.txt
@@ -1,5 +1,4 @@
 map: 031-3.gat
 npc: npc/031-3_Cave/_mobs.txt
 npc: npc/031-3_Cave/_warps.txt
-npc: npc/031-3_Cave/cindyCave.txt
 npc: npc/031-3_Cave/labyrinth.txt
diff --git a/npc/031-3_Cave/cindyCave.txt b/npc/031-3_Cave/cindyCave.txt
deleted file mode 100644
index 29b328f0..00000000
--- a/npc/031-3_Cave/cindyCave.txt
+++ /dev/null
@@ -1,235 +0,0 @@
-// author: Jenalya
-// reviewed by: 
-// state0: Cindy is totally scared and does nothing helpful
-// state1: you are able to open the cage
-// state2: Cindy is saved, she gives you a reward (wizard hat or wooden staff)
-// state3: and greater: Cindy is saved, she asks you to visit them
-
-031-3.gat,122,52,0	script	Cindy	198, {
-	if ($@FIGHT_YETI_STATUS != 0) goto L_Yeti;
-	
-	set @KEYS_AMOUNT, 10;
-
-	set @Q_Nivalis_state_MASK, NIBBLE_5_MASK;
-	set @Q_Nivalis_state_SHIFT, NIBBLE_5_SHIFT;
-
-	set @rescue_Cindy, ((QUEST_Nivalis_state & @Q_Nivalis_state_MASK) >> @Q_Nivalis_state_SHIFT);
-	
-	if (Sex == 0) set @title$, "Misses";
-	if (Sex == 1) set @title$, "Mister";
-       
-    if (@rescue_Cindy >= 3) goto L_Please_Visit;  
-	if (@rescue_Cindy == 2) goto L_Reward;
-	if (@rescue_Cindy == 1) goto L_Please_Help;
-
-	mes "There is a little girl in a cage. As you come near, she starts to shiver and back off from you as far as she can in that small cage.";
-	next;
-	mes "You don't know what to do.";
-	close; 
-
-L_Please_Help:
-	mes "There is a little girl in a cage. As you come near, she starts to shiver and back off from you as far as she can in that small cage.";
-	next;
-	menu
-		"Hello Cindy, I'm here to save you.", - ;
-	mes "Cindy doesn't look so scared anymore.";
-	next;
-	mes "[Cindy]";
-	mes "\"Hello, dear " + @title$ + " adventurer. Did my mother send you?\"";
-	next;
-	mes "\"It's so cold in here! Can you please open the cage?\"";
-	next;
-	mes "\"But be careful. If the Yetis hear you, they will come!\"";
-	menu
-		"Try to open the cage", L_Try_Cage, 
-		"Leave", -;
-	close;
-
-L_Try_Cage:
-	if (baselevel < 70) goto L_To_Weak;
-	if (countitem("TreasureKey") < @KEYS_AMOUNT) goto L_Not_Enough_Keys;
-	delitem "TreasureKey", @KEYS_AMOUNT;
-	mes "As you try to open the door of the cage, there is a loud squeaking noise.";
-	next;
-	mes "You get an uncomfortable feeling and Cindy starts to shiver.";
-	next;
-	mes "\"Oh no, the Yetis...\"";
-	if ($@FIGHT_YETI_STATUS != 0) goto L_Yeti;
-	
-	// initialize fight
-	set $@FIGHT_YETI_STATUS, 1;
-	set $@FIGHT_YETI_WAVE, 0;
-	set $@YETI_COUNT, 1;
-	set $@FIGHT_YETI_PLAYER_COUNT, getareausers("031-3.gat", 80, 20, 160, 90);
-	// this yeti is spawned because of some timing problems
-	// without it, the first and second wave start nearly the same time
-	areamonster "031-3.gat", 80, 20, 160, 90, "", 1072, 1, "Cindy::onPetDeath";
-
-	startnpctimer;
-	goto L_Exit;
-
-L_Exit:
-	close;
-	
-L_Yeti:
-	mes "[Cindy]";
-	mes "\"Watch out, the Yetis!\"";
-	close;
-
-L_Reward:	
-	mes "[Cindy]";
-	mes "\"You are a hero! All these strong monsters!\"";
-	next;
-	mes "\"I've found this thing in the cave - it looks valuable. I want you to have it.\"";
-	next;
-	getinventorylist;
-	if (@inventorylist_count == 100) goto L_Full_Inv;
-	
-	set @reward, rand(15);
-	if (@reward < 10) goto L_Wizard_Hat;
-	getitem "WoodenStaff", 1;
-	set @rescue_Cindy, 3;
-	callsub S_Update_Mask;
-	goto L_Visit;
-	
-L_Wizard_Hat:
-	// get a wizard hat in one of the ten colors - no white
-	setarray @wizardhats[0], 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209;
-	getitem @wizardhats[@reward], 1;
-	set @rescue_Cindy, 3;
-	callsub S_Update_Mask;
-	
-L_Visit:
-	mes "\"Thank you so much; please come to my home. It's the house at the beach.\"";
-	next;
-	mes "\"I'm sure my mother wants to thank you as well.\"";	
-	close;
-	
-L_Please_Visit:
-	mes "[Cindy]";
-	mes "\"Thank you, thank you! You're a hero! Please come home with me to our house at the beach!\"";
-	close;
-	
-L_To_Weak:
-	mes "You try to open the cage, but it's stuck. It seems you're too weak!";
-	close;
-
-L_Not_Enough_Keys:
-	mes "You don't have enough keys to open the cage.";
-	close;
-
-L_Full_Inv:
-	mes "\"Oh, it seems you carry so much stuff - I will keep it for you until you can take it.\"";
-	close;
-	
-// Fight logic attached to npc
-OnTimer5000:
-	setnpctimer 0;
-	if ($@FIGHT_YETI_STATUS != 0) goto L_CaveLogic;
-L_Return_1:
-	set $@FIGHT_YETI_PLAYER_COUNT, 0;
-	areatimer "031-3.gat", 80, 20, 160, 90, 10, "Cindy::onTick";
-	end;
-
-L_CaveLogic:
-	set $@FIGHT_YETI_ROUND_PEN, $@FIGHT_YETI_PLAYER_COUNT;
-	if ($@FIGHT_YETI_ROUND_PEN > 60) set $@FIGHT_YETI_ROUND_PEN, 60;
-	if ($@FIGHT_YETI_PLAYER_COUNT <= 0) goto L_CleanUp;
-	set $@FIGHT_YETI_ROUND_TIMER, $@FIGHT_YETI_ROUND_TIMER + 5; // Advance 5 seconds
-	if (mobcount("031-3.gat", "Cindy::onPetDeath") <= 0) goto L_NextWave;
-	if ($@FIGHT_YETI_ROUND_TIMER + $@FIGHT_YETI_ROUND_PEN >= 120) goto L_NextWave;
-	goto L_Return_1;
-
-L_NextWave:
-	set $@FIGHT_YETI_ROUND_TIMER, 0;
-	set $@FIGHT_YETI_WAVE, $@FIGHT_YETI_WAVE + 1;
-	if ($@FIGHT_YETI_WAVE > 10 && $@YETI_COUNT == 0) goto L_CleanUp;
-	if ($@FIGHT_YETI_WAVE > 10 && $@FIGHT_YETI_WAVE < 22) goto L_Return_1;
-	if ($@FIGHT_YETI_WAVE > 22)
-		areamonster "031-3.gat", 80, 20, 160, 90, "", 1072, $@FIGHT_YETI_WAVE*2 + $@FIGHT_YETI_PLAYER_COUNT*5, "Cindy::onPetDeath";
-	if ($@FIGHT_YETI_WAVE > 22)
-		set $@YETI_COUNT, $@YETI_COUNT + $@FIGHT_YETI_WAVE*2 + $@FIGHT_YETI_PLAYER_COUNT*5;
-	set $@FIGHT_YETI_NUMBER, (1 + (1 * $@FIGHT_YETI_WAVE) + (2 * $@FIGHT_YETI_PLAYER_COUNT))/4;
-	set $@YETI_COUNT, $@YETI_COUNT + $@FIGHT_YETI_NUMBER;
-
-	areamonster "031-3.gat", 80, 20, 160, 90, "", 1072, $@FIGHT_YETI_NUMBER, "Cindy::onPetDeath";
-	
-	if ($@FIGHT_YETI_WAVE == 1)
-		mapannounce "031-3.gat", "Cindy: Yetis!", 0;
-	if ($@FIGHT_YETI_WAVE == 2)
-		mapannounce "031-3.gat", "Cindy: Watch out!", 0;
-	if ($@FIGHT_YETI_WAVE == 3)
-		mapannounce "031-3.gat", "Cindy: More of them are coming!", 0;
-	if ($@FIGHT_YETI_WAVE == 4)
-		mapannounce "031-3.gat", "Cindy: Be careful! More of them!", 0;
-	if ($@FIGHT_YETI_WAVE == 5)
-		mapannounce "031-3.gat", "Cindy: Attention! There is another bunch of them!", 0;
-	if ($@FIGHT_YETI_WAVE == 6)
-		mapannounce "031-3.gat", "Cindy: Hang on! More of them!", 0;
-	if ($@FIGHT_YETI_WAVE == 7)
-		mapannounce "031-3.gat", "Cindy: More Yetis! Will this never end?", 0;
-	if ($@FIGHT_YETI_WAVE == 8)
-		mapannounce "031-3.gat", "Cindy: There are coming more and more!", 0;
-	if ($@FIGHT_YETI_WAVE == 9)
-		mapannounce "031-3.gat", "Cindy: Watch your back! There are so many of them!", 0;
-	if ($@FIGHT_YETI_WAVE == 10)
-		mapannounce "031-3.gat", "Cindy: This seems to be their final attack! I believe in you!", 0;
-
-	goto L_Return_1;
-
-// Called on each player once every 5 seconds
-onTick:
-	if (isdead(0)) end;
-	set $@FIGHT_YETI_PLAYER_COUNT, $@FIGHT_YETI_PLAYER_COUNT + 1;
-	end;
-
-onPetDeath:
-	set $@YETI_COUNT, $@YETI_COUNT - 1;
-	end;
-
-onInit:
-	initnpctimer;
-	stopnpctimer;
-L_CleanUp:
-	areatimer "031-3.gat", 80, 20, 160, 90, 10, "Cindy::onReward";
-	set $@FIGHT_YETI_STATUS, 0;
-	set $@FIGHT_YETI_PLAYER_COUNT, 0;
-	set $@FIGHT_YETI_WAVE, 1;
-	set $@FIGHT_YETI_ROUND_TIMER, 0;
-	killmonster "031-3.gat", "Cindy::onPetDeath";
-	stopnpctimer;
-	setnpctimer 0;
-	end;
-
-onReward:
-	if (isdead(0)) end;
-	set @bonus, (baselevel/2);
-	set DailyQuestBonus, DailyQuestBonus + @bonus;	
-	message strcharinfo(0), "You feel a temporary rush of power and zest for action. " + @bonus + " daily bonus gained." ;
-	if (@rescue_Cindy != 1 ) goto L_No_Progress;
-	set @rescue_Cindy, 2;
-	callsub S_Update_Mask;
-	message strcharinfo(0), "Cindy looks relieved and as if she wants to talk with you.";
-L_No_Progress:
-	end;
-			
-/////////	
-S_Update_Mask:
-        set QUEST_Nivalis_state,
-        	(QUEST_Nivalis_state & ~(@Q_Nivalis_state_MASK))
-                | (@rescue_Cindy << @Q_Nivalis_state_SHIFT);
-        return;
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/npc/031-3_Cave/labyrinth.txt b/npc/031-3_Cave/labyrinth.txt
index 088495fb..feef9c1d 100755
--- a/npc/031-3_Cave/labyrinth.txt
+++ b/npc/031-3_Cave/labyrinth.txt
@@ -8,17 +8,9 @@
 //#
 //#################################################################################
 
-031-3.gat,120,81,0	script	#YetiBarrier	127,1,1,{
-	if ($@FIGHT_YETI_STATUS == 1) goto L_Block;
-    warp "031-3.gat", 46, 27;
-	end;
-L_Block:
-    message strcharinfo(0), "A force field seems to be blocking you from exiting.";
-    end;
-}
 031-3.gat,46,24,0	script	#YetiBarrier	127,1,1,{
 if ($@FIGHT_YETI_STATUS == 1) goto L_Blocked;
-    warp "031-3.gat", 120, 79;
+    warp "031-4.gat", 40, 69;
 	end;
 L_Blocked:
     message strcharinfo(0), "A force field seems to be blocking you from entering.";
diff --git a/npc/031-4_Cave/_import.txt b/npc/031-4_Cave/_import.txt
new file mode 100644
index 00000000..aaa6f906
--- /dev/null
+++ b/npc/031-4_Cave/_import.txt
@@ -0,0 +1,6 @@
+map: 031-4.gat
+npc: npc/031-4_Cave/_mobs.txt
+npc: npc/031-4_Cave/_warps.txt
+npc: npc/031-4_Cave/barrier.txt
+npc: npc/031-4_Cave/cindyCave.txt
+npc: npc/031-4_Cave/mapflags.txt
diff --git a/npc/031-4_Cave/_mobs.txt b/npc/031-4_Cave/_mobs.txt
new file mode 100644
index 00000000..e107b374
--- /dev/null
+++ b/npc/031-4_Cave/_mobs.txt
@@ -0,0 +1,7 @@
+// 031-4 Cave mobs
+
+
+
+031-4.gat,0,0,0	script	Mob031-4	-1,{
+	end;
+}
diff --git a/npc/031-4_Cave/_warps.txt b/npc/031-4_Cave/_warps.txt
new file mode 100644
index 00000000..0a6f70da
--- /dev/null
+++ b/npc/031-4_Cave/_warps.txt
@@ -0,0 +1,2 @@
+// 031-4 Cave warps
+
diff --git a/npc/031-4_Cave/barrier.txt b/npc/031-4_Cave/barrier.txt
new file mode 100644
index 00000000..e8b4a5ac
--- /dev/null
+++ b/npc/031-4_Cave/barrier.txt
@@ -0,0 +1,8 @@
+031-4.gat,40,71,0	script	#YetiBarrier	127,1,1,{
+	if ($@FIGHT_YETI_STATUS == 1) goto L_Block;
+    warp "031-3.gat", 46, 27;
+	end;
+L_Block:
+    message strcharinfo(0), "A force field seems to be blocking you from exiting.";
+    end;
+}
diff --git a/npc/031-4_Cave/cindyCave.txt b/npc/031-4_Cave/cindyCave.txt
new file mode 100644
index 00000000..e6b8702d
--- /dev/null
+++ b/npc/031-4_Cave/cindyCave.txt
@@ -0,0 +1,256 @@
+// author: Jenalya
+// reviewed by:
+// state0: Cindy is totally scared and does nothing helpful
+// state1: you are able to open the cage
+// state2: Cindy is saved, she gives you a reward (wizard hat or wooden staff)
+// state3: and greater: Cindy is saved, she asks you to visit them
+
+031-4.gat,42,42,0	script	Cindy	198, {
+	if ($@FIGHT_YETI_STATUS != 0) goto L_Yeti;
+
+	set @KEYS_AMOUNT, 10;
+
+	set @Q_Nivalis_state_MASK, NIBBLE_5_MASK;
+	set @Q_Nivalis_state_SHIFT, NIBBLE_5_SHIFT;
+
+	set @rescue_Cindy, ((QUEST_Nivalis_state & @Q_Nivalis_state_MASK) >> @Q_Nivalis_state_SHIFT);
+
+	if (Sex == 0) set @title$, "Misses";
+	if (Sex == 1) set @title$, "Mister";
+
+    if (@rescue_Cindy >= 3) goto L_Please_Visit;
+	if (@rescue_Cindy == 2) goto L_Reward;
+	if (@rescue_Cindy == 1) goto L_Please_Help;
+
+	mes "There is a little girl in a cage. As you come near, she starts to shiver and back off from you as far as she can in that small cage.";
+	next;
+	mes "You don't know what to do.";
+	close;
+
+L_Please_Help:
+	mes "There is a little girl in a cage. As you come near, she starts to shiver and back off from you as far as she can in that small cage.";
+	next;
+	menu
+		"Hello Cindy, I'm here to save you.", - ;
+	mes "Cindy doesn't look so scared anymore.";
+	next;
+	mes "[Cindy]";
+	mes "\"Hello, dear " + @title$ + " adventurer. Did my mother send you?\"";
+	next;
+	mes "\"It's so cold in here! Can you please open the cage?\"";
+	next;
+	mes "\"But be careful. If the Yetis hear you, they will come!\"";
+	menu
+		"Try to open the cage", L_Try_Cage,
+		"Leave", -;
+	close;
+
+L_Try_Cage:
+	if (baselevel < 70) goto L_To_Weak;
+	if (countitem("TreasureKey") < @KEYS_AMOUNT) goto L_Not_Enough_Keys;
+	delitem "TreasureKey", @KEYS_AMOUNT;
+	mes "As you try to open the door of the cage, there is a loud squeaking noise.";
+	next;
+	mes "You get an uncomfortable feeling and Cindy starts to shiver.";
+	next;
+	mes "\"Oh no, the Yetis...\"";
+	if ($@FIGHT_YETI_STATUS != 0) goto L_Yeti;
+
+	// initialize fight
+	set $@FIGHT_YETI_STATUS, 1;
+	set $@FIGHT_YETI_WAVE, 0;
+	set $@YETI_COUNT, 1;
+	set $@FIGHT_YETI_PLAYER_COUNT, getareausers("031-4.gat", 0, 0, 95, 91);
+	// this yeti is spawned because of some timing problems
+	// without it, the first and second wave start nearly the same time
+	areamonster "031-4.gat", 0, 0, 95, 91, "", 1072, 1, "Cindy::onPetDeath";
+
+	startnpctimer;
+	goto L_Exit;
+
+L_Exit:
+	close;
+
+L_Yeti:
+	mes "[Cindy]";
+	mes "\"Watch out, the Yetis!\"";
+	close;
+
+L_Reward:
+	mes "[Cindy]";
+	mes "\"You are a hero! All these strong monsters!\"";
+	next;
+	mes "\"I've found this thing in the cave - it looks valuable. I want you to have it.\"";
+	next;
+	getinventorylist;
+	if (@inventorylist_count == 100) goto L_Full_Inv;
+
+	set @reward, rand(15);
+	if (@reward < 10) goto L_Wizard_Hat;
+	getitem "WoodenStaff", 1;
+	set @rescue_Cindy, 3;
+	callsub S_Update_Mask;
+	goto L_Visit;
+
+L_Wizard_Hat:
+	// get a wizard hat in one of the ten colors - no white
+	setarray @wizardhats[0], 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209;
+	getitem @wizardhats[@reward], 1;
+	set @rescue_Cindy, 3;
+	callsub S_Update_Mask;
+
+L_Visit:
+	mes "\"Thank you so much; please come to my home. It's the house at the beach.\"";
+	next;
+	mes "\"I'm sure my mother wants to thank you as well.\"";
+	close;
+
+L_Please_Visit:
+	mes "[Cindy]";
+	mes "\"Thank you, thank you! You're a hero! Please come home with me to our house at the beach!\"";
+	close;
+
+L_To_Weak:
+	mes "You try to open the cage, but it's stuck. It seems you're too weak!";
+	close;
+
+L_Not_Enough_Keys:
+	mes "You don't have enough keys to open the cage.";
+	close;
+
+L_Full_Inv:
+	mes "\"Oh, it seems you carry so much stuff - I will keep it for you until you can take it.\"";
+	close;
+
+// Fight logic attached to npc
+OnTimer5000:
+	setnpctimer 0;
+	if ($@FIGHT_YETI_STATUS != 0) goto L_CaveLogic;
+L_Return_1:
+	set $@FIGHT_YETI_PLAYER_COUNT, 0;
+	areatimer "031-4.gat", 0, 0, 95, 91, 10, "Cindy::onTick";
+	end;
+
+L_CaveLogic:
+	set $@FIGHT_YETI_ROUND_PEN, $@FIGHT_YETI_PLAYER_COUNT;
+	if ($@FIGHT_YETI_ROUND_PEN > 60) set $@FIGHT_YETI_ROUND_PEN, 60;
+	if ($@FIGHT_YETI_PLAYER_COUNT <= 0) goto L_CleanUp;
+	set $@FIGHT_YETI_ROUND_TIMER, $@FIGHT_YETI_ROUND_TIMER + 5; // Advance 5 seconds
+	if (mobcount("031-4.gat", "Cindy::onPetDeath") <= 0) goto L_NextWave;
+	if ($@FIGHT_YETI_ROUND_TIMER + $@FIGHT_YETI_ROUND_PEN >= 120) goto L_NextWave;
+	goto L_Return_1;
+
+L_NextWave:
+	set $@FIGHT_YETI_ROUND_TIMER, 0;
+	set $@FIGHT_YETI_WAVE, $@FIGHT_YETI_WAVE + 1;
+	if ($@FIGHT_YETI_WAVE > 10 && $@YETI_COUNT == 0) goto L_CleanUp;
+	if ($@FIGHT_YETI_WAVE > 10 && $@FIGHT_YETI_WAVE < 22) goto L_Return_1;
+	if ($@FIGHT_YETI_WAVE > 22)
+		areamonster "031-4.gat", 0, 0, 95, 91, "", 1072, $@FIGHT_YETI_WAVE*2 + $@FIGHT_YETI_PLAYER_COUNT*5, "Cindy::onPetDeath";
+	if ($@FIGHT_YETI_WAVE > 22)
+		set $@YETI_COUNT, $@YETI_COUNT + $@FIGHT_YETI_WAVE*2 + $@FIGHT_YETI_PLAYER_COUNT*5;
+	set $@FIGHT_YETI_NUMBER, (1 + (1 * $@FIGHT_YETI_WAVE) + (2 * $@FIGHT_YETI_PLAYER_COUNT))/4;
+	set $@YETI_COUNT, $@YETI_COUNT + $@FIGHT_YETI_NUMBER;
+
+	areamonster "031-4.gat", 0, 0, 95, 91, "", 1072, $@FIGHT_YETI_NUMBER, "Cindy::onPetDeath";
+
+	if ($@FIGHT_YETI_WAVE == 1)
+		mapannounce "031-4.gat", "Cindy: Yetis!", 0;
+	if ($@FIGHT_YETI_WAVE == 2)
+		mapannounce "031-4.gat", "Cindy: Watch out!", 0;
+	if ($@FIGHT_YETI_WAVE == 3)
+		mapannounce "031-4.gat", "Cindy: More of them are coming!", 0;
+	if ($@FIGHT_YETI_WAVE == 4)
+		mapannounce "031-4.gat", "Cindy: Be careful! More of them!", 0;
+	if ($@FIGHT_YETI_WAVE == 5)
+		mapannounce "031-4.gat", "Cindy: Attention! There is another bunch of them!", 0;
+	if ($@FIGHT_YETI_WAVE == 6)
+		mapannounce "031-4.gat", "Cindy: Hang on! More of them!", 0;
+	if ($@FIGHT_YETI_WAVE == 7)
+		mapannounce "031-4.gat", "Cindy: More Yetis! Will this never end?", 0;
+	if ($@FIGHT_YETI_WAVE == 8)
+		mapannounce "031-4.gat", "Cindy: There are coming more and more!", 0;
+	if ($@FIGHT_YETI_WAVE == 9)
+		mapannounce "031-4.gat", "Cindy: Watch your back! There are so many of them!", 0;
+	if ($@FIGHT_YETI_WAVE == 10)
+		mapannounce "031-4.gat", "Cindy: This seems to be their final attack! I believe in you!", 0;
+
+	if ($@FIGHT_YETI_WAVE == 1)
+		mapannounce "031-3.gat", "Cindy: Yetis!", 0;
+	if ($@FIGHT_YETI_WAVE == 2)
+		mapannounce "031-3.gat", "Cindy: Watch out!", 0;
+	if ($@FIGHT_YETI_WAVE == 3)
+		mapannounce "031-3.gat", "Cindy: More of them are coming!", 0;
+	if ($@FIGHT_YETI_WAVE == 4)
+		mapannounce "031-3.gat", "Cindy: Be careful! More of them!", 0;
+	if ($@FIGHT_YETI_WAVE == 5)
+		mapannounce "031-3.gat", "Cindy: Attention! There is another bunch of them!", 0;
+	if ($@FIGHT_YETI_WAVE == 6)
+		mapannounce "031-3.gat", "Cindy: Hang on! More of them!", 0;
+	if ($@FIGHT_YETI_WAVE == 7)
+		mapannounce "031-3.gat", "Cindy: More Yetis! Will this never end?", 0;
+	if ($@FIGHT_YETI_WAVE == 8)
+		mapannounce "031-3.gat", "Cindy: There are coming more and more!", 0;
+	if ($@FIGHT_YETI_WAVE == 9)
+		mapannounce "031-3.gat", "Cindy: Watch your back! There are so many of them!", 0;
+	if ($@FIGHT_YETI_WAVE == 10)
+		mapannounce "031-3.gat", "Cindy: This seems to be their final attack! I believe in you!", 0;
+
+	goto L_Return_1;
+
+// Called on each player once every 5 seconds
+onTick:
+	if (isdead(0)) end;
+	set $@FIGHT_YETI_PLAYER_COUNT, $@FIGHT_YETI_PLAYER_COUNT + 1;
+	end;
+
+onPetDeath:
+	set $@YETI_COUNT, $@YETI_COUNT - 1;
+	end;
+
+onInit:
+	initnpctimer;
+	stopnpctimer;
+L_CleanUp:
+	areatimer "031-4.gat", 0, 0, 95, 91, 10, "Cindy::onReward";
+	set $@FIGHT_YETI_STATUS, 0;
+	set $@FIGHT_YETI_PLAYER_COUNT, 0;
+	set $@FIGHT_YETI_WAVE, 1;
+	set $@FIGHT_YETI_ROUND_TIMER, 0;
+	killmonster "031-4.gat", "Cindy::onPetDeath";
+	stopnpctimer;
+	setnpctimer 0;
+	end;
+
+onReward:
+	if (isdead(0)) end;
+	set @bonus, (baselevel/2);
+	set DailyQuestBonus, DailyQuestBonus + @bonus;
+	message strcharinfo(0), "You feel a temporary rush of power and zest for action. " + @bonus + " daily bonus gained." ;
+	if (@rescue_Cindy != 1 ) goto L_No_Progress;
+	set @rescue_Cindy, 2;
+	callsub S_Update_Mask;
+	message strcharinfo(0), "Cindy looks relieved and as if she wants to talk with you.";
+L_No_Progress:
+	end;
+
+/////////
+S_Update_Mask:
+        set QUEST_Nivalis_state,
+        	(QUEST_Nivalis_state & ~(@Q_Nivalis_state_MASK))
+                | (@rescue_Cindy << @Q_Nivalis_state_SHIFT);
+        return;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/npc/031-4_Cave/mapflags.txt b/npc/031-4_Cave/mapflags.txt
new file mode 100644
index 00000000..9e4e8f6b
--- /dev/null
+++ b/npc/031-4_Cave/mapflags.txt
@@ -0,0 +1 @@
+031-4.gat mapflag nosave 031-3,46,26;
diff --git a/npc/_import.txt b/npc/_import.txt
index 217f6b81..3dc22cac 100644
--- a/npc/_import.txt
+++ b/npc/_import.txt
@@ -67,6 +67,7 @@ import: npc/030-1_Snow_field/_import.txt
 import: npc/031-1_NivalisPort/_import.txt
 import: npc/031-2_Angelas_House/_import.txt
 import: npc/031-3_Cave/_import.txt
+import: npc/031-4_Cave/_import.txt
 import: npc/032-1_Outback/_import.txt
 import: npc/032-3_Cave/_import.txt
 import: npc/033-1_Snow_field/_import.txt
-- 
cgit v1.2.3-70-g09d2