summaryrefslogtreecommitdiff
path: root/npc/jobs/1-1/thief.txt
blob: 0d1361927c7d386353fbb20b1afdf74841ee288e (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
//===== eAthena Script =======================================
//= Thief Job Quest
//===== By: ==================================================
//= eAthena dev team
//===== Current Version: =====================================
//= 1.5
//===== Compatible With: =====================================
//= eAthena 1.0 +
//===== Description: =========================================
//= <Description>
//===== Additional Comments: =================================
//= Fully working
//= v1.1 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]
//= Fixed possible EXP abuse [Lupus]
//============================================================


// == Monsters ==
//Spawn is included in this file so make shure its not elsewhere to!
job_thief1.gat,0,0,0,0	monster	Orange Mushroom	1182,180,0,0,0
job_thief1.gat,0,0,0,0	monster	Fabre	1184,50,0,0,0
job_thief1.gat,0,0,0,0	monster	Chonchon	1183,50,0,0,0
job_thief1.gat,0,0,0,0	monster	Spore	1014,30,0,0,0


// == NPCs ==
// -- Interviewer --
moc_prydb1.gat,39,129,5	script	Thief Guide	69,{
	callfunc "Thi_check";
	if(job_thief_q==2) goto L_1;
	if(job_thief_q==1) goto L_Back;

	mes "[Thief Guide]";
	if(Sex) {
		mes "Heh... You look like a well to do boy... what brought you down to this rat hole?";
	}else{
		mes "Heh... You look like a well to do girl... what brought you down to this rat hole?";
	}
	next;
M_Menu:
	menu "'I didn't come here for the atmosphere.....",M_0,"Me? I'm just looking around...",M_End,"Just looking for the one truth",M_Truth;

		M_0:
		mes "[Thief Guide]";
		mes "Hmph... you sound a little cocky....  Yah know, being a Thief isn't all it's cracked up to be....";
		mes "That reminds me.... I must have been at lvl 9 or 10 when I did my first robbery....";
		next;
		mes "[Thief Guide]";
		mes "Hahahaha... I can still remember the look on that guy's face...";
		emotion e_heh;
		next;
		mes "[Thief Guide]";
		mes "But anyways... I assume you're here to become a thief...";
		next;
		menu "You got it.",sM_0a, "Nope.  Just wasting your time. ^ ^",sM_0b, "Why did you steal from that man?",sM_0c;

		sM_0a:
			goto L_Test;
		sM_0b:
			mes "[Thief Guide]";
			mes "Wow... thanks... now get the HELL OUTA HERE!!";
			emotion e_an;
			close;
		sM_0c:
			mes "[Thief Guide]";
			mes "Eh? Me?... Well... I really had no other choice at the time.... It was either I stole or I starved.";
			mes "I really couldn't go hungry another day.";
			close;

	M_Truth:
		mes "[Thief Guide]";
		mes "To see one's light, you need to be under the magic of the book where the royalty looms.";
		close;

	M_End:
		mes "[Thief Guide]";
		mes "Must you people keep wasting my time!!?";
		emotion e_pif;
		close;

	L_Test:
		mes "[Thief Guide]";
		mes "Okay then; first, fill out this application form.";
		next;
		mes "^0000FF(You fill out the form and hand it back)^000000";
		next;
		if(JobLevel < 10) goto sL_JobLvl;

		mes "[Thief Guide]";
		mes "Alrighty ^FF0000"+ strcharinfo(0) + "^000000, if that IS your real name..... looks like you've got quite a 'record' here.";
		mes "Let's see.... aggravated assualt... felony larson..... hmm....";
		next;
		mes "[Thief Guide]";
		mes "Ah, here we go...... you've got the job and skill requirements to become a Thief.  Now all you've got to do is pass the ^FF0000Morroc Thief Test^000000.";
		next;

		L_Explain:
		mes "[Thief Guide]";
		mes "   The test will require you to ^FF0000'sneak'^000000 into ^FF0000'Shibu's Farm'^000000, and ^FF0000'borrow'^000000 some ^AAAA00'Mushrooms'^000000.";
		mes "   There are ^ff00002^000000 kinds of ^AAAA00Mushrooms^000000 on the farm, ^FFBB00Orange Net Mushrooms^000000 and ^FFBB00Orange Gooey Mushrooms^000000.";
		next;
		mes "[Thief Guide]";
		mes "'Shibu just happens to be the worst merchant scammer in Morroc, in case you're wondering why he's our target.";
		next;
		mes "[Thief Guide]";
		mes "   Bring the Mushrooms back here and someone will give you a score based on the type and the amount of mushrooms you get.";
		mes "   1 Orange Net Mushroom = ^0000FF3 points^000000 while 1 Orange Gooey Mushroom = ^0000FF1 point^000000.  You need ^FF000025^000000 points to pass the test.";
		next;
		mes "[Thief Guide]";
		mes "   In order to get into Shibu's Farm you'll need to talk to one of our 'associates'.  You can find him just ouside of this pyramid standing near some columns.";
		mes "   He goes by the name ^DDCC00'Irrelevant Man'^000000.";
		next;
		mes "[Thief Guide]";
		mes "   Here are his exact coordinates just in case you are 'directionaly challenged': '^FF0000141, 125^000000'.";
		mes  "  Find him and he'll show you a secrect way into the Farm.";
		next;
		mes "[Thief Guide]";
		mes "   This sounds easy but ^009900do know, there are Monsters who guard Mushrooms^000000?";
				// had to leave the engrish in, it was to good not too.  d^_^b
				// And I took it out.  :D  [KillerBox]
		mes "   Stop reading Fairy Tales and ^FF0000brace up your nerves; this will be the toughest experience ever^000000.";
		next;
		mes "[Thief Guide]";
		mes "   So, I will give you one tip. ^FF0000Elaborate the Strategy^000000 before you going inside the Farm.";
		next;
		mes "[Thief Guide]";
		mes "   Try to steal the mushrooms as quickly as you can.  You may even have to ^0000FFunequip some weapons or armor to attack faster^000000.";
		mes "   Try not to get killed while doing this... at the very least try to give me the mushrooms first.... then you can go get yourself killed... HA!";
		next;
		mes "[Thief Guide]";
		mes "   If you don't have any questions... then GET moving!";
		emotion e_go;
		set job_thief_q,1;
		close;

		sL_JobLvl:
			mes "[Thief Guide]";
			mes "Err... I can see how ambitious you are, but we can't hand a gun to a baby only for that. Come back when you learn all Basic Skills.";
			close;

	L_Back:
		if(countitem(1069)>0 || countitem(1070)>0) goto sL_1;//Items: Orange_Net_Mushroom, Orange_Gooey_Mushroom_,

		sL_0:
			mes "[Thief Guide]";
			mes "..... What are you doing here? You're supposed to be gathering mushrooms remember??";
			mes "Don't tell me you forget what to do??? Jeeze... do you want me to explain it to you one more time?......";
			emotion e_hmm;
			next;
			menu "Heh.. yeah I guess..",sM_1a, "Nope.",sM_1b;

			sM_1a:
				mes "[Thief Guide]";
				mes "(~sigh~) There's always someone who gets left behind.... This is the last time so listen CAREFULLY!!....";
				emotion e_pif;
				next;
				goto L_Explain;
			sM_1b:
				mes "[Thief Guide]";
				mes ".... Then what is it??? Do you have something to tell me? YOUR the one who came TO ME...";
				mes "What... you wanna a piece of me?? HUH!!??";
				emotion e_ag;
				close;

		sL_1:
			mes "[Thief Guide]";
			mes "What? You actually went and stole some mushrooms?? Are you some kinda idiot?";
			mes "Haha... I can't believe you listened to me..... ";
			emotion e_what;
			next;
			mes "[Thief Guide]";
			mes ".... Psych!! Just kidding... heheheh! Speak with the guy next to me about rating the mushrooms you swiped.";
			emotion e_heh;
			close;

	L_1:
		mes "[Thief Guide]";
		mes "So how was the Mushroom Farm?  Did yah have much fun?";
		next;
		menu "Yeah, kinda Cool.",M_Cool,"It was horrible.",M_Not;

		M_Cool:
			mes "[Thief Guide]";
			mes "   Wow! I like you! Fabulous! Everyone before you was #&$@ bloody As#$%^&s#!";
			next;
			mes "[Thief Guide]";
			mes "...... You won't take my place, will you?  If you have any ambition like that, I'll ^ff0000DESTROY YOU^000000!";
			// mes "...... You won't take my place, will you?  If you have any ambition like that, I will kick your ^ff0000'ASS OUT OF YOUR BUTT'^000000!";
			// this is just too much lol.
			// That line before was just too precious to delete.  [KillerBox]
			emotion e_gasp;
			next;
			mes "[Thief Guide]";
			mes "   Still, in order to pass the test you need to go get some mushrooms.";
			close;
		M_Not:
			mes "[Thief Guide]";
			mes "   I know what yah mean.  I was there before and it was awful:  all those smelly mushrooms and aggressive monsters.";
			next;
			mes "[Thief Guide]";
			mes "   Eeewww! Yuuuckk! Still, in order to pass the test you need to go get some mushrooms.";
			emotion e_wah;
			close;
}


// -- Test Grader --
moc_prydb1.gat,42,133,2	script	Comrade Brad	118,{
	callfunc "F_ToHigh",Job_Thief_High,"Thief High",Job_Assassin_Cross,"Assassin Cross",149,150,151,152,"Brad";
	if(BaseJob == 0) goto L_Novice;
	if(BaseJob == 6) goto L_Thief;

L_Other:
	mes "[Brad]";
	mes "Hey~ Hey~!! You don't look like a Thief.  What the heck? You'd BETTER NOT be trying to start someting on THIEF TERRITORY!!";
	emotion e_omg;
	close;
L_Thief:
	mes "[Brad]";
	mes "We don't have any Special events for Thieves yet.  Come back some other time, alright?";
	close;

L_Novice:
	mes "[Comrade Brad]";
	if((job_thief_q == 2) && ((countitem(1069) > 0) || (countitem(1070) > 0))) goto L_4;//Items: Orange_Net_Mushroom, Orange_Gooey_Mushroom_,
	if(job_thief_q >= 1) goto L_3;

	mes "Errr? What's matter newbie? If you want to be a thief, speak to the girl beside me.";
	close;
L_3:
	mes "Go get some mushrooms so that I can grade them ok.";
	close;
L_4:
	mes "Good.  You got some mushrooms from that crooked merchant Shibu";
	next;

	set @mushrm1,countitem(1069)*3;//Items: Orange_Net_Mushroom,
	set @mushrm2,countitem(1070);//Items: Orange_Gooey_Mushroom_,
	set @TotMush,@mushrm1 + @mushrm2;
	set @money_thief,((countitem(1069) * 5) + (countitem(1070)* 2)) + 200;//Items: Orange_Net_Mushroom, Orange_Gooey_Mushroom_,

	mes "[Comrade Brad]";
	mes "Let's see you got:";
	mes "^0000ff"+countitem(1069)+"^000000 Orange Net Mushrooms for ^ffbb00"+@mushrm1+"^000000 points,";//Items: Orange_Net_Mushroom,
	mes "^0000ff"+countitem(1070)+"^000000 Orange Gooey Mushrooms for ^ffbb00"+@mushrm2+"^000000 points,";//Items: Orange_Gooey_Mushroom_,
	mes "Giving you a total score of ^ff0000"+@TotMush+"^000000.";
	next;
	if (@TotMush > 25) goto L_High;
	if (@TotMush == 25) goto L_Medium;

		mes "[Comrade Brad]";
		mes "Meh!.... looks like you failed.  C'mon!  You can do better than that!  Go get some more mushrooms!!!";
		close;

	L_Medium:
		mes "[Comrade Brad]";
		mes "Good. You passed the Test.";
		next;
		goto L_Final;

	L_High:
		mes "[Comrade Brad]";
		mes "Ooooh.  Above 25, you will make an excellent thief.";
		next;
	L_Final:
		mes "[Comrade Brad]";
		mes "Congratulations ^ff0000"+strcharinfo(0)+"^000000, you passed the official Thief Test!  You can now become a Thief!!";
		emotion e_no1;
		next;
		if(SkillPoint > 0) goto sL_SkPoint;
		delitem 1069, countitem(1069);//Items: Orange_Net_Mushroom,
		delitem 1070, countitem(1070);//Items: Orange_Gooey_Mushroom_,

		callfunc "Job_Change",Job_Thief;
		callfunc "F_ClearJobVar";		// clears all job variables for the current player

		mes "[Comrade Brad]";
		mes "Here's a small reward for your hard work.  Spend it any way you want to.";
		next;
		set Zeny,Zeny+@money_thief;
		mes "[Comrade Brad]";
		mes "From now on you must act, think, and even smell like a Thief.";
		mes "You are one of us now, which means you have the trust and freindship of Thieves all over Rune Midgard";
		next;
		mes "[Comrade Brad]";
		mes "However, If you bring disgrace to our Guild, or ever betray us, we will not hesitate to have you......";
		mes "How shall I say, ^ff0000'REMOVED'^000000 from the Thief Guild.";
		emotion e_gg;
		next;
		mes "[Comrade Brad]";
		mes "Good luck and always remeber the ^0000cc'Thief Motto'^000000: ^ff0000DON'T Get Caught^000000l!";
		close;

		sL_SkPoint:
			mes "[Comrade Brad]";
			mes "But before that happens please use up all of your skill points, okay?";
			close;

}


// -- Irrelevant Man --
moc_ruins.gat,141,125,3	script	Irrelevant Man	118,{
	if(BaseJob == 6) goto L_Thief;
	if(BaseJob == 0) goto L_Novice;

L_Other:
	if(@s_flag==1) goto L_1b;
	if(@s_flag==2) goto L_1c;
	if(@s_flag==3) goto L_1d;
	if(@s_flag==4) goto L_1e;
	set @s_flag, 0;

	L_1a:
		mes "[Irrelevant Man]";
		mes "Howdy~ Howdy. What a Wonderful day today,isn't it?";
		mes "I feel like going on a 'Picnic' in the Pyramids with a couple freinds of mine today.";
		set @s_flag, @s_flag+1;
		close;
	L_1b:
		mes "[Irrelevant Man]";
		mes "'Lalalala, Home sweet Home.'";
		mes "I like this saying.  Home Sweet Home....";
		set @s_flag, @s_flag+1;
		close;
	L_1c:
		mes "[Irrelevant Man]";
		mes "...... I could fly if I fell off............ ";
		set @s_flag, @s_flag+1;
		close;
	L_1d:
		mes "[Irrelevant Man]";
		mes ".......Hmm?.....";
		next;
		mes "[Irrelevent Man]";
		mes "Hey!! DON'T LOOK AT ME like that! I'M NOT some WACKO okay!!!";
		set @s_flag, @s_flag+1;
		emotion e_an;
		close;
	L_1e:
		mes "[Irrelevant Man]";
		mes "Dude! I got nothin to say with you!  Mind your own business!  Sheesh!!";
		emotion e_pif;
		close;

L_Thief:
	mes "[Irrelevant Man]";
	mes "Yah Hoo! Look at you! You became a Kool Thief!";
	emotion e_no1;
	next;
	mes "[Irrelevant Man]";
	mes "Don't worry about Shibu's Farm.  Let the newbies handle that.  Why don't yah go out and kill some stronger monsters?";
	close;

L_Novice:
	if(job_thief_q==2) goto L_3;
	if(job_thief_q==1) goto L_2;
	mes "[Irrelevant Man]";
	mes "Hey!! Novice! Want to be Stronger and more Powerful!? Do you like hiding and sneeking around?";
	mes "If so, Join the Thief Guild! You are always welcome! Join now!";
	next;
	mes "[Irrelevant Man]";
	mes "You can get more information in the 1st floor basement of the Pyramid!";
	close;
L_2:
	mes "[Irrelevant Man]";
	mes "Pssst......Pssst......hey you!  You look like your gonna take the ^ff0000'Test'^000000.  Am I right?";
	next;
	mes "[Irrelevant Man]";
	mes "Lets see here.....(checks his list).... you're ^ff0000"+ strcharinfo(0) +"^000000 right?  Good.";
	next;
	mes "[Irrelevant Man]";
	mes "Okay! I'm gonna show you the way in but keep quite.  I can't guarantee your safety so watch your back.";
	next;

	L_Warp:
	set @TEMP,rand(5);
	set job_thief_q,2;
	if(@TEMP != 0) goto warpL03a;
		warp "job_thief1.gat",228,106;
		close;
	warpL03a:
		if(@TEMP != 1) goto warpL03b;
		warp "job_thief1.gat",38,50;
		close;
	warpL03b:
		if(@TEMP != 2) goto warpL03c;
		warp "job_thief1.gat",66,331;
		close;
	warpL03c:
		if(@TEMP != 3) goto warpL03d;
		warp "job_thief1.gat",196,331;
		close;
	warpL03d:
		warp "job_thief1.gat",309,234;
		close;

L_3:
	mes "[Irrelevant Man]";
	mes "Muhahahaha~~ WHAT???~~ You HAVEN'T PASSED the Test yet? Are you some sort of Idiot!! Kakakaka!!";
	emotion e_heh;
	next;
	mes "[Irrelevant Man]";
	mes "Just kidding..... NOT!!.  Anywho I'll let yah back in!";
	next;
	menu "Ready",M_Yes,"Not yet",M_No;

	M_Yes:
		goto L_Warp;

	M_No:
		mes "[Irrelevant Man]";
		mes "Okay, let me know when you are.";
		close;

}

//==============================================================================
// mapflag
//==============================================================================
job_thief1.gat	mapflag	nomemo
job_thief1.gat	mapflag	noteleport
job_thief1.gat	mapflag	nosave	SavePoint
job_thief1.gat	mapflag	nopenalty
job_thief1.gat	mapflag	nobranch
job_thief1.gat	mapflag	noexp