////===== eAthena Script ======================================= //= Crusader Quest //===== By: ================================================== //= Made by: Black Dragon //= Converted by: Shin //= //===== Current Version: ===================================== //= 2.1 //===== Compatible With: ===================================== //= eAthena 0.5.2 + //===== Description: ========================================= //= //===== Additional Comments: ================================= //= Need optimalization and fixing //= thanks to Komurka, KiLLaLeN, Lupus (fixing error) //= just a temp Job Quest //= 1.2 minor fix of announcement by Freya people //= 1.3 Added Baby Class Support, fixed 40/50 lvl item reward //= also fixed too common script names [Lupus] //= 1.3a fixed "dead lock" bugs [Lupus] //= 1.3b changed monsters ID in patience test [Komurka] //= 1.4 Fixed Job Level parameters mix-up. [massdriller] (Thanks to Komurka) //= 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] //= 1.7 Updated names and required items, Chivalry Emblem + //= Hand of God allow to skip item gathering [DracoRPG] //= 2.0 Changed numbers to constants. [Vicious] //= 2.1 Fixed endless loop, wrong condition check [Lupus] //= also changed all job numbers to constants, fixed logic //============================================================ prt_castle,45,169,4 script Senior Crusader 752,{ callfunc "F_BlockHigh",Job_Swordman_High,"Swordman High",Job_Paladin,"Paladin","^000080Michael Halig^000000"; mes "[^000080Michael Halig^000000]"; if (BaseJob > Job_Swordman) goto NEXT0; if (BaseJob == Job_Novice){ mes "Hello there."; next; mes "[^000080Michael Halig^000000]"; mes "If you become a ^800000Swordsman^000000, you will gain the privelege of becoming a ^800000Knight^000000 or ^800000Crusader^000000."; next; mes "[^000080Michael Halig^000000]"; mes "If you decide to go along the path of the ^800000Crusader^000000, come back here."; mes "Just take note that you must obtain a job level of at least 40 first before you can move up to the 2nd job."; close; } mes "Hello "+ strcharinfo(0); mes "I see that you've registered to the ^008000Swordsman's Association^000000."; if (CRUS_Q == 1) goto CONT; if (CRUS_Q == 2) goto CONT0; if (CRUS_Q == 3) goto L_GETITM1; if (CRUS_Q == 4) goto L_GETITM2; if (CRUS_Q > 4) goto CONT3; mes "Welcome, can I help you with something?"; next; menu "I want to become a ^800000Crusader^000000.",JOB,"What's being a ^800000Crusader^000000 like?",ASK,"What is the purpose of a ^800000Crusader^000000?",ASK0,"I was just looking around.",-; mes "[^000080Michael Halig^000000]"; mes "Oh, all right."; next; mes "[^000080Michael Halig^000000]"; mes "If you decide to take the path of the ^800000Crusader^000000, feel free to come back."; close; JOB: mes "[^000080Michael Halig^000000]"; mes "All right, let me take a look at you first."; next; if (JobLevel != 50) goto SKIP; set JBLVL,50; set CRUS_Q,5; goto TEST1; SKIP: if (JobLevel > 39) goto OKAY; mes "[^000080Michael Halig^000000]"; mes "I'm sorry, but you need to be at least at a job level of 40."; next; mes "[^000080Michael Halig^000000]"; mes "All 2nd jobs require that."; close; OKAY: if (SkillPoint == 0) goto OKAY0; JOB0: mes "[^000080Michael Halig^000000]"; mes "In order to become a ^800000Crusader^000000, you have to have used all your available skill points first."; close; OKAY0: mes "[^000080Michael Halig^000000]"; mes "Everything looks all right."; set CRUS_Q,1; next; mes "[^000080Michael Halig^000000]"; mes "All right, shall we begin the tests?"; next; menu "Yes, of course.",OKAY1,"Not yet.",-; mes "[^000080Michael Halig^000000]"; mes "Oh, all right. Come back when you're ready."; close; OKAY1: if (SkillPoint != 0) goto JOB0; set CRUS_Q,rand (3,4); mes "[^000080Michael Halig^000000]"; mes "All right, the first test requires you to collect items."; next; mes "[^000080Michael Halig^000000]"; mes "Bring back the following items:"; if (CRUS_Q == 3){ mes "- 10 ^FF0000Decayed Nails^000000"; mes "- 10 ^FF0000Daenggies^000000"; mes "- 10 ^FF0000Worn-out Prison Uniforms^000000"; mes "- 10 ^FF0000Stinky Scales^000000"; close; } mes "- 10 ^FF0000Lanterns^000000"; mes "- 10 ^FF0000Horrendous Mouths^000000"; mes "- 10 ^FF0000Rotten Bandages^000000"; mes "- 10 ^FF0000Jack 'o Pumpkins^000000"; close; ASK: mes "[^000080Michael Halig^000000]"; mes "To be a ^800000Crusader^000000 is to fight for the righteous people."; mes "Not always those who are in power, but rather for the justly cause."; next; mes "[^000080Michael Halig^000000]"; mes "I hope that you consider to become one."; mes "To fight for good is a job that should be done by everyone to some extent."; close; ASK0: mes "[^000080Michael Halig^000000]"; mes "The purpose of a ^800000Crusader^000000 is to work for the good in the world."; mes "A ^800000Crusader^000000 is a person of righteousness at work."; close; CONT: mes "Have you changed your mind?"; next; menu "Yes, I want to become a ^800000Crusader^000000.",JOB,"Sorry, but I don't want to.",-; mes "[^000080Michael Halig^000000]"; mes "I see... That's a shame."; next; mes "[^000080Michael Halig^000000]"; mes "Come back if you do want to."; close; CONT0: mes "Well, hm..."; next; mes "[^000080Michael Halig^000000]"; mes "I was expecting that someone like you would pass."; next; mes "[^000080Michael Halig^000000]"; mes "Mind to try again?"; next; menu "Yes, of course.",OKAY1,"No, I'm all right.",-; mes "[^000080Michael Halig^000000]"; mes "Oh, all right."; close; L_GETITM1: set @item,0; if(countitem(957)>=10) goto ITEM7;//Items: Decayed_Nail, mes "- 10 ^FF0000Decayed Nails^000000"; set @item, @item +1; ITEM7: if(countitem(901)>=10) goto ITEM8;//Items: Daenggie, mes "You still miss the this item"; mes "- 10 ^FF0000Danggies^000000"; set @item, @item +1; ITEM8: if(countitem(1099)>=10) goto ITEM9;//Items: Worn-out_Prison_Uniform, mes "You still miss the this item"; mes "- 10 ^FF0000Worn-out Prison Uniforms^000000"; set @item, @item +1; ITEM9: if(countitem(959)>=10) goto ITEM10;//Items: Stinky_Scale, mes "You still miss the this item"; mes "- 10 ^FF0000Stinky Scales^000000"; set @item, @item +1; ITEM10: if(@item) close; mes "Good job!"; mes "You collected everything!"; delitem 957,10;//Items: Decayed_Nail, delitem 901,10;//Items: Daenggie, delitem 1099,10;//Items: Worn-out_Prison_Uniform, delitem 959,10;//Items: Stinky_Scale, set CRUS_Q,5; TEST1: next; mes "[^000080Michael Halig^000000]"; mes "All right, let's move on to the 2nd test."; next; mes "[^000080Michael Halig^000000]"; mes "Go to the prison, it's in the basement"; mes "Before you do, make sure that you bring a ^FF0000Rosary^000000 with you."; close; L_GETITM2: set @item, 0; if(countitem(1041)>=10) goto ITEM11;//Items: Lantern, mes "You still miss the this item"; mes "- 10 ^FF0000Lanterns^000000"; set @item, @item +1; ITEM11: if(countitem(958)>=10) goto ITEM12;//Items: Horrendous_Mouth, mes "You still miss the this item"; mes "- 10 ^FF0000Horrendous Mouths^000000"; set @item, @item +1; ITEM12: if(countitem(930)>=10) goto ITEM13;//Items: Rotten_Bandage, mes "You still miss the this item"; mes "- 10 ^FF0000Rotten Bandages^000000"; set @item, @item +1; ITEM13: if(countitem(1062)>=10) goto ITEM14;//Items: Jack_'o_Pumpkin, mes "You still miss the this item"; mes "- 10 ^FF0000Jack 'o Pumpkins^000000"; set @item, @item +1; ITEM14: if(@item) close; mes "Good job!"; mes "You collected everything!"; delitem 1041,10;//Items: Lantern, delitem 958,10;//Items: Horrendous_Mouth, delitem 930,10;//Items: Rotten_Bandage, delitem 1062,10;//Items: Jack_'o_Pumpkin, set CRUS_Q,5; goto TEST1; CONT3: if (CRUS_Q == 8) goto CONT4; if (CRUS_Q > 8) goto CONT5; mes "Please talk to the man in the prison to continue."; mes "Make sure you bring a ^FF0000Rosary^000000 with you."; close; CONT4: mes "Great job in accomplishing the ^FF8000Patience Test^000000!"; next; mes "[^000080Michael Halig^000000]"; mes "Now to move on to the ^FF8000Knowledge Test^000000."; mes "Please talk to Gabriel Valentine at the Cathedral, she will test your knowledge."; set CRUS_Q,9; close; CONT5: if (CRUS_Q == 13) goto CONT6; if (CRUS_Q == 14) goto CONT7; mes "Please go talk to Gabriel Valentine at the Cathedral to continue."; close; CONT6: mes "Excellent work in completing all the necessary tests!"; mes "Now let me examine you before you become a ^800000Crusader^000000."; next; set CRUS_Q,14; mes "[^000080Michael Halig^000000]"; CONT7: if (SkillPoint == 0) goto GOOD; mes "I'm sorry, but you'll need to use up all your skill points first."; close; GOOD: mes "This is to compliment your job change."; if (JBLVL != 50) getitem 1409,1;//Items: Pike__, if (JBLVL == 50) getitem 1408,1;//Items: Pike_, callfunc "Job_Change",Job_Crusader; callfunc "F_ClearJobVar"; // clears all job variables for the current player close; NEXT0: if (BaseJob != Job_Mage) goto NEXT1; mes "Hello, welcome to the ^008000Castle of Prontera^000000."; mes "Hope you have a good day!"; close; NEXT1: if (BaseJob != Job_Archer) goto NEXT2; mes "Good luck in your hunting."; close; NEXT2: if (BaseJob != Job_Acolyte) goto NEXT3; mes "Good day to you!"; mes "Hope you do well to find your path."; close; NEXT3: if (BaseJob != Job_Merchant) goto NEXT4; mes "Hello, we don't currently need anything, sorry about that."; close; NEXT4: if (BaseJob != Job_Thief) goto NEXT5; mes "Better watch yourself."; close; NEXT5: if (BaseJob != Job_Knight) goto NEXT6; mes "Good day to you, " + strcharinfo(0); close; NEXT6: if (BaseJob != Job_Priest) goto NEXT7; mes "Good day, "+ strcharinfo(0); mes "I would hope to believe that all is going well."; close; NEXT7: if (BaseJob != Job_Wizard) goto NEXT8; mes "Hello, welcome to the ^008000Castle of Prontera^000000."; mes "Nice to have you wish us."; close; NEXT8: if (BaseJob != Job_Blacksmith) goto NEXT9; mes "Hello, we're not in need of any weapons or armour at the moment, thank you."; close; NEXT9: if (BaseJob != Job_Hunter) goto NEXT10; mes "Hello, wish you luck for your success."; close; NEXT10: if (BaseJob != Job_Assassin) goto NEXT11; mes "Stay out of trouble, you don't want the guards to come after you, now do you?"; close; NEXT11: if (BaseJob != Job_Crusader) goto NEXT12; mes "Good day, "+ strcharinfo(0); close; NEXT12: if (BaseJob != Job_Monk) goto NEXT13; mes "Hello, welcome to the ^008000Castle of Prontera^000000."; close; NEXT13: if (BaseJob != Job_Sage) goto NEXT14; mes "Welcome to the ^008000Castle of Prontera^000000, I hope you enjoy your stay."; close; NEXT14: if (BaseJob != Job_Rogue) goto NEXT15; mes "Stay out of trouble if you know what's good for you."; close; NEXT15: if (BaseJob != Job_Alchem) goto NEXT16; mes "So, how are the experiments going down in ^00FF00Al de Baran^000000?"; close; NEXT16: if (BaseJob != Job_Bard) goto NEXT17; mes "Welcome to the castle, good sir."; close; NEXT17: if (BaseJob != Job_Dancer) goto NEXT18; mes "Good day, miss."; close; NEXT18: if (BaseJob != Job_Wedding) goto NEXT19; if (Sex){ mes "Well done, sir!"; } else { mes "Hello, welcome to the ^008000Castle of Prontera^000000."; } close; NEXT19: mes "Hello and good day!"; close; } //----------------------------------------------------------------------------------------------------------------------------------------------------- // // Man in Anguish - Crusader Job Quest - 2nd Test // By Black Dragon based on the information at RagnaInfo // //----------------------------------------------------------------------------------------------------------------------------------------------------- prt_castle,164,32,0 script Man in Anguish 733,{ if (CRUS_Q == 7) goto CONT; if (CRUS_Q > 7) goto CONT0; mes "[^000080Murnak Mijoul^000000]"; mes "Who... who are you?"; next; if (CRUS_Q == 5) goto CHECK; OTHER: if (CRUS_Q == 6) goto EXIT1; mes "[^000080Murnak Mijoul^000000]"; mes "What do you want?"; mes "Leave me alone~!"; close; CHECK: if (countitem(2608) == 0) goto NOT;//Items: Rosary, mes "[^000080Murnak Mijoul^000000]"; mes "I see, you're here for the job."; next; mes "[^000080Murnak Mijoul^000000]"; mes "It's torture."; mes "They send me to that room time and time again."; next; mes "[^000080Murnak Mijoul^000000]"; mes "I've grown awefully weak from it."; next; mes "[^000080Murnak Mijoul^000000]"; mes "But if it's your wish, I will send to there."; next; menu "Yes.",-,"On second thought...",EXIT; mes "[^000080Murnak Mijoul^000000]"; mes "All right then... I'll tell you where to go."; GO: next; savepoint "prt_castle",162,27; if (getmapusers("job_cru") > 0) goto EXIT0; set CRUS_Q,6; warp "job_cru",23,42; EXIT0: mes "[^000080Murnak Mijoul^000000]"; mes "I'm sorry, there's already another person there right now."; mes "Please wait a little longer."; close; EXIT: mes "[^000080Murnak Mijoul^000000]"; mes "Please do not disturb me then!"; close; NOT: mes "[^000080Murnak Mijoul^000000]"; mes "Leave me alone!"; mes "Can't you leave someone in pain alone ?"; close; CONT: mes "[^000080Murnak Mijoul^000000]"; mes "I see you've passed. Good work."; set CRUS_Q,8; close; EXIT1: mes "[^000080Murnak Mijoul^000000]"; mes "Sorry but you're going to need to go again."; goto GO; CONT0: mes "[^000080Murnak Mijoul^000000]"; mes "There is nothing else you need from me."; mes "Let me be..."; close; } //----------------------------------------------------------------------------------------------------------------------------------------------------- // // Gabriel Valentine - Crusader Job Quest - Knowledge Test // By Black Dragon based on the information at RagnaInfo // //----------------------------------------------------------------------------------------------------------------------------------------------------- prt_church,94,116,0 script Gabriel Valentine 745,{ mes "[^000080Gabriel Valentine^000000]"; if (BaseJob == Job_Novice){ mes "Hello young traveler."; close; } if (BaseJob != Job_Swordman) goto NEXT0; mes "Hello, " + strcharinfo(0); next; if (CRUS_Q != 9) goto EXIT; BEGIN: menu "Take the Knowledge test.",-,"Nothing.",EXIT; mes "[^000080Gabriel Valentine^000000]"; mes "Oh, on your way to become a ^800000Crusader^000000 huh?"; mes "Okay..."; next; START: set @Q , 0; set @Q1 , 0; set @Q2 , 0; set @Q3 , 0; set @Q4 , 0; set @Q5 , 0; set @Q6 , 0; set @Q7 , 0; set @Q8 , 0; set @Q9 , 0; set @Q10 , 0; set @Q11 , 0; set @Q12 , 0; set @Q13 , 0; set @Q14 , 0; set @Q15 , 0; set @Q16 , 0; set @Q17 , 0; set @Q18 , 0; set @Q19 , 0; set @Q20 , 0; set @ANS , 0; RND: if (@Q > 10) goto L_DONE; set @RND, rand(20); if (@RND > 9) goto G1; if (@RND > 4) goto G1A; if (@RND > 3) goto G1A1; if (@RND == 0) goto Q1; if (@RND == 1) goto Q2; if (@RND != 1) goto Q3; G1A1: if (@RND == 3) goto Q4; if (@RND != 3) goto Q5; G1A: if (@RND > 8) goto G1A2; if (@RND == 5) goto Q6; if (@RND == 6) goto Q7; if (@RND != 6) goto Q8; G1A2: if (@RND == 8) goto Q9; if (@RND != 8) goto Q10; G1: if (@RND > 14) goto G2A; if (@RND > 13) goto G2A1; if (@RND == 10) goto Q11; if (@RND == 11) goto Q12; if (@RND == 12) goto Q13; G2A1: if (@RND == 13) goto Q14; if (@RND == 14) goto Q15; G2A: if (@RND > 18) goto G2A2; if (@RND == 15) goto Q16; if (@RND == 16) goto Q17; if (@RND == 17) goto Q18; G2A2: if (@RND == 18) goto Q19; if (@Q20 != 0) goto RND; set @Q20,1; set @Q,@Q + 1; mes "[^000080Gabriel Valentine^000000]"; mes "Are you willing to risk your life to save someone else?"; next; menu "Yes",-,"No",RND; set @ANS,@ANS + 1; goto RND; Q1: if (@Q1 != 0) goto RND; set @Q1,1; set @Q,@Q + 1; mes "[^000080Gabriel Valentine^000000]"; mes "If someone asks you to help them for a good cause, will you oblige?"; next; menu "Yes",-,"No",RND; set @ANS, @ANS + 1; goto RND; Q2: if (@Q2 != 0) goto RND; set @Q2, 1; set @Q,@Q + 1; mes "[^000080Gabriel Valentine^000000]"; mes "Would you allow a robber to get away with stolen goods?"; next; menu "Yes",RND,"No",-; set @ANS,@ANS + 1; goto RND; Q3: if (@Q3 != 0) goto RND; set @Q3,1; set @Q,@Q + 1; mes "[^000080Gabriel Valentine^000000]"; mes "Do you wish that the world was at harmony?"; next; menu "Yes",-,"No",RND; set @ANS,@ANS + 1; goto RND; Q4: if (@Q4 != 0) goto RND; set @Q4,1; set @Q,@Q + 1; mes "[^000080Gabriel Valentine^000000]"; mes "Will you ever attempt suicide?"; next; menu "Yes",RND,"No",-; set @ANS,@ANS + 1; goto RND; Q5: if (@Q5 != 0) goto RND; set @Q5,1; set @Q,@Q + 1; mes "[^000080Gabriel Valentine^000000]"; mes "Will you intoxicate yourself at parties?"; next; menu "Yes",RND,"No",-; set @ANS,@ANS + 1; goto RND; Q6: if (@Q6 != 0) goto RND; set @Q6,1; set @Q,@Q + 1; mes "[^000080Gabriel Valentine^000000]"; mes "Will you openly massacre?"; next; menu "Yes",RND,"No",-; set @ANS,@ANS + 1; goto RND; Q7: if (@Q7 != 0) goto RND; set @Q7,1; set @Q,@Q + 1; mes "[^000080Gabriel Valentine^000000]"; mes "Will you hold your temper during arguments?"; next; menu "Yes",-,"No",RND; set @ANS,@ANS + 1; goto RND; Q8: if (@Q8 != 0) goto RND; set @Q8,1; set @Q,@Q + 1; mes "[^000080Gabriel Valentine^000000]"; mes "Would you allow alchemists to perform illegal experiments?"; next; menu "Yes",RND,"No",-; set @ANS,@ANS + 1; goto RND; Q9: if (@Q9 != 0) goto RND; set @Q9,1; set @Q,@Q + 1; mes "[^000080Gabriel Valentine^000000]"; mes "If someone threw a stone at you, you'd become furious."; next; menu "Yes",RND,"No",-; set @ANS,@ANS + 1; goto RND; Q10: if (@Q10 != 0) goto RND; set @Q10,1; set @Q,@Q + 1; mes "[^000080Gabriel Valentine^000000]"; mes "If someone offered you money that belongs to someone poor, would you take it?"; next; menu "Yes",RND,"No",-; set @ANS,@ANS + 1; goto RND; Q11: if (@Q11 != 0) goto RND; set @Q11,1; set @Q,@Q + 1; mes "[^000080Gabriel Valentine^000000]"; mes "You think highly of yourself."; next; menu "Yes",RND,"No",-; set @ANS,@ANS + 1; goto RND; Q12: if (@Q12 != 0) goto RND; set @Q12,1; set @Q,@Q + 1; mes "[^000080Gabriel Valentine^000000]"; mes "You are humble before others."; next; menu "Yes",-,"No",RND; set @ANS,@ANS + 1; goto RND; Q13: if (@Q13 != 0) goto RND; set @Q13,1; set @Q,@Q + 1; mes "[^000080Gabriel Valentine^000000]"; mes "You answer people full of respect and with kindness."; next; menu "Yes",-,"No",RND; set @ANS,@ANS + 1; goto RND; Q14: if (@Q14 != 0) goto RND; set @Q14,1; set @Q,@Q + 1; mes "[^000080Gabriel Valentine^000000]"; mes "You fight when you feel like it."; next; menu "Yes",RND,"No",-; set @ANS,@ANS + 1; goto RND; Q15: if (@Q15 != 0) goto RND; set @Q15,1; set @Q,@Q + 1; mes "[^000080Gabriel Valentine^000000]"; mes "You go to the pub every night."; next; menu "Yes",RND,"No",-; set @ANS,@ANS + 1; goto RND; Q16: if (@Q16 != 0) goto RND; set @Q16,1; set @Q,@Q + 1; mes "[^000080Gabriel Valentine^000000]"; mes "You believe in the Father, Son and Holy Spirit."; next; menu "Yes",-,"No",RND; set @ANS,@ANS + 1; goto RND; Q17: if (@Q17 != 0) goto RND; set @Q17,1; set @Q,@Q + 1; mes "[^000080Gabriel Valentine^000000]"; mes "You believe that the Devil is evil and cruel and should be treated the same way."; next; menu "Yes",RND,"No",-; set @ANS,@ANS + 1; goto RND; Q18: if (@Q18 != 0) goto RND; set @Q18,1; set @Q,@Q + 1; mes "[^000080Gabriel Valentine^000000]"; mes "You believe that talk is for wimps and that action plays the main role in peace-making"; next; menu "Yes",RND,"No",-; set @ANS,@ANS + 1; goto RND; Q19: if (@Q19 != 0) goto RND; set @Q19,1; set @Q,@Q + 1; mes "[^000080Gabriel Valentine^000000]"; mes "If all other means to keep peace fail, THEN it is all right to resort to violence."; next; menu "Yes",-,"No",RND; set @ANS,@ANS + 1; goto RND; L_DONE: mes "[^000080Gabriel Valentine^000000]"; mes "You got "+ @ANS +" / 10 questions correct."; next; if (CRUS_Q != 10) goto secND; if (@ANS < 8) goto NO; PASS: mes "[^000080Gabriel Valentine^000000]"; mes "Excellent work! You qualify to pass the ^FF8000Knowledge Test^000000!"; mes "You're almost done, you are now at the ^FF8000Purification Test^000000, find Bliant Piyord at ^008000Prontera Chivalry^000000."; set CRUS_Q, 11; close; NO: set CRUS_Q, 10; mes "[^000080Gabriel Valentine^000000]"; mes "I'm sorry, you didn't get enough to qualify."; next; mes "[^000080Gabriel Valentine^000000]"; mes "Try giving it another go when you feel you're ready."; mes "I'll only expect you to get at least 8 correct from now on."; close; secND: if (@ANS > 7) goto PASS; mes "[^000080Gabriel Valentine^000000]"; mes "I'm sorry, you didn't get enough correct."; close; EXIT: if (CRUS_Q == 10) goto BEGIN; if (CRUS_Q > 10) goto FINISH; close; FINISH: mes "[^000080Gabriel Valentine^000000]"; mes "Please go to the Guardian Knight at ^008000Prontera Castle^000000 to continue on to the ^FF8000Purification Test^000000."; close; NEXT0: if (BaseJob != Job_Mage) goto NEXT1; mes "Hello, welcome to the ^008000Prontera Chivalry^000000."; mes "Hope you have a good day!"; close; NEXT1: if (BaseJob != Job_Archer) goto NEXT2; mes "Good luck in your hunting."; close; NEXT2: if (BaseJob != Job_Acolyte) goto NEXT3; mes "Good day to you!"; mes "Hope you do well to find your path."; close; NEXT3: if (BaseJob != Job_Merchant) goto NEXT4; mes "Hello, we don't currently need anything, sorry about that."; close; NEXT4: if (BaseJob != Job_Thief) goto NEXT5; mes "Better watch yourself."; close; NEXT5: if (BaseJob != Job_Knight) goto NEXT6; mes "Good day to you, "+ strcharinfo(0); close; NEXT6: if (BaseJob != Job_Priest) goto NEXT7; mes "Good day, " + strcharinfo(0); mes "I would hope to believe that all is going well."; close; NEXT7: if (BaseJob != Job_Wizard) goto NEXT8; mes "Hello! Nice to have you wish us."; close; NEXT8: if (BaseJob != Job_Blacksmith) goto NEXT9; mes "Hello, we're not in need of any weapons or armour at the moment, thank you."; close; NEXT9: if (BaseJob != Job_Hunter) goto NEXT10; mes "Hello, wish you luck for your success."; close; NEXT10: if (BaseJob != Job_Assassin) goto NEXT11; mes "Stay out of trouble, you don't want the guards to come after you, now do you?"; close; NEXT11: if (BaseJob != Job_Crusader) goto NEXT12; mes "Good day, " + strcharinfo(0); close; NEXT12: if (BaseJob != Job_Monk) goto NEXT13; mes "Hello, welcome to the ^008000Knight's Headquarters^000000."; close; NEXT13: if (BaseJob != Job_Sage) goto NEXT14; mes "Welcome to the ^008000Knight's Headquarters^000000, I hope you enjoy your stay."; close; NEXT14: if (BaseJob != Job_Rogue) goto NEXT15; mes "Stay out of trouble if you know what's good for you."; close; NEXT15: if (BaseJob != Job_Alchem) goto NEXT16; mes "So, how are the experiments going down in ^00FF00Al de Baran^000000?"; close; NEXT16: if (BaseJob != Job_Bard) goto NEXT17; mes "Welcome to the castle, good sir."; close; NEXT17: if (BaseJob != Job_Dancer) goto NEXT18; mes "Good day, miss."; close; NEXT18: if (BaseJob != Job_Wedding) goto NEXT19; if (Sex != 0){ mes "Well done, sir!"; } else { mes "Hello, welcome to the ^008000Knight's Headquarters^000000."; } close; NEXT19: mes "Hello and good day!"; close; } //----------------------------------------------------------------------------------------------------------------------------------------------------- // // Bliant Piyord - Crusader Job Quest - Purification Test // By Black Dragon based on the information at RagnaInfo // //----------------------------------------------------------------------------------------------------------------------------------------------------- prt_in,83,97,0 script Patron Knight 734,{ mes "[^000080Bliant Piyord^000000]"; if (BaseJob == Job_Novice){ mes "Hello, young traveler."; mes "Welcome."; close; } if (BaseJob != Job_Swordman) goto NEXT0; if (CRUS_Q == 11) goto PART1; if (CRUS_Q == 12) goto PART2; if (CRUS_Q != 13) goto EXIT; mes "Well done!"; mes "Go talk to ^000080Michael Halig^000000, he will turn you into a ^800000Crusader^000000."; close; PART2: if (@CRU2 == 43) goto EXIT2; PART2A: mes "So, do you want to try again?"; next; menu "Yes",TEST,"No",-; mes "[^000080Bliant Piyord^000000]"; mes "Oh, okay then."; close; PART1: mes "Hello, " + strcharinfo(0); mes "I see that you've passed thus far."; next; mes "[^000080Bliant Piyord^000000]"; mes "Don't let me down in this test."; mes "This is the ^FF8000Purification Test^000000."; mes "I will take you to the proper location when you are ready."; next; menu "I want to go now.",-,"All right, just a second.",EXIT0; TEST: mes "[^000080Bliant Piyord^000000]"; mes "Let me make sure it's empty first."; next; if( getmapusers("job_cru")>0 ) goto EXIT1; killmonster "job_cru","CR_KILL::OnStart"; savepoint "prt_in",81,100; set CRUS_Q, 12; warp "job_cru",167,175; EXIT1: mes "[^000080Bliant Piyord^000000]"; mes "I'm sorry, but someone else is inside at the moment."; close; EXIT0: mes "[^000080Bliant Piyord^000000]"; mes "No problem, take as long as you need."; close; EXIT: mes "Hello, " + strcharinfo(0); mes "So how are things coming along with building up your abilities?"; mes "Are you strong enough to become a ^800000Crusader^000000 yet?"; next; mes "[^000080Bliant Piyord^000000]"; mes "If you do, you'll find yourself coming back to me for one of the tests."; close; EXIT2: mes "Well done!"; set CRUS_Q,13; next; mes "Return to ^000080Michael Halig^000000 and he will make you a ^800000Crusader^000000."; close; NEXT0: if (BaseJob != Job_Mage) goto NEXT1; mes "It's nice to see you."; mes "Hope we'll be able to work together to keep ^00FF00Prontera^000000 safe."; close; NEXT1: if (BaseJob != Job_Archer) goto NEXT2; mes "Welcome, I hope you have a great day!"; close; NEXT2: if (BaseJob != Job_Acolyte) goto NEXT3; mes "Good day to you!"; close; NEXT3: if (BaseJob != Job_Merchant) goto NEXT4; mes "Hello, sorry but I'm not in need of anything."; close; NEXT4: if (BaseJob != Job_Thief) goto NEXT5; mes "Don't think you can get away with theft in ^00FF00Prontera^000000, we have soldiers watching everywhere."; close; NEXT5: if (BaseJob != Job_Knight) goto NEXT6; mes "Welcome!"; mes "I hope you have a great day!"; close; NEXT6: if (BaseJob != Job_Priest) goto NEXT7; mes "Welcome to ^00FF00Prontera^000000!"; mes "Hope you have a good day!"; close; NEXT7: if (BaseJob != Job_Wizard) goto NEXT8; mes "Hello! Glad to see people of your stature here!"; close; NEXT8: if (BaseJob != Job_Blacksmith) goto NEXT9; mes "I appreciate your presence, but I don't need anything at the moment."; mes "Sorry about that."; close; NEXT9: if (BaseJob != Job_Hunter) goto NEXT10; mes "How goes the hunting campaign?"; mes "Hope everything is going all right."; close; NEXT10: if (BaseJob != Job_Assassin) goto NEXT11; mes "Stay out of trouble, you hear me?"; close; NEXT11: if (BaseJob != Job_Crusader) goto NEXT12; mes "Welcome! Good day to you!"; close; NEXT12: if (BaseJob != Job_Monk) goto NEXT13; mes "Good day, I hope your stay in ^00FF00Prontera^000000 will be a peaceful one."; close; NEXT13: if (BaseJob != Job_Sage) goto NEXT14; mes "It's good to see people of your stature here in ^00FF00Prontera^000000!"; close; NEXT14: if (BaseJob != Job_Rogue) goto NEXT15; mes "Be careful if you don't want to get caught."; mes "I don't want to have to hang you or something."; close; NEXT15: if (BaseJob != Job_Alchem) goto NEXT16; mes "I hope the experiments in ^00FF00Al de Baran^000000 are legal, or we'll have to send someone to clear it up."; close; NEXT16: if (BaseJob != Job_Bard) goto NEXT17; mes "Ah, what a fine day it is to have such a person as yourself to come and visit."; close; NEXT17: if (BaseJob != Job_Dancer) goto NEXT18; mes "Welcome, good day to you!"; close; NEXT18: if (BaseJob != Job_Wedding) goto NEXT19; if (Sex){ mes "Well done! I congratulate you upon your marriage!"; } else { mes "Wow! Congratulations on your marriage!"; } close; NEXT19: mes "Good day to you!"; close; } //----------------------------------------------------------------------------------------------------------------------------------------------------- // // Entry A - Crusader Job Quest - Patience Test // By Black Dragon based on the information at RagnaInfo // //----------------------------------------------------------------------------------------------------------------------------------------------------- job_cru,23,42,0 script CR_DEAD -1,{ OnStart: killmonster "job_cru","CR_DEAD::OnStart"; set @CRU1,0; enablenpc "CR_TST_2"; warp "prt_castle",162,27; } //----------------------------------------------------------------------------------------------------------------------------------------------------- // // Entry - Crusader Job Quest - Patience Test // By Black Dragon based on the information at RagnaInfo // //----------------------------------------------------------------------------------------------------------------------------------------------------- job_cru,23,42,0 script CR_TST_2 139,8,8,{ if (CRUS_Q != 6) goto EXIT; set @CRU1,1; mapannounce "job_cru","Please endure here and go to the exit.",8; monster "job_cru",10,43,"Ghoul",1910,1,"CR_DEAD::OnStart"; monster "job_cru",14,47,"Khalitzburg",1911,1,"CR_DEAD::OnStart"; monster "job_cru",26,46,"Injustice",1912,1,"CR_DEAD::OnStart"; monster "job_cru",31,46,"Requium",1913,1,"CR_DEAD::OnStart"; monster "job_cru",16,52,"Raydric Archer",1914,0,"CR_DEAD::OnStart"; monster "job_cru",22,53,"Khalitzburg",1911,1,"CR_DEAD::OnStart"; monster "job_cru",28,49,"Injustice",1912,1,"CR_DEAD::OnStart"; monster "job_cru",12,54,"Khalitzburg",1911,1,"CR_DEAD::OnStart"; monster "job_cru",17,55,"Ghoul",1910,1,"CR_DEAD::OnStart"; monster "job_cru",21,57,"Injustice",1912,1,"CR_DEAD::OnStart"; monster "job_cru",30,58,"Khalitzburg",1911,1,"CR_DEAD::OnStart"; monster "job_cru",11,64,"Raydric Archer",1914,1,"CR_DEAD::OnStart"; monster "job_cru",19,67,"Injustice",1912,1,"CR_DEAD::OnStart"; monster "job_cru",24,62,"Khalitzburg",1911,1,"CR_DEAD::OnStart"; monster "job_cru",13,70,"Ghoul",1910,1,"CR_DEAD::OnStart"; monster "job_cru",18,69,"Injustice",1912,1,"CR_DEAD::OnStart"; monster "job_cru",29,67,"Khalitzburg",1911,1,"CR_DEAD::OnStart"; monster "job_cru",32,68,"Requium",1913,1,"CR_DEAD::OnStart"; monster "job_cru",16,75,"Raydric Archer",1914,1,"CR_DEAD::OnStart"; monster "job_cru",21,74,"Khalitzburg",1911,1,"CR_DEAD::OnStart"; monster "job_cru",27,76,"Injustice",1912,1,"CR_DEAD::OnStart"; monster "job_cru",14,78,"Khalitzburg",1911,1,"CR_DEAD::OnStart"; monster "job_cru",19,76,"Ghoul",1910,1,"CR_DEAD::OnStart"; monster "job_cru",24,79,"Requium",1913,1,"CR_DEAD::OnStart"; monster "job_cru",14,83,"Raydric Archer",1914,1,"CR_DEAD::OnStart"; monster "job_cru",18,85,"Khalitzburg",1911,1,"CR_DEAD::OnStart"; monster "job_cru",22,84,"Injustice",1912,1,"CR_DEAD::OnStart"; monster "job_cru",33,86,"Khalitzburg",1911,1,"CR_DEAD::OnStart"; monster "job_cru",13,89,"Ghoul",1910,1,"CR_DEAD::OnStart"; monster "job_cru",17,92,"Injustice",1912,1,"CR_DEAD::OnStart"; monster "job_cru",23,90,"Khalitzburg",1911,1,"CR_DEAD::OnStart"; monster "job_cru",26,88,"Ghoul",1910,1,"CR_DEAD::OnStart"; monster "job_cru",17,97,"Khalitzburg",1911,1,"CR_DEAD::OnStart"; monster "job_cru",23,100,"Injustice",1912,1,"CR_DEAD::OnStart"; monster "job_cru",31,101,"Ghoul",1910,1,"CR_DEAD::OnStart"; monster "job_cru",13,103,"Raydric Archer",1914,1,"CR_DEAD::OnStart"; monster "job_cru",22,105,"Injustice",1912,1,"CR_DEAD::OnStart"; monster "job_cru",30,107,"Khalitzburg",1911,1,"CR_DEAD::OnStart"; disablenpc "CR_TST_2"; end; EXIT: warp "prt_castle",162,27; } //----------------------------------------------------------------------------------------------------------------------------------------------------- // // Exit - Crusader Job Quest - Patience Test // By Black Dragon based on the information at RagnaInfo // //----------------------------------------------------------------------------------------------------------------------------------------------------- job_cru,23,109,0 script CR_EXT_1 139,1,1,{ if (@CRU1 == 0) goto JUMP; set CRUS_Q,7; killmonster "job_cru","CR_DEAD::OnStart"; enablenpc "CR_TST_2"; JUMP: warp "prt_castle",162,28; } //----------------------------------------------------------------------------------------------------------------------------------------------------- // // Fighting Area - Crusader Job Quest - 4th Test // By Black Dragon based on the information at RagnaInfo // //----------------------------------------------------------------------------------------------------------------------------------------------------- job_cru,167,175,0 script CR_KILL -1,{ OnStart: if (@CRU2 == 43) goto good; set @CRU2,@CRU2 +1; announce "You killed another monster.",3; end; good: announce "You killed all monsters, you may go to the exit.",3; end; } job_cru,167,175,0 script CR_TST_4 139,1,1,{ if(CRUS_Q != 12) goto EXIT; set @CRU2,1; announce "Defeat all the enemies.",3; monster "job_cru",163,42,"Bongun",1188,1,"CR_KILL::OnStart"; monster "job_cru",171,66,"Bongun",1188,1,"CR_KILL::OnStart"; monster "job_cru",163,89,"Bongun",1188,1,"CR_KILL::OnStart"; monster "job_cru",171,115,"Bongun",1188,1,"CR_KILL::OnStart"; monster "job_cru",166,141,"Bongun",1188,1,"CR_KILL::OnStart"; monster "job_cru",168,166,"Bongun",1188,1,"CR_KILL::OnStart"; monster "job_cru",164,170,"Munak",1026,1,"CR_KILL::OnStart"; monster "job_cru",173,153,"Munak",1026,1,"CR_KILL::OnStart"; monster "job_cru",164,138,"Munak",1026,1,"CR_KILL::OnStart"; monster "job_cru",166,128,"Munak",1026,1,"CR_KILL::OnStart"; monster "job_cru",171,117,"Munak",1026,1,"CR_KILL::OnStart"; monster "job_cru",163,102,"Munak",1026,1,"CR_KILL::OnStart"; monster "job_cru",172,84,"Munak",1026,1,"CR_KILL::OnStart"; monster "job_cru",162,76,"Munak",1026,1,"CR_KILL::OnStart"; monster "job_cru",167,65,"Munak",1026,1,"CR_KILL::OnStart"; monster "job_cru",171,58,"Munak",1026,1,"CR_KILL::OnStart"; monster "job_cru",162,48,"Munak",1026,1,"CR_KILL::OnStart"; monster "job_cru",170,33,"Munak",1026,1,"CR_KILL::OnStart"; monster "job_cru",170,26,"Skeleton",1076,1,"CR_KILL::OnStart"; monster "job_cru",166,37,"Skeleton",1076,1,"CR_KILL::OnStart"; monster "job_cru",171,47,"Skeleton",1076,1,"CR_KILL::OnStart"; monster "job_cru",165,61,"Skeleton",1076,1,"CR_KILL::OnStart"; monster "job_cru",172,65,"Skeleton",1076,1,"CR_KILL::OnStart"; monster "job_cru",163,77,"Skeleton",1076,1,"CR_KILL::OnStart"; monster "job_cru",164,86,"Skeleton",1076,1,"CR_KILL::OnStart"; monster "job_cru",165,98,"Skeleton",1076,1,"CR_KILL::OnStart"; monster "job_cru",170,101,"Skeleton",1076,1,"CR_KILL::OnStart"; monster "job_cru",163,110,"Skeleton",1076,1,"CR_KILL::OnStart"; monster "job_cru",164,117,"Skeleton",1076,1,"CR_KILL::OnStart"; monster "job_cru",166,129,"Skeleton",1076,1,"CR_KILL::OnStart"; monster "job_cru",165,139,"Skeleton",1076,1,"CR_KILL::OnStart"; monster "job_cru",166,151,"Skeleton",1076,1,"CR_KILL::OnStart"; monster "job_cru",168,160,"Skeleton",1076,1,"CR_KILL::OnStart"; monster "job_cru",162,169,"Skeleton",1076,1,"CR_KILL::OnStart"; monster "job_cru",171,171,"Skeleton",1076,1,"CR_KILL::OnStart"; monster "job_cru",162,32,"Zombie",1015,1,"CR_KILL::OnStart"; monster "job_cru",165,51,"Zombie",1015,1,"CR_KILL::OnStart"; monster "job_cru",172,73,"Zombie",1015,1,"CR_KILL::OnStart"; monster "job_cru",170,92,"Zombie",1015,1,"CR_KILL::OnStart"; monster "job_cru",173,111,"Zombie",1015,1,"CR_KILL::OnStart"; monster "job_cru",170,124,"Zombie",1015,1,"CR_KILL::OnStart"; monster "job_cru",171,147,"Zombie",1015,1,"CR_KILL::OnStart"; monster "job_cru",163,162,"Zombie",1015,1,"CR_KILL::OnStart"; disablenpc "CR_TST_4"; EXIT: end; } //----------------------------------------------------------------------------------------------------------------------------------------------------- // // Test 4 Exit - Crusader Job Quest - 4th Test // By Black Dragon based on the information at RagnaInfo // //----------------------------------------------------------------------------------------------------------------------------------------------------- job_cru,167,17,0 script CR_EXT_4 139,2,2,{ enablenpc "CR_TST_4"; warp "prt_in",81,100; } //============================================================================== // mapflag //============================================================================== job_cru mapflag nomemo job_cru mapflag noteleport job_cru mapflag nosave SavePoint job_cru mapflag nopenalty job_cru mapflag nobranch job_cru mapflag noexp job_cru mapflag noloot