//===== eAthena Script =======================================
//= Rogue Job Quest
//===== By: ==================================================
//= kobra_k88
//===== Current Version: =====================================
//= 2.3a
//===== Compatible With: =====================================
//= eAthena 1.0 +
//===== Description: =========================================
//= Rogue job quest based off of official iRO Rogue quest.
//= There are some differences from official quest due to
//= scripting issues. Missing some message text.
//===== Additional Comments: =================================
//= 1.1 fixed 3 wrong questions, added missing lines [Lupus]
//= 1.3 Baby Class Support + 40/50 JobLevel Item fix [Lupus]
//= 1.5 Fixed possible EXP abuse [Lupus]
//= 1.6 Added a func which prevent advanced classes passing
//= 2nd Job Quests again. It also guides adv classes where
//= to go. [Lupus]
//= 2.0 Changed numbers to constants. [Vicious]
//= 2.1 Removed Duplicates [Silent]
//= 2.2 Merged JFunc [Lupus]
//= 2.3 Added a possibility for players doing Meginjyard quest
//= to enter Rogue guild as there's a NPC inside [SinSloth]
//= 2.3a fixed test4 person interaction, let BABY thieves pass
//= the test, too [Lupus]
//============================================================
//=======================================================================================================//
// Markie: Test 1 and Jobchange //
//***********************************************************************************************************************************************************//
in_rogue,363,123,3 script Markie 747,{
callfunc "F_BlockHigh",Job_Thief_High,"Thief High",Job_Stalker,"Stalker","Markie";
mes "[Markie]";
if(BaseJob == Job_Thief) goto L_Thief;
if(BaseJob == Job_Rogue) goto L_Rogue;
L_JobOther:
mes "I don't know how you found this place, but I think you better leave..........";
close;
L_Rogue:
mes "Nice to see you again sweetie. You must be having so much fun as Rogue huh? Teh he he....";
close;
L_Thief:
if(JobLevel < 40){
mes "Oh hi there. If you want to become a Rogue I'm afraid you'll have to come back after you've trained a little more.";
mes "Only Thieves with a ^5533FFJob level of at least 40^000000 can become Rogues.";
close;
}
if(ROGUE_Q == 1) goto L_ReTest;
if(ROGUE_Q == 2) goto L_Test2;
if(ROGUE_Q == 3) goto L_Test3;
if(ROGUE_Q == 4) goto L_Test4;
if(ROGUE_Q == 5) goto L_Change;
mes "Hmm? What brings you down here? Oh I see now... You want to become a rogue don't you sweetie?";
next;
mes "[Markie]";
mes "Well it's nice to meet you. My name is Markie, what's yours?";
next;
mes "[Markie]";
mes strcharinfo(0) + "..... Te he, you've got a nice name there honey. By the way, how come you decided to become a Rogue?";
next;
mes "[Markie]";
mes "Well since you were honest with me and gave me your real name I guess it doesn't really matter.";
mes "But for future reference, a Rogue never reveals his/her true identity to anybody.";
next;
mes "[Markie]";
mes "It's a Rogue's number 1 rule shuga, so from now on you'd better be careful about that.";
mes "By the way, here's an application form..... please fill out all the necessary information.....";
next;
mes "(you fill out the form and hand it back)";
set JBLVL, JobLevel; // used to determine what item to get at the end
next;
mes "[Markie]";
mes "Okay honey.... looks good, I'll accept your application.";
mes "Now that that's been taken care of, how about I conduct a short interview with you?";
next;
mes "[Markie]";
mes "Oh, you don't have to be nervous about it sweetie.... I'm just want to find out how much you know about Rogues.";
mes "I do this with all of the Rogue candidates. Shall we begin?";
next;
menu "Ok.",L_Test1, "Hold on... I need some time.",-;
mes "[Markie]";
mes "Okay honey, just take your time. When you're ready come back.";
close;
//=================================================================
L_Test1:
//=======
mes "[Markie]";
mes "I am going to ask you a few questions. Listen carefully and choose what you think is the best answer okay?";
next;
savepoint "in_rogue",366,114;
set @score, 0;
set ROGUE_Q, 1;
if(rand(2)) goto L_QSet2;
mes "[Markie]";
mes "1) What is the added flee rate that a Thief recieves when the ^5533FFImprove Dodge^000000 skill is ^5533FFmastered^000000?";
next;
menu "20",sM1_1, "30",-, "40",sM1_1, "160",sM1_1;
set @score, @score + 10;
sM1_1:
mes "[Markie]";
mes "2) Choose a monster that cannot detect a hidden or cloaked character?";
next;
menu "Mummy",sM1_2, "Worm Tail",-, "Argos",sM1_2, "Soldier Skeleton",sM1_2;
set @score, @score + 10;
sM1_2:
mes "[Markie]";
mes "3) Where is the Rogue guild located?";
next;
menu "Comodo",sM1_3, "Kokomo Beach",sM1_3, "Pharos Lightouse",-, "Morroc",sM1_3;
set @score, @score + 10;
sM1_3:
mes "[Markie]";
mes "4) In which of the following towns, can you become a Thief?";
next;
menu "Comodo",sM1_4, "Lutie",sM1_4, "Alberta",sM1_4, "Morroc",-;
set @score, @score + 10;
sM1_4:
mes "[Markie]";
mes "5) Choose the card that does ^FF3355not^000000 have an effect on a players ^5533FFDEX stat^000000...";
next;
menu "Rocker Card",sM1_5, "Mummy Card",-, "Zerom Card",sM1_5, "Drops",sM1_5;
set @score, @score + 10;
sM1_5:
mes "[Markie]";
mes "6) What do you think is cool about being a Rogue?";
next;
menu "Being a bad ass",sM1_6, "Being a hypocrite",sM1_6, "Being shameless",sM1_6, "Having excellent attack strength",-;
set @score, @score + 10;
sM1_6:
mes "[Markie]";
mes "7) At what job level can you change from a Thief to a Rogue?";
next;
menu "At job lvl 30",sM1_7, "At job lvl 35",sM1_7, "At job lvl 40",-, "At job lvl 50",-;
set @score, @score + 10;
sM1_7:
mes "[Markie]";
mes "8) If you wanted to dye your hair a different color, where would you have to go to do that?";
next;
menu "Building in SouthWestern part of Morroc",sM1_8, "Building in SouthWestern part of Prontera",-,
"Building in SouthEastern part of Morroc",sM1_8, "Building in NorthEastern part of Prontera",sM1_8;
set @score, @score + 10;
sM1_8:
mes "[Markie]";
mes "9) What mushrooms do you need to steal in order to become a Thief?";
next;
menu "Orange Gooey Mushrooms",-, "Red Hairy Mushrooms",sM1_9, "Orange Net Mushrooms",-, "Orange Sticky Mushrooms",sM1_9;
set @score, @score + 10;
sM1_9:
mes "[Markie]";
mes "10) Which of these cards is ^FF3355useless^000000 to a Rogue?";
next;
menu "Whisper Card",sM1_10, "Elder Willow Card",-, "Zerom Card",sM1_10, "Matyr Card",sM1_10;
set @score, @score + 10;
sM1_10:
goto L_Score;
L_QSet2:
mes "[Markie]";
mes "1) What skill do you need to learn before you can learn ^5533FFTunnel Drive^000000?";
next;
menu "Hiding",-, "Steal",sM2_1, "Improve Dodge",sM2_1, "Bash",sM2_1;
set @score, @score + 10;
sM2_1:
mes "[Markie]";
mes "2) How much more of a discount can a Rogue get with the ^5533FFHaggel^000000 skill than a merchant can with the ^5533FFDiscount^000000 skill?";
next;
menu "3%",sM2_2, "2%",sM2_2, "1%",-, "0%",sM2_2;
set @score, @score + 10;
sM2_2:
mes "[Markie]";
mes "3) What is the correct description for the skill ^5533FFMug^000000?";
next;
menu "Steal Items from players",sM2_3, "Steal Items from monsters",sM2_3, "Steal Zeny from monsters",-, "Steal Zeny from players",sM2_3;
set @score, @score + 10;
sM2_3:
mes "[Markie]";
mes "4) How many Rogues are required to activate the skill ^5533FFGangster's Paradise^000000?";
next;
menu "1 Rogue + 2 Assassins",sM2_4, "2 Rogues + 1 Thief",sM2_4, "4 Thieves",sM2_4, "2 or more Rogues",-;
set @score, @score + 10;
sM2_4:
mes "[Markie]";
mes "5) After increasing ^5533FFDivest Helm^000000 to level 5, what other skill becomes available for you learn?";
next;
menu "Envenom",sM2_5, "Strip Tease",sM2_5, "Venom Splasher",sM2_5, "Divest Shield",-;
set @score, @score + 10;
sM2_5:
mes "[Markie]";
mes "6) Choose a skill that allows its user to move while being hidden?";
next;
menu "Hiding",sM2_6, "Back Slide",sM2_6, "Tunnel Drive",-, "Sand Attack",sM2_6;
set @score, @score + 10;
sM2_6:
mes "[Markie]";
mes "7) Choose the card that increases the ^5533FFaccuracy rate^000000 of its owner?";
next;
menu "Andre",sM2_7, "Familiar",sM2_7, "Mummy",-, "Marina",sM2_7;
set @score, @score + 10;
sM2_7:
mes "[Markie]";
mes "8) Choose the monster that receives more damage when attacked by a weapon with a Vadon card attached to it?";
mes "(Vadon card inflicts 20% more damage to fire property monsters)";
next;
menu "Vadon",sM2_8, "Deviruchi",sM2_8, "Elder Willow",-, "Baphomet",sM2_8;
set @score, @score + 10;
sM2_8:
mes "[Markie]";
mes "9) How much SP does the ^5533FFDouble Attack^000000 skill require when used with a dagger?";
next;
menu "15 SP",sM2_9, "No SP needed",-, "10 SP",sM2_9, "54 SP",sM2_9;
set @score, @score + 10;
sM2_9:
mes "[Markie]";
mes "10) Choose an effective dagger to use in the Byalan Dungeon?";
next;
menu "Wind Main-Gauche",-, "Ice Main-Gauche",sM2_10, "Earth Main-Gauche",sM2_10, "Fire Main-Gauche",sM2_10;
set @score, @score + 10;
sM2_10:
L_Score:
mes "[Markie]";
mes "Okay, those are all of the questions I have. Now that wasn't so bad was it sweetie?";
mes "I hope you don't mind, but I've been grading your answers.";
next;
mes "[Markie]";
mes "I like to give people scores on their interviews so that they can know how well they did.";
mes "It looks like you got a ^FF3355" + @score +"^000000/100............";
next;
mes "[Markie]";
if(@score< 90) goto sL_Failed;
if(@score<100) goto sL_Passed;
sL_Perfect:
mes "A perfect score! I knew you had what it takes to be a Rogue.....";
mes "But don't get ahead of yourself honey cause there is still plenty more.....";
next;
mes "[Markie]";
set ROGUE_Q, 2;
goto L_Test2;
sL_Passed:
mes "Good, good. You did a good job shuga. But there is still more so don't get excited just yet.....";
next;
mes "[Markie]";
set ROGUE_Q, 2;
goto L_Test2;
return;
sL_Failed:
mes "*sigh*..... this is not the type of score I was expecting......";
mes "What can I say excecpt, with a score like this you're definitely not cut out to be a Rogue..........";
emotion e_swt;
next;
mes "[Markie]";
mes "Why don't you go do some more training shuga..... you need it..... *mumbles ( what a waste of my time...)*";
close;
L_ReTest:
mes "You again? Are you sure you're ready this time?...... Okay honey, just relax....";
next;
goto L_Test1;
L_Test2:
mes "Your second test will be given by ^5533FFMr. Smith^000000.";
mes "I have to warn you though, Mr. Smith can be difficult and hard to please. So be careful how you act around him.";
close;
L_Test3:
mes "I know those guys are hard to find. Just be patient and keep on searching. Make sure you have the correct password as well..";
close;
L_Test4:
mes "What are you doing here? I hope your not trying to skip the last test?.........";
emotion e_what;
next;
mes "[Markie]";
mes "Your almost finished so just keep trying. I know you can do it.";
close;
//=======================================================================
L_Change:
//===========
mes "Oh, you're back and your in one piece! It looks like you've passed all of the tests sweetie.";
mes "You have proven that you are ready to become a Rogue!";
emotion e_ic;
next;
if(SkillPoint != 0) goto L_SkillP;
mes "[Markie]";
mes "Tada! Congratulations on becoming a Rogue. You showed a lot of effort and deserve a reward for it......";
setlook 7,0;
callfunc "Job_Change",Job_Rogue;
emotion e_grat;
next;
mes "[Markie]";
mes "Now that you are a Rogue you are free to go where ever you want to and do what ever you want.";
if(JBLVL != 50) {
getitem 1219,1; // 2 slott gladius
} else {
getitem 1220,1; // 3 slott gladius
}
callfunc "F_ClearJobVar";
next;
mes "[Markie]";
mes "Just keep in mind that freedom requires responsibility. Treat people the way you expect to be treated.";
next;
mes "[Markie]";
mes "Have fun shuga! See ya around!";
close;
//=======================================================================
L_SkillP:
//===========
mes "[Markie]";
mes "Oh but one thing honey... you have leftover skill points!";
mes "Finish them first and come back, 'kay?";
close;
}
//=======================================================================================================//
// Mr. Smith: Tests 2 and 3 //
//***********************************************************************************************************************************************************//
in_rogue,376,23,3 script Mr. Smith 57,{
mes "[Mr. Smith]";
if(BaseJob == Job_Thief) goto L_Thief;
if(BaseJob == Job_Rogue) goto L_Rogue;
L_OtherJob:
mes "Go away! I'm busy.....";
close;
L_Rogue:
mes "Looking good there my Rogue friend";
close;
L_Thief:
if(ROGUE_Q == 2) goto L_Test2;
if(ROGUE_Q == 3) goto L_Test3;
if(ROGUE_Q > 3) goto L_Done;
mes "Ok ok.... one... two.... three.... Where do you do you business... is it.... Morroc... Geffen.... Comodo??.......";
next;
mes "[Mr. Smith]";
mes "Uhh..... this is giving me a headache.......";
next;
mes "[Mr. Smith]";
mes "Huh? Who are you? If you want to become a rogue go talk to ^5533FFMarkie^000000....";
next;
mes "[Mr. Smith]";
mes "...... CRAP! I forgot what I was counting!!";
emotion e_wah;
close;
//----------------------------------------------------------------------------------------------------
L_Test2:
//--------------
if(ROGUE_Q2 > 0) goto L_Check2;
mes "So you're here to take the second test.... good.......";
next;
mes "[Mr. Smith]";
mes "Before we get started, let me tell you about the test application fee.";
mes "Our guild is involved in alot of business *cough* 'transactions' *cough* and therefore we are in constant needs of funds.";
next;
mes "[Mr. Smith]";
mes "This is why we require a fee of ^5533FF10,000 zeny^000000 to be paid when taking the Rogue tests.";
mes "The fee will be collected when you have completed this second test so don't have to worry if you don't have it now.";
next;
mes "[Mr. Smith]";
mes "Now for your test..... You will be required to collect the following items:";
next;
mes "[Mr. Smith]";
set ROGUE_Q2, rand(1,3);
if(ROGUE_Q2 == 1) callsub sF2_R1;
if(ROGUE_Q2 == 2) callsub sF2_R2;
if(ROGUE_Q2 == 3) callsub sF2_R3;
next;
mes "[Mr. Smith]";
mes "Once you have ALL of these items and 10,000 zeny, come back and see me okay? Good.";
close;
sF2_R1:
mes "^5533FF6 Blue Herbs,";
mes "10 Skel Bones,";
mes "10 Decayed Nails,";
mes "10 Horrendous Mouths^000000.";
return;
sF2_R2:
mes "^5533FF10 Green Herbs,";
mes "10 Garlets,";
mes "10 Snake Scales";
mes "10 Crab Shells.^000000";
return;
sF2_R3:
mes "^5533FF10 Yellow Herbs,";
mes "10 Bear's Footskin,";
mes "10 Shells";
mes "10 Grasshopper's Legs^000000.";
return;
L_Check2:
set @count, 0;
if(ROGUE_Q2 == 2) goto L_2;
if(ROGUE_Q2 == 3) goto L_3;
L_1:
set @R, 1;
if(countitem(510)<6 || countitem(932)<10 || countitem(957)<10 || countitem(958)<10 || Zeny < 10000) goto L_NotEnuf;
delitem 510,6;
delitem 932,10;
delitem 957,10;
delitem 958,10;
goto L_Done2;
L_2:
set @R, 2;
if(countitem(511)<10 || countitem(910)<10 || countitem(926)<10 || countitem(964)<10 || Zeny < 10000) goto L_NotEnuf;
delitem 511,10;
delitem 910,10;
delitem 926,10;
delitem 964,10;
goto L_Done2;
L_3:
set @R, 3;
if(countitem(508)<10 || countitem(948)<10 || countitem(935)<10 || countitem(940)<10 || Zeny < 10000) goto L_NotEnuf;
delitem 508,10;
delitem 948,10;
delitem 935,10;
delitem 940,10;
L_Done2:
mes "Let's see here.... application fee.... check..... items....... check...... Alright, everything looks in order. You've passed the second test.";
next;
mes "[Mr. Smith]";
mes "When you are ready to take the next test let me know.";
set Zeny, Zeny - 10000;
set ROGUE_Q, 3;
set ROGUE_Q2, 0;
close;
L_NotEnuf:
mes ".... What the f@&#!?!? You don't have all of the items? Then why did you come back?? Don't tell me you forgot what to get.....";
emotion e_what;
next;
mes "[Mr. Smith]";
mes "Write this down! You need ^5533FF10,000^000000 zeny and:";
if(ROGUE_Q2 == 1) callsub sF2_R1;
if(ROGUE_Q2 == 2) callsub sF2_R2;
if(ROGUE_Q2 == 3) callsub sF2_R3;
next;
mes "[Mr. Smith]";
mes "Got it? DON'T come back until you have everything.........";
emotion e_pif;
close;
//----------------------------------------------------------------------------------------------
L_Test3:
//---------------
if(ROGUE_Q2 > 0) goto L_Check3;
mes "Let me see..... Who should I have you go find........ hmm.........";
emotion e_hmm;
next;
mes "[Mr. Smith]";
mes "Ah I know! Alright, in the previous test I had you go find some items. For this test you will need to find a specific person.";
emotion e_ic;
next;
mes "[Mr. Smith]";
set ROGUE_Q2, rand(1,3);
if(ROGUE_Q2 == 1) callsub sF3_R1;
if(ROGUE_Q2 == 2) callsub sF3_R2;
if(ROGUE_Q2 == 3) callsub sF3_R3;
next;
mes "[Mr. Smith]";
mes "Good luck to you. Try to finish this test as soon as possible. Getting things done quickly is one of a Rogue's traits.";
close;
sF3_R1:
mes "You will have to go and find ^5533FFAragham Junior^000000.";
next;
mes "[Mr. Smith]";
mes "He lives in a little house somewhere ^5533FFSouthWest^000000 of the Fortress of Sandarman.";
mes "That area is located ^5533FFone map East^000000 from here and is on the ^000000SouthWestern land mass^000000.";
next;
mes "[Mr. Smith]";
mes "He's a really nice guy who works real hard and is very good at collecting unpaid debts.";
mes "Unfortunately people were trying to kill him because of something his father had done in the past.";
next;
mes "[Mr. Smith]";
mes "When he joined the Rogue guild, he decided he was going to keep low which is why he's in his current hiding place.";
mes "No one is supposed to know where he is except for those of us at the Rogue Guild.";
next;
mes "[Mr. Smith]";
mes "That's why you will need this password in order to talk to him.";
mes "The password is: '^5533FFAragham never hoarded upgrade items.^000000'";
return;
sF3_R2:
mes "You will have to go and find ^5533FFHollgrehen Junior^000000.";
next;
mes "[Mr. Smith]";
mes "He lives in a little house somewhere ^5533FFSouthEast^000000 of the Fortress of Sandarman.";
mes "That area is located ^5533FFone map East^000000 from here and is on the ^5533FFEastern land mass^000000.";
next;
mes "[Mr. Smith]";
mes "He's a really nice guy who works real hard and is very good at collecting unpaid debts.";
mes "Unfortunately people were trying to kill him because of something his father had done in the past.";
next;
mes "[Mr. Smith]";
mes "When he joined the Rogue guild, he decided he was going to keep low which is why he's in his current hiding place.";
mes "No one is supposed to know where he is except for those of us at the Rogue Guild.";
next;
mes "[Mr. Smith]";
mes "That's why you will need this password in order to talk to him.";
mes "The password is: '^5533FFMy Father never hoarded upgrade items.^000000'";
return;
sF3_R3:
mes "You will have to go and find ^5533FFAntonio Junior.^000000.";
next;
mes "[Mr. Smith]";
mes "He lives in a little hut somewhere on the ^5533FFEastern end of Kokomo Beach^000000.";
mes "That area is located ^5533FF1 map North, and 1 map West^000000 from here.";
next;
mes "[Mr. Smith]";
mes "He's a really nice guy who works real hard and is very good at collecting unpaid debts.";
mes "Unfortunately people were trying to kill him because of something his father had done in the past.";
next;
mes "[Mr. Smith]";
mes "When he joined the Rogue guild, he decided he was going to keep low which is why he's in his current hiding place.";
mes "No one is supposed to know where he is except for those of us at the Rogue Guild.";
next;
mes "[Mr. Smith]";
mes "That's why you will need this password in order to talk to him.";
mes "The password is: '^5533FFAntonio doesn't like breaking refining material.^000000'";
return;
L_Check3:
mes "What!?! Did you just say you forgot where to go?........";
emotion e_what;
next;
mes "[Mr. Smith]";
mes "GRRRR!!! That's why you need to WRITE down important things! Geez......";
emotion e_an;
next;
mes "[Mr. Smith]";
if(ROGUE_Q2 == 1) callsub sF3_R1;
if(ROGUE_Q2 == 2) callsub sF3_R2;
if(ROGUE_Q2 == 3) callsub sF3_R3;
close;
//-------------------------------------------------------------------------------------------------
L_Done:
//----------------
mes "I have no more busisness with you.........";
close;
}
//===========================================================
// Guildsman that need to be found
//===========================================================
//------------------------------------------------------------------------------
in_rogue,272,136,3 script Hermanthorn Jr. 85,{
mes "[Hermanthorn Jr.]";
mes "Huh? Wha.... who are you?! You're not from the Rogue guild!! Get out of here!";
emotion e_what;
next;
mes "[Hermanthorn Jr.]";
mes "You're..... I see! You're one of them!!! You've come here to kill me haven't you??!! No... NO!! I'm not ready to die yet!";
emotion e_gasp;
next;
mes "[Hermanthorn Jr.]";
mes "Aaaaaaaaaaaaaahhhh!! Go away! Get lost! Otherwise I am gonna KILL YOU!!!";
emotion e_wah;
close;
}
// --------------------------------------------------------------------------
cmd_fild09,106,195,0 script Aragham Junior#01 45,1,1,{
callfunc "F_RogueTest3", 1, "Aragham", "never", "hoarded", "upgrade items.", 244, 24;
}
// -----------------------------------------------------------------------------
cmd_fild09,335,143,0 script Hollgrehen Junior#01 45,1,1,{
callfunc "F_RogueTest3", 2, "My father", "never", "hoarded", "upgrade items.", 168, 34;
}
// ------------------------------------------------------------------------------
cmd_fild04,304,179,0 script Antonio Junior#01 45,1,1,{
callfunc "F_RogueTest3", 3, "Antonio", "doesn't like", "breaking", "refining materials.", 165, 104;
}
// Function for Guildsman ===================================
function script F_RogueTest3 {
mes "[???]";
mes "Who's there?!!!";
mes "Who dares to trespass on my territory?";
if(god_megin_2 > 0 && getarg(1) == "Aragham") goto L_Pass;
if(BaseJob != Job_Thief || ROGUE_Q<3 || ROGUE_Q2==0) close;
L_Pass:
deletearray @choice$[1], 4;
next;
menu "My father",M_1a, "Aragham",M_1b, "Antonio",M_1c, "Legolas",M_1d;
M_1a:
set @choice$[1], "My father";
goto M_Menu2;
M_1b:
set @choice$[1], "Aragham";
goto M_Menu2;
M_1c:
set @choice$[1], "Antonio";
goto M_Menu2;
M_1d:
set @choice$[1], "Legolas";
M_Menu2:
callsub sF_Password;
menu "did not",M_2a, "doesn't like",M_2b, "never",M_2c, "ever",M_2d;
M_2a:
set @choice$[2], "did not";
goto M_Menu3;
M_2b:
set @choice$[2], "doesn't like";
goto M_Menu3;
M_2c:
set @choice$[2], "never";
goto M_Menu3;
M_2d:
set @choice$[2], "ever";
M_Menu3:
callsub sF_Password;
menu "hoard",M_3a, "hoarded",M_3b, "hide",M_3c, "took",M_3d, "breaking",M_3e;
M_3a:
set @choice$[3], "hoard";
goto M_Menu4;
M_3b:
set @choice$[3], "hoarded";
goto M_Menu4;
M_3c:
set @choice$[3], "hide";
goto M_Menu4;
M_3d:
set @choice$[3], "took";
goto M_Menu4;
M_3e:
set @choice$[3], "breaking";
M_Menu4:
callsub sF_Password;
menu "upgrade items.",M_4a, "forging items.",M_4b, "refining materials.",M_4c, "upgrade equipment.",M_4d;
M_4a:
set @choice$[4], "upgrade items.";
goto L_Check;
M_4b:
set @choice$[4], "forging items.";
goto L_Check;
M_4c:
set @choice$[4], "refining materials.";
goto L_Check;
M_4d:
set @choice$[4], "upgrade equipment.";
L_Check:
callsub sF_Password;
if(god_megin_2 > 0) goto L_Enter;
if(ROGUE_Q2 != getarg(0)) goto L_Wrong;
L_Enter:
if((@choice$[1] != getarg(1)) || (@choice$[2] != getarg(2)) || (@choice$[3] != getarg(3)) || (@choice$[4] != getarg(4))) goto L_Wrong;
mes "~ creeek ~";
mes "You hear the door begining to open........";
next;
deletearray @choice$[1], 4;
warp "in_rogue", getarg(5), getarg(6);
end;
L_Wrong:
mes "[???]";
mes "Get lost!!";
close;
sF_Password:
mes "[^5533FF" + strcharinfo(0) + "^000000]";
mes @choice$[1];
mes @choice$[2];
mes @choice$[3];
mes @choice$[4];
next;
return;
}
//=======================================================================================================//
// Test 4: Last Test //
//***********************************************************************************************************************************************************//
// Other path
// warp "in_rogue", 11, 388;
// 390,389 end warp
// 9,9 -> 9,21
//===============================================
// Guildsman
//===============================================
//---------------------------------------------------------------------------
in_rogue,244,39,4 script Aragham Junior#02 99,{
callfunc "F_RogueTest4", 1, "Aragham Junior", 245, 27;
}
//---------------------------------------------------------------------------
in_rogue,152,27,6 script Hollgrehen Junior#02 85,{
callfunc "F_RogueTest4", 2, "Hollgrehen Junior", 160, 32;
}
//---------------------------------------------------------------------------
in_rogue,183,105,4 script Antonio Junior#02 88,{
callfunc "F_RogueTest4", 3, "Antonio Junior", 175, 107;
}
// Function for Guildsman =============================
function script F_RogueTest4 {
if(BaseJob != Job_Thief || ROGUE_Q2 != getarg(0)) goto L_NoThief;
if(ROGUE_Q == 4) goto L_Restart;
mes "[" + getarg(1) + "]";
mes "Hello there... You must be from the Rogue guild. My name is " + getarg(1) + "...... I am the Rogue of the Desert..............";
next;
mes "[" + getarg(1) + "]";
mes "Aww who am I kidding...... Let's cut the crap. So are you ready to become a rogue?";
emotion e_swt;
next;
mes "[" + getarg(1) + "]";
mes "You see, the Rogue motto is...... ^5533FF'Avoid the strong! Be malicious to the weak!'^000000";
mes "This simple rule applys to fighting monsters as well.";
next;
mes "[" + getarg(1) + "]";
mes "The very last thing you will have to do before you can become a Rogue, is to walk through an underground passage to the Rogue Guild.";
next;
mes "[" + getarg(1) + "]";
mes "Sounds easy huh? Well it's not! But don't worry....";
mes "If you stay true to the Rogue motto and use a lot of hide, and do a lot of running, you should be just fine.";
M_Menu:
next;
mes "[" + getarg(1) + "]";
mes "Ok, are you ready to go?";
next;
menu "As ready as I'll ever be.",-, "Actually I'm kinda scared...",M_End;
mes "[" + getarg(1) + "]";
mes "Good luck then.";
next;
set ROGUE_Q, 4;
killmonsterall "in_rogue";
savepoint "in_rogue", getarg(2), getarg(3);
warp "in_rogue", 15, 105;
end;
M_End:
mes "[" + getarg(1) + "]";
mes ".....................";
next;
mes "[" + getarg(1) + "]";
mes "Well take your time then...... I guess.......";
close;
L_Restart:
mes "[" + getarg(1) + "]";
mes "....... Looks like you got creamed.......";
emotion e_swt;
next;
mes "[" + getarg(1) + "]";
mes "If you're up for it, I'll send you back in. Failure has a way of teaching success.... yada yada yada....";
percentheal 100,100;
goto M_Menu;
L_NoThief:
mes "[" + getarg(1) +"]";
mes "I don't know how you got the";
if(ROGUE_Q2)
{
mes "pass, but I am not the one";
mes "in charge of your test.";
}
else
{
mes "pass, but looking at your face,";
mes "I guess you're not here for the";
mes "Rogue test.";
}
next;
mes "[" + getarg(1) +"]";
mes "Please hurry up and leave";
mes "this place as soon as you can!";
close;
}
//================================================
// Monster Spawns
//================================================
in_rogue,15,185,0 script rogue_mob1 139,8,0,{
monster "in_rogue",14,188,"Zombie",1015,1;
monster "in_rogue",15,188,"Zombie",1015,1;
monster "in_rogue",16,188,"Zombie",1015,1;
monster "in_rogue",14,189,"Zombie",1015,1;
monster "in_rogue",15,189,"Zombie",1015,1;
monster "in_rogue",16,189,"Zombie",1015,1;
end;
}
in_rogue,15,245,0 script rogue_mob2 139,8,0,{
monster "in_rogue",14,247,"Mummy",1041,1;
monster "in_rogue",15,247,"Mummy",1041,1;
monster "in_rogue",16,247,"Mummy",1041,1;
monster "in_rogue",14,248,"Mummy",1041,1;
monster "in_rogue",15,248,"Mummy",1041,1;
monster "in_rogue",16,248,"Mummy",1041,1;
end;
}
in_rogue,15,328,0 script rogue_mob3 139,8,0,{
monster "in_rogue",14,331,"Zombie",1015,1;
monster "in_rogue",15,331,"Zombie",1015,1;
monster "in_rogue",16,331,"Zombie",1015,1;
monster "in_rogue",14,332,"Zombie",1015,1;
monster "in_rogue",15,332,"Zombie",1015,1;
monster "in_rogue",16,332,"Zombie",1015,1;
end;
}
in_rogue,35,342,0 script rogue_mob4 139,0,8,{
monster "in_rogue",38,340,"Mummy",1041,1;
monster "in_rogue",37,342,"Abyss Knight",1219,1;
monster "in_rogue",39,342,"Ghoul",1036,1;
monster "in_rogue",38,344,"Mummy",1041,1;
end;
}
in_rogue,57,306,0 script rogue_mob5 139,4,0,{
monster "in_rogue",59,301,"Khalitzburg",1132,1;
end;
}
in_rogue,96,333,0 script rogue_mob6 139,0,4,{
monster "in_rogue",92,325,"Khalitzburg",1132,1;
end;
}
in_rogue,139,313,0 script rogue_mob7 139,4,0,{
monster "in_rogue",139,309,"Abyss Knight",1219,1;
end;
}
in_rogue,135,246,0 script rogue_mob8 139,0,4,{
monster "in_rogue",139,245,"Zombie",1015,2;
monster "in_rogue",139,246,"Zombie",1015,2;
monster "in_rogue",139,247,"Zombie",1015,2;
end;
}
in_rogue,62,302,0 script rogue_mob9 139,0,4,{
monster "in_rogue",57,305,"Khalitzburg",1132,1;
end;
}
in_rogue,199,218,0 script rogue_mob10 139,0,8,{
monster "in_rogue",157,218,"Zombie",1015,10;
monster "in_rogue",157,218,"Abyss Knight",1219,1;
monster "in_rogue",157,218,"Ghoul",1036,1;
monster "in_rogue",157,218,"Archer Skeleton",1016,1;
end;
}
in_rogue,86,187,0 script rogue_mob11 139,0,8,{
monster "in_rogue",88,186,"Mummy",1041,1;
monster "in_rogue",88,187,"Mummy",1041,1;
monster "in_rogue",88,188,"Mummy",1041,1;
end;
}
in_rogue,225,187,0 script rogue_mob12 139,0,8,{
monster "in_rogue",232,191,"Abyss Knight",1219,1;
monster "in_rogue",233,190,"Abyss Knight",1219,1;
monster "in_rogue",234,189,"Abyss Knight",1219,1;
end;
}
in_rogue,252,320,0 script rogue_mob13 139,0,8,{
monster "in_rogue",252,319,"Mummy",1041,1;
monster "in_rogue",252,321,"Mummy",1041,1;
monster "in_rogue",252,319,"Ghoul",1036,1;
monster "in_rogue",252,321,"Ghoul",1036,1;
monster "in_rogue",257,320,"Archer Skeleton",1016,1;
monster "in_rogue",248,320,"Archer Skeleton",1016,1;
end;
}
//================================================
// End Warp
//================================================
in_rogue,370,320,0 script rogue04 45,1,1,{
set ROGUE_Q, 5;
killmonsterall "in_rogue";
warp "in_rogue",378,113;
end;
}
//================================================
// Timer: Keeps monsters from overspawning
//================================================
- script RogueTest3 -1,{
end;
OnMinute10:
OnMinute20:
OnMinute30:
OnMinute40:
OnMinute50:
OnMinute60:
killmonsterall "in_rogue";
end;
}
//==============================================================================
// mapflag
//==============================================================================
in_rogue mapflag nomemo
in_rogue mapflag noteleport
in_rogue mapflag nosave SavePoint
in_rogue mapflag nopenalty
in_rogue mapflag nobranch
in_rogue mapflag noexp
in_rogue mapflag noloot