summaryrefslogtreecommitdiff
path: root/npc/000-2-0/julia.txt
blob: e44705bdd35240d2328820ccf9241de6a4e1fd99 (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
// Evol scripts.
// Authors:
//    4144
//    Qwerty Dragon
//    Vasily_Makarov
// Description:
//    Allows to change language and talks about what happened to him.
//    2 Bits Array:
//    ShipQuests
// Variables:
//    0 ShipQuests_Julia
//    1 ShipQuests_ChefGado
//    2 ShipQuests_Nard
// Values:
//    Julia:
//    10   Default, no quest given.
//    01   Need to see Julia.
//    02   Has been registered by Julia.
//    Gado:
//    10   Default, no quest given.
//    11   Quest accepted.
//    12   Ingredients collected, ready to poison Julia.
//    13   Julia poisoned.
//    14   Quest complete. Chef Gago wins.
//    15   Quest complete. Julia wins (poison dish returned).
//    16   Quest complete. Julia wins.
//    Nard:
//    20   Introduction of the boxes and Nard. This is displayed when the player never spoke to Nard or his box.
//    21   Nard spoke and gave access to the outdoor of the ship.
//    22   Completed the Gugli quest.
//    23   ChefGado Quest accepted.
//    24   ChefGado Quest completed and "Introduction" chapter finalized.
//    25   Reward taken from the box.

000-2-0,27,24,0	script	Julia	NPC_JULIA,2,10,{

    function ynMenu {
        if (select(l("Yes, I do."), l("No, none.")) == 1) {
            return;
        }
        closeclientdialog;
    }

    function poisonJulia {
        mes "";
        mesn;
        mesq l("Seems yummy! Let me taste it!");
        next;
        mesq l("Hmmm, hm... *cough*, *cough*, *burp*, *cough*. What... What is that?!... *cough*, *burp*... Damn Gado... *cough*");
        if (countitem(PoisonedDish) > 0) delitem PoisonedDish, 1;
        setq ShipQuests_ChefGado, 3;
        close;
    }

    function gotoSleep {
        speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
            l("You already did enough for us, follow Nard's advice and get some rest."),
            l("We are at half a day from our final destination, by the time that you wake up I'm sure that we will be there!"),
            l("Do you have any other questions for me?");
        ynMenu;
        return;
    }

    function heardRumors {
        mes "";
        mesn;
        mesq l("You shouldn't believe every tale drunken sailors tell you.");
        next;

        select
            l("Let's say the person who told me about that is well respected on this ship and never drunk.");

        mes "";
        mesn;
        mesq l("Hahaha! All sailors aboard this ship are always drunk... Well... Except... Wait, what?! Nard told you?!");
        next;
        mesq l("Doesn't he like the way I'm taking care of his ship? Everything is clean and tidy with me, rightful lieutenant of La Johanne.");
        next;
        mesq l("I give tasks to every single sailor, all day long. That should make him happy!");
        next;

        select
            l("Well... I don't think it is the best way to rule a ship. Think about it."),
            l("In fact, everything seems to work perfectly under your guidance. Nard has made the right choice.");

        if (@menu == 1)
        {
            closeclientdialog;
            end;
        }

        mes "";
        mesn;
        mesq l("I'm glad you're on my side.");
        next;
        mesq l("Take this money as a reward for your nice words.");

        setq ShipQuests_ChefGado, 6;
        Zeny += 100;
        message strcharinfo(0), l("You receive @@ E!", 100);
        getexp 8, 0;
        close;
    }

    function gotRegrets {
        mes "";
        mesn;
        mesq l("Why? And who should you bring it back to?");
        next;

        select
            l("Ehm... He was really upset because of some past stories.");

        mes "";
        mesn;
        mesq l("Gado! That coward lives in the past, I will ask Nard to punish him, again!");
        next;
        mesq l("Take this money for your wise choice. But do not try it again. The open sea has been merciful with you once... Do not further tempt the fates!");

        setq ShipQuests_ChefGado, 5;
        Zeny += 200;
        message strcharinfo(0), l("You receive @@ E!", 200);
        getexp 15, 0;
        close;
    }

    function basicSkill {
        mes "";
        mesn;
        mesq l("Let me check into it...");
        next;
        adddefaultskills;
        mesq l("Here you go, everything is fixed.");
        emotion E_HAPPY;
        next;
        mesq l("Do you have any other questions for me?");
        next;
        ynMenu;
        return;
    }

    function chooseLang {
        mes "";
        mesn;
        mesq l("Of course! Tell me which language you speak and I will change the note on the ship passenger list.");
        next;

        asklanguage(LANG_IN_SHIP);

        mes "";
        mesn;
        mesq l("Ok, done.");

        next;
        mesq l("Do you have any other questions for me?");
        next;
        ynMenu;
        return;
    }

    function whereAmI {
        mes "";
        mesn;
        mesq l("You're on a ship, we're on our way to the commercial capital of Artis.");
        next;
        mesq l("We should be there in a few days, once we arrive, I will warn the Legion of Aemil about what happened, I'm sure they can help.");
        next;
        mesq l("But for now, you can relax on the ship, or visit the island we're docked at! Its a small island, but a good place to get some exercise and stretch your legs.");
        next;
        mesq l("Do you have any other questions for me?");
        next;
        ynMenu;
        return;
    }

    function whatHappened {
        mes "";
        mesn;
        mesq l("We thought that you could help us understand this, all we know is that we found you cast in the sea, adrift on your raft.");
        next;
        mesq lg("You were in bad shape, you should be happy we found you before the sea killed you.");
        next;
        mesq l("Oh, and there was this inscription on your raft. It represents the Legion of Aemil, one of the four main guilds of Gasaron. Does that help you remember anything, anything at all?");
        next;

        select
            l("Sorry, but I can't tell you anything about that."),
            l("Nothing, sorry.");

        mes "";
        mesn;
        mesq l("No problem, do you have any other questions for me?");
        next;
        ynMenu;
        return;
    }

    function readRules {
        mes "";
        mesn;
        mesq l("Of course, they are on the left wall, go have a look at them.");
        next;
        mesq l("Do you have any other questions for me?");
        next;
        ynMenu;
        return;
    }

    function mainMenu {
        do
        {
            .@q2 = getq(ShipQuests_ChefGado);
            .@q3 = getq(ShipQuests_Nard);
            .@q4 = getq(General_Narrator);

            selectd
                rif(.@q3 == 5 && .@q4 < 1, l("What can I do now?")),
                rif(.@q3 == 3 && .@q2 == 0, l("I heard rumors about some old hostilities between you and Gado. Are they true?")),
                rif(.@q2 == 2 && countitem(PoisonedDish), l("Well... No wait, I have something for you but you shouldn't eat it... I'm taking it back to the kitchen.")),
                rif(.@q2 == 2 && countitem(PoisonedDish), l("I have brought you a tasty present for your delicate mouth.")),
                rif(getskilllv(NV_BASIC) < 6, l("Something is wrong with me, I can't smile nor sit.")),
                lg("I made a mistake, I would like to change my language."),
                l("Could you explain to me where I am?"),
                l("What happened to me?"),
                l("Can I read these rules again?"),
                l("Nothing, sorry.");

            switch (@menu)
            {
                case 1: gotoSleep; break;
                case 2: heardRumors; break;
                case 3: gotRegrets; break;
                case 4: poisonJulia; break;
                case 5: basicSkill; break;
                case 6: chooseLang .@s$; break;
                case 7: whereAmI; break;
                case 8: whatHappened; break;
                case 9: readRules; break;
                case 10: closeclientdialog; end;
            }
        } while (1);
    }

    mesn;
    mesq lg("Hello dear!");
    next;
    mesq l("What do you want today?");
    next;

    mainMenu;

OnTouch:
    .@q = getq(ShipQuests_Julia);
    if (.@q > 1) end;

    checkclientversion;

    mesn;
    mesq l("Hi, nice to see you!");
    next;
    mesq l("My name is Julia, it is me who took care of you after we found you in the sea.");
    next;
    mesq lg("I'm glad to see you're okay.");
    next;

    mesq l("I'm sure that you've got some questions for me, feel free to ask them, but first I need to tell you the rules of proper social conduct on board.");

    narrator S_LAST_NEXT,
        l("There is a paper with some rules written on it.");

    GameRules 8 | 4;

    mesn;
    mesq l("Oh, and I almost forgot! Do not give the password of your room to anybody! I am the only one who has the other key and I won't ask for yours so keep it secret and try not to use the same password for any other room in the future.");
    next;
    mesq l("If you want to read this page again, there is a copy up on the left wall.");
    next;
    mesq l("You can also read The Book of Laws at any time to see the rules.");
    setq ShipQuests_Julia, 2;
    next;
    mesq l("I think I'm done with that now. Do you have any questions?");
    next;
    mainMenu;
    end;

OnInit:
    .distance = 10;
    .quest_debug = ShipQuests_Julia;
}