//===== eAthena Script =======================================
//= eAthena Jobchanger AKA Job Master
//===== By: ==================================================
//= eAthena Dev Team [LunatikBunnie] (Editted by Amada`)
//===== Current Version: =====================================
//= 1.4
//===== 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.
//= 1.3 Added TK/SL/SG, thanks to Haplo. Fixed minor bugs [Lupus]
//= script leaves grabage variable: 'lastJob'
//= 1.4 Added NJ/GS, changed all job numbers to Job_* constants.
//= All credits go to pxxx [Skotlex]
//============================================================
// ------------------------------ Start ------------------------------
prontera.gat,153,193,6 script Job Master 123,{
// 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 ==Job_Knight) || (lastJob ==Job_Crusader))) goto L_cHsword;
if((Class ==Job_Novice_High) && ((lastJob ==Job_Wizard) || (lastJob ==Job_Sage))) goto L_cHmage;
if((Class ==Job_Novice_High) && ((lastJob ==Job_Hunter) || (lastJob ==Job_Bard) || (lastJob ==Job_Dancer))) goto L_cHarcher;
if((Class ==Job_Novice_High) && ((lastJob ==Job_Priest) || (lastJob ==Job_Monk))) goto L_cHacolyte;
if((Class ==Job_Novice_High) && ((lastJob ==Job_Blacksmith) || (lastJob ==Job_Alchem))) goto L_cHmerchant;
if((Class ==Job_Novice_High) && ((lastJob ==Job_Assassin) || (lastJob ==Job_Rogue))) goto L_cHthief;
if(JobLevel <@MinimumJB) goto L_notEn;
if(Class ==Job_Swordman) goto L_iSword;
if(Class ==Job_Mage) goto L_iMage;
if(Class ==Job_Archer) goto L_iArcher;
if(Class ==Job_Acolyte) goto L_iAcolyte;
if(Class ==Job_Merchant) goto L_iMerchant;
if(Class ==Job_Thief) goto L_iThief;
if(Class ==Job_Taekwon) goto L_iTaekwon;
if(checkfalcon(0) || checkcart(0) || checkriding(0)) goto L_remove;
if(lastJob ==Job_Knight) goto L_iKnight;
if(lastJob ==Job_Priest) goto L_iPriest;
if(lastJob ==Job_Wizard) goto L_iWizard;
if(lastJob ==Job_Blacksmith) goto L_iBlacksmith;
if(lastJob ==Job_Hunter) goto L_iHunter;
if(lastJob ==Job_Assassin) goto L_iAssassin;
if(lastJob ==Job_Crusader) goto L_iCrusader;
if(lastJob ==Job_Monk) goto L_iMonk;
if(lastJob ==Job_Sage) goto L_iSage;
if(lastJob ==Job_Rogue) goto L_iRogue;
if(lastJob ==Job_Alchem) goto L_iAlchemist;
if(lastJob ==Job_Bard) goto L_iBard;
if(lastJob ==Job_Dancer) goto L_iDancer;
if((Class >=Job_Knight) && (Class <=Job_Crusader2)) 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,"Taekwon",L_taekwon,"Gunslinger",L_gun,"Ninja",L_ninja;
// Change to Swordsman
L_sword:
mes "Are you SURE?";
menu "No",L_quit,"Yes",-;
jobchange Job_Swordman;
if(@GivePlat) goto L_GivePlat;
close;
// Change to Mage
L_mage:
mes "Are you SURE?";
menu "No",L_quit,"Yes",-;
jobchange Job_Mage;
if(@GivePlat) goto L_GivePlat;
close;
// Change to Archer
L_archer:
mes "Are you SURE?";
menu "No",L_quit,"Yes",-;
jobchange Job_Archer;
if(@GivePlat) goto L_GivePlat;
close;
// Change to Acolyte
L_acolyte:
mes "Are you SURE?";
menu "No",L_quit,"Yes",-;
jobchange Job_Acolyte;
if(@GivePlat) goto L_GivePlat;
close;
// Change to Merchant
L_merchant:
mes "Are you SURE?";
menu "No",L_quit,"Yes",-;
jobchange Job_Merchant;
if(@GivePlat) goto L_GivePlat;
close;
// Change to Thief
L_thief:
mes "Are you SURE?";
menu "No",L_quit,"Yes",-;
jobchange Job_Thief;
if(@GivePlat) goto L_GivePlat;
close;
// Change to Super Novice
L_superN:
mes "Are you SURE?";
menu "No",L_quit,"Yes",-;
if(BaseLevel<@SupNovM) goto L_notSup;
jobchange Job_SuperNovice;
if(@GivePlat) goto L_GivePlat;
close;
// Change to Taekwon
L_taekwon:
mes "Are you SURE?";
menu "No",L_quit,"Yes",-;
jobchange Job_Taekwon;
callfunc "F_ClearJobVar";
close;
// Change to Gunslinger
L_gun:
mes "Are you SURE?";
menu "No",L_quit,"Yes",-;
jobchange Job_Gunslinger;
callfunc "F_ClearJobVar";
close;
// Change to Ninja
L_ninja:
mes "Are you SURE?";
menu "No",L_quit,"Yes",-;
jobchange Job_Ninja;
callfunc "F_ClearJobVar";
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 Job_Knight;
if(@GivePlat) goto L_GivePlat;
close;
L_crusader:
mes "Are you SURE?";
menu "No",L_quit,"Yes",-;
jobchange Job_Crusader;
if(@GivePlat) 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 Job_Wizard;
if(@GivePlat) goto L_GivePlat;
close;
L_sage:
mes "Are you SURE?";
menu "No",L_quit,"Yes",-;
jobchange Job_Sage;
if(@GivePlat) 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 Job_Hunter;
if(@GivePlat) 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 Job_Bard;
if(@GivePlat) goto L_GivePlat;
close;
L_dancer:
mes "Are you SURE?";
menu "No",L_quit,"Yes",-;
jobchange Job_Dancer;
if(@GivePlat) 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 Job_Priest;
if(@GivePlat) goto L_GivePlat;
close;
L_monk:
mes "Are you SURE?";
menu "No",L_quit,"Yes",-;
jobchange Job_Monk;
if(@GivePlat) 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 Job_Blacksmith;
if(@GivePlat) goto L_GivePlat;
close;
L_alchemist:
mes "Are you SURE?";
menu "No",L_quit,"Yes",-;
jobchange Job_Alchem;
if(@GivePlat) 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 Job_Assassin;
if(@GivePlat) goto L_GivePlat;
close;
L_rogue:
mes "Are you SURE?";
menu "No",L_quit,"Yes",-;
jobchange Job_Rogue;
if(@GivePlat) goto L_GivePlat;
close;
// Change to Star Gladiator/Soul Linker
L_iTaekwon:
mes "^ff0000[Job Master]^000000";
mes "Welcome, please select the job you wish to change into";
menu "Star Gladiator",L_SG,"Soul Linker",L_SL;
L_SG:
mes "Are you SURE?";
menu "No",L_quit,"Yes",-;
jobchange Job_Star_Gladiator;
callfunc "F_ClearJobVar";
close;
L_SL:
mes "Are you SURE?";
menu "No",L_quit,"Yes",-;
jobchange Job_Soul_Linker;
callfunc "F_ClearJobVar";
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);
if(lastJob == Job_Knight2) set lastJob,Job_Knight;
if(lastJob == Job_Crusader2) set lastJob,Job_Crusader;
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_Swordman_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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) goto L_GivePlat;
close;
// Giving Platinum Skills
L_GivePlat:
if (BaseClass==Job_SuperNovice) goto L_sSuperN;
if (BaseClass==Job_Swordman) goto L_sSword;
if (BaseClass==Job_Mage) goto L_sMage;
if (BaseClass==Job_Archer) goto L_sArcher;
if (BaseClass==Job_Acolyte) goto L_sAcolyte;
if (BaseClass==Job_Merchant) goto L_sMerchant;
if (BaseClass==Job_Thief) goto L_sThief;
close;
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 -------------------