summaryrefslogtreecommitdiff
path: root/npc/001-1/enora.txt
blob: d676407feb23d62b42678852890f89b209bd5525 (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
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
// Evol scripts.
// Author:
//    Reid
// Description:
//    Newbie guide for Artis.
// Variables:
//    ArtisQuests_Enora
// Values:
//    0    Default.
//    1    BlackSmith quest delivered.
//    2    Chelios Quest given.
//    3    Chelios Quest done.
//    4    BlackSmith gave the sword.
//    5    Light Armor Shop quest delivered.
//    6    Light Armor Shop gave the cloths.
//    7    Market quest delivered.
//    8    Q'Pid merchant.
//    9    Market gave the potion.
//    10   Hill quest delivered.
//    11   Fluffy killed.

001-1,176,113,0	script	Enora#001-1	NPC_HUMAN_FEMALE_NOOB,{

    function enora_don {
        speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
            l("Don is renowned throughout the entire land of Aemil for his blacksmithing skills, and he is here, in Artis."),
            l("It's a great honor for us, at the Legion, to hold the security of his business!"),
            l("If you search for him you should look in the west of the city, it's the first house just after the left bridge, you can't miss it!"),
            l("Chelios, his apprentice, practices outside, mostly.");

        return;
    }

    function enora_legion {
        speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
            l("The Legion of Gasaron are a group of warriors who vowed to protect and serve their neighbours."),
            l("We hold various training sessions, and also have a task board with a heap of things to do for the city and its surroundings."),
            l("It's a good place to earn money, it can also help you to travel throughout the land!"),
            l("Each big city hosts a Legion building, Artis' building is located in the north-west.");

        return;
    }

    function enora_light_armor {
        speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
            l("The light armor shop is ran by Resa, she is part of the Merchant Guild of Artis."),
            l("She is very skilled when it comes to weaving an ordinary piece of cloth into a wonderful work of art!"),
            l("Her shop is on the west side of the city, between the Legion building and the library.");

        return;
    }

    function enora_market {
        speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
            l("The market is located in the south-east of Artis, it is known as Merchant Guild's exhibit."),
            l("You need to be a member of the Merchant Guild to have a chance there."),
            l("And I bet you don't know who is in charge of monitoring the security of this place?");

        switch (select(l("The Legion?"), l("I don't know.")))
        {
            case 1:
                speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
                    l("You hit the nail on the head, it's the Legion of Gasaron!"),
                    l("Our main responsibility in the city is to protect the Merchant Guild.");
                break;
            case 2:
                speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
                    l("Cat got your tongue?"),
                    l("..."),
                    l("Your brain liquified to match the level of a piou! It's the Legion of Gasaron.");
                break;
        }
        return;
    }

    function enora_hill {
        speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
            l("Go north from here until you find the dock warehouse, cross the bridge to the west side of the canal, continue north until you reach another bridge then cross it to the east side of the canal."),
            l("You should arrive at a park with a hill nearby.");

        return;
    }

    function enora_memories {
        speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
            l("It's so exciting to meet somebody with amnesia!"),
            l("Can't you remember anything at all? Or do you have some memories of your past?"),
            l("What happens when you try to think about it?"),
            l("Does your mind go all fuzzy or does it feel like your head is going to explode??"),
            l("Try doing that now!");

        switch (select(l("Okay, but there won't be any explosions."),
                        l("Don't get too excited about it...")))
        {
            case 1:
                narrator S_FIRST_BLANK_LINE | S_LAST_NEXT,
                    l("You concentrate and try to summon old memories from within your mind."),
                    l("You feel numb and everything around you looks foggy, but you can recall the feeling of the cold hard wood of your raft on a stormy night."),
                    l("A headache hits you and you lose your concentration.");

                speech S_LAST_NEXT,
                    l("So? You haven't exploded yet! Are you getting anything?");

                select(l("Not really. All I got was a headache..."));

                speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
                    l("It's like your memories are locked away in your head! Cool!");

                break;
            case 2:
                mes "";
                break;
        }

        speech S_LAST_NEXT,
            l("Ok, sorry. Back to our fluffies.");

        return;
    }

    function enora_reward {
        .@exp_reward = getarg(0);
        .@zeny_reward = getarg(1);

        quest_xp(.maxLevel, .@exp_reward);
        quest_gp(.maxLevel, .@zeny_reward);

        narrator S_LAST_NEXT,
            l("You received @@ EXP and @@ E.", .@exp_reward, .@zeny_reward);

        // This is silent (can be caught as a string variable)
        faction_addrep("Legion", 10);
        return;
    }

    function enora_first_quest {
        speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
            l("You probably don't have much business in this city as you don't remember who you are."),
            l("So I was going to ask if maybe you would be interested in giving me a hand with a few errands.");

        switch (select(l("I guess so. What's in it for me?"),
                        l("Of course! What do you need?")))
        {
            case 1:
                speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
                    l("Some tasks will help you become aquainted with Artis. Trust me.");
                break;
            case 2:
                mes "";
                break;
        }

        speech S_LAST_NEXT,
            l("I asked Don our blacksmith to prepare a black iron sword for morning, he should be done by now."),
            l("Go meet him, and take the package to me, it's an easy task."),
            l("You will be able to find Don's house in the west of the city, it's the first house just after the bridge on the left, you can't miss it!"),
            l("A young apprentice called Chelios might be waiting outside, speak to him, and return the package to me.");
            emotion E_HAPPY;

        setq ArtisQuests_Enora, 1;

        closeclientdialog;
        goodbye;
        close;
    }

    function enora_second_quest {
        speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
            l("Thank you for this commission, Chelios is as good as Don when it comes to forging metal."),
            l("By the way, did you ever talk with Don?"),
            l("If so, I hope that he didn't give you any hard time, sometimes he can get up on the wrong side of the bed he becomes an embittered and grumpy old man..."),
            l("Poor Chelios, I don't envy him..."),
            l("So, everything went fine?");

        switch (select(l("Chelios managed to do excellent work."),
                        l("The old man seemed to be senile.")))
        {
            case 1:
                speech S_FIRST_BLANK_LINE | S_LAST_NEXT, l("Fine, let's see his work...");
                narrator S_LAST_NEXT, l("Enora is carefully inspecting the sword.");
                speech S_LAST_NEXT,
                    l("Excellent!"),
                    l("The detail and craftsmanship that went into this sword can only be accomplished by the most practiced of blacksmiths.");

                break;
            case 2:
                speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
                    l("He may not have all of his wits but keep in mind one thing:"),
                    l("Don is renowned throughout the entire land for his blacksmith skills, and he is here, in Artis."),
                    l("It's a great honor for us, at the Legion, to hold the security of his business!");

                break;
        }

        speech S_LAST_NEXT,
            l("After this small overview of Artis, what do you think of our city?"),
            l("The Legion of Gasaron is in charge of the security of the intramural part of our cities."),
            l("The control and administration of the cities passes hands sometimes. You may find the Mana Order or the Brotherhood in charge instead of us at some point!"),
            l("But we are quite lucky here, outside of some tipsy travelers there are no big problems around here, it's not like the capital, Esperia."),
            l("Now that I think about it, I have another task for you. I asked Resa from the light armor shop to craft me some new clothes, she is a bit far from here, I can't go there because I need to watch the dock."),
            l("Her shop is on the west side of the city, between the Legion building and the library.");

        setq ArtisQuests_Enora, 5;
        enora_reward(60, 100);

        closeclientdialog;
        npctalk3 l("Thank you very much!");
        close;
    }

    function enora_third_quest {
        speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
            l("Look how splendid this @@ is!", getitemlink(ArtisTankTop, CamelCottonDye)),
            l("It's nearly as good as one from Esperia, have you ever been there?"),
            l("Ah... Sorry, I forgot, again."),
            l("I mean, you forgot... Well."),
            l("If you ever find the time, pass by Esperia, it's the greatest city in all of Gasaron!"),
            l("You can find the building of the Legion of Gasaron there, like in any other city, but Esperia is important for us as our headquarters are there.");

        do
        {
            .@q = select(l("Do you still need help?"),
                          l("What is this \"legion\"?"));
            switch (.@q)
            {
                case 1:
                    break;
                case 2:
                    enora_legion;
                    break;
            }
        } while (.@q == 2);

        speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
            l("Oh yes, I have one last errand for you, Q'Pid in the market sells potions."),
            l("It has been some days now since I asked her for a box of @@s, but she hasn't delivered anything yet.", getitemlink(PiberriesInfusion)),
            l("Please try to figure out what went wrong with this order and bring me those potions."),
            l("You will be able to find her in the market in the south-west of Artis.");

        setq ArtisQuests_Enora, 7;
        enora_reward(40, 125);

        closeclientdialog;
        npctalk3 l("Thank you very much!");
        close;
    }

    function enora_fourth_quest {
        speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
            l("Awesome!");

        speech S_LAST_NEXT,
            l("I have one more task for you. Trozz, another member of the Legion, sent me a letter earlier today."),
            l("Some citizens are worried about the growing number of Fluffies on the hill of Artis."),
            l("Children play there and can be badly hurt if they get too close to a Fluffy's nest."),
            l("It would have been easy for me to handle it but if you do it, you can earn some respect by killing Fluffies instead of their natural predators!"),
            l("Besides, I need to be here to watch out for thieves while La Johanne is docked."),
            l("You look confident. I will give you my old gear as reward and acknowledgment for your time... and take these potions as well!");

        set ArtisFluffyKilled, 0;

        inventoryplace TrainingGladius, 3;
        getitem TrainingGladius, 1;
        getitem2 ArtisTankTop, 1, 1, 0, 0, 5005, 0, 0, 0;
        getitem PiberriesInfusion, 5;
        setq ArtisQuests_Enora, 10;
        enora_reward(80, 175);

        speech S_LAST_NEXT,
            l("Do you know where the hill is?");

        switch (select(l("Yes I do."),
                        l("Please guide me.")))
        {
            case 1:
                speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
                    l("Perfect! I will wait for you here.");
                break;
            case 2:
                speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
                    l("Follow the up-stream and cross the canal twice using the two bridges north from here."),
                    l("The hill is located on the north-east of Artis.");
                break;
        }

        closeclientdialog;
        npctalk3 l("Thank you very much!");
        close;
    }

    function enora_hill_cleaned {
        if (getq2(ArtisQuests_Enora) < 9)
        {
            speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
                l("Oh no, you still have @@ Fluffies to kill.", 10 - getq2(ArtisQuests_Enora));

            return;
        }
        else if (getq2(ArtisQuests_Enora) < 10)
        {
            speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
                l("Only one more Fluffy to kill and it's done!");

            return;
        } else if (getq(ArtisQuests_Enora) == 10) {
            inventoryplace TreasureKey, 1;
        }

        speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
            l("I cannot find the words to express my gratitude for your hard work."),
            l("Keep the sword and the jacket, you deserved them!"),
            l("You now also have access to the Legion building. Good job, you earned it."),
            l("We hold various training sessions, and also have a task board with a heap of things to do for the city and its surroundings."),
            l("It's a very good place if you want to make some more money.");
            emotion E_WINK;

        if (getq(ArtisQuests_Enora) == 10)
        {
            setq ArtisQuests_Enora, 11;
            enora_reward(140, 500);
            getitem TreasureKey, 1;
            mesn;
            mesq l("Also, here is a %s. If you find a Treasure Chest somewhere, you can open it with this!", getitemlink(TreasureKey));
            next;
        }

        return;
    }

    function enora_quest_complete {
        switch (getq(ArtisQuests_Enora))
        {
            case 4:
                enora_second_quest;
                break;
            case 6:
                enora_third_quest;
                break;
            case 9:
                enora_fourth_quest;
                break;
            default:
                break;
        }

        return;
    }

    function enora_paid_potions {
        speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
            l("Are you sure that these are my potions?");

        if (askyesno() == ASK_YES)
        {
            delitem PiberriesInfusion, 5;
            enora_fourth_quest;
        }

        return;
    }

    if (getq(ArtisQuests_Enora) == 0)
    {
        speech S_LAST_NEXT,
            l("Hey! You must be @@.", strcharinfo(0)),
            l("Julia told me how they found you in the sea, on a raft with a logo of..."),
            l("...I mean log! Made of log!"),
            l("I also heard you lost all your memories? That's a shame."),
            l("I'm sure you would have some interesting stories to tell!");
    }
    else
    {
        speech S_LAST_NEXT,
            l("Hey @@!", strcharinfo(0)),
            l("What brings you here today?");
    }

    do
    {
        .@q = getq(ArtisQuests_Enora);
        select
            rif(.@q == 0, l("She told me that you had some tasks for me.")),
            rif(.@q == 4 || .@q == 6 || .@q == 9, l("I have your package.")),
            rif(.@q == 8 && countitem(PiberriesInfusion) >= 5, l("I have your package.")),
            rif(.@q >= 10, l("I cleaned up the hill.")),
            rif(.@q >= 10, l("How many Fluffies did I kill on the hill?")),
            rif(.@q >= 1, l("Who is Don?")),
            rif(.@q >= 5, l("Where is the light armor shop?")),
            rif(.@q >= 7, l("Where is the market?")),
            rif(.@q >= 10, l("Where is the hill?")),
            rif(.@q >= 1, l("What is this \"legion\"?")),
            l("I wish I could remember something..."),
            rif(.@q != 0, l("Nothing."));

        switch (@menu)
        {
            case 1:
                enora_first_quest;
                break;
            case 2:
                enora_quest_complete;
                break;
            case 3:
                enora_paid_potions;
                break;
            case 4:
                enora_hill_cleaned;
                break;
            case 5:
                speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
                    l("You killed @@ Fluffies.", getq2(ArtisQuests_Enora));
                if (getq2(ArtisQuests_Enora) > 8)
                {
                    mesq l("If you continue there will be none left!");
                    next;
                }
                break;
            case 6:
                enora_don;
            case 7:
                enora_light_armor;
                break;
            case 8:
                enora_market;
                break;
            case 9:
                enora_hill;
                break;
            case 10:
                enora_legion;
                break;
            case 11:
                enora_memories;
                break;
            case 12:
                speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
                    l("Please come back anytime!");
        }
    } while (@menu != 12);

    closeclientdialog;
    goodbye;
    close;

OnInit:
    .distance = 5;
    .maxLevel = 20;
    end;
}

function	script	EnoraKills	{
    if (getq(ArtisQuests_Enora) == 10
             && killedrid == Fluffy
             && strcharinfo(PC_MAP) == "001-1"
             && getq2(ArtisQuests_Enora) < 10)
    {
        setq(ArtisQuests_Enora, 10, getq2(ArtisQuests_Enora) + 1);
    }
    return;
}