summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--world/map/npc/021-1/_import.txt1
-rw-r--r--world/map/npc/021-1/banu.txt113
2 files changed, 114 insertions, 0 deletions
diff --git a/world/map/npc/021-1/_import.txt b/world/map/npc/021-1/_import.txt
index f4fd502b..30acb5b8 100644
--- a/world/map/npc/021-1/_import.txt
+++ b/world/map/npc/021-1/_import.txt
@@ -4,6 +4,7 @@ map: 021-1.gat
npc: npc/021-1/_mobs.txt
npc: npc/021-1/_warps.txt
npc: npc/021-1/bakery.txt
+npc: npc/021-1/banu.txt
npc: npc/021-1/eurni.txt
npc: npc/021-1/gate_guards.txt
npc: npc/021-1/hideandseek.txt
diff --git a/world/map/npc/021-1/banu.txt b/world/map/npc/021-1/banu.txt
new file mode 100644
index 00000000..6571c764
--- /dev/null
+++ b/world/map/npc/021-1/banu.txt
@@ -0,0 +1,113 @@
+// Old woman working on a field, aks the player to get her some water
+// after that she asks for a knife
+// Using bit 10 and 11 of QUEST_NorthTulimshar (second half of nibble 2)
+// author: Jenalya
+
+021-1.gat,102,54,0|script|Banu|154,{
+
+ set @BanuNT_MASK, 0xC00;
+ set @BanuNT_SHIFT, 10;
+ set @state, ((QUEST_NorthTulimshar & @BanuNT_MASK) >> @BanuNT_SHIFT);
+ set @EXP, 30;
+ set @money_water, 200;
+ set @money_knife, 60;
+
+ if (@state >= 3) goto L_Done;
+ if (@state == 2) goto L_Knife;
+ if (@state == 1) goto L_Water;
+
+ mes "[Banu]";
+ mes "\"Ah, hello. You're just coming here the right moment. The field work is hard and the sun is burning.";
+ mes "Would you mind refilling an old woman's Empty Bottle with water?\"";
+ menu
+ "Sure!",-,
+ "Sorry, I'm busy.",L_Close;
+
+ getinventorylist;
+ if (@inventorylist_count == 100)
+ goto L_FullInv;
+
+ mes "She smiles.";
+ mes "[Banu]";
+ mes "\"Here is my Empty Bottle. There is a well right over there at the market.\"";
+ getitem "EmptyBottle", 1;
+ set @state, 1;
+ callsub S_Update_Mask;
+ goto L_Close;
+
+L_Water:
+ mes "[Banu]";
+ mes "\"Ah, you're back. I'm so thirsty.\"";
+ next;
+ if (countitem("BottleOfWater") < 1)
+ goto L_NoWater;
+ delitem "BottleOfWater", 1;
+ mes "She grabs the Bottle of Water and drinks.";
+ getexp @EXP, 0;
+ set Zeny, Zeny + @money_water;
+ set @state, 2;
+ callsub S_Update_Mask;
+ mes "[Banu]";
+ mes "\"Ah, that's refreshing. Thank you. You're a good kid. Have this for your expenses.";
+ mes "Maybe you can do me another favor?\"";
+ next;
+ mes "\"I need a new Knife. Neko at the bazaar near the south gate is selling some. But it's such a long way for my old legs.";
+ mes "Would you go to get me a Knife?\"";
+ goto L_Close;
+
+L_Knife:
+ mes "[Banu]";
+ mes "\"Hello dear. Did you get the knife for me?\"";
+ menu
+ "Yeah, here is it.",-,
+ "Not yet.",L_Close;
+ if (countitem("Knife") < 1)
+ goto L_NoKnife;
+ delitem "Knife", 1;
+ getexp @EXP, 0;
+ set Zeny, Zeny + @money_knife;
+ set @state, 3;
+ callsub S_Update_Mask;
+ mes "[Banu]";
+ mes "\"Thank you! You're a darling. Please take this for your effort.\"";
+ goto L_Close;
+
+L_Done:
+ mes "[Banu]";
+ set @rand, rand(3);
+ if (@rand == 0)
+ mes "\"I spent all my life here in Tulimshar. It's a good place to live.\"";
+ if (@rand == 1)
+ mes "\"Did you see the kids playing hide and seek? Ah, when I was young I used to play with my good friend Sorfina. She lives in the suburbs now, north of Tulimshar.\"";
+ if (@rand == 2)
+ mes "\"Tulimshar is ruled by a council of wise wizards.\"";
+ goto L_Close;
+
+L_NoWater:
+ mes "[Banu]";
+ mes "\"You didn't get it yet? Shame on you, an old woman is depending on you.\"";
+ goto L_Close;
+
+L_NoKnife:
+ mes "[Banu]";
+ mes "\"Where is it? Don't play tricks on an old woman! That's not nice.\"";
+ goto L_Close;
+
+L_FullInv:
+ mes "[Banu]";
+ mes "\"Oh my dear! You're carrying so many things that you can't take my Empty Bottle.\"";
+ goto L_Close;
+
+L_Close:
+ set @inventorylist_count, 0;
+ set @EXP, 0;
+ set @state, 0;
+ set @rand, 0;
+ set @BanuNT_MASK, 0;
+ set @BanuNT_SHIFT, 0;
+ close;
+
+S_Update_Mask:
+ set QUEST_NorthTulimshar, (QUEST_NorthTulimshar & ~(@BanuNT_MASK)) | (@state << @BanuNT_SHIFT);
+ return;
+}