// 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 60 @@. I'll be waiting.", 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;
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:
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());
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