Jump to content
  • 0

HELP with jobmaster!


Yami

Question


  • Group:  Members
  • Topic Count:  35
  • Topics Per Day:  0.01
  • Content Count:  111
  • Reputation:   2
  • Joined:  01/02/14
  • Last Seen:  

Hi there, need help with a script that I saw on a server I played before.

You have an option to have 1 Instant Job changed character per account. When you used the instant the only option your account will get is the regular job master script. 

 

I have the job change script, but I don't know how to make the 1 instant change. Can someone help me please. Thank you!

BTW, my server is Renewal, 3rd Jobs with Base Level 175 and Job level 60.

Edited by Yami
Link to comment
Share on other sites

4 answers to this question

Recommended Posts


  • Group:  Members
  • Topic Count:  35
  • Topics Per Day:  0.01
  • Content Count:  111
  • Reputation:   2
  • Joined:  01/02/14
  • Last Seen:  

Hi, I tried to edit the scripts you guys gave me and got this script.
there's no error but I can't click the NPC. Anyone can help me with this?

 

I made the 2 scripts as a function then the main npc will call on them depending if they already got the autojob or not.

//===== rAthena Script =======================================
//= Job Master
//===== By: ==================================================
//= Euphy
//===== Current Version: =====================================
//= 1.4
//===== Compatible With: ===================================== 
//= rAthena Project
//===== Description: =========================================
//= A fully functional job changer.
//===== Additional Comments: =================================
//= 1.0 Initial script.
//= 1.1 Fixed reset on Baby job change.
//= 1.2 Added Expanded Super Novice support and initial Kagerou/Oboro support.
//= 1.3 Kagerou/Oboro added.
//= 1.4 Rebellion added.
//============================================================

