summaryrefslogblamecommitdiff
path: root/npc/jobs/1-1/mage.txt
blob: ef06e32620e551e7744690321389bfcd723c7495 (plain) (tree)
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

































































































































































































































































































































































































































































                                                                                                                                                                                                      
                                                                                                                  





































                                                                                                                 
                                                                                                                  





                                       
//===== eAthena Script ======================================= 
//= Mage Job Quest
//===== By: ================================================== 
//= kobra_k88
//===== Current Version: ===================================== 
//= 1.6
//===== Compatible With: ===================================== 
//= eAthena 1.0 +
//===== Description: ========================================= 
//= <Description> 
//===== Additional Comments: ================================= 
//= Fully working
//= 1.1 Fixed input ingridients bug [Lupus]
//= v1.2 Added instant job change for High Novice [Lupus]
//= 1.3 Added Baby Class support [Lupus]
//= v1.4 Optimised and moved first checker to Jfunc1-1 [massdriller]
//= 1.5 Now saves/restores all quest skills [Lupus]
//= 1.6 Merged back JFunc, CHANGED NUMBERS TO CONSTANTS [Lupus]
//============================================================ 


// -- Expert Mage -- 
geffen_in.gat,164,124,4	script	Expert Mage	123,{
	callfunc "F_ToHigh",Job_Mage_High,"High Mage",Job_High_Wizard,"Expert Mage";
	if(BaseJob == Job_Novice && job_magician_q >= 1) goto L_BeMage;

	mes "[Expert Mage]";
	mes "Hi hi!  What can I help you with today?";
M_Menu:
	next;
	menu "I'm in love with magic, make me a Mage!",M_0,"Tell me the Requirements.",M_1,"Nothing thanks.",M_End;

	M_0:
		mes "[Expert Mage]";
		mes "You wanna be a Mage? Hmmm.....";
		next;
		mes "[Expert Mage]";
		if(BaseJob == Job_Mage) {
			mes "You should really get yourself a mirror.  Then you could see that you are ^ff0000already a Mage^000000.";
			mes "It may even help you fix up your hair do.";
			emotion e_swt;
			close;
		}
		if(BaseJob != Job_Novice) {
			mes "Oh...I'm sorry.  I know they say 2 is always better than 1, but when it comes to Jobs, it's a No No.";
			mes "Try to stay positive.  Your current job can't be that bad.";
			emotion e_no;
			close;
		}
		mes "Okays, just fill out this application form pleeassse.";
		next;
		mes "(you fill out the form and hand it back to her)";
		next;
		mes "[Expert Mage]";
		if(JobLevel < 10) {
			mes "Oh...I'm sorry.  You need ^ff0000Job level 9^000000 and all of the ^0000ffBasic Skills^000000 before you can become a Mage.";
			mes "Go out and kill some more Fabres okays.";
			emotion e_no;
			close;
		}
		mes "Oooh~ You have very nice hand writing ^0000dd"+ strcharinfo(0) +"^000000, and more importantly you have met the necessary prerequisites to become a mage.";
		next;
		mes "[Expert Mage]";
		mes "The only thing left to do is to pass the official Geffen Mage Test.  Let me give you the details of the test.";
		next;
		set job_magician_q, rand(1,4);

		L_Explain:
		mes "[Expert Mage]";
		if(job_magician_q == 1) mes "Your test is to make ^0000ff'Mixed Solution No.1'^000000 and bring it back to me.";
		if(job_magician_q == 2) mes "Your test is to make ^00aa00'Mixed Solution No.2'^000000 and bring it back to me.";
		if(job_magician_q == 3) mes "Your test is to make ^ff0000'Mixed Solution No.3'^000000 and bring it back to me.";
		if(job_magician_q == 4) mes "Your test is to make ^ffbb00'Mixed Solution No.4'^000000 and bring it back to me.";

		next;
		if(countitem(1092) == 0) getitem 1092,1;//Items: Empty_Test_Tube,
		mes "[Expert Mage]";
		mes "You can get the necessary ingredients in the ^5533FF'Guide Book'^000000 in this room.";
		mes "Refer to it to get a list of the proper ingredients for the solution.";
		next;
		mes "[Expert Mage]";
		mes "When you are ready to mix it, use the ^ff0000'Mixing Machine'^000000 in the center to mix the solution.";
		next;
		mes "[Expert Mage]";
		mes "Good Luck!  I'll be waiting.";
		close;

	M_1:
		mes "[Expert Mage]";
		mes "First of all, you have to reach Novice Level 9 and have learned all of the Basic Skills.";
		mes "Secondly, you have to pass the Mage Test.";
		goto M_Menu;
	M_End:
		mes "[Expert Mage]";
		mes "Okays.  Bye bye.";
		close;

L_BeMage:
	mes "[Expert Mage]";
	mes "Oh, you're back.  Lets see....";
	next;
	mes "[Expert Mage]";
	if(countitem(1090) >= 1) goto L_Retry;//Items: Unknown_Test_Tube,
	if((countitem(1071)<1) && (countitem(1085)<1) && (countitem(1086)<1) && (countitem(1087)<1)) goto L_NoSol;//Items: Unknown_Test_Tube, Unknown_Test_Tube, Unknown_Test_Tube, Unknown_Test_Tube,

	if(SkillPoint > 0) mes "You need to use up all of your skill points before I can make you a Mage.";
	if(SkillPoint > 0) close;

	mes ".....The color's not quit right.... there is a little to much precipitate..... hmmm......";
	next;
	mes "[Expert Mage]";
	mes "Well it's not perfect but it seems you worked very hard on this so...... alright! I'll let you pass!  You are now officially qualified to become a mage!";
	emotion e_no1;
	next;
	mes "[Expert Mage]";
	mes "Abra-kadabra and hocus pocus, turn this young novice into a ^00aa00MAGE^000000!!";
	next;
	callfunc "Job_Change",Job_Mage;

	set Zeny,Zeny+500;
	if(job_magician_q == 1) delitem 1071,1;//Items: Unknown_Test_Tube,
	if(job_magician_q == 2) delitem 1085,1;//Items: Unknown_Test_Tube,
	if(job_magician_q == 3) delitem 1086,1;//Items: Unknown_Test_Tube,
	if(job_magician_q == 4) delitem 1087,1;//Items: Unknown_Test_Tube,

	callfunc "F_ClearJobVar";		// clears all job variables for the current player
	mes "[Expert Mage]";
	mes "'Welcome to My World~ teh hehe.  I've always wanted to say that.  Anyways, congratulations!  You're one of us now so let's be friends okays!";
	emotion e_heh;
	next;
	mes "[Expert Mage]";
	mes "Good luck to ya and take care!";
	close;

	L_Retry:
		mes "I'm sorry but the solution you have is no good.  I'm afraid that you didn't pass the test.  You can try again though.";
		mes "Let me explain the test for you once more okays.";
		emotion e_swt;
		next;
		delitem 1090,1;//Items: Unknown_Test_Tube,
		goto L_Explain;

	L_NoSol:
		mes "Where is the solution I asked for?  I'm sorry but I can't check the solution when you don't have it.  Let me remind you what solution you need.";
		emotion e_what;
		next;
		goto L_Explain;

}

