Finally i am able to post here.
Now here's my simple 3rd to Expanded Class job changer script release.
Hope this would help you guys.
3E_jobchanger.txt
Now here's my simple 3rd to Expanded Class job changer script release.
Hope this would help you guys.
3E_jobchanger.txt
Code:
//======= 3ceam Script =======================================
//= Job Changer NPC
//===== By: ==================================================
//= Keitenai
//===== Current Version: =====================================
//= 1.1
//===== Compatible With: =====================================
//= Athena Project
//===== Description: =========================================
//= Job changer including 3rd and expanded classes.
//===== Additional Comments: =================================
//= 1.0 First Version
//= 1.1 Fixed oboro showing as kagerou, and vise versa.
//============================================================
- script Job Changer -1,{
mes "^ff0000[Job Master]^000000";
if(Class >= 4054 && Class <= 4085) goto Max;
if(Upper == 1 && Class >= 4008 && Class <= 4022)goto Third_Job;
if(JobLevel < 10) goto Low_JobLevel;
switch(Class)
{ case 4001: case Job_Baby: case 0:
skill 142,1,0;
skill 143,1,0;
mes "Hello there! you may select the job you want to change into";
if(lastJob != 0 && Class == 4001)
{ switch (lastJob)
{
case 7: case 14: set @target_job, 4002; break;
case 15: case 8: set @target_job, 4005; break;
case 18: case 10: set @target_job, 4006; break;
case 17: case 12: set @target_job, 4007; break;
case 9: case 16: set @target_job, 4003; break;
case 11: case 19: case 20: set @target_job, 4004;
break;
}
}
else
{
switch
(select(
"Swordsman",
"Mage",
"Archer",
"Acolyte",
"Merchant",
"Thief",
"Super Novice",
"Taekwon",
"Gunslinger",
"Ninja"
))
{
case 7:
if(Class == 4001 | $@Super_Novice > BaseLevel)
goto Requirements;
if(Upper == 2)
set @target_job, 4045; else set @target_job, 23;
break;
case 8:
if(Class == 4001 | Upper == 2)
goto Requirements;
set @target_job, Job_Taekwon;
break;
case 9:
case 10:
if(Class == 4001 | Upper == 2)
goto Requirements;
set @target_job, @menu + 15;
break;
default:
set @target_job, @menu;
if(Class == 4001) 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 == 24 || @target_job == 25 || @target_job == Job_Taekwon)
{
callfunc "F_ClearJobVar";
}
else
{
if($@Platinum_Skill) goto Obtain_Platinum;
}
}
close; break; default:
if(Class >=24 && Class <=25)
{
if(BaseLevel < 99 || JobLevel < 40) goto Requirements;
mes "Are you sure you want to change to Expanded Class?";
if(select("Yes","No")==1)
{
switch(Class){
case 24:
set @target_job, 4215;
break;
case 25:
if(Sex!=0){
set @target_job, 4211;
}else{
set @target_job, 4212;
}
break;
}
mes "Are you sure you want to change to " + JobName(@target_job) + "?";
if(select("No","Yes") == 2)
{
callfunc "Job_Change", @target_job;
//resetlvl(1);
atcommand "@blvl +99";
specialeffect2 381;
close;
}
}
}
if(JobLevel < $@Min_JobLevel) goto Low_JobLevel;
deletearray @job_opt, getarraysize(@job_opt);
if(Class < 7 || Class == 4046 || (Class > 4023 && Class < 4030) || (Class > 4001 && Class < 4008))
{
if(lastJob != 0)
{
set @target_job, lastJob + 4001;
}
else
{
switch(Class)
{
case 4002: case 4024: case 1:
set @job_opt[0], 7;
set @job_opt[1], 14;
break;
case 4003: case 4025: case 2:
set @job_opt[0], 9;
set @job_opt[1], 16;
break;
case 4004: case 4026: case 3:
set @job_opt[0], 11;
if(Sex == 0)
set @job_opt[1], 20;
else
set @job_opt[1], 19;
break;
case 4005: case 4027: case 4:
set @job_opt[0], 8;
set @job_opt[1], 15;
break;
case 4006: case 4028: case 5:
set @job_opt[0], 10;
set @job_opt[1], 18;
break;
case 4007: case 4029: case 6:
set @job_opt[0], 12;
set @job_opt[1], 17;
break;
default:
set @job_opt[0], 4047;
set @job_opt[1], 4049;
break;
}
mes "Hello there! you may select the job you want to change into";
set @target_job, @job_opt[select(JobName(@job_opt[0]), JobName(@job_opt[1]))-1];
if(Class > 4001 && Class < 4008) 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 == 4047 || @target_job == 4049)
{
callfunc "F_ClearJobVar";
}
else
{
if($@Platinum_Skill) goto Obtain_Platinum;
}
}
close;
}
if(checkfalcon() || checkcart() || checkriding()) goto Riding;
if((Class >=7) && (Class <=142))
{
mes "Do you want to reborn?";
if(select("Yes","No")==1)
{
if(BaseLevel < 99 || JobLevel < 50) goto Requirements;
set lastJob, Class;
if(Class == 72)
{
set lastJob, 7;
}
else
{
if(Class == 142)
{
set lastJob, 14;
}
}
jobchange 4001; resetlvl(1);
skill 142,1,0; skill 143,1,0;
}
close;
}
}
mes "You've already reached the maximum class for your job";
close;
Third_Job:
if(checkfalcon() || checkcart() || checkriding()) goto Riding;
mes "Are you sure you want to change to 3rd Class?";
if(select("Yes","No")==1)
{
if(BaseLevel < 99 || JobLevel < 50) goto Requirements;
switch(Class)
{
case 4008: set @target_job, 4060; break;
case 4009: set @target_job, 4063; break;
case 4010: set @target_job, 4061; break;
case 4011: set @target_job, 4064; break;
case 4012: set @target_job, 4062; break;
case 4013: set @target_job, 4065; break;
case 4015: set @target_job, 4073; break;
case 4016: set @target_job, 4077; break;
case 4017: set @target_job, 4074; break;
case 4018: set @target_job, 4079; break;
case 4019: set @target_job, 4078; break;
case 4020: set @target_job, 4075; break;
case 4021: set @target_job, 4076; break;
}
mes "Are you sure you want to change to " + JobName(@target_job) + "?";
if(select("No","Yes") == 2)
{
callfunc "Job_Change", @target_job;
//atcommand "@blvl +99";
specialeffect2 381;
close;
}
}
close;
Obtain_Platinum:
if (BaseClass==23) goto Platinum_SuperNovice; if (BaseClass==1) goto Platinum_Swordsman;
if (BaseClass==2) goto Platinum_Magician; if (BaseClass==3) goto Platinum_Archer;
if (BaseClass==4) goto Platinum_Acolyte; if (BaseClass==5) goto Platinum_Merchant;
if (BaseClass==6) goto Platinum_Thief;
close;
Platinum_SuperNovice: skill 142,1,0; close;
Platinum_Swordsman: skill 142,1,0; skill 144,1,0; skill 145,1,0; skill 146,1,0; close;
Platinum_Magician: skill 142,1,0; skill 157,1,0; close;
Platinum_Archer: skill 142,1,0; skill 147,1,0; skill 148,1,0; close;
Platinum_Acolyte: skill 142,1,0; skill 156,1,0; close;
Platinum_Merchant: skill 142,1,0; skill 153,1,0; skill 154,1,0; skill 155,1,0; close;
Platinum_Thief: skill 142,1,0; skill 149,1,0; skill 150,1,0; skill 151,1,0; skill 152,1,0; close;
Riding:
mes "Please remove your cart,falcon or peco";
mes "Please come again soon!";
close;
Low_BaseLevel:
mes "I'm sorry, you do not seem to have enough Base Levels";
mes "Please come again soon!";
close;
Low_JobLevel:
mes "I'm sorry, you do not seem to have enough Job Levels";
mes "Please come again soon!";
close;
Requirements:
mes "I'm sorry, you do not meet the requirements to change";
mes "Please come again soon!";
close;
Max:
mes "I'm sorry, there are no further classes for your job.";
close;
OnInit:
// Settings
set $@Min_JobLevel, 40; //Minimum job level requirement for changing.
set $@Platinum_Skill, 1; //Give Platinum skills on Jobchange.
set $@Super_Novice, 45; //Minimum Base Level to change into Super Novice.
end;
}
prontera,161,195,3 duplicate(Job Changer) Job Changer#prt 430
payon,148,230,6 duplicate(Job Changer) Job Changer#pay 430
rachel,135,115,3 duplicate(Job Changer) Job Changer#rac 430
Attachments
Last edited by a moderator: