summaryrefslogtreecommitdiff
path: root/npc
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2018-10-22 11:51:12 -0200
committerJesusaves <cpntb1@ymail.com>2018-10-22 11:51:12 -0200
commitc2143b37b2308b47f7b0bb087c18227162c1f734 (patch)
tree5f753fb04a5f78cbf36e1f2a90b156960ac34fd8 /npc
parent327d5b2ab7d6c66054fabf4b954017ea557206f3 (diff)
downloadserverdata-c2143b37b2308b47f7b0bb087c18227162c1f734.tar.gz
serverdata-c2143b37b2308b47f7b0bb087c18227162c1f734.tar.bz2
serverdata-c2143b37b2308b47f7b0bb087c18227162c1f734.tar.xz
serverdata-c2143b37b2308b47f7b0bb087c18227162c1f734.zip
Prepare Cindy Cave rules and logic
Diffstat (limited to 'npc')
-rw-r--r--npc/019-2/angela.txt4
-rw-r--r--npc/021-1/logic.txt6
-rw-r--r--npc/021-1/yeti.txt111
3 files changed, 117 insertions, 4 deletions
diff --git a/npc/019-2/angela.txt b/npc/019-2/angela.txt
index 0d0eec495..446773e94 100644
--- a/npc/019-2/angela.txt
+++ b/npc/019-2/angela.txt
@@ -24,8 +24,8 @@
// 0: Quest Not Started
// 1: Angela assigned the quest
// 2: Yeti instructions were received
-// 3: Must return to Yeti
-// 4: Path was unlocked
+// 3: Yeti quest complete, received instructions
+// 4: Checkpoint
// 5: Cindy was rescued!
//
// Global Variable: $@CINDY_STATE
diff --git a/npc/021-1/logic.txt b/npc/021-1/logic.txt
index 0b0a7d75a..fe2567bd6 100644
--- a/npc/021-1/logic.txt
+++ b/npc/021-1/logic.txt
@@ -3,8 +3,9 @@
// The Mana World Team
// Jesusalva
// Description:
-// Cave logic. Controls also switchs and false warps.
+// Cave logic. Controls also switchs and false warps. See soren/main for more info.
+// Passages
021-1,155,196,0 script #MainCindyLogic NPC_NO_SPRITE,0,0,{
end;
OnTouch:
@@ -31,3 +32,6 @@ OnTouch:
end;
}
+
+// Other
+
diff --git a/npc/021-1/yeti.txt b/npc/021-1/yeti.txt
index 258dc94c0..95b89decc 100644
--- a/npc/021-1/yeti.txt
+++ b/npc/021-1/yeti.txt
@@ -16,8 +16,12 @@
// a special behavior or not.
.@q=getq(NivalisQuest_Cindy);
- // if (.@q == 999) goto L_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;
@@ -28,6 +32,111 @@
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 100 @@. 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 100 @@, to offer to our King?");
+ next;
+ select
+ rif(countitem(MoubooSteak) >= 100, l("Yes, here they are.")),
+ l("Not yet.");
+ mes "";
+ if (@menu == 2) {
+ mesn;
+ mesq l("Then please bring me this, so I can help you back.");
+ close;
+ }
+ delitem MoubooSteak, 100;
+ 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("It'll lead you to somewhere random on this cave to keep intruders out. Just walk there again while all switches are still active.");
+ 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 Treasure Key to flip each switch, regardless of which cave it is in.");
+ mesc l("EVERY switch on EVERY cave will unflip itself after 2 minutes. So don't waste your time."), 1;
+ next;
+ mesn;
+ mesq l("Good luck. %%1");
+ close;
+
+L_Complete:
+ mesc l("ToDo"), 1;
+ close;
+
+// The other NPC
L_NoQuest:
@yetiagro=@yetiagro+1;
if (@yetiagro > 5) goto L_Hit;