// -- Solutions Guide Book --
geffen_in.gat,177,112,1	script	Solutions Guide Book	111,{
	mes "[Solutions Guide Book]";
	mes "I belong to Geffen Magic Academy.  Please handle with care.";
	next;
	menu "Solution No. 1.",Sol1,"Solution No. 2.",Sol2,"Solution No. 3.",Sol3,"Solution No. 4.",Sol4,"Close.",Cancel;

	Sol1:
		mes "[Mage Test Solution No. 1]";
		mes "* Ingredients list *";
		mes " - Jellopy 2 ea";
		mes " - Fluff 3 ea";
		mes " - Milk 1 ea";
		next;
		mes "[Mage Test Solution No. 1]";
		mes "* Solvent Agent *";
		mes "  Payon Solution";
		mes "  Where to find: A Small Spring in";
		mes "  Archer Village, Payon.";
		next;
		mes "[Mage Test Solution No. 1]";
		mes "* Chemical ingredients *";
		mes " - 8472";
		next;
		mes "[Mage Test Solution No. 1]";
		mes "* A Catalyst *";
		mes " - Yellow Gemstone";
		mes "   (Mixing Machine Will provide";
		mes "   this item.)";
		close;
	Sol2:
		mes "[Mage Test Solution No. 2]";
		mes "* Ingredients list *";
		mes " - Jellopy 3 ea";
		mes " - Fluff 1 ea";
		mes " - Milk 1 ea";
		next;
		mes "[Mage Test Solution No. 2]";
		mes "* Solvent Agent *";
		mes " - Not Appliable.";
		next;
		mes "[Mage Test Solution No. 2]";
		mes "* Chemical ingredients *";
		mes " - 3735";
		next;
		mes "[Mage Test Solution No. 2]";
		mes "* A Catalyst *";
		mes " - Red Gemstone";
		mes "   (Mixing Machine Will provide";
		mes "   this item.)";
		close;
	Sol3:
		mes "[Mage Test Solution No. 3]";
		mes "* Ingredients list *";
		mes " - Jellopy 6 ea";
		mes " - Fluff 1 ea";
		next;
		mes "[Mage Test Solution No. 3]";
		mes "* Solvent Agent *";
		mes "  Payon Solution";
		mes "  Where to find: A Small Spring in";
		mes "  Archer Village, Payon.";
		next;
		mes "[Mage Test Solution No. 3]";
		mes "* Chemical ingredients *";
		mes " - 2750";
		next;
		mes "[Mage Test Solution No. 3]";
		mes "* A Catalyst *";
		mes " - Blue Gemstone";
		mes "   (Mixing Machine Will provide";
		mes "   this item.)";
		close;
	Sol4:
		mes "[Mage Test Solution No. 4]";
		mes "* Ingredients list *";
		mes " - Jellopy 2 ea";
		mes " - Fluff 3 ea";
		next;
		mes "[Mage Test Solution No. 4]";
		mes "* Solvent Agent *";
		mes "  Morroc Solution";
		mes "  Where to find: A Small Spring";
		mes "  Near the Enterance of Pyramid";
		mes "  in Morroc.";
		next;
		mes "[Mage Test Solution No. 4]";
		mes "* Chemical ingredients *";
		mes " - 5429";
		next;
		mes "[Mage Test Solution No. 4]";
		mes "* A Catalyst *";
		mes " - 1 carat Diamond";
		mes "   (Mixing Machine Will provide";
		mes "   this item.)";
		close;
	Cancel:
		close;
}

