//===== 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_Dancer)) 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); 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 -------------------