diff options
author | brianluau <brianluau@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-06-01 03:40:58 +0000 |
---|---|---|
committer | brianluau <brianluau@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-06-01 03:40:58 +0000 |
commit | 74b92bb34163160e59e24dd6a07c16e30e9743be (patch) | |
tree | 45321838afbcdcf35f91570e2b19ba3e1998b0ce /npc/custom/jobmaster.txt | |
parent | 6979b1d621c2e5c6dab882e3825c4a867d19ba98 (diff) | |
download | hercules-74b92bb34163160e59e24dd6a07c16e30e9743be.tar.gz hercules-74b92bb34163160e59e24dd6a07c16e30e9743be.tar.bz2 hercules-74b92bb34163160e59e24dd6a07c16e30e9743be.tar.xz hercules-74b92bb34163160e59e24dd6a07c16e30e9743be.zip |
- Follow up to r16164 and r16193: used SVN Copy/Move so SVN History is preserved.
- Added svn:eol-style=native property for some recently added text files.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16194 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'npc/custom/jobmaster.txt')
-rw-r--r-- | npc/custom/jobmaster.txt | 638 |
1 files changed, 319 insertions, 319 deletions
diff --git a/npc/custom/jobmaster.txt b/npc/custom/jobmaster.txt index fca6747a8..e11fa50c2 100644 --- a/npc/custom/jobmaster.txt +++ b/npc/custom/jobmaster.txt @@ -1,319 +1,319 @@ -//===== rAthena Script =======================================
-//= Job Master
-//===== By: ==================================================
-//= rAthena Dev Team [Ori:LunatikBunnie]
-//===== Current Version: =====================================
-//= 1.7
-//===== Compatible With: =====================================
-//= rAthena SVN; 15624+
-//===== 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]
-//= 1.5a fixed Baby -> Super Baby change. Switched to JobName() [Lupus]
-//= 1.6 Added support for both branches of 3rd classes,
-//= unified response order, fixed minor quirk.
-//= 1.7 Corrected typo on EAJ_THIRD to EAJL_THIRD and fixed job
-//= level requirement to change to 3rd. [Rytech]
-//===== TODO: ================================================
-//= Add baby 3rd classes
-//= Could be restructured some more using eajobs
-//============================================================
-
-prontera,153,193,6 script Job Master 123,{
- mes "^ff0000[Job Master]^000000";
- if(Class >= Job_Rune_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_Alchemist:
- 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;
- if(Upper == 2)
- set @target_job, Job_Super_Baby;
- else
- 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 || Upper == 2) 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 " + JobName(@target_job) + "?";
- if(select("Yes","No") == 1){
- callfunc "Job_Change", @target_job;
- if(@target_job == Job_Gunslinger || @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 && Class >= Job_Swordman_High){ // lastJob could have been set before changing back to non-trans
- 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_Alchemist;
- 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(JobName(@job_opt[0]), JobName(@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 " + JobName(@target_job) + "?";
- if(select("Yes","No")==1){
- 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(BaseLevel < 99 || JobLevel < 50) goto L_cantCh;
- if(checkfalcon() || checkcart() || checkriding()) goto L_remove;
-
- if((Class >= Job_Knight) && (Class <= Job_Crusader2)){
- if (.thirdclass==1) {
- mes "Would you like to be reborn or change to 3rd class?";
- switch(select("I want to be reborn!", "I want to change to 3rd class!", "Cancel"))
- {
- case 1:
- mes "Are you sure you want to be reborn?";
- if(select("Yes", "No")==1){
- 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;
- }
- break;
- case 2:
- goto L_Third;
- }
- close;
- }
- else {
- mes "Are you sure you want to be reborn?";
- if(select("Yes", "No")==1){
- 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;
- }
- }
- }
- if (Class >= Job_Lord_Knight && Class <= Job_Paladin2 && .thirdclass == 1)
- {
- if(JobLevel < 50) goto L_cantCh;
- goto L_Third;
- }
- }
- mes "I'm sorry, there are no further classes for your job.";
- close;
-
-L_Third:
- set @target_job, roclass(eaclass() | EAJL_THIRD);
- mes "Are you sure you want to change to " + JobName(@target_job) + "?";
- if(select("Yes", "No")==1){
- callfunc "Job_Change", @target_job;
- }
- 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 to 2nd classes (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)
- set .thirdclass, 1; // Allow players to change into third class?
- end;
-}
+//===== rAthena Script ======================================= +//= Job Master +//===== By: ================================================== +//= rAthena Dev Team [Ori:LunatikBunnie] +//===== Current Version: ===================================== +//= 1.7 +//===== Compatible With: ===================================== +//= rAthena SVN; 15624+ +//===== 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] +//= 1.5a fixed Baby -> Super Baby change. Switched to JobName() [Lupus] +//= 1.6 Added support for both branches of 3rd classes, +//= unified response order, fixed minor quirk. +//= 1.7 Corrected typo on EAJ_THIRD to EAJL_THIRD and fixed job +//= level requirement to change to 3rd. [Rytech] +//===== TODO: ================================================ +//= Add baby 3rd classes +//= Could be restructured some more using eajobs +//============================================================ + +prontera,153,193,6 script Job Master 123,{ + mes "^ff0000[Job Master]^000000"; + if(Class >= Job_Rune_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_Alchemist: + 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; + if(Upper == 2) + set @target_job, Job_Super_Baby; + else + 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 || Upper == 2) 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 " + JobName(@target_job) + "?"; + if(select("Yes","No") == 1){ + callfunc "Job_Change", @target_job; + if(@target_job == Job_Gunslinger || @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 && Class >= Job_Swordman_High){ // lastJob could have been set before changing back to non-trans + 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_Alchemist; + 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(JobName(@job_opt[0]), JobName(@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 " + JobName(@target_job) + "?"; + if(select("Yes","No")==1){ + 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(BaseLevel < 99 || JobLevel < 50) goto L_cantCh; + if(checkfalcon() || checkcart() || checkriding()) goto L_remove; + + if((Class >= Job_Knight) && (Class <= Job_Crusader2)){ + if (.thirdclass==1) { + mes "Would you like to be reborn or change to 3rd class?"; + switch(select("I want to be reborn!", "I want to change to 3rd class!", "Cancel")) + { + case 1: + mes "Are you sure you want to be reborn?"; + if(select("Yes", "No")==1){ + 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; + } + break; + case 2: + goto L_Third; + } + close; + } + else { + mes "Are you sure you want to be reborn?"; + if(select("Yes", "No")==1){ + 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; + } + } + } + if (Class >= Job_Lord_Knight && Class <= Job_Paladin2 && .thirdclass == 1) + { + if(JobLevel < 50) goto L_cantCh; + goto L_Third; + } + } + mes "I'm sorry, there are no further classes for your job."; + close; + +L_Third: + set @target_job, roclass(eaclass() | EAJL_THIRD); + mes "Are you sure you want to change to " + JobName(@target_job) + "?"; + if(select("Yes", "No")==1){ + callfunc "Job_Change", @target_job; + } + 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 to 2nd classes (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) + set .thirdclass, 1; // Allow players to change into third class? + end; +} |