Jump to content
Sign in to follow this  
keitenai

3E Jobchanger

Recommended Posts

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

 

3E_jobchanger.txt

 

 

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

Edited by keitenai

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.