summaryrefslogtreecommitdiff
path: root/npc/custom/jobs/jobmaster.txt
diff options
context:
space:
mode:
Diffstat (limited to 'npc/custom/jobs/jobmaster.txt')
-rw-r--r--npc/custom/jobs/jobmaster.txt499
1 files changed, 499 insertions, 0 deletions
diff --git a/npc/custom/jobs/jobmaster.txt b/npc/custom/jobs/jobmaster.txt
new file mode 100644
index 000000000..8dc3d01fc
--- /dev/null
+++ b/npc/custom/jobs/jobmaster.txt
@@ -0,0 +1,499 @@
+//===== eAthena Script =======================================
+//= eAthena Jobchanger AKA Job Master
+//===== By: ==================================================
+//= eAthena Dev Team [LunatikBunnie] (Editted by Amada`)
+//===== Current Version: =====================================
+//= 1.3
+//===== 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'
+//============================================================
+
+// ------------------------------ 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 ==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_iTaekwon;
+ if(checkfalcon(0) || checkcart(0) || checkriding(0)) 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,"Taekwon",L_taekwon;
+// Change to Swordsman
+ L_sword:
+ mes "Are you SURE?";
+ menu "No",L_quit,"Yes",-;
+ jobchange 1;
+ if(@GivePlat) goto L_GivePlat;
+ close;
+// Change to Mage
+ L_mage:
+ mes "Are you SURE?";
+ menu "No",L_quit,"Yes",-;
+ jobchange 2;
+ if(@GivePlat) goto L_GivePlat;
+ close;
+// Change to Archer
+ L_archer:
+ mes "Are you SURE?";
+ menu "No",L_quit,"Yes",-;
+ jobchange 3;
+ if(@GivePlat) goto L_GivePlat;
+ close;
+// Change to Acolyte
+ L_acolyte:
+ mes "Are you SURE?";
+ menu "No",L_quit,"Yes",-;
+ jobchange 4;
+ if(@GivePlat) goto L_GivePlat;
+ close;
+// Change to Merchant
+ L_merchant:
+ mes "Are you SURE?";
+ menu "No",L_quit,"Yes",-;
+ jobchange 5;
+ if(@GivePlat) goto L_GivePlat;
+ close;
+// Change to Thief
+ L_thief:
+ mes "Are you SURE?";
+ menu "No",L_quit,"Yes",-;
+ jobchange 6;
+ 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 23;
+ 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 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) goto L_GivePlat;
+ close;
+ L_crusader:
+ mes "Are you SURE?";
+ menu "No",L_quit,"Yes",-;
+ jobchange 14;
+ 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 9;
+ if(@GivePlat) goto L_GivePlat;
+ close;
+ L_sage:
+ mes "Are you SURE?";
+ menu "No",L_quit,"Yes",-;
+ jobchange 16;
+ 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 11;
+ 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 19;
+ if(@GivePlat) goto L_GivePlat;
+ close;
+ L_dancer:
+ mes "Are you SURE?";
+ menu "No",L_quit,"Yes",-;
+ jobchange 20;
+ 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 8;
+ if(@GivePlat) goto L_GivePlat;
+ close;
+ L_monk:
+ mes "Are you SURE?";
+ menu "No",L_quit,"Yes",-;
+ jobchange 15;
+ 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 10;
+ if(@GivePlat) goto L_GivePlat;
+ close;
+ L_alchemist:
+ mes "Are you SURE?";
+ menu "No",L_quit,"Yes",-;
+ jobchange 18;
+ 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 12;
+ if(@GivePlat) goto L_GivePlat;
+ close;
+ L_rogue:
+ mes "Are you SURE?";
+ menu "No",L_quit,"Yes",-;
+ jobchange 17;
+ 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 24;
+ 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 25;
+ 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 26;
+ 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 27;
+ 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 28;
+ 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 29;
+ 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 30;
+ 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 31;
+ 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 38;
+ 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 32;
+ 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 39;
+ 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 34;
+ 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 42;
+ 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 33;
+ 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 40;
+ 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 35;
+ 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 43;
+ 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 44;
+ 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 36;
+ 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 41;
+ if(@GivePlat) 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 -------------------