//ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ\\
//||----------------------------------------------||\\
//|| Jobra                                        ||\\
//||----------------------------------------------||\\
//|| Written By: Izkuru                           ||\\
//||             teh_face_x_o@yahoo.com           ||\\
//|| Test With: OmniAthena 962                    ||\\
//|| Version: 0.1                                 ||\\
//||----------------------------------------------||\\
//|| Everyone's favorite [j/k] Jobra. Except,     ||\\
//|| unlike most which will show all of the 2-1   ||\\
//|| and 2-2 jobs that you can't change to since  ||\\
//|| you aren't their root class aren't shown.    ||\\
//|| Ex. You change from Novice to Swordsman, and ||\\
//||     when you come back to go to Second Job,  ||\\
//||     your only choices are Knight and         ||\\
//||     Crusader.                                ||\\
//|| Advanced classes are handled as well, and it ||\\
//|| makes sure that the player follows the job   ||\\
//|| path of their first job.                     ||\\
//|| Uses one global var. One that specifies if   ||\\
//|| the player needs to use all his Skill Points ||\\
//|| or not.                                      ||\\
//||----------------------------------------------||\\
//|| To install: Place this TXT file anywhere in  ||\\
//|| your Athena scripts folder, and include it   ||\\
//|| in scripts.conf. Then add the following to   ||\\
//|| save/mapreg.txt.                             ||\\
//||----------------------------------------------||\\
//|| $JobraNoSkillPoints	0                 ||\\
//||----------------------------------------------||\\
//|| [Those are tabs, btw]                        ||\\
//|| If $JobraNoSkillPoints is 0, the player can  ||\\
//|| change jobs without spending his Skill       ||\\
//|| points, and if it is 1, he will need to use  ||\\
//|| them to change jobs.                         ||\\
//||----------------------------------------------||\\
//|| Started on: Jun 23 2004                      ||\\
//|| Last Modified: Jun 24 2004                   ||\\
//||----------------------------------------------||\\
//__________________________________________________\\

