summaryrefslogtreecommitdiff
path: root/npc/re/quests/quests_lighthalzen.txt
blob: a68fcb63290b7ca6fe52c8709fa2a00d6746c452 (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
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
//===== rAthena Script ======================================= 
//= Quest NPCs located in Lighthalzen
//===== By: ================================================== 
//= Ziu, Heris (translation)
//===== Current Version: ===================================== 
//= 1.1
//===== Compatible With: ===================================== 
//= rAthena SVN
//===== Description: ========================================= 
//= Quests related to Lighthalzen City.
//===== Additional Comments: ================================= 
//= 1.0 Updated to match the new Izlude Map. [Masao]
//= 1.1 Added Somatology Laboratory F4 quest. [Euphy]
//============================================================ 

// Renewal split [Daegaladh]
//============================================================
izlude,171,73,6	duplicate(Scamp)	Scamp#2	853

// Somatology Laboratory F4
//============================================================
lighthalzen,303,304,5	script	Jerome Jameson#start	904,{
	if (lhz_dun04 == 0) {
		mes "[Jerome Jameson]";
		mes "Wow, what a "+((Sex)?"strong man!":"beautiful dame!");
		next;
		mes "[Jerome Jameson]";
		mes ((Sex)?"Sir":"Ma'am")+", please take heed -- as soon";
		mes "as a dangerous rumor aroused about";
		mes "the endangerment of everyone in";
		mes "town, the best thing to do is lock";
		mes "your doors.";
		
		// To do: check BaseLevel requirement.
		if (BaseLevel < 90 || hg_tre < 54) close;

		next;
		select("Dangerous rumor?");
		mes "[Jerome Jameson]";
		mes "Strong rumors have been heard from";
		mes "Rekenber Investigation Institute";
		mes "about terrible, secret experiments";
		mes "with human beings!";
		next;
		select("What? Experiments?");
		mes "[Jerome Jameson]";
		mes "Yes. Biological experiments!!";
		mes "Experiments with human beings";
		mes "conducted in the undergrounds of";
		mes "these very slums. Apparently, they";
		mes "have spread the rumors upon being";
		mes "denied of social benefits.";
		next;
		mes "[Jerome Jameson]";
		mes "This rumor cannot go about";
		mes "unhandled. The biological";
		mes "experiments that have been carried";
		mes "out in this place can be real.";
		mes "This really needs to be";
		mes "investigated, and soon!";
		setquest 5109;
		set lhz_dun04,1;
		close;
	}
	mes "[Jerome Jameson]";
	mes "Please investigate the deeper";
	mes "parts of the laboratory. I hope";
	mes "to hear from you soon.";
	close;
}

// Is this the correct behavior? (limited and conflicting sources)
// -- iRO: lhz_dun03 warps directly to que_lhz.
// -- Ziu: NPC in lhz_dun04 warps into que_lhz.
function	script	lhz4enter	{
	if (getmapusers("que_lhz") == 0 && mobcount("que_lhz","#controllhz4::OnMyMobDead") < 1) {
		if (getarg(0) == 0) {
			mes "- Having Jerome Jameson's orders";
			mes "in mind, you hold your breath and";
			mes "descend the flooded flight of";
			mes "stairs. -";
		} else {
			mes "[Researcher]";
			mes "Who are you?";
			mes "................";
			emotion e_omg;
			next;
			mes "The man runs away and you go after him.";
		}
		if (lhz_dun04 > 1) {
			changequest 5110,5109;
			set lhz_dun04,1;
		}
		close2;
		// Check twice because of 'next'.
		if (getmapusers("que_lhz") == 0 && mobcount("que_lhz","#controllhz4::OnMyMobDead") < 1) {
			donpcevent "#lhz4mes1::OnEnable";
			warp "que_lhz",244,52;
		}
		end;
	}
	mes "Right now there are other people inside. Wait for your turn.";
	close;
}

lhz_dun03,239,77,0	script	#warplhz3lhz4	45,1,1,{
OnTouch:
	if (lhz_dun04 == 0) {
		mes "It doesn't make sense to go down these flooded stairs.";
		close;
	} else if (lhz_dun04 < 6) {
		callfunc "lhz4enter",0;
		end;
	}
	warp "lhz_dun04",244,52;
	end;
}
lhz_dun04,245,61,0	warp	#warplhz4lhz3	1,1,lhz_dun03,240,74

