001-2,77,78,0 script Pauline NPC208,{ if (getq(MagicQuest_Pauline) == 4) goto L_MoreMagic; if (getq(MagicQuest_Pauline) == 3) goto L_KnowIngredientsPinkie; if (getq(MagicQuest_Pauline) == 2) goto L_Ingredients; if (getq(MagicQuest_Pauline) == 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.\""; 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: setq(MagicQuest_Pauline, 1); 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."); setq(MagicQuest_Pauline, 2); 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.\""; 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."); 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!"); setq(MagicQuest_Pauline, 3); getexp .reward, 0; 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."); 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!"); setq(MagicQuest_Pauline, 4); getexp .reward, 0; 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.\""; 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.\""; close; L_NotEnough: mesn; mes "\"Hey, you don't have this with you!\""; mes "\"Come back when you have the right ingredients.\""; close; L_ComeBackLater: mesn; mes "\"Then come back later.\""; close; L_close: closeclientdialog; close; OnInit: .distance = 8; .reward = 10000; end; } 001-2,79,74,0 script PaulineDebug NPC208,{ mes "Reset Quest State"; mes getq(MagicQuest_Pauline); menu "Yes.", L_Next, "No.", L_close; L_Next: setq(MagicQuest_Pauline, 0); mes "Done"; close; L_close: close; OnInit: if (!debug) disablenpc "PaulineDebug"; end; }