////===== eAthena Script ======================================= //= Crusader Quest //===== By: ================================================== //= Made by: Black Dragon //= Converted by: Shin //= //===== Current Version: ===================================== //= 2.3 //===== 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 //= 2.2 Updated All NPCs to the officials one [Samuray22] //= -Based on the ASB 4.0 Package. //= -Maybe need be checked the monsters in the test 2 and 4. //= 2.3 Fixed some bugs that prevented from going further. [SinSloth] //============================================================ //=============== Senior Crusader: 1º Collect Items Test============================ prt_castle,45,169,3 script Senior Crusader 752,5,5 { if (Upper == 1) { mes "[Michele Cantonyon]"; mes "We, the Crusader, follow Odin's will to prepare ourselves for the Holy War."; mes "The history a thousand years ago will return, the demons will come to to invade our land."; next; mes "[Michele Cantonyon]"; mes "There are bette place that is suitable for you..."; mes "Do not stop here. Do not stop training yourself."; close; } else if(Class != Job_Swordman) { if(Class == Job_Crusader) { mes "[Michele Cantonyon]"; mes "Excuse me. For those who are ready for Holy Battle, please don't stop at here, and keep training."; mes "The victory is belongs to those who has well prepared..."; next; mes "[Michele Cantonyon]"; mes "When Malaria comes to the end, follow Odin's order to kill all the monsters."; mes "We must keep training until the day we build our own Utopia."; close; } else if(Class == Job_Novice) { mes "[Michele Cantonyon]"; mes "We are Crusader, who follows Odin's order to ready for battle."; next; mes "[Michele Cantonyon]"; mes "If you wan to join us, train yourself as a Swordman and then come back to here..."; close; } mes "[Michele Cantonyon]"; mes "We are Crusader, who follows Odin's order to ready for battle."; next; mes "[Michele Cantonyon]"; mes "The demons will fight against us one day just like thousand years ago."; close; } else if((CRUS_Q == 0 || CRUS_Q == 1 || CRUS_Q == 2 || CRUS_Q == 3) && (countitem(1004) > 0 && countitem(1009) > 0)) { mes "[Michele Cantonyon]"; mes "Do you accept the call-up by Odin?"; mes "Or, you're ready to show your effort?"; next; mes "[Michele Cantonyon]"; mes "Oh! I can see your potential to become a Crusader."; mes "Let's have a test to certify then."; next; mes "[Michele Cantonyon]"; mes "Find Murnak Myjol at the Underground jail in Prontera."; mes "Then ask him about it."; next; delitem 1004, 1; delitem 1009, 1; set CRUS_Q, 4; mes "[Michele Cantonyon]"; mes "He will show you the road you should go,"; mes "and come back to me after you have success to pass all the test..."; close; } else if(CRUS_Q == 0) { mes "[Michele Cantonyon]"; mes "We are Crusader, who follows Odin's order to ready for battle."; mes "Anything I can do for you?"; next; switch( select( "Ready for Holy Battle", "Nothing")) { case 1: mes "[Michele Cantonyon]"; mes "Excuse me. Do you want to become a crusader?"; mes "It isn't easy to join us..."; next; mes "[Michele Cantonyon]"; mes "I'm Michele Cantonyon, one of warrior who ready for Holy Battle."; mes "We use our trust-worthy and loyalty to train ourselves hard."; next; mes "[Michele Cantonyon]"; mes "According to Odin's order, choose the trusted person as the warrior."; mes "We will suggest these people and hope they can join us."; next; mes "[Michele Cantonyon]"; mes "Those Swordman who has ^3355FFPatriotism Marks^000000 and ^3355FFSacred Marks^000000 will call-up by Crusader."; mes "These people will come with us once they has pass all the tests."; next; mes "[Michele Cantonyon]"; mes "Although I still not know you well..."; mes "OK, I'm going to test you then. Want to register now?"; next; switch( select( "Yes, I want to register.", "Let me think about it again.")) { case 1: if(JobLevel < 40) { mes "[Michele Cantonyon]"; mes "Hold on...You still can't get through."; mes "Job Lv40 or above is required to become a Crusader."; next; mes "[Michele Cantonyon]"; mes "While waiting for Odin's order, you as a Swordman should keep on training."; mes "We understand your passionate to join us, but we can't do nothing now..."; close; } else if(SkillPoint != 0) { mes "[Michele Cantonyon]"; mes "Excuse me, are you still a Swordman?"; mes "Come back to here after you master all the others skills..."; close; } mes "[Michele Cantonyon]"; mes "Let me see are you suitable for Crusader profession."; mes "Let me see. Your name is " + strcharinfo(0) + "..right?"; next; if (countitem(1004) > 0 && countitem(1009) > 0) { mes "[Michele Cantonyon]"; mes "Oh! I can see your potential to become a Crusader."; mes "But that are not enough. Let's have a test to certify."; next; mes "[Michele Cantonyon]"; mes "Find Murnak Myjol at the Underground jail in Prontera."; mes "Then ask him."; next; delitem 1004, 1; delitem 1009, 1; set CRUS_Q, 4; mes "[Michele Cantonyon]"; mes "He will show you the road you should go,"; mes "and come back to me after you have success to pass all the test..."; close; } mes "[Michele Cantonyon]"; mes "Ehm, it's hard to see your potential to become a Crusader,"; mes "But I can see your passionate to become a Crusader, please show me your hardworking attitude."; next; set @cru_m1, rand(1, 3); if(@cru_m1 == 1) { set CRUS_Q, 1; mes "[Michele Cantonyon]"; mes "You must get these items to me,"; mes "10 ^3355FF"+getitemname(957)+"^000000"; mes "10 ^3355FF"+getitemname(959)+"^000000"; mes "10 ^3355FF"+getitemname(1099)+"^000000"; mes "10 ^3355FF"+getitemname(901)+"^000000"; next; mes "[Michele Cantonyon]"; mes "We will judge whether you qualify to become a Crusader depends on your effort."; mes "Wish you good luck then. May the Odin be with you."; close; } else if(@cru_m1 == 2) { set CRUS_Q, 2; mes "[Michele Cantonyon]"; mes "You must get these items to me,"; mes "10 ^3355FF"+getitemname(932)+"^000000"; mes "10 ^3355FF"+getitemname(1043)+"^000000"; mes "10 ^3355FF"+getitemname(1098)+"^000000"; mes "10 ^3355FF"+getitemname(1094)+"^000000"; next; mes "[Michele Cantonyon]"; mes "We will judge whether you qualify to become a Crusader depends on your effort."; mes "Wish you good luck then. May Odin be with you."; close; } set CRUS_Q, 3; mes "[Michele Cantonyon]"; mes "You must get these items to me,"; mes "10 ^3355FF"+getitemname(958)+"^000000"; mes "10 ^3355FF"+getitemname(930)+"^000000"; mes "10 ^3355FF"+getitemname(1041)+"^000000"; mes "10 ^3355FF"+getitemname(1062)+"^000000"; next; mes "[Michele Cantonyon]"; mes "We will judge whether you qualify to become a Crusader depends on your effort."; mes "Wish you good luck then. May the Odin be with you."; close; case 2: mes "[Michele Cantonyon]"; mes "Yeah, but no idea when is the Holy Battle."; mes "Get well prepared, don't stop your training."; next; mes "[Michele Cantonyon]"; mes "With Odin's instruction, you must come back for test no matter when."; close; } case 2: mes "[Michele Cantonyon]"; mes "You're also a Swordman, put all the efforts to train yourself hard."; mes "No one knows when is the Holy Battle."; next; mes "[Michele Cantonyon]"; mes "Those unknown issue might be a call-up by Odin."; close; } } else if(CRUS_Q == 1 || CRUS_Q == 2 || CRUS_Q == 3) { mes "[Michele Cantonyon]"; mes "Do you accept the call-up by Odin?"; mes "Or, you're ready to show your effort?"; next; if(CRUS_Q == 1) { set @item1, 957; set @item2, 959; set @item3, 1099; set @item4, 901; } else if(CRUS_Q == 2) { set @item1, 932; set @item2, 1043; set @item3, 1098; set @item4, 1094; } else if(CRUS_Q == 3) { set @item1, 958; set @item2, 930; set @item3, 1041; set @item4, 1062; } if (countitem(@item1) > 9 && countitem(@item2) > 9 && countitem(@item3) > 9 && countitem(@item4) > 9) { mes "[Michele Cantonyon]"; mes "Oh, well done. I have to certify you because of you'd put effort to collect these items."; mes "You may go for the test now just because of I saw your efforts."; next; mes "[Michele Cantonyon]"; mes "Find Murnak Myjol at the Underground jail in Prontera."; mes "Then ask him about it."; next; delitem @item1, 10; delitem @item2, 10; delitem @item3, 10; delitem @item4, 10; set CRUS_Q, 4; mes "[Michele Cantonyon]"; mes "He will show you the road you should go,"; mes "and come back to me after you have success to pass all the test..."; close; } else { mes "[Michele Cantonyon]"; mes "I can't see your potential to become a Crusader."; mes "But I can see your passionate to become a Crusader, please show me your effort."; next; mes "[Michele Cantonyon]"; mes "10 ^3355FF"+getitemname(@item1)+"^000000"; mes "10 ^3355FF"+getitemname(@item2)+"^000000"; mes "10 ^3355FF"+getitemname(@item3)+"^000000"; mes "10 ^3355FF"+getitemname(@item4)+"^000000"; next; mes "[Michele Cantonyon]"; mes "Always show you're improving."; mes "Wish you good luck then. May the Odin be with you."; close; } } else if(CRUS_Q == 10) { if(SkillPoint != 0) { mes "[Michele Cantonyon]"; mes "Excuse me, are you still a Swordman?"; mes "Come back to here after you have master all the other skills."; close; } mes "[Michele Cantonyon]"; mes "Congratulation. You have completed all the tests perfectly."; mes "Be prepared and stay with us! We are the warriors ready for Holy Battle!"; next; callfunc "Job_Change",Job_Crusader; callfunc "F_ClearJobVar"; //clears all job variables for the current player mes "[Michele Cantonyon]"; mes "Congratulation. You have completed all the tests perfectly."; mes "Be prepared and stay with us! We are the warriors ready for Holy Battle!"; next; if(JobLevel != 50) { getitem 504, 6; } else { getitem 504, 12; } mes "[Michele Cantonyon]"; mes "And this one. Use it when in emergency."; mes "It will bring us the power to our force of Crusader."; next; mes "[Michele Cantonyon]"; mes "Keep on training. The Holy Battle is coming soon."; mes "May Odin bless you!"; mes "You may go now!"; close; } mes "[Michele Cantonyon]"; mes "Seem like you haven't pass through all the tests."; mes "We not yet see your potential to become a Crusader."; next; mes "[Michele Cantonyon]"; mes "Go through all the tests and come back here."; mes "I'll clarify your qualification after that."; close; } //===================== Suffering Man: 2º Endure Test =============================================== prt_castle,164,32,7 script Suffering Man 733,5,5{ if(Class != Job_Swordman) { if (Class == Job_Crusader) { mes "[Murnak Myjol]"; mes "Don't stopping at this kind of place, carry on..."; mes "We will fight together someday. The day will come..."; close; } else if(Class == Job_Novice) { mes "[Murnak Myjol]"; mes "I'm just a Novice, not a criminal!"; next; mes "[Murnak Myjol]"; mes "I'm here just to training."; close; } mes "[Murnak Myjol]"; mes "Shut up and get out from here!"; next; mes "[Murnak Myjol]"; mes "Do not disturb my training."; close; } else if(CRUS_Q == 0 || CRUS_Q == 1 || CRUS_Q == 2 || CRUS_Q == 3) { mes "[Murnak Myjol]"; mes "What's happen? Please go out if nothing else."; mes "I need CALM for my training."; next; mes "[Murnak Myjol]"; mes "I must have a calm mind for preparing the Holy Battle."; mes "So, can you please give me a seat?"; close; } else if(CRUS_Q == 4) { mes "[Murnak Myjol]"; mes "What's happen?"; mes "What happen, Swordman? Why need to disturbed me from my training?"; next; switch( select( "I want to participate in Crusader job profession change.", "Nothing actually.")) { case 1: mes "[Murnak Myjol]"; mes "Didn't see you for quite some time, the hope of Crusader."; mes "I'm Murnak Myjol, who ready for Holy Battle."; next; mes "[Murnak Myjol]"; mes "Your name is..." + strcharinfo(0) + "...right?"; mes "Come over; let me see your face."; next; if((getequipid(7) != 2608 ) && (getequipid(8) != 2608 )) { mes "[Murnak Myjol]"; mes "Oh, you don't even have a Rosary, how to become a Crusader?"; mes "I don't want to see the guy like you, go out and buy a Carrot."; next; mes "[Murnak Myjol]"; mes "You just play with that sword for life time like that, got it?"; close; } mes "[Murnak Myjol]"; mes "But, you're also imprudent..."; mes "Seems like inadequate to become a Crusader with that attitude."; next; mes "[Murnak Myjol]"; mes "Let's see your patienceness before you become a Crusader."; mes "Patience is very important."; next; mes "[Murnak Myjol]"; mes "You may go for the test now. The test isn't difficult."; mes "Just walk to the end of the corridor."; next; mes "[Murnak Myjol]"; mes "However, bear in mind of one thing."; mes "Do not slave any monsters not matter what happens."; next; set CRUS_Q, 5; mes "[Murnak Myjol]"; mes "Let's start then."; close2; warp "job_cru",23,42; break; case 2: mes "[Murnak Myjol]"; mes "Is it the young people are free?"; mes "Don't play at this place. Better go out to pick for Jellopy."; close; } } else if(CRUS_Q == 5) { mes "[Murnak Myjol]"; mes "What's the matter? You are the Swordman just now."; mes "Hmm? What? Fail? Doesn't did well in the exam?"; next; switch( select( "Please, give me another chance.", "What the hell the exam is?")) { case 1: mes "[Murnak Myjol]"; mes "You can take the exam no matter how many times."; mes "But, if you fail, the problem is lie on your mentality."; next; if (countitem(2608) == 0) { mes "[Murnak Myjol]"; mes "Where you put the Rosary this time?"; mes "We had accepted the protection from Odin, we can't simply put on the Rosary."; next; mes "[Murnak Myjol]"; mes "Nothing in mind, just playing the sword at will, it was only happended as a Swordman."; mes "If you want to take the exam again, please strictly adhere to the etiquette."; close; } mes "[Murnak Myjol]"; mes "It had been a habit to hit the monster when its appeared, it may be a point of the problem, right?"; mes "Patience and persistence are what I ask for."; next; mes "[Murnak Myjol]"; mes "So, I repeat, just like last time..."; mes "Just walk to the end to the altar."; next; mes "[Murnak Myjol]"; mes "So too this time strictly slave any monsters no matter what happen."; mes "Please think wisely before you go through."; next; mes "[Murnak Myjol]"; mes "Start then!"; close2; savepoint "prt_castle",162,27; if (getmapusers("job_cru") > 0) { mes "[Murnak Myjol]"; mes "I'm sorry, there's already another person there right now."; mes "Please wait a little longer."; } set CRUS_Q,5; warp "job_cru",23,42; break; case 2: mes "[Murnak Myjol]"; mes "Ahem, does your reaction mean you don't like my tests?"; mes "A person like you would never qualify for Holy Battle."; next; mes "[Murnak Myjol]"; mes "Get lost right now!"; close; } } else if(CRUS_Q == 6) { mes "[Murnak Myjol]"; mes "Your result seems not bad. Not difficult, right?"; mes "You has nothing to look for me now."; next; mes "[Murnak Myjol]"; mes "Look for Gabriel Valentine at the Church in Prontera."; mes "You can go for the next exam. OK, go for it now."; close; } mes "[Murnak Myjol]"; mes "You seem like haven't finished the exam, I'll not interrupt you. Please carry on with your exam."; close; } //===================== Catholic Knight: 3º Knoledge Test ==================================== prt_church,95,127,3 script Catholic Knight 745,{ if(Class != Job_Swordman) { if(Class == Job_Crusader) { mes "[Gabriel Valentine]"; mes "Welcome, Crusaders."; mes "Still remember the training?"; next; mes "[Gabriel Valentine]"; mes "For the coming of the Holy War, don't ever forget the day."; mes "Work hard!"; close; } else if(Class == Job_Novice) { mes "[Gabriel Valentine]"; mes "Welcome, I'm a Crusaders."; mes "A warrior prepared for the Holy Battle in future."; next; mes "[Gabriel Valentine]"; mes "Swordman, if you interested about Crusader, please train hard."; mes "See us again when you think you've qualified the requirement..."; next; mes "[Gabriel Valentine]"; mes "We are living in the middle section of the Prontera."; mes "It's good to visit us if you are in free."; close; } mes "[Gabriel Valentine]"; mes "Welcome, I'm a Crusaders."; mes "A warrior prepared for the Holy Battle in future."; next; mes "[Gabriel Valentine]"; mes "You must train hard to ready for the days to come."; close; } else if(CRUS_Q == 0) { mes "[Gabriel Valentine]"; mes "Welcome, I'm a Crusaders."; mes "A warrior prepared for the Holy Battle in future."; next; mes "[Gabriel Valentine]"; mes "If you want to become a crusader."; mes "See our Leader in the middle section of Prontera."; close; } else if(CRUS_Q == 6) { mes "[Gabriel Valentine]"; mes "Welcome. Finished all the tough tests?"; mes "I will prepare for your next test."; next; mes "[Gabriel Valentine]"; mes "My name is Gabriel Valentine, a warrior ready for Holy Battle."; mes "A temporary special agent for this Church."; next; mes "[Gabriel Valentine]"; mes "I want to see whether you have the knowledge to become a Crusader."; mes "You cant win that easily just with a sword."; next; goto C_Questions; } else if(CRUS_Q == 7) { mes "[Gabriel Valentine]"; mes "Welcome. Are you ready for the test?"; mes "Resit the test then."; next; C_Questions: set @cru_t, 0; set @cru_m, rand(1,3); mes "[Gabriel Valentine]"; mes "10 questions as before."; mes "Listen carefully. Give me the correct answer."; next; if(@cru_m == 1) { mes "[Gabriel Valentine]"; mes "1.Which element is the best against Undead?"; next; switch( select( "None Element:Earth Element:Undead Element:Holy Element")) { case 4: set @cru_t, @cru_t+10; case 1: case 2: case 3: } mes "[Gabriel Valentine]"; mes "2. How much the Damage increase compare to Fire Elemental Attack by Undead Monster Lv.2?"; next; switch( select("25%:50%:75%:100%")) { case 2: set @cru_t, @cru_t+10; case 1: case 3: case 4: } mes "[Gabriel Valentine]"; mes "3. Which item are not obtain from Druid?"; next; switch( select("Holy Bonnet:Leaf of Yggdrasil:White Herb:Amulet")) { case 1: set @cru_t, @cru_t+10; case 2: case 3: case 4: } mes "[Gabriel Valentine]"; mes "4. Which Undead from the below has the most HP?"; next; switch( select( "Ghoul:Skel Prisoner:Wraith:Zombie Prisoner")) { case 4: set @cru_t, @cru_t+10; case 1: case 2: case 3: } mes "[Gabriel Valentine]"; mes "5. Which Undead from the below has different in size?"; next; switch( select( "Wraith:Khalitzburg:Drake:Evil Druid")) { case 3: set @cru_t, @cru_t+10; case 1: case 2: case 4: } mes "[Gabriel Valentine]"; mes "6. Which card has the most effectiveness against Undead?"; next; switch( select( "Orc Skeleton Card:Orc Zombie Card:Ghoul Card:Skel Worker Card")) { case 2: set @cru_t, @cru_t+10; case 1: case 3: case 4: } mes "[Gabriel Valentine]"; mes "7. What is the relationship between Munak and Bon Gun when it still alive?"; next; switch( select( "Sibling:Neighbour's sibling:Sibling that doesn't have blood relationtionship:No relationship")) { case 2: set @cru_t, @cru_t+10; case 1: case 3: case 4: } mes "[Gabriel Valentine]"; mes "8. Differentiate these Undead Monster."; next; switch( select( "Soldier Skeleton:Orc Skeleton:Skeleton:Skel Worker")) { case 3: set @cru_t, @cru_t+10; case 1: case 2: case 4: } mes "[Gabriel Valentine]"; mes "9. The shield that sloted in the Munak Card is..."; next; switch( select( "Atomic Shield:Amulet Shield:Hypnotic Shield:Homer's Shield")) { case 2: set @cru_t, @cru_t+10; case 1: case 3: case 4: } mes "[Gabriel Valentine]"; mes "10. Which Undead doesn't drops Memetos?"; next; switch( select( "Munak:Ghoul:Mummy:Soldier Skeleton")) { case 1: set @cru_t, @cru_t+10; case 2: case 3: case 4: } } else if(@cru_m == 2) { mes "[Gabriel Valentine]"; mes "1. Which from the below are not categorize under Ghost?"; next; switch( select( "Carat:Wind Ghost:Isis:Wander Man")) { case 3: set @cru_t, @cru_t+10; case 1: case 2: case 4: } mes "[Gabriel Valentine]"; mes "2. Which sword is the best sword against Ghost?"; next; switch( select( "Decussate Tsurugi:Tsurugi from hell:Damned Tsurugi:Divine Tsurugi")) { case 1: set @cru_t, @cru_t+10; case 2: case 3: case 4: } mes "[Gabriel Valentine]"; mes "3. Which item are not able to get from Dokebi?"; next; switch( select( "Elunium Stone:Golden Hammer:Sword Mace:Mighty Staff")) { case 2: set @cru_t, @cru_t+10; case 1: case 3: case 4: } mes "[Gabriel Valentine]"; mes "4. Which Ghost below has the highest HP?"; next; switch( select( "Giearth:Magnolia:Dokebi:Marionette")) { case 4: set @cru_t, @cru_t+10; case 1: case 2: case 3: } mes "[Gabriel Valentine]"; mes "5.Which Ghost from the below different in size?"; next; switch( select( "Ghostring:Whisper:Deviruchi:Baphomet")) { case 1: set @cru_t, @cru_t+10; case 2: case 3: case 4: } mes "[Gabriel Valentine]"; mes "6. Which Shield from below has the best Defense when against Ghost?"; next; switch( select( "Satanic Shield:Shield from hell:Amulet Shield:Excellent Shield")) { case 2: set @cru_t, @cru_t+10; case 1: case 3: case 4: } mes "[Gabriel Valentine]"; mes "7. Which element is best effective to Wind elemental Wizard?"; next; switch( select( "Water Element:Earth Element:Fire Element:Wind Element")) { case 2: set @cru_t, @cru_t+10; case 1: case 3: case 4: } mes "[Gabriel Valentine]"; mes "8.Please select the monster not from Ghost Class."; next; switch( select( "Sohee:Isis:Dokebi:Whisper")) { case 4: set @cru_t, @cru_t+10; case 1: case 2: case 3: } mes "[Gabriel Valentine]"; mes "9. What is the usage of Marrionette Card?"; next; switch( select( "Increase 30% of DEF against Darkness Attack:Increase 30% of DEF against Poisoness Attack:Increase 30% of DEF against Mind Attack:Increase 30% of DEF against none elementary Attack")) { case 3: set @cru_t, @cru_t+10; case 1: case 2: case 4: } mes "[Gabriel Valentine]"; mes "10. The best way to against Ghost is..."; next; switch( select( "Shout louder 'Get lost!':Give it your soul and sign the contract:Attack with a weapon coated with Holy water:Wear Deviruchi Hat" )) { case 3: set @cru_t, @cru_t+10; case 1: case 2: case 4: } } else { mes "[Gabriel Valentine]"; mes "1. What's the minimum prerequisite skilln in order to master Demonbane?"; next; switch( select( "Lv. 1:Lv. 2:Lv. 3:Lv. 4")) { case 3: set @cru_t, @cru_t+10; case 1: case 2: case 4: } mes "[Gabriel Valentine]"; mes "2. At level 55, if the INT was increased to 30, what's the recovery rate for Heal at Level 5?"; next; switch( select( "396:440:484:528" )) { case 2: set @cru_t, @cru_t+10; case 1: case 3: case 4: } mes "[Gabriel Valentine]"; mes "3. How much is the DEF increase when against Undead with Divine Protection?"; next; switch( select( "21:22:23:24")) { case 1: set @cru_t, @cru_t+10; case 2: case 3: case 4: } mes "[Gabriel Valentine]"; mes "4.Which spear from the below has the effective to catch Mind Nightmare?"; next; switch( select( "Lance:Bill Guisame:Crescent Scythe:Zephyrus")) { case 4: set @cru_t, @cru_t+10; case 1: case 2: case 3: } mes "[Gabriel Valentine]"; mes "5.What's the minimum prerequisite skill in order to master Heal?"; next; switch( select( "Lv. 1:Lv. 2:Lv. 3:Lv. 4")) { case 2: set @cru_t, @cru_t+10; case 1: case 3: case 4: } mes "[Gabriel Valentine]"; mes "6. What's the Aspd of Knight at Lv.3?"; next; switch( select( "70% as usual:80% as usual:90% as usual:100% as usual")) { case 2: set @cru_t, @cru_t+10; case 1: case 3: case 4: } mes "[Gabriel Valentine]"; mes "7.Which description about Demonbane are false?"; next; switch( select( "Increase ATK against Undead:A skill only available for Acolyte:Increase +30 when mastered the skill:A passive skill")) { case 2: set @cru_t, @cru_t+10; case 1: case 3: case 4: } mes "[Gabriel Valentine]"; mes "8. How much SP will consume when Heal Lv.7?"; next; switch( select( "30:31:33:35")) { case 2: set @cru_t, @cru_t+10; case 1: case 3: case 4: } mes "[Gabriel Valentine]"; mes "9.Which status are unable to cure with Heal?"; next; switch( select( "Curse:Silent:Confuse:Darkness")) { case 1: set @cru_t, @cru_t+10; case 2: case 3: case 4: } mes "[Gabriel Valentine]"; mes "10. What's the objective of Crusader?"; next; switch( select( "A person ready for biscuit:A person ready for Holy Battle:A person ready for alchoholic:A person ready for Potion")) { case 2: set @cru_t, @cru_t+10; case 1: case 3: case 4: } } mes "[Gabriel Valentine]"; mes "Well done. I will tell you your result now."; next; mes "[Gabriel Valentine]"; mes " " + strcharinfo(0) + "and your score is..." + @cru_t + " point."; if(@cru_t == 100) { set CRUS_Q, 8; mes "Well done! Get ready for the next test."; next; mes "[Gabriel Valentine]"; mes "Find Briten Pyrod at Prontera."; mes "He will prepare the next test for you."; close; } else if(@cru_t == 90) { set CRUS_Q, 8; mes "Excellent! Go ahead for the next test."; next; mes "[Gabriel Valentine]"; mes "Find Briten Pyrod at Prontera."; mes "He will prepare the next test for you."; close; } mes "What a pity. Train hard and try again."; next; mes "[Gabriel Valentine]"; mes "Because you need to prepare many things, so I'll wait you here."; mes "Come back when you've well prepared."; close; } else if(CRUS_Q == 8) { mes "[Gabriel Valentine]"; mes "I've told you. Just go ahead for the next test."; mes "Find Briten Pyrod at Prontera."; close; } else if(CRUS_Q == 9) { mes "[Gabriel Valentine]"; mes "I've told you. Just go ahead for the next test."; mes "Find Briten Pyrod at Prontera."; close; } else if(CRUS_Q == 10) { mes "[Gabriel Valentine]"; mes "What are you waiting for? The test has ended."; mes "Go and see Captain, you will become a Crusader very soon."; next; mes "[Gabriel Valentine]"; mes "You will join us for the Holy Battle."; mes "Hope you can continue to live in thoroughly after changed job profession."; close; } mes "[Gabriel Valentine]"; mes "You are the hope of Crusader,"; mes "But not qualify to see me yet."; next; mes "[Gabriel Valentine]"; mes "Come back to see me after you've finish all the tests."; mes "So, see you then."; close; } //===================== Crusader: 4º Purification Test ===================================================== prt_castle,35,151,7 script Crusader#1 751,{ if(Class != Job_Swordman) { if(Class == Job_Crusader) { mes "[Briten Pyrod]"; mes "Welcome, does your training going well?"; next; mes "[Briten Pyrod]"; mes "Train hard everyday, and become a greatest Crusader."; close; } else if(Class == Job_Novice) { mes "[Briten Pyrod]"; mes "Welcome, we are Crusaders."; mes "Who ready for Holy Battle."; next; mes "[Briten Pyrod]"; mes "Interested about Crusader?"; mes "We are always recruiting."; next; mes "[Briten Pyrod]"; mes "Come back to us when you gained some training as a Swordman."; mes "We will only welcome those who call-up by Odin."; close; } mes "[Briten Pyrod]"; mes "Welcome, we are Crusaders."; mes "Who ready for Holy Battle."; next; mes "[Briten Pyrod]"; mes "Get ready for the peaceful future..."; mes "for the day of Holy Battle..."; close; } else if(CRUS_Q == 0) { mes "[Briten Pyrod]"; mes "Welcome, we are Crusaders."; mes "Warriors who ready for Holy Battle."; next; mes "[Briten Pyrod]"; mes "Interested about Crusader?"; mes "We are always recruiting."; next; mes "[Briten Pyrod]"; mes "Job Lv 40 or above required to become a Crusader."; mes "For further details, please ask our Captian inside there."; next; mes "[Briten Pyrod]"; mes "May Odin bless you..."; close; } else if(CRUS_Q == 8 || CRUS_Q == 9) { if(CRUS_Q == 8) { mes "[Briten Pyrod]"; mes "Welcome."; mes "This is the last and the final test."; next; mes "[Briten Pyrod]"; mes "My name is Briten Pyrod, one of the warrior prepared for the Holy Battle."; mes "Well done!"; next; mes "[Briten Pyrod]"; mes "The last test is to a Battle test."; mes "Only the strongest person can become a Crusader."; next; mes "[Briten Pyrod]"; mes "For the battle test, please prepare one ^3355FFHoly water^000000."; mes "To purify the candidates."; next; mes "[Briten Pyrod]"; mes "Ready for the test?"; mes "Or get ready once again?"; next; } else { mes "[Briten Pyrod]"; mes "Welcome. Get ready for the test?"; next; mes "[Briten Pyrod]"; mes "Ready for the test?"; mes "Or get ready once again?"; } switch( select( "Let's get started.", "Give me some time to get prepare.")) { case 1: next; if (countitem(2608) == 0) { if(CRUS_Q == 8) { set CRUS_Q, 9; } mes "[Briten Pyrod]"; mes "Hold on! You don't equip Rosary, do you?"; mes "You must equip Rosary all the time in the Crusader test."; next; mes "[Briten Pyrod]"; mes "Equip Rosary and come back then."; close; } else if(countitem(523) < 1) { if(CRUS_Q == 8) { set CRUS_Q, 9; } mes "[Briten Pyrod]"; mes "For the battle test, please prepare one ^3355FFHoly water^000000."; mes "I told you just to purify the candidates."; next; mes "[Briten Pyrod]"; mes "Get prepares and come back to here."; mes "I will wait for you."; close; } if(CRUS_Q == 8) { set CRUS_Q, 9; } delitem 523, 1; mes "[Briten Pyrod]"; mes "OK, let's get started then."; mes "Use the Holy water to purify you."; next; mes "[Briten Pyrod]"; mes "..............."; next; mes "[Briten Pyrod]"; mes "Almost getting start. Get in and go to waiting room."; mes "Defeat all the monsters in 4th Floor."; if( getmapusers("job_cru")>0 ) { mes "[^000080Bliant Piyord^000000]"; mes "I'm sorry, but someone else is inside at the moment."; close; } close2; savepoint "prt_castle",39,151; warp "job_cru",167,175; break; case 2: next; mes "[Briten Pyrod]"; mes "Yes, get prepare and come back here then."; mes "I will wait for you."; close; } } else if(CRUS_Q == 10) { mes "[Briten Pyrod]"; mes "Congratulation, all the Crusader tests ended like this."; next; mes "[Briten Pyrod]"; mes "Get inside and talk to the Captain."; mes "Starting from now, you're also one of the warriors for the Holy Battle."; close; } mes "[Briten Pyrod]"; mes "Welcome, is this in the middle of the Crusader profession change?"; next; mes "[Briten Pyrod]"; mes "Haven't to my turn yet?"; mes "Finish all the tests and come back to me then."; next; mes "[Briten Pyrod]"; mes "Please come back to here then."; mes "May Odin bless 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 != 5) 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,6; 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) { announce "You killed all monsters, you may go to the exit.",3; set CRUS_Q, 10; end; } set @CRU2,@CRU2 +1; announce "You killed another monster.",3; end; } job_cru,167,175,0 script CR_TST_4 139,1,1,{ if(CRUS_Q != 9) 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_castle",39,151; } //============================================================================== // 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