// Does this portal exist?
que_lhz,245,61,0	warp	#warplhzqlhz3	1,1,lhz_dun03,240,74

que_lhz,244,52,0	script	#lhz4mes1	-1,2,2,{
OnTouch:
	mes "- You find another flight of";
	mes "stairs that is raised and deviates";
	mes "from the flooded path. -";
	// Missing dialogue.
	close2;
	donpcevent "#lhz4mes1::OnDisable";
	end;
OnInit:
OnDisable:
	disablenpc "#lhz4mes1";
	end;
OnEnable:
	enablenpc "#lhz4mes1";
	end;
}

lhz_dun04,151,276,3	script	Researcher#lhz4	865,{
	if (lhz_dun04 == 0) {
		mes "[Researcher]";
		mes "................";
		close;
	} else if (lhz_dun04 < 6) {
		callfunc "lhz4enter",1;
		end;
	} else if (lhz_dun04 == 6) {
		mes "Think twice before saying that these samples are a reason to shut this place down.";
		next;
		mes "["+strcharinfo(0)+"]";
		mes "You're stopping me for doing nothing good? What about the last four men I've created?";
		next;
		mes "[Wolfchev]";
		mes "Hmm. This place will be completely flooded...";
		next;
		mes "[Wolfchev]";
		mes "What is the problem?";
		next;
		mes "[Wolfchev]";
		mes "Hmm... All this burocracy is ruining my laboratory. For God's sake!";
		next;
		mes "["+strcharinfo(0)+"]";
		mes "Hey! Wolfchev!!";
		next;
		mes "[Wolfchev]";
		mes "Oh yes? To please them all! ^FF0080The different specimen^000000 are organically connected to each other.";
		next;
		mes "[Wolfchev]";
		mes "Perhaps the boss of these ^00FF00things^000000...";
		mes "My inability to control my own experiment... Here, are all the ^808000slaves used as decoys^000000 and the laboratory will be shut down.";
		next;
		mes "["+strcharinfo(0)+"]";
		mes "Hey, Wolfchev!! This ^00FF00boss^000000 you're talking about. Where is it?";
		next;
		mes "[Wolfchev]";
		mes "...in my laboratory. I awakened it. I tried to use it to destroy them all, but it didn't work... you'll have to do it...";
		next;
		mes "["+strcharinfo(0)+"]";
		mes "How can I get access to your laboratory?";
		next;
		mes "[Wolfchev]";
		mes "Now... One moment!";
		mes "I will help you.";
		next;
		mes "[Wolfchev]";
		mes "Luckily, the boss hasn't awaken sober, though he's still strong and destructive.";
		next;
		mes "[Wolfchev]";
		mes "But it's still dangerous. He wil release his colleagues and this means we don't have much time here.";
		set lhz_dun04,7;
		completequest 5111;
		setquest 5113;
		setquest 5114;
		setquest 5115;
		setquest 5116;
		setquest 5117;
		setquest 5118;
		setquest 5119;
		setquest 5120;
		setquest 5121;
		setquest 5122;
		setquest 5123;
		setquest 5124;
		setquest 5125;
		close;
	} else if (lhz_dun04 == 7) {
		mes "[Wolfchev]";
		mes "Are you going alone?";
		mes "You will need a really good group to bypass the system and defeat the boss.";
		close;
	}
	end;
}

que_lhz,207,75,3	script	Researcher#ins	865,3,3,{
OnTouch:
	if (lhz_dun04 == 1) {
		mes "[Researcher]";
		mes "..........";
		next;
		mes "["+strcharinfo(0)+"]";
		mes "You! Are you professor Wolfchev?";
		emotion e_omg,1;
		next;
		mes "[Wolfchev]";
		mes "Many people come here looking for me. But most of them are reluctant to.";
		mes "What do you want?";
		emotion e_gg;
		next;
		mes "["+strcharinfo(0)+"]";
		mes "I've heard rumors about biological experiments.";
		mes "Wolfchev!!";
		next;
		mes "["+strcharinfo(0)+"]";
		mes "These experiments...";
		next;
		mes "[Wolfchev]";
		mes "I think I know what you're gonna say. Are you accusing me of something?";
		mes "I don't want to hear more of that.";
		mes "You better leave.";
		emotion e_gg;
		next;
		mes "[Wolfchev]";
		mes "They seem to have cried for a long time... I'm busy, excuse me!";
		next;
		mes "From Wolfchev's eyes tears welled and he started laughing before running away.";
		next;
		mes "["+strcharinfo(0)+"]";
		mes "Hey! Wolfchev there...";
		emotion e_omg,1;
		changequest 5109,5110;
		set lhz_dun04,2;
		close2;
		warp "que_lhz",96,136;
		end;
	}
	mes "[Researcher]";
	mes "..........";
	close;
}

