summaryrefslogtreecommitdiff
path: root/npc/jobs/3-2/sorcerer.txt
blob: c3147f9e72148e9fb6b63fc81e1365acb14224fb (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
//===== rAthena Script ======================================= 
// Sorcerer Job change Quest
//===== By: ================================================== 
//= Masao
//= Credits: Muad_Dib
//===== Current Version: ===================================== 
//= 1.1
//===== Compatible With: ===================================== 
//= Any rAthena SVN
//===== Description: ========================================= 
//= [AEGIS Conversion]
//= Job change Quest from Sage / Professor -> Sorcerer.
//===== Additional Comments: ================================= 
//= 1.0 First Version.
//= 1.1 Cleaning. [Euphy]
//============================================================

gef_tower,102,34,5	script	Merito	742,{

	if(checkweight(1201,1) == 0){
		mes "You packed so much in your bag. Try again after emptying your bag.";
		close;
	}
	mes "[Merito]";
	if (Class == Job_Sorcerer || Class == Job_Sorcerer_T || Class == Job_Baby_Sorcerer){
		mes "Please get on with the sprits well~ You should~!";
		close;
	}
	if (JobLevel < 50 || SkillPoint != 0 || BaseLevel < 99){
		mes "Wow~ you are a young adventurer. I envy you.";
		close;
	}
	if ((Class != Job_Sage) && (Class != Job_Professor) && (Class != Job_Baby_Sage)){
		mes "Wow~ you are a young adventurer. I envy you.";
		close;
	}
	if (job_soc < 1){
		mes "Welcome. What can I help you with?";
		next;
		select("Do you know about Sorcerers?");
		mes "[Merito]";
		mes "Wouldn't it be more comfortable to just live as a scholar? Sorcerers are busy communicating with the spirits and don't have much time to read books...";
		next;
		mes "[Merito]";
		mes "What made you want to be a sorcerer?";
		next;
		if(select("The spirit of fire led me here.:The spirit of water led me here.:The spirit of earth led me here:The spirit of meat led me here.")==4) {
			mes "[Merito]";
			mes "That kind of spirit doesn't exist!";
			close;
		}
		mes "[Merito]";
		mes "Oh, I see.";
		mes "You must be born with the natural ability to see that you already communicated with the spirits, or you must be an excellent liar.";
		next;
		mes "[Merito]";
		mes "Hmm... Then first, can you write down your name on this list?";
		next;
		if(select("Write name.:I won't.")==2){
			mes "[Merito]";
			mes "Well, okay. See you again when you get a chance.";
			close;
		}
		mes "[Merito]";
		mes "So, you are ["+strcharinfo(0)+"].";
		next;
		mes "[Merito]";
		mes "Give me a second to register your name.";
		mes "Talk to me again in a second.";
		set job_soc,1;
		close;
	}
	else if (job_soc == 1){
		mes "Good, then I'll give you a short explanation about the Sorcerer.";
		next;
		mes "[Merito]";
		mes "["+strcharinfo(0)+"], can you handle magic skillfully?";
		next;
		if(select("Yes, I can.:No, I'm not really good at it.")==2){
			mes "[Merito]";
			mes "What!? You don't know how to use magic?";
			mes "What are you doing here then? Get out of here. Right now!";
			close;
		}
		mes "[Merito]";
		mes "Okay, that should be obvious.";
		mes "Of course, Sorcerers use magic, too. But, do you know the main difference Sorcerers have from other magical jobs?";
		next;
		switch(select("They know how to sing.:They're all old fogies.:They can deal with the spirits.")){
		case 1:
			mes "[Merito]";
			mes "Well maybe some but that's not the main difference.";
			close;
		case 2:
			mes "[Merito]";
			mes "What! How dare you!?!";
			close;
		case 3:
			break;
		}
		mes "[Merito]";
		mes "That's right. That is the most distinguishing feature that Sorcerers have.";
		next;
		mes "[Merito]";
		mes "When the people who want to be a Sorcerer come, the first thing we do is to check whether they can communicate with spirits or not.";
		next;
		mes "[Merito]";
		mes "So that's the basic introduction, so you just need to decide whether or not you want to take the qualification test.";
		next;
		mes "[Merito]";
		mes "Well, it's all up to you. What are you going to do?";
		next;
		switch(select("I will take the test.:I'll do it later.")){
		case 1:
			mes "[Merito]";
			mes "Okay. ";
			mes "Then I'll hand it over to Karacas who is on the 4th floor. He will guide you through the process of the test.";
			set job_soc,2;
			setquest 12096;
			close;
		case 2:
			mes "[Merito]";
			mes "What? I was sure that you wanted to become a Sorcerer.";
			close;
		}
	}
	else if (job_soc > 1){
		mes "How about your test? Well, Karacas is a little lazy, so that might bother you some...";
		close;
	}
}

gef_tower,113,161,5	script	Karacas	754,{

	if(checkweight(1201,1) == 0){
		mes "You packed so much in your bag. Try again after emptying your bag.";
		close;
	}
	mes "[Karacas]";
	if (Class == Job_Sorcerer || Class == Job_Sorcerer_T || Class == Job_Baby_Sorcerer){
		mes "You look happy. Have a great journey.";
		close;
	}
	if (JobLevel < 50 || SkillPoint != 0 || BaseLevel < 99){
		mes "Is there anything I can do for you?";
		close;
	}
	if ((Class != Job_Sage) && (Class != Job_Professor) && (Class != Job_Baby_Sage)){
		mes "Is there anything I can do for you?";
		close;
	}
	if (job_soc < 2){
		mes "More people are visiting Geffen Tower thesedays.";
		close;
	}
	else if (job_soc == 2){
		mes "....";
		next;
		select("Ah... excuse me~");
		mes "[Karacas]";
		mes "... (Z z z~)";
		next;
		selecT("Hm hm!!!~");
		mes "[Karacas]";
		mes "Aaaak!! ";
		mes "Oh, my... ";
		next;
		mes "[Karacas]";
		mes "Wh... where are you from?";
		next;
		select("Merito told me to visit you.");
		mes "[Karacas]";
		mes "I see, give me a moment.";
		mes "The list... has already arrived.";
		next;
		mes "[Karacas]";
		mes "So, you are ["+strcharinfo(0)+"]... right?";
		next;
		if(select("Yes, I am.:No, I'm not!")==2){
			mes "[Karacas]";
			mes "Oh, there must be some mistake in the list, I think. Will you come again later?";
			close;
		}
		mes "[Karacas]";
		mes "Before you take the Sorcerer test, let me give you the basic information.";
		next;
		mes "[Karacas]";
		mes "The way to get a Sorcerer registration ticket is really simple. You just need to go and find one of each spirit scattered around the world, and then convert their power into the shape of a certain material.";
		next;
		mes "[Karacas]";
		mes "Sounds easy, right?";
		next;
		select("Ahh... sir. Is that really possible?");
		mes "[Karacas]";
		mes "Well, it is impossible to meet every spirit by yourself. You need to train yourself very hard to give a shape to the spirits and see them clearly through your eyes.";
		next;
		mes "[Karacas]";
		mes "So, usually we perform a certain ceremony parade toward the place where we can feel the spirits.";
		next;
		mes "[Karacas]";
		mes "I will tell you how to do that. So listen carefully.";
		next;
		mes "[Karacas]";
		mes "Usually we cannot see the spirits with our eyes but there is a way to realize the part of the spirits through a special medium.";
		next;
		mes "[Karacas]";
		mes "For example, if you visit the place where the spirit of wind stays with a certain amount of Wind of Verdure, the reaction of the spirit is amplified.";
		next;
		mes "[Karacas]";
		mes "Likewise, if you approach the place where the spirit of fire seems to stay while you have a certain amount of Red Blood, the spirit will show the adverse reaction.";
		next;
		mes "[Karacas]";
		mes "Sorcerers use this basic principle, this is the essential knowledge that Sorcerers need to have to reach the spirits.";
		next;
		select("So communicating with spirits...");
		mes "[Karacas]";
		mes "Right~";
		mes "This job is based on the power of spirits.";
		next;
		mes "[Karacas]";
		mes "Hmm, but it might be hard for someone like you who's focused only on reading books...";
		next;
		mes "[Karacas]";
		mes "First, you need to bring the following materials needed for the test.";
		next;
		mes "[Karacas]";
		mes "3 Wind of Verdure.";
		mes "3 Crystal Blue.";
		mes "3 Red Blood.";
		mes "3 Green Live.";
		next;
		mes "[Karacas]";
		mes "When you bring these materials, I'll tell you the next step.";
		set job_soc,3;
		changequest 12096,12097;
		close;
	}
	else if (job_soc == 3){
		if ((countitem(992) > 2) && (countitem(991) > 2) && (countitem(990) > 2) && (countitem(993) > 2)){
			mes "Oh, you have all the materials.";
			next;
			select("What should I do next?");
			mes "[Karacas]";
			mes "I'll tell you about it now. First, I'll tell you the places for the test. You better write them down.";
			next;
			mes "[Karacas]";
			mes "1. 1st floor of Ice Cave";
			mes "2. 1st floor of Thor Volcano Dungeon";
			mes "3. 3rd floor of Mjolnir Dead Pit";
			mes "4. 2nd floor of Kunlun Dungeon";
			next;
			mes "[Karacas]";
			mes "We have set up the detecting poles in these 4 places so that ordinary people can communicate with the spirits.";
			next;
			mes "[Karacas]";
			mes "Be aware that these detecting poles are activated only when you have more than the certain amount of property stones.";
			next;
			mes "[Karacas]";
			mes "You need to prepare at least 3 small stones for each property. For example, you need Wind of Verdure, not Rough Wind.";
			next;
			select("So I need the property stones...");
			mes "[Karacas]";
			mes "Yes, you have quick wits!";
			next;
			mes "[Karacas]";
			mes "Once you bring the stones to the poles, put them into the property decomposing machine which is attached to the pole. The detecting pole will be activated, and you can communicate with the spirit.";
			next;
			mes "[Karacas]";
			mes "If you succeed, you can extract a part of the spirit as a reagent. If you fail, the property stone will break up.";
			next;
			mes "[Karacas]";
			mes "Of course if you are lucky enough, if you fail, a Wind of Verdure can be changed into a Rough Wind... Well, that's not a common situation so let's leave that out of the discussion for now.";
			next;
			select("What if I run out of stones?");
			mes "[Karacas]";
			mes "Ahahaha... If you run out of property stones, you simply have to get more.";
			next;
			mes "[Karacas]";
			mes "So people who have this test usually start with as many property stones as they can carry. The amount I told you to get is just the bare minimum.";
			next;
			mes "[Karacas]";
			mes "If you are an advanced Sorcerer, you will be able to talk with spirits without going through this process again. But beginners need to use that kind of medium to talk with them.";
			next;
			select("So the reagent is...?");
			mes "[Karacas]";
			mes "We don't know which reagent is going to be made from the spirits. It differs by the state of spirits.";
			next;
			mes "[Karacas]";
			mes "When you succeed in getting 3 different kinds of reagents, you can come back.";
			next;
			mes "[Karacas]";
			mes "A reagent that one spirit makes won't be over 2 kinds so if you're going to make 3 kinds of reagents, I suggest you go around several places.";
			next;
			mes "[Karacas]";
			mes "Have any questions?";
			next;
			if(select("No.:Please explain it again.")==2){
				mes "[Karacas]";
				mes "Haha, then can I have a cup of water for a minute? Please come and find me again later.";
				next;
			}
			mes "[Karacas]";
			mes "Then I'll write down the progress that I've summarized shortly. Wait...";
			next;
			mes "^000099You got a paper on which the way of communicating with spirits is written. For more information please open your quest window^000000.";
			set job_soc,4;
			changequest 12097,12098;
			close;
		}
		mes "Before I let you know the progressing way, you'll need to bring some required material.";
		next;
		mes "[Karacas]";
		mes "3 Wind of Verdure.";
		mes "3 Crystal Blue.";
		mes "3 Red Blood.";
		mes "3 Green Live.";
		next;
		mes "[Karacas]";
		mes "When you bring these basic things, I'll guide you to the next step.";
		close;
	}
	else if (job_soc == 4){
		if (countitem(6276) && countitem(6278) && countitem(6277)){
			mes "Wow~ your skill is good.";
			mes "I thought you'd be overwhelmed by the spirits but you've managed to get the effective medicine!";
			next;
			select("Is this all I need to do?");
			mes "[Karacas]";
			mes "Well done. First, I will organize the miraculous medicine so please wait a moment.";
			delitem 6276,1;
			delitem 6278,1;
			delitem 6277,1;
			set job_soc,5;
			completequest 12098;
			close;
		}
		mes "It's not an easy thing to get the desired effect by communicating with spirits.";
		next;
		mes "[Karacas]";
		mes "Don't give up and keep on trying~";
		close;
	}
	else if (job_soc == 5){
		mes "Originally my teacher needs to check the Sorcerer job change but after he went out to find the spirit of fish, I can't see him. So I'll check it myself.";
		next;
		mes "[Karacas]";
		mes "Dear ["+strcharinfo(0)+"],";
		mes "you went around the rough wilds to open the door as a Sorcerer and passed all the requirements that our Academy has given.";
		next;
		mes "[Karacas]";
		mes "Of course it is just a beginning, we don't know which spirit you're going to commune with or what kind of hardships await you.";
		next;
		mes "[Karacas]";
		mes "But with the ability you've shown until now, you will be capable to do anything from now on. Dear ["+strcharinfo(0)+"]";
		next;
		mes "[Karacas]";
		mes "Moreover, I formally acknowledge that you've completed all the job transfer tests of the Sorcerer Academy.";
		next;
		mes "[Karacas]";
		mes "Congratulations, ["+strcharinfo(0)+"]";
		jobchange roclass(eaclass()|EAJL_THIRD);
		getitem 5756,1;
		getitem 2795,1;
		next;
		mes "[Karacas]";
		mes "I hope that you gain more communion with spirits from now on.";
		close;
	}
}

thor_v01,64,252,0	script	Spirit Detecting Staff#1	836,{

	if ((job_soc == 4) && (countitem(990) > 2)){
		progressbar "ffff00",5;
		set .@rand,rand(1,70);
		if (.@rand < 10){
			if ((job_soc == 4) && (countitem(990) > 2) && (countitem(6276) < 1)){
				mes "You got a reagent by communicating with an unseen spirit.";
				delitem 990,3;
				getitem 6276,1;
				close;
			}else if ((job_soc == 4) && (countitem(990) > 2) && (countitem(6276) > 0)){
				mes "It doesn't seem like you got anything special from the spirits.";
				delitem 990,3;
				close;
			}
			mes "The spirit is mad at you.";
			close;
		}else if ((.@rand > 9) && (.@rand < 16)){
			if ((job_soc == 4) && (countitem(990) > 2) && (countitem(6278) < 1)){
				mes "You got a reagent by communicating with an unseen spirit.";
				delitem 990,3;
				getitem 6278,1;
				close;
			}else if ((job_soc == 4) && (countitem(990) > 2) && (countitem(6278) > 0)){
				mes "It doesn't seem like you got anything special from the spirits.";
				delitem 990,3;
				close;
			}
			mes "The spirit is mad at you.";
			close;
		}else if (.@rand == 56){
			if ((job_soc == 4) && (countitem(990) > 2)){
				mes "The spirit combined the property stones into a huge property stone.";
				delitem 990,3;
				getitem 994,1;
				close;
			}
			mes "The spirit is mad at you.";
			close;
		}
		mes "You used the property stones but it looks like you failed to communicate with the spirits.";
		delitem 990,3;
		close;
	}else if ((job_soc == 4) && (countitem(990) < 3)){
		mes "I can see the detecting staff that's been installed by the Sorcerer Union to communicate with the spirits .";
		next;
		mes "If you have the suitable property stones, you should be able to commune with the spirits.";
		close;
	}
	mes "I can see the detecting staff that's been installed by the Sorcerer Union to communicate with the spirits .";
	close;
}

