summaryrefslogtreecommitdiff
path: root/world/map/npc/009-1/milly_beaniecopter.txt
blob: 4f454d1c9af98b14f5f9b537d7fbc4e8d6b72688 (plain) (blame)
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
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
// Milly is involved in:
// Beanie-Copter quest
// Story and dialogs: veryape
// Scripting: Jenalya
//
// Inspector quest

009-1.gat,81,41,0|script|Milly|114,{
    callfunc "ClearVariables";

    set @inspector, ((QUEST_Hurnscald & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT);

    set @got_boneknife, ((QUEST_Forestbow_state & NIBBLE_2_MASK) >> NIBBLE_2_SHIFT) >= 4;
    set @got_setzer,  ((QUEST_Forestbow_state & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT) >= 8;
    set @saved_rossy, (FLAGS & FLAG_ROSSI_COMPLETED);
    set @saved_cindy, ((QUEST_Nivalis_state & NIBBLE_5_MASK) >> NIBBLE_5_SHIFT) >= 4;

    if (FLAGS & FLAG_GOT_BEANIEHAT) goto L_FinishedGood;
    if (FLAGS & FLAG_DECLINED_BEANIEHAT) goto L_FinishedBad;

    if (@saved_rossy && @saved_cindy && @got_setzer && (BOSS_POINTS >= 5000)) goto L_OfferCap;
    if (@got_setzer)    goto L_GotSetzer;
    if (@saved_cindy)   goto L_SavedCindy;
    if (@saved_rossy)   goto L_SavedRossy;
    if (@got_boneknife) goto L_GotBoneKnife;
    if (BaseLevel > 40) goto L_NoKnifeYet;

    mes "[Milly]";
    mes "\"Hello traveler, welcome to Hurnscald.\"";
    next;
    if (@inspector == 1)
        callsub S_InspectorQuest;

    mes "\"Have you met Kfahr yet? He is the greatest hero that ever walked the land of Hurnscald!\"";
    menu
        "Hi! No, I haven't seen him.", L_Where,
        "Where could I find him?", L_Where,
        "Mh, I don't care for heroes.", L_Care,
        "Hello, yes I've met him.", L_MetKfahr;

L_Where:
    mes "[Milly]";
    mes "\"You really ought to go see him! He is usually at the inn in the north-west part of town. If you are lucky he might tell you a story about his adventures.\"";
    goto L_Close;

L_Care:
    mes "[Milly]";
    mes "\"What? Surely you do not understand what a hero he is or you are just not intelligent enough to grasp what his actions have meant for us. He is a true inspiration for all of us.\"";
    next;
    mes "\"You can't have met him. No one who has met him would say such silly things.\"";
    next;
    goto L_Where;

L_MetKfahr:
    mes "[Milly]";
    mes "\"Oh, I hope you stayed and listened to his stories about his adventures.\"";
    goto L_Close;

L_NoKnifeYet:
    mes "[Milly]";
    mes "\"Hi again.\"";
    next;
    if (@inspector == 1)
        callsub S_InspectorQuest;

    mes "\"Have you talked to Kfahr lately?\"";
    menu
        "Yes.", L_TalkKfahr,
        "No.", L_HintKnife;

L_TalkKfahr:
    mes "[Milly]";
    mes "\"Is it true as the rumors say? ...\"";
    next;
    goto L_HintKnife;

L_HintKnife:
    mes "[Milly]";
    mes "\"You really should go meet him.\"";
    next;
    mes "\"I've heard that he is helping adventurers such as yourself with some exotic gear.\"";
    menu
        "I am not sure, I'd better go talk to him again.", L_Unsure,
        "Yes, it is true.", L_True;

L_Unsure:
    mes "[Milly]";
    mes "\"You better hurry up before he changes his mind!\"";
    goto L_Close;

L_True:
    mes "[Milly]";
    mes "\"So, why haven't you accepted his generous offer?\"";
    menu
        "I was just about to...", L_Unsure,
        "I don't need any help.", L_NoHelp;

L_NoHelp:
    mes "[Milly]";
    mes "\"You must be kidding me.\"";
    next;
    mes "\"I am just a kid but possess more wisdom than you. How you managed to even look like an adventurer is beyond me.\"";
    next;
    mes "\"You better learn from the wise and accept help from those who offer it.\"";
    goto L_Unsure;

L_GotBoneKnife:
    mes "[Milly]";
    mes "\"Hi there.\"";
    next;
    if (@inspector == 1)
        callsub S_InspectorQuest;

    mes "\"I heard that you got an exotic knife from Kfahr.";
    mes "Would you care to show it for me?\"";
    menu
        "Sure.", L_ShowKnife,
        "Haven't I already?", L_ShowKnifeAgain;

L_ShowKnife:
    if (countitem("BoneKnife") < 1)
        goto L_ShowKnifeNo;
    mes "[Milly]";
    mes "\"Wow! That is a knife fitting a real adventurer!\"";
    next;
    mes "\"Kfahr ain't just a hero, he is also a stand up guy.\"";
    next;
    mes "\"You should be honoured that he is treating you his knife like this.\"";
    next;
    mes "\"What a hero...\"";
    goto L_Close;

L_ShowKnifeAgain:
    mes "[Milly]";
    mes "\"What is the difference? It's so exiting to see such a fine knife.\"";
    next;
    mes "\"It is like cake, sure I might have had it before...\"";
    next;
    mes "\"... but does that stop me from wanting it once more?\"";
    next;
    mes "\"NO!\"";
    next;
    mes "\"Please let me see it!\"";
    menu
        "Okay.", L_ShowKnife,
        "Enough is enough.", L_ShowKnifeNo;

L_ShowKnifeNo:
    mes "[Milly]";
    mes "\"I hope that the reason that you don't show it to me is because you have it tucked away somewhere safe.\"";
    next;
    mes "\"Otherwise you are just a bore...\"";
    next;
    mes "\"Don't be boring!\"";
    goto L_Close;

L_SavedRossy:
    mes "[Milly]";
    mes "\"Hi friend!\"";
    next;
    if (@inspector == 1)
        callsub S_InspectorQuest;

    mes "\"Word is all around Hurnscald of your great act of helping my friends Rossy and Julia!\"";
    next;
    mes "\"Not only did you help Rossy, you saved her sister Julia from that Fey Element. That was a real act of heroism!\"";
    next;
    mes "\"You are shaping up to be something of a hero yourself.\"";
    next;
    mes "\"I am so happy that you came to Hurnscald, without you I'm not so sure that Julia would have been saved.\"";
    menu
        "You're right, I am a hero!", L_Loudmouth,
        "I'm doing my best!", L_Modesty;

L_Loudmouth:
    mes "[Milly]";
    mes "\"You surely are not...\"";
    next;
    mes "\"First and foremost you are a loudmouth. Your actions speeks better for themselves without your boasting.\"";
    next;
    mes "\"A little modesty would be a fitting characteristic for you. You are talking as if you think that you are the equal of Kfahr.\"";
    next;
    mes "\"I think you should show a little more respect when you are this close to legendary heroes.\"";
    goto L_Close;

L_Modesty:
    mes "[Milly]";
    mes "\"Wow, you have been very helpful and unselfish risking your own safety for the sake of others! Thanks to that Julia is back and Olana is able to sleep at night.\"";
    next;
    mes "\"If you continue with those kinds of deeds you might earn your place in the history books of Hurnscald!\"";
    goto L_Close;

L_SavedCindy:
    mes "[Milly]";
    mes "\"Hi!\"";
    next;
    if (@inspector == 1)
        callsub S_InspectorQuest;

    mes "\"Are the rumors true?\"";
    next;
    mes "\"Word is going around that you saved a girl called Cindy who was captured by Yetis in Nivalis, and that you arranged a rescue party getting her back from a deep Yeti inhibited cave.\"";
    menu
        "Thanks to the party, yes.", L_Party,
        "Yes, it is true!", L_Cindy;

L_Party:
    mes "[Milly]";
    mes "\"Wow! Not only are you brave, you also have the wisdom to seek help when needed!\"";
    next;
    mes "\"Being a skilled fighter is good. But being a skilled fighter coupled with your wits and organizational skill, now that is something special!\"";
    goto L_HeroGrowing;

L_Cindy:
    mes "[Milly]";
    mes "\"Once again you've done good!\"";
    goto L_HeroGrowing;

L_HeroGrowing:
    mes "[Milly]";
    mes "\"You have saved two kids about my own age from horrible situations, it is just like the stories I heard growing up.\"";
    next;
    mes "\"As things are shaping up you certainly are becoming something of a idol for us kids. At school the kids gossip about you, you're fastly becoming one of the most admired people around...\"";
    next;
    mes "\"Since you've proven yourself with your great acts I'll let you in on exciting rumor I've heard.\"";
    next;
    mes "\"I've heard that Nicholas has learned new techniques in forging and weapon smithing. He is now able to improve a small sword into what is called a Setzer.\"";
    next;
    mes "\"Go talk to him and hear if he can help you get hold of one of these weapons.\"";
    goto L_Close;

L_GotSetzer:
    mes "[Milly]";
    mes "\"Hello!\"";
    next;
    if (@inspector == 1)
        callsub S_InspectorQuest;

    mes "\"I heard that you got hold of a Setzer!\"";
    next;
    mes "\"And the fact that Kfahr helped you means he really rates you as a fellow adventurer!\"";
    next;
    mes "\"Praise does not get much better than that around here. He knows a good adventurer when he see one, you must have impressed him!\"";
    if (!@saved_cindy || !@saved_rossy)
        goto L_Close;
    next;
    mes "\"To be honest you are fast becoming my favored hero, even... dare I say it? Even more so than Kfahr.\"";
    next;
    mes "\"Your good deeds and your skill is undisputable! However...\"";
    next;
    mes "\"Somehow I feel that you still need to prove your courage. The elders say that although they find you an adorable person and a hero that you can't be considered as great as Kfahr before you've proved yourself fearless.\"";
    next;
    mes "\"You could prove yourself as the greatest hero who has walked the land by accepting Paruas challenge at Candor. Stare death in the eyes, show no fear and conquer! Show everyone that you're worthy the title of the greatest hero ever!\"";
    next;
    mes "\"I myself already consider you my favourite hero, sure Kfahr has done great things, but...\"";
    next;
    mes "\"Nowadays he mostly sits around with that sad bunch of drunkards in the Inn, drinking beer and talk about past glory.\"";
    next;
    mes "\"For my generation you are the true hero, please prove the elders wrong by showing them that you are fearless!\"";
    next;
    mes "\"Good luck and good bye!\"";
    goto L_Close;

L_OfferCap:
    mes "[Milly]";
    mes "\"Hi there, hero of Hurnscald!\"";
    next;
    if (@inspector == 1)
        callsub S_InspectorQuest;

    mes "\"You really have proven yourself over and over. There is no way someone could say you're not the equal of Kfahr!\"";
    next;
    mes "\"Now even the grownups are respecting you as a hero as great as Kfahr!\"";
    next;
    mes "\"I have something I want to give you...\"";
    next;
    mes "\"I was given two of those helicopter beanie caps at my birthday. I told everyone that it was what I really wanted so I got two of them...\"";
    next;
    mes "\"And some other kids are picking on me for wearing it, they say it is for nerds... I would be happy to give you one of them.\"";
    next;
    mes "\"It would be great, if you wore a cap just like mine that would sure shut them up! I also want to present you with this rare hat as a token of my gratitude for everything you have done.\"";
    next;
    mes "\"I would be honoured to have the same cap as my hero!\"";
    menu
        "Thank you!", L_Cap,
        "No, thanks.", L_Idiot;

L_Cap:
    mes "[Milly]";
    mes "\"Wow, thanks for accepting my gift, it is so pleasing to know that you have the exact same cap as me!\"";
    getinventorylist;
    if (@inventorylist_count == 100 || (checkweight("BeanieCopterCap", 1) == 0))
        goto L_TooMany;
    getitem "BeanieCopterCap", 1;
    set FLAGS, FLAGS | FLAG_GOT_BEANIEHAT;
    next;
    mes "She is giggeling with exitement.";
    next;
    mes "[Milly]";
    mes "\"Come see me anytime! Goodbye!\"";
    goto L_Close;

L_Idiot:
    mes "[Milly]";
    mes "\"Are you really sure? It is a lovely cap.\"";
    menu
        "Yes, no nerd hat for me!", L_BadBye,
        "Just kidding, I want one!", L_Cap;

L_BadBye:
    mes "Tears are forming in her eyes.";
    mes "[Milly]";
    mes "\"I guess they were right, you're not any great hero! I'll give it to Kfahr instead!\"";
    next;
    mes "\"Please keep on travelling so I don't have to see you around here. It makes me sad to see you, everytime I do I'll remember how wrong I was about you.\"";
    set FLAGS, FLAGS | FLAG_DECLINED_BEANIEHAT;
    goto L_Close;

L_TooMany:
    mes "[Milly]";
    mes "\"You don't have any space left to carry it, go put some stuff in the storage and come back!\"";
    goto L_Close;

L_FinishedGood:
    mes "[Milly]";
    mes "\"Hi there, my hero!\"";
    next;
    if (@inspector == 1)
        callsub S_InspectorQuest;

    mes "\"Wear the copter beany cap in good health! See you around!\"";
    goto L_Close;

L_FinishedBad:
    mes "[Milly]";
    mes "\"Won't you continue your travels soon?\"";
    next;
    if (@inspector == 1)
        callsub S_InspectorQuest;

    mes "Milly looks away sadly.";
    goto L_Close;

L_Close:
    set @got_boneknife, 0;
    set @got_setzer, 0;
    set @saved_rossy, 0;
    set @saved_cindy, 0;
    set @inspector, 0;
    close;

S_InspectorQuest:
    menu
        "Have you seen anything strange lately?", L_NohMask_Strange,
        "Do you know anything about the recent robberies?", L_NohMask_Robbery,
        "Hello.", L_Return;

L_NohMask_Strange:
    mes "[Milly]";
    mes "\"I haven't seen anything strange.\"";
    next;
    goto L_Return;

L_NohMask_Robbery:
    mes "[Milly]";
    mes "\"No, sorry.\"";
    next;
    goto L_Return;

L_Return:
    return;
}