summaryrefslogtreecommitdiff
path: root/npc/015-3
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2022-10-23 21:44:22 -0300
committerJesusaves <cpntb1@ymail.com>2022-10-23 21:44:22 -0300
commita7c45a192268da2601cef47a4cdba987ae2327ca (patch)
treec5fb5b97db109fe7106496dd96498c475881046b /npc/015-3
downloadserverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.gz
serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.bz2
serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.xz
serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.zip
Initial commit (Moubootaur Legends fork)
Diffstat (limited to 'npc/015-3')
-rw-r--r--npc/015-3/_config.txt11
-rw-r--r--npc/015-3/_import.txt8
-rw-r--r--npc/015-3/_mobs.txt19
-rw-r--r--npc/015-3/_warps.txt59
-rw-r--r--npc/015-3/arkim.txt252
-rw-r--r--npc/015-3/logic.txt27
-rw-r--r--npc/015-3/pooh.txt221
7 files changed, 597 insertions, 0 deletions
diff --git a/npc/015-3/_config.txt b/npc/015-3/_config.txt
new file mode 100644
index 0000000..19625ca
--- /dev/null
+++ b/npc/015-3/_config.txt
@@ -0,0 +1,11 @@
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+// Map 015-3: Butterfly Caves conf
+
+015-3,24,36,0 script #015-3_24_36 NPC_CHEST,{
+ TreasureBox();
+ specialeffect(.dir == 0 ? 24 : 25, AREA, getnpcid()); // closed ? opening : closing
+ close;
+OnInit:
+ .distance=2;
+ end;
+}
diff --git a/npc/015-3/_import.txt b/npc/015-3/_import.txt
new file mode 100644
index 0000000..8933299
--- /dev/null
+++ b/npc/015-3/_import.txt
@@ -0,0 +1,8 @@
+// Map 015-3: Butterfly Caves
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+"npc/015-3/_config.txt",
+"npc/015-3/_mobs.txt",
+"npc/015-3/_warps.txt",
+"npc/015-3/arkim.txt",
+"npc/015-3/logic.txt",
+"npc/015-3/pooh.txt",
diff --git a/npc/015-3/_mobs.txt b/npc/015-3/_mobs.txt
new file mode 100644
index 0000000..c8aa5cb
--- /dev/null
+++ b/npc/015-3/_mobs.txt
@@ -0,0 +1,19 @@
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+// Map 015-3: Butterfly Caves mobs
+015-3,160,179,19,18 monster Cave Bat 1039,24,30000,40000
+015-3,142,31,24,14 monster Green Slime 1085,5,30000,40000
+015-3,118,179,22,18 monster Cave Snake 1035,9,30000,20000
+015-3,157,110,22,18 monster Snake 1122,12,30000,20000
+015-3,144,94,32,39 monster Black Scorpion 1074,12,30000,20000
+015-3,156,66,24,14 monster Robin Bandit 1153,5,30000,40000
+015-3,113,100,55,37 monster Red Slime 1092,47,30000,40000
+015-3,107,177,14,8 monster Archant 1026,2,30000,40000
+015-3,46,44,31,18 monster Night Scorpion 1077,1,3600000,1800000
+015-3,86,59,28,32 monster Terranite 1167,3,100000,40000
+015-3,69,89,33,28 monster Wicked Mushroom 1176,6,100000,30000
+015-3,84,142,23,50 monster Troll 1171,6,100000,30000
+015-3,32,37,31,12 monster Copper Slime Mother 1238,1,300000,120000
+015-3,38,49,26,17 monster Gobo Bear 1214,5,40000,20000
+015-3,132,189,8,10 monster Snake 1122,1,30000,20000
+015-3,102,105,81,87 monster Small Emerald Bif 1104,6,65000,45000
+015-3,98,123,24,62 monster Copper Slime 1088,10,40000,40000
diff --git a/npc/015-3/_warps.txt b/npc/015-3/_warps.txt
new file mode 100644
index 0000000..46a752f
--- /dev/null
+++ b/npc/015-3/_warps.txt
@@ -0,0 +1,59 @@
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+// Map 015-3: Butterfly Caves warps
+015-3,152,162,0 script #015-3_152_162 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 123,38; end;
+}
+015-3,171,161,0 script #015-3_171_161 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 147,39; end;
+}
+015-3,172,196,0 warp #015-3_172_196 0,0,014-3,120,122
+015-3,138,197,0 warp #015-3_138_197 0,0,015-3-1,80,23
+015-3,129,199,0 script #015-3_129_199 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 152,57; end;
+}
+015-3,119,196,0 script #015-3_119_196 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 134,58; end;
+}
+015-3,98,161,0 script #015-3_98_161 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 123,38; end;
+}
+015-3,123,39,0 script #015-3_123_39 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 152,163; end;
+}
+015-3,147,40,0 script #015-3_147_40 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 171,162; end;
+}
+015-3,152,56,0 script #015-3_152_56 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 129,198; end;
+}
+015-3,134,57,0 script #015-3_134_57 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 119,195; end;
+}
+015-3,64,74,0 script #015-3_64_74 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 47,61; end;
+}
+015-3,47,62,0 script #015-3_47_62 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ slide 64,73; end;
+}
diff --git a/npc/015-3/arkim.txt b/npc/015-3/arkim.txt
new file mode 100644
index 0000000..64f22af
--- /dev/null
+++ b/npc/015-3/arkim.txt
@@ -0,0 +1,252 @@
+// TMW2 scripts.
+// Authors:
+// Jesusalva
+// Description:
+// Heremit
+// Variables:
+// $ARKIM_ST
+// How many Bat Teeth/Wings were given
+// q1
+// Controls your own progress helping Arkim - Unused, might give place to some real quest later.
+// q2
+// Controls your own progress helping Arkim - Items today
+// q3
+// Controls your own progress helping Arkim - Your timer
+
+015-3,170,169,0 script Arkim NPC_TERRY,{
+ function pmap_intro;
+ function pmap_wrong;
+ function pmap_right;
+ mesn;
+ mesq lg("Hello, young girl...", "Hello, young boy...");
+ next;
+
+L_Loop:
+ .@q1=getq(HurnscaldQuest_Arkim);
+ .@q3=getq3(HurnscaldQuest_Arkim);
+ mesn;
+ mesq l("I am doing a great research with Bats, and thus far I collected @@ Bat Wings and Teeths.", $ARKIM_ST);
+ next;
+ // It was yesterday
+ if (.@q3 < $@ARKIM_QTIMER) {
+ setq2 HurnscaldQuest_Arkim, 0;
+ setq3 HurnscaldQuest_Arkim, $@ARKIM_QTIMER;
+ }
+
+ // Daily limit reached
+ .@q2=getq2(HurnscaldQuest_Arkim);
+ if (.@q2 >= (BaseLevel-17)/3) goto L_Timer;
+ select
+ rif(countitem(BatWing) >= 1, l("Donate a Bat Wing")),
+ rif(countitem(BatTeeth) >= 1, l("Donate a Bat Teeth")),
+ l("I better leave this crazy man to his ordeals..."),
+ l("Had you any breakthrough?");
+ mes "";
+
+ switch (@menu) {
+ case 1:
+ delitem BatWing, 1;
+ getexp 25, 0;
+ Zeny=Zeny+50;
+ break;
+ case 2:
+ delitem BatTeeth, 1;
+ getexp 36, 0;
+ Zeny=Zeny+70;
+ break;
+ case 3:
+ goto L_Assign;
+ close; // Will never reach.
+ break;
+ case 4:
+ goto L_Research;
+ break;
+ }
+ $ARKIM_ST=$ARKIM_ST+1;
+ setq2 HurnscaldQuest_Arkim, .@q2+1;
+ goto L_Loop;
+
+L_Timer:
+ if (BaseLevel < 20)
+ mesc l("You need at least level 20 to help.");
+ mesn;
+ mesq l("You've helped me plenty. Please come back in @@", FuzzyTime($@ARKIM_TIMER+(60*60*24),2,2));
+ goto L_Assign;
+ close; // Will never reach.
+
+// TODO
+L_Research:
+ mesn;
+ mesq l("Let me see... The more Wings and Teethes I collect, the more my research shall advance.");
+ next;
+ select
+ l("Thanks."),
+ rif($ARKIM_ST >= 1400, l("Cursed Arrows")),
+ rif($ARKIM_ST >= 2800, l("Poison Arrows")),
+ rif($ARKIM_ST >= 1200, l("Piberries Infusion")),
+ rif($ARKIM_ST >= 2600, l("Fate's Potion")),
+ rif($ARKIM_ST >= 4000, l("Clotho Liquor")),
+ rif($ARKIM_ST >= 4700, l("Lachesis Brew")),
+ rif($ARKIM_ST >= 6600, l("Atropos Mixture")),
+ rif($ARKIM_ST >= 7500, l("Dark Desert Mushroom"));
+ mes "";
+ mesn;
+
+ switch (@menu) {
+ case 1:
+ mesq l("Good bye!");
+ goto L_Assign;
+ close; // Will never reach.
+ break;
+ case 2:
+ mesq l("The @@ are specially dangerous, and archers love them.", getitemlink(CursedArrow));
+ next;
+ mesn;
+ mesq l("These are being crafted by Alan.");
+ break;
+ case 3:
+ mesq l("The @@ are specially dangerous, and archers love them.", getitemlink(PoisonArrow));
+ next;
+ mesn;
+ mesq l("These are being crafted by Alan.");
+ break;
+ case 4:
+ case 5:
+ case 6:
+ case 7:
+ case 8:
+ mesq l("The @@ is a powerful healing drink.", getitemlink(PiberriesInfusion-4+@menu));
+ next;
+ mesn;
+
+ switch (@menu) {
+ case 4:
+ mesq l("@@ is developing these potions.", "Wyara"); break;
+ case 5:
+ mesq l("@@ is developing these potions.", "Fate, in Nivalis,"); break; // TODO: Missing NPC
+ case 6:
+ mesq l("@@ is developing these potions.", "Frostia Dwarves"); break;
+ case 7:
+ mesq l("@@ is developing these potions.", "Frostia Dwarves"); break;
+ default:
+ mesq l("@@ is developing these potions.", "Jesusalva"); // TODO: Lachesis and Atropos
+ break;
+ }
+
+ break;
+ case 9:
+ mesq l("Ah! @@. A very rare drop!", getitemlink(DarkDesertMushrooom));
+ next;
+ mesn;
+ mesq l("You can find it in the bandit market, but it is EXPENSIVE.");
+ break;
+
+ }
+ next;
+ goto L_Research;
+
+L_Assign:
+ // NOTE: Map will be destroyed after first time, MAKE SURE TO MEMORIZE.
+ // Or you'll need to find ANOTHER copy, but this one won't be burned.
+ if (getq(HurnscaldQuest_PirateCave) >= 2 && countitem(PirateTreasureMap)) {
+ mesc l("Should we ask about the %s before leaving?", getitemlink(PirateTreasureMap));
+ select
+ l("Ask."),
+ l("Don't ask.");
+ mes "";
+ if (@menu == 1) goto L_PirateMap;
+ }
+ GHQ_Assign(Bat, "Bat");
+ end;
+
+L_PirateMap:
+ .@q = getq(HurnscaldQuest_PirateCave);
+ if (.@q == 2) pmap_intro();
+ else if (.@q == 3) pmap_intro();
+ else if (.@q == 4) pmap_wrong();
+ // IMPLICIT FALLTHROUGH
+ .@q = getq(HurnscaldQuest_PirateCave);
+ if (.@q == 5) pmap_right();
+ close;
+
+function pmap_intro {
+ mesn;
+ mesq l("There's no one who knows Butterfly Caves better than me, child. These are MY caves, after all.");
+ next;
+ mesn;
+ mesc l("%s makes a confused face.", .name$);
+ mesq l("But your silly map must be wrong. These passages do not connect themselves like this, but this should not be an issue, as they're not relevant.");
+ next;
+ mesn;
+ mesq l("To reach this place... You just need to follow the path after the waterfall. Come back to me after that.");
+ compareandsetq HurnscaldQuest_PirateCave, 2, 3;
+ close;
+}
+
+function pmap_wrong {
+ mesn;
+ mesq l("Welcome back, children. So, how was your treasure hunt? Did you manage to find the path?");
+ next;
+ mesn strcharinfo(0);
+ select
+ l("NO!"),
+ l("Not at all!"),
+ l("You barely know these caves."),
+ l("You send me the wrong way.");
+ mes "";
+ mesn;
+ mesq l("Calm down, don't get mad! I was wrong in trusting this map, it is definitely faulty. Lemme see it again...");
+ if (!countitem(PirateTreasureMap)) close; // Last chance...
+ next;
+ mesn;
+ mesc l("%s eyebrow furrows, as he brings the map closer to a torch.", .name$);
+ mesq l("These paths are all wrong! What is the problem with this map?!");
+ next;
+ mesc l("The map starts getting darker with the heat of the flame, and curiously, new shapes starts to form...");
+ next;
+ mesn;
+ mesq l("Aha! So that's what it was! The map was hiding its secrets in drawings made with acid. An old technique... But a very useful one.");
+ next;
+ delitem PirateTreasureMap, 1;
+ setq HurnscaldQuest_PirateCave, 5;
+ getexp 0, 600;
+ mesc l("Suddenly, the map %s!", col(l("burst up in flames"), 1));
+ mesc l("Seems like Arkim held it too close to the flame...");
+ next;
+ mesn;
+ mes "\""+l("I have some good and some bad news for you.");
+ mes l("The good one, is that now I know the right path.");
+ mes l("The bad one, is that you'll have to guide yourself without the map.")+"\"";
+ next;
+ return;
+}
+
+function pmap_right {
+ mes ".:: " + l("Direction for Pirate Caves") + " ::.";
+ mes "1. "+l("Go through the waterfall path.");
+ mes "2. "+l("Use the abandoned passage to the north... Usually, no one uses it.");
+ mes "3. "+l("After that, follow the path until you reach a great chamber...");
+ mes "4. "+l("Then take the middle entrance.");
+ next;
+ mesn;
+ mesq l("I wish you good luck. I remember these caves... They're dangerous. Make sure to be prepared before venturing further.");
+ close;
+}
+
+OnInit:
+ .sex=G_MALE;
+ .distance=5;
+
+ $@ARKIM_QTIMER=gettimeparam(GETTIME_DAYOFMONTH);
+ $@ARKIM_TIMER=gettimetick(2);
+ $@ARKIM_TIMER-=gettime(1);
+ $@ARKIM_TIMER-=gettime(2)*60;
+ $@ARKIM_TIMER-=gettime(3)*3600;
+ end;
+
+OnHour00:
+ $@ARKIM_QTIMER=gettimeparam(GETTIME_DAYOFMONTH);
+ $@ARKIM_TIMER=gettimetick(2);
+ end;
+
+}
diff --git a/npc/015-3/logic.txt b/npc/015-3/logic.txt
new file mode 100644
index 0000000..0044017
--- /dev/null
+++ b/npc/015-3/logic.txt
@@ -0,0 +1,27 @@
+// TMW2 scripts.
+// Authors:
+// Diogo_RBG
+// Jesusalva
+// Description:
+// Pirate Caves gateway main logic
+// Adapted from TMW-BR for Moubootaur Legends
+
+015-3,128,161,0 script #0153WG1 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ compareandsetq HurnscaldQuest_PirateCave, 3, 4;
+ compareandsetq HurnscaldQuest_PirateCave, 5, 6;
+ slide 166, 38;
+ end;
+}
+
+015-3,132,23,0 script #0153WG2 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ if (getq(HurnscaldQuest_PirateCave) >= 6) {
+ slide 98, 162;
+ }
+ end;
+}
+
+
diff --git a/npc/015-3/pooh.txt b/npc/015-3/pooh.txt
new file mode 100644
index 0000000..fc14040
--- /dev/null
+++ b/npc/015-3/pooh.txt
@@ -0,0 +1,221 @@
+// TMW2 scripts.
+// Author:
+// Diogo RBG from TMW-BR
+// Jesusalva
+// Description:
+// This is a very cute bear, it'll definitely earn your sympathy.
+// Pooh (original) has became Public Domain in January 2022.
+
+015-3,127,181,0 script Pooh NPC_POOH,{
+ function poohNear;
+ function poohFood;
+ function poohSmell;
+ inventoryplace BearHat, 1;
+ .@q = getq(HurnscaldQuest_TeddyBear);
+ mesc l("OMG so cute! This must be the cutest bear you ever seen your whole life.");
+ // Minimum level not met (does it even make sense? It is within Pirate Map)
+ if (BaseLevel < 39)
+ close;
+ mesc l("It seems to be concentrated on its small pot... So concentrated, it doesn't even realizes you're there.");
+ mesc l("This is so amusing, you decide to stare for a while longer.");
+ next;
+ // Quest already finished
+ if (.@q >= 3) {
+ mesc l("It then looks at you with a pleasant smile, you definitely earned a new cute friend!");
+ close;
+ }
+ mesc l("And then you notice the small teddy is opening and closing the lid of this pot repeated times, as if it were looking for something.");
+ mesc l("You ask yourself: What is the teddy looking for? How can I help him?");
+ compareandsetq HurnscaldQuest_TeddyBear, 0, 1;
+ next;
+ .@cont = false;
+ // Main menu
+ do
+ {
+ mesn strcharinfo(0);
+ select
+ l("Sing a song to brighten its mood."),
+ l("Pet his wonderfully fluffy pelt."),
+ l("Approach it softly."),
+ l("Offer food to it."),
+ l("Leave the poor thing in peace.");
+ mes "";
+ switch (@menu) {
+ case 1:
+ mesc l("You sing a pretty song to the teddy, and this makes it very happy.");
+ mesc l("You know this, because their big round eyes were shining.");
+ next;
+ mesc l("However, this only distracts him for a short while. Soon after, he returns to his small ritual with the pot.");
+ next;
+ mesc l("Poor teddy, not even a pretty music can comfort him for long. What can we do now?");
+ next;
+ break;
+ case 2:
+ mesc l("With a big smile, you stretch your hand in the teddy's direction; But the little one gets scared with the movement and starts to move away from you.");
+ next;
+ mesc l("You give up after seeing its reaction, and try your best to resist the temptation of hugging this fluffy ball. Maybe we have another idea?");
+ next;
+ break;
+ case 3:
+ poohNear();
+ next;
+ break;
+ case 4:
+ poohFood();
+ .@cont = true;
+ break;
+ case 5:
+ mesc l("You leave the teddy alone with its pot.");
+ .@cont = true;
+ break;
+ default:
+ mesc "FIXME", 1;
+ next;
+ break;
+ }
+ } while (!.@cont);
+ close;
+
+function poohNear {
+ mesc l("You take off your bag and put it on the floor, as you lower yourself and try to slowly get close to it.");
+ next;
+ mesc l("But the teddy, noticing your movement, starts getting farther from you. It doesn't seems scared, but it doesn't allows you to approach either.");
+ next;
+ if (countitem(Honey) || countitem(BeeStinger)) {
+ poohSmell();
+ return;
+ }
+ mesc l("Insisting will do us no good, maybe we should try to gain its trust first?");
+ return;
+}
+
+function poohFood {
+ mesc l("Maybe the teddy is hungry? What could we offer to it?");
+ .@honey = false;
+ do
+ {
+ mes "";
+ mes "##B" + l("Drag and drop a healing item from your inventory.") + "##b";
+
+ .@id = requestitem();
+
+ // If ID is invalid, there's not enough items, it is bound, etc;
+ if (.@id < 1) return;
+ if (.@id < 1 || countitem(.@id) < 1 || checkbound(.@id) || getiteminfo(.@id, ITEMINFO_TYPE) != IT_HEALING) {
+ if (checkbound(.@id)) {
+ mesc l("You cannot part with this item!");
+ } else if (.@id == DeathPotion || .@id == NymphPoison) {
+ mesc l("...Are you crazy?");
+ } else if (.@id == MagicApple || .@id == MysteriousFruit) {
+ mesc l("This is too precious to offer, I think.");
+ } else if (getiteminfo(.@id, ITEMINFO_TYPE) != IT_HEALING) {
+ mesc l("I'm not sure if that's edible. For teddies, at least.");
+ } else {
+ mesc l("You give up.");
+ mesc l("Maybe it is not hungry, after all.");
+ return;
+ }
+ next;
+ continue;
+ }
+
+ // Bad healing items
+ if (.@id == Beer ||
+ .@id == RedPlushWine ||
+ .@id == DwarvenSake ||
+ .@id == CrazyRum ||
+ .@id == WhiskeyAle) {
+ mesc l("Offering alcohol to a teddy seems like a ugly thing to do. We should think on something else.");
+ next;
+ continue;
+ } else if (.@id == ElixirOfLife) {
+ mesc l("...I don't think the teddy is sick, so there's no point giving it an Elixir.");
+ next;
+ continue;
+ } else if (.@id == BottleOfSewerWater) {
+ mesc l("...I refuse to comment on this ridiculous idea.");
+ next;
+ continue;
+ } else if (.@id == Honey) {
+ .@honey = true;
+ break;
+ }
+
+ mesc l("Really give your %s to the teddy?", getitemlink(.@id)), 1;
+ mesc l("The item will be lost forever.");
+ if (askyesno() == ASK_YES) {
+ mes "";
+ mesc l("The teddy stares at it but does not approach. Maybe it is not hungry, or it doesn't want the food you offered.");
+ // Item is NOT deleted because it did not approach
+ next;
+ }
+ } while (!.@honey);
+ // You're offering HONEY! But we must check if you CAN do this
+ if (getq(HurnscaldQuest_TeddyBear) < 2) {
+ percentheal -2, 0;
+ SC_Bonus(15, SC_POISON, 1);
+ getmapxy(.@m$, .@x, .@y, 0);
+ .@u = monster(.@m$, .@x, .@y, strmobinfo(1, Bee), Bee, 1);
+ unitattack(.@u, getcharid(3));
+ closeclientdialog;
+ dispbottom l("Suddenly, a bee appears and attacks you out of NOWHERE!");
+ end; // TERM
+ }
+ // You can, so we go ahead.
+ mesc l("Our plushy friend knows what is really sweet on this life. It likes honey a great deal, and by the way it looks you, it probably wants more.");
+ next;
+ mesc l("It is... SO CUTE! You won't refuse honey to a teddy, will you?");
+ mesc l("How much honey will you give it? (You have: %d)", countitem(Honey)), 3;
+ input .@honey, 0, countitem(Honey);
+ if (.@honey < 1) return;
+ delitem Honey, .@honey;
+ setq2 HurnscaldQuest_TeddyBear, getq2(HurnscaldQuest_TeddyBear) + .@honey;
+ getexp 0, .@honey * 14;
+ mesc l("The teddy quickly takes the honey and fills the pot. It is really hungry!");
+ if (getq2(HurnscaldQuest_TeddyBear) >= 27) {
+ mesc l("...And at long last, the teddy's pot is full of honey.");
+ mesc l("It seems happy, but it quickly goes to a dark honey after finishing.");
+ next;
+ mesc l("When it returns, it is holding a cute %s. Understanding it is a gift, you take it.", getitemlink(BearHat));
+ mesc l("Doesn't it feel good to help?");
+ getitem BearHat, 1;
+ setq HurnscaldQuest_TeddyBear, 3;
+ // Half of needed exp, but treasure map may require more level
+ getexp 15750, 9200; // Job Exp: Lv 28 as reference
+ }
+ return;
+}
+
+function poohSmell {
+ mesc l("But the teddy unexpectedly starts moving towards your bag, possibly attracted by some smell. You give up on approaching it, and starts watching it.");
+ next;
+ if (@stingpooh) {
+ mesc l("However, it stops abruptly and quickly moves away from it.");
+ mesc l("I guess it still remembers the sting on the snout. Ouch!");
+ return;
+ }
+ mesc l("Without any ceremony or further ado, the teddy starts poking on your things.");
+ next;
+ if (countitem(BeeStinger)) {
+ mesc l("However, it comes back crying! Poor teddy, it got attracted by a sweet smell but it found a %s instead!", getitemlink(BeeStinger));
+ delitem BeeStinger, 1;
+ @stingpooh = true;
+ next;
+ mesc l("Unsatisfied, it goes away from you and your bag. Such a shame, we almost had got its trust.");
+ return;
+ }
+ mesc l("After turning it upside down, it finds something which makes it really happy: %s! And there's nothing a teddy likes more than honey.", getitemlink(Honey));
+ next;
+ mesc l("The teddy picks it and goes running to somewhere it can eat in peace. Now we know how we can please our little friend - with %s! How we didn't think on that before?!", getitemlink(Honey));
+ delitem Honey, 1;
+ compareandsetq HurnscaldQuest_TeddyBear, 1, 2;
+ setq2 HurnscaldQuest_TeddyBear, getq2(HurnscaldQuest_TeddyBear) + 1;
+ getexp 0, 14;
+ return;
+}
+
+OnInit:
+ .sex = G_OTHER;
+ .distance = 4;
+ end;
+}