//===== eAthena Script =======================================
//= eAthena Jobchanger AKA Job Master
//===== By: ==================================================
//= eAthena Dev Team [LunatikBunnie] (Editted by Amada`) (editted again by lilaznkilla)
//===== Current Version: =====================================
//= 1.2d
//===== Compatible With: =====================================
//= Any Athena Version
//===== Description: =========================================
//= Changes your job without asking too much
//= For other info, please contact me at Lunatikbunnie@gmail.com 
//= Editted menu to avoid button mashing.
//============================================================

// ------------------------------ Start ------------------------------
prontera.gat,152,192,6	script	Job Master	833,{
// Variable Setup
	set @MinimumJB, 40; //Minimum job level for changing between 2nd and advance Class (Default : 40)
	set @GivePlat, 1; //Give Platinum skills on Jobchange (Default : 1-yes)
	set @SupNovM, 45; //Base Level to change into Super Novice (Default : 45)
// Check Jobtype
	if(Upper == 1 && Class >= Job_Lord_Knight) goto L_cantCh;
	if(SkillPoint != 0) goto L_skillUsed;
	if(Class == Job_Novice) goto L_novice;
	if(JobLevel <10) goto L_notEn;
	if((Class ==Job_Novice_High) && ((lastJob ==7) || (lastJob ==14))) goto L_cHsword;
	if((Class ==Job_Novice_High) && ((lastJob ==9) || (lastJob ==16))) goto L_cHmage;
	if((Class ==Job_Novice_High) && ((lastJob ==11) || (lastJob ==19) || (lastJob ==20))) goto L_cHarcher;
	if((Class ==Job_Novice_High) && ((lastJob ==8) || (lastJob ==15))) goto L_cHacolyte;
	if((Class ==Job_Novice_High) && ((lastJob ==10) || (lastJob ==18))) goto L_cHmerchant;
	if((Class ==Job_Novice_High) && ((lastJob ==12) || (lastJob ==17))) goto L_cHthief;
	if(JobLevel <@MinimumJB) goto L_notEn;
	if(Class ==1) goto L_iSword;
	if(Class ==2) goto L_iMage;
	if(Class ==3) goto L_iArcher;
	if(Class ==4) goto L_iAcolyte;
	if(Class ==5) goto L_iMerchant;
	if(Class ==6) goto L_iThief;
	if(Class ==4046) goto L_iTKD;
	if(Class ==24) goto L_GS;
	if(checkfalcon(0) == 1 || checkcart(0) == 1 || checkriding(0) == 1) goto L_remove;
	if(lastJob ==7) goto L_iKnight;
	if(lastJob ==8) goto L_iPriest;
	if(lastJob ==9) goto L_iWizard;
	if(lastJob ==10) goto L_iBlacksmith;
	if(lastJob ==11) goto L_iHunter;
	if(lastJob ==12) goto L_iAssassin;
	if(lastJob ==14) goto L_iCrusader;
	if(lastJob ==15) goto L_iMonk;
	if(lastJob ==16) goto L_iSage;
	if(lastJob ==17) goto L_iRogue;
	if(lastJob ==18) goto L_iAlchemist;
	if(lastJob ==19) goto L_iBard;
	if(lastJob ==20) goto L_iDancer;
	if((Class >=7) && (Class <=20)) goto L_rebirth;
	close;

// Novice
	L_novice:
		skill 142,1,0;
		skill 143,1,0;
		if(JobLevel<10) goto L_notEn;
		mes "^ff0000[Job Master]^000000";
		mes "Welcome, please select the job you wish to change into";
		menu "Swordsman",L_sword,"Mage",L_mage,"Archer",L_archer,"Acolyte",L_acolyte,"Merchant",L_merchant,"Thief",L_thief,"Super Novice",L_superN,"Learn Taekwondo",L_TKD,"Gunslinger",L_GS;
// Change to Swordsman
			L_sword:
				mes "Are you SURE you want to become a ^ff0000Swordsman^000000?";
				menu "No",L_quit,"Yes",-;
				jobchange 1;
				if(GivePlat ==1) goto L_givePlat;
				close;
// Change to Gunslinger
			L_GS:
				mes "Are you SURE you want to be a ^ff0000Gunslinger^000000?";
				menu "No",L_quit,"Yes",-;
				jobchange 24;
				close;
// Change to Mage
			L_mage:
				mes "Are you SURE you want to become a ^ff0000Mage^000000?";
				menu "No",L_quit,"Yes",-;
				jobchange 2;
				if(GivePlat ==1) goto L_givePlat;
				close;
// Change to Archer
			L_archer:
				mes "Are you SURE you want to become a ^ff0000Archer^000000?";
				menu "No",L_quit,"Yes",-;
				jobchange 3;
				if(GivePlat ==1) goto L_givePlat;
				close;
// Change to Acolyte
			L_acolyte:
				mes "Are you SURE you want to become a ^ff0000Acolyte^000000?";
				menu "No",L_quit,"Yes",-;
				jobchange 4;
				if(GivePlat ==1) goto L_givePlat;
				close;
// Change to Merchant
			L_merchant:
				mes "Are you SURE you want to become a ^ff0000Merchant^000000?";
				menu "No",L_quit,"Yes",-;
				jobchange 5;
				if(GivePlat ==1) goto L_givePlat;
				close;
// Change to Thief
			L_thief:
				mes "Are you SURE you want to become a ^ff0000Thief^000000?";
				menu "No",L_quit,"Yes",-;
				jobchange 6;
				if(GivePlat ==1) goto L_givePlat;
				close;
// Change to Super Novice
			L_superN:
				mes "Are you SURE you want to become a ^ff0000Super Novice^000000?";
				menu "No",L_quit,"Yes",-;
				if(BaseLevel<@SupNovM) goto L_notSup;
				jobchange 23;
				if(GivePlat ==1) goto L_givePlat;
				close;

//Change to Taekwondo
			L_TKD:
				mes "Are you SURE you want to learn a ^ff0000Taekwondo^000000?";
				menu "No",L_quit,"Yes",-;
				jobchange 4046;
				close;

// Change to Knight/Crusader
	L_iSword:
		mes "^ff0000[Job Master]^000000";
		mes "Welcome, please select the job you wish to change into";
		menu "Knight",L_knight,"Crusader",L_crusader;
			L_knight:
				mes "Are you SURE?";
				menu "No",L_quit,"Yes",-;
				jobchange 7;
				if(GivePlat ==1) goto L_givePlat;
				close;
			L_crusader:
				mes "Are you SURE?";
				menu "No",L_quit,"Yes",-;
				jobchange 14;
				if(GivePlat ==1) goto L_givePlat;
				close;
// Change to Wizard/Sage
	L_iMage:
		mes "^ff0000[Job Master]^000000";
		mes "Welcome, please select the job you wish to change into";
		menu "Wizard",L_wizard,"Sage",L_sage;
			L_wizard:
				mes "Are you SURE?";
				menu "No",L_quit,"Yes",-;
				jobchange 9;
				if(GivePlat ==1) goto L_givePlat;
				close;
			L_sage:
				mes "Are you SURE?";
				menu "No",L_quit,"Yes",-;
				jobchange 16;
				if(GivePlat ==1) goto L_givePlat;
				close;
// Change to Hunter/Bard/Dancer
	L_iArcher:
		mes "^ff0000[Job Master]^000000";
		mes "Welcome, please select the job you wish to change into";
		menu "Hunter",L_hunter,"Bard/Dancer",L_bandd;
			L_hunter:
				mes "Are you SURE?";
				menu "No",L_quit,"Yes",-;
				jobchange 11;
				if(GivePlat ==1) goto L_givePlat;
				close;
			L_bandd:
				if(sex==0) goto L_dancer;
				if(sex==1) goto L_bard;
				L_bard:
					mes "Are you SURE?";
					menu "No",L_quit,"Yes",-;
					jobchange 19;
					if(GivePlat ==1) goto L_givePlat;
					close;
				L_dancer:
					mes "Are you SURE?";
					menu "No",L_quit,"Yes",-;
					jobchange 20;
					if(GivePlat ==1) goto L_givePlat;
					close;
// Change to Priest/Monk
	L_iAcolyte:
		mes "^ff0000[Job Master]^000000";
		mes "Welcome, please select the job you wish to change into";
		menu "Priest",L_priest,"Monk",L_monk;
			L_priest:
				mes "Are you SURE?";
				menu "No",L_quit,"Yes",-;
				jobchange 8;
				if(GivePlat ==1) goto L_givePlat;
				close;
			L_monk:
				mes "Are you SURE?";
				menu "No",L_quit,"Yes",-;
				jobchange 15;
				if(GivePlat ==1) goto L_givePlat;
				close;
// Change to Blacksmith/Alchemist
	L_iMerchant:
		mes "^ff0000[Job Master]^000000";
		mes "Welcome, please select the job you wish to change into";
		menu "Blacksmith",L_blacksmith,"Alchemist",L_alchemist;
			L_blacksmith:
				mes "Are you SURE?";
				menu "No",L_quit,"Yes",-;
				jobchange 10;
				if(GivePlat ==1) goto L_givePlat;
				close;
			L_alchemist:
				mes "Are you SURE?";
				menu "No",L_quit,"Yes",-;
				jobchange 18;
				if(GivePlat ==1) goto L_givePlat;
				close;
// Change to Assassin/Rogue
	L_iThief:
		mes "^ff0000[Job Master]^000000";
		mes "Welcome, please select the job you wish to change into";
		menu "Assassin",L_assassin,"Rogue",L_rogue;
			L_assassin:
				mes "Are you SURE?";
				menu "No",L_quit,"Yes",-;
				jobchange 12;
				if(GivePlat ==1) goto L_givePlat;
				close;
			L_rogue:
				mes "Are you SURE?";
				menu "No",L_quit,"Yes",-;
				jobchange 17;
				if(GivePlat ==1) goto L_givePlat;
				close;
// Change to Star Knight/Soul Linker
		L_iTKD:
			if(JobLevel <40) goto L_NRTKD;
				mes "^ff0000[Job Master]^000000";
    				mes "Welcome, please select the job you wish to change into";
    				menu "Soul linker",L_SL,"Star Knight",L_SK;
    		L_SL:
    			mes "Do want to become a Soul linker?";
    			menu "No",L_quit,"Yes",-;
    			jobchange 4049;
    			close;
    		L_SK:
    			mes "Do yo want to be a Star knight?";
    			menu "No",L_quit,"Yes",-;
    			jobchange 4047;
    			close;
    		L_NRTKD:
    			mes "You are not ready to learn the secret arts of taekwondo";
    			next;
    			mes "Come back here when you are stronger";
    			close;
// Rebirth
	L_rebirth:
		mes "^ff0000[Job Master]^000000";
		mes "Do you want to reborn?";
		next;
		mes "Are you SURE?";
		menu "No",L_quit,"Yes",-;
		if ((BaseLevel < 99) || (JobLevel < 50)) goto L_cantCh;
		set lastJob, readparam(19);
		jobchange Job_Novice_High;
		resetlvl(1);
		skill 142,1,0;
		skill 143,1,0;
		mes "^ff0000[Job Master]^000000";
		mes "You are now reborn";
		mes "Please come again soon";
		close;
	L_cHsword:
		mes "^ff0000[Job Master]^000000";
		mes "Do you want to change into a High Swordsman?";
		next;
		menu "No",L_quit,"Yes",-;
		jobchange Job_swordsman_High;
		mes "^ff0000[Job Master]^000000";
		mes "Thank you, please come again soon!";
		close;
	L_cHmage:
		mes "^ff0000[Job Master]^000000";
		mes "Do you want to change into a High Mage?";
		next;
		menu "No",L_quit,"Yes",-;
		jobchange Job_mage_High;
		mes "^ff0000[Job Master]^000000";
		mes "Thank you, please come again soon!";
		close;
	L_cHarcher:
		mes "^ff0000[Job Master]^000000";
		mes "Do you want to change into a High Archer?";
		next;
		menu "No",L_quit,"Yes",-;
		jobchange Job_archer_High;
		mes "^ff0000[Job Master]^000000";
		mes "Thank you, please come again soon!";
		close;
	L_cHacolyte:
		mes "^ff0000[Job Master]^000000";
		mes "Do you want to change into a High Acolyte?";
		next;
		menu "No",L_quit,"Yes",-;
		jobchange Job_acolyte_High;
		mes "^ff0000[Job Master]^000000";
		mes "Thank you, please come again soon!";
		close;
	L_cHmerchant:
		mes "^ff0000[Job Master]^000000";
		mes "Do you want to change into a High Merchant?";
		next;
		menu "No",L_quit,"Yes",-;
		jobchange Job_merchant_High;
		mes "^ff0000[Job Master]^000000";
		mes "Thank you, please come again soon!";
		close;
	L_cHthief:
		mes "^ff0000[Job Master]^000000";
		mes "Do you want to change into a High Thief?";
		next;
		menu "No",L_quit,"Yes",-;
		jobchange Job_thief_High;
		mes "^ff0000[Job Master]^000000";
		mes "Thank you, please come again soon!";
		close;	
// Change to Lord Knight
	L_iKnight:
		mes "^ff0000[Job Master]^000000";
		mes "Do you want to change into a Lord Knight?";
		menu "No",L_quit,"Yes",-;
			jobchange Job_Lord_Knight;
			if(GivePlat ==1) goto L_givePlat;
			close;
// Change to Paladin
	L_iCrusader:
		mes "^ff0000[Job Master]^000000";
		mes "Do you want to change into a Paladin?";
		menu "No",L_quit,"Yes",-;
			jobchange Job_Paladin;
			if(GivePlat ==1) goto L_givePlat;
			close;
// Change to High Priest
	L_iPriest:
		mes "^ff0000[Job Master]^000000";
		mes "Do you want to change into a High Priest?";
		menu "No",L_quit,"Yes",-;
			jobchange Job_High_Priest;
			if(GivePlat ==1) goto L_givePlat;
			close;
// Change to Champion
	L_iMonk:
		mes "^ff0000[Job Master]^000000";
		mes "Do you want to change into a Champion?";
		menu "No",L_quit,"Yes",-;
			jobchange Job_Champion;
			if(GivePlat ==1) goto L_givePlat;
			close;
// Change to Whitesmith
	L_iBlacksmith:
		mes "^ff0000[Job Master]^000000";
		mes "Do you want to change into a Whitesmith?";
		menu "No",L_quit,"Yes",-;
			jobchange Job_Whitesmith;
			if(GivePlat ==1) goto L_givePlat;
			close;
// Change to Creator
	L_iAlchemist:
		mes "^ff0000[Job Master]^000000";
		mes "Do you want to change into a Creator?";
		menu "No",L_quit,"Yes",-;
			jobchange Job_Creator;
			if(GivePlat ==1) goto L_givePlat;
			close;
// Change to High Wizard
	L_iWizard:
		mes "^ff0000[Job Master]^000000";
		mes "Do you want to change into a High Wizard?";
		menu "No",L_quit,"Yes",-;
			jobchange Job_High_Wizard;
			if(GivePlat ==1) goto L_givePlat;
			close;
// Change to Professor
	L_iSage:
		mes "^ff0000[Job Master]^000000";
		mes "Do you want to change into a Professor?";
		menu "No",L_quit,"Yes",-;
			jobchange Job_Professor;
			if(GivePlat ==1) goto L_givePlat;
			close;
// Change to Sniper
	L_iHunter:
		mes "^ff0000[Job Master]^000000";
		mes "Do you want to change into a Sniper?";
		menu "No",L_quit,"Yes",-;
			jobchange Job_Sniper;
			if(GivePlat ==1) goto L_givePlat;
			close;
// Change to Clown
	L_iBard:
		mes "^ff0000[Job Master]^000000";
		mes "Do you want to change into a Clown?";
		menu "No",L_quit,"Yes",-;
			jobchange Job_Clown;
			if(GivePlat ==1) goto L_givePlat;
			close;
// Change to Gypsy
	L_iDancer:
		mes "^ff0000[Job Master]^000000";
		mes "Do you want to change into a Gypsy?";
		menu "No",L_quit,"Yes",-;
			jobchange Job_Gypsy;
			if(GivePlat ==1) goto L_givePlat;
			close;
// Change to Assassin Cross
	L_iAssassin:
		mes "^ff0000[Job Master]^000000";
		mes "Do you want to change into an Assassin Cross?";
		menu "No",L_quit,"Yes",-;
			jobchange Job_Assassin_Cross;
			if(GivePlat ==1) goto L_givePlat;
			close;
// Change to Stalker
	L_iRogue:
		mes "^ff0000[Job Master]^000000";
		mes "Do you want to change into a Stalker?";
		menu "No",L_quit,"Yes",-;
			jobchange Job_Stalker;
			if(GivePlat ==1) goto L_givePlat;
			close;
// Giving Platinum Skills
	L_givePlat:
		if (BaseJob==Job_SuperNovice) goto L_sSuperN;
		if ((Class==Job_Swordman) || (Class==7) || (Class==13) || (Class==14)|| (Class==21) || (Class==4002) || (Class==4008)) goto L_sSword;
		if ((Class==Job_Mage) || (Class==9) || (Class==16) || (Class==4003) || (Class==4010) || (Class==4017)) goto L_sMage;
		if ((Class==Job_Archer) || (Class==11) || (Class==19) || (Class==20) || (Class==4004) || (Class==4012) || (Class==4020) || (Class==4021)) goto L_sArcher;
		if ((Class==Job_Acolyte) || (Class==8) || (Class==15) || (Class==50) || (Class==54) || (Class==61) || (Class==4005) || (Class==4009) || (Class==4016)) goto L_sAcolyte;
		if ((Class==Job_Merchant) || (Class==10) || (Class==18) || (Class==51) || (Class==56) || (Class==64) || (Class==4006) || (Class==4011) || (Class==4019)) goto L_sMerchant;
		if ((Class==Job_Thief) || (Class==12) || (Class==17) || (Class==52) || (Class==58) || (Class==63) || (Class==4007) || (Class==4013) || (Class==4018)) goto L_sThief;
		L_sSuperN:
			skill 142,1,0;
			close;
		L_sSword:
			skill 142,1,0;
			skill 144,1,0;
			skill 145,1,0;
			skill 146,1,0;
		L_sMage:
			skill 142,1,0;
			skill 157,1,0;
			close;
		L_sArcher:
			skill 142,1,0;
			skill 147,1,0;
			skill 148,1,0;
			close;
		L_sAcolyte:
			skill 142,1,0;
			skill 156,1,0;
			close;
		L_sMerchant:
			skill 142,1,0;
			skill 153,1,0;
			skill 154,1,0;
			skill 155,1,0;
			close;
		L_sThief:
			skill 142,1,0;
			skill 149,1,0;
			skill 150,1,0;
			skill 151,1,0;
			skill 152,1,0;
			close;
	L_quit:
		close;
// Errors
	L_cantCh:
		mes "^ff0000[Job Master]^000000";
		mes "I'm sorry, you do not meet the requirements to change";
		mes "Please come again soon!";
		close;
	L_skillUsed:
		mes "^ff0000[Job Master]^000000";
		mes "I'm sorry, please use up all your skill points before changing jobs";
		mes "Please come again soon!";
		close;
	L_notEn:
		mes "^ff0000[Job Master]^000000";
		mes "I'm sorry, you do not seem to have enough Job Levels";
		mes "Please come again soon!";
		close;
	L_notSup:
		mes "^ff0000[Job Master]^000000";
		mes "I'm sorry, you do not seem to have enough Base Levels";
		mes "Please come again soon!";
		close;
	L_remove:
		mes "^ff0000[Job Master]^000000";
		mes "Please remove your cart,falcon or peco";
		mes "Please come again soon!";
		close;
}
// ------------------------------ End -------------------
