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

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  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.

Loading...
Sign in to follow this  

×
×
  • Create New...

Important Information

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