que_lhz,94,119,3	script	Researcher#ins2	865,{
	if (lhz_dun04 == 2) {
		mes "[Wolfchev]";
		mes "Hehehe. You are really persistent. What do you want from someone like me?";
		emotion e_swt2;
		next;
		mes "["+strcharinfo(0)+"]";
		mes "Wolfchev... You've admitted it's dangerous already. And all these investigations...";
		next;
		mes "[Wolfchev]";
		mes "You're right...hehe.";
		next;
		mes "["+strcharinfo(0)+"]";
		mes "Your research is too dangerous. Do you think everybody wants it to keep going?";
		next;
		mes "[Wolfchev]";
		mes "Everyone wants to be strong and dominate the others. Have their obedience, respect and attention. Don't you want that? Hehe.";
		emotion e_gg;
		next;
		mes "["+strcharinfo(0)+"]";
		mes "... ... ...";
		next;
		mes "[Wolfchev]";
		mes "With such a dangerous life, avoiding being damaged... Don't you see it?. Hehe.";
		next;
		mes "Again, Wolfchev hastily escapes.";
		next;
		mes "["+strcharinfo(0)+"]";
		mes "Oh! He's far... and...";
		set lhz_dun04,3;
		close2;
		warp "que_lhz",148,215;
		end;
	}
	mes "[Researcher]";
	mes "..........";
	close;
}
que_lhz,147,224,3	script	Researcher#ins3	865,{
	if (lhz_dun04 == 4 || mobcount("que_lhz","#controllhz4::OnMyMobDead") > 0) {
		mes "[Wolfchev]";
		mes "Wolfchev is freaking out. He is out of his mind.";
		emotion e_turn;
		close;
	} else if (lhz_dun04 == 3) {
		mes "[Wolfchev]";
		mes "You really are a bothersome little";
		mes "tick, aren't you? Isn't that";
		mes "apparent to you at all?";
		next;
		mes "["+strcharinfo(0)+"]";
		mes "... ... ...";
		emotion e_dots,1;
		next;
		mes "Wolfchev didn't want to talk to you anymore, so while laughing he pressed a button on his hand. Then he went mad.";
		specialeffect EF_SIGHTRASHER;
		next;
		mes "[Wolfchev]";
		mes "Unfortunately to you, I will beat you here.";
		donpcevent "#controllhz4::OnEnable";
		next;
		mes "[Wolfchev]";
		mes "You're such a fool.";
		emotion e_gasp;
		next;
		mes "[Wolfchev]";
		mes "Look at all these experimental bodies you'll have to deal and see how good they are.";
		next;
		donpcevent "#controllhz4::OnEnable2";
		progressbar "ffff00",6;
		set lhz_dun04,4;
		next;
		mes "[Wolfchev]";
		mes "NO!! ...Look what you did!! You";
		mes "wreckless madman!!!";
		emotion e_omg;
		next;
		mes "[Wolfchev]";
		mes "Go back!";
		next;
		mes "First, let's destroy all these experiments!";
		close;
	} else if (lhz_dun04 == 5) {
		mes "Wolfchev is freaking out. He is out of his mind.";
		next;
		mes "["+strcharinfo(0)+"]";
		mes "*Slaps Face* Hey, snap out of it!";
		mes "We've destroyed them!";
		specialeffect EF_STUNATTACK;
		sleep2 1000;
		specialeffect EF_STUNATTACK;
		next;
		mes "["+strcharinfo(0)+"]";
		mes "Let's get out of here first! Is there a place we can go?";
		specialeffect EF_DARKBREATH;
		emotion e_no,1;
		next;
		mes "[Wolfchev]";
		mes "This. My laboratory... My laboratory...";
		next;
		mes "["+strcharinfo(0)+"]";
		mes "The laboratory? Where am I indeed?";
		next;
		mes "[Wolfchev]";
		mes "Back to the beggining... here's when...";
		next;
		mes "- Wolfchev weakly points to the 12 o' clock direction. -";
		next;
		mes "I have to go to ^0000FF Wolfchev's Laboratory^000000...";
		changequest 5110,5111;
		set lhz_dun04,6;
		donpcevent "#controllhz4d::OnEnable";
		close;
	} else if (lhz_dun04 == 6) {
		mes "I have to go to ^0000FF Wolfchev's Laboratory^000000...";
		close;
	}
	end;
}

