summaryrefslogtreecommitdiff
path: root/npc/099-1/main.txt
blob: cbd57a0d5af1fed50eff0959ece46e27af1b62cc (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
099-1,35,28,0	script	Note#DD5Core	NPC400,{
    // Default distance is 4 tiles - all we need
    callfunc "PCtoNPCRange";
    if(@npc_check) end;

	mes ".:: Keshlam's Adventurer Guild ::.";
    mes "";
    mes "Welcome to the Adventurers Guild!";
    mes "Sorry I could not wait for you. It's your fault for being late.";
    next;
    mes "So, it has been a long time since you were here.";
    mes "I hope you still remember the directions?";
    mes "Hahaha! There is a lot of fake rooms in this building.";
    next;
    mes "You should have known me for long enough to know I do not take chances.";
    mes "I've put the docks where I'm waiting for you in an overlapping dimension.";
    mes "This should be enough to stop any Sparron who makes back to here.";
    next;
    mes "My dimension, my rules.";
    mes "I've set a rule that anything dying here should not respawn.";
    mes "I'm not sure if it'll work, but I did enough tests on that.";
    next;
    mes "In case you forgot, this is an, *ahem*, \"deleted\" dimension.";
    mes "You'll see notes from the adventurers who used to inhabit here.";
    mes "Maybe you even find something which used to belong to them?";
    next;
    mes "I'm sure they tried to write down possible ways to stop me.";
    mes "I do not like them, so if you find anything which belong to them...";
    mes "...Well, you're free to take it.";
    next;
    mes "I've stationed a guard here and there, to stop intruders.";
    mes "Use invisibility magic if you need to go past them.";
    mes "I'll talk to you later. Do not leave me waiting!";
    next;
    mes "Signed,";
    mes "Xakelbael the Dark";
	close;
}

099-3,69,38,0	script	Ritual Book#099-31	NPC400,{
    // Default distance is 4 tiles - all we need
    callfunc "PCtoNPCRange";
    if(@npc_check) end;

	mes ".:: Ritual Book ::.";
    mes "";
    mes "In this maze, sixteen numeric passwords lie.";
    mes "All sixteen passwords must be chanted in their sequence.";
    mes "";
    mes "Chanting can be done on the book at right.";
    mes "##9Only one player may chant all passwords.";
    mes "##9No reward is provided.";
    mes "##9If you get a number wrong, you'll be penalized!";
	close;
}

099-3,75,38,0	script	Ritual Book#099-32	NPC400,{
    // Default distance is 4 tiles - all we need
    callfunc "PCtoNPCRange";
    if(@npc_check) end;
    if ($@DD5_OPENSESAME) goto L_Complete;

	mes ".:: Ritual Book ::.";
    mes "Perform the ritual?";
    next;
    menu
        "Yes", L_RB_0,
        "No", L_close;

L_RB_0:
    mes "Say the password - ##B NULL##b";
    input @pass;

    if (@pass != $@DD5_PASSWORDS[0]) goto L_Failure;
    goto L_RB_1;

L_RB_1:
    mes "Say the password - ##B EIN##b";
    input @pass;

    if (@pass != $@DD5_PASSWORDS[1]) goto L_Failure;
    goto L_RB_2;

L_RB_2:
    mes "Say the password - ##B ZWEI##b";
    input @pass;

    if (@pass != $@DD5_PASSWORDS[2]) goto L_Failure;
    goto L_RB_3;

L_RB_3:
    mes "Say the password - ##B DREI##b";
    input @pass;

    if (@pass != $@DD5_PASSWORDS[3]) goto L_Failure;
    goto L_RB_4;

L_RB_4:
    mes "Say the password - ##B VIER##b";
    input @pass;

    if (@pass != $@DD5_PASSWORDS[4]) goto L_Failure;
    goto L_RB_5;

L_RB_5:
    mes "Say the password - ##B FUNF##b";
    input @pass;

    if (@pass != $@DD5_PASSWORDS[5]) goto L_Failure;
    goto L_RB_6;

L_RB_6:
    mes "Say the password - ##B SECHS##b";
    input @pass;

    if (@pass != $@DD5_PASSWORDS[6]) goto L_Failure;
    goto L_RB_7;