// -- Mixing Machine --
geffen_in.gat,164,112,1	script	Mixing Machine	111,{
	mes "[Mixing Machine]";
	mes "This is the unique Mixing Machine designed only for making magic solutions.  It is the property of the Geffen Magic Academy.";
	next;
	mes "[Mixing Machine]";
	mes "Would you like to use this machine?";
	next;
	menu "Yes.",M_Start, "No.",M_End;

	M_Start:
		mes "[Mixing Machine]";
		mes "Please specify the ingredients you will be using.";
		next;
		sM_Menu:
		menu "Jellopy",sM_0, "Fluff",sM_1, "Milk",sM_2, "Move on to the next step.",sM_3;

		sM_0:
			input @JELLOPY;
			if (@JELLOPY<0 || @JELLOPY>100) set @JELLOPY,0; //set 0 if wrong input
			goto sM_Menu;
		sM_1:
			input @FLUFF;
			if (@FLUFF<0 || @FLUFF>100) set @FLUFF,0; //set 0 if wrong input
			goto sM_Menu;
		sM_2:
			input @MILK;
			if (@MILK<0 || @MILK>100) set @MILK,0; //set 0 if wrong input
			goto sM_Menu;
		sM_3:
			mes "[Mixing Machine]";
			mes "Please specify a solvent.";
			next;
			menu "Payon Solvent.",ssM_0, "Morroc Solvent",ssM_1, "No Solvent.",ssM_2;

			ssM_0:
				set @SOLVENT, 1089;
				set @SOLVENT$, "Payon";
				goto L_Cont;
			ssM_1:
				set @SOLVENT, 1088;
				set @SOLVENT$, "Morroc";
				goto L_Cont;
			ssM_2:
				set @SOLVENT, 0;
				set @SOLVENT$, "No";

			L_Cont:
			mes "[Mixing Machine]";
			mes "Here is your current list of ingredients:";
			mes "^4444FF"+@JELLOPY+"^000000 Jellopy,";
			mes "^4444FF"+@FLUFF+"^000000 Fluff,";
			mes "^4444FF"+@MILK+"^000000 Milk,";
			mes "and ^4444FF"+@SOLVENT$+"^000000 Solvent.";
			mes "Is this correct?";
			next;
			menu "Yes.",-, "No.",M_Start;

			mes "[Mixing Machine]";
			mes "Please put all of the items into the drum.  Now enter the magic serial number.";
			next;

			L_Input:
			input @INPUT;
			mes "[Mixing Machine]";
			mes "You have inputted the number ^5555FF"+@INPUT+".  Is this correct?";
			next;
			menu "Yes.",-, "No.",L_Input;

			mes "[Mixing Machine]";
			mes "For the last item, choose a catalyst stone.";
			next;
			menu "Yellow Gemstone.",ssM_Yell, "Red Gemstone.",ssM_Red, "Blue Gemstone.",ssM_Blue, "1 Carat Diamond.",ssM_Diamd;

			ssM_Yell:
				if(countitem(909)<@JELLOPY || countitem(914)<@FLUFF || countitem(519)<@MILK) goto sL_NotEnuf;//Items: Jellopy, Fluff, Milk,
				if(@SOLVENT$!=("No") && countitem(@SOLVENT)<1) goto sL_NotEnuf;
				mes "[Mixing Machine]";
				mes "All set.  Initiating the mixing process.  Please wait.";
				next;
				mes "[Mixing Machine]";
				mes "~rumble~rumble~rumble~";
				next;
				mes "[Mixing Machine]";
				if(job_magician_q != 1 || @INPUT != 8472 || @JELLOPY!=2 || @FLUFF!=3 || @MILK!=1 || @SOLVENT!=1089) goto sL_FAIL;
				delitem 909,2;//Items: Jellopy,
				delitem 914,3;//Items: Fluff,
				delitem 519,1;//Items: Milk,
				delitem 1089,1;//Items: Payon_Solution,
				delitem 1092,1;//Items: Empty_Test_Tube,
				mes "Mixing complete.";
				getitem 1071,1;//Items: Unknown_Test_Tube,
				close;

			ssM_Red:
				if(countitem(909)<@JELLOPY || countitem(914)<@FLUFF || countitem(519)<@MILK) goto sL_NotEnuf;//Items: Jellopy, Fluff, Milk,
				mes "[Mixing Machine]";
				mes "All set.  Initiating the mixing process.  Please wait.";
				next;
				mes "[Mixing Machine]";
				mes "~rumble~rumble~rumble~";
				next;
				mes "[Mixing Machine]";
				if(job_magician_q != 2 || @INPUT != 3735 || @JELLOPY!=3 || @FLUFF!=1 || @MILK!=1 || @SOLVENT!=0) goto sL_FAIL;
				delitem 909,3;//Items: Jellopy,
				delitem 914,1;//Items: Fluff,
				delitem 519,1;//Items: Milk,
				delitem 1092,1;//Items: Empty_Test_Tube,
				mes "Mixing complete.";
				getitem 1085,1;//Items: Unknown_Test_Tube,
				close;

			ssM_Blue:
				if(countitem(909)<@JELLOPY || countitem(914)<@FLUFF) goto sL_NotEnuf;//Items: Jellopy, Fluff,
				if(@SOLVENT$!=("No") && countitem(@SOLVENT)<1) goto sL_NotEnuf;
				mes "[Mixing Machine]";
				mes "All set.  Initiating the mixing process.  Please wait.";
				next;
				mes "[Mixing Machine]";
				mes "~rumble~rumble~rumble~";
				next;
				mes "[Mixing Machine]";
				if(job_magician_q != 3 || @INPUT != 2750 || @JELLOPY!=6 || @FLUFF!=1 || @MILK!=0 || @SOLVENT!=1089) goto sL_FAIL;
				delitem 909,6;//Items: Jellopy,
				delitem 914,1;//Items: Fluff,
				delitem 1089,1;//Items: Payon_Solution,
				delitem 1092,1;//Items: Empty_Test_Tube,
				mes "Mixing complete.";
				getitem 1086,1;//Items: Unknown_Test_Tube,
				close;

			ssM_Diamd:
				if(countitem(909)<@JELLOPY || countitem(914)<@FLUFF) goto sL_NotEnuf;//Items: Jellopy, Fluff,
				if(@SOLVENT$!=("No") && countitem(@SOLVENT)<1) goto sL_NotEnuf;
				mes "[Mixing Machine]";
				mes "All set.  Initiating the mixing process.  Please wait.";
				next;
				mes "[Mixing Machine]";
				mes "~rumble~rumble~rumble~";
				next;
				mes "[Mixing Machine]";
				if(job_magician_q != 4 || @INPUT != 5429 || @JELLOPY!=2 || @FLUFF!=3 || @MILK!=0 || @SOLVENT!=1088) goto sL_FAIL;
				delitem 909,2;//Items: Jellopy,
				delitem 914,3;//Items: Fluff,
				delitem 1088,1;//Items: Morroc_Solution,
				delitem 1092,1;//Items: Empty_Test_Tube,
				mes "Mixing complete.";
				getitem 1087,1;//Items: Unknown_Test_Tube,
				close;

			sL_FAIL:
				delitem 909, @JELLOPY;//Items: Jellopy,
				delitem 914, @FLUFF;//Items: Fluff,
				delitem 519, @MILK;//Items: Milk,
				delitem @SOLVENT,1;
				mes "Mixing complete.";
				getitem 1090,1;//Items: Unknown_Test_Tube,
				close;

			sL_NotEnuf:
				mes "[Mixing Machine]";
				mes "You do not have enough ingredients to mix into a solution.";
				close;
	M_End:
		close;

}


