summaryrefslogtreecommitdiff
path: root/npc/001-2/pauline.txt
diff options
context:
space:
mode:
Diffstat (limited to 'npc/001-2/pauline.txt')
-rw-r--r--npc/001-2/pauline.txt257
1 files changed, 257 insertions, 0 deletions
diff --git a/npc/001-2/pauline.txt b/npc/001-2/pauline.txt
new file mode 100644
index 00000000..992a371a
--- /dev/null
+++ b/npc/001-2/pauline.txt
@@ -0,0 +1,257 @@
+
+001-2,77,78,0 script Pauline NPC208,{
+
+ @Pauline_MASK = NIBBLE_4_MASK;
+ @Pauline_SHIFT = NIBBLE_4_SHIFT;
+
+ @pauline_state = ((QUEST_MAGIC2 & @Pauline_MASK) >> @Pauline_SHIFT);
+
+
+ @pauline_REWARD = 10000;
+
+ if (@pauline_state == 4) goto L_MoreMagic;
+ if (@pauline_state == 3) goto L_KnowIngredientsPinkie;
+ if (@pauline_state == 2) goto L_Ingredients;
+ if (@pauline_state == 1) goto L_Back;
+
+ if (getskilllv(SKILL_MAGIC_ASTRAL) > 0)
+ goto L_Magic;
+ mesn;
+ mes "\"I've mastered several schools of magic and fought the Yeti in Kaizei.\"";
+ next;
+ mes "\"The path of magic is a long and difficult one.\"";
+ goto L_close;
+
+L_Magic:
+ mesn;
+ mes "\"Ah. I see you are skilled in the Art of Astral Magic.\"";
+ mes "\"Who taught you?\"";
+ menu
+ "I learnt it myself!", L_Next,
+ "Sagatha is my teacher.", L_Sagatha,
+ "You must be mistaken.", L_close;
+
+L_Next:
+ mes "\"You did? Not bad. I guess then there is nothing I can teach you. Or are you interested in sharing knowledge?\"";
+ menu
+ "Yes, please.", L_Spells,
+ "No, thanks.", L_close;
+
+L_Sagatha:
+ mesn;
+ mes "\"Ah, that Witch!\"";
+ mes "\"Very well.\"";
+ next;
+ mes "\"Do you want me to teach you things Sagatha doesn't know yet?\"";
+ next;
+ menu
+ "Yes.", L_Spells,
+ "No.", L_close;
+
+L_Back:
+ mesn;
+ mes "\"So, you're back. Are you ready to share knowledge now?\"";
+ menu
+ "Yes.", L_Spells,
+ "No.", L_close;
+
+L_Spells:
+ @pauline_state = 1;
+ callsub S_Update_Mask;
+ mesn;
+ mes "\"Okay.\"";
+ mes "\"Not long ago I discovered some new caves near Tulimshar. In an abandond chamber I found some paintings on the wall.\"";
+ next;
+ mes "\"They weren't typical for this region, so I examined them closely. I found some invocations I have never heard before.\"";
+ mes "\"I thought that they would fit better into the Woodland area. I could only decipher two invocations so far. Those are two spells used to summon creatures.\"";
+ next;
+ mes "\"One was for summoning Mouboos and the other one was for summoning Pinkies.\"";
+ mes "\"Have you ever heared about those?\"";
+ next;
+ menu
+ "Yes. I thought you had something new to tell. [Walk Away]", L_close,
+ "No, tell me more.", L_Next1;
+
+L_Next1:
+ mesn;
+ mes "\"Well I could only read the invocations. So I don't exactly know what kind of ingredients you are going to need.\"";
+ mesq l("\"The first one for the mouboo was %s and the one for the pinkie was %s.", b("Kalboo"), b("Kalgina"));
+ next;
+ mes "\"For the pinkie spell my suggestion is to try similar ingredients to the other Astral spells. Try a root and some item typical for pinkies.\"";
+ mes "\"The mouboo spell might be more complicated. From what I could translate, one of the spell components is crafted by magic.\"";
+ next;
+ mes "\"When you find the right ingredients, come back and bring them to me to try those spells out.\"";
+ next;
+ mesq l("Goodbye.");
+ @pauline_state = 2;
+ callsub S_Update_Mask;
+ goto L_close;
+
+L_Ingredients:
+ mesn;
+ mes "\"Hello, have you found out what ingredients to use yet?\"";
+ menu
+ "Yes.", L_KnowIngredientsMouboo,
+ "No.", L_Next2;
+
+L_Next2:
+ mes "\"Okay. Come back as soon as you know.\"";
+ goto L_close;
+
+L_KnowIngredientsMouboo:
+ mes "\"Did you bring them?\"";
+ menu
+ "Yes." , L_Next3,
+ "No.", L_ComeBackLater;
+
+L_Next3:
+ mesq l("Then tell me the ingredients for the mouboo summoning spell and give them to me. Start with the first ingredient and then tell me the second one separately.");
+ mes "##B" + l("Drag and drop an item from your inventory.") + "##b";
+ next;
+ .@it1 = requestitem();
+ mes l("Next ingredient.");
+ mes "##B" + l("Drag and drop an item from your inventory.") + "##b";
+ .@it2 = requestitem();
+
+ if (.@it1 < 1 || .@it2 < 1)
+ goto L_Wrong;
+ if (countitem(.@it1) < 1 || countitem(.@it2) < 1)
+ goto L_NotEnough;
+ mesq l("Do you want to give me these items?");
+ menu
+ l("No."), L_ComeBackLater,
+ l("Yes."), L_Next4;
+
+L_Next4:
+ delitem .@it1, 1;
+ delitem .@it2, 1;
+ mesq l("Okay let me try this.");
+ if ((.@it1 == Root && .@it2 == MoubooFigurine) ||
+ (.@it1 == MoubooFigurine && .@it2 == Root))
+ goto L_TrySpellMouboo;
+
+ mesc l("The Witch takes %s and %s and put them togheter calling %s.", getitemlink(.@it1), getitemlink(.@it2), b("kalboo"));
+ mesc l("Nothing happens.");
+ mesn;
+ mesq l("It seems you did not tell me the correct ingredients. Come back when you find the correct ones.");
+ goto L_close;
+
+L_TrySpellMouboo:
+ mesc l("The Witch takes %s and %s and put them togheter calling %s.", getitemlink(.@it1), getitemlink(.@it2), b("kalboo"));
+ monster "001-1", 55,68, "Good", Mouboo, 1;
+ mesn;
+ mesq l("It worked!");
+ @pauline_state = 3;
+ callsub S_Update_Mask;
+ getexp @pauline_REWARD, 0;
+ goto L_close;
+
+L_KnowIngredientsPinkie:
+ mes "##B" + l("Drag and drop an item from your inventory.") + "##b";
+ next;
+ .@it1 = requestitem();
+ mes l("Next ingredient.");
+ mes "##B" + l("Drag and drop an item from your inventory.") + "##b";
+ .@it2 = requestitem();
+
+ if (.@it1 < 1 || .@it2 < 1)
+ goto L_Wrong;
+ if (countitem(.@it1) < 1 || countitem(.@it2) < 1)
+ goto L_NotEnough;
+ mesq l("Do you want to give me these items?");
+ menu
+ "No.", L_ComeBackLater,
+ "Yes.", L_Next5;
+
+L_Next5:
+ delitem .@it1, 1;
+ delitem .@it2, 1;
+ mesq l("Okay let me try this.");
+ if ((.@it1 == Root && .@it2 == PinkAntenna) ||
+ (.@it1 == PinkAntenna && .@it2 == Root))
+ goto L_TrySpellPinkie;
+
+ mesc l("The Witch takes %s and %s and put them togheter calling %s.", getitemlink(.@it1), getitemlink(.@it2), b("kalgina"));
+ mesc l("Nothing happens.");
+ mesn;
+ mesq l("It seems you did not tell me the correct ingredients. Come back when you find the correct ones.");
+ goto L_close;
+
+
+L_TrySpellPinkie:
+ mesc l("The Witch takes %s and %s and put them togheter calling %s.", getitemlink(.@it1), getitemlink(.@it2), b("kalgina"));
+ monster "001-1", 54,68, "Good", Pinkie, 1;
+ mesn;
+ mesq l("It worked!");
+ @pauline_state = 4;
+ callsub S_Update_Mask;
+ getexp @pauline_REWARD, 0;
+ goto L_close;
+
+L_MoreMagic:
+ mesn;
+ mes "\"Thanks for telling me the ingredients. As soon as I find out more about those wall paintings I will let you know.\"";
+ goto L_close;
+
+L_Wrong:
+ mes "The Witch looks at you and snorts.";
+ mesn;
+ mes "\"You told me the wrong ingredients. Come back as soon as you know the correct ones.\"";
+ goto L_close;
+
+L_NotEnough:
+ mesn;
+ mes "\"Hey, you don't have this with you!\"";
+ mes "\"Come back when you have the right ingredients.\"";
+ goto L_close;
+
+L_ComeBackLater:
+ mesn;
+ mes "\"Then come back later.\"";
+ goto L_close;
+
+L_close:
+ @pauline_ingredient1$ = "";
+ @pauline_ingredient2$ = "";
+ cleararray @items$, "", getarraysize(@items$);
+ cleararray @item_names$, "", getarraysize(@item_names$);
+ @pauline_state = 0;
+ @pauline_REWARD = 0;
+ close;
+
+S_Update_Mask:
+ QUEST_MAGIC2 = (QUEST_MAGIC2 & ~(@Pauline_MASK)) | (@pauline_state << @Pauline_SHIFT);
+ return;
+}
+
+001-2,79,74,0 script PaulineDebug NPC208,{
+ @Pauline_MASK = NIBBLE_4_MASK;
+ @Pauline_SHIFT = NIBBLE_4_SHIFT;
+
+ @pauline_state = ((QUEST_MAGIC2 & @Pauline_MASK) >> @Pauline_SHIFT);
+
+ mes "Reset Quest State";
+ mes @pauline_state;
+ menu
+ "Yes.", L_Next,
+ "No.", L_close;
+
+L_Next:
+ @pauline_state = 0;
+ callsub S_Update_Mask;
+ mes "Done";
+ close;
+
+L_close:
+ @pauline_state = 0;
+ close;
+
+S_Update_Mask:
+ QUEST_MAGIC2 = (QUEST_MAGIC2 & ~(@Pauline_MASK)) | (@pauline_state << @Pauline_SHIFT);
+ return;
+
+OnInit:
+ if (!debug)
+ disablenpc "PaulineDebug";
+ end;
+}