diff options
Diffstat (limited to 'world/map/npc')
-rw-r--r-- | world/map/npc/021-1/_import.txt | 1 | ||||
-rw-r--r-- | world/map/npc/021-1/banu.txt | 113 |
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; +} |