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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
|
// Anwar needs a magic fertilizer for his field
// Quest uses Nibble 3 of QUEST_NorthTulimshar
// Author: Jenalya
// state 1: Anwar sent to Tinris for help to get a magic fertilizer
// state 2: Tinris asked for chocolate cake as present for his girlfriend
// state 3: Tinris asked for ingredients for the fertilizer
// state 4: Tinris gave you the fertilizer
// state 5: Anwar tried it out and it doesn't work well, sent you back to Tinris
// state 6: Tinris asked for more ingredients for a new try
// state 7: Tinris says it's really hard, gives you the fertilizer and tells you to ask Eomie to cast a spell on it
// state 8: Eomie sends you to get some stuff so she can interrupt her spell on the spot of grass
// state 9: Eomie casted a spell on the fertilizer
// state 10: Anwar used it and it worked. he asks you to help him preparing a thank-you-gift for each Tinris and Eomis
// state 11: Anwar asked to bring present to Tinris
// state 12: gave present to Tinris
// state 13: Anwar asked to bring present to Eomie
// state 14: gave present to Eomie
// state 15: reported back to Anwar and done
001-1,69,29,0|script|Tinris|160
{
set @state, ((QUEST_NorthTulimshar & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT);
set @cake_exp, 50;
set @sweater_exp, 400;
set @slime_amount1, 6;
set @slime_amount2, 4;
set @bugleg_amount1, 4;
set @bugleg_amount2, 5;
set @stinger_amount1, 3;
set @stinger_amount2, 2;
set @ash_amount1, 1;
set @ash_amount2, 2;
set @cactusp_amount, 1;
if (@state >= 12) goto L_Done;
if (@state == 11) goto L_GiveGift;
if (@state == 9) goto L_FertilizerDone;
if (@state >= 7) goto L_Eomie;
if (@state == 6) goto L_SecondTry;
if (@state >= 4) goto L_FirstTryDone;
if (@state == 3) goto L_FirstTry;
if (@state == 2) goto L_Annual;
mes "[Tinris]";
mes "\"This is a magic school. I'm a student here and focus on ways to magically enhance growth of plants.";
mes "That topic is very important in a desert area.\"";
if (@state != 1)
goto L_Close;
menu
"The farmer Anwar sent me to ask for exactly that! Can you give me something for his field?",L_Next;
L_Next:
mes "[Tinris]";
mes "\"Well... in principle yes. I can try to prepare something for him. But...\"";
next;
mes "\"The thing is, my girlfriend and I have our anniversary today. And the teachers won't let me leave the campus to get something for her!";
mes "Please go to the bakery and buy a Chocolate Cake for me. She loves Chocolate Cakes.\"";
next;
mes "\"When I have a present for her I can focus on creating some magic fertilizer.\"";
set @state, 2;
callsub S_Update_Mask;
goto L_Close;
L_Annual: // @state == 2
mes "[Tinris]";
mes "\"Hello, did you get the Chocolate Cake for my girlfriend? After that I can focus on creating some magic fertilizer for you.\"";
menu
"Fresh from the bakery!",L_FreshFrom,
"I didn't get it yet.",L_Close;
L_FreshFrom:
if (countitem("ChocolateCake") < 1)
goto L_NoItem;
delitem "ChocolateCake", 1;
getexp @cake_exp, 0;
set @state, 3;
callsub S_Update_Mask;
mes "[Tinris]";
mes "\"Oh, thank you! You saved me!";
mes "All right, now we can start with the magic fertilizer.\"";
next;
goto L_FirstTry;
L_FirstTry:
// @state == 3
mes "[Tinris]";
mes "\"You need to bring me some ingredients.";
mes "The ingredients are " + @slime_amount1 + " Maggot Slimes, " + @bugleg_amount1 + " Bug Legs, " + @stinger_amount1 + " Scorpion Stingers and " + @ash_amount1 + " Piles of Ash.\"";
menu
"I have it.",L_Continue,
"Ok, I'll go and get it.",L_Close;
L_Continue:
if ((countitem("MaggotSlime") < @slime_amount1) || (countitem("BugLeg") < @bugleg_amount1) || (countitem("ScorpionStinger") < @stinger_amount1) || (countitem("PileOfAsh") < @ash_amount1))
goto L_NoItem;
delitem "MaggotSlime", @slime_amount1;
delitem "BugLeg", @bugleg_amount1;
delitem "ScorpionStinger", @stinger_amount1;
delitem "PileOfAsh", @ash_amount1;
set @state, 4;
callsub S_Update_Mask;
mes "Tinris takes the things and starts to mix them together while mumbling some invocations.";
misceffect sfx_magic_nature;
next;
mes "[Tinris]";
mes "\"Ok. This should do it. But I'm not sure. I'm still researching this topic.";
mes "Here, bring this to Anwar.\"";
mes "He gives you a bottle with the magic fertilizer. You put it away in a separate pocket, so it doesn't get mixed with your inventory.";
goto L_Close;
L_FirstTryDone: // @state >= 4 but below 6
mes "[Tinris]";
mes "\"Bring the fertilizer to Anwar and let me know if it worked.\"";
if (@state != 5)
goto L_Close;
menu
"I did, the plants went brown and shriveled.",L_More;
L_More:
set @state, 6;
callsub S_Update_Mask;
goto L_SecondTry;
L_SecondTry:
// @state == 6
mes "[Tinris]";
mes "\"Oh no! All right, we need to do another try.";
mes "Bring me " + @slime_amount2 + " Maggot Slimes, " + @bugleg_amount2 + " Bug Legs, " + @stinger_amount2 + " Scorpion Stingers, " + @ash_amount2 + " Piles of Ash and " + @cactusp_amount + " Cactus Potion.\"";
menu
"Here it is.",L_HereItIs,
"Ok, I'll go and get it.",L_Close;
L_HereItIs:
if ((countitem("MaggotSlime") < @slime_amount2) || (countitem("BugLeg") < @bugleg_amount2) || (countitem("ScorpionStinger") < @stinger_amount2) || (countitem("PileOfAsh") < @ash_amount2) || (countitem("CactusPotion") < @cactusp_amount))
goto L_NoItem;
delitem "MaggotSlime", @slime_amount2;
delitem "BugLeg", @bugleg_amount2;
delitem "ScorpionStinger", @stinger_amount2;
delitem "PileOfAsh", @ash_amount2;
delitem "CactusPotion", @cactusp_amount;
set @state, 7;
callsub S_Update_Mask;
mes "Tinris takes the things and starts to mix and mumble again.";
misceffect sfx_magic_nature;
next;
mes "It takes quite a while.";
next;
mes "He looks rather stressed while working on the mixture.";
next;
mes "He sighs.";
mes "[Tinris]";
mes "\"Mh, I think the mixture itself is good. But I can't get the spells right. Maybe you should ask Professor Eomie to cast it; she's a genius with nature magic.\"";
mes "He gives you the bottle with the magic fertilizer.";
goto L_Close;
L_Eomie:
// @state >= 7 but below 9
mes "[Tinris]";
mes "\"I did the best I could, but it seems I'm not experienced enough to cast the spells correctly. Better ask Professor Eomie for help.\"";
goto L_Close;
L_FertilizerDone:
// @state == 9
mes "[Tinris]";
mes "\"I heard Eomie cast the spell? I really hope it'll work this time. Bring the magic fertilizer to Anwar now.\"";
goto L_Close;
L_GiveGift:
// @state == 11
mes "[Tinris]";
mes "\"Ah, did Anwar try the new fertilizer?\"";
menu
"Yes, it works great and he asked me to give you this Green V-Neck Sweater he made.",L_ItWorksGreat,
"Not yet.",L_Close;
L_ItWorksGreat:
if (countitem("GreenVNeckSweater") < 1)
goto L_NoItem;
delitem "GreenVNeckSweater", 1;
getexp @sweater_exp, 0;
set @state, 12;
callsub S_Update_Mask;
mes "[Tinris]";
mes "\"Hey, that's really nice. Tell him my thanks.\"";
goto L_Close;
L_Done:
// @state >= 12
mes "[Tinris]";
mes "\"My girlfriend was delighted with the Chocolate Cake and Professor Eomie was happy with my work on the magic fertilizer.\"";
mes "He twinkles.";
mes "[Tinris]";
mes "\"We're a good team.\"";
goto L_Close;
L_NoItem:
mes "[Tinris]";
mes "\"You don't have it!\"";
goto L_Close;
L_Close:
set @state, 0;
set @slime_amount1, 0;
set @slime_amount2, 0;
set @bugleg_amount1, 0;
set @bugleg_amount2, 0;
set @stinger_amount1, 0;
set @stinger_amount2, 0;
set @ash_amount1, 0;
set @ash_amount2, 0;
set @cactusp_amount, 0;
close;
S_Update_Mask:
set QUEST_NorthTulimshar, (QUEST_NorthTulimshar & ~(NIBBLE_3_MASK)) | (@state << NIBBLE_3_SHIFT);
return;
}
|