diff options
Diffstat (limited to 'npc/pre-re/jobs/1-1/thief.txt')
-rw-r--r-- | npc/pre-re/jobs/1-1/thief.txt | 606 |
1 files changed, 469 insertions, 137 deletions
diff --git a/npc/pre-re/jobs/1-1/thief.txt b/npc/pre-re/jobs/1-1/thief.txt index 8d7e452f3..4ee8832f9 100644 --- a/npc/pre-re/jobs/1-1/thief.txt +++ b/npc/pre-re/jobs/1-1/thief.txt @@ -1,17 +1,28 @@ -//===== rAthena Script ======================================= -//= Renewal Thief Job Change -//===== By: ================================================== -//= Kisuka -//===== Current Version: ===================================== -//= 1.0 -//===== Compatible With: ===================================== +//===== rAthena Script ======================================= +//= Thief Job Quest +//===== By: ================================================== +//= rAthena dev team +//===== Current Version: ===================================== +//= 1.8 +//===== Compatible With: ===================================== //= rAthena SVN -//===== Description: ========================================= -//= Job Change to Thief Class -//===== Additional Comments: ================================= -//= 1.0 First Version. [Kisuka] -//============================================================ -moc_prydb1,39,129,2 script Thief Guide#thief 69,{ +//===== Description: ========================================= +//= [Aegis Conversion] +//= Job quest for Thief classes +//===== 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] +//= 1.5 Now saves/restores all quest skills [Lupus] +//= 1.6 Merged back JFunc [Lupus] 1.6a typos +//= 1.7 Rescripted to Aegis 10.3 stadards. [L0ne_W0lf] +//= No longer uses function "F_ToHigh" +//= 1.8 Added Quest Log commands. [L0ne_W0lf] +//============================================================ + +moc_prydb1,39,129,2 script Thief Guide 69,{ if (Upper == 1) { if (ADVJOB == Job_Assassin_Cross || ADVJOB == Job_Stalker) { if (Class == Job_Novice_High) { @@ -38,7 +49,8 @@ moc_prydb1,39,129,2 script Thief Guide#thief 69,{ mes "[Thief Guide]"; mes "Since you've become a Thief, live as a Thief. Now, go for it! Next~"; close; - }else{ + } + else { mes "[Thief Guide]"; if (sex) mes "Hey, dude."; @@ -46,7 +58,8 @@ moc_prydb1,39,129,2 script Thief Guide#thief 69,{ mes "Hey, baby~"; close; } - }else{ + } + else { mes "[Thief Guide]"; if (sex) mes "Hey, dude."; @@ -56,152 +69,471 @@ moc_prydb1,39,129,2 script Thief Guide#thief 69,{ close; } } - if(q_job_thief == 1) { - mes "[Thief Guildsman]"; - mes "Ehh... Seems like a beloved "+(Sex?"son":"daughter")+" of a rich family, but why are you here in this dirty place?"; + if (BaseJob == Job_Thief) { + mes "[Thief Guide]"; + mes "If you have a problem, feel free to speak to me anytime, alright?"; + close; + } + else if (BaseJob != Job_Novice && BaseJob != Job_Thief) { + mes "[Thief Guide]"; + mes "What the heck...?"; + switch(Class) { + case 1: + mes "Huh."; + mes "Now, that's"; + mes "a big sword."; + next; + mes "[Thief Guide]"; + mes "So..."; + mes "Trying to make"; + mes "up for something"; + mes "...Buddy?"; + break; + case 2: + mes "What's a Mage doin' here? Shouldn't you be doing card tricks elsewhere? Oh well, it's a free country..."; + next; + mes "[Thief Guide]"; + mes "Oh wait,"; + mes "it's not..."; + mes "Get outta here!"; + break; + case 3: + mes "Man, shouldn't you"; + mes "Archers be playing"; + mes "in the forest"; + mes "or something?"; + break; + case 4: + mes "You know we all steal for a living, right? What are you doing in this kinda place, Acolyte?"; + break; + case 5: + mes "You're a Merchant,"; + mes "right? Why are you"; + mes "walking into a den"; + mes "of Thieves?!"; + next; + mes "[Thief Guide]"; + mes "It's like you're begging"; + mes "us to steal from you!"; + mes "Come on, hurry and"; + mes "get outta here~"; + break; + case 8: + mes "Oh my God..."; + mes "Am I dying?"; + next; + mes "[Thief Guide]"; + mes "Why else would a Priest come here? I guess I better start confessing all of my misdeeds."; + close; + case 12: + mes "Didn't you use to be one of us?! Man, you changed. You seem real dangerous now..."; + close; + case 17: + mes "Man, you got real cool all of a sudden! You must have some skills I can only dream of!"; + close; + } + next; + mes "[Thief Guide]"; + mes "*Sigh* Look, there's really no need for you to be in this kind of place. You oughta go where you ought to go."; + close; + } + if (job_thief_q == 3 && countitem(1069) > 0 || countitem(1070) > 0) { + mes "[Thief Guide]"; + mes "Hmmm?"; + mes "You gathered Mushrooms for"; + mes "the Thief test, right?"; next; - mes "[Thief Guildsman]"; - mes "Well, I'm not in charge of making you a Thief. I just accept applications, get it?"; - mes "If you want to become a Thief, ask the sharp-eyed guy next to me."; + mes "[Thief Guide]"; + mes "Here, talk to the other guy right next to me. He's the one in charge of checking your Mushrooms."; close; } - if(Class != Job_Novice) { - if(Class == Job_Thief) { - mes "[Thief Guildsman]"; - mes "Hey~ if you have any trouble, get it out to me anytime, huh?"; + else if (job_thief_q == 3) { + mes "[Thief Guide]"; + mes "So how was the"; + mes "Mushroom Farm?"; + mes "Have any fun?"; + next; + if (select("Yeah, kinda Cool.:It was horrible.") == 1) { + mes "[Thief Guide]"; + mes "Heh heh! That's a good attitude. In our line of work, you gotta enjoy getting your hands dirty, one way or another."; + close; + } + mes "[Thief Guide]"; + mes "Yeah? I've been there too, so I can see why that place isn't everyone's cup of tea. Still, being a Thief isn't all glamour and trendy night life."; + close; + } + if (job_thief_q == 2) { + mes "[Thief Guide]"; + mes "Hey, whaddya doin' here? Aren't you supposed to be gathering Mushrooms? Or did you need it explained to you again?"; + next; + if (select("Yes.:No, that's okay.") == 1) { + mes "[Thief Guide]"; + mes "*Sigh* Well, there's always one in the bunch. Alright, listen carefully."; + next; + mes "[Thief Guide]"; + mes "Alright, for your test, you gotta steal Mushrooms from a farm. Don't worry, the guy who owns the farm deserves to be robbed."; + next; + mes "[Thief Guide]"; + mes "Anyway, you gotta gather two kinds of Mushrooms: ^0000FFOrange Net Mushrooms^000000 and ^0000FFOrange Gooey Mushrooms^000000."; + next; + mes "[Thief Guide]"; + mes "Be careful, since there are monsters are the farm that are there to protect the Mushrooms. So this will be no walk in the park."; + next; + mes "[Thief Guide]"; + mes "When you come back here after gathering Mushrooms, you'll be graded on the Mushrooms you've collected."; + next; + mes "[Thief Guide]"; + mes "Each Orange Net Mushroom gets you 3 points, and you get 1 point for each Orange Gooey Mushroom. You need a total of 25 points to pass the test."; + next; + mes "[Thief Guide]"; + mes "Go outside and keep going ahead toward the Eastern Field of the Pyramids. Then you will see one of our comrades between two columns."; + next; + mes "[Thief Guide]"; + mes "Speak to that guy, and he'll take you to the farm through the backdoor."; + next; + mes "[Thief Guide]"; + mes "On that field, I think his coordinates are '^FF0000141, 125^000000.' Just type ^3355FF/where^000000 in the right side of your chat box to check your present coordinates."; close; - }else{ - if(Sex) { - mes "[Thief Guildsman]"; - mes "What the heck...?"; - mes "Huh.. you are a "+jobname(Class)+" blockhead...!"; + } + mes "[Thief Guide]"; + mes "Huh. For a second there, I thought you had something really important to tell me."; + close; + } + mes "[Thief Guide]"; + if (job_thief_q == 0) { + mes "What brings you down"; + mes "here to this rathole?"; + } + else { + mes "Ah..."; + mes "You came back."; + mes "Are you sure you're"; + mes "ready to try again?"; + } + next; + if (select("Hey, I came here to be a Thief!:Nah, I'm just looking around.") == 1) { + if (job_thief_q == 0) { + mes "[Thief Guide]"; + mes "Heh, I like your confidence. Still, you know being a Thief isn't all what it's cracked up to be."; + next; + mes "[Thief Guide]"; + mes "Still..."; + mes "Do you really"; + mes "want to be"; + mes "a Thief?"; + next; + switch(select("Yeah.:No, just wasting your time.:Why did you become a Thief?")) { + case 1: + mes "[Thief Guide]"; + mes "Really..."; + break; + case 2: + mes "[Thief Guide]"; + mes "Yeah..."; + mes "I can see that."; + break; + case 3: + mes "[Thief Guide]"; + mes "Me...?"; + mes "I had no choice at the time. It was either steal or starve. But it's not like I need to give you my life story."; + break; + } + next; + mes "[Thief Guide]"; + mes "So do you want to"; + mes "apply to become"; + mes "a Thief or not?"; + next; + switch(select("Yes, I will.:I'm too scared to be a Thief!")) { + case 1: + mes "[Thief Guide]"; + mes "Alright, tell"; + mes "me your name."; next; - mes "[Thief Guildsman]"; - mes "Hey, brother."; - mes "Why are you here? Go back to your place~ go back~~"; - close; - }else{ - mes "[Thief Guildsman]"; - mes "What the heck...?"; + mes "[Thief Guide]"; + mes "" + strcharinfo(0) + "?"; + mes "What kind of name is " + strcharinfo(0) + "? Anyway, give me a second."; + set job_thief_q,1; next; - mes "[Thief Guildsman]"; - mes "Hey, lady."; - mes "Why are you here? Go back to your place~ go back~~"; + mes "[Thief Guide]"; + mes "Alright, your registration has been processed. Okay, you can begin your test if you're ready."; + next; + switch(select("Yeah, I'm ready.:No, I'm not ready yet.")) { + case 1: + break; + case 2: + mes "[Thief Guide]"; + mes "Not ready?"; + mes "How can you"; + mes "not be ready?!"; + close; + } + break; + case 2: + mes "[Thief Guide]"; + mes "Too scared?!?"; + mes "Hahahahahahah!"; + mes "Oh, please...!"; + mes "That's hilarious!"; close; } } + else { + mes "[Thief Guide]"; + mes "Okay..."; + mes "Give me"; + mes "one second."; + next; + } + mes "[Thief Guide]"; + mes "Your name is..."; + mes strcharinfo(0) + "? Um, where is it? Ah, here it is. Let's see..."; + next; + mes "[Thief Guide]"; + if (getskilllv("NV_BASIC") < 9) { + mes "Isn't that cute? I can see you're ambitious, but you gotta learn all of the Basic Skills before you can become a Thief."; + close; + } + mes "Alright. I looked at your Felony Record, and you seem to have a very interesting history. You might have what it takes to be a Thief."; + next; + mes "[Thief Guide]"; + mes "Because I feel like it, I now decree that you have passed this interview. Good work!"; + set job_thief_q,2; + setquest 1013; + next; + mes "[Thief Guide]"; + mes "Now, your actual abilities will need to be tested. Do you know anything about the test?"; + next; + switch(select("Yes, I do.:Sorry, I don't.")) { + case 1: + mes "[Thief Guide]"; + mes "Oh yeah? Well, this makes things a lot easier."; + break; + case 2: + mes "[Thief Guide]"; + mes "Alright, let me inform you then. Listen carefully. This test decides if you are worthy of becoming a Thief."; + next; + mes "[Thief Guide]"; + mes "You will be sneaking to Shibu's Farm. He is the worst Merchant, in terms of character, in Morroc."; + next; + mes "[Thief Guide]"; + mes "Alright, for your test, you gotta steal Mushrooms from his farm. Don't worry, that guy deserves to be robbed."; + next; + mes "[Thief Guide]"; + mes "Anyway, you gotta gather two kinds of Mushrooms: ^0000FFOrange Net Mushrooms^000000 and ^0000FFOrange Gooey Mushrooms^000000."; + next; + mes "[Thief Guide]"; + mes "Be careful, since there are monsters are the farm that are there to protect the Mushrooms. So this will be no walk in the park."; + next; + mes "[Thief Guide]"; + mes "When you come back here after gathering Mushrooms, you'll be graded on the Mushrooms you've collected."; + next; + mes "[Thief Guide]"; + mes "Each Orange Net Mushroom gets you 3 points, and you get 1 point for each Orange Gooey Mushroom. You need a total of 25 points to pass the test."; + next; + mes "[Thief Guide]"; + mes "Go outside and keep going ahead toward the Eastern Field of the Pyramids. Then you will see one of our comrades between two columns."; + next; + mes "[Thief Guide]"; + mes "Speak to that guy, and he'll take you to the farm through the backdoor."; + next; + mes "[Thief Guide]"; + mes "On that field, I think his coordinates are '^FF0000141, 125^000000.' Just type ^3355FF/where^000000 in the right side of your chat box to check your present coordinates."; + } + next; + mes "[Thief Guide]"; + mes "Don't forget to make plans and prepare yourself before you go inside the Mushroom Farm. Move as quickly as you can and try not to get killed, alright?"; + close; } - mes "[Thief Guildsman]"; - mes "Ehh... Seems like a beloved "+(Sex?"son":"daughter")+" of a rich family, but why are you here in this dirty place?"; - next; - if(select("I want to be a Thief.:Nothing.") == 2) { - mes "[Thief Guildsman]"; - mes "You know you cannot be a thief without an application....."; - mes "What's on your mind..?"; + close; +} + +moc_prydb1,42,133,2 script Comrade 118,{ + if (BaseJob == Job_Thief) { + mes "[Brad]"; + mes "We don't have any special events yet. Come some other time when there's news, alright?"; close; } - mes "[Thief Guildsman]"; - mes "Well, are you that proud of it?"; - mes "You're telling me so proudly that you want to be a Thief! Why don't you go to all the villages and advertise yourself for being a thief?"; - mes "'Ha ha ha! Go put up a banner that says 'I will be a proud thief who steals other people's stuff.'"; - next; - mes "[Thief Guildsman]"; - mes "Do you want to be a thief so badly?"; - next; - switch(select("Yes.:No.:How about you?")) { - case 1: - mes "[Thief Guildsman]"; - mes "Oh, do you...? Huh.. well... I do live and learn to see strange people like you."; - next; - break; - case 2: - mes "[Thief Guildsman]"; - mes "Then why are you here? Do you think you can become a thief so easily?"; - next; - break; - case 3: - mes "[Thief Guildsman]"; - mes "Eh..? me? me?"; - mes "Well... I just fit well to being a thief... characteristically... I don't mind this silly matter."; - next; - break; - } - mes "[Thief Guildsman]"; - mes "Anyway, in the outside world, never say that you want to be a Thief!!"; - next; - mes "[Thief Guildsman]"; - mes "So, do you want to apply for being a Thief?"; - next; - if(select("Yes, I do.:No.") == 2) { - mes "[Thief Guildsman]"; - mes "Well... do what you want to do~ Go your way~"; + else if (BaseJob != Job_Novice && BaseJob != Job_Thief) { + mes "[Comrade]"; + mes "Um..."; + mes "You don't look"; + mes "like a Thief."; + next; + mes "[Comrade]"; + mes "What the heck are"; + mes "you doing here anyway?"; close; } - mes "[Thief Guildsman]"; - mes "Alright, tell me your name. Huh? What?"; - mes ""+strcharinfo(0)+". So "+strcharinfo(0)+", right...?"; - next; - if (getskilllv("NV_BASIC") < 9) { - mes "[Thief Guildsman]"; - mes "I can see your strong will to become a Thief......"; - mes "But only with your will, you cannot make it in a real fight, can you?"; - mes "So go and reach at least Basic Skill Level 9."; + if (job_thief_q == 0 || job_thief_q == 1) { + mes "[Comrade]"; + mes "What's the matter? If you want to be a Thief, speak to the girl beside me."; close; } - mes "[Thief Guildsman]"; - mes "Hmm.... I found your interesting criminal records from the data of the detective agency. Well you seem to have what it takes to be a good thief."; - mes ""+strcharinfo(0)+". I now declare that you have passed the job interview!"; - next; - mes "[Thief Guildsman]"; - mes "Well, I'm not in charge of making you a Thief. I just accept applications, get it?"; - mes "If you want to become a Thief, ask the guy next to me."; - set q_job_thief,1; - close; -} - -moc_prydb1,42,133,2 script Thief Guildsman#thief 118,{ - if(q_job_thief == 1) { - mes "[Thief Guildsman]"; - mes "Alright. You must have passed the job interview, huh?"; - mes "Good. I'll accept you."; - mes "Let's begin the job-changing ceremony of our guild!"; - next; - mes "[Commander of Thief Guild]"; - mes "'"+strcharinfo(0)+".'"; - mes "'For those who are ready, the moonlight shall open the way. Now you are fully ready, I now officially allow you to become a member of the Thief Guild.'"; - jobchange Job_Thief; - set q_job_thief,0; - getitem 13041,1; // N_Main_Gauche - next; - mes "[Commander of Thief Guild]"; - mes "'Congratulations on becoming a Thief.'"; - mes "'From now on, keep the rules of our guild and be an honorable member.'"; - mes "'If you bring us any disgrace by breaking our rules, you better watch your back.'"; - mes "'Anyway, I expect you to be a great thief.'"; + else if (job_thief_q == 2) { + mes "[Comrade]"; + mes "Did you pass the interview?"; + mes "Then what are you waiting for?"; + close; + } + else if (job_thief_q == 3) { + mes "[Comrade]"; + mes "Ah, the guide told me about you. So, let me check your mushrooms..."; + if (countitem(1069) == 0 && countitem(1070) == 0) { + next; + mes "[Comrade]"; + mes "What the hell..."; + mes "You don't have any Mushrooms at all! Go back and get them. Otherwise, you won't pass the test and become a Thief!"; + close; + } + next; + set .@thief_item1,countitem(1069) * 3; + set .@thief_item2,countitem(1070); + set .@total_thief,.@thief_item1 + .@thief_item2; + set .@money_thief,((.@thief_item1 * 5) + (.@thief_item2 * 2)) + 200; + mes "[Comrade]"; + if (countitem(1069) != 0) { + mes "First, let me check the Orange Net Mushrooms you got."; + mes "Huh, " + countitem(1069) + " of them."; + } + if (countitem(1070) != 0) + mes "Now I'll just check your Orange Gooey Mushrooms. That's " + countitem(1070) + " you gathered."; + next; + mes "[Comrade]"; + mes "So that would"; + mes "bring your total to..."; + next; + mes "[Comrade]"; + mes "Hmmm. " + .@total_thief + " degrees, multiplied by the speed of light, divided by the integral of pi times height plus the absolute value of politics..."; + next; + mes "[Comrade]"; + mes "Okay!"; + mes "I got it."; + next; + mes "[Comrade]"; + if (.@total_thief > 25) { + mes "You got more"; + mes "than 25 points!"; + mes "Awesome!"; + } + else if (.@total_thief == 25) { + mes "Exactly 25 points!"; + mes "You did it! Badass!"; + } + else { + mes "Definitely less than the 25 points you need to pass. Go out there and get me more Mushrooms!"; + close; + } + next; + mes "[Comrade]"; + mes strcharinfo(0) + "..."; + mes "You have passed the official Thief Test. You are now one of us."; + if (countitem(1069) != 0) delitem 1069,countitem(1069); //Mushroom_Of_Thief_1 + if (countitem(1070) != 0) delitem 1070,countitem(1070); //Mushroom_Of_Thief_2 + callfunc "Job_Change",Job_Thief; + callfunc "F_ClearJobVar"; + completequest 1013; + next; + mes "[Comrade]"; + mes "Congratulations on becoming a Thief! From now, be an honorable representative of the Thief's Guild."; + next; + mes "[Comrade]"; + mes "If you bring disgrace to our guild, you will be killed. I expect you to bring our comrades pride."; next; mes "[Brad]"; - mes "Heee~Yaaaa~! Congratulations! My friend."; - mes "My name is 'Brad'. I'm in charge of human resources here."; - mes "I'm not sure for now but you'll have more chances to see me later on."; + mes "*Ahem* Welcome to the Guild, comrade! I'm Brad, and I'm in charge of human resources here."; next; mes "[Brad]"; - mes "Okay, I've done what I can do to you, so go on your way. I'm quite a busy man."; - mes "See you again."; + mes "Here is a small subsidy for a Newbie like you. Spend it whereever you want. Alright then, I'll see you around~"; + set zeny,zeny+.@money_thief; close; } - if(Class != Job_Novice) { - if(Class == Job_Thief) { - mes "[Brad]"; - mes "I don't have any special events now. So go on your way and come back later."; - }else{ - mes "[Thief Guildsman]"; - mes "Hey~ Hey~ You're not a novice or a thief!"; - mes "What are you doing here? You're not welcome to make this place your home~ Hweeeee~ Get outta here~"; +} + +moc_ruins,141,125,3 script Mr. Irrelevant 83,{ + if (BaseJob == Job_Thief) { + mes "[Mr. Irrelevant]"; + mes "Ah, I see that you are now a Thief. I always knew you'd join us."; + next; + mes "[Mr. Irrelevant]"; + mes "Stealing from a Mushroom farm is too easy for you now. You should build up your skills and master our craft."; + close; + } + else if (BaseJob != Job_Novice && BaseJob != Job_Thief) { + mes "[Mr. Irrelevant]"; + switch(rand(4)) { + case 1: + mes "I could use a good, hard drink."; + close; + case 2: + mes "Gimme your money."; + next; + mes "[Mr. Irrelevant]"; + mes "Kidding, I'm off the clock."; + close; + case 3: + mes "WHO YOU CALLING A PSYCHO?!?!"; + close; + case 4: + mes "I've got nothing to say to you. Would you mind leaving me alone?"; + close; + default: + mes "Today looks like a good day to go to the pyramids and hunt with some of my friends."; + close; + } + } + if (job_thief_q == 3) { + mes "[Mr. Irrelevant]"; + mes "Hahahahaha~!"; + mes "You haven't"; + mes "passed the test yet?"; + mes "Alright, I'll let you in..."; + close2; + switch(rand(5)) { + case 1: warp "job_thief1",228,106; end; + case 2: warp "job_thief1",38,50; end; + case 3: warp "job_thief1",66,331; end; + case 4: warp "job_thief1",196,331; end; + default: warp "job_thief1",309,234; end; } + } + else if (job_thief_q == 2) { + mes "[Mr. Irrelevant]"; + mes "Hmm..."; + mes "You've come to take the test, right? I can see in your eyes that you know something."; + next; + mes "[Mr. Irrelevant]"; + mes "Your name is " + strcharinfo(0) + "? Ah, it's on the list. Alright, I'll let you into the Mushroom Farm , but I can't guarantee your safety..."; + close2; + set job_thief_q,3; + switch(rand(5)) { + case 1: warp "job_thief1",228,106; end; + case 2: warp "job_thief1",38,50; end; + case 3: warp "job_thief1",66,331; end; + case 4: warp "job_thief1",196,331; end; + default: warp "job_thief1",309,234; end; + } + } + else if (job_thief_q == 1) { + mes "[Mr. Irrelevant]"; + mes "There is this strange smell coming from... You. Now why would that be?"; close; } - mes "[Thief Guildsman]"; - mes "Ho? Why is a novice like you visiting here?"; - mes "If you are here to be a Thief, ask the nasty-tempered lady right next to me."; + mes "[Mr. Irrelevant]"; + mes "Hey Novice! Why don't you join the ranks of the Thief Guild? You newbies are always welcome to join us and our selfish cause."; + next; + mes "[Mr. Irrelevant]"; + mes "You can get more information in the Underground Room in the Pyramid 1 BF."; close; } + +// Monsters +//============================================================ +job_thief1,0,0,0,0 monster Orange Mushroom 1182,180,0,0,0 +job_thief1,0,0,0,0 monster Fabre 1184,50,0,0,0 +job_thief1,0,0,0,0 monster Chonchon 1183,50,0,0,0 +job_thief1,0,0,0,0 monster Spore 1014,30,0,0,0 + +//============================================================ +// mapflag +//============================================================ |