-	script	Awake Specimen#lhz	-1,{
	end;
OnInit:
OnDisable:
	hideonnpc strnpcinfo(0);
	end;
OnEnable:
	hideoffnpc strnpcinfo(0);
	end;
OnEffect1:
	specialeffect EF_SUI_EXPLOSION;
	end;
OnEffect2:
	specialeffect EF_BEGINASURA;
	end;
OnEffect3:
	specialeffect EF_FLASHER;
	end;
}
que_lhz,148,231,0	duplicate(Awake Specimen#lhz)	Awake Specimen#0	2244
que_lhz,140,231,1	duplicate(Awake Specimen#lhz)	Awake Specimen#1	2244
que_lhz,140,224,2	duplicate(Awake Specimen#lhz)	Awake Specimen#2	2244
que_lhz,140,216,3	duplicate(Awake Specimen#lhz)	Awake Specimen#3	2244
que_lhz,147,216,4	duplicate(Awake Specimen#lhz)	Awake Specimen#4	2244
que_lhz,155,216,5	duplicate(Awake Specimen#lhz)	Awake Specimen#5	2244
que_lhz,155,224,6	duplicate(Awake Specimen#lhz)	Awake Specimen#6	2244
que_lhz,155,231,7	duplicate(Awake Specimen#lhz)	Awake Specimen#7	2244

-	script	#controllhz4	-1,{
OnInit:
	disablenpc "#controllhz4";
	end;
OnEnable:
	enablenpc "#controllhz4";
	donpcevent "Awake Specimen#0::OnEnable";
	donpcevent "Awake Specimen#1::OnEnable";
	donpcevent "Awake Specimen#2::OnEnable";
	donpcevent "Awake Specimen#3::OnEnable";
	donpcevent "Awake Specimen#4::OnEnable";
	donpcevent "Awake Specimen#5::OnEnable";
	donpcevent "Awake Specimen#6::OnEnable";
	donpcevent "Awake Specimen#7::OnEnable";
	end;
OnEnable2:
	initnpctimer;
	end;
OnTimer1000:
	donpcevent "Awake Specimen#0::OnEffect1";
	end;
OnTimer2000:
	donpcevent "Awake Specimen#0::OnEffect2";
	donpcevent "Awake Specimen#7::OnEffect1";
	end;
OnTimer3000:
	donpcevent "Awake Specimen#7::OnEffect2";
	donpcevent "Awake Specimen#6::OnEffect1";
	end;
OnTimer4000:
	donpcevent "Awake Specimen#6::OnEffect2";
	donpcevent "Awake Specimen#5::OnEffect1";
	end;
OnTimer5000:
	donpcevent "Awake Specimen#5::OnEffect2";
	donpcevent "Awake Specimen#4::OnEffect1";
	end;
OnTimer6000:
	donpcevent "Awake Specimen#4::OnEffect2";
	donpcevent "Awake Specimen#3::OnEffect1";
	end;
OnTimer7000:
	donpcevent "Awake Specimen#3::OnEffect2";
	donpcevent "Awake Specimen#2::OnEffect1";
	end;
OnTimer8000:
	donpcevent "Awake Specimen#2::OnEffect2";
	donpcevent "Awake Specimen#1::OnEffect1";
	end;
OnTimer9000:
	donpcevent "Awake Specimen#1::OnEffect2";
	end;
OnTimer11000:
	donpcevent "Awake Specimen#0::OnEffect3";
	donpcevent "Awake Specimen#1::OnEffect3";
	donpcevent "Awake Specimen#2::OnEffect3";
	donpcevent "Awake Specimen#3::OnEffect3";
	donpcevent "Awake Specimen#4::OnEffect3";
	donpcevent "Awake Specimen#5::OnEffect3";
	donpcevent "Awake Specimen#6::OnEffect3";
	donpcevent "Awake Specimen#7::OnEffect3";
	end;
OnTimer14000:
	donpcevent "Awake Specimen#0::OnDisable";
	donpcevent "Awake Specimen#1::OnDisable";
	donpcevent "Awake Specimen#2::OnDisable";
	donpcevent "Awake Specimen#3::OnDisable";
	donpcevent "Awake Specimen#4::OnDisable";
	donpcevent "Awake Specimen#5::OnDisable";
	donpcevent "Awake Specimen#6::OnDisable";
	donpcevent "Awake Specimen#7::OnDisable";
	end;
OnTimer16000:
	monster "que_lhz",148,231,"Awake Specimen",2244,1,"#controllhz4::OnMyMobDead";
	monster "que_lhz",140,231,"Awake Specimen",2244,1,"#controllhz4::OnMyMobDead";
	monster "que_lhz",140,224,"Awake Specimen",2244,1,"#controllhz4::OnMyMobDead";
	monster "que_lhz",140,216,"Awake Specimen",2244,1,"#controllhz4::OnMyMobDead";
	monster "que_lhz",147,216,"Awake Specimen",2244,1,"#controllhz4::OnMyMobDead";
	monster "que_lhz",155,216,"Awake Specimen",2244,1,"#controllhz4::OnMyMobDead";
	monster "que_lhz",155,224,"Awake Specimen",2244,1,"#controllhz4::OnMyMobDead";
	monster "que_lhz",155,231,"Awake Specimen",2244,1,"#controllhz4::OnMyMobDead";
	donpcevent "#controllhz4b::OnEnable";
	stopnpctimer;
	end;
OnMyMobDead:
	if (mobcount("que_lhz","#controllhz4::OnMyMobDead") < 1) {
		donpcevent "#controllhz4b::OnStop";
		donpcevent "#controllhz4c::OnEnable";
		disablenpc "#controllhz4";
		end;
	}
	end;
}

-	script	#controllhz4b	-1,{
OnInit:
OnDisable:
	disablenpc "#controllhz4b";
	end;
OnEnable:
	enablenpc "#controllhz4b";
	initnpctimer;
	end;
OnStop:
	stopnpctimer;
	donpcevent "#controllhz4b::OnDisable";
	end;
OnTimer400000:
	killmonster "que_lhz","#controllhz4::OnMyMobDead";
	mapwarp "que_lhz","lighthalzen",263,200;
	disablenpc "#controllhz4";
	disablenpc "#controllhz4b";
	stopnpctimer;
	end;
}

-	script	#controllhz4c	-1,{
OnInit:
	disablenpc "#controllhz4c";
	end;
OnEnable:
	enablenpc "#controllhz4c";
	initnpctimer;
	end;
OnTimer10000:
	mapannounce "que_lhz","Whisper of a man: Help me... Please... Aaah... I don't want to... Die....",bc_map,0x0080C0;
	donpcevent "#controllhz4d::OnEnable";
	stopnpctimer;
	disablenpc "#controllhz4c";
	end;
}

que_lhz,147,248,0	script	#controllhz4d	-1,6,4,{
OnTouch:
	if (lhz_dun04 == 4) {
		mes "Looks like it's all done.";
		set lhz_dun04,5;
		donpcevent "#controllhz4d::OnDisable";
		close;
	} else if (lhz_dun04 == 6) {
		mes "- Concrete falls from the ceiling";
		mes "due to the weakened structure of";
		mes "the lab and you tumble down the";
		mes "flight of stairs avoiding it. -";
		close2;
		warp "lhz_dun04",148,269;
		donpcevent "#lhz4mes2::OnEnable";
		donpcevent "#controllhz4d::OnDisable";
		end;
	}
	end;
OnInit:
OnDisable:
	disablenpc "#controllhz4d";
	end;
OnEnable:
	enablenpc "#controllhz4d";
	end;
}

lhz_dun04,148,269,0	script	#lhz4mes2	-1,2,2,{
OnTouch:
	if (lhz_dun04 == 6) {
		heal -Hp/2,0; // To do: check HP value.
		mes "- You awaken injured, hearing the";
		mes "sounds of footsteps all around";
		mes "you... -";
		close2;
		donpcevent "#lhz4mes2::OnDisable";
		end;
	}
	end;
OnInit:
OnDisable:
	disablenpc "#lhz4mes2";
	end;
OnEnable:
	enablenpc "#lhz4mes2";
	end;
}