Jump to content

Question

4 answers to this question

Recommended Posts

Posted


//===== eAthena Script =======================================

//= eAthena Jobchanger AKA Job Master

//===== By: ==================================================

//= eAthena Dev Team [Ori:LunatikBunnie] [Cur:Lance]

//===== Current Version: =====================================

//= 1.5a

//===== Compatible With: =====================================

//= eAthena SVN Trunk 6674

//===== Description: =========================================

//= Changes your job without asking too much

//= For other info, please contact me at [email protected]

//= 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]

//============================================================

prontera,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_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("No","Yes") == 2){

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){

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("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() || checkcart() || checkriding()) 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 roclass(eaclass()|EAJL_UPPER);

resetlvl(1);

skill 142,1,0;

skill 143,1,0;

}

close;

}

}

mes "I'm sorry, there are no further classes for your 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 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;

}

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...