summaryrefslogtreecommitdiff
path: root/world/map/npc/009-2/bernard.txt
diff options
context:
space:
mode:
authorWushin <pasekei@gmail.com>2015-01-07 21:25:14 -0600
committerWushin <pasekei@gmail.com>2015-01-07 21:25:14 -0600
commitb734af239e8ff1e7ea746ea327fb84c62be09b7e (patch)
treecbc5f399ccf8dd226056887a70b9a313f88bee6e /world/map/npc/009-2/bernard.txt
parent2c09797ebd2c03b2cbe9a458f8ea8d1fbd04ccff (diff)
parent61c88ec162713b980f30e6e5111c1cfbd9f23d3a (diff)
downloadserverdata-b734af239e8ff1e7ea746ea327fb84c62be09b7e.tar.gz
serverdata-b734af239e8ff1e7ea746ea327fb84c62be09b7e.tar.bz2
serverdata-b734af239e8ff1e7ea746ea327fb84c62be09b7e.tar.xz
serverdata-b734af239e8ff1e7ea746ea327fb84c62be09b7e.zip
Merge pull request #223 from wushin/moving-tutorial
Move Tutorial to Hurnscald
Diffstat (limited to 'world/map/npc/009-2/bernard.txt')
-rw-r--r--world/map/npc/009-2/bernard.txt141
1 files changed, 141 insertions, 0 deletions
diff --git a/world/map/npc/009-2/bernard.txt b/world/map/npc/009-2/bernard.txt
new file mode 100644
index 00000000..307e7591
--- /dev/null
+++ b/world/map/npc/009-2/bernard.txt
@@ -0,0 +1,141 @@
+// Variables used: nibble 0 of QUEST_SouthTulimshar
+
+009-2.gat,67,79,0|script|Bernard|117
+{
+ // This NPC previously used the variable TMW_Quest
+ callfunc "ClearVarTMW_Quest";
+
+ set @state, ((QUEST_SouthTulimshar & NIBBLE_0_MASK) >> NIBBLE_0_SHIFT);
+
+ if (@state >= 6) goto L_Done3;
+ if (@state >= 4) goto L_Done2;
+ if (@state == 3) goto L_Progress2;
+ if (@state == 2) goto L_Done1;
+ if (@state == 1) goto L_Progress;
+
+ set @TEMP, rand(2);
+ if(@TEMP == 1) goto L_Opening1;
+ goto L_Opening0;
+
+L_Opening0:
+ mes "[Bernard]";
+ mes "\"The fields are crawling with maggots. Where is Mikhail? What is taking them so long?";
+ mes "Could I ask a favor of you?\"";
+ next;
+ goto L_Ask;
+
+L_Opening1:
+ mes "[Bernard]";
+ mes "\"The taste of maggots in soup is... unforgettable, they taste simply divine!";
+ mes "I sent someone to kill me some maggots and they have yet to return. Would you help me kill some?\"";
+ next;
+ goto L_Ask;
+
+L_Ask:
+ menu
+ "Yes.", L_Yes,
+ "No.", L_Close;
+
+L_Yes:
+ set @TEMP, rand(2);
+ if(@TEMP == 1) goto L_Req1;
+ goto L_Req0;
+
+L_Req0:
+ mes "[Bernard]";
+ mes "\"Great! I need a Roasted Maggot for my soup.\"";
+ next;
+ goto L_Set;
+
+L_Req1:
+ mes "[Bernard]";
+ mes "\"Bring me a Roasted Maggot. I'll give you something if you do.\"";
+ next;
+ goto L_Set;
+
+L_Set:
+ set @state, 1;
+ callsub S_Update_Var;
+ mes "[Bernard]";
+ mes "\"Please bring it to me!\"";
+ goto L_Close;
+
+L_Progress:
+ if (countitem("RoastedMaggot") < 1) goto L_NotEnough;
+ mes "[Bernard]";
+ mes "\"Oooh, perfect! It's perfect!";
+ mes "You brought me my Roasted Maggot! Here, have some cake for your troubles.\"";
+ getinventorylist;
+ if (@inventorylist_count - (countitem("RoastedMaggot") == 1) > 99 - (countitem("CherryCake") == 0) ) goto L_TooMany;
+ delitem "RoastedMaggot", 1;
+ getexp 100, 0;
+ getitem "CherryCake", 5;
+ set @state, 2;
+ callsub S_Update_Var;
+ next;
+ mes "\"Now let's see...\"";
+ goto L_Close;
+
+L_Progress2:
+ if (countitem("MaggotSlime") < 3) goto L_NotEnough1;
+ mes "[Bernard]";
+ mes "\"Nice! They're perfect, just perfect!";
+ mes "You brought me the 3 Maggot Slimes! Here, have some beer as reward.\"";
+ getinventorylist;
+ if ((@inventorylist_count - (countitem("MaggotSlime") == 3) > 99 - (countitem("Beer") == 0) )) goto L_TooMany;
+ delitem "MaggotSlime", 3;
+ getexp 100, 0;
+ getitem "Beer", 3;
+ set @state, 4;
+ callsub S_Update_Var;
+ goto L_Close;
+
+L_NotEnough:
+ mes "[Bernard]";
+ mes "\"Oh, please hurry and bring me a Roasted Maggot. I'm yearning for maggot soup!\"";
+ goto L_Close;
+
+L_NotEnough1:
+ mes "[Bernard]";
+ mes "\"Please do hurry and bring me 3 Maggot Slimes, so I can finish my soup!\"";
+ goto L_Close;
+
+L_Done1:
+ mes "[Bernard]";
+ mes "\"Thank you so much!\"";
+ mes "\"But... something is missing to make the soup creamy.\"";
+ next;
+ mes "\"I need 3 Maggot Slimes for that.\"";
+ mes "\"Bring them to me, and I'll give you something nice.\"";
+ set @state, 3;
+ callsub S_Update_Var;
+ goto L_Close;
+
+L_Done2:
+ mes "[Bernard]";
+ mes "\"I didn't mention it before, but I also put beer in my soup. I hope you like beer as much as I do, because, you see...\"";
+ next;
+ mes "\"Beer is life!\"";
+ goto L_Close;
+
+L_Done3:
+ mes "[Bernard]";
+ mes "\"My help, Mikhail, finally returned with the slimes I needed.";
+ mes "I wonder what took him so long?\"";
+ goto L_Close;
+
+L_Close:
+ set @TEMP, 0;
+ set @state, 0;
+ close;
+
+L_TooMany:
+ next;
+ mes "[Bernard]";
+ mes "\"You don't have room for my reward. I'll wait until you do.\"";
+ goto L_Close;
+
+S_Update_Var:
+ set QUEST_SouthTulimshar, (QUEST_SouthTulimshar & ~(NIBBLE_0_MASK) | (@state << NIBBLE_0_SHIFT));
+ return;
+}