// -- Morroc Solution --
moc_ruins.gat,91,150,5	script	Ponka-Hontas	93,{
	mes "[Mage Guildsman]";
	mes "You want the Solution? Then give me 50 Zeny and at least 1 Empty Testube.";
	next;
	menu "Allright, Deal",L0,"Nah, forget it.",L1;

	L0:
		if(countitem(1092)<1) goto L0NoT;//Items: Empty_Test_Tube,
		if(Zeny<50) goto L0NoZ;
		mes "[Mage Guildsman]";
		mes "Ok, you have the money and a empty Testube, that's good!";
		delitem 1092,1;//Items: Empty_Test_Tube,
		set Zeny,Zeny-50;
		next;
		mes "[Mage Guildsman]";
		getitem 1088,1;//Items: Morroc_Solution,
		mes "Thank you, I think you will be a great mage, you are so generous.";
		mes "I hope i'll see you soon again here";
		emotion e_no1;
		close;

		L0NoT:
			mes "[Mage Guildsman]";
			mes "You can't Carry on Fluid without a bottle, are you sure you want to become a mage?";
			mes "Bring an Empty Testube";
			close;

		L0NoZ:
			mes "[Mage Guildsman]";
			mes "Pfff, You are too poor to buy our noble Solution!";
			mes "Bring 50 Zeny, go to a merchant and sell something, it will not be too hard I hope.";
			close;
	L1:
		mes "[Mage Guildsman]";
		close;
}


