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
|
// TMW Script.
// Author:
// Jesusalva
// Notes:
// Christmas 2021 - Peaceful Glade
080-3,83,155,0 script #0803exit NPC_HIDDEN,1,0,{
end;
OnTouch:
if (!isChristmas21()) { warp "081-1", 68, 31; end; }
if (!X21ED1_CLEAR()) { dispbottom l("It is too early to leave yet!"); end; }
mesn strcharinfo(0);
mesq l("Are we done here? We won't be able to return later!");
next;
if (askyesno() == ASK_YES)
warp "081-1", 68, 31;
closeclientdialog;
end;
}
/* The Story Books */
080-3,116,116,0 script Book#X21B01 NPC_NO_SPRITE,{
mes l("Gorrik, member of the Bells Society. Thanks for attending the opera.");
next;
mes l("Along this %s, you will find the instructions regarding the plot to murder Efeniunkanduti Khan, king of Tonori.", getitemlink(OperaMask));
next;
mes l("It is of utmost importance to find out what happened to Fawkes. Therefore, wear a %s and infiltrate the palace.", getitemlink(JesterMask));
next;
mes l("Beware Akhendo-Al, prince of Tonori. Even the captain of the palace guard won't get away investigating the fire.");
next;
mes l("-- @@1226|The Silver Bell@@");
close;
OnInit:
.distance=2;
end;
}
080-3,129,56,0 script Book#X21B02 NPC_NO_SPRITE,{
mes l("Gorrik's Diary, final entry");
next;
mes l("I was convinced my friend %s did not die on the explosion which destroyed Tulimshar palace. Therefore, I set out to find the truth about it.", "@@769|Guy Fawkes@@");
next;
mes l("But I had been fooled. King Khan has been murdered, and I was accused of regicide. All thanks to this accursed %s.", getitemlink(JesterMask));
next;
mes l("I am sure it was a plot so I would take the fall for the king's murder. However, I still have friends among the guard, whom know I would not kill your majesty. At least, not this way.");
next;
mes l("I'll take a %s, cut all my hair, and use the landbridge to reach the Woodlands. It should be weakly guarded, so hopefully, I'll make it out of Tonori safely.", getitemlink(Scissors));
next;
mes l("For precaution, I'll also stop using this name. Do not seek for me. For I shall exile myself until the last day of my life.");
close;
OnInit:
.distance=2;
end;
}
080-3,46,80,0 script Book#X21B04 NPC_NO_SPRITE,{
mes l("Gak's Diary, firsy entry");
next;
mes l("So my new life begun, and I realized my training as a palace guard did not really cover survival in the wilderness... Or navigation on dense forests.");
next;
mes l("But just when I was about to resign myself to my fate, to die of hunger in the middle of Argaes southeastern forests... I saw what seemed like an illusion.");
next;
mes l("A candy house. With my judgment clouded from hunger, I immediately begun eating the wall, without a care in the world. It was %s!", "@@1281|shocking@@");
next;
mes l("But suddenly, a witch came out of the cottage. I ran for my life! However, being only used to deserts instead of rainforests, I could not outrun her. I thought my life was over, but...");
next;
mes l("...instead, she just scolded me. Told me how difficult was to maintain a sweet house. I never felt so much shame in my life, it was worse than if I had actually killed the king!");
next;
mes l("From now on, I'll be a witch's apprentice, to repay for what I ate. I am nervous, but... also glad for this chance, to rebuild my life, far from the conspiracies and backstabbings of Tulimshar court.");
close;
OnInit:
.distance=2;
end;
}
080-3,64,120,0 script Book#X21B05 NPC_NO_SPRITE,{
mes l("Report to Hurnscald Government, year unknown.");
next;
mesn strcharinfo(0);
mes l("It describes a brutal goblin attack which decimated a small settlement southwest of Hurnscald, called Turnap."); // Later became known as Asphodel Moors
next;
mesn strcharinfo(0);
mes l("Apparently, the citizens there tried using %s to thwart goblin attacks, but did not account for the clan system of the goblin society.", getitemlink(GoblinMask));
next;
mesn strcharinfo(0);
mes l("...Needless to say, the goblins thought it was an invading tribe and decimated the town, killing and destroying anything on the vicinity. There has been ##Bno survivors##b.");
next;
mes l("The farthest body found was of a man called \"Gak\". According to the report, he likely tried to run away from the town alone but did not made it.");
close;
OnInit:
.distance=2;
end;
}
080-3,98,90,0 script Package#X21B06 NPC_NO_SPRITE,{
mesn strcharinfo(0);
mes l("This bag is full of pictures. I'll briefly describe them.");
next;
mes l("1. A woman wearing a %s, close to a tall man whose face is obscured by an %s.", getitemlink(WitchHat), getitemlink(OperaMask));
next;
mes l("2. A photo of Asphodel Moors, back when it was inhabited by living beings.");
next;
mes l("3. A photo of a candy cottage. There's a man tending to it, but his face is not visible.");
next;
mes l("4. A photo of two great dragons clashing against a raging one.");
next;
mes l("5. The woman from the first photo, but without her hat and... floating? hovering? well, she is lying above the abyss.");
close;
OnInit:
.distance=2;
end;
}
// FIXME: Alissa's NPC ID
080-3,85,52,0 script Alissa#ED1 NPC106,{
function rushed;
function ending;
if (!isChristmas21()) end;
if (.stable == 6) ending();
mesn;
mesq l("...");
next;
mesn strcharinfo(0);
mesq l("Alissa seems unresponsive, as if her mind wasn't fully back in the world yet.");
next;
mesn strcharinfo(0);
mesq l("Perhaps I could ##Bshow her##b something?");
next;
select
l("I really don't know what to show."),
l("A Mask of Blinking Evil"),
l("An Opera Mask"),
l("A Jester Mask"),
l("A Witch's Hat"),
l("A Goblin Mask"),
l("A Fawkes Mask"),
l("Some Scissors"),
l("A Shock Sweet");
mes "";
if (@menu < 1) { closeclientdialog; close; }
if (.memory & (2 ** @menu)) {
mesn strcharinfo(0);
mesq l("...I already showed her that.");
close;
}
/* First Cutscene */
switch (@menu) {
case 2: // Blinking Mask
rushed(5);
mesc l("Suddenly, Alissa's eyes shot open.");
next;
mesn;
mesq l("...Gorrik is... Alive...?");
break;
case 3: // Opera Mask
rushed();
break;
case 4: // Jester Mask
rushed(3);
mesn;
mesq l("...I remember... Running from a coup'detat...");
next;
mesn;
mesq l("...What happened... to him...?");
break;
case 5: // Witch Hat
rushed(1);
mesn;
mesq l("...Gorrik...");
break;
case 6: // Goblin Mask
rushed(4);
mesn;
mesq l("...Yes... A slaughter...");
break;
case 7: // Fawkes Mask
rushed();
break;
case 8: // Scissors
rushed(2);
mesn;
mesq l("...His... Past?");
break;
case 9: // Shock Candy
rushed(0);
mesn;
mesq l("...The Candy House...");
break;
}
.memory = .memory | (2 ** @menu);
close;
function rushed {
if (.stable == getarg(0, -1)) { .stable+=1; return; }
mesn strcharinfo(0);
mesq l("...No, I should look for more clues before showing this item.");
close;
}
function ending {
// FIXME: Final Cutscene
end;
mesn;
mesq l("What happened to Gorrik...?");
next;
select
l("[Tell her the truth]"),
l("[Tell her the truth]");
mes "";
// Prize?
.stable += 1;
X21ED1_DOCLEAR();
disablenpc .name$;
close;
}
OnInit:
.distance=4;
.stable=0;
.memory=0;
end;
}
|