// TMW2 Scripts // Author: // gumi (TMW Org. Team) // Jesusalva // Description: // Celestia Yeti King's quest. Designed so if you're with 4 players, all 4 can // summon the Yeti King, helping you while doing the quest by themselves. // TODO: OnPCDieEvent must reset quest 012-7,35,49,0 script Celestia NPC_ELF_F,{ .@q1=getq(HurnscaldQuest_Celestia); .@q2=getq(HurnscaldQuest_TeaParty); mesn; mesq lg("Hello, darling. I was thinking in doing a tea party."); if (.@q1) mesc l("You notice that even if she tries to calm down everyone and serve tea, she's pretty distressed with the Monster King herself."); next; mesn strcharinfo(0); menu l("Sorry, I'm more of a coffee person."), L_Coffee, l("What an amazing crown you have! How do I get it?!"), L_Crown, rif(getvaultid() && get_nibble(##03_TMWQUEST, 0) == 2, l("Actually, have you ever heard of Yeti's kidnapping little girls?")), L_VaultQuest, rif(.@q2 == 0 && BaseLevel >= 35, l("Tea party! I want to participate.")), L_TeaQuest, rif(.@q2 == 1, l("I have some sweeties for the Tea Party!")), L_TeaCheck, rif(.@q2 >= 2, l("Tea party! I want to participate.")), L_TeaParty, rif(.@q2 >= 2, l("Do you sell tea?")), L_TeaShop, rif(.@q1 == 0, l("There are Monster Attacks every month, how do you have time for tea parties?!")), L_MainQuest, rif(.@q1 && CINDY_PLAYER_STRUCK && getq(NivalisQuest_Well) < 2, l("I found switches which only a Yeti may flip...")), L_OtherQuest, rif(.@q1 >= 6, l("I want to try convincing the Yeti King again.")), L_MainQuestCore; L_Coffee: mes ""; mesn; mesq l("Hmpf! Coffee is an heresy!"); // Except I love coffee ~ Jesusalva close; L_Crown: mes ""; mesn; mesq l("Ooh, this nice shiny thing? It was an event."); next; mesn; mesq l("Saulc is rich, you know. He challenged a group of thirty NPCs to defeat him, whoever won would get this @@.", getitemlink(MurdererCrown)); next; mesn; mesq l("Well, Andrei Sakar said it was a waste a time, and the other NPCs started fighting against themselves, so I won."); next; mesn; if (BaseLevel < 100) mesq l("...Besides, I have this nice @@ with me. I'm not low-level like you.", getitemlink(BansheeBow)); else mesq l("...Besides, I have this nice @@ with me. It's a reliable bow.", getitemlink(BansheeBow)); close; L_MainQuest: mes ""; mesn; mesc l("Celestia eyes sparkles."); mesq l("Someone who have clear priorities appeared! I'm glad!"); next; mesn; mesq l("You see, most people think that all monsters are controlled by the Monster King, but that's not quite right."); next; mesn; mesq l("Some are just living their own lives. In special, I've spent part of my life studying the Yeti Society."); next; mesn; mesq l("And guess what? They have a King of their own!"); mesq l("If we could convince them to distract the Monster King, we could have chances to do a counter-attack!"); next; mesn; mesq l("But that's not so easy... I already sent many people, and even come myself, but he refuses to help."); next; L_MainQuestCore: mesn; mesq l("Maybe you could convince him. There's a summoning circle on Tulimshar Sewers."); next; mesn; mesq l("Go very close to it and, speak the four four-letters magic words, pour some @@, and he'll appear to you.", getitemlink(EverburnPowder)); next; mesn; mesq l("Don't go alone, though! He would not listen to me, it is not you alone he'll pay attention. You will lose reagents!"); next; mesc l("Accept quest?"); if (askyesno() == ASK_YES) { setq HurnscaldQuest_Celestia, 1; @YetiKing_Challenger=0; mes ""; mesn; mesq l("Good, good. The chant is ##B EMOC OTEM ITEY GNIK ##b. Good luck!"); } close; L_TeaQuest: mes ""; mesn; mesq l("Well, the reason why I'm not doing it already is because, you see, I lack cookies."); if (countitem(DeliciousCookie)) { next; mesn; mesq l("And anyone like you probably already knows that, well... Cookies are life!"); } next; mesn; mesq l("But I can still make it without cookies, as long that you bring me some other sweeties."); next; mesn l("Item List"); mes l("@@/50 @@", countitem(Acorn), getitemlink(Acorn)); mes l("@@/20 @@", countitem(ChocolateMouboo), getitemlink(ChocolateMouboo)); mes l("@@/40 @@", countitem(ChocolateBar), getitemlink(ChocolateBar)); mes l("@@/15 @@", countitem(Candy), getitemlink(Candy)); mes l("@@/15 @@", countitem(OrangeCupcake), getitemlink(OrangeCupcake)); mes l("@@/10 @@", countitem(CherryCake), getitemlink(CherryCake)); mes l("@@/5 @@", countitem(GingerBreadMan), getitemlink(GingerBreadMan)); mes l("@@/2 @@", countitem(ChocolateBiscuit), getitemlink(ChocolateBiscuit)); /* We can't ask for THAT many! mes l("@@/20 @@", countitem(ApanaCake), getitemlink(ApanaCake)); mes l("@@/20 @@", countitem(Mashmallow), getitemlink(Mashmallow)); mes l("@@/20 @@", countitem(TonoriDelight), getitemlink(TonoriDelight)); mes l("@@/20 @@", countitem(EasterEgg), getitemlink(EasterEgg)); mes l("@@/20 @@", countitem(ChocolateBunny), getitemlink(ChocolateBunny)); mes l("@@/20 @@", countitem(FrozenYetiTear), getitemlink(FrozenYetiTear)); mes l("@@/20 @@", countitem(DeliciousCookie), getitemlink(DeliciousCookie)); */ setq HurnscaldQuest_TeaParty, 1; close; L_TeaCheck: mesn l("Item List"); mes l("@@/50 @@", countitem(Acorn), getitemlink(Acorn)); mes l("@@/20 @@", countitem(ChocolateMouboo), getitemlink(ChocolateMouboo)); mes l("@@/40 @@", countitem(ChocolateBar), getitemlink(ChocolateBar)); mes l("@@/15 @@", countitem(Candy), getitemlink(Candy)); mes l("@@/15 @@", countitem(OrangeCupcake), getitemlink(OrangeCupcake)); mes l("@@/10 @@", countitem(CherryCake), getitemlink(CherryCake)); mes l("@@/5 @@", countitem(GingerBreadMan), getitemlink(GingerBreadMan)); mes l("@@/2 @@", countitem(ChocolateBiscuit), getitemlink(ChocolateBiscuit)); next; select l("I will be back shortly."), l("I have all."); mes ""; if (@menu == 1) { closedialog; goodbye; close; } if (countitem(Acorn) < 50 || countitem(ChocolateMouboo) < 20 || countitem(ChocolateBar) < 40 || countitem(Candy) < 15 || countitem(OrangeCupcake) < 15 || countitem(CherryCake) < 10 || countitem(GingerBreadMan) < 5 || countitem(ChocolateBiscuit) < 2) goto L_Lying; inventoryplace CelestiaTea, 3; delitem Acorn, 50; delitem ChocolateMouboo, 20; delitem ChocolateBar, 40; delitem Candy, 15; delitem OrangeCupcake, 15; delitem CherryCake, 10; delitem GingerBreadMan, 5; delitem ChocolateBiscuit, 2; getexp rand(13500, 14500), 0; // level exp cap: 15,775 getitem CelestiaTea, 3; setq HurnscaldQuest_TeaParty, 2, gettimetick(2); mes ""; mesn; mesq l("Many thanks! I'll arrange the table."); close; L_Lying: mesn; mesq l("Wha- How dare you, to lie to me!"); // She'll try to drain all your MP. If you're not MP Full, you'll die. And will have EXP penalty, of course. if (Sp == MaxSp) percentheal 0, -100; else die(); close; // begin: Gumi Script L_TeaParty: .@q2=getq2(HurnscaldQuest_TeaParty); mes ""; mesn; mesq l("Wonderful, I am happy to have you over. Lets get things started with some puerh tea."); next; mesc l("Celestia hands you a cup filled with some type of tea that is unlike anything you have seen before."); mesc l("It has a very dark color and an unusual aroma reminiscent of a moist forest."); next; mesc l("For a moment you wonder if Celestia might have gotten confused and tossed in a handful of forest dirt into the teapot."); mesc l("You ponder whether or not it would be wise to drink it."); menu l("Uh are you sure this is fit to drink?"), L_QuestionTea, l("(Drink the tea, hoping for the best)"), L_DrinkTea; L_DrinkTea: if (.@q2 < gettimetick(2)) { percentheal 0, 100; setq2 HurnscaldQuest_TeaParty, gettimetick(2)+180; } mesc l("To your pleasant surprise the tea is actually quite good."); next; mesc l("Despite its initial dubious fragrance, the tea comes off as very smooth and mellow with a bit of natural sweetness and a touch of an earthy forest like flavour, but in a very good way."); next; mesc l("Clearly an exotic tea, with a refined flavor fit for a refined woman such as Celestia."); close; L_QuestionTea: mesq l("Yes, did you really think I was some kind of monster that would try to poison you in my own house?"); mes l("##a(it would be way too messy anyway)##0"); next; mesc l("Celestia then picks up the cup of tea and drinks it in front of you to demonstrate that it is not only harmless but also quite delectable."); if (.@q2 < gettimetick(2)) { getitem CelestiaTea, 1; setq2 HurnscaldQuest_TeaParty, gettimetick(2)+(60*60*2); } close; // end: Gumi Script L_TeaShop: mesn; mesq l("Well, my tea is just too good."); next; closeclientdialog; npcshopattach(.name$); shop .name$; close; L_OtherQuest: mesn strcharinfo(0); mesq l("Basically, I need to find a friendly Yeti. Do they exist?"); next; mesn; mesq l("Of course. The adviser of the Yeti King, for instance, is very friendly."); next; mesn; mesq l("But he have lots of enemies... It would not surprise me to find him struck somewhere."); next; mesn; mesq l("He usually guards a central position on the caves... He could help you, if he is there."); next; mesn; mesq l("Otherwise, his enemies might have bested him, but I doubt any Yeti would dare to kill him."); next; mesn; mesq l("Wasn't there something on the Holy Bible? About a young boy trapped by his brothers somewhere because envy?"); mesc l("If you don't want to look at the Bible, you can try to solve the following riddle:"); mesc l("\"When you're thristy, you may look for me. I'm often in desert areas, but this time, the winter has come.\""), 3; CINDY_PLAYER_STRUCK=false; next; clear; mesn l("Quest Tip"); mesc l("\"When you're thristy, you may look for me. I'm often in desert areas, but this time, the winter has come.\""), 3; close; // Mirror Lake L_VaultQuest: if (##01_MLWORLD & MLP_TMW_CELESTIA) { mesn; mesq l("Yes, try to summon the Yeti King in Tulimshar Sewers. Make sure you have someone else with you to help."); close; } mesn; mesq l("While I don't think the Yeti King would ever do or endorse that, yes, I've heard this happens."); next; select l("Wait, Yeti's have a king?"), l("I thought they ate little girls."), l("Haha, as if I believe you."); mes ""; if (@menu == 3) close; if (@menu == 2) { mesn; mesq l("What? Don't be ridiculous. Not even the Monster King does that! I think."); next; mesn; mesq l("In other words, I never heard of a Yeti eating a kid before. They prefer %s.", getitemlink(MoubooSteak)); next; } if (@menu == 1) { // Player already know that ¬.¬ if (getq(HurnscaldQuest_Celestia) != 0) { mesn; mesq l("Are you trying to provoke me?"); close; } mesn; mesq l("You see, most people think that all monsters are controlled by the Monster King, but that's not quite right."); next; mesn; mesq l("Some are just living their own lives. In special, I've spent part of my life studying the Yeti Society."); next; mesn; mesq l("And guess what? They have a King of their own!"); next; } mesn; mesq l("Anyway, why do you ask? Surely not to waste my time."); next; select l("[Explain the situation]"), l("[Make up a lie]"); mes ""; mesn; mesq l("...Okay, I asked you to explain, and you ended up wasting my time instead. %%n"); next; mesn; mesq l("Listen, I was trying to get the Yeti King to help me to fight the Monster King. If you want to go there and do it, be my guest; Maybe they'll even help you with whatever your problem is."); if (countitem(MirrorLakeArmor)) mesc l("PS. This char will be reset on logout."); next; select l("Sure, I'll help."), l("No way!"); if (@menu == 2) close; mes ""; mesn; mesq l("Alright. Listen, you'll need %s to summon it, and you cannot be alone. I only have so much of that to share, so be careful to don't use all.", getitemlink(EverburnPowder)); next; if (countitem(MirrorLakeArmor)) { mesn; mesq l("Your weird robes; They seem like they'll deny your damage, so you definitely want to summon multiple people to help. Try the #world tab."); next; } mesn; mesq l("There's a summoning circle on Tulimshar Sewers. You can reach either by boat, if you have the money - I'll lend you some; Or by the long way."); next; mesn; mesq l("Go very close to it and, speak the four four-letters magic words, pour some @@, and he'll appear to you.", getitemlink(EverburnPowder)); next; mesn; mesq l("Don't go alone, though! He would not listen to me, it is not you alone he'll pay attention. You will lose reagents!"); next; ##01_MLWORLD=##01_MLWORLD|MLP_TMW_CELESTIA; Zeny+=400; getitembound(EverburnPowder, 5, 4); setq HurnscaldQuest_Celestia, 1; @YetiKing_Challenger=0; mesq l("The chant is ##B EMOC OTEM ITEY GNIK ##b. Good luck!"); close; OnInit: .@npcId = getnpcid(.name$); setunitdata(.@npcId, UDT_HEADTOP, MurdererCrown); setunitdata(.@npcId, UDT_HEADMIDDLE, ValentineDress); setunitdata(.@npcId, UDT_HEADBOTTOM, NPCEyes); setunitdata(.@npcId, UDT_WEAPON, DeepBlackBoots); // Boots setunitdata(.@npcId, UDT_HAIRSTYLE, 19); setunitdata(.@npcId, UDT_HAIRCOLOR, 10); npcsit; .sex = G_FEMALE; .distance = 5; tradertype(NST_MARKET); sellitem CelestiaTea, -1, 1; sellitem YerbaMate, -1, 2; sellitem JasmineTea, -1, 3; sellitem OolongTea, -1, 4; sellitem SpearmintTea, -1, 5; sellitem ChamomileTea, -1, 10; end; OnClock0002: restoreshopitem CelestiaTea, 1; restoreshopitem YerbaMate, 2; restoreshopitem JasmineTea, 3; restoreshopitem OolongTea, 4; restoreshopitem SpearmintTea, 5; restoreshopitem ChamomileTea, 10; end; }