1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
// Old woman working on a field, asks 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've come at just 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!",L_Next,
"Sorry, I'm busy.",L_Close;
L_Next:
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.",L_Next1,
"Not yet.",L_Close;
L_Next1:
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;
}
|