ice_dun01,274,274,0	script	Spirit Detecting Staff#2	836,{

	if ((job_soc == 4) && (countitem(991) > 2)){
		progressbar "ffff00",5;
		set .@rand,rand(1,70);
		if (.@rand < 10){
			if ((job_soc == 4) && (countitem(991) > 2) && (countitem(6278) < 1)){
				mes "You got a reagent by communicating with an unseen spirit.";
				delitem 991,3;
				getitem 6278,1;
				close;
			}else if ((job_soc == 4) && (countitem(991) > 2) && (countitem(6278) > 0)){
				mes "It doesn't seem like you got anything special from the spirits.";
				delitem 991,3;
				close;
			}
			mes "The spirit is mad at you.";
			close;
		}else if ((.@rand > 9) && (.@rand < 16)){
			if ((job_soc == 4) && (countitem(991) > 2) && (countitem(6276) < 1)){
				mes "You got a reagent by communicating with an unseen spirit.";
				delitem 991,3;
				getitem 6276,1;
				close;
			}else if ((job_soc == 4) && (countitem(991) > 2) && (countitem(6276) > 0)){
				mes "It doesn't seem like you got anything special from the spirits.";
				delitem 991,3;
				close;
			}
			mes "The spirit is mad at you.";
			close;
		}else if (.@rand == 56){
			if ((job_soc == 4) && (countitem(991) > 2)){
				mes "The spirit combined the property stones into a huge property stone.";
				delitem 991,3;
				getitem 995,1;
				close;
			}
			mes "The spirit is mad at you.";
			close;
		}
		mes "You used the property stones but it looks like you failed to communicate with the spirits.";
		delitem 991,3;
		close;
	}else if ((job_soc == 4) && (countitem(991) < 3)){
		mes "I can see the detecting staff that's been installed by the Sorcerer Union to communicate with the spirits .";
		next;
		mes "If you have the suitable property stones, you should be able to commune with the spirits.";
		close;
	}
	mes "I can see the detecting staff that's been installed by the Sorcerer Union to communicate with the spirits .";
	close;
}

