diff options
Diffstat (limited to 'npc/012-7')
-rw-r--r-- | npc/012-7/_import.txt | 1 | ||||
-rw-r--r-- | npc/012-7/celestia.txt | 199 |
2 files changed, 200 insertions, 0 deletions
diff --git a/npc/012-7/_import.txt b/npc/012-7/_import.txt index 1f927ce5f..f38d358e6 100644 --- a/npc/012-7/_import.txt +++ b/npc/012-7/_import.txt @@ -1,3 +1,4 @@ // Map 012-7: Town Hall // This file is generated automatically. All manually added changes will be removed when running the Converter. "npc/012-7/_warps.txt", +"npc/012-7/celestia.txt", diff --git a/npc/012-7/celestia.txt b/npc/012-7/celestia.txt new file mode 100644 index 000000000..28a85324e --- /dev/null +++ b/npc/012-7/celestia.txt @@ -0,0 +1,199 @@ +// 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,94,21,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."); + 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(.@q2 == 0 && BaseLevel > 30, 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(.@q1 == 0, l("How do you have time for tea parties?!")), L_MainQuest, + rif(.@q1 == 99, l("I want to try again.")), L_MainQuest; + +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 crown."); + 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 < 90) + 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: + if (is_admin()) + setq HurnscaldQuest_Celestia, 1; + mesn; + mes col("TODO, please report this error to Jesusalva.", 1); + close; + +L_TeaQuest: + mes ""; + mesn; + mesq l("Well, the reason why I'm not doing it already is because, you see, I lack cookies."); + //next; + //mesn; + //mesq l("And anyone who hanged out on #evol-dev 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("@@/20 @@", countitem(Acorn), getitemlink(Acorn)); + mes l("@@/20 @@", countitem(ChocolateMouboo), getitemlink(ChocolateMouboo)); + mes l("@@/20 @@", 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(Lollipop), getitemlink(Lollipop)); + 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("@@/20 @@", countitem(Acorn), getitemlink(Acorn)); + mes l("@@/20 @@", countitem(ChocolateMouboo), getitemlink(ChocolateMouboo)); + mes l("@@/20 @@", 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."); + + if (@menu == 1) { + closedialog; + goodbye; + close; + } + if (countitem(Acorn) < 20 || + countitem(ChocolateMouboo) < 20 || + countitem(ChocolateBar) < 20 || + countitem(Candy) < 15 || + countitem(OrangeCupcake) < 15 || + countitem(CherryCake) < 10 || + countitem(GingerBreadMan) < 5 || + countitem(ChocolateBiscuit) < 2) + goto L_Lying; + + delitem Acorn, 20; + delitem ChocolateMouboo, 20; + delitem ChocolateBar, 20; + delitem Candy, 15; + delitem OrangeCupcake, 15; + delitem CherryCake, 10; + delitem GingerBreadMan, 5; + delitem ChocolateBiscuit, 2; + + getexp rand(12000, 13000), 0; + setq HurnscaldQuest_TeaParty, 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 + percentheal -100, 0; + close; + +// begin: Gumi Script +L_TeaParty: + mes ""; + mesn; + mesq l("Wonderful, I am happy to have you over. Lets get things started with some puerh tea."); + next; + mes col("Celestia hands you a cup filled with some type of tea that is unlike anything you have seen before.", 9); + mes col("It has a very dark color and an unusual aroma reminiscent of a moist forest.", 9); + next; + mes col("For a moment you wonder if Celestia might have gotten confused and tossed in a handful of forest dirt into the teapot.", 9); + mes col("You ponder whether or not it would be wise to drink it.", 9); + 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: + // This is easily exploitable on purpose: It's mostly to protect against flood. + if (@tmp_teatime < gettimetick(2)) { + percentheal 0, 15; + @tmp_teatime=gettimetick(2)+140; + } + mes col("To your pleasant surprise the tea is actually quite good.", 9); + next; + mes col("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.", 9); + next; + mes col("Clearly an exotic tea, with a refined flavor fit for a refined woman such as Celestia.", 9); + 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; + mes col("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.", 9); + close; +// end: Gumi Script + + +OnInit: + .@npcId = getnpcid(0, .name$); + setunitdata(.@npcId, UDT_HEADTOP, ValentineDress); + setunitdata(.@npcId, UDT_HEADMIDDLE, MurdererCrown); + setunitdata(.@npcId, UDT_HEADBOTTOM, NPCEyes); + setunitdata(.@npcId, UDT_WEAPON, DeepBlackBoots); // Boots + setunitdata(.@npcId, UDT_HAIRSTYLE, 19); + setunitdata(.@npcId, UDT_HAIRCOLOR, 10); + + .sex = G_FEMALE; + .distance = 5; + +} |