prontera.gat,161,193,6	script	Jobra	94,{
	if(cong == 1) goto L_Congr;
		mes "[Jobra]";
		mes "Sup? I'm the insanely cool and supra-l337 jobchanger thingy for Athena!";
	next;
	if(getgmlevel >= 1) goto L_GM;
	if((thirdJob == 25) && (secondJob == 7)) goto L_Knight2;
	if((thirdJob == 25) && (secondJob == 14)) goto L_Crusader2;
	if((thirdJob == 26) && (secondJob == 9)) goto L_Wizard2;
	if((thirdJob == 26) && (secondJob == 16)) goto L_Sage2;
	if((thirdJob == 27) && (secondJob == 11)) goto L_Hunter2;
	if((thirdJob == 27) && (secondJob == 19)) goto L_Bard2;
	if((thirdJob == 27) && (secondJob == 20)) goto L_Dancer2;
	if((thirdJob == 28) && (secondJob == 8)) goto L_Priest2;
	if((thirdJob == 28) && (secondJob == 15)) goto L_Monk2;
	if((thirdJob == 29) && (secondJob == 10)) goto L_Blacksmith2;
	if((thirdJob == 29) && (secondJob == 18)) goto L_Alchemist2;
	if((thirdJob == 30) && (secondJob == 12)) goto L_Assassin2;
	if((thirdJob == 30) && (secondJob == 17)) goto L_Rouge2;
	if(secondJob == 7) goto L_Swordsman2;
	if(secondJob == 8) goto L_Acolyte2;
	if(secondJob == 9) goto L_Mage2;
	if(secondJob == 10) goto L_Merchant2;
	if(secondJob == 11) goto L_Archer2;
	if(secondJob == 12) goto L_Thief2;
	if(secondJob == 14) goto L_Swordsman2;
	if(secondJob == 15) goto L_Acolyte2;
	if(secondJob == 16) goto L_Mage2;
	if(secondJob == 17) goto L_Thief2;
	if(secondJob == 18) goto L_Merchant2;
	if(secondJob == 19) goto L_Archer2;
	if(secondJob == 20) goto L_Archer2;
	if(firstJob == 1) goto L_Swordsman1;
	if(firstJob == 2) goto L_Mage1;
	if(firstJob == 3) goto L_Archer1;
	if(firstJob == 4) goto L_Acolyte1;
	if(firstJob == 5) goto L_Merchant1;
	if(firstJob == 6) goto L_Thief1;
	if(firstJob == 23) goto L_SNov1;
		mes "[Jobra]";
		mes "First of all, what class would you like to change into (must meet preliminary requirements for each class..)";
	next;
	menu "First Class",L_FClass,"Super Novice",L_SNov,"Cancel",-;
	L_No:
		mes "[Jobra]";
		mes "Come back when you want to change your job.";
	close;

L_FClass:
	if(JobLevel < 10) goto L_JlvErr;
	if(($JobraNoSkillPoints == 1) && (SkillPoint != 0)) goto L_SkpErr;
		mes "[Jobra]";
		mes "So...getting your first job, eh? Gratz.";
	next;
		mes "[Jobra]";
		mes "Alright then, pick your job.";
	next;
	menu "Swordsman",L_Swordsman,"Mage",L_Mage,"Archer",L_Archer,"Acolyte",L_Acolyte,"Merchant",L_Merchant,"Thief",L_Thief,"Cancel",L_No;
	
L_Swordsman:
		mes "[Jobra]";
		mes "You looked like the Swordsman type.";
	jobchange 1;
	set firstJob,1;
	close;

L_Mage:
		mes "[Jobra]";
		mes "You looked like the Mage type.";
	jobchange 2;
	set firstJob,2;
	close;

L_Archer:
		mes "[Jobra]";
		mes "You looked like the Archer type.";
	jobchange 3;
	set firstJob,3;
	close;

L_Acolyte:
		mes "[Jobra]";
		mes "You looked like the Acolyte type.";
	jobchange 4;
	set firstJob,4;
	close;

L_Merchant:
		mes "[Jobra]";
		mes "You looked like the Merchant type.";
	jobchange 5;
	set firstJob,5;
	close;

L_Thief:
		mes "[Jobra]";
		mes "You looked like the Theif type.";
	jobchange 6;
	set firstJob,6;
	close;

L_SNov:
	if(BaseLevel < 40) goto L_BlvErr;
		mes "[Jobra]";
		mes "Super Novice, eh? Sounds like a lot of work.";
	jobchange 23;
	set firstJob,23;
	close;

L_SNov1:
		mes "[Jobra]";
		mes "Sorry, but Super Novice is the farthest you can go xD";
	close;

L_Swordsman1:
	if(JobLevel < 40) goto L_JlvErr;
	if(($JobraNoSkillPoints == 1) && (SkillPoint != 0)) goto L_SkpErr;
		mes "[Jobra]";
		mes "So, ready to become your Second job?";
	next;
		mes "[Jobra]";
		mes "Here are the jobs you can change to.";
	next;
	menu "Knight",L_Knight,"Crusader",L_Crusader,"Cancel",L_No;
	
L_Knight:
		mes "[Jobra]";
		mes "Ok..You are at least a job level 40 Swordsman, so you pass the test to become a Knight xD";
	next;
	jobchange 7;
	set secondJob,7;
	close;

L_Crusader:
		mes "[Jobra]";
		mes "Ok..You are at least a job level 40 Swordsman, so you pass the test to become a Crusader xD";
	next;
	jobchange 14;
	set secondJob,14;
	close;

L_Mage1:
	if(JobLevel < 40) goto L_JlvErr;
	if(($JobraNoSkillPoints == 1) && (SkillPoint != 0)) goto L_SkpErr;
		mes "[Jobra]";
		mes "So, ready to become your Second job?";
	next;
		mes "[Jobra]";
		mes "Here are the jobs you can change to.";
	next;
	menu "Wizard",L_Wizard,"Sage",L_Sage,"Cancel",L_No;
	
L_Wizard:
		mes "[Jobra]";
		mes "Ok..You are at least a job level 40 Mage, so you pass the test to become a Wizard xD";
	next;
	jobchange 9;
	set secondJob,9;
	close;

L_Sage:
		mes "[Jobra]";
		mes "Ok..You are at least a job level 40 Mage, so you pass the test to become a Sage xD";
	next;
	jobchange 16;
	set secondJob,16;
	close;

L_Archer1:
	if(JobLevel < 40) goto L_JlvErr;
	if(($JobraNoSkillPoints == 1) && (SkillPoint != 0)) goto L_SkpErr;
		mes "[Jobra]";
		mes "So, ready to become your Second job?";
	next;
		mes "[Jobra]";
		mes "Here are the jobs you can change to.";
	next;
	if(Sex == 0) menu "Hunter",L_Hunter,"Dancer",L_Dancer,"Cancel",L_No;
	if(Sex == 1) menu "Hunter",L_Hunter,"Bard",L_Bard,"Cancel",L_No;
	
L_Hunter:
		mes "[Jobra]";
		mes "Ok..You are at least a job level 40 Archer, so you pass the test to become a Hunter xD";
	next;
	jobchange 11;
	set secondJob,11;
	close;

L_Bard:
		mes "[Jobra]";
		mes "Ok..You are at least a job level 40 male Archer, so you pass the test to become a Bard xD";
	next;
	jobchange 19;
	set secondJob,19;
	close;

L_Dancer:
		mes "[Jobra]";
		mes "Ok..You are at least a job level 40 female Archer, so you pass the test to become a Dancer xD";
	next;
	jobchange 20;
	set secondJob,20;
	close;
	
L_Acolyte1:
	if(JobLevel < 40) goto L_JlvErr;
	if(($JobraNoSkillPoints == 1) && (SkillPoint != 0)) goto L_SkpErr;
		mes "[Jobra]";
		mes "So, ready to become your Second job?";
	next;
		mes "[Jobra]";
		mes "Here are the jobs you can change to.";
	next;
	menu "Priest",L_Priest,"Monk",L_Monk,"Cancel",L_No;
	
L_Priest:
		mes "[Jobra]";
		mes "Ok..You are at least a job level 40 Acolyte, so you pass the test to become a Priest xD";
	next;
	jobchange 8;
	set secondJob,8;
	close;

L_Monk:
		mes "[Jobra]";
		mes "Ok..You are at least a job level 40 Acolyte, so you pass the test to become a Monk xD";
	next;
	jobchange 15;
	set secondJob,15;
	close;
	
L_Merchant1:
	if(JobLevel < 40) goto L_JlvErr;
	if(($JobraNoSkillPoints == 1) && (SkillPoint != 0)) goto L_SkpErr;
		mes "[Jobra]";
		mes "So, ready to become your Second job?";
	next;
		mes "[Jobra]";
		mes "Here are the jobs you can change to.";
	next;
	menu "Blacksmith",L_Blacksmith,"Alchemist",L_Alchemist,"Cancel",L_No;
	
L_Blacksmith:
		mes "[Jobra]";
		mes "Ok..You are at least a job level 40 Merchant, so you pass the test to become a Blacksmith xD";
	next;
	jobchange 10;
	set secondJob,10;
	close;

L_Alchemist:
		mes "[Jobra]";
		mes "Ok..You are at least a job level 40 Merchant, so you pass the test to become a Alchemist xD";
	next;
	jobchange 18;
	set secondJob,18;
	close;

L_Thief1:
	if(JobLevel < 40) goto L_JlvErr;
	if(($JobraNoSkillPoints == 1) && (SkillPoint != 0)) goto L_SkpErr;
		mes "[Jobra]";
		mes "So, ready to become your Second job?";
	next;
		mes "[Jobra]";
		mes "Here are the jobs you can change to.";
	next;
	menu "Assassin",L_Assassin,"Rouge",L_Rouge,"Cancel",L_No;
	
L_Assassin:
		mes "[Jobra]";
		mes "Ok..You are at least a job level 40 Thief, so you pass the test to become a Assassin xD";
	next;
	jobchange 12;
	set secondJob,12;
	close;

L_Rouge:
		mes "[Jobra]";
		mes "Ok..You are at least a job level 40 Thief, so you pass the test to become a Rouge xD";
	next;
	jobchange 17;
	set secondJob,17;
	close;

L_NovH:
		mes "[Jobra]";
		mes "Back again? Ready for the advanced classes? [Once you say yes, there is no going back :E]";
	next;
	menu "Yes",-,"No",L_No;
	if((BaseLevel < 99) || (JobLevel < 50)) goto L_lvErr2;
	if(($JobraNoSkillPoints == 1) && (SkillPoint != 0)) goto L_SkpErr;
		mes "[Jobra]";
		mes "I guess we all need to be reborn sometime :P";
	next;
	jobchange 24;
	resetlvl;
	set StatusPoint,48;
		mes "[Jobra]";
		mes "Congratulations!";
		mes "You are now a Novie High!";
	close;
	
L_Swordsman2:
	if(Class != 24) goto L_NovH;
		mes "[Jobra]";
		mes "Ready to become Swordsman High already?";
	next;
	menu "Yes",-,"No",L_No;
	if(JobLevel < 10) goto L_JlvErr;
	if(($JobraNoSkillPoints == 1) && (SkillPoint != 0)) goto L_SkpErr;
		mes "[Jobra]";
		mes "Alright, here you go. Swordsman High.";
	jobchange 25;
	set thirdJob,25;
	close;

L_Acolyte2:
	if(Class != 24) goto L_NovH;
		mes "[Jobra]";
		mes "Ready to become Acolyte High already?";
	next;
	menu "Yes",-,"No",L_No;
	if(JobLevel < 10) goto L_JlvErr;
	if(($JobraNoSkillPoints == 1) && (SkillPoint != 0)) goto L_SkpErr;
		mes "[Jobra]";
		mes "Alright, here you go. Acolyte High.";
	jobchange 28;
	set thirdJob,28;
	close;

L_Mage2:
	if(Class != 24) goto L_NovH;
		mes "[Jobra]";
		mes "Ready to become Mage High already?";
	next;
	menu "Yes",-,"No",L_No;
	if(JobLevel < 10) goto L_JlvErr;
	if(($JobraNoSkillPoints == 1) && (SkillPoint != 0)) goto L_SkpErr;
		mes "[Jobra]";
		mes "Alright, here you go. Mage High.";
	jobchange 26;
	set thirdJob,26;
	close;

L_Merchant2:
	if(Class != 24) goto L_NovH;
		mes "[Jobra]";
		mes "Ready to become Merchant High already?";
	next;
	menu "Yes",-,"No",L_No;
	if(JobLevel < 10) goto L_JlvErr;
	if(($JobraNoSkillPoints == 1) && (SkillPoint != 0)) goto L_SkpErr;
		mes "[Jobra]";
		mes "Alright, here you go. Merchant High.";
	jobchange 29;
	set thirdJob,29;
	close;

L_Archer2:
	if(Class != 24) goto L_NovH;
		mes "[Jobra]";
		mes "Ready to become Archer High already?";
	next;
	menu "Yes",-,"No",L_No;
	if(JobLevel < 10) goto L_JlvErr;
	if(($JobraNoSkillPoints == 1) && (SkillPoint != 0)) goto L_SkpErr;
		mes "[Jobra]";
		mes "Alright, here you go. Archer High.";
	jobchange 27;
	set thirdJob,27;
	close;

L_Thief2:
	if(Class != 24) goto L_NovH;
		mes "[Jobra]";
		mes "Ready to become Thief High already?";
	next;
	menu "Yes",-,"No",L_No;
	if(JobLevel < 10) goto L_JlvErr;
	if(($JobraNoSkillPoints == 1) && (SkillPoint != 0)) goto L_SkpErr;
		mes "[Jobra]";
		mes "Alright, here you go. Thief High.";
	jobchange 30;
	set thirdJob,30;
	close;

L_Knight2:
		mes "[Jobra]";
		mes "Ready to become Lord Knight?";
	next;
	menu "Yes",-,"No",L_No;
	if(JobLevel < 40) goto L_JlvErr;
	if(($JobraNoSkillPoints == 1) && (SkillPoint != 0)) goto L_SkpErr;
		mes "[Jobra]";
		mes "There you are, " + Strcharinfo(0) + " the Lord Knight!";
	jobchange 31;
	set cong,1;
	close;
	
L_Crusader2:
		mes "[Jobra]";
		mes "Ready to become Paladin?";
	next;
	menu "Yes",-,"No",L_No;
	if(JobLevel < 40) goto L_JlvErr;
	if(($JobraNoSkillPoints == 1) && (SkillPoint != 0)) goto L_SkpErr;
		mes "[Jobra]";
		mes "There you are, " + Strcharinfo(0) + " the Paladin!";
	jobchange 38;
	set cong,1;
	close;

L_Wizard2:
		mes "[Jobra]";
		mes "Ready to become High Wizard?";
	next;
	menu "Yes",-,"No",L_No;
	if(JobLevel < 40) goto L_JlvErr;
	if(($JobraNoSkillPoints == 1) && (SkillPoint != 0)) goto L_SkpErr;
		mes "[Jobra]";
		mes "There you are, " + Strcharinfo(0) + " the High Wizard!";
	jobchange 33;
	set cong,1;
	close;

L_Sage2:
		mes "[Jobra]";
		mes "Ready to become Professor?";
	next;
	menu "Yes",-,"No",L_No;
	if(JobLevel < 40) goto L_JlvErr;
	if(($JobraNoSkillPoints == 1) && (SkillPoint != 0)) goto L_SkpErr;
		mes "[Jobra]";
		mes "There you are, " + Strcharinfo(0) + " the Professor!";
	jobchange 40;
	set cong,1;
	close;

L_Hunter2:
		mes "[Jobra]";
		mes "Ready to become Sniper?";
	next;
	menu "Yes",-,"No",L_No;
	if(JobLevel < 40) goto L_JlvErr;
	if(($JobraNoSkillPoints == 1) && (SkillPoint != 0)) goto L_SkpErr;
		mes "[Jobra]";
		mes "There you are, " + Strcharinfo(0) + " the Sniper!";
	jobchange 35;
	set cong,1;
	close;

L_Bard2:
		mes "[Jobra]";
		mes "Ready to become Clown?";
	next;
	menu "Yes",-,"No",L_No;
	if(JobLevel < 40) goto L_JlvErr;
	if(($JobraNoSkillPoints == 1) && (SkillPoint != 0)) goto L_SkpErr;
		mes "[Jobra]";
		mes "There you are, " + Strcharinfo(0) + " the Clown!";
	jobchange 43;
	set cong,1;
	close;

L_Dancer2:
		mes "[Jobra]";
		mes "Ready to become Gypsy?";
	next;
	menu "Yes",-,"No",L_No;
	if(JobLevel < 40) goto L_JlvErr;
	if(($JobraNoSkillPoints == 1) && (SkillPoint != 0)) goto L_SkpErr;
		mes "[Jobra]";
		mes "There you are, " + Strcharinfo(0) + " the Gypsy!";
	jobchange 44;
	set cong,1;
	close;

L_Priest2:
		mes "[Jobra]";
		mes "Ready to become High Priest?";
	next;
	menu "Yes",-,"No",L_No;
	if(JobLevel < 40) goto L_JlvErr;
	if(($JobraNoSkillPoints == 1) && (SkillPoint != 0)) goto L_SkpErr;
		mes "[Jobra]";
		mes "There you are, " + Strcharinfo(0) + " the High Priest!";
	jobchange 32;
	set cong,1;
	close;

L_Monk2:
		mes "[Jobra]";
		mes "Ready to become Champion?";
	next;
	menu "Yes",-,"No",L_No;
	if(JobLevel < 40) goto L_JlvErr;
	if(($JobraNoSkillPoints == 1) && (SkillPoint != 0)) goto L_SkpErr;
		mes "[Jobra]";
		mes "There you are, " + Strcharinfo(0) + " the Champion!";
	jobchange 39;
	set cong,1;
	close;

L_Blacksmith2:
		mes "[Jobra]";
		mes "Ready to become Whitesmith?";
	next;
	menu "Yes",-,"No",L_No;
	if(JobLevel < 40) goto L_JlvErr;
	if(($JobraNoSkillPoints == 1) && (SkillPoint != 0)) goto L_SkpErr;
		mes "[Jobra]";
		mes "There you are, " + Strcharinfo(0) + " the Whitesmith!";
	jobchange 34;
	set cong,1;
	close;

L_Alchemist2:
		mes "[Jobra]";
		mes "Ready to become Creator?";
	next;
	menu "Yes",-,"No",L_No;
	if(JobLevel < 40) goto L_JlvErr;
	if(($JobraNoSkillPoints == 1) && (SkillPoint != 0)) goto L_SkpErr;
		mes "[Jobra]";
		mes "There you are, " + Strcharinfo(0) + " the Creator!";
	jobchange 42;
	set cong,1;
	close;

L_Assassin2:
		mes "[Jobra]";
		mes "Ready to become Assassin Cross?";
	next;
	menu "Yes",-,"No",L_No;
	if(JobLevel < 40) goto L_JlvErr;
	if(($JobraNoSkillPoints == 1) && (SkillPoint != 0)) goto L_SkpErr;
		mes "[Jobra]";
		mes "There you are, " + Strcharinfo(0) + " the Assassin Cross!";
	jobchange 36;
	set cong,1;
	close;

L_Rouge2:
		mes "[Jobra]";
		mes "Ready to become Stalker?";
	next;
	menu "Yes",-,"No",L_No;
	if(JobLevel < 40) goto L_JlvErr;
	if(($JobraNoSkillPoints == 1) && (SkillPoint != 0)) goto L_SkpErr;
		mes "[Jobra]";
		mes "There you are, " + Strcharinfo(0) + " the Stalker!";
	jobchange 41;
	set cong,1;
	close;

L_Congr:
		mes "[Jobra]";
		mes "Congratumaltions, " + Strcharinfo(0) + "! You are teh winnar! " + Getgmlevel;
	close;

L_JlvErr:
		mes "[Jobra]";
		mes "Your job level isn't high enough.";
	close;

L_BlvErr:
		mes "[Jobra]";
		mes "Your base level isn't high enough.";
	close;

L_lvErr2:
		mes "[Jobra]";
		mes "You need to be base level 99 and job level 50 to become the advanced classes.";
	close;

L_SkpErr:
		mes "[Jobra]";
		mes "You need to spend your skill points.";
	close;
}

    Source: geocities.com/teh_face_x_o