Jump to content
  • 0

Jobchanger with no 3rd class


Question

Posted

hey, does anyone have a jobchanger that doesnt have 3rd class? and has an inbuilt function of removing extra unneeded skill points as an option? also it doesnt have a baby changer

thanks

7 answers to this question

Recommended Posts

Posted (edited)

If you wanted the original scripts here is it,

I removed Baby Changer as you wanted.

//===== rAthena Script =======================================
//= rAthena Jobchanger AKA Job Master
//===== By: ==================================================
//= rAthena Dev Team
//===== Current Version: =====================================
//= 1.5a
//===== Compatible With: =====================================
//= rAthena SVN
//===== 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]
//= Removed Baby Changer as a request [Zac]
//============================================================
prontera,161,186,6[TAB]script[TAB]Job Master[TAB]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_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_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_Novice_High && Class < Job_Lord_Knight)){
if(lastJob != 0){
 set @target_job, lastJob + 4001;
} else {
 switch(Class){
  case Job_Swordman_High:
  case Job_Swordman:
   set @job_opt[0], Job_Knight;
   set @job_opt[1], Job_Crusader;
   break;
  case Job_Mage_High:
  case Job_Mage:
   set @job_opt[0], Job_Wizard;
   set @job_opt[1], Job_Sage;
   break;
  case Job_Archer_High:
  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_Acolyte:
   set @job_opt[0], Job_Priest;
   set @job_opt[1], Job_Monk;
   break;
  case Job_Merchant_High:
  case Job_Merchant:
   set @job_opt[0], Job_Blacksmith;
   set @job_opt[1], Job_Alchemist;
   break;
  case Job_Thief_High:
  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 Job_Novice_High;
 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;
}

Edited by Zac
Posted

Try this one I modified from rAthena's SVN script and merged platinum skills, breeder, reset stat.

prontera,153,182,6[TAB]script[TAB]Class Master[TAB]808,{
set .npc$,"^ff0000[Class Master]^000000";
mes .npc$;
mes "What can I help you?";
next;
menu "Change Job",L_job_change,"Breeder Service",breed,"Reset Skills",L_rskill,"Platinum Skills",pltskill,"Cancel",-;
close;
L_rskill:
mes .npc$;
mes "I am the Ability Reseter.";
mes "Reset Stats: 5,000z";
mes "Reset Skills: 5,000z";
mes "Reset Both: 9,000z";
mes "Please select the service you want:";
next;
menu "^FF3355Reset Skills",L0,"Reset Stats",L1,"Reset Both^000000",L2,"Quit",LEnd;
L0:
mes .npc$;
if (Zeny < 5000) goto NeedZenys;
mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!";
set Zeny,zeny-5000;
ResetSkill;
close;
L1:
next;
mes .npc$;
mes "What do you want to do?";
menu "^FF3355Reset Stats^000000",-,"^0000FFBuilds^000000",Lbuilds;
next;
mes .npc$;
if (Zeny < 5000) goto NeedZenys;
mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!";
set Zeny,zeny-5000;
ResetStatus;
close;
Lbuilds:
if(Class == Job_Taekwon) { goto menubuild; }
if(Class == Job_Soul_Linker) { goto menubuild; }
if(Class == Job_Gunslinger) { goto menubuild; }
if(Class == Job_Star_Gladiator) { goto menubuild; }
if(Class == Job_Ninja) { goto menubuild; }
if(Upper != 1) {
next;
mes .npc$;
mes "You still can't use this feature.";
close;
}
menubuild:
if(BaseLevel != 255) {
next;
mes .npc$;
mes "You still can't use this feature.";
close;
}
if(build1$=="") { set build1$,"Build (1/5)"; }
if(build2$=="") { set build2$,"Build (2/5)"; }
if(build3$=="") { set build3$,"Build (3/5)"; }
if(build4$=="") { set build4$,"Build (4/5)"; }
if(build5$=="") { set build5$,"Build (5/5)"; }
next;
mes .npc$;
mes "Builds CP";
menu build1$,Lb1,
build2$,Lb2,
build3$,Lb3,
build4$,Lb4,
build5$,Lb5;
Lb1:
next;
mes .npc$;
mes "Save Build (50k) || Use Build (5k)";
menu "Save Build",-,"Use this Build",Lusebuild1;
if (Zeny < 50000) goto NeedZenys;
set Zeny,zeny-50000;
if(readparam(bStr) > 255) { close; } //Prevent Haxed stats
if(readparam(bAgi) > 255) { close; } //Prevent Haxed stats
if(readparam(bVit) > 255) { close; } //Prevent Haxed stats
if(readparam(bInt) > 255) { close; } //Prevent Haxed stats
if(readparam(bDex) > 255) { close; } //Prevent Haxed stats
if(readparam(bLuk) > 255) { close; } //Prevent Haxed stats
mes "Please - Name Your Build (1).";
input @build1$;
 set build1$,@build1$;
 set statpts1,readparam(9);
 set bstr1,readparam(bStr);
 set bagi1,readparam(bAgi);
 set bvit1,readparam(bVit);
 set bint1,readparam(bInt);
 set bdex1,readparam(bDex);
 set bluk1,readparam(bLuk);
 set build_1,1;
next;
mes .npc$;
mes "Name: ^0000ff"+build1$+"^000000.";
mes "Str: ^ff0000"+bstr1+"^000000.";
mes "Agi: ^ff0000"+bagi1+"^000000.";
mes "Vit: ^ff0000"+bvit1+"^000000.";
mes "Int: ^ff0000"+bint1+"^000000.";
mes "Dex: ^ff0000"+bdex1+"^000000.";
mes "Luk: ^ff0000"+bluk1+"^000000.";
mes "Build (1) - Save process complete!";
close;
Lusebuild1:
if(build_1 != 1) {
 next;
 mes .npc$;
 mes "You haven't save any build here.";
 close;
}
if (Zeny < 5000) goto NeedZenys;
set Zeny,zeny-5000;
ResetStatus;
sleep2 10;
 statusup2 bStr,bstr1 -1;
 statusup2 bAgi,bagi1 -1;
 statusup2 bVit,bvit1 -1;
 statusup2 bInt,bint1 -1;
 statusup2 bDex,bdex1 -1;
 statusup2 bLuk,bluk1 -1;
set StatusPoint,statpts1;
message strcharinfo(0),"You changed your Build to "+build1$+" Build.";
close;
Lb2:
next;
mes .npc$;
mes "Save Build (50k) || Use Build (5k)";
menu "Save Build",-,"Use this Build",Lusebuild2;
if (Zeny < 50000) goto NeedZenys;
set Zeny,zeny-50000;
if(readparam(bStr) > 255) { close; } //Prevent Haxed stats
if(readparam(bAgi) > 255) { close; } //Prevent Haxed stats
if(readparam(bVit) > 255) { close; } //Prevent Haxed stats
if(readparam(bInt) > 255) { close; } //Prevent Haxed stats
if(readparam(bDex) > 255) { close; } //Prevent Haxed stats
if(readparam(bLuk) > 255) { close; } //Prevent Haxed stats
mes "Please - Name Your Build (2).";
input @build2$;
 set build2$,@build2$;
 set statpts2,readparam(9);
 set bstr2,readparam(bStr);
 set bagi2,readparam(bAgi);
 set bvit2,readparam(bVit);
 set bint2,readparam(bInt);
 set bdex2,readparam(bDex);
 set bluk2,readparam(bLuk);
 set build_2,1;
next;
mes .npc$;
mes "Name: ^0000ff"+build2$+"^000000.";
mes "Str: ^ff0000"+bstr2+"^000000.";
mes "Agi: ^ff0000"+bagi2+"^000000.";
mes "Vit: ^ff0000"+bvit2+"^000000.";
mes "Int: ^ff0000"+bint2+"^000000.";
mes "Dex: ^ff0000"+bdex2+"^000000.";
mes "Luk: ^ff0000"+bluk2+"^000000.";
mes "Build (2) - Save process complete!";
close;
Lusebuild2:
if(build_2 != 1) {
 next;
 mes .npc$;
 mes "You haven't save any build here.";
 close;
}
if (Zeny < 5000) goto NeedZenys;
set Zeny,zeny-5000;
ResetStatus;
sleep2 10;
 statusup2 bStr,bstr2 -1;
 statusup2 bAgi,bagi2 -1;
 statusup2 bVit,bvit2 -1;
 statusup2 bInt,bint2 -1;
 statusup2 bDex,bdex2 -1;
 statusup2 bLuk,bluk2 -1;
set StatusPoint,statpts2;
message strcharinfo(0),"You changed your Build to "+build2$+" Build.";
close;
Lb3:
next;
mes .npc$;
mes "Save Build (50k) || Use Build (5k)";
menu "Save Build",-,"Use this Build",Lusebuild3;
if (Zeny < 50000) goto NeedZenys;
set Zeny,zeny-50000;
if(readparam(bStr) > 255) { close; } //Prevent Haxed stats
if(readparam(bAgi) > 255) { close; } //Prevent Haxed stats
if(readparam(bVit) > 255) { close; } //Prevent Haxed stats
if(readparam(bInt) > 255) { close; } //Prevent Haxed stats
if(readparam(bDex) > 255) { close; } //Prevent Haxed stats
if(readparam(bLuk) > 255) { close; } //Prevent Haxed stats
mes "Please - Name Your Build (3).";
input @build3$;
 set build3$,@build3$;
 set statpts3,readparam(9);
 set bstr3,readparam(bStr);
 set bagi3,readparam(bAgi);
 set bvit3,readparam(bVit);
 set bint3,readparam(bInt);
 set bdex3,readparam(bDex);
 set bluk3,readparam(bLuk);
 set build_3,1;
next;
mes .npc$;
mes "Name: ^0000ff"+build3$+"^000000.";
mes "Str: ^ff0000"+bstr3+"^000000.";
mes "Agi: ^ff0000"+bagi3+"^000000.";
mes "Vit: ^ff0000"+bvit3+"^000000.";
mes "Int: ^ff0000"+bint3+"^000000.";
mes "Dex: ^ff0000"+bdex3+"^000000.";
mes "Luk: ^ff0000"+bluk3+"^000000.";
mes "Build (3) - Save process complete!";
close;
Lusebuild3:
if(build_3 != 1) {
 next;
 mes .npc$;
 mes "You haven't save any build here.";
 close;
}
if (Zeny < 5000) goto NeedZenys;
set Zeny,zeny-5000;
ResetStatus;
sleep2 10;
 statusup2 bStr,bstr3 -1;
 statusup2 bAgi,bagi3 -1;
 statusup2 bVit,bvit3 -1;
 statusup2 bInt,bint3 -1;
 statusup2 bDex,bdex3 -1;
 statusup2 bLuk,bluk3 -1;
set StatusPoint,statpts3;
message strcharinfo(0),"You changed your Build to "+build3$+" Build.";
close;
Lb4:
next;
mes .npc$;
mes "Save Build (50k) || Use Build (5k)";
menu "Save Build",-,"Use this Build",Lusebuild4;
if (Zeny < 50000) goto NeedZenys;
set Zeny,zeny-50000;
if(readparam(bStr) > 255) { close; } //Prevent Haxed stats
if(readparam(bAgi) > 255) { close; } //Prevent Haxed stats
if(readparam(bVit) > 255) { close; } //Prevent Haxed stats
if(readparam(bInt) > 255) { close; } //Prevent Haxed stats
if(readparam(bDex) > 255) { close; } //Prevent Haxed stats
if(readparam(bLuk) > 255) { close; } //Prevent Haxed stats
mes "Please - Name Your Build (4).";
input @build4$;
 set build4$,@build4$;
 set statpts4,readparam(9);
 set bstr4,readparam(bStr);
 set bagi4,readparam(bAgi);
 set bvit4,readparam(bVit);
 set bint4,readparam(bInt);
 set bdex4,readparam(bDex);
 set bluk4,readparam(bLuk);
 set build_4,1;
next;
mes .npc$;
mes "Name: ^0000ff"+build4$+"^000000.";
mes "Str: ^ff0000"+bstr4+"^000000.";
mes "Agi: ^ff0000"+bagi4+"^000000.";
mes "Vit: ^ff0000"+bvit4+"^000000.";
mes "Int: ^ff0000"+bint4+"^000000.";
mes "Dex: ^ff0000"+bdex4+"^000000.";
mes "Luk: ^ff0000"+bluk4+"^000000.";
mes "Build (4) - Save process complete!";
close;
Lusebuild4:
if(build_4 != 1) {
 next;
 mes .npc$;
 mes "You haven't save any build here.";
 close;
}
if (Zeny < 5000) goto NeedZenys;
set Zeny,zeny-5000;
ResetStatus;
sleep2 10;
 statusup2 bStr,bstr4 -1;
 statusup2 bAgi,bagi4 -1;
 statusup2 bVit,bvit4 -1;
 statusup2 bInt,bint4 -1;
 statusup2 bDex,bdex4 -1;
 statusup2 bLuk,bluk4 -1;
set StatusPoint,statpts4;
message strcharinfo(0),"You changed your Build to "+build4$+" Build.";
close;
Lb5:
next;
mes .npc$;
mes "Save Build (50k) || Use Build (5k)";
menu "Save Build",-,"Use this Build",Lusebuild5;
if (Zeny < 50000) goto NeedZenys;
set Zeny,zeny-50000;
if(readparam(bStr) > 255) { close; } //Prevent Haxed stats
if(readparam(bAgi) > 255) { close; } //Prevent Haxed stats
if(readparam(bVit) > 255) { close; } //Prevent Haxed stats
if(readparam(bInt) > 255) { close; } //Prevent Haxed stats
if(readparam(bDex) > 255) { close; } //Prevent Haxed stats
if(readparam(bLuk) > 255) { close; } //Prevent Haxed stats
mes "Please - Name Your Build (5).";
input @build5$;
 set build5$,@build5$;
 set statpts5,readparam(9);
 set bstr5,readparam(bStr);
 set bagi5,readparam(bAgi);
 set bvit5,readparam(bVit);
 set bint5,readparam(bInt);
 set bdex5,readparam(bDex);
 set bluk5,readparam(bLuk);
 set build_5,1;
next;
mes .npc$;
mes "Name: ^0000ff"+build5$+"^000000.";
mes "Str: ^ff0000"+bstr5+"^000000.";
mes "Agi: ^ff0000"+bagi5+"^000000.";
mes "Vit: ^ff0000"+bvit5+"^000000.";
mes "Int: ^ff0000"+bint5+"^000000.";
mes "Dex: ^ff0000"+bdex5+"^000000.";
mes "Luk: ^ff0000"+bluk5+"^000000.";
mes "Build (5) - Save process complete!";
close;
Lusebuild5:
if(build_5 != 1) {
 next;
 mes .npc$;
 mes "You haven't save any build here.";
 close;
}
if (Zeny < 5000) goto NeedZenys;
set Zeny,zeny-5000;
ResetStatus;
sleep2 10;
 statusup2 bStr,bstr5 -1;
 statusup2 bAgi,bagi5 -1;
 statusup2 bVit,bvit5 -1;
 statusup2 bInt,bint5 -1;
 statusup2 bDex,bdex5 -1;
 statusup2 bLuk,bluk5 -1;
set StatusPoint,statpts5;
message strcharinfo(0),"You changed your Build to "+build5$+" Build.";
close;
L2:
mes .npc$;
if (Zeny < 9000) goto NeedZenys;
mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!";
set Zeny,zeny-9000;
ResetSkill;
ResetStatus;
close;
NeedZenys:
next;
mes .npc$;
mes "Sorry, you don't have enough Zeny.";
close;
LEnd:
close;
pltskill:
mes .npc$;
mes "I can give you the special skills available to your job. Would you like these skills now?";
next;
menu "Yes",Lgetskills,"No",Lnogetskills;
Lgetskills:
if (BaseClass==Job_Novice) goto Lskillsnovice;
if (BaseClass==Job_Swordman) goto Lskillsswordie;
if (BaseClass==Job_Mage) goto Lskillsmage;
if (BaseClass==Job_Archer) goto Lskillsarcher;
if (BaseClass==Job_Acolyte) goto Lskillsaco;
if (BaseClass==Job_Merchant) goto Lskillsmerchie;
if (BaseClass==Job_Thief) goto Lskillsthief;
goto Lother;
Lskillsnovice:
mes .npc$;
mes "I see that you are a Novice Class. I will now add the special skills available to these jobs.";
skill 142,1,0;
if(BaseJob==0) skill 143,1,0;
mes " ";
mes "You now have all the special skills available to the these jobs.";
next;
goto LskillsEND;
Lskillsswordie:
mes .npc$;
mes "I see that you are a Swordman Class. I will now add the special skills available to these jobs.";
skill 142,1,0;
skill 144,1,0;
skill 145,1,0;
skill 146,1,0;
skill 1002,1,0;
mes " ";
mes "You now have all the special skills available to the these jobs.";
next;
goto LskillsEND;
Lskillsmage:
mes .npc$;
mes "I see that you are a Mage Class. I will now add the special skills available to these jobs.";
skill 142,1,0;
skill 157,1,0;
mes " ";
mes "You now have all the special skills available to the these jobs.";
next;
goto LskillsEND;
Lskillsarcher:
mes .npc$;
mes "I see that you are an Archer Class. I will now add the special skills available to these jobs.";
skill 142,1,0;
skill 147,1,0;
skill 148,1,0;
mes " ";
mes "You now have all the special skills available to the these jobs.";
next;
goto LskillsEND;
Lskillsaco:
mes .npc$;
mes "I see that you are an Acolyte Class. I will now add the special skills available to these jobs.";
skill 142,1,0;
skill 156,1,0;
mes " ";
mes "You now have all the special skills available to the these jobs.";
next;
goto LskillsEND;
Lskillsmerchie:
mes .npc$;
mes "I see that you are a Merchant Class.I will now add the special skills available to these jobs.";
skill 142,1,0;
skill 153,1,0;
skill 154,1,0;
if (Class==Job_Creator) {
skill 243,1,0;
skill 247,1,0;
skill 238,1,0;
skill 244,1,0;
}
mes " ";
mes "You now have all the special skills available to the these jobs.";
next;
goto LskillsEND;
Lskillsthief:
mes .npc$;
mes "I see that you are a Thief Class. I will now add the special skills available to these jobs.";
skill 142,1,0;
skill 149,1,0;
skill 150,1,0;
skill 151,1,0;
skill 152,1,0;
mes " ";
mes "You now have all the special skills available to the these jobs.";
next;
goto LskillsEND;
Lother:
mes .npc$;
mes "I will now add the special skills available to your job.";
skill 142,1,0;
mes " ";
mes "You now have all the special skills available to your job.";
next;
goto LskillsEND;
LskillsEND:
mes .npc$;
mes "Have a nice day.";
close;
Lnogetskills:
mes .npc$;
mes "Aww, how come you don't want my special skills?";
mes "*sob* FINE!";
mes "Have a nice day... >.>";
close;
breed:
mes .npc$;
mes "What would you rent?";
next;
switch(select("Cart:Falcon:Peco")) {
 case 1:
  if((BaseClass == Job_Merchant || BaseJob == Job_SuperNovice) && checkcart() == 0 && getskilllv("MC_PUSHCART")>0) {
   setcart;
   close;
  }else{
   mes .npc$;
   mes "Sorry " + strcharinfo(0) + ", Please make sure you are the required job and have the required skill.";
   close;
  }
 case 2:
  if(BaseJob != Job_Archer && BaseClass == Job_Archer && checkfalcon() == 0 && getskilllv("HT_FALCON")>0) {
   setfalcon;
   close;
  }else{
   mes .npc$;
   mes "Sorry " + strcharinfo(0) + ", Please make sure you are the required job and have the required skill.";
   close;
  }
 case 3:
  if (BaseJob != Job_Swordman && BaseClass == Job_Swordman && checkriding() == 0 && getskilllv("KN_RIDING")>0) {
   setriding;
   close;
  }else{
   mes .npc$;
   mes "Sorry " + strcharinfo(0) + ", Please make sure you are the required job and have the required skill.";
   close;
  }
}
L_job_change:
if(Upper == 1 && Class >= Job_Lord_Knight) goto L_noReq;
if(SkillPoint != 0){
 mes .npc$;
 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_Novice:
  skill 142,1,0;
  skill 143,1,0;
 mes .npc$;
  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_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 .npc$;
  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_Novice_High && Class < Job_Lord_Knight)){
   if(lastJob != 0){
 set @target_job, lastJob + 4001;
   } else {
 switch(Class){
  case Job_Swordman_High:
  case Job_Swordman:
   set @job_opt[0], Job_Knight;
   set @job_opt[1], Job_Crusader;
   break;
  case Job_Mage_High:
  case Job_Mage:
   set @job_opt[0], Job_Wizard;
   set @job_opt[1], Job_Sage;
   break;
  case Job_Archer_High:
  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_Acolyte:
   set @job_opt[0], Job_Priest;
   set @job_opt[1], Job_Monk;
   break;
  case Job_Merchant_High:
  case Job_Merchant:
   set @job_opt[0], Job_Blacksmith;
   set @job_opt[1], Job_Alchemist;
   break;
  case Job_Thief_High:
  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 .npc$;
 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 .npc$;
 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 .npc$;
  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 .npc$;
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 .npc$;
mes "I'm sorry, you do not meet the requirements to change";
mes "Please come again soon!";
close;
L_LvError:
 mes .npc$;
mes "I'm sorry, you do not seem to have enough Job Levels";
mes "Please come again soon!";
close;
L_BvError:
 mes .npc$;
mes "I'm sorry, you do not seem to have enough Base Levels";
mes "Please come again soon!";
close;
L_noReq:
 mes .npc$;
mes "I'm sorry, you do not meet the requirements to change";
mes "Please come again soon!";
close;
L_remove:
 mes .npc$;
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;
OnPCLoginEvent:
if (Class==Job_Creator) {
skill 243,1,0;
skill 247,1,0;
}
}

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...