summaryrefslogtreecommitdiff
path: root/npc/000-2-3/nard.txt
blob: 5ecdab89b95c0d82952bb2da8b7699f216999fe8 (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
// Evol scripts.
// Authors:
//    Qwerty Dragon
//    Reid
// Description:
//    Captain Nard dialogs.
//    Nard does the introduction with a small quest.
//    This quest is meant to teach the player how to use a weapon,and to bring food to the ship.
//    4 bits array:
//    ShipQuests
// Variable:
//    0    ShipQuests_Nard
//    1    ShipQuests_Gugli
//    2    ShipQuests_ChefGado
// Values:
//    00   Introduction of the boxes and Nard. This is displayed when the player never spoke to Nard or his box.
//    01   Nard spoke and gave access to the outdoor of the ship.
//    02   Completed the Gugli quest.
//    03   ChefGado Quest accepted.
//    04   ChefGado Quest completed and "Introduction" chapter finalized.
//    05   Reward taken from the box.
//    06   Intro finished
//    10   Never talked with Gugli.
//    11   Gugli gives you the task.
//    12   Gave all of the boxes to Gugli.

000-2-3,25,26,0	script	Nard	NPC_NARD,{
    .@nard = getq(ShipQuests_Nard);
    .@gugli = getq(ShipQuests_Gugli);
    .@gado = getq(ShipQuests_ChefGado);

L_Checker:
    if (.@gado > 3 && .@nard == 3) goto L_ChefQuestComplete;
    if (.@nard == 2) goto L_ChefQuestStart;
    if (.@nard == 3) goto L_ChefQuestGiven;
    if (.@nard == 4) goto L_Reward;
    if (.@nard > 5) goto L_GoBackArtis;
    if (.@nard > 4) goto L_Already;
    if (.@gugli == 2) goto L_Done;
    if (.@nard == 1) goto L_NotYet;

    mesn;
    mesq l("Hello.");
    next;
    mesq l("Let me introduce myself, I am Nard, captain of this ship.");
    next;
    mesq lg("I am pleased to see that you have woken up and are active. Elmo came here to tell me this good news!");
    next;

    setcamnpc "Elmo";
    mesn "Elmo";
    mesq l("Oh... Err, yes I did, or, well, good day to you!");
    next;
    restorecam;

    mesn;
    mesq l("Hehehe, he is a bit nervous, please forgive him, it is not everyday we have a new member in the crew!");
    next;
    mesq l("So, how do you feel? I see that Julia did a marvelous job! You look like you're in good health now.");
    next;

L_Menu:
    menu
        lg("I feel ok."), L_Ok,
        l("Who's this Julia?"), L_Julia,
        lg("I'm a bit sick..."), -;

    mes "";
    mesn;
    mesq l("Oh, I was going to ask you if you wanted to help the crew search for some food and explore the island out there.");
    next;

L_MenuQuest:
    menu
        l("What do you need?"), -,
        l("Is there a reward?"), L_NeedHead,
        l("Wait, you never came here before?"), L_DrasilIsland;

    mes "";
    mesn;
    mesq l("Oh! I like that sort of answer!");
    next;
    mesq lg("We need manpower on the island... Oh forgive me, women are also welcome, of course.", "We need manpower on the island.");
    next;

    goto L_NeedContent;

L_NeedHead:
    mes "";
    mesn;
    mesq l("Of course there is a reward for your task.");
    next;
    mesq l("Hard work always pays off!");
    next;
    mesq l("What? It's not good enough?");
    next;

L_NeedContent:
    mesq l("Our crew is like a family, and if you agree to help us, I would like to invite you to join our family!");
    next;
    mesq l("Hmm, I'll also give you one of these hats from the box near you, but only after you complete your task!");
    next;
    mesq l("Here, take this key, it opens all the doors on this ship.");
    next;
    mesq l("Now go outside and talk to Gugli, he'll tell you what we need.");
    next;

    inventoryplace JohanneKey, 1;

    setq ShipQuests_Nard, 1;
    getitem JohanneKey, 1;

    close;

L_Ok:
    mes "";
    mesn;
    mesq l("Good to know.");
    next;
    mesq l("We have made a stop at a little island, before making it on to the port of Artis.");
    next;
    mesq l("It would be good for you to do some exercise, the ship isn't big enough for that.");
    next;

    goto L_SpecialTask;

L_Julia:
    mes "";
    mesn;
    mesq l("You have an awful case of amnesia.");
    next;
    mesq l("She is the nurse and shipkeeper of this ship.");
    next;
    mesq lg("But most important, she is the one who took care of you when you were unconscious.");
    next;

L_SpecialTask:
    mesq l("I know that you are just starting to feel better, but I'd like to give you a special task.");
    next;

    goto L_MenuQuest;

L_DrasilIsland:
    mes "";
    mesn;
    mesq l("To be honest, no, never.");
    next;
    mesq l("But discovering new territories is probably the best thing that can happen to sailors, don't you think?");
    next;
    mesq l("I'm really excited, this place reminds me of an ancient mythical tree, you might know what I'm talking about...");
    emotion E_WINK;
    next;
    mesq l("As captain of this ship, I officially name this newly discovered land the ##BDrasil Island##b!");
    next;
    mesq l("Now, lets get back to business.");
    next;

    goto L_NeedContent;

L_NotYet:
    mesn;
    mesq l("You still haven't completed your tasks.");
    close;

L_Done:
    mesn;
    mesq l("Hi @@.", strcharinfo(0));
    next;
    mesq l("Elmo and Gugli told me that you did all of the tasks outside, congrats!");

    setq ShipQuests_Nard, 2;
    next;
    goto L_ChefQuestRedir;

L_ChefQuestStart:
    mesn;
    mesq lg("Elmo told me you are now considered family and are numbered among us in our activities on the island. I do so very much appreciate the efforts you did down there.");
    next;

L_ChefQuestRedir:
    mesq l("Unfortunately, we still need help from you. This time it will be a delicate task, here onboard.");
    next;
    mesq l("Elmo brought reports to me about some frictions between my old and new lieutenants. You probably already met Julia and Chef Gado.");
    next;
    mesq l("They are each valued individuals and I need them both. In the past, I probably made my share of mistakes. I regret good management is so difficult. I was wondering if you could investigate and... Sort out this situation.");
    next;

    select
        l("Of the two of them, who has 'good' on their side?");

    mes "";
    mesq l("I do not want to go pointing my finger at someone. I want to be honorable and fair, and I sense the same quality in you, so I put my trust in you. I am sure you will be able to judge and solve this troubling situation.");

    setq ShipQuests_Nard, 3;

    close;

L_ChefQuestGiven:
    mesn;
    mesq l("It seems you still have some work to do.");

    close;

L_ChefQuestComplete:
    mesn;
    mesq l("Congratulations!");
    next;
    mesq l("You are now officially part of my crew! Thanks again for your help.");
    next;
    mesq l("Take your reward from the box next to my desk!");
    next;

    select
        l("I will take it! Thank you captain!");

    setq ShipQuests_Nard, 4;
    getexp 50, 0;

//  Need to add a skill for the crew at this line.
    mes "";

L_Already:
    speech
        l("I recommend you to take a nap on the inferior level, we will soon leave this place.");

    close;

L_GoBackArtis:
    checkclientversion;
    speech S_LAST_NEXT,
        l("Enough of this island?"),
        l("Where would you like to go now?");
    switch (select(l("Let's go to Artis."),
                   l("Tell me, where are we right now?"),
                   l("I would like to stay here a bit more.")))
    {
        case 1:
            speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
                l("Let's set sail then!");

            savepoint "001-2-22", 50, 38;
            if (!getmapxy(.@map$, .@x, .@y, 0))
            {
                warp "001-2-24", .@x, .@y;
            }
            else
            {
                warp "001-2-24", 22, 27;
            }

            closeclientdialog;
            close;

        case 2:
            closeclientdialog;
            npctalk3 l("This is Drasil Island, I named it after an ancient mythical tree.");
            close;

        case 3:
            speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
                l("Ok I stay here with my paperwork if you need my help.");

            closeclientdialog;
            close;
    }

L_Reward:
    mesn;
    mesq l("Hey! There's a reward for you in the box next to me!");

    close;

OnInit:
    .bodytype = BODYTYPE_3;
    .distance = 5;
    end;
}