From e26b2ceb37b86e590caa4366dab367a7026b9370 Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Sun, 17 Oct 2021 13:43:05 -0300 Subject: The Mana Tree Quest --- npc/025-2-4/tree.txt | 14 ++++++- npc/029-0/_import.txt | 1 + npc/029-0/amelia.txt | 106 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 119 insertions(+), 2 deletions(-) create mode 100644 npc/029-0/amelia.txt (limited to 'npc') diff --git a/npc/025-2-4/tree.txt b/npc/025-2-4/tree.txt index 08dc03f1c..4d22ee54e 100644 --- a/npc/025-2-4/tree.txt +++ b/npc/025-2-4/tree.txt @@ -29,8 +29,18 @@ function manatreeOff { } function manatreeAgain { - mesc l("...for now."); - // TODO: getitem Manapple, 1; // Maybe can obtain one daily/weekly? + .@t = getq3(FortressQuest_ManaTree); + if (.@t > gettimeparam(GETTIME_DAYOFMONTH)) { + mesc l("...for now."); + next; + return; + } + // Can be obtained every 3 days + inventoryplace Manapple, 1; + mesc l("The tree generously offer you one of its fruits."); + mesc l("You gladly accept it. But probably better not disturb it for a few days."); + setq3 FortressQuest_ManaTree, gettimeparam(GETTIME_DAYOFMONTH)+3; + getitem Manapple, 1; next; return; } diff --git a/npc/029-0/_import.txt b/npc/029-0/_import.txt index 18816bb55..56beb849d 100644 --- a/npc/029-0/_import.txt +++ b/npc/029-0/_import.txt @@ -1,6 +1,7 @@ // Map 029-0: Artis // This file is generated automatically. All manually added changes will be removed when running the Converter. "npc/029-0/_mobs.txt", +"npc/029-0/amelia.txt", "npc/029-0/elora.txt", "npc/029-0/event.txt", "npc/029-0/mobs.txt", diff --git a/npc/029-0/amelia.txt b/npc/029-0/amelia.txt new file mode 100644 index 000000000..1d7fe3626 --- /dev/null +++ b/npc/029-0/amelia.txt @@ -0,0 +1,106 @@ +// TMW2 Scripts +// Author: +// Jesusalva +// Description: +// The Mana Tree Quest (unlocks after Fires of Steam events) + +029-0,30,129,0 script Amelia NPC_CHILD4,{ + .@q = getq(FortressQuest_ManaTree); + .@q2 = getq2(FortressQuest_ManaTree); + + // Cycle + if (.@q == 0) goto L_Start; + if (.@q == 1) goto L_Cheerful; + if (.@q == 2) goto L_Short; + + // Generic reply + npctalk3 l("*sigh*"); + end; + +L_Start: + mesc l("The kid is not paying attention to you."); + if ($FIRESOFSTEAM < 10) end; + mesc l("She is staring at the empty sea and sighing. She seems to be really down after Andrei Sakar passed away."); + next; + mesc l("Maybe we can give her something, to cheer her up?"); + mes "##B" + l("Drag and drop an item from your inventory.") + "##b"; + + .@id = requestitem(); + + // No item supplied + if (.@id < 1) { + closeclientdialog; + end; + } + + if (array_find(.gifts, .@id) < 0) { + mesc l("This doesn't looks like a gift."); + mesc l("Maybe we could give her a %s instead.", getitemlink(any(Doll, PlushMouboo, LeatherBall, ReinbooWand, SantaGlobe, RubberDucky, CandorBola))); // Suggest only the most rare and expensive toys + } + mesc l("Really give the %s to %s?", getitemlink(.@id), .name$), 1; + mesc b(l("The item will be lost forever!")), 1; + next; + if (askyesno() != ASK_YES) { + closeclientdialog; + end; + } + delitem .@id, 1; + getexp 27000, 0; // 1% of Level 80 EXP + setq FortressQuest_ManaTree, 1, .@id; + mesn; + mesq l("...Thanks, kind person."); + next; + mesn; + mesq l("My name is Amelia, and I am Elora's daughter."); + close; + +L_Cheerful: + mesc l("Amelia looks much more cheerful than the last time you've met her."); + next; + mesn; + mesq l("Hey, %s! Welcome back!", strcharinfo(0)); + next; + mesn; + mesq l("Thanks for the %s you gave me the other day.", getitemlink(.@q2)); + if (getq(General_Narrator) < 20) + close; + next; + mesn; + mesq l("Here, lemme tell you something good: Do you know that fortress island which all the adventurers are talking about nowadays?"); + next; + if (askyesno() == ASK_NO) { + mesn; + mesq lg("Uh, how come? I thought you were an adventurer too! That island which trusted adventurers can reach using Pihro & Pyndragon's personal airship is so popular... Anyway!"); + next; + } + mesn; + mesq l("I visited it with my mother, the other day, and I found a tree in a cave!"); + next; + mesn; + mesq l("It was so lovely, and it had some very tasty fruits, too! But the cave was so dangerous..."); + next; + mesn; + mesq l("I saw some flower adorns, too. I hope it is not some traveler's grave. This war, it makes me so sad... I'm sure the tree was sad, too."); + next; + mesn; + mesq l("If you ever go there, you should pay it a visit. It is most definitely alive! I'm sure it'll like you, too."); + setq1 FortressQuest_ManaTree, 2; + close; + +L_Short: + mesn; + mesq l("Thanks for the %s you gave me the other day.", getitemlink(.@q2)); + if (getq(General_Narrator) < 20) + close; + next; + mesn; + mesq l("If you ever visit the fortress island, be sure to visit the friendly tree at the cave. I'm sure it'll like you."); + close; + +OnInit: + setarray .gifts, BrokenDoll, Doll, PlushMouboo, LeatherBall, ReinbooWand, MoubooFigurine, ChocolateBunny, RedStocking, SantaGlobe, SnowmanGlobe, RubberDucky, CandorBola, KidBola; + .sex = G_FEMALE; + .distance = 4; + end; +} + -- cgit v1.2.3-60-g2f50