prontera,153,193,6	script	Job Master	923,{

if (#auto == 0) { callfunc "autojob"; }

else { callfunc "Class Master"; }
}


function	script	autojob	{
OnInit:
setarray .JobList[0],4060,4061,4062,4063,4064,4065,4015,4073,4074,4075,4076,4077,4078,4079;
.BaseLevel = 175; // change to 1
.JobLevel = 60; // change to 1
.SkillPoints = 127; // just remove this

.@size = getarraysize( .JobList );
for( .@i = 0; .@i < .@size; .@i++ )
	.Menu$ = .Menu$ + jobname( .JobList[.@i] )+":";
end;


if( Class  != 0 ){
	mes "You are not a novice!";
}else{
	.@i = select( .Menu$ ) - 1;
	if( select( "Change to "+jobname( .JobList[.@i] )+"?:Cancel" ) == 1 ){
		jobchange .JobList[.@i];
		BaseLevel = .BaseLevel;
		JobLevel = .JobLevel;
		SkillPoint = .SkillPoints; // you can comment this out to get no skill points
		set #auto, 1;
		mes "DONE";
	}
}
end;
}	//end autojob


function	script	Class Master	{
function Job_Menu;
	mes "[Job Master]";
	if (Class > Job_Soul_Linker) {
		mes "No more jobs are available.";
		close;
	}
	if (checkfalcon() || checkcart() || checkriding() || ismounting()) {
		mes "Please remove your " +
			((checkfalcon()) ? "falcon" : "") +
			((checkcart()) ? "cart" : "") +
			((checkriding()) ? "Peco" : "") +
			((ismounting()) ? "mount" : "") +
			" before proceeding.";
		close;
	}
	if (.SkillPointCheck && SkillPoint) {
		mes "Please use all your skill points before proceeding.";
		close;
	}

	.@eac = eaclass();
	.@i = ((.ThirdClass) ? roclass(.@eac&EAJ_UPPERMASK) : Class);
	if (.@i >= Job_Knight && .@i <= Job_Crusader2) {
		if (BaseLevel < .Rebirth[0] || JobLevel < .Rebirth[1]) {
			.@blvl = .Rebirth[0] - BaseLevel;
			.@jlvl = .Rebirth[1] - JobLevel;
			mes "You need " +
				((.@blvl > 0) ? .@blvl + " more base levels " + ((.@jlvl > 0) ? "/ " : "") : "") +
				((.@jlvl > 0) ? .@jlvl + " more job levels " : "") + "to continue.";
			close;
		}
		if (Class > Job_Crusader2) {
			mes "Switch to third class?";
			next;
			Job_Menu(roclass(.@eac|EAJL_THIRD));
			close;
		}
		while(1) {
			mes "Select an option.";
			next;
			.@i = select(" ~ ^0055FFRebirth^000000:" + ((.ThirdClass) ? " ~ ^FF0000Third Class^000000" : "") + ": ~ ^777777Cancel^000000");
			if (.@i == 3)
				close;
			mes "[Job Master]";
			mes "Are you sure?";
			next;
			Job_Menu(((.@i == 1) ? Job_Novice_High : roclass(.@eac|EAJL_THIRD)));
			mes "[Job Master]";
		}
	}
	.@j1 = roclass(.@eac|EAJL_2_1);
	.@j2 = roclass(.@eac|EAJL_2_2);
	if ((.@eac&EAJ_UPPERMASK) == EAJ_SUPER_NOVICE)
		setarray .@exp[0], roclass(.@eac|EAJL_THIRD), 99;
	if (Class == Job_Ninja || Class == Job_Gunslinger)
		setarray .@exp[0], .@j1, 70;
	if (.@exp[0] && .SecondExpanded) {
		if (BaseLevel < .Rebirth[0] || JobLevel < .@exp[1]) {
			.@blvl = .Rebirth[0] - BaseLevel;
			.@jlvl = .@exp[1] - JobLevel;
			mes "You need " +
				((.@blvl > 0) ? .@blvl + " more base levels " + ((.@jlvl > 0) ? "/ " : "") : "") +
				((.@jlvl > 0) ? .@jlvl + " more job levels " : "") + "to continue.";
			close;
		}
		mes "Switch to " + jobname(.@exp[0]) + "?";
		next;
		Job_Menu(.@exp[0]);
		close;
	}
	if (.@eac&EAJL_2)
		if (.@eac&(EAJL_UPPER|EAJL_BABY) || roclass(.@eac|EAJL_UPPER) == -1) {
			mes "No more jobs are available.";
			close;
		}
	if ((.@eac&EAJ_BASEMASK) == EAJ_NOVICE) {
		if (JobLevel < .JobReq[0])
			mes "A job level of " + .JobReq[0] + " is required to change into the 1st Class.";
		else if (Class == Job_Novice_High && .LastJob && lastJob) {
			mes "Switch classes now?";
			next;
			Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER));
		} else {
			switch(Class) {
			case Job_Novice:
				Job_Menu(
					Job_Swordman,
					Job_Mage,
					Job_Archer,
					Job_Acolyte,
					Job_Merchant,
					Job_Thief,
					Job_SuperNovice,
					Job_Taekwon,
					Job_Gunslinger,
					Job_Ninja,
					Job_Baby
				);
				break;
			case Job_Novice_High:
				Job_Menu(
					Job_Swordman_High,
					Job_Mage_High,
					Job_Archer_High,
					Job_Acolyte_High,
					Job_Merchant_High,
					Job_Thief_High
				);
				break;
			case Job_Baby:
				Job_Menu(
					Job_Baby_Swordman,
					Job_Baby_Mage,
					Job_Baby_Archer,
					Job_Baby_Acolyte,
					Job_Baby_Merchant,
					Job_Baby_Thief,
					Job_Super_Baby
				);
				break;
			default:
				mes "An error has occurred.";
				break;
			}
		}
		close;
	}
	if (roclass(.@eac|EAJL_2_1) == -1 || roclass(.@eac|EAJL_2_2) == -1)
		mes "No more jobs are available.";
	else if (!(.@eac&EAJL_2) && JobLevel < .JobReq[1])
		mes "A job level of " + .JobReq[1] + " is required to change into the 2nd Class.";
	else if (.LastJob && lastJob && (.@eac&EAJL_UPPER)) {
		mes "Switch classes now?";
		next;
		Job_Menu(lastJob + Job_Novice_High);
	} else
		Job_Menu(.@j1, .@j2);
	close;

