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.txt530
1 files changed, 265 insertions, 265 deletions
diff --git a/npc/custom/jobs/jobmaster.txt b/npc/custom/jobs/jobmaster.txt
index c929d4894..a8c147f11 100644
--- a/npc/custom/jobs/jobmaster.txt
+++ b/npc/custom/jobs/jobmaster.txt
@@ -1,265 +1,265 @@
-//===== eAthena Script =======================================
-//= eAthena Jobchanger AKA Job Master
-//===== By: ==================================================
-//= eAthena Dev Team [Ori:LunatikBunnie] [Cur:Lance]
-//===== Current Version: =====================================
-//= 1.5
-//===== Compatible With: =====================================
-//= eAthena SVN Trunk 6674
-//===== 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]
-//= 1.5 Rewrite everything from scratch. [Lance]
-//============================================================
-prontera.gat,153,193,6 script Job Master 123,{
- mes "^ff0000[Job Master]^000000";
- if(Upper == 1 && Class >= Job_Lord_Knight) goto L_noReq;
- if(SkillPoint != 0){
- mes "I'm sorry, please use up all your skill points before changing jobs";
- mes "Please come again soon!";
- close;
- }
- if(JobLevel < 10) goto L_LvError;
- switch(Class){
- case Job_Novice_High:
- case Job_Baby:
- case Job_Novice:
- skill 142,1,0;
- skill 143,1,0;
- mes "Welcome, please select the job you wish to change into";
- if(lastJob != 0 && Class == Job_Novice_High){
- switch(lastJob){
- case Job_Knight:
- case Job_Crusader:
- set @target_job, Job_Swordman_High;
- break;
- case Job_Monk:
- case Job_Priest:
- set @target_job, Job_Acolyte_High;
- break;
- case Job_Alchem:
- case Job_Blacksmith:
- set @target_job, Job_Merchant_High;
- break;
- case Job_Rogue:
- case Job_Assassin:
- set @target_job, Job_Thief_High;
- break;
- case Job_Wizard:
- case Job_Sage:
- set @target_job, Job_Mage_High;
- break;
- case Job_Hunter:
- case Job_Bard:
- case Job_Dancer:
- set @target_job, Job_Archer_High;
- break;
- }
- } else {
- switch(select("Swordsman","Mage","Archer","Acolyte","Merchant","Thief",
- "Super Novice","Taekwon","Gunslinger","Ninja")){
- case 7:
- if(Class == Job_Novice_High) goto L_noReq;
- if($@JC_SupNovM > BaseLevel) goto L_BvError;
- set @target_job, Job_SuperNovice;
- break;
- case 8:
- if(Class == Job_Novice_High) goto L_noReq;
- if(Upper == 2) goto L_noReq;
- set @target_job, Job_Taekwon;
- break;
- case 9:
- case 10:
- if(Class == Job_Novice_High) goto L_noReq;
- set @target_job, @menu + 15;
- break;
- default:
- set @target_job, @menu;
- if(Class == Job_Novice_High) set @target_job, @target_job + 4001;
- break;
- }
- }
- mes "Are you sure you want to change to " + callfunc("getJobName",@target_job) + "?";
- if(select("No","Yes") == 2){
- callfunc "Job_Change", @target_job;
- if(@target_job == Job_Gunsliger || @target_job == Job_Ninja || @target_job == Job_Taekwon) {
- callfunc "F_ClearJobVar";
- } else {
- if($@JC_Plat) goto L_GivePlat;
- }
- }
- close;
- break;
- default:
- if(JobLevel < $@JC_MinimumJB) goto L_LvError;
- deletearray @job_opt, getarraysize(@job_opt);
- if(Class < Job_Knight || Class == Job_Taekwon || (Class > Job_Baby && Class < Job_Baby_Knight) || (Class > Job_Novice_High && Class < Job_Lord_Knight)){
- if(lastJob != 0){
- set @target_job, lastJob + 4001;
- } else {
- switch(Class){
- case Job_Swordman_High:
- case Job_Baby_Swordman:
- case Job_Swordman:
- set @job_opt[0], Job_Knight;
- set @job_opt[1], Job_Crusader;
- break;
- case Job_Mage_High:
- case Job_Baby_Mage:
- case Job_Mage:
- set @job_opt[0], Job_Wizard;
- set @job_opt[1], Job_Sage;
- break;
- case Job_Archer_High:
- case Job_Baby_Archer:
- case Job_Archer:
- set @job_opt[0], Job_Hunter;
- if(Sex == 0)
- set @job_opt[1], Job_Dancer;
- else
- set @job_opt[1], Job_Bard;
- break;
- case Job_Acolyte_High:
- case Job_Baby_Acolyte:
- case Job_Acolyte:
- set @job_opt[0], Job_Priest;
- set @job_opt[1], Job_Monk;
- break;
- case Job_Merchant_High:
- case Job_Baby_Merchant:
- case Job_Merchant:
- set @job_opt[0], Job_Blacksmith;
- set @job_opt[1], Job_Alchem;
- break;
- case Job_Thief_High:
- case Job_Baby_Thief:
- case Job_Thief:
- set @job_opt[0], Job_Assassin;
- set @job_opt[1], Job_Rogue;
- break;
- default:
- set @job_opt[0], Job_Star_Gladiator;
- set @job_opt[1], Job_Soul_Linker;
- break;
- }
- mes "Welcome, please select the job you wish to change into";
- set @target_job, @job_opt[select(callfunc("getJobName",@job_opt[0]), callfunc("getJobName",@job_opt[1]))-1];
- if(Class > Job_Novice_High && Class < Job_Lord_Knight) set @target_job, @target_job + 4001;
- }
- mes "Are you sure you want to change to " + callfunc("getJobName",@target_job) + "?";
- if(select("No","Yes")==2){
- callfunc "Job_Change", @target_job;
- if(@target_job == Job_Star_Gladiator || @target_job == Job_Soul_Linker) {
- callfunc "F_ClearJobVar";
- } else {
- if($@JC_Plat) goto L_GivePlat;
- }
- }
- close;
- }
- if(checkfalcon(0) || checkcart(0) || checkriding(0)) goto L_remove;
- if((Class >=Job_Knight) && (Class <=Job_Crusader2)){
- mes "Do you want to reborn?";
- if(select("Yes","No")==1){
- if(BaseLevel < 99 || JobLevel < 50) goto L_cantCh;
- set lastJob, Class;
- if(Class == Job_Knight2){
- set lastJob, Job_Knight;
- } else {
- if(Class == Job_Crusader2){
- set lastJob, Job_Crusader;
- }
- }
- jobchange Job_Novice_High;
- resetlvl(1);
- skill 142,1,0;
- skill 143,1,0;
- }
- close;
- }
- }
- mes "Looks like something has gone wrong. Please report to the eAthena Development Team about this error.";
- close;
-
-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;
- close;
-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_cantCh:
- mes "I'm sorry, you do not meet the requirements to change";
- mes "Please come again soon!";
- close;
-
-L_LvError:
- mes "I'm sorry, you do not seem to have enough Job Levels";
- mes "Please come again soon!";
- close;
-
-L_BvError:
- mes "I'm sorry, you do not seem to have enough Base Levels";
- mes "Please come again soon!";
- close;
-
-L_noReq:
- mes "I'm sorry, you do not meet the requirements to change";
- mes "Please come again soon!";
- close;
-
-L_remove:
- mes "Please remove your cart,falcon or peco";
- mes "Please come again soon!";
- close;
-
-OnInit:
- // Variable Setup
- set $@JC_MinimumJB, 40; //Minimum job level for changing between 2nd and advance Class (Default : 40)
- set $@JC_Plat, 1; //Give Platinum skills on Jobchange (Default : 1-yes)
- set $@JC_SupNovM, 45; //Base Level to change into Super Novice (Default : 45)
- end;
-}
+//===== eAthena Script =======================================
+//= eAthena Jobchanger AKA Job Master
+//===== By: ==================================================
+//= eAthena Dev Team [Ori:LunatikBunnie] [Cur:Lance]
+//===== Current Version: =====================================
+//= 1.5
+//===== Compatible With: =====================================
+//= eAthena SVN Trunk 6674
+//===== 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]
+//= 1.5 Rewrite everything from scratch. [Lance]
+//============================================================
+prontera.gat,153,193,6 script Job Master 123,{
+ mes "^ff0000[Job Master]^000000";
+ if(Upper == 1 && Class >= Job_Lord_Knight) goto L_noReq;
+ if(SkillPoint != 0){
+ mes "I'm sorry, please use up all your skill points before changing jobs";
+ mes "Please come again soon!";
+ close;
+ }
+ if(JobLevel < 10) goto L_LvError;
+ switch(Class){
+ case Job_Novice_High:
+ case Job_Baby:
+ case Job_Novice:
+ skill 142,1,0;
+ skill 143,1,0;
+ mes "Welcome, please select the job you wish to change into";
+ if(lastJob != 0 && Class == Job_Novice_High){
+ switch(lastJob){
+ case Job_Knight:
+ case Job_Crusader:
+ set @target_job, Job_Swordman_High;
+ break;
+ case Job_Monk:
+ case Job_Priest:
+ set @target_job, Job_Acolyte_High;
+ break;
+ case Job_Alchem:
+ case Job_Blacksmith:
+ set @target_job, Job_Merchant_High;
+ break;
+ case Job_Rogue:
+ case Job_Assassin:
+ set @target_job, Job_Thief_High;
+ break;
+ case Job_Wizard:
+ case Job_Sage:
+ set @target_job, Job_Mage_High;
+ break;
+ case Job_Hunter:
+ case Job_Bard:
+ case Job_Dancer:
+ set @target_job, Job_Archer_High;
+ break;
+ }
+ } else {
+ switch(select("Swordsman","Mage","Archer","Acolyte","Merchant","Thief",
+ "Super Novice","Taekwon","Gunslinger","Ninja")){
+ case 7:
+ if(Class == Job_Novice_High) goto L_noReq;
+ if($@JC_SupNovM > BaseLevel) goto L_BvError;
+ set @target_job, Job_SuperNovice;
+ break;
+ case 8:
+ if(Class == Job_Novice_High) goto L_noReq;
+ if(Upper == 2) goto L_noReq;
+ set @target_job, Job_Taekwon;
+ break;
+ case 9:
+ case 10:
+ if(Class == Job_Novice_High) goto L_noReq;
+ set @target_job, @menu + 15;
+ break;
+ default:
+ set @target_job, @menu;
+ if(Class == Job_Novice_High) set @target_job, @target_job + 4001;
+ break;
+ }
+ }
+ mes "Are you sure you want to change to " + callfunc("getJobName",@target_job) + "?";
+ if(select("No","Yes") == 2){
+ callfunc "Job_Change", @target_job;
+ if(@target_job == Job_Gunsliger || @target_job == Job_Ninja || @target_job == Job_Taekwon) {
+ callfunc "F_ClearJobVar";
+ } else {
+ if($@JC_Plat) goto L_GivePlat;
+ }
+ }
+ close;
+ break;
+ default:
+ if(JobLevel < $@JC_MinimumJB) goto L_LvError;
+ deletearray @job_opt, getarraysize(@job_opt);
+ if(Class < Job_Knight || Class == Job_Taekwon || (Class > Job_Baby && Class < Job_Baby_Knight) || (Class > Job_Novice_High && Class < Job_Lord_Knight)){
+ if(lastJob != 0){
+ set @target_job, lastJob + 4001;
+ } else {
+ switch(Class){
+ case Job_Swordman_High:
+ case Job_Baby_Swordman:
+ case Job_Swordman:
+ set @job_opt[0], Job_Knight;
+ set @job_opt[1], Job_Crusader;
+ break;
+ case Job_Mage_High:
+ case Job_Baby_Mage:
+ case Job_Mage:
+ set @job_opt[0], Job_Wizard;
+ set @job_opt[1], Job_Sage;
+ break;
+ case Job_Archer_High:
+ case Job_Baby_Archer:
+ case Job_Archer:
+ set @job_opt[0], Job_Hunter;
+ if(Sex == 0)
+ set @job_opt[1], Job_Dancer;
+ else
+ set @job_opt[1], Job_Bard;
+ break;
+ case Job_Acolyte_High:
+ case Job_Baby_Acolyte:
+ case Job_Acolyte:
+ set @job_opt[0], Job_Priest;
+ set @job_opt[1], Job_Monk;
+ break;
+ case Job_Merchant_High:
+ case Job_Baby_Merchant:
+ case Job_Merchant:
+ set @job_opt[0], Job_Blacksmith;
+ set @job_opt[1], Job_Alchem;
+ break;
+ case Job_Thief_High:
+ case Job_Baby_Thief:
+ case Job_Thief:
+ set @job_opt[0], Job_Assassin;
+ set @job_opt[1], Job_Rogue;
+ break;
+ default:
+ set @job_opt[0], Job_Star_Gladiator;
+ set @job_opt[1], Job_Soul_Linker;
+ break;
+ }
+ mes "Welcome, please select the job you wish to change into";
+ set @target_job, @job_opt[select(callfunc("getJobName",@job_opt[0]), callfunc("getJobName",@job_opt[1]))-1];
+ if(Class > Job_Novice_High && Class < Job_Lord_Knight) set @target_job, @target_job + 4001;
+ }
+ mes "Are you sure you want to change to " + callfunc("getJobName",@target_job) + "?";
+ if(select("No","Yes")==2){
+ callfunc "Job_Change", @target_job;
+ if(@target_job == Job_Star_Gladiator || @target_job == Job_Soul_Linker) {
+ callfunc "F_ClearJobVar";
+ } else {
+ if($@JC_Plat) goto L_GivePlat;
+ }
+ }
+ close;
+ }
+ if(checkfalcon(0) || checkcart(0) || checkriding(0)) goto L_remove;
+ if((Class >=Job_Knight) && (Class <=Job_Crusader2)){
+ mes "Do you want to reborn?";
+ if(select("Yes","No")==1){
+ if(BaseLevel < 99 || JobLevel < 50) goto L_cantCh;
+ set lastJob, Class;
+ if(Class == Job_Knight2){
+ set lastJob, Job_Knight;
+ } else {
+ if(Class == Job_Crusader2){
+ set lastJob, Job_Crusader;
+ }
+ }
+ jobchange Job_Novice_High;
+ resetlvl(1);
+ skill 142,1,0;
+ skill 143,1,0;
+ }
+ close;
+ }
+ }
+ mes "Looks like something has gone wrong. Please report to the eAthena Development Team about this error.";
+ close;
+
+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;
+ close;
+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_cantCh:
+ mes "I'm sorry, you do not meet the requirements to change";
+ mes "Please come again soon!";
+ close;
+
+L_LvError:
+ mes "I'm sorry, you do not seem to have enough Job Levels";
+ mes "Please come again soon!";
+ close;
+
+L_BvError:
+ mes "I'm sorry, you do not seem to have enough Base Levels";
+ mes "Please come again soon!";
+ close;
+
+L_noReq:
+ mes "I'm sorry, you do not meet the requirements to change";
+ mes "Please come again soon!";
+ close;
+
+L_remove:
+ mes "Please remove your cart,falcon or peco";
+ mes "Please come again soon!";
+ close;
+
+OnInit:
+ // Variable Setup
+ set $@JC_MinimumJB, 40; //Minimum job level for changing between 2nd and advance Class (Default : 40)
+ set $@JC_Plat, 1; //Give Platinum skills on Jobchange (Default : 1-yes)
+ set $@JC_SupNovM, 45; //Base Level to change into Super Novice (Default : 45)
+ end;
+}