diff options
-rw-r--r-- | db/quest_db.conf | 4 | ||||
-rw-r--r-- | db/re/item_db.conf | 18 | ||||
-rw-r--r-- | db/re/mob_db.conf | 20 | ||||
-rw-r--r-- | npc/003-1-1/yetiking.txt | 1 | ||||
-rw-r--r-- | npc/012-7/_import.txt | 1 | ||||
-rw-r--r-- | npc/012-7/celestia.txt | 199 |
6 files changed, 225 insertions, 18 deletions
diff --git a/db/quest_db.conf b/db/quest_db.conf index 0878a8bb0..0c7f10e4c 100644 --- a/db/quest_db.conf +++ b/db/quest_db.conf @@ -212,6 +212,10 @@ quest_db: ( Id: 93 Name: "HurnscaldQuest_Celestia" }, +{ + Id: 94 + Name: "HurnscaldQuest_TeaParty" +}, // ID 111 to 130: Nivalis Quests // ID 131 to 150: Frostia Quests diff --git a/db/re/item_db.conf b/db/re/item_db.conf index fe3ff75eb..1dd138657 100644 --- a/db/re/item_db.conf +++ b/db/re/item_db.conf @@ -1550,9 +1550,9 @@ item_db: ( Delay: 500 UseEffect: "EFFECT_HEAL" Script: <" - @min = 4; - @max = 400; - @delay = 3; + @min = 500; + @max = 700; + @delay = 5; @type = 1; doevent "rand_sc_heal::OnUse"; "> @@ -3084,7 +3084,7 @@ item_db: ( }, { Id: 783 - AegisName: "TetiClaw" + AegisName: "YetiClaw" Name: "Yeti Claw" Type: "IT_ETC" Buy: 15 @@ -9533,15 +9533,11 @@ item_db: ( Delay: 500 UseEffect: "EFFECT_HEAL" Script: <" - if (@useType == 1) - { - if (!getmapxy(.@map$, .@x, .@y, 0)) - { + if (@useType == 1) { + if (!getmapxy(.@map$, .@x, .@y, 0)) { monster(.@map$, .@x, .@y, l("Oak"), 1017, 1); } - } - else - { + } else { @min = 8; @max = 30; @delay = 3; diff --git a/db/re/mob_db.conf b/db/re/mob_db.conf index 614aa5349..44d91d97e 100644 --- a/db/re/mob_db.conf +++ b/db/re/mob_db.conf @@ -229,6 +229,7 @@ mob_db: ( DamageMotion: 480 MvpExp: 0 Drops: { + ChocolateBiscuit: 10000 TortugaShellFragment: 1880 LettuceLeaf: 1800 TortugaTongue: 1000 @@ -810,6 +811,7 @@ mob_db: ( CasinoCoins: 400 RedApple: 350 MoubooSteak: 200 + ChocolateMouboo: 100 MoubooHat: 1 } }, @@ -1691,6 +1693,7 @@ mob_db: ( MvpExp: 0 Drops: { CasinoCoins: 550 + GingerBreadMan: 440 PileOfAsh: 220 RoastedMaggot: 150 } @@ -1778,6 +1781,7 @@ mob_db: ( MvpExp: 0 Drops: { CasinoCoins: 1200 + ChocolateMouboo: 800 RedApple: 400 MoubooSteak: 215 GoldOre: 100 @@ -1910,7 +1914,8 @@ mob_db: ( DamageMotion: 200 MvpExp: 0 Drops: { - DarkEggshellHat: 5 + ChocolateBiscuit: 800 + DarkEggshellHat: 3 } }, { @@ -2221,9 +2226,10 @@ mob_db: ( MvpExp: 0 Drops: { MushroomSpores: 950 - SmallMushroom: 600 Plushroom: 800 + SmallMushroom: 600 Chagashroom: 400 + ChocolateBiscuit: 350 Sapphire: 5 } }, @@ -2695,6 +2701,7 @@ mob_db: ( MvpExp: 0 Drops: { //DarCrystal: 700 + ChocolateBiscuit: 650 Skull: 250 LeatherShirt: 200 Bone: 110 @@ -2747,6 +2754,7 @@ mob_db: ( MvpExp: 0 Drops: { //DarCrystal: 700 + ChocolateBiscuit: 650 Skull: 250 LeatherShirt: 200 Bone: 110 @@ -3252,9 +3260,9 @@ mob_db: ( Exp: 16 JExp: 4 AttackRange: 1 - Attack: [35, 40] + Attack: [55, 80] Def: 2 - Mdef: 7 + Mdef: 70 Stats: { Str: 9 Agi: 26 @@ -3280,8 +3288,8 @@ mob_db: ( MvpExp: 0 Drops: { Coal: 500 - IronOre: 450 - GoldOre: 400 + IronOre: 350 + GoldOre: 300 CactusDrink: 350 CactusPotion: 250 OrangeCupcake: 200 diff --git a/npc/003-1-1/yetiking.txt b/npc/003-1-1/yetiking.txt index ab3bfba19..559a3d427 100644 --- a/npc/003-1-1/yetiking.txt +++ b/npc/003-1-1/yetiking.txt @@ -5,7 +5,6 @@ // 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 // setnpcdisplay getarg(0), NPC_YETI_KING 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; + +} |