////===== 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