mjo_dun03,200,141,0	script	Spirit Detecting Staff#3	836,{

	if ((job_soc == 4) && (countitem(993) > 2)){
		progressbar "ffff00",5;
		set .@rand,rand(1,70);
		if (.@rand < 10){
			if ((job_soc == 4) && (countitem(993) > 2) && (countitem(6277) < 1)){
				mes "You got a reagent by communicating with an unseen spirit.";
				delitem 993,3;
				getitem 6277,1;
				close;
			}else if ((job_soc == 4) && (countitem(993) > 2) && (countitem(6277) > 0)){
				mes "It doesn't seem like you got anything special from the spirits.";
				delitem 993,3;
				close;
			}
			mes "The spirit is mad at you.";
			close;
		}else if ((.@rand > 9) && (.@rand < 16)){
			if ((job_soc == 4) && (countitem(993) > 2) && (countitem(6276) < 1)){
				mes "You got a reagent by communicating with an unseen spirit.";
				delitem 993,3;
				getitem 6276,1;
				close;
			}else if ((job_soc == 4) && (countitem(993) > 2) && (countitem(6276) > 0)){
				mes "It doesn't seem like you got anything special from the spirits.";
				delitem 993,3;
				close;
			}
			mes "The spirit is mad at you.";
			close;
		}else if (.@rand == 56){
			if ((job_soc == 4) && (countitem(993) > 2)){
				mes "The spirit combined the property stones into a huge property stone.";
				delitem 993,3;
				getitem 997,1;
				close;
			}
			mes "The spirit is mad at you.";
			close;
		}
		mes "You used the property stones but it looks like you failed to communicate with the spirits.";
		delitem 993,3;
		close;
	}else if ((job_soc == 4) && (countitem(993) < 3)){
		mes "I can see the detecting staff that's been installed by the Sorcerer Union to communicate with the spirits .";
		next;
		mes "If you have the suitable property stones, you should be able to commune with the spirits.";
		close;
	}
	mes "I can see the detecting staff that's been installed by the Sorcerer Union to communicate with the spirits .";
	close;
}