// -- Payon Solution --
pay_arche.gat,122,100,5	script	Dollshoi	88,{
	mes "[Mage Guildsman]";
	mes "You want the Solution? Then give me 50 Zeny and at least 1 Empty Testube.";
	next;
	menu "Allright, Deal",L0,"Nah, forget it.",L1;

	L0:
		if(countitem(1092)<1) goto L0NoT;//Items: Empty_Test_Tube,
		if(Zeny<50) goto L0NoZ;
		mes "[Mage Guildsman]";
		mes "Ok, you have the money and a empty Testube, that's good!";
		delitem 1092,1;//Items: Empty_Test_Tube,
		set Zeny,Zeny-50;
		next;
		mes "[Mage Guildsman]";
		getitem 1089,1;//Items: Payon_Solution,
		mes "Thank you, I think you will be a great mage, you are so generous.";
		mes "I hope i'll see you soon again here";
		emotion e_no1;
		close;

		L0NoT:
			mes "[Mage Guildsman]";
			mes "You can't Carry on Fluid without a bottle, are you sure you want to become a mage?";
			mes "Bring an Empty Testube";
			close;

		L0NoZ:
			mes "[Mage Guildsman]";
			mes "Pfff, You are too poor to buy our noble Solution!";
			mes "Bring 50 Zeny, go to a merchant and sell something, it will not be too hard I hope.";
			close;
	L1:
		mes "[Mage Guildsman]";
		close;
}