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
117
118
|
// Variables used: nibble 3 of QUEST_SouthTulimshar
001-1.gat,110,71,0|script|Sandra|114,
{
// This NPC previously used the variable TMW_Quest
callfunc "ClearVarTMW_Quest";
set @state, ((QUEST_SouthTulimshar & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT);
if (@state >= 2) goto L_Done;
if (@state == 1) goto L_Progress;
mes "[Sandra]";
mes "\"Hunting monsters for potion ingredients can sometimes be a difficult task.\"";
next;
set @TEMP, rand(4);
if(@TEMP == 0) goto L_Opening0;
if(@TEMP == 1) goto L_Opening1;
if(@TEMP == 2) goto L_Opening2;
if(@TEMP == 3) goto L_Opening3;
L_Opening0:
mes "\"In the outskirts of Tulimshar, there are some scorpions... I need help! Will you help?\"";
next;
goto L_Ask;
L_Opening1:
mes "\"When you venture to the outskirts of Tulimshar, you can spot scorpions. Will you help me kill some?\"";
next;
goto L_Ask;
L_Opening2:
mes "\"The Scorpion Stinger carries many properties used in potions. Would you get some for me?\"";
next;
goto L_Ask;
L_Opening3:
mes "\"You look sturdy enough, will you help me get something?\"";
next;
goto L_Ask;
L_Ask:
menu
"Yes.", L_Yes,
"No.", L_Close;
L_Yes:
set @TEMP, rand(3);
if(@TEMP == 0) goto L_Req0;
if(@TEMP == 1) goto L_Req1;
if(@TEMP == 2) goto L_Req2;
L_Req0:
mes "[Sandra]";
mes "\"I need 5 Scorpion Stingers.\"";
next;
goto L_Set;
L_Req1:
mes "[Sandra]";
mes "\"I heard a while ago that stingers from scorpions can be used for medical purposes. I need you to help me get 5 Scorpion Stingers.\"";
next;
goto L_Set;
L_Req2:
mes "[Sandra]";
mes "\"Bring me 5 Scorpion Stingers. I'll give you something if you do!\"";
next;
goto L_Set;
L_Set:
set @state, 1;
callsub S_Update_Var;
mes "\"Please get them for me!\"";
goto L_Close;
L_Progress:
if (countitem("ScorpionStinger") < 5)
goto L_NotEnough;
mes "[Sandra]";
mes "\"Excellent! You brought me 5 Scorpion Stingers!";
mes "Here's something for you.\"";
getinventorylist;
if (@inventorylist_count + (countitem("ScorpionStinger") == 5) - (countitem("Arrow") == 0) > 99)
goto L_TooMany;
delitem "ScorpionStinger", 5;
getitem "Bow", 1;
getitem "Arrow", 100;
set @state, 2;
callsub S_Update_Var;
goto L_Close;
L_NotEnough:
mes "[Sandra]";
mes "\"Please hurry and bring me 5 Scorpion Stingers.\"";
goto L_Close;
L_Done:
mes "[Sandra]";
mes "\"Thank you for all your help!\"";
goto L_Close;
L_Close:
set @TEMP, 0;
set @state, 0;
close;
L_TooMany:
next;
mes "[Sandra]";
mes "\"You don't have room for my reward. I'll wait until you do.\"";
goto L_Close;
S_Update_Var:
set QUEST_SouthTulimshar, (QUEST_SouthTulimshar & ~(NIBBLE_3_MASK) | (@state << NIBBLE_3_SHIFT));
return;
}
|