function Job_Menu {
	while(1) {
		if (getargcount() > 1) {
			mes "Select a job.";
			.@menu$ = "";
			for (.@i = 0; .@i < getargcount(); .@i++)
				.@menu$ = .@menu$ + " ~ " + jobname(getarg(.@i)) + ":";
			.@menu$ = .@menu$+" ~ ^777777Cancel^000000";
			next;
			.@i = getarg(select(.@menu$) - 1, 0);
			if (!.@i)
				close;
			if ((.@i == Job_SuperNovice || .@i == Job_Super_Baby) && BaseLevel < .SNovice) {
				mes "[Job Master]";
				mes "A base level of " + .SNovice + " is required to turn into a " + jobname(.@i) + ".";
				close;
			}
			mes "[Job Master]";
			mes "Are you sure?";
			next;
		} else
			.@i = getarg(0);
		if (select(" ~ Change into ^0055FF" + jobname(.@i) + "^000000 class: ~ ^777777" + ((getargcount() > 1) ? "Go back" : "Cancel") + "^000000") == 1) {
			mes "[Job Master]";
			mes "You are now " + callfunc("F_InsertArticle", jobname(.@i)) + "!";
			if (.@i == Job_Novice_High && .LastJob)
				lastJob = Class;
			jobchange .@i;
			if (.@i == Job_Novice_High)
				resetlvl(1);
			else if (.@i == Job_Baby) {
				resetstatus;
				resetskill;
				set SkillPoint,0;
			}
			specialeffect2 EF_ANGEL2;
			specialeffect2 EF_ELECTRIC;
			if (.Platinum)
				callsub Get_Platinum;
			close;
		}
		if (getargcount() == 1)
			return;
		mes "[Job Master]";
	}
	end;
}

Get_Platinum:
	skill "NV_FIRSTAID",1,SKILL_PERM;
	switch (BaseClass) {
	case Job_Novice:
		if (Class != Job_SuperNovice)
			skill "NV_TRICKDEAD",1,SKILL_PERM;
		break;
	case Job_Swordman:
		skill "SM_MOVINGRECOVERY",1,SKILL_PERM;
		skill "SM_FATALBLOW",1,SKILL_PERM;
		skill "SM_AUTOBERSERK",1,SKILL_PERM;
		break;
	case Job_Mage:
		skill "MG_ENERGYCOAT",1,SKILL_PERM;
		break;
	case Job_Archer:
		skill "AC_MAKINGARROW",1,SKILL_PERM;
		skill "AC_CHARGEARROW",1,SKILL_PERM;
		break;
	case Job_Acolyte:
		skill "AL_HOLYLIGHT",1,SKILL_PERM;
		break;
	case Job_Merchant:
		skill "MC_CARTREVOLUTION",1,SKILL_PERM;
		skill "MC_CHANGECART",1,SKILL_PERM;
		skill "MC_LOUD",1,SKILL_PERM;
		break;
	case Job_Thief:
		skill "TF_SPRINKLESAND",1,SKILL_PERM;
		skill "TF_BACKSLIDING",1,SKILL_PERM;
		skill "TF_PICKSTONE",1,SKILL_PERM;
		skill "TF_THROWSTONE",1,SKILL_PERM;
		break;
	default:
		break;
	}
	switch (BaseJob) {
	case Job_Knight:
		skill "KN_CHARGEATK",1,SKILL_PERM;
		break;
	case Job_Priest:
		skill "PR_REDEMPTIO",1,SKILL_PERM;
		break;
	case Job_Wizard:
		skill "WZ_SIGHTBLASTER",1,SKILL_PERM;
		break;
	case Job_Blacksmith:
		skill "BS_UNFAIRLYTRICK",1,SKILL_PERM;
		skill "BS_GREED",1,SKILL_PERM;
		break;
	case Job_Hunter:
		skill "HT_PHANTASMIC",1,SKILL_PERM;
		break;
	case Job_Assassin:
		skill "AS_SONICACCEL",1,SKILL_PERM;
		skill "AS_VENOMKNIFE",1,SKILL_PERM;
		break;
	case Job_Crusader:
		skill "CR_SHRINK",1,SKILL_PERM;
		break;
	case Job_Monk:
		skill "MO_KITRANSLATION",1,SKILL_PERM;
		skill "MO_BALKYOUNG",1,SKILL_PERM;
		break;
	case Job_Sage:
		skill "SA_CREATECON",1,SKILL_PERM;
		skill "SA_ELEMENTWATER",1,SKILL_PERM;
		skill "SA_ELEMENTGROUND",1,SKILL_PERM;
		skill "SA_ELEMENTFIRE",1,SKILL_PERM;
		skill "SA_ELEMENTWIND",1,SKILL_PERM;
		break;
	case Job_Rogue:
		skill "RG_CLOSECONFINE",1,SKILL_PERM;
		break;
	case Job_Alchemist:
		skill "AM_BIOETHICS",1,SKILL_PERM;
		break;
	case Job_Bard:
		skill "BA_PANGVOICE",1,SKILL_PERM;
		break;
	case Job_Dancer:
		skill "DC_WINKCHARM",1,SKILL_PERM;
		break;
	default:
		break;
	}
	return;