L_RB_7:
    mes "Say the password - ##B SIEBEN##b";
    input @pass;

    if (@pass != $@DD5_PASSWORDS[7]) goto L_Failure;
    goto L_RB_8;

L_RB_8:
    mes "Say the password - ##B ACHT##b";
    input @pass;

    if (@pass != $@DD5_PASSWORDS[8]) goto L_Failure;
    goto L_RB_9;

L_RB_9:
    mes "Say the password - ##B NEUN##b";
    input @pass;

    if (@pass != $@DD5_PASSWORDS[9]) goto L_Failure;
    goto L_RB_10;

L_RB_10:
    mes "Say the password - ##B ZEHN##b";
    input @pass;

    if (@pass != $@DD5_PASSWORDS[10]) goto L_Failure;
    goto L_RB_11;

L_RB_11:
    mes "Say the password - ##B ELF##b";
    input @pass;

    if (@pass != $@DD5_PASSWORDS[11]) goto L_Failure;
    goto L_RB_12;

L_RB_12:
    mes "Say the password - ##B ZWOLF##b";
    input @pass;

    if (@pass != $@DD5_PASSWORDS[12]) goto L_Failure;
    goto L_RB_13;

L_RB_13:
    mes "Say the password - ##B DREIZEHN##b";
    input @pass;

    if (@pass != $@DD5_PASSWORDS[13]) goto L_Failure;
    goto L_RB_14;

L_RB_14:
    mes "Say the password - ##B VIERZEHN##b";
    input @pass;

    if (@pass != $@DD5_PASSWORDS[14]) goto L_Failure;
    goto L_RB_15;

L_RB_15:
    mes "Say the password - ##B FUNFZEHN##b";
    input @pass;

    if (@pass != $@DD5_PASSWORDS[15]) goto L_Failure;
    goto L_Success;

L_Failure:
    mes "##1THAT WAS WRONG!";
    mes "##1THE RITUAL BACKFIRES!";
    Hp = 1;
    warp "099-1", 0, 0;
    close;

L_Success:
    $@DD5_OPENSESAME = 1;
	mes ".:: Ritual Book ::.";
    mes "The portal magic is now active.";
    close;

L_Complete:
	mes ".:: Ritual Book ::.";
    mes "The ritual was already performed.";
    close;

L_close:
	close;
}

099-3,72,75,0	script	#WarpToFinalShowdown	NPC424,0,0,{
    // Default distance is 4 tiles - all we need
    callfunc "PCtoNPCRange";
    if(@npc_check) end;

    if ($@DD5_TSWITCH != 18)
        goto L_NotSwitch;

    if (!$@DD5_OPENSESAME)
        goto L_NotSesame;

	mes "Walk here to go to the ##BFinal Showdown##b.";
    mes "";
    mes "##1##BWARNING:##b##0 Come prepared!";
	close;

L_NotSwitch:
    mes "All 18 switches must be flipped in order to this warp to work!";
    close;

L_NotSesame:
    mes "The ritual need to be performed to use this warp!";
    close;

L_Busy:
    mes "This warp cannot be used while players are on the other side!";
    close;

OnTouch:
    if ($DOOMSDAY_VANILLA)
        goto L_Menu;

    if ($@DD5_TSWITCH != 18)
        goto L_NotSwitch;

    if (!$@DD5_OPENSESAME)
        goto L_NotSesame;

    goto L_Menu;

L_Menu:
    if ($@DD5_STATUS > 1)
        goto L_Busy;

	mes b(l("Go to the final showdown?"));
    mes l("You cannot return from there!");
    mes "";
    mesc l("Warning: Warp will be unavailable during fights!"), 1;
    // Since Evolved, the rose is required to begin the fight, not for the warp
    if (!$@DD5_STATUS) {
        mes "";
        mesc l("Cost: 1x %s", getitemlink(BlackRose)), 1;
        if (!countitem(BlackRose)) close;
    }

    menu
        "Yes", L_Yes,
        "No", L_No;
L_No:
    close;
L_Yes:
    warp "099-5", 50, 66;
    if (!$@DD5_STATUS) {
        // Ensure the fight will NOT initiate w/o the rose
        delitem BlackRose, 1;
        donpcevent "#TMWFinalExam::OnWarn0";
    }
    close;
}