gon_dun02,195,190,0	script	Spirit Detecting Staff#4	836,{

	if ((job_soc == 4) && (countitem(992) > 2)){
		progressbar "ffff00",5;
		set .@rand,rand(1,70);
		if (.@rand < 10){
			if ((job_soc == 4) && (countitem(992) > 2) && (countitem(6277) < 1)){
				mes "You got a reagent by communicating with an unseen spirit.";
				delitem 992,3;
				getitem 6277,1;
				close;
			}else if ((job_soc == 4) && (countitem(992) > 2) && (countitem(6277) > 0)){
				mes "It doesn't seem like you got anything special from the spirits.";
				delitem 992,3;
				close;
			}
			mes "The spirit is mad at you.";
			close;
		}else if ((.@rand > 9) && (.@rand < 16)){
			if ((job_soc == 4) && (countitem(992) > 2) && (countitem(6278) < 1)){
				mes "You got a reagent by communicating with an unseen spirit.";
				delitem 992,3;
				getitem 6278,1;
				close;
			}else if ((job_soc == 4) && (countitem(992) > 2) && (countitem(6278) > 0)){
				mes "It doesn't seem like you got anything special from the spirits.";
				delitem 992,3;
				close;
			}
			mes "The spirit is mad at you.";
			close;
		}else if (.@rand == 56){
			if ((job_soc == 4) && (countitem(992) > 2)){
				mes "The spirit combined the property stones into a huge property stone.";
				delitem 992,3;
				getitem 996,1;
				close;
			}
			mes "The spirit is mad at you.";
			close;
		}
		mes "You used the property stones but it looks like you failed to communicate with the spirits.";
		delitem 992,3;
		close;
	}else if ((job_soc == 4) && (countitem(992) < 3)){
		mes "I can see the detecting staff that's been installed by the Sorcerer Union to communicate with the spirits .";
		next;
		mes "If you have the suitable property stones, you should be able to commune with the spirits.";
		close;
	}
	mes "I can see the detecting staff that's been installed by the Sorcerer Union to communicate with the spirits .";
	close;
}