OnInit:
	setarray .Rebirth[0],99,50;	// Minimum base level, job level to rebirth OR change to third class
	setarray .JobReq[0],10,40;	// Minimum job level to turn into 1st class, 2nd class
	.ThirdClass = 1;			// Enable third classes? (1: yes / 0: no)
	.SecondExpanded = 1;		// Enable new expanded second classes: Ex. Super Novice, Kagerou/Oboro, Rebellion? (1: yes / 0: no)
	.SNovice = 50;				// Minimum base level to turn into Super Novice
	.LastJob = 1;				// Enforce linear class changes? (1: yes / 0: no)
	.SkillPointCheck = 1;		// Force player to use up all skill points? (1: yes / 0: no)
	.Platinum = 1;				// Get platinum skills automatically? (1: yes / 0: no)
	end;
}	// end jobmaster


Nvm guys, I got it working :)

Link to comment
Share on other sites


  • Group:  Developer
  • Topic Count:  48
  • Topics Per Day:  0.01
  • Content Count:  1443
  • Reputation:   337
  • Joined:  10/17/12
  • Last Seen:  

I swear I've seen this request a thousand times now, try searching...

 

like this

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  35
  • Topics Per Day:  0.01
  • Content Count:  111
  • Reputation:   2
  • Joined:  01/02/14
  • Last Seen:  

@stolao I tried searching but I can seem to find the combined script. I only need the autojob to be done one (1) time per account.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  51
  • Topics Per Day:  0.01
  • Content Count:  452
  • Reputation:   33
  • Joined:  12/18/14
  • Last Seen:  

Not my script, but this can probably help you out.

 

