Jump to content
  • 0

jobchanger instant transc.


Question

9 answers to this question

Recommended Posts

Posted

oh im using ea.. sorry heres my jobchanger can you modify it thank you..

//===== eAthena Script =======================================
//= eAthena Jobchanger AKA Job Master
//===== By: ==================================================
//= eAthena Dev Team [Ori:LunatikBunnie] [Cur:Lance]
//===== Current Version: =====================================
//= 1.5a
//===== 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]
//============================================================
prontera,152,190,5	script	Job Master	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_Baby:
		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_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 "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 "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 "Looks like something has gone wrong. Please report to the eAthena Development Team about this error.";
	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;
}

Posted


prontera,152,190,5 script Job Master 123,{

mes .npc_name$;

if ( Class != 0 ) {

mes "I'm sorry, you do not meet the requirements to change";

mes "Please come again soon!";

close;

}

else if ( SkillPoint != 0 ) {

mes "I'm sorry, please use up all your skill points before changing jobs";

mes "Please come again soon!";

close;

}

else if ( JobLevel < 10 ) {

mes "I'm sorry, you do not seem to have enough Job Levels";

mes "Please come again soon!";

close;

}

skill 142,1,0;

skill 143,1,0;

mes "Welcome, please select the job you wish to change into :";

next;

copyarray .@job_, .job_, .size_job_;

set .@job_[ .size_job_ ], ( Sex ? .job_special[0] : .job_special[1] );

set .@menu$, .menu$ +"^777777~ "+ jobname( .@job_[ .size_job_ ] );

set .@s, select( .@menu$ ) -1;

mes .npc_name$;

mes "Are you sure you want to become a "+ jobname( .@job_[.@s] ) +" ?";

next;

if ( select( "^777777~ Yes !", "~ No !^000000" ) -1 ) close;

jobchange .@job_[.@s];

if ( .Platinum ) callsub Get_Platinum;

close;

Get_Platinum:

skill 142,1,0;

switch(BaseClass) {

case 0: if (Class !=23) skill 143,1,0; break;

case 1: skill 144,1,0; skill 145,1,0; skill 146,1,0; break;

case 2: skill 157,1,0; break;

case 3: skill 147,1,0; skill 148,1,0; break;

case 4: skill 156,1,0; break;

case 5: skill 153,1,0; skill 154,1,0; skill 155,1,0; break;

case 6: skill 149,1,0; skill 150,1,0; skill 151,1,0; skill 152,1,0; break;

default: break;

}

switch(BaseJob) {

case 7: skill 1001,1,0; break;

case 8: skill 1014,1,0; break;

case 9: skill 1006,1,0; break;

case 10: skill 1012,1,0; skill 1013,1,0; break;

case 11: skill 1009,1,0; break;

case 12: skill 1003,1,0; skill 1004,1,0; break;

case 14: skill 1002,1,0; break;

case 15: skill 1015,1,0; skill 1016,1,0; break;

case 16: skill 1007,1,0; skill 1008,1,0; skill 1017,1,0; skill 1018,1,0; skill 1019,1,0; break;

case 17: skill 1005,1,0; break;

case 18: skill 238,1,0; break;

case 19: skill 1010,1,0; break;

case 20: skill 1011,1,0; break;

default: break;

}

return;

OnInit:

set .Platinum,1; // Get platinum skills automatically? (1: yes / 0: no)

set .npc_name$, "^ff0000[Job Master]^000000"; // NPC name

// Others..

setarray .job_, Job_Lord_Knight, Job_High_Priest, Job_High_Wizard, Job_Whitesmith, Job_Sniper,

Job_Assassin_Cross, Job_Paladin, Job_Champion, Job_Professor, Job_Stalker, Job_Creator,

Job_Taekwon, Job_Star_Gladiator, Job_Soul_Linker, Job_SuperNovice, Job_Gunslinger, Job_Ninja;

setarray .job_special, Job_Clown, Job_Gypsy;

set .size_job_, getarraysize( .job_ );

for ( set .@i, 0; .@i < .size_job_; set .@i, .@i +1 )

set .menu$, .menu$ +"^777777~ "+ jobname( .job_[.@i] ) +":";

end;

}

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