summaryrefslogtreecommitdiff
path: root/npc/021-1
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2022-10-23 21:44:22 -0300
committerJesusaves <cpntb1@ymail.com>2022-10-23 21:44:22 -0300
commita7c45a192268da2601cef47a4cdba987ae2327ca (patch)
treec5fb5b97db109fe7106496dd96498c475881046b /npc/021-1
downloadserverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.gz
serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.bz2
serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.xz
serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.zip
Initial commit (Moubootaur Legends fork)
Diffstat (limited to 'npc/021-1')
-rw-r--r--npc/021-1/_import.txt6
-rw-r--r--npc/021-1/_mobs.txt5
-rw-r--r--npc/021-1/_warps.txt243
-rw-r--r--npc/021-1/logic.txt142
-rw-r--r--npc/021-1/yeti.txt242
5 files changed, 638 insertions, 0 deletions
diff --git a/npc/021-1/_import.txt b/npc/021-1/_import.txt
new file mode 100644
index 0000000..c5b4859
--- /dev/null
+++ b/npc/021-1/_import.txt
@@ -0,0 +1,6 @@
+// Map 021-1: Ice Labyrinth
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+"npc/021-1/_mobs.txt",
+"npc/021-1/_warps.txt",
+"npc/021-1/logic.txt",
+"npc/021-1/yeti.txt",
diff --git a/npc/021-1/_mobs.txt b/npc/021-1/_mobs.txt
new file mode 100644
index 0000000..74d1e8f
--- /dev/null
+++ b/npc/021-1/_mobs.txt
@@ -0,0 +1,5 @@
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+// Map 021-1: Ice Labyrinth mobs
+021-1,162,100,144,80 monster White Slime 1094,75,100000,30000
+021-1,160,174,127,112 monster Blue Slime 1087,90,100000,30000
+021-1,161,230,147,74 monster Moggun 1070,62,100000,30000
diff --git a/npc/021-1/_warps.txt b/npc/021-1/_warps.txt
new file mode 100644
index 0000000..36fc0c3
--- /dev/null
+++ b/npc/021-1/_warps.txt
@@ -0,0 +1,243 @@
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+// Map 021-1: Ice Labyrinth warps
+021-1,103,40,0 script #021-1_103_40 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 56,49; end;
+}
+021-1,241,280,0 script #021-1_241_280 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 266,284; end;
+}
+021-1,183,282,0 script #021-1_183_282 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 158,282; end;
+}
+021-1,159,282,0 script #021-1_159_282 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 184,282; end;
+}
+021-1,212,300,0 warp #021-1_212_300 0,0,019-2,76,25
+021-1,128,266,0 script #021-1_128_266 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 115,266; end;
+}
+021-1,116,266,0 script #021-1_116_266 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 129,266; end;
+}
+021-1,80,268,0 script #021-1_80_268 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 55,268; end;
+}
+021-1,56,268,0 script #021-1_56_268 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 81,268; end;
+}
+021-1,109,255,0 script #021-1_109_255 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 106,231; end;
+}
+021-1,106,232,0 script #021-1_106_232 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 109,256; end;
+}
+021-1,103,199,0 script #021-1_103_199 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 92,174; end;
+}
+021-1,92,175,0 script #021-1_92_175 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 103,200; end;
+}
+021-1,148,150,0 script #021-1_148_150 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 128,134; end;
+}
+021-1,128,135,0 script #021-1_128_135 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 148,151; end;
+}
+021-1,146,172,0 script #021-1_146_172 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 135,197; end;
+}
+021-1,135,196,0 script #021-1_135_196 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 146,171; end;
+}
+021-1,36,249,0 script #021-1_36_249 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 35,225; end;
+}
+021-1,35,226,0 script #021-1_35_226 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 36,250; end;
+}
+021-1,36,200,0 script #021-1_36_200 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 26,177; end;
+}
+021-1,26,178,0 script #021-1_26_178 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 36,201; end;
+}
+021-1,24,157,0 script #021-1_24_157 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 31,143; end;
+}
+021-1,31,144,0 script #021-1_31_144 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 24,158; end;
+}
+021-1,91,125,0 script #021-1_91_125 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 115,76; end;
+}
+021-1,115,77,0 script #021-1_115_77 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 91,126; end;
+}
+021-1,57,49,0 script #021-1_57_49 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 104,40; end;
+}
+021-1,265,284,0 script #021-1_265_284 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 240,280; end;
+}
+021-1,283,271,0 script #021-1_283_271 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 269,244; end;
+}
+021-1,269,245,0 script #021-1_269_245 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 283,272; end;
+}
+021-1,286,190,0 script #021-1_286_190 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 289,163; end;
+}
+021-1,289,164,0 script #021-1_289_164 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 286,191; end;
+}
+021-1,292,123,0 script #021-1_292_123 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 296,96; end;
+}
+021-1,296,97,0 script #021-1_296_97 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 292,124; end;
+}
+021-1,275,73,0 script #021-1_275_73 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 283,47; end;
+}
+021-1,283,48,0 script #021-1_283_48 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 275,74; end;
+}
+021-1,197,263,0 script #021-1_197_263 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 187,227; end;
+}
+021-1,187,228,0 script #021-1_187_228 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 197,264; end;
+}
+021-1,218,265,0 script #021-1_218_265 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 227,241; end;
+}
+021-1,227,242,0 script #021-1_227_242 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 218,266; end;
+}
+021-1,212,193,0 script #021-1_212_193 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 207,167; end;
+}
+021-1,207,168,0 script #021-1_207_168 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 212,194; end;
+}
+021-1,236,211,0 script #021-1_236_211 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 235,166; end;
+}
+021-1,235,167,0 script #021-1_235_167 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 236,212; end;
+}
+021-1,195,122,0 script #021-1_195_122 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 208,91; end;
+}
+021-1,208,92,0 script #021-1_208_92 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 195,123; end;
+}
+021-1,228,121,0 script #021-1_228_121 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 232,92; end;
+}
+021-1,232,93,0 script #021-1_232_93 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 228,122; end;
+}
+021-1,192,70,0 script #021-1_192_70 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 200,49; end;
+}
+021-1,200,50,0 script #021-1_200_50 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 192,71; end;
+}
diff --git a/npc/021-1/logic.txt b/npc/021-1/logic.txt
new file mode 100644
index 0000000..47bfdf8
--- /dev/null
+++ b/npc/021-1/logic.txt
@@ -0,0 +1,142 @@
+// TMW2 scripts.
+// Authors:
+// Jesusalva
+// Description:
+// Cave logic. Controls also switchs and false warps. See soren/main for more info.
+
+// Logic
+function script CindySwitch_Check_211 {
+ .@st1=getvariableofnpc(.lifetime, "#CindySwitch_01")-gettimetick(2);
+ .@st2=getvariableofnpc(.lifetime, "#CindySwitch_02")-gettimetick(2);
+ .@st3=getvariableofnpc(.lifetime, "#CindySwitch_03")-gettimetick(2);
+ .@st4=getvariableofnpc(.lifetime, "#CindySwitch_04")-gettimetick(2);
+ .@st5=getvariableofnpc(.lifetime, "#CindySwitch_05")-gettimetick(2);
+ .@i=0;
+ if (.@st1 > 0) .@i++;
+ if (.@st2 > 0) .@i++;
+ if (.@st3 > 0) .@i++;
+ if (.@st4 > 0) .@i++;
+ if (.@st5 > 0) .@i++;
+ return .@i;
+}
+
+// Passages
+021-1,155,196,0 script #0211Logic NPC_NO_SPRITE,0,0,{
+ end;
+OnTouch:
+ // Sanitize some stuff
+ if ($@CINDY_STATE < gettimetick(2) && $@CINDY_STATE > 1500000000)
+ $@CINDY_STATE=0;
+ // Main logic
+ .@q=getq(NivalisQuest_Cindy);
+ if (.@q < 3) end;
+ if ($@CINDY_STATE > gettimetick(2)) goto L_Safe;
+ if ($@CINDY_STATE % 2 == 1) goto L_Blocked;
+ if (CindySwitch_Check_211() == 5) {
+ .@pos=rand(0,8);
+ if (.@q == 3) {
+ setq NivalisQuest_Cindy, 4;
+ warp "021-1", .xp[.@pos], .yp[.@pos];
+ } else {
+ warp "021-2", 80, 102;
+ }
+ } else {
+ switch (CindySwitch_Check_211()) {
+ case 0:
+ case 1:
+ end;
+ case 2:
+ case 3:
+ dispbottom l("A few switches aren't triggered yet."); break;
+ case 4:
+ case 5:
+ dispbottom l("A single switch is not online - Cannot pass without all of them on."); break;
+ }
+ }
+ end;
+
+L_Blocked:
+ dispbottom l("This place is reeking blood. We better come again later.");
+ end;
+
+L_Safe:
+ dispbottom l("There's no reason to enter these caves now.");
+ end;
+
+OnInit:
+ setarray .xp, 25, 43, 97, 142, 274, 52, 36, 52, 120;
+ setarray .yp, 300, 300, 300, 300, 299, 176, 79, 77, 73;
+ end;
+}
+
+021-1,136,29,0 script #FrostiaGateway NPC_NO_SPRITE,0,0,{
+ end;
+OnTouch:
+ if (!$NIVALIS_LIBDATE) {
+ npctalkonce l("Brr! It's extremely cold! I cannot go there!");
+ end;
+ } else if (BaseLevel < 40) {
+ mesc l("You're about to enter a dangerous area. Are you sure?");
+ if (askyesno() == ASK_NO)
+ end;
+ }
+ warp "022-1", 69, 111;
+ end;
+
+}
+
+// Switches
+021-1,282,34,0 script #CindySwitch_01 NPC_SWITCH_OFFLINE,{
+ .@q=getq(NivalisQuest_Cindy);
+ if (.@q < 3) {
+ mesn strcharinfo(0);
+ mesq l("This is a strange switch...");
+ close;
+ }
+ if (.lifetime-gettimetick(2) <= 0) {
+ mesc l("Pull the switch?");
+ select
+ l("Pull it"),
+ l("Leave it");
+ if (@menu == 1) {
+ getexp rand(55, 110), rand(5, 11);
+ .lifetime=gettimetick(2)+rand(110, 150)+180; // Something between 1m50s and 2m30s + 3 minutes because the maze is huge
+ specialeffect(FX_SUCCESS);
+ setnpcdisplay .name$, NPC_SWITCH_ONLINE;
+ initnpctimer;
+ .@r=rand(0,100);
+ getmapxy(.@m$, .@x, .@y,0);
+ if (.@r < 80)
+ monster .@m$, .@x, .@y, "Yeti", Yeti, 1;
+ else if (.@r > 99)
+ makeitem(Candy, 1, .@m$, .@x, .@y);
+ npctalk l("Automatic disarm in: @@", FuzzyTime(.lifetime));
+ closedialog;
+ }
+ close;
+ }
+ npctalk l("Automatic disarm in: @@", FuzzyTime(.lifetime));
+ end;
+
+OnTimer1000:
+ if (.lifetime-gettimetick(2) <= 0) {
+ setnpcdisplay .name$, NPC_SWITCH_OFFLINE;
+ stopnpctimer;
+ } else {
+ initnpctimer;
+ }
+ end;
+
+OnInit:
+ .sex = G_OTHER;
+ .distance = 3;
+ .lifetime=0; // When will this switch turn off automatically
+ end;
+
+}
+
+021-1,231,36,0 duplicate(#CindySwitch_01) #CindySwitch_02 NPC_SWITCH_OFFLINE
+021-1,34,29,0 duplicate(#CindySwitch_01) #CindySwitch_03 NPC_SWITCH_OFFLINE
+021-1,25,297,0 duplicate(#CindySwitch_01) #CindySwitch_04 NPC_SWITCH_OFFLINE
+021-1,30,168,0 duplicate(#CindySwitch_01) #CindySwitch_05 NPC_SWITCH_OFFLINE
+
diff --git a/npc/021-1/yeti.txt b/npc/021-1/yeti.txt
new file mode 100644
index 0000000..7721530
--- /dev/null
+++ b/npc/021-1/yeti.txt
@@ -0,0 +1,242 @@
+// TMW2 script.
+// Authors:
+// Jesusalva
+// Description:
+// Controls the Cindy Gateway quest node.
+// Also controls Watch Spot Yetis.
+
+021-1,246,206,0 script Yeti#0211Cindy NPC_YETI,{
+ // Is this the right Yeti?
+ .@n=getq(NivalisQuest_Well);
+
+ if (.@n < 2)
+ goto L_NoQuest;
+
+ CINDY_PLAYER_STRUCK=false;
+ // Alright, now we need to cycle Cindy quest to decide if this NPC will have
+ // a special behavior or not.
+ .@q=getq(NivalisQuest_Cindy);
+
+ if (.@q == 1) goto L_Assigned; // Quest Assigned
+ if (.@q == 2) goto L_Report; // Quest (Sub) Accepted
+ if (.@q <= 5) goto L_Instructions; // Quest (Sub) Completed
+ if (.@q >= 6) goto L_Complete; // Quest completed at least once.
+
+L_Thanks:
+ mesn;
+ mesq l("Hey, thanks for saving me. You know, from the well.");
+ next;
+ mesn strcharinfo(0);
+ mesq l("You're wel-- Wait, it was you who was trapped on the well near Miler's house?!");
+ next;
+ mesn;
+ mesq l("Yes, exactly. Thanks for the rescue. I must guard this area from the caves, if you need, just call me.");
+ close;
+
+L_Assigned:
+ mesn;
+ mesq l("Hello my friend.");
+ next;
+ select
+ l("Hi."),
+ l("Hm, do you perhaps know where to find Cindy and could help me?"),
+ l("Die, your evil Yeti!");
+ mes "";
+ switch (@menu) {
+ case 1: goto L_Thanks;
+ case 2:
+ mesn;
+ mesq l("Hm, would \"Cindy\" be a small, little girl, kidnapped by some sturdy-looking rogue Yetis?");
+ next;
+ mesn strcharinfo(0);
+ mesq l("Probably.");
+ next;
+ mesn;
+ mesq l("Well, yes, I've saw them heading off to the Yeti King room. Lately, many Yetis have been uprising against your majesty.");
+ next;
+ mesn;
+ mesq l("Unfortunately, @@s are not welcome on the Yeti Domains. You're no exception.", get_race());
+ next;
+ mesn strcharinfo(0);
+ select
+ l("Alright, good bye."),
+ l("Can't I do anything, though?"),
+ l("Tell me how or I'll kill you!");
+ mes "";
+ if (@menu == 3) {
+ mesn;
+ mesq l("Now, that's unfortunate. I don't think you can hit me from where you are.");
+ next;
+ mesn;
+ mesq l("Besides, I know these caves like the back of my hand. You would have a hard time tracking me down.");
+ next;
+ mesn;
+ mesq l("In fact, you would get lost and killed. If I were you, I would avoid the Death Penalty. It's high, ya know?");
+ } else if (@menu == 2) {
+ mesn;
+ mesq l("Well, the Yeti King has went away to the cliffs north of this one. He'll get back here very hungry.");
+ next;
+ mesn;
+ mesq l("I am his right-hand Yeti, so I could grant you passage to his Throne Room to slay the rogue Yetis...");
+ next;
+ mesn;
+ mesq l("...But saving me won't be enough, so build trust by the kind gift of @@ @@. I'll be waiting.", 50, getitemlink(MoubooSteak)); // A normal Steak could do, but...
+ setq NivalisQuest_Cindy, 2;
+ }
+ close;
+ case 3:
+ mesn;
+ mesq l("That's rude. I never did anything to you.");
+ next;
+ mesn;
+ mesq l("Please get moving, @@. I do not mean any harm to you.", get_race());
+ close;
+ }
+ close;
+
+L_Report:
+ mesn;
+ mesq l("Did you brought us a kind gift of good will, on the worth of %d %s, to offer to our King?", 50, getitemlink(MoubooSteak));
+ next;
+ select
+ rif(countitem(MoubooSteak) >= 50, l("Yes, here they are.")), // Demure was here
+ l("Not yet.");
+ mes "";
+ if (@menu == 2) {
+ mesn;
+ mesq l("Then please bring me this, so I can help you back.");
+ close;
+ }
+ delitem MoubooSteak, 50;
+ getexp 120000, 0; // roughly 30% from needed EXP. This quest IS boring.
+ setq NivalisQuest_Cindy, 3;
+ mesn;
+ mesq l("Great. I hereby task you to kill the rogue Yetis on the Yeti King Throne Room. Of course, you won't be able to leave until all of them are dead.");
+ next;
+ mesn;
+ mesq l("Getting there is tricky, so listen carefully to the instructions:");
+ next;
+L_Instructions:
+ mesn l("ROGUE YETI SLAYING REQUEST");
+ mesc l("Mission: Kill all rogue Yetis on the Throne Room. You won't be able to leave until all of them are dead.");
+ next;
+ mesc l("Directions: ");
+ mesc l("You must flip all 5 switches on this cave, and then walk accross the cave blocked with an etheral crystal.");
+ mesc l("First timers will be lead to somewhere random on this cave to keep intruders out. Just walk there again while all switches are still active.");
+ mesc l("This random cave-warping only happens once, too.");
+ mesc l("The Throne Room is the last room. You can reactive any switch which turns itself off.");
+ next;
+ mesc l("Notes: ");
+ mesc l("To unlock the cell on the middle of the throne room, you need to flip all 5 switches there.");
+ mesc l("You need a @@ to flip the switches on the Throne Room, don't forget to bring at least five.", getitemlink(TreasureKey));
+ mesc l("EVERY switch on EVERY cave will unflip itself after about 2 minutes. So don't waste your time."), 1;
+ mesc l("Keep in mind that %s are weak, baby Yetis, so kill them as well!" % getmonsterlink(Moggun));
+ next;
+ mesn;
+ mesq l("Good luck. %%1");
+ close;
+
+L_Complete:
+ //mesc l("ToDo"), 1;
+ mesn;
+ mesq l("Hello my friend. Thanks for slaying the rogue Yetis.");
+ mesc l("Do you want to read again the instructions?");
+ next;
+ if (askyesno() == ASK_YES) {
+ goto L_Instructions;
+ }
+ close;
+
+// The other NPC
+L_NoQuest:
+ if (TUTORIAL)
+ dispbottom l("I might want to ask an Yeti specialist about this. Maybe Celestia?");
+ dispbottom l("Who's Mercury? Maybe I'm missing something? Where could he have went?");
+ CINDY_PLAYER_STRUCK=true;
+ @yetiagro=@yetiagro+1;
+ if (@yetiagro > 5) goto L_Hit;
+ if (@yetiagro > 3) goto L_Warning;
+ if (@yetiagro > 1) goto L_Disrupt;
+ goto L_Walking;
+
+L_Walking:
+ mesn;
+ mesq l("Grr, where's Mercury... He was supposed to keep watch over this spot... It was meant to be my free time!");
+ next;
+ mesn;
+ mesq l("And you, @@... You better get walking. Soon.", get_race());
+ if (TUTORIAL)
+ mesc l("WARNING: Angela Quest cannot be finished without finishing Mercury sidequest first."), 1;
+ if (!.@n) {
+ mesc l("(...This probably could have been a great hint... if I knew who Mercury in first place %%L)");
+ mesc l("I suggest we ignore the hint and ask %s about it instead.", b("Celestia"));
+ }
+ close;
+
+L_Disrupt:
+ npctalk3 l("Grrr... Why are @@ on this cave?! Where did Mercury went after all?!", get_race());
+ end;
+
+L_Warning:
+ npctalk3 l("Stupid @@, get out of this cave before I lose my patience! Mercury... Show up already!", get_race());
+ end;
+
+L_Hit:
+ npctalk3 l("DIE, SCUM!");
+ @yetiagro=0;
+ percentheal -90, -100;
+ close;
+
+OnInit:
+ .sex=G_OTHER;
+ .distance=20;
+ end;
+}
+
+
+
+
+
+
+/////////////////////////////////////////////////////// Random Lookout Yetis
+021-1,144,203,0 script Yeti#0211Guard NPC_YETI,{
+ dispbottom l("I better don't bother this Yeti, before it kills me.");
+ @yetiagro=@yetiagro+1;
+ if (@yetiagro > 5) goto L_Hit;
+ if (@yetiagro > 3) goto L_Warning;
+ if (@yetiagro > 1) goto L_Disrupt;
+ goto L_Walking;
+
+L_Walking:
+ mesn;
+ mesq l("You, @@... You better get walking. Soon.", get_race());
+ close;
+
+L_Disrupt:
+ mesn;
+ mesq l("Grrr... Why are @@ on this cave?! Begone, before I lose my patience!", get_race());
+ close;
+
+L_Warning:
+ mesn;
+ mesq l("Stupid @@, get out of this cave before I lose my patience!", get_race());
+ close;
+
+L_Hit:
+ mesn;
+ mesq l("DIE, SCUM!");
+ percentheal -90, -100;
+ @yetiagro=0;
+ close;
+
+OnInit:
+ .sex=G_OTHER;
+ .distance=20;
+ end;
+}
+
+
+
+
+//021-1,25,298,0 duplicate(Yeti#0211Guard) Yeti#0211G2 NPC_YETI
+