Jump to content
  • 0

Jobchanger and Breeder wont work


pojiejapan

Question


  • Group:  Members
  • Topic Count:  37
  • Topics Per Day:  0.01
  • Content Count:  126
  • Reputation:   6
  • Joined:  11/18/11
  • Last Seen:  

Hye, I've been using this wonderfull script made by ADM Blast

http://rathena.org/board/files/file/978-class-changer-w-3rd-jobs-and-auto-job-change-breeder/

But something is wrong, my player can change to 3rd eventhough I have configure it.

My player novice-swordman-knight-rune knight...

I have configure it and put 0 to OFF it. also cant.. then I also have open the script and edit it myself at the

set .THIRDON,0; //Turn on 3rd class changing

and change it to 0 cant and 1 also cant.

Can someone PLEASE help me!

Link to comment
Share on other sites

12 answers to this question

Recommended Posts


  • Group:  Members
  • Topic Count:  10
  • Topics Per Day:  0.00
  • Content Count:  90
  • Reputation:   2
  • Joined:  11/14/11
  • Last Seen:  

my way to disable it

-disable 3rd job in-game npc

-force reborn

Edited by FrustFenix
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  44
  • Reputation:   4
  • Joined:  01/25/12
  • Last Seen:  

Can you "CodeBox" the script? Maybe I could help.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  37
  • Topics Per Day:  0.01
  • Content Count:  126
  • Reputation:   6
  • Joined:  11/18/11
  • Last Seen:  

Zac, I cant paste it. It says paste too long. can you referred the link I give you.

Please help me. It's ruining my server

BUMP!

BUMP! BUMP!!

Link to comment
Share on other sites


  • Group:  Forum Moderator
  • Topic Count:  93
  • Topics Per Day:  0.02
  • Content Count:  10015
  • Reputation:   2348
  • Joined:  10/28/11
  • Last Seen:  

if cant paste it...then upload it here..or any file hosting website....

but if i was right...pastebin should be enough to fit your script.

as i able to paste a very very very very very long script last time...O.O

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  37
  • Topics Per Day:  0.01
  • Content Count:  126
  • Reputation:   6
  • Joined:  11/18/11
  • Last Seen:  

anyone please?

anyone please?

http://www.mediafire.com/?rha2295eekwwr86 < this is my script. hope it helps

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  44
  • Reputation:   4
  • Joined:  01/25/12
  • Last Seen:  

I'm sorry for the late reply, I was busy with my server. /ok

There's nothing wrong with the script you uploaded into mediafire, why you didnt use that script and using a normal breeder, then merge it into one NPC?

Try this one I modified the original script with adding breeder into it.

//===== eAthena Script =======================================
//= eAthena Jobchanger AKA Job Master
//===== By: ==================================================
//= eAthena Dev Team [Ori:LunatikBunnie] [Cur:Lance]
//===== Current Version: =====================================
//= 1.6
//===== 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]
//= 1.6 added breeder [Zac]
//============================================================
prontera,152,193,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,"Cancel",-;
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_Baby:
 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_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 .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_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 .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;
}

Edited by Zac
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  37
  • Topics Per Day:  0.01
  • Content Count:  126
  • Reputation:   6
  • Joined:  11/18/11
  • Last Seen:  

this is script is perfect, but I was hoping it have all the extra function like reseter of etc. but nevermind. thanks a lot zac for you time. but can you add baby jobchanger and merge it with that script zac?

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  44
  • Reputation:   4
  • Joined:  01/25/12
  • Last Seen:  

Pleasure,

I added Skill Reset, and Platinum Skills into the NPC.

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;
OnPCLoginEvent:
if (Class==Job_Creator) {
skill 243,1,0;
skill 247,1,0;
}

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_Baby:
 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_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 .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_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 .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;
}

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  37
  • Topics Per Day:  0.01
  • Content Count:  126
  • Reputation:   6
  • Joined:  11/18/11
  • Last Seen:  

Zac thanks for your time, this NPC in sufficient enough for me. Thanks a lot. and btw. Does it have Baby Jobchanger?

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  44
  • Reputation:   4
  • Joined:  01/25/12
  • Last Seen:  

Pleasure. Yes, it has Baby Jobs there, hope it'll helps. :D

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  37
  • Topics Per Day:  0.01
  • Content Count:  126
  • Reputation:   6
  • Joined:  11/18/11
  • Last Seen:  

Zac, why evertime my player Login, the Class Master Ask a question. Do you want to rent? (Breeder)

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  44
  • Reputation:   4
  • Joined:  01/25/12
  • Last Seen:  

Try this, I forgot to move OnPCLoginEvent into the last line. haven't tested it yet

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_Baby:
 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_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 .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_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 .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;
}
}

Link to comment
Share on other sites

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.

×
×
  • Create New...