//==============================================================================//
//= Script Release : Login Event Auto Max
//==================================By==========================================//
//= ManiacSociety
//==============================================================================//
//= Idea Came From : ManiacSociety
//= Helper : Emistry & Kenpachi
//==============================================================================//
//= Description
//==============================================================================//
//=1. When you login auto pick up your job and then max level 99/70, and skillall
//=2. When you tried to reconnect or character select the npc will denied for
//using it again if you trans already.
//=3. How many character in one account can used it?
//As many as you want the max account character.
//==============================================================================//
//= Rules for using this script
//=1. Do not claim it as yours.
//=2. Do not change the credits.
//=3. Do not sell the script to earn money.
//==============================================================================//
- script freebies -1,{

OnPCLoginEvent:
if(Class != 0 && BaseLevel == 1 && JobLevel == 1 && BaseExp == 0 && #freebies == 1) goto LEnd;
if( Class != 0 ) goto LEnd;
mes "[Anima]";
mes "Do you want to become much stonger?";
next;
mes "Please select your job!";
next;
menu "Lord Knight",L0,"High Priest",L1,"High Wizard",L2,"Whitesmith",L3,"Sniper",L4,"Assassin Cross",L5,"Paladin",L6,"Champion",L7,"Professor",L8,"Stalker",L9,"Creator",L10,"Clown",L11,"Gypsy",L12,"Super Novice",L13,"Ninja",L14,"Gunslinger",L15,"Soul Linker",L16,"Cancel",LEnd;


//--Lord Knight
L0:
jobchange 4008;
set baselevel,99;
set joblevel,70;
set skillpoint,127;
set #Freebies,1; //Add this to all the other classes
ResetSkill;
ResetStatus;
//atcommand "@allskill "+@player$;
//atcommand "@allskill "+@player$;
percentheal 100,100;
close;

//--High Priest
L1:
jobchange 4009;
set baselevel,99;
set joblevel,70;
set skillpoint,127;
ResetSkill;
ResetStatus;
//atcommand "@allskill "+@player$;
//atcommand "@allskill "+@player$;
percentheal 100,100;
close;

//--High Wizard
L2:
jobchange 4010;
set baselevel,99;
set joblevel,70;
set skillpoint,127;
ResetSkill;
ResetStatus;
//atcommand "@allskill "+@player$;
//atcommand "@allskill "+@player$;
percentheal 100,100;
close;

//--Whitesmith
L3:
jobchange 4011;
set baselevel,99;
set joblevel,70;
set skillpoint,127;
ResetSkill;
ResetStatus;
//atcommand "@allskill "+@player$;
//atcommand "@allskill "+@player$;
percentheal 100,100;
close;

//--Sniper
L4:
jobchange 4012;
set baselevel,99;
set joblevel,70;
set skillpoint,127;
ResetSkill;
ResetStatus;
//atcommand "@allskill "+@player$;
//atcommand "@allskill "+@player$;
percentheal 100,100;
close;

//--Assassin Cross
L5:
jobchange 4013;
set baselevel,99;
set joblevel,70;
set skillpoint,127;
ResetSkill;
ResetStatus;
//atcommand "@allskill "+@player$;
//atcommand "@allskill "+@player$;
percentheal 100,100;
close;

//--Paladin
L6:
jobchange 4015;
set baselevel,99;
set joblevel,70;
set skillpoint,127;
ResetSkill;
ResetStatus;
//atcommand "@allskill "+@player$;
//atcommand "@allskill "+@player$;
percentheal 100,100;
close;

//--Champion
L7:
jobchange 4016;
set baselevel,99;
set joblevel,70;
set skillpoint,127;
ResetSkill;
ResetStatus;
//atcommand "@allskill "+@player$;
//atcommand "@allskill "+@player$;
percentheal 100,100;
close;

//--Professor
L8:
jobchange 4017;
set baselevel,99;
set joblevel,70;
set skillpoint,127;
ResetSkill;
ResetStatus;
//atcommand "@allskill "+@player$;
//atcommand "@allskill "+@player$;
percentheal 100,100;
close;

//--Stalker
L9:
jobchange 4018;
set baselevel,99;
set joblevel,70;
set skillpoint,127;
ResetSkill;
ResetStatus;
//atcommand "@allskill "+@player$;
//atcommand "@allskill "+@player$;
percentheal 100,100;
close;

//--Creator
L10:
jobchange 4019;
set baselevel,99;
set joblevel,70;
set skillpoint,127;
ResetSkill;
ResetStatus;
//atcommand "@allskill "+@player$;
//atcommand "@allskill "+@player$;
percentheal 100,100;
close;

//--Clown
L11:
jobchange 4020;
set baselevel,99;
set joblevel,70;
set skillpoint,127;
ResetSkill;
ResetStatus;
//atcommand "@allskill "+@player$;
//atcommand "@allskill "+@player$;
percentheal 100,100;
close;

//--Gypsy
L12:
jobchange 4021;
set baselevel,99;
set joblevel,70;
set skillpoint,127;
ResetSkill;
ResetStatus;
//atcommand "@allskill "+@player$;
//atcommand "@allskill "+@player$;
percentheal 100,100;
close;

//--Super Novice
L13:
jobchange 23;
set baselevel,99;
set joblevel,70;
set skillpoint,127;
ResetSkill;
ResetStatus;
//atcommand "@allskill "+@player$;
//atcommand "@allskill "+@player$;
close;

//--Ninja
L14:
jobchange 25;
set baselevel,99;
set joblevel,70;
set skillpoint,127;
ResetSkill;
ResetStatus;
//atcommand "@allskill "+@player$;
//atcommand "@allskill "+@player$;
percentheal 100,100;
close;

//--Gunslinger
L15:
jobchange 24;
set baselevel,99;
set joblevel,70;
set skillpoint,127;
ResetSkill;
ResetStatus;
//atcommand "@allskill "+@player$;
//atcommand "@allskill "+@player$;
percentheal 100,100;
close;

//--Soul Linker
L16:
jobchange 4049;
set baselevel,99;
set joblevel,70;
set skillpoint,127;
ResetSkill;
ResetStatus;
//atcommand "@allskill "+@player$;
//atcommand "@allskill "+@player$;
percentheal 100,100;
close;


LEnd:
mes "[Anima]";
mes "You`ve already a Trans Job and cannot be changed anymore sorry.";
close;
}
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...