Jump to content
  • 0

job quest warper npc script


joelolopez

Question


  • Group:  Members
  • Topic Count:  154
  • Topics Per Day:  0.03
  • Content Count:  493
  • Reputation:   46
  • Joined:  01/24/12
  • Last Seen:  

i would like to request a script that will warp you to the guild that you desire to take a job change quest, instead of instant job change npc

(all job change quest warp locations)

 

for low rate or classic style server purpose

 

 

 

job change quest warp

 

 

will warp you from

 

ex:

-swordsman guild

-and etc

-kagero quest included

-rebellion quest if we already have rebellion quest

Edited by joelolopez
Link to comment
Share on other sites

10 answers to this question

Recommended Posts

  • 0

  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  26
  • Reputation:   0
  • Joined:  05/11/17
  • Last Seen:  

oh! thank guys for this gift.............................................. please make a full third class job quest........ this is my first time to make my own server & it feels like whoa!!!!!! its not easy but thanks you guys for keephelping us also for being a kind........... sorry about my english 

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  7
  • Topics Per Day:  0.00
  • Content Count:  26
  • Reputation:   2
  • Joined:  06/28/14
  • Last Seen:  

if you said classic style RO then you'll have to stick to the classic quest the way it is.. :)


//Job Quest Warper NPC
//by: Geiszer "greyman15"
//Version 1
//Caution: don't touch in it you don't know how to change it..
//-----------------------Script Goes here--------------------//
prontera,159,187,3	script	Job Quester::Job Quester	733,{

	mes "[Job Quest]";
	mes "Hello there!";
	mes "are you qualified to test your";
	mes "self to change your job and";
	mes "choose what class do you want?";
	next;
	
	mes "[Job Quest]";
	mes "Then I'm here to help you on your";
	mes "trip to your chosen class.";
	next;
	
	mes "[Job Quest]";
	mes "Please make a Selection";
	next;
	menu "1st Job Quest",FJob,"2nd Job Quest",SJob,"Super Novice",snov;
	next;
	
snov:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "aldeba_in" ,219,167;
	close;
	
//First Job Quest----------------------------------	
FJob:
	mes "[Job Quest]";
	mes "Please Select what class";
	mes "will I warp you.";
	menu "Acolyte",aco,"Archer",arch,"Mage",mage,"Merchant",merch,"Swordman",sword,"Thief",thief;
	next;
	
aco:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "prt_church" ,184,36;
	close;

arch:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "payon_in02" ,64,66;
	close;
	
mage:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "geffen_in" ,157,119;
	close;
	
merch:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "alberta_in" ,61,43;
	close;

sword:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "izlude_in" ,74,166;
	close;

thief:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "moc_prydb1" ,47,120;
	close;

//Second Job Quest----------------------------------	
SJob:
	mes "[Job Quest]";
	mes "Please Select what class";
	mes "will I warp you.";
	menu "Priest",prst,"Hunter",hunt,"Wizard",wiz,"Blacksmith",blck,"Knight",cav,"Assassin",ass;
	next;

prst:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "prt_church" ,16,36;
	close;

hunt:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "in_hunter" ,99,104;
	close;
	
wiz:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "gef_tower" ,110,33;
	close;

blck:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "ein_in01" ,19,22;
	close;

cav:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "prt_in" ,82,102;
	close;

ass:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "in_moc_16" ,19,30;
	close;
}

here I tried my best to do it hope it works.... if something gone wrong in the script text file in the attached file just use this code..

jobquester.txt

jobquester - Revised.txt

Edited by greyman15
  • Upvote 1
Link to comment
Share on other sites


  • Group:  Developer
  • Topic Count:  7
  • Topics Per Day:  0.00
  • Content Count:  292
  • Reputation:   199
  • Joined:  05/03/13
  • Last Seen:  

//===== rAthena Script =======================================
//= Job Warper
//===== By: ==================================================
//= Euphy, edit by Normynator
//===== Current Version: =====================================
//= 1.0
//===== Compatible With: ===================================== 
//= rAthena Project
//===== Description: =========================================
//= A job warper.
//============================================================

prontera,153,182,6	script	Job Warper	123,{
function Job_Menu;
	mes "[Job Warper]";
	if (Class > 4049) {
		mes "No more jobs are available.";
		close;
	}
	set .@eac, eaclass();
	set .@i, ((.ThirdClass)?roclass(.@eac&EAJ_UPPERMASK):Class);
	if (.@i > 6 && .@i < 22) {
		if (BaseLevel < .Rebirth[0] || JobLevel < .Rebirth[1]) {
			set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .Rebirth[1]-JobLevel;
			mes "You need "+((.@blvl>0)?.@blvl+" more base levels "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" more job levels ":"")+"to continue.";
			close;
		}
		while(1) {
			mes "Select an option.";
			next;
			set .@i, select(" ~ ^0055FFRebirth^000000:"+((.ThirdClass)?" ~ ^FF0000Third Class^000000":"")+": ~ ^777777Cancel^000000");
			if (.@i==3) close;
			mes "[Job Warper]";
			mes "Are you sure?";
			next;
			Job_Menu(((.@i==1)?4001:roclass(.@eac|EAJL_THIRD)));
			mes "[Job Warper]";
		}
	}
	set .@j1, roclass(.@eac|EAJL_2_1); set .@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]) {
			set .@blvl, .Rebirth[0]-BaseLevel; set .@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 == 4001 && .LastJob && lastJob) {
			mes "Switch classes now?";
			next;
			Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER));
		} else switch(Class) {
			case 0: Job_Menu(1,2,3,4,5,6,23,4046,24,25,4023);
			case 4001: Job_Menu(4002,4003,4004,4005,4006,4007);
			case 4023: Job_Menu(4024,4025,4026,4027,4028,4029,4045);
			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+4001);
	} else
		Job_Menu(.@j1,.@j2);
	close;

function Job_Menu {
	while(1) {
		if (getargcount() > 1) {
			mes "Select a job.";
			set .@menu$,"";
			for(set .@i,0; .@i<getargcount(); set .@i,.@i+1)
				set .@menu$, .@menu$+" ~ "+jobname(getarg(.@i))+":";
			set .@menu$, .@menu$+" ~ ^777777Cancel^000000";
			next;
			set .@i, getarg(select(.@menu$)-1,0);
			if (!.@i) close;
			if ((.@i == 23 || .@i == 4045) && BaseLevel < .SNovice) {
				mes "[Job Warper]";
				mes "A base level of "+.SNovice+" is required to turn into a "+jobname(.@i)+".";
				close;
			}
			mes "[Job Warper]";
			mes "Are you sure?";
			next;
		} else
			set .@i, getarg(0);
		if (select(" ~ Want to become a ^0055FF"+jobname(.@i)+"^000000 class: ~ ^777777"+((getargcount() > 1)?"Go back":"Cancel")+"^000000") == 1) {
			mes "[Job Warper]";
			mes "You are getting Warped to "+callfunc("F_InsertArticle",jobname(.@i))+" Quest Npc!";
			if (.@i==4001 && .LastJob) set lastJob, Class;
			//mes .@i;
			goto Job;
			//Warps here !!!!
			if (.@i==4001 || .@i==4023) warp "yuno_in02",88,164;
			//specialeffect2 EF_ANGEL2; specialeffect2 EF_ELECTRIC;
			close;
		}
		if (getargcount() == 1) return;
		mes "[Job Warper]";
	}
	end;
}
Job:
	if(.@i > 4000){
		warp "valkyrie", 48, 48;
	}else{
		switch(.@i){
			case 1:
				warp "izlude", 52, 137;
				break;
			case 2:
				warp "geffen", 64, 177;
				break;
			case 3:
				warp "pay_arche", 145, 164;
				break;		
			case 4:
				warp "prontera", 234, 314;
				break;
			case 5:
				warp "alberta", 36, 42;
				break;
			case 6:
				warp "moc_ruins", 58, 159;
				break;	
			case 7:
				warp "prontera", 35, 346;
				break;	
			case 8:
				warp "prt_church", 16, 41;
				break;	
			case 9:
				warp "geffen", 120, 111;
				break;	
			case 10:
				warp "einbroch", 255, 107;
				break;	
			case 11:
				warp "hu_in01", 381, 368;
				break;			
			case 12:
				warp "in_moc_16", 19, 33;
				break;	
			case 14:
				warp "prontera", 156, 356;
				break;
			case 15:
				warp "prt_monk", 184, 16;
				break;	
			case 16:
				warp "yuno_in03", 154, 35;
				break;	
			case 17:
				warp "cmd_fild07", 196, 117;
				break;	
			case 18:
				warp "alde_alche", 27, 185;
				break;	
			case 19:
				warp "comodo", 226, 122;
				break;	
			case 20:
				warp "comodo", 193, 150;
				break;	
		} 
	}
	end;
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
	set .ThirdClass,0;		// Enable third classes? (1: yes / 0: no)
	set .SecondExpanded,1;		// Enable new expanded second classes: Ex. Super Novice, Kagerou/Oboro, Rebellion? (1: yes / 0: no)
	set .SNovice,45;		// Minimum base level to turn into Super Novice
	set .LastJob,1;			// Enforce linear class changes? (1: yes / 0: no)
	set .SkillPointCheck,1;		// Force player to use up all skill points? (1: yes / 0: no)
	set .Platinum,0;		// Get platinum skills automatically? (1: yes / 0: no)
	end;
}

I started writing such a script today, this script is based on Euphys JobChanger NPC (credits to him, awesome work^^)

At the moment the expanded classes are missing, i am adding them soon

  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  154
  • Topics Per Day:  0.03
  • Content Count:  493
  • Reputation:   46
  • Joined:  01/24/12
  • Last Seen:  

if you said classic style RO then you'll have to stick to the classic quest the way it is.. :)

//Job Quest Warper NPC
//by: Geiszer "greyman15"
//Version 1
//Caution: don't touch in if you don't know how to change it..
//-----------------------Script Goes here--------------------//
prontera,159,187,3	script	Job Quester::Job Quester	733,{

	mes "[Job Quest]";
	mes "Hello there!";
	mes "are you qualified to test your";
	mes "self to change your job and";
	mes "choose what class do you want?";
	next;
	
	mes "[Job Quest]";
	mes "Then I'm here to help you on your";
	mes "trip to your chosen class.";
	next;
	
	mes "[Job Quest]";
	mes "Please make a Selection";
	next;
	menu "1st Job Quest",FJob,"2nd Job Quest",SJob,"Super Novice",snov;
	next;
	
snov:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "aldeba_in" ,219,167;
	close;
	
//First Job Quest----------------------------------	
FJob:
	mes "[Job Quest]";
	mes "Please Select what class";
	mes "will I warp you.";
	menu "Acolyte",aco,"Archer",arch,"Mage",mage,"Merchant",merch,"Swordman",sword,"Thief",thief;
	next;
	
aco:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "prt_church" ,184,36;
	close;

arch:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "payon_in02" ,64,66;
	close;
	
mage:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "geffen_in" ,157,119;
	close;
	
merch:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "alberta_in" ,61,43;
	close;

sword:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "izlude_in" ,74,166;
	close;

thief:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "moc_prydb1" ,47,120;
	close;

//Second Job Quest----------------------------------	
SJob:
	mes "[Job Quest]";
	mes "Please Select what class";
	mes "will I warp you.";
	menu "Priest",prst,"Hunter",hunt,"Wizard",wiz,"Blacksmith",blck,"Knight",cav,"Assassin",ass;
	next;

prst:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "prt_church" ,16,36;
	close;

hunt:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "in_hunter" ,99,104;
	close;
	
wiz:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "gef_tower" ,110,33;
	close;

blck:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "ein_in01" ,19,22;
	close;

cav:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "prt_in" ,82,102;
	close;

ass:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "in_moc_16" ,19,30;
	close;
}

//Duplicates Here-----------------------------------------//
prontera,162,98,3	duplicate(Job Quester)	Job Quester#1-1	733
alberta,24,241,3	duplicate(Job Quester)	Job Quester#2-1	733
geffen,115,65,3	duplicate(Job Quester)	Job Quester#3-1	733
izlude,132,116,3	duplicate(Job Quester)	Job Quester#4-1	733
morocc,156,83,3	duplicate(Job Quester)	Job Quester#5-1	733
payon,144,231,3	duplicate(Job Quester)	Job Quester#6-1	733
morocc,169,257,3	duplicate(Job Quester)	Job Quester#7-1	733

here I tried my best to do it hope it works.... if something gone wrong in the script text file in the attached file just use this code..

this is what im looking for but its not complete

//===== rAthena Script =======================================
//= Job Warper
//===== By: ==================================================
//= Euphy, edit by Normynator
//===== Current Version: =====================================
//= 1.0
//===== Compatible With: ===================================== 
//= rAthena Project
//===== Description: =========================================
//= A job warper.
//============================================================

prontera,153,182,6	script	Job Warper	123,{
function Job_Menu;
	mes "[Job Warper]";
	if (Class > 4049) {
		mes "No more jobs are available.";
		close;
	}
	set .@eac, eaclass();
	set .@i, ((.ThirdClass)?roclass(.@eac&EAJ_UPPERMASK):Class);
	if (.@i > 6 && .@i < 22) {
		if (BaseLevel < .Rebirth[0] || JobLevel < .Rebirth[1]) {
			set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .Rebirth[1]-JobLevel;
			mes "You need "+((.@blvl>0)?.@blvl+" more base levels "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" more job levels ":"")+"to continue.";
			close;
		}
		while(1) {
			mes "Select an option.";
			next;
			set .@i, select(" ~ ^0055FFRebirth^000000:"+((.ThirdClass)?" ~ ^FF0000Third Class^000000":"")+": ~ ^777777Cancel^000000");
			if (.@i==3) close;
			mes "[Job Warper]";
			mes "Are you sure?";
			next;
			Job_Menu(((.@i==1)?4001:roclass(.@eac|EAJL_THIRD)));
			mes "[Job Warper]";
		}
	}
	set .@j1, roclass(.@eac|EAJL_2_1); set .@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]) {
			set .@blvl, .Rebirth[0]-BaseLevel; set .@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 == 4001 && .LastJob && lastJob) {
			mes "Switch classes now?";
			next;
			Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER));
		} else switch(Class) {
			case 0: Job_Menu(1,2,3,4,5,6,23,4046,24,25,4023);
			case 4001: Job_Menu(4002,4003,4004,4005,4006,4007);
			case 4023: Job_Menu(4024,4025,4026,4027,4028,4029,4045);
			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+4001);
	} else
		Job_Menu(.@j1,.@j2);
	close;

function Job_Menu {
	while(1) {
		if (getargcount() > 1) {
			mes "Select a job.";
			set .@menu$,"";
			for(set .@i,0; .@i<getargcount(); set .@i,.@i+1)
				set .@menu$, .@menu$+" ~ "+jobname(getarg(.@i))+":";
			set .@menu$, .@menu$+" ~ ^777777Cancel^000000";
			next;
			set .@i, getarg(select(.@menu$)-1,0);
			if (!.@i) close;
			if ((.@i == 23 || .@i == 4045) && BaseLevel < .SNovice) {
				mes "[Job Warper]";
				mes "A base level of "+.SNovice+" is required to turn into a "+jobname(.@i)+".";
				close;
			}
			mes "[Job Warper]";
			mes "Are you sure?";
			next;
		} else
			set .@i, getarg(0);
		if (select(" ~ Want to become a ^0055FF"+jobname(.@i)+"^000000 class: ~ ^777777"+((getargcount() > 1)?"Go back":"Cancel")+"^000000") == 1) {
			mes "[Job Warper]";
			mes "You are getting Warped to "+callfunc("F_InsertArticle",jobname(.@i))+" Quest Npc!";
			if (.@i==4001 && .LastJob) set lastJob, Class;
			//mes .@i;
			goto Job;
			//Warps here !!!!
			if (.@i==4001 || .@i==4023) warp "yuno_in02",88,164;
			//specialeffect2 EF_ANGEL2; specialeffect2 EF_ELECTRIC;
			close;
		}
		if (getargcount() == 1) return;
		mes "[Job Warper]";
	}
	end;
}
Job:
	if(.@i > 4000){
		warp "valkyrie", 48, 48;
	}else{
		switch(.@i){
			case 1:
				warp "izlude", 52, 137;
				break;
			case 2:
				warp "geffen", 64, 177;
				break;
			case 3:
				warp "pay_arche", 145, 164;
				break;		
			case 4:
				warp "prontera", 234, 314;
				break;
			case 5:
				warp "alberta", 36, 42;
				break;
			case 6:
				warp "moc_ruins", 58, 159;
				break;	
			case 7:
				warp "prontera", 35, 346;
				break;	
			case 8:
				warp "prt_church", 16, 41;
				break;	
			case 9:
				warp "geffen", 120, 111;
				break;	
			case 10:
				warp "einbroch", 255, 107;
				break;	
			case 11:
				warp "hu_in01", 381, 368;
				break;			
			case 12:
				warp "in_moc_16", 19, 33;
				break;	
			case 14:
				warp "prontera", 156, 356;
				break;
			case 15:
				warp "prt_monk", 184, 16;
				break;	
			case 16:
				warp "yuno_in03", 154, 35;
				break;	
			case 17:
				warp "cmd_fild07", 196, 117;
				break;	
			case 18:
				warp "alde_alche", 27, 185;
				break;	
			case 19:
				warp "comodo", 226, 122;
				break;	
			case 20:
				warp "comodo", 193, 150;
				break;	
		} 
	}
	end;
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
	set .ThirdClass,0;		// Enable third classes? (1: yes / 0: no)
	set .SecondExpanded,1;		// Enable new expanded second classes: Ex. Super Novice, Kagerou/Oboro, Rebellion? (1: yes / 0: no)
	set .SNovice,45;		// Minimum base level to turn into Super Novice
	set .LastJob,1;			// Enforce linear class changes? (1: yes / 0: no)
	set .SkillPointCheck,1;		// Force player to use up all skill points? (1: yes / 0: no)
	set .Platinum,0;		// Get platinum skills automatically? (1: yes / 0: no)
	end;
}

I started writing such a script today, this script is based on Euphys JobChanger NPC (credits to him, awesome work^^)

At the moment the expanded classes are missing, i am adding them soon

 

does kagero quest warp included in this script?

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  7
  • Topics Per Day:  0.00
  • Content Count:  26
  • Reputation:   2
  • Joined:  06/28/14
  • Last Seen:  

 

if you said classic style RO then you'll have to stick to the classic quest the way it is.. :)

//Job Quest Warper NPC
//by: Geiszer "greyman15"
//Version 1
//Caution: don't touch in if you don't know how to change it..
//-----------------------Script Goes here--------------------//
prontera,159,187,3	script	Job Quester::Job Quester	733,{

	mes "[Job Quest]";
	mes "Hello there!";
	mes "are you qualified to test your";
	mes "self to change your job and";
	mes "choose what class do you want?";
	next;
	
	mes "[Job Quest]";
	mes "Then I'm here to help you on your";
	mes "trip to your chosen class.";
	next;
	
	mes "[Job Quest]";
	mes "Please make a Selection";
	next;
	menu "1st Job Quest",FJob,"2nd Job Quest",SJob,"Super Novice",snov;
	next;
	
snov:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "aldeba_in" ,219,167;
	close;
	
//First Job Quest----------------------------------	
FJob:
	mes "[Job Quest]";
	mes "Please Select what class";
	mes "will I warp you.";
	menu "Acolyte",aco,"Archer",arch,"Mage",mage,"Merchant",merch,"Swordman",sword,"Thief",thief;
	next;
	
aco:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "prt_church" ,184,36;
	close;

arch:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "payon_in02" ,64,66;
	close;
	
mage:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "geffen_in" ,157,119;
	close;
	
merch:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "alberta_in" ,61,43;
	close;

sword:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "izlude_in" ,74,166;
	close;

thief:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "moc_prydb1" ,47,120;
	close;

//Second Job Quest----------------------------------	
SJob:
	mes "[Job Quest]";
	mes "Please Select what class";
	mes "will I warp you.";
	menu "Priest",prst,"Hunter",hunt,"Wizard",wiz,"Blacksmith",blck,"Knight",cav,"Assassin",ass;
	next;

prst:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "prt_church" ,16,36;
	close;

hunt:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "in_hunter" ,99,104;
	close;
	
wiz:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "gef_tower" ,110,33;
	close;

blck:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "ein_in01" ,19,22;
	close;

cav:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "prt_in" ,82,102;
	close;

ass:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "in_moc_16" ,19,30;
	close;
}

//Duplicates Here-----------------------------------------//
prontera,162,98,3	duplicate(Job Quester)	Job Quester#1-1	733
alberta,24,241,3	duplicate(Job Quester)	Job Quester#2-1	733
geffen,115,65,3	duplicate(Job Quester)	Job Quester#3-1	733
izlude,132,116,3	duplicate(Job Quester)	Job Quester#4-1	733
morocc,156,83,3	duplicate(Job Quester)	Job Quester#5-1	733
payon,144,231,3	duplicate(Job Quester)	Job Quester#6-1	733
morocc,169,257,3	duplicate(Job Quester)	Job Quester#7-1	733

here I tried my best to do it hope it works.... if something gone wrong in the script text file in the attached file just use this code..

this is what im looking for but its not complete

//===== rAthena Script =======================================
//= Job Warper
//===== By: ==================================================
//= Euphy, edit by Normynator
//===== Current Version: =====================================
//= 1.0
//===== Compatible With: ===================================== 
//= rAthena Project
//===== Description: =========================================
//= A job warper.
//============================================================

prontera,153,182,6	script	Job Warper	123,{
function Job_Menu;
	mes "[Job Warper]";
	if (Class > 4049) {
		mes "No more jobs are available.";
		close;
	}
	set .@eac, eaclass();
	set .@i, ((.ThirdClass)?roclass(.@eac&EAJ_UPPERMASK):Class);
	if (.@i > 6 && .@i < 22) {
		if (BaseLevel < .Rebirth[0] || JobLevel < .Rebirth[1]) {
			set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .Rebirth[1]-JobLevel;
			mes "You need "+((.@blvl>0)?.@blvl+" more base levels "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" more job levels ":"")+"to continue.";
			close;
		}
		while(1) {
			mes "Select an option.";
			next;
			set .@i, select(" ~ ^0055FFRebirth^000000:"+((.ThirdClass)?" ~ ^FF0000Third Class^000000":"")+": ~ ^777777Cancel^000000");
			if (.@i==3) close;
			mes "[Job Warper]";
			mes "Are you sure?";
			next;
			Job_Menu(((.@i==1)?4001:roclass(.@eac|EAJL_THIRD)));
			mes "[Job Warper]";
		}
	}
	set .@j1, roclass(.@eac|EAJL_2_1); set .@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]) {
			set .@blvl, .Rebirth[0]-BaseLevel; set .@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 == 4001 && .LastJob && lastJob) {
			mes "Switch classes now?";
			next;
			Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER));
		} else switch(Class) {
			case 0: Job_Menu(1,2,3,4,5,6,23,4046,24,25,4023);
			case 4001: Job_Menu(4002,4003,4004,4005,4006,4007);
			case 4023: Job_Menu(4024,4025,4026,4027,4028,4029,4045);
			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+4001);
	} else
		Job_Menu(.@j1,.@j2);
	close;

function Job_Menu {
	while(1) {
		if (getargcount() > 1) {
			mes "Select a job.";
			set .@menu$,"";
			for(set .@i,0; .@i<getargcount(); set .@i,.@i+1)
				set .@menu$, .@menu$+" ~ "+jobname(getarg(.@i))+":";
			set .@menu$, .@menu$+" ~ ^777777Cancel^000000";
			next;
			set .@i, getarg(select(.@menu$)-1,0);
			if (!.@i) close;
			if ((.@i == 23 || .@i == 4045) && BaseLevel < .SNovice) {
				mes "[Job Warper]";
				mes "A base level of "+.SNovice+" is required to turn into a "+jobname(.@i)+".";
				close;
			}
			mes "[Job Warper]";
			mes "Are you sure?";
			next;
		} else
			set .@i, getarg(0);
		if (select(" ~ Want to become a ^0055FF"+jobname(.@i)+"^000000 class: ~ ^777777"+((getargcount() > 1)?"Go back":"Cancel")+"^000000") == 1) {
			mes "[Job Warper]";
			mes "You are getting Warped to "+callfunc("F_InsertArticle",jobname(.@i))+" Quest Npc!";
			if (.@i==4001 && .LastJob) set lastJob, Class;
			//mes .@i;
			goto Job;
			//Warps here !!!!
			if (.@i==4001 || .@i==4023) warp "yuno_in02",88,164;
			//specialeffect2 EF_ANGEL2; specialeffect2 EF_ELECTRIC;
			close;
		}
		if (getargcount() == 1) return;
		mes "[Job Warper]";
	}
	end;
}
Job:
	if(.@i > 4000){
		warp "valkyrie", 48, 48;
	}else{
		switch(.@i){
			case 1:
				warp "izlude", 52, 137;
				break;
			case 2:
				warp "geffen", 64, 177;
				break;
			case 3:
				warp "pay_arche", 145, 164;
				break;		
			case 4:
				warp "prontera", 234, 314;
				break;
			case 5:
				warp "alberta", 36, 42;
				break;
			case 6:
				warp "moc_ruins", 58, 159;
				break;	
			case 7:
				warp "prontera", 35, 346;
				break;	
			case 8:
				warp "prt_church", 16, 41;
				break;	
			case 9:
				warp "geffen", 120, 111;
				break;	
			case 10:
				warp "einbroch", 255, 107;
				break;	
			case 11:
				warp "hu_in01", 381, 368;
				break;			
			case 12:
				warp "in_moc_16", 19, 33;
				break;	
			case 14:
				warp "prontera", 156, 356;
				break;
			case 15:
				warp "prt_monk", 184, 16;
				break;	
			case 16:
				warp "yuno_in03", 154, 35;
				break;	
			case 17:
				warp "cmd_fild07", 196, 117;
				break;	
			case 18:
				warp "alde_alche", 27, 185;
				break;	
			case 19:
				warp "comodo", 226, 122;
				break;	
			case 20:
				warp "comodo", 193, 150;
				break;	
		} 
	}
	end;
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
	set .ThirdClass,0;		// Enable third classes? (1: yes / 0: no)
	set .SecondExpanded,1;		// Enable new expanded second classes: Ex. Super Novice, Kagerou/Oboro, Rebellion? (1: yes / 0: no)
	set .SNovice,45;		// Minimum base level to turn into Super Novice
	set .LastJob,1;			// Enforce linear class changes? (1: yes / 0: no)
	set .SkillPointCheck,1;		// Force player to use up all skill points? (1: yes / 0: no)
	set .Platinum,0;		// Get platinum skills automatically? (1: yes / 0: no)
	end;
}

I started writing such a script today, this script is based on Euphys JobChanger NPC (credits to him, awesome work^^)

At the moment the expanded classes are missing, i am adding them soon

 

does kagero quest warp included in this script?

 

ok here it is: included the alternate 2nd jobs 

//Job Quest Warper NPC
//by: Geiszer "greyman15"
//Version 1.0
//Caution: don't touch in if you don't know how to change it..
//-----------------------Script Goes here--------------------//
prontera,159,187,3	script	Job Quester::Job Quester	733,{

	mes "[Job Quest]";
	mes "Hello there!";
	mes "are you qualified to test your";
	mes "self to change your job and";
	mes "choose what class do you want?";
	next;
	
	mes "[Job Quest]";
	mes "Then I'm here to help you on your";
	mes "trip to your chosen class.";
	next;
	
	mes "[Job Quest]";
	mes "Please make a Selection";
	next;
	menu "1st Job Quest",FJob,"2nd Job Quest",SJob,"Alternate Job Quest",ajob,"Super Novice",snov;
	next;

//First Job Quest----------------------------------	
FJob:
	mes "[Job Quest]";
	mes "Please Select what class";
	mes "will I warp you.";
	menu "Acolyte",aco,"Archer",arch,"Mage",mage,"Merchant",merch,"Swordman",sword,"Thief",thief;
	next;
	
aco:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "prt_church" ,184,36;
	close;

arch:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "payon_in02" ,64,66;
	close;
	
mage:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "geffen_in" ,157,119;
	close;
	
merch:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "alberta_in" ,61,43;
	close;

sword:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "izlude_in" ,74,166;
	close;

thief:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "moc_prydb1" ,47,120;
	close;

//Second Job Quest----------------------------------	
SJob:
	mes "[Job Quest]";
	mes "Please Select what class";
	mes "will I warp you.";
	menu "Priest",prst,"Hunter",hunt,"Wizard",wiz,"Blacksmith",blck,"Knight",cav,"Assassin",ass;
	next;

prst:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "prt_church" ,16,36;
	close;

hunt:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "hu_in01" ,382,373;
	close;
	
wiz:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "gef_tower" ,110,33;
	close;

blck:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "ein_in01" ,19,22;
	close;

cav:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "prt_in" ,82,102;
	close;

ass:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "in_moc_16" ,19,30;
	close;
//Alternate Job Quest--------------------------------------------
ajob:
	mes "[Job Quester]";
	mes "Please select what class";
	mes "will I warp you.";
	menu "Alchemist",alche,"Bard",bard,"Crusader",crus,"Dancer",dance,"Monk",mon,"Rogue",rog,"Sage",sag;
	next;

alche:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "alde_alche" ,27,180;
	close;

bard:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "comodo" ,226,120;
	close;

crus:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "prt_castle" ,45,164;
	close;

dance:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "comodo" ,180,150;
	close;

mon:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "prt_monk" ,59,244;
	close;

rog:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "moc_ruins" ,89,103;
	close;

sag:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "yuno_in02" ,41,61;
	close;

//Super Novice--------------------------------------------	
snov:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "aldeba_in" ,219,167;
	close;
	

}

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  154
  • Topics Per Day:  0.03
  • Content Count:  493
  • Reputation:   46
  • Joined:  01/24/12
  • Last Seen:  

 

 

if you said classic style RO then you'll have to stick to the classic quest the way it is.. :)

//Job Quest Warper NPC
//by: Geiszer "greyman15"
//Version 1
//Caution: don't touch in if you don't know how to change it..
//-----------------------Script Goes here--------------------//
prontera,159,187,3	script	Job Quester::Job Quester	733,{

	mes "[Job Quest]";
	mes "Hello there!";
	mes "are you qualified to test your";
	mes "self to change your job and";
	mes "choose what class do you want?";
	next;
	
	mes "[Job Quest]";
	mes "Then I'm here to help you on your";
	mes "trip to your chosen class.";
	next;
	
	mes "[Job Quest]";
	mes "Please make a Selection";
	next;
	menu "1st Job Quest",FJob,"2nd Job Quest",SJob,"Super Novice",snov;
	next;
	
snov:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "aldeba_in" ,219,167;
	close;
	
//First Job Quest----------------------------------	
FJob:
	mes "[Job Quest]";
	mes "Please Select what class";
	mes "will I warp you.";
	menu "Acolyte",aco,"Archer",arch,"Mage",mage,"Merchant",merch,"Swordman",sword,"Thief",thief;
	next;
	
aco:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "prt_church" ,184,36;
	close;

arch:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "payon_in02" ,64,66;
	close;
	
mage:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "geffen_in" ,157,119;
	close;
	
merch:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "alberta_in" ,61,43;
	close;

sword:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "izlude_in" ,74,166;
	close;

thief:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "moc_prydb1" ,47,120;
	close;

//Second Job Quest----------------------------------	
SJob:
	mes "[Job Quest]";
	mes "Please Select what class";
	mes "will I warp you.";
	menu "Priest",prst,"Hunter",hunt,"Wizard",wiz,"Blacksmith",blck,"Knight",cav,"Assassin",ass;
	next;

prst:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "prt_church" ,16,36;
	close;

hunt:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "in_hunter" ,99,104;
	close;
	
wiz:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "gef_tower" ,110,33;
	close;

blck:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "ein_in01" ,19,22;
	close;

cav:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "prt_in" ,82,102;
	close;

ass:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "in_moc_16" ,19,30;
	close;
}

//Duplicates Here-----------------------------------------//
prontera,162,98,3	duplicate(Job Quester)	Job Quester#1-1	733
alberta,24,241,3	duplicate(Job Quester)	Job Quester#2-1	733
geffen,115,65,3	duplicate(Job Quester)	Job Quester#3-1	733
izlude,132,116,3	duplicate(Job Quester)	Job Quester#4-1	733
morocc,156,83,3	duplicate(Job Quester)	Job Quester#5-1	733
payon,144,231,3	duplicate(Job Quester)	Job Quester#6-1	733
morocc,169,257,3	duplicate(Job Quester)	Job Quester#7-1	733

here I tried my best to do it hope it works.... if something gone wrong in the script text file in the attached file just use this code..

this is what im looking for but its not complete

//===== rAthena Script =======================================
//= Job Warper
//===== By: ==================================================
//= Euphy, edit by Normynator
//===== Current Version: =====================================
//= 1.0
//===== Compatible With: ===================================== 
//= rAthena Project
//===== Description: =========================================
//= A job warper.
//============================================================

prontera,153,182,6	script	Job Warper	123,{
function Job_Menu;
	mes "[Job Warper]";
	if (Class > 4049) {
		mes "No more jobs are available.";
		close;
	}
	set .@eac, eaclass();
	set .@i, ((.ThirdClass)?roclass(.@eac&EAJ_UPPERMASK):Class);
	if (.@i > 6 && .@i < 22) {
		if (BaseLevel < .Rebirth[0] || JobLevel < .Rebirth[1]) {
			set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .Rebirth[1]-JobLevel;
			mes "You need "+((.@blvl>0)?.@blvl+" more base levels "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" more job levels ":"")+"to continue.";
			close;
		}
		while(1) {
			mes "Select an option.";
			next;
			set .@i, select(" ~ ^0055FFRebirth^000000:"+((.ThirdClass)?" ~ ^FF0000Third Class^000000":"")+": ~ ^777777Cancel^000000");
			if (.@i==3) close;
			mes "[Job Warper]";
			mes "Are you sure?";
			next;
			Job_Menu(((.@i==1)?4001:roclass(.@eac|EAJL_THIRD)));
			mes "[Job Warper]";
		}
	}
	set .@j1, roclass(.@eac|EAJL_2_1); set .@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]) {
			set .@blvl, .Rebirth[0]-BaseLevel; set .@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 == 4001 && .LastJob && lastJob) {
			mes "Switch classes now?";
			next;
			Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER));
		} else switch(Class) {
			case 0: Job_Menu(1,2,3,4,5,6,23,4046,24,25,4023);
			case 4001: Job_Menu(4002,4003,4004,4005,4006,4007);
			case 4023: Job_Menu(4024,4025,4026,4027,4028,4029,4045);
			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+4001);
	} else
		Job_Menu(.@j1,.@j2);
	close;

function Job_Menu {
	while(1) {
		if (getargcount() > 1) {
			mes "Select a job.";
			set .@menu$,"";
			for(set .@i,0; .@i<getargcount(); set .@i,.@i+1)
				set .@menu$, .@menu$+" ~ "+jobname(getarg(.@i))+":";
			set .@menu$, .@menu$+" ~ ^777777Cancel^000000";
			next;
			set .@i, getarg(select(.@menu$)-1,0);
			if (!.@i) close;
			if ((.@i == 23 || .@i == 4045) && BaseLevel < .SNovice) {
				mes "[Job Warper]";
				mes "A base level of "+.SNovice+" is required to turn into a "+jobname(.@i)+".";
				close;
			}
			mes "[Job Warper]";
			mes "Are you sure?";
			next;
		} else
			set .@i, getarg(0);
		if (select(" ~ Want to become a ^0055FF"+jobname(.@i)+"^000000 class: ~ ^777777"+((getargcount() > 1)?"Go back":"Cancel")+"^000000") == 1) {
			mes "[Job Warper]";
			mes "You are getting Warped to "+callfunc("F_InsertArticle",jobname(.@i))+" Quest Npc!";
			if (.@i==4001 && .LastJob) set lastJob, Class;
			//mes .@i;
			goto Job;
			//Warps here !!!!
			if (.@i==4001 || .@i==4023) warp "yuno_in02",88,164;
			//specialeffect2 EF_ANGEL2; specialeffect2 EF_ELECTRIC;
			close;
		}
		if (getargcount() == 1) return;
		mes "[Job Warper]";
	}
	end;
}
Job:
	if(.@i > 4000){
		warp "valkyrie", 48, 48;
	}else{
		switch(.@i){
			case 1:
				warp "izlude", 52, 137;
				break;
			case 2:
				warp "geffen", 64, 177;
				break;
			case 3:
				warp "pay_arche", 145, 164;
				break;		
			case 4:
				warp "prontera", 234, 314;
				break;
			case 5:
				warp "alberta", 36, 42;
				break;
			case 6:
				warp "moc_ruins", 58, 159;
				break;	
			case 7:
				warp "prontera", 35, 346;
				break;	
			case 8:
				warp "prt_church", 16, 41;
				break;	
			case 9:
				warp "geffen", 120, 111;
				break;	
			case 10:
				warp "einbroch", 255, 107;
				break;	
			case 11:
				warp "hu_in01", 381, 368;
				break;			
			case 12:
				warp "in_moc_16", 19, 33;
				break;	
			case 14:
				warp "prontera", 156, 356;
				break;
			case 15:
				warp "prt_monk", 184, 16;
				break;	
			case 16:
				warp "yuno_in03", 154, 35;
				break;	
			case 17:
				warp "cmd_fild07", 196, 117;
				break;	
			case 18:
				warp "alde_alche", 27, 185;
				break;	
			case 19:
				warp "comodo", 226, 122;
				break;	
			case 20:
				warp "comodo", 193, 150;
				break;	
		} 
	}
	end;
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
	set .ThirdClass,0;		// Enable third classes? (1: yes / 0: no)
	set .SecondExpanded,1;		// Enable new expanded second classes: Ex. Super Novice, Kagerou/Oboro, Rebellion? (1: yes / 0: no)
	set .SNovice,45;		// Minimum base level to turn into Super Novice
	set .LastJob,1;			// Enforce linear class changes? (1: yes / 0: no)
	set .SkillPointCheck,1;		// Force player to use up all skill points? (1: yes / 0: no)
	set .Platinum,0;		// Get platinum skills automatically? (1: yes / 0: no)
	end;
}

I started writing such a script today, this script is based on Euphys JobChanger NPC (credits to him, awesome work^^)

At the moment the expanded classes are missing, i am adding them soon

 

does kagero quest warp included in this script?

 

ok here it is: included the alternate 2nd jobs 

//Job Quest Warper NPC
//by: Geiszer "greyman15"
//Version 1.0
//Caution: don't touch in if you don't know how to change it..
//-----------------------Script Goes here--------------------//
prontera,159,187,3	script	Job Quester::Job Quester	733,{

	mes "[Job Quest]";
	mes "Hello there!";
	mes "are you qualified to test your";
	mes "self to change your job and";
	mes "choose what class do you want?";
	next;
	
	mes "[Job Quest]";
	mes "Then I'm here to help you on your";
	mes "trip to your chosen class.";
	next;
	
	mes "[Job Quest]";
	mes "Please make a Selection";
	next;
	menu "1st Job Quest",FJob,"2nd Job Quest",SJob,"Alternate Job Quest",ajob,"Super Novice",snov;
	next;

//First Job Quest----------------------------------	
FJob:
	mes "[Job Quest]";
	mes "Please Select what class";
	mes "will I warp you.";
	menu "Acolyte",aco,"Archer",arch,"Mage",mage,"Merchant",merch,"Swordman",sword,"Thief",thief;
	next;
	
aco:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "prt_church" ,184,36;
	close;

arch:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "payon_in02" ,64,66;
	close;
	
mage:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "geffen_in" ,157,119;
	close;
	
merch:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "alberta_in" ,61,43;
	close;

sword:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "izlude_in" ,74,166;
	close;

thief:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "moc_prydb1" ,47,120;
	close;

//Second Job Quest----------------------------------	
SJob:
	mes "[Job Quest]";
	mes "Please Select what class";
	mes "will I warp you.";
	menu "Priest",prst,"Hunter",hunt,"Wizard",wiz,"Blacksmith",blck,"Knight",cav,"Assassin",ass;
	next;

prst:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "prt_church" ,16,36;
	close;

hunt:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "hu_in01" ,382,373;
	close;
	
wiz:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "gef_tower" ,110,33;
	close;

blck:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "ein_in01" ,19,22;
	close;

cav:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "prt_in" ,82,102;
	close;

ass:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "in_moc_16" ,19,30;
	close;
//Alternate Job Quest--------------------------------------------
ajob:
	mes "[Job Quester]";
	mes "Please select what class";
	mes "will I warp you.";
	menu "Alchemist",alche,"Bard",bard,"Crusader",crus,"Dancer",dance,"Monk",mon,"Rogue",rog,"Sage",sag;
	next;

alche:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "alde_alche" ,27,180;
	close;

bard:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "comodo" ,226,120;
	close;

crus:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "prt_castle" ,45,164;
	close;

dance:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "comodo" ,180,150;
	close;

mon:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "prt_monk" ,59,244;
	close;

rog:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "moc_ruins" ,89,103;
	close;

sag:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "yuno_in02" ,41,61;
	close;

//Super Novice--------------------------------------------	
snov:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "aldeba_in" ,219,167;
	close;
	

}

does it have a rebirth warper and 3rd job quests warps?

kagerou too?

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  7
  • Topics Per Day:  0.00
  • Content Count:  26
  • Reputation:   2
  • Joined:  06/28/14
  • Last Seen:  

lol.. it's just the classic jobs from 1st job to 2nd job and alternate 2nd job only because you stated that you want a classic server type :P

Link to comment
Share on other sites


  • Group:  Developer
  • Topic Count:  7
  • Topics Per Day:  0.00
  • Content Count:  292
  • Reputation:   199
  • Joined:  05/03/13
  • Last Seen:  

 

 

 

if you said classic style RO then you'll have to stick to the classic quest the way it is.. :)

//Job Quest Warper NPC
//by: Geiszer "greyman15"
//Version 1
//Caution: don't touch in if you don't know how to change it..
//-----------------------Script Goes here--------------------//
prontera,159,187,3	script	Job Quester::Job Quester	733,{

	mes "[Job Quest]";
	mes "Hello there!";
	mes "are you qualified to test your";
	mes "self to change your job and";
	mes "choose what class do you want?";
	next;
	
	mes "[Job Quest]";
	mes "Then I'm here to help you on your";
	mes "trip to your chosen class.";
	next;
	
	mes "[Job Quest]";
	mes "Please make a Selection";
	next;
	menu "1st Job Quest",FJob,"2nd Job Quest",SJob,"Super Novice",snov;
	next;
	
snov:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "aldeba_in" ,219,167;
	close;
	
//First Job Quest----------------------------------	
FJob:
	mes "[Job Quest]";
	mes "Please Select what class";
	mes "will I warp you.";
	menu "Acolyte",aco,"Archer",arch,"Mage",mage,"Merchant",merch,"Swordman",sword,"Thief",thief;
	next;
	
aco:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "prt_church" ,184,36;
	close;

arch:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "payon_in02" ,64,66;
	close;
	
mage:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "geffen_in" ,157,119;
	close;
	
merch:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "alberta_in" ,61,43;
	close;

sword:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "izlude_in" ,74,166;
	close;

thief:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "moc_prydb1" ,47,120;
	close;

//Second Job Quest----------------------------------	
SJob:
	mes "[Job Quest]";
	mes "Please Select what class";
	mes "will I warp you.";
	menu "Priest",prst,"Hunter",hunt,"Wizard",wiz,"Blacksmith",blck,"Knight",cav,"Assassin",ass;
	next;

prst:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "prt_church" ,16,36;
	close;

hunt:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "in_hunter" ,99,104;
	close;
	
wiz:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "gef_tower" ,110,33;
	close;

blck:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "ein_in01" ,19,22;
	close;

cav:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "prt_in" ,82,102;
	close;

ass:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "in_moc_16" ,19,30;
	close;
}

//Duplicates Here-----------------------------------------//
prontera,162,98,3	duplicate(Job Quester)	Job Quester#1-1	733
alberta,24,241,3	duplicate(Job Quester)	Job Quester#2-1	733
geffen,115,65,3	duplicate(Job Quester)	Job Quester#3-1	733
izlude,132,116,3	duplicate(Job Quester)	Job Quester#4-1	733
morocc,156,83,3	duplicate(Job Quester)	Job Quester#5-1	733
payon,144,231,3	duplicate(Job Quester)	Job Quester#6-1	733
morocc,169,257,3	duplicate(Job Quester)	Job Quester#7-1	733

here I tried my best to do it hope it works.... if something gone wrong in the script text file in the attached file just use this code..

this is what im looking for but its not complete

//===== rAthena Script =======================================
//= Job Warper
//===== By: ==================================================
//= Euphy, edit by Normynator
//===== Current Version: =====================================
//= 1.0
//===== Compatible With: ===================================== 
//= rAthena Project
//===== Description: =========================================
//= A job warper.
//============================================================

prontera,153,182,6	script	Job Warper	123,{
function Job_Menu;
	mes "[Job Warper]";
	if (Class > 4049) {
		mes "No more jobs are available.";
		close;
	}
	set .@eac, eaclass();
	set .@i, ((.ThirdClass)?roclass(.@eac&EAJ_UPPERMASK):Class);
	if (.@i > 6 && .@i < 22) {
		if (BaseLevel < .Rebirth[0] || JobLevel < .Rebirth[1]) {
			set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .Rebirth[1]-JobLevel;
			mes "You need "+((.@blvl>0)?.@blvl+" more base levels "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" more job levels ":"")+"to continue.";
			close;
		}
		while(1) {
			mes "Select an option.";
			next;
			set .@i, select(" ~ ^0055FFRebirth^000000:"+((.ThirdClass)?" ~ ^FF0000Third Class^000000":"")+": ~ ^777777Cancel^000000");
			if (.@i==3) close;
			mes "[Job Warper]";
			mes "Are you sure?";
			next;
			Job_Menu(((.@i==1)?4001:roclass(.@eac|EAJL_THIRD)));
			mes "[Job Warper]";
		}
	}
	set .@j1, roclass(.@eac|EAJL_2_1); set .@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]) {
			set .@blvl, .Rebirth[0]-BaseLevel; set .@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 == 4001 && .LastJob && lastJob) {
			mes "Switch classes now?";
			next;
			Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER));
		} else switch(Class) {
			case 0: Job_Menu(1,2,3,4,5,6,23,4046,24,25,4023);
			case 4001: Job_Menu(4002,4003,4004,4005,4006,4007);
			case 4023: Job_Menu(4024,4025,4026,4027,4028,4029,4045);
			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+4001);
	} else
		Job_Menu(.@j1,.@j2);
	close;

function Job_Menu {
	while(1) {
		if (getargcount() > 1) {
			mes "Select a job.";
			set .@menu$,"";
			for(set .@i,0; .@i<getargcount(); set .@i,.@i+1)
				set .@menu$, .@menu$+" ~ "+jobname(getarg(.@i))+":";
			set .@menu$, .@menu$+" ~ ^777777Cancel^000000";
			next;
			set .@i, getarg(select(.@menu$)-1,0);
			if (!.@i) close;
			if ((.@i == 23 || .@i == 4045) && BaseLevel < .SNovice) {
				mes "[Job Warper]";
				mes "A base level of "+.SNovice+" is required to turn into a "+jobname(.@i)+".";
				close;
			}
			mes "[Job Warper]";
			mes "Are you sure?";
			next;
		} else
			set .@i, getarg(0);
		if (select(" ~ Want to become a ^0055FF"+jobname(.@i)+"^000000 class: ~ ^777777"+((getargcount() > 1)?"Go back":"Cancel")+"^000000") == 1) {
			mes "[Job Warper]";
			mes "You are getting Warped to "+callfunc("F_InsertArticle",jobname(.@i))+" Quest Npc!";
			if (.@i==4001 && .LastJob) set lastJob, Class;
			//mes .@i;
			goto Job;
			//Warps here !!!!
			if (.@i==4001 || .@i==4023) warp "yuno_in02",88,164;
			//specialeffect2 EF_ANGEL2; specialeffect2 EF_ELECTRIC;
			close;
		}
		if (getargcount() == 1) return;
		mes "[Job Warper]";
	}
	end;
}
Job:
	if(.@i > 4000){
		warp "valkyrie", 48, 48;
	}else{
		switch(.@i){
			case 1:
				warp "izlude", 52, 137;
				break;
			case 2:
				warp "geffen", 64, 177;
				break;
			case 3:
				warp "pay_arche", 145, 164;
				break;		
			case 4:
				warp "prontera", 234, 314;
				break;
			case 5:
				warp "alberta", 36, 42;
				break;
			case 6:
				warp "moc_ruins", 58, 159;
				break;	
			case 7:
				warp "prontera", 35, 346;
				break;	
			case 8:
				warp "prt_church", 16, 41;
				break;	
			case 9:
				warp "geffen", 120, 111;
				break;	
			case 10:
				warp "einbroch", 255, 107;
				break;	
			case 11:
				warp "hu_in01", 381, 368;
				break;			
			case 12:
				warp "in_moc_16", 19, 33;
				break;	
			case 14:
				warp "prontera", 156, 356;
				break;
			case 15:
				warp "prt_monk", 184, 16;
				break;	
			case 16:
				warp "yuno_in03", 154, 35;
				break;	
			case 17:
				warp "cmd_fild07", 196, 117;
				break;	
			case 18:
				warp "alde_alche", 27, 185;
				break;	
			case 19:
				warp "comodo", 226, 122;
				break;	
			case 20:
				warp "comodo", 193, 150;
				break;	
		} 
	}
	end;
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
	set .ThirdClass,0;		// Enable third classes? (1: yes / 0: no)
	set .SecondExpanded,1;		// Enable new expanded second classes: Ex. Super Novice, Kagerou/Oboro, Rebellion? (1: yes / 0: no)
	set .SNovice,45;		// Minimum base level to turn into Super Novice
	set .LastJob,1;			// Enforce linear class changes? (1: yes / 0: no)
	set .SkillPointCheck,1;		// Force player to use up all skill points? (1: yes / 0: no)
	set .Platinum,0;		// Get platinum skills automatically? (1: yes / 0: no)
	end;
}

I started writing such a script today, this script is based on Euphys JobChanger NPC (credits to him, awesome work^^)

At the moment the expanded classes are missing, i am adding them soon

 

does kagero quest warp included in this script?

 

ok here it is: included the alternate 2nd jobs 

//Job Quest Warper NPC
//by: Geiszer "greyman15"
//Version 1.0
//Caution: don't touch in if you don't know how to change it..
//-----------------------Script Goes here--------------------//
prontera,159,187,3	script	Job Quester::Job Quester	733,{

	mes "[Job Quest]";
	mes "Hello there!";
	mes "are you qualified to test your";
	mes "self to change your job and";
	mes "choose what class do you want?";
	next;
	
	mes "[Job Quest]";
	mes "Then I'm here to help you on your";
	mes "trip to your chosen class.";
	next;
	
	mes "[Job Quest]";
	mes "Please make a Selection";
	next;
	menu "1st Job Quest",FJob,"2nd Job Quest",SJob,"Alternate Job Quest",ajob,"Super Novice",snov;
	next;

//First Job Quest----------------------------------	
FJob:
	mes "[Job Quest]";
	mes "Please Select what class";
	mes "will I warp you.";
	menu "Acolyte",aco,"Archer",arch,"Mage",mage,"Merchant",merch,"Swordman",sword,"Thief",thief;
	next;
	
aco:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "prt_church" ,184,36;
	close;

arch:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "payon_in02" ,64,66;
	close;
	
mage:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "geffen_in" ,157,119;
	close;
	
merch:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "alberta_in" ,61,43;
	close;

sword:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "izlude_in" ,74,166;
	close;

thief:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "moc_prydb1" ,47,120;
	close;

//Second Job Quest----------------------------------	
SJob:
	mes "[Job Quest]";
	mes "Please Select what class";
	mes "will I warp you.";
	menu "Priest",prst,"Hunter",hunt,"Wizard",wiz,"Blacksmith",blck,"Knight",cav,"Assassin",ass;
	next;

prst:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "prt_church" ,16,36;
	close;

hunt:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "hu_in01" ,382,373;
	close;
	
wiz:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "gef_tower" ,110,33;
	close;

blck:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "ein_in01" ,19,22;
	close;

cav:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "prt_in" ,82,102;
	close;

ass:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "in_moc_16" ,19,30;
	close;
//Alternate Job Quest--------------------------------------------
ajob:
	mes "[Job Quester]";
	mes "Please select what class";
	mes "will I warp you.";
	menu "Alchemist",alche,"Bard",bard,"Crusader",crus,"Dancer",dance,"Monk",mon,"Rogue",rog,"Sage",sag;
	next;

alche:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "alde_alche" ,27,180;
	close;

bard:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "comodo" ,226,120;
	close;

crus:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "prt_castle" ,45,164;
	close;

dance:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "comodo" ,180,150;
	close;

mon:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "prt_monk" ,59,244;
	close;

rog:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "moc_ruins" ,89,103;
	close;

sag:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "yuno_in02" ,41,61;
	close;

//Super Novice--------------------------------------------	
snov:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "aldeba_in" ,219,167;
	close;
	

}

does it have a rebirth warper and 3rd job quests warps?

kagerou too?

 

 

Orginal by Euhpy, edit by Normynator, ever class is included.

//===== rAthena Script =======================================
//= Job Warper
//===== By: ==================================================
//= Euphy, edit by Normynator
//===== Current Version: =====================================
//= 1.0
//===== Compatible With: ===================================== 
//= rAthena Project
//===== Description: =========================================
//= A functional job warper.
//============================================================

prontera,153,182,6	script	Job Warper	123,{
function Job_Menu;
	mes "[Job Warper]";
	if (Class > 4049) {
		mes "No more jobs are available.";
		close;
	}
	set .@eac, eaclass();
	set .@i, ((.ThirdClass)?roclass(.@eac&EAJ_UPPERMASK):Class);
	if (.@i > 6 && .@i < 22) {
		if (BaseLevel < .Rebirth[0] || JobLevel < .Rebirth[1]) {
			set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .Rebirth[1]-JobLevel;
			mes "You need "+((.@blvl>0)?.@blvl+" more base levels "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" more job levels ":"")+"to continue.";
			close;
		}
		while(1) {
			mes "Select an option.";
			next;
			set .@i, select(" ~ ^0055FFRebirth^000000:"+((.ThirdClass)?" ~ ^FF0000Third Class^000000":"")+": ~ ^777777Cancel^000000");
			if (.@i==3) close;
			mes "[Job Warper]";
			mes "Are you sure?";
			next;
			Job_Menu(((.@i==1)?4001:roclass(.@eac|EAJL_THIRD)));
			mes "[Job Warper]";
		}
	}
	set .@j1, roclass(.@eac|EAJL_2_1); set .@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]) {
			set .@blvl, .Rebirth[0]-BaseLevel; set .@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 == 4001 && .LastJob && lastJob) {
			mes "Switch classes now?";
			next;
			Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER));
		} else switch(Class) {
			case 0: Job_Menu(1,2,3,4,5,6,23,4046,24,25,4023);
			case 4001: Job_Menu(4002,4003,4004,4005,4006,4007);
			case 4023: Job_Menu(4024,4025,4026,4027,4028,4029,4045);
			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+4001);
	} else
		Job_Menu(.@j1,.@j2);
	close;

function Job_Menu {
	while(1) {
		if (getargcount() > 1) {
			mes "Select a job.";
			set .@menu$,"";
			for(set .@i,0; .@i<getargcount(); set .@i,.@i+1)
				set .@menu$, .@menu$+" ~ "+jobname(getarg(.@i))+":";
			set .@menu$, .@menu$+" ~ ^777777Cancel^000000";
			next;
			set .@i, getarg(select(.@menu$)-1,0);
			if (!.@i) close;
			if ((.@i == 23 || .@i == 4045) && BaseLevel < .SNovice) {
				mes "[Job Warper]";
				mes "A base level of "+.SNovice+" is required to turn into a "+jobname(.@i)+".";
				close;
			}
			mes "[Job Warper]";
			mes "Are you sure?";
			next;
		} else
			set .@i, getarg(0);
		if (select(" ~ Want to become a ^0055FF"+jobname(.@i)+"^000000 class: ~ ^777777"+((getargcount() > 1)?"Go back":"Cancel")+"^000000") == 1) {
			mes "[Job Warper]";
			mes "You are getting Warped to "+callfunc("F_InsertArticle",jobname(.@i))+" Quest Npc!";
			if (.@i==4001 && .LastJob) set lastJob, Class;
			//mes .@i;
			goto Job;
			//Warps here !!!!
			if (.@i==4001 || .@i==4023) warp "yuno_in02",88,164;
			//specialeffect2 EF_ANGEL2; specialeffect2 EF_ELECTRIC;
			close;
		}
		if (getargcount() == 1) return;
		mes "[Job Warper]";
	}
	end;
	
}
Job:
	if(.@i > 4000 && .@i < 4030 && !4046 && !4047 && !4049){
		warp "valkyrie", 48, 48;
	}else{
		switch(.@i){
			case 1:
				warp "izlude", 52, 137;
				break;
			case 2:
				warp "geffen", 64, 177;
				break;
			case 3:
				warp "pay_arche", 145, 164;
				break;		
			case 4:
				warp "prontera", 234, 314;
				break;
			case 5:
				warp "alberta", 36, 42;
				break;
			case 6:
				warp "moc_ruins", 58, 159;
				break;	
			case 7:
				warp "prontera", 35, 346;
				break;	
			case 8:
				warp "prt_church", 16, 41;
				break;	
			case 9:
				warp "geffen", 120, 111;
				break;	
			case 10:
				warp "einbroch", 255, 107;
				break;	
			case 11:
				warp "hu_in01", 381, 368;
				break;			
			case 12:
				warp "in_moc_16", 19, 33;
				break;	
			case 14:
				warp "prontera", 156, 356;
				break;
			case 15:
				warp "prt_monk", 184, 16;
				break;	
			case 16:
				warp "yuno_in03", 154, 35;
				break;	
			case 17:
				warp "cmd_fild07", 196, 117;
				break;	
			case 18:
				warp "alde_alche", 27, 185;
				break;	
			case 19:
				warp "comodo", 226, 122;
				break;	
			case 20:
				warp "comodo", 193, 150;
				break;	
			case 23:
				warp "aldebaran", 116, 63;
				break;
			case 24:
				warp "Einbroch Tower", 134,199;
				break;
			case 25:
				warp "alberta", 30,63;
				break;
			case 4046:
				warp "payon", 158, 140;
				break;
			case 4047:
				warp "payon", 215, 102;
				break;
			case 4049:
				warp "morocc", 55,259;
				break;
//==============3rd============================================
			case 4054:
			case 4060:
				warp "prt_in", 164, 23;
				break;
			case 4055:
			case 4061:
				warp "morroc", 102, 143;
				break;
			case 4056:
			case 4062:
				warp "tur_dun01", 157, 54;
				break;
			case 4057:
			case 4063:
				warp "prt_church", 103, 88;
				break;
			case 4058:
			case 4064:
				warp "yuno", 129, 156;
				break;
			case 4059:
			case 4065:
				warp "morroc", 45, 107;
				break;
			case 4066:
			case 4073:
				warp "prt_castle", 48, 161;
				break;
			case 4067:
			case 4074:
				warp "gef_tower", 102, 34;
				break;
			case 4068:
			case 4075:
				warp "alberta", 196, 133;
				break;
			case 4069:
			case 4076:
				warp "xmas", 161, 209;
				break;
			case 4070:
			case 4077:
				warp "ve_in", 241, 128;
				break;
			case 4071:
			case 4078:
				warp "alde_alche", 35, 185;
				break;
			case 4072:
			case 4079:
				warp "morroc", 156, 70;
				break;
			case 4211:
			case 4212:
				warp "amatsu", 21, 76;
				break;
			case 4215:
				warp "Hugel", 70,137;
				break;
		} 
	}
	end;
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
	set .ThirdClass,1;		// Enable third classes? (1: yes / 0: no)
	set .SecondExpanded,1;		// Enable new expanded second classes: Ex. Super Novice, Kagerou/Oboro, Rebellion? (1: yes / 0: no)
	set .SNovice,45;		// Minimum base level to turn into Super Novice
	set .LastJob,1;			// Enforce linear class changes? (1: yes / 0: no)
	set .SkillPointCheck,1;		// Force player to use up all skill points? (1: yes / 0: no)
	set .Platinum,0;		// Get platinum skills automatically? (1: yes / 0: no)
	end;
}
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  7
  • Topics Per Day:  0.00
  • Content Count:  26
  • Reputation:   2
  • Joined:  06/28/14
  • Last Seen:  

i made the script because he wants it in the first place a classic type of server i' didn't noticed that he want's a renewal class though.. :P

Edited by greyman15
  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  154
  • Topics Per Day:  0.03
  • Content Count:  493
  • Reputation:   46
  • Joined:  01/24/12
  • Last Seen:  

 

 

 

 

if you said classic style RO then you'll have to stick to the classic quest the way it is.. :)

//Job Quest Warper NPC
//by: Geiszer "greyman15"
//Version 1
//Caution: don't touch in if you don't know how to change it..
//-----------------------Script Goes here--------------------//
prontera,159,187,3	script	Job Quester::Job Quester	733,{

	mes "[Job Quest]";
	mes "Hello there!";
	mes "are you qualified to test your";
	mes "self to change your job and";
	mes "choose what class do you want?";
	next;
	
	mes "[Job Quest]";
	mes "Then I'm here to help you on your";
	mes "trip to your chosen class.";
	next;
	
	mes "[Job Quest]";
	mes "Please make a Selection";
	next;
	menu "1st Job Quest",FJob,"2nd Job Quest",SJob,"Super Novice",snov;
	next;
	
snov:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "aldeba_in" ,219,167;
	close;
	
//First Job Quest----------------------------------	
FJob:
	mes "[Job Quest]";
	mes "Please Select what class";
	mes "will I warp you.";
	menu "Acolyte",aco,"Archer",arch,"Mage",mage,"Merchant",merch,"Swordman",sword,"Thief",thief;
	next;
	
aco:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "prt_church" ,184,36;
	close;

arch:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "payon_in02" ,64,66;
	close;
	
mage:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "geffen_in" ,157,119;
	close;
	
merch:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "alberta_in" ,61,43;
	close;

sword:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "izlude_in" ,74,166;
	close;

thief:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "moc_prydb1" ,47,120;
	close;

//Second Job Quest----------------------------------	
SJob:
	mes "[Job Quest]";
	mes "Please Select what class";
	mes "will I warp you.";
	menu "Priest",prst,"Hunter",hunt,"Wizard",wiz,"Blacksmith",blck,"Knight",cav,"Assassin",ass;
	next;

prst:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "prt_church" ,16,36;
	close;

hunt:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "in_hunter" ,99,104;
	close;
	
wiz:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "gef_tower" ,110,33;
	close;

blck:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "ein_in01" ,19,22;
	close;

cav:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "prt_in" ,82,102;
	close;

ass:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "in_moc_16" ,19,30;
	close;
}

//Duplicates Here-----------------------------------------//
prontera,162,98,3	duplicate(Job Quester)	Job Quester#1-1	733
alberta,24,241,3	duplicate(Job Quester)	Job Quester#2-1	733
geffen,115,65,3	duplicate(Job Quester)	Job Quester#3-1	733
izlude,132,116,3	duplicate(Job Quester)	Job Quester#4-1	733
morocc,156,83,3	duplicate(Job Quester)	Job Quester#5-1	733
payon,144,231,3	duplicate(Job Quester)	Job Quester#6-1	733
morocc,169,257,3	duplicate(Job Quester)	Job Quester#7-1	733

here I tried my best to do it hope it works.... if something gone wrong in the script text file in the attached file just use this code..

this is what im looking for but its not complete

//===== rAthena Script =======================================
//= Job Warper
//===== By: ==================================================
//= Euphy, edit by Normynator
//===== Current Version: =====================================
//= 1.0
//===== Compatible With: ===================================== 
//= rAthena Project
//===== Description: =========================================
//= A job warper.
//============================================================

prontera,153,182,6	script	Job Warper	123,{
function Job_Menu;
	mes "[Job Warper]";
	if (Class > 4049) {
		mes "No more jobs are available.";
		close;
	}
	set .@eac, eaclass();
	set .@i, ((.ThirdClass)?roclass(.@eac&EAJ_UPPERMASK):Class);
	if (.@i > 6 && .@i < 22) {
		if (BaseLevel < .Rebirth[0] || JobLevel < .Rebirth[1]) {
			set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .Rebirth[1]-JobLevel;
			mes "You need "+((.@blvl>0)?.@blvl+" more base levels "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" more job levels ":"")+"to continue.";
			close;
		}
		while(1) {
			mes "Select an option.";
			next;
			set .@i, select(" ~ ^0055FFRebirth^000000:"+((.ThirdClass)?" ~ ^FF0000Third Class^000000":"")+": ~ ^777777Cancel^000000");
			if (.@i==3) close;
			mes "[Job Warper]";
			mes "Are you sure?";
			next;
			Job_Menu(((.@i==1)?4001:roclass(.@eac|EAJL_THIRD)));
			mes "[Job Warper]";
		}
	}
	set .@j1, roclass(.@eac|EAJL_2_1); set .@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]) {
			set .@blvl, .Rebirth[0]-BaseLevel; set .@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 == 4001 && .LastJob && lastJob) {
			mes "Switch classes now?";
			next;
			Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER));
		} else switch(Class) {
			case 0: Job_Menu(1,2,3,4,5,6,23,4046,24,25,4023);
			case 4001: Job_Menu(4002,4003,4004,4005,4006,4007);
			case 4023: Job_Menu(4024,4025,4026,4027,4028,4029,4045);
			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+4001);
	} else
		Job_Menu(.@j1,.@j2);
	close;

function Job_Menu {
	while(1) {
		if (getargcount() > 1) {
			mes "Select a job.";
			set .@menu$,"";
			for(set .@i,0; .@i<getargcount(); set .@i,.@i+1)
				set .@menu$, .@menu$+" ~ "+jobname(getarg(.@i))+":";
			set .@menu$, .@menu$+" ~ ^777777Cancel^000000";
			next;
			set .@i, getarg(select(.@menu$)-1,0);
			if (!.@i) close;
			if ((.@i == 23 || .@i == 4045) && BaseLevel < .SNovice) {
				mes "[Job Warper]";
				mes "A base level of "+.SNovice+" is required to turn into a "+jobname(.@i)+".";
				close;
			}
			mes "[Job Warper]";
			mes "Are you sure?";
			next;
		} else
			set .@i, getarg(0);
		if (select(" ~ Want to become a ^0055FF"+jobname(.@i)+"^000000 class: ~ ^777777"+((getargcount() > 1)?"Go back":"Cancel")+"^000000") == 1) {
			mes "[Job Warper]";
			mes "You are getting Warped to "+callfunc("F_InsertArticle",jobname(.@i))+" Quest Npc!";
			if (.@i==4001 && .LastJob) set lastJob, Class;
			//mes .@i;
			goto Job;
			//Warps here !!!!
			if (.@i==4001 || .@i==4023) warp "yuno_in02",88,164;
			//specialeffect2 EF_ANGEL2; specialeffect2 EF_ELECTRIC;
			close;
		}
		if (getargcount() == 1) return;
		mes "[Job Warper]";
	}
	end;
}
Job:
	if(.@i > 4000){
		warp "valkyrie", 48, 48;
	}else{
		switch(.@i){
			case 1:
				warp "izlude", 52, 137;
				break;
			case 2:
				warp "geffen", 64, 177;
				break;
			case 3:
				warp "pay_arche", 145, 164;
				break;		
			case 4:
				warp "prontera", 234, 314;
				break;
			case 5:
				warp "alberta", 36, 42;
				break;
			case 6:
				warp "moc_ruins", 58, 159;
				break;	
			case 7:
				warp "prontera", 35, 346;
				break;	
			case 8:
				warp "prt_church", 16, 41;
				break;	
			case 9:
				warp "geffen", 120, 111;
				break;	
			case 10:
				warp "einbroch", 255, 107;
				break;	
			case 11:
				warp "hu_in01", 381, 368;
				break;			
			case 12:
				warp "in_moc_16", 19, 33;
				break;	
			case 14:
				warp "prontera", 156, 356;
				break;
			case 15:
				warp "prt_monk", 184, 16;
				break;	
			case 16:
				warp "yuno_in03", 154, 35;
				break;	
			case 17:
				warp "cmd_fild07", 196, 117;
				break;	
			case 18:
				warp "alde_alche", 27, 185;
				break;	
			case 19:
				warp "comodo", 226, 122;
				break;	
			case 20:
				warp "comodo", 193, 150;
				break;	
		} 
	}
	end;
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
	set .ThirdClass,0;		// Enable third classes? (1: yes / 0: no)
	set .SecondExpanded,1;		// Enable new expanded second classes: Ex. Super Novice, Kagerou/Oboro, Rebellion? (1: yes / 0: no)
	set .SNovice,45;		// Minimum base level to turn into Super Novice
	set .LastJob,1;			// Enforce linear class changes? (1: yes / 0: no)
	set .SkillPointCheck,1;		// Force player to use up all skill points? (1: yes / 0: no)
	set .Platinum,0;		// Get platinum skills automatically? (1: yes / 0: no)
	end;
}

I started writing such a script today, this script is based on Euphys JobChanger NPC (credits to him, awesome work^^)

At the moment the expanded classes are missing, i am adding them soon

 

does kagero quest warp included in this script?

 

ok here it is: included the alternate 2nd jobs 

//Job Quest Warper NPC
//by: Geiszer "greyman15"
//Version 1.0
//Caution: don't touch in if you don't know how to change it..
//-----------------------Script Goes here--------------------//
prontera,159,187,3	script	Job Quester::Job Quester	733,{

	mes "[Job Quest]";
	mes "Hello there!";
	mes "are you qualified to test your";
	mes "self to change your job and";
	mes "choose what class do you want?";
	next;
	
	mes "[Job Quest]";
	mes "Then I'm here to help you on your";
	mes "trip to your chosen class.";
	next;
	
	mes "[Job Quest]";
	mes "Please make a Selection";
	next;
	menu "1st Job Quest",FJob,"2nd Job Quest",SJob,"Alternate Job Quest",ajob,"Super Novice",snov;
	next;

//First Job Quest----------------------------------	
FJob:
	mes "[Job Quest]";
	mes "Please Select what class";
	mes "will I warp you.";
	menu "Acolyte",aco,"Archer",arch,"Mage",mage,"Merchant",merch,"Swordman",sword,"Thief",thief;
	next;
	
aco:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "prt_church" ,184,36;
	close;

arch:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "payon_in02" ,64,66;
	close;
	
mage:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "geffen_in" ,157,119;
	close;
	
merch:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "alberta_in" ,61,43;
	close;

sword:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "izlude_in" ,74,166;
	close;

thief:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "moc_prydb1" ,47,120;
	close;

//Second Job Quest----------------------------------	
SJob:
	mes "[Job Quest]";
	mes "Please Select what class";
	mes "will I warp you.";
	menu "Priest",prst,"Hunter",hunt,"Wizard",wiz,"Blacksmith",blck,"Knight",cav,"Assassin",ass;
	next;

prst:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "prt_church" ,16,36;
	close;

hunt:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "hu_in01" ,382,373;
	close;
	
wiz:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "gef_tower" ,110,33;
	close;

blck:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "ein_in01" ,19,22;
	close;

cav:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "prt_in" ,82,102;
	close;

ass:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "in_moc_16" ,19,30;
	close;
//Alternate Job Quest--------------------------------------------
ajob:
	mes "[Job Quester]";
	mes "Please select what class";
	mes "will I warp you.";
	menu "Alchemist",alche,"Bard",bard,"Crusader",crus,"Dancer",dance,"Monk",mon,"Rogue",rog,"Sage",sag;
	next;

alche:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "alde_alche" ,27,180;
	close;

bard:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "comodo" ,226,120;
	close;

crus:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "prt_castle" ,45,164;
	close;

dance:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "comodo" ,180,150;
	close;

mon:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "prt_monk" ,59,244;
	close;

rog:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "moc_ruins" ,89,103;
	close;

sag:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "yuno_in02" ,41,61;
	close;

//Super Novice--------------------------------------------	
snov:
	mes "[Job Quest]";
	mes "Well good luck to your quest";
	warp "aldeba_in" ,219,167;
	close;
	

}

does it have a rebirth warper and 3rd job quests warps?

kagerou too?

 

 

Orginal by Euhpy, edit by Normynator, ever class is included.

//===== rAthena Script =======================================
//= Job Warper
//===== By: ==================================================
//= Euphy, edit by Normynator
//===== Current Version: =====================================
//= 1.0
//===== Compatible With: ===================================== 
//= rAthena Project
//===== Description: =========================================
//= A functional job warper.
//============================================================

prontera,153,182,6	script	Job Warper	123,{
function Job_Menu;
	mes "[Job Warper]";
	if (Class > 4049) {
		mes "No more jobs are available.";
		close;
	}
	set .@eac, eaclass();
	set .@i, ((.ThirdClass)?roclass(.@eac&EAJ_UPPERMASK):Class);
	if (.@i > 6 && .@i < 22) {
		if (BaseLevel < .Rebirth[0] || JobLevel < .Rebirth[1]) {
			set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .Rebirth[1]-JobLevel;
			mes "You need "+((.@blvl>0)?.@blvl+" more base levels "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" more job levels ":"")+"to continue.";
			close;
		}
		while(1) {
			mes "Select an option.";
			next;
			set .@i, select(" ~ ^0055FFRebirth^000000:"+((.ThirdClass)?" ~ ^FF0000Third Class^000000":"")+": ~ ^777777Cancel^000000");
			if (.@i==3) close;
			mes "[Job Warper]";
			mes "Are you sure?";
			next;
			Job_Menu(((.@i==1)?4001:roclass(.@eac|EAJL_THIRD)));
			mes "[Job Warper]";
		}
	}
	set .@j1, roclass(.@eac|EAJL_2_1); set .@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]) {
			set .@blvl, .Rebirth[0]-BaseLevel; set .@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 == 4001 && .LastJob && lastJob) {
			mes "Switch classes now?";
			next;
			Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER));
		} else switch(Class) {
			case 0: Job_Menu(1,2,3,4,5,6,23,4046,24,25,4023);
			case 4001: Job_Menu(4002,4003,4004,4005,4006,4007);
			case 4023: Job_Menu(4024,4025,4026,4027,4028,4029,4045);
			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+4001);
	} else
		Job_Menu(.@j1,.@j2);
	close;

function Job_Menu {
	while(1) {
		if (getargcount() > 1) {
			mes "Select a job.";
			set .@menu$,"";
			for(set .@i,0; .@i<getargcount(); set .@i,.@i+1)
				set .@menu$, .@menu$+" ~ "+jobname(getarg(.@i))+":";
			set .@menu$, .@menu$+" ~ ^777777Cancel^000000";
			next;
			set .@i, getarg(select(.@menu$)-1,0);
			if (!.@i) close;
			if ((.@i == 23 || .@i == 4045) && BaseLevel < .SNovice) {
				mes "[Job Warper]";
				mes "A base level of "+.SNovice+" is required to turn into a "+jobname(.@i)+".";
				close;
			}
			mes "[Job Warper]";
			mes "Are you sure?";
			next;
		} else
			set .@i, getarg(0);
		if (select(" ~ Want to become a ^0055FF"+jobname(.@i)+"^000000 class: ~ ^777777"+((getargcount() > 1)?"Go back":"Cancel")+"^000000") == 1) {
			mes "[Job Warper]";
			mes "You are getting Warped to "+callfunc("F_InsertArticle",jobname(.@i))+" Quest Npc!";
			if (.@i==4001 && .LastJob) set lastJob, Class;
			//mes .@i;
			goto Job;
			//Warps here !!!!
			if (.@i==4001 || .@i==4023) warp "yuno_in02",88,164;
			//specialeffect2 EF_ANGEL2; specialeffect2 EF_ELECTRIC;
			close;
		}
		if (getargcount() == 1) return;
		mes "[Job Warper]";
	}
	end;
	
}
Job:
	if(.@i > 4000 && .@i < 4030 && !4046 && !4047 && !4049){
		warp "valkyrie", 48, 48;
	}else{
		switch(.@i){
			case 1:
				warp "izlude", 52, 137;
				break;
			case 2:
				warp "geffen", 64, 177;
				break;
			case 3:
				warp "pay_arche", 145, 164;
				break;		
			case 4:
				warp "prontera", 234, 314;
				break;
			case 5:
				warp "alberta", 36, 42;
				break;
			case 6:
				warp "moc_ruins", 58, 159;
				break;	
			case 7:
				warp "prontera", 35, 346;
				break;	
			case 8:
				warp "prt_church", 16, 41;
				break;	
			case 9:
				warp "geffen", 120, 111;
				break;	
			case 10:
				warp "einbroch", 255, 107;
				break;	
			case 11:
				warp "hu_in01", 381, 368;
				break;			
			case 12:
				warp "in_moc_16", 19, 33;
				break;	
			case 14:
				warp "prontera", 156, 356;
				break;
			case 15:
				warp "prt_monk", 184, 16;
				break;	
			case 16:
				warp "yuno_in03", 154, 35;
				break;	
			case 17:
				warp "cmd_fild07", 196, 117;
				break;	
			case 18:
				warp "alde_alche", 27, 185;
				break;	
			case 19:
				warp "comodo", 226, 122;
				break;	
			case 20:
				warp "comodo", 193, 150;
				break;	
			case 23:
				warp "aldebaran", 116, 63;
				break;
			case 24:
				warp "Einbroch Tower", 134,199;
				break;
			case 25:
				warp "alberta", 30,63;
				break;
			case 4046:
				warp "payon", 158, 140;
				break;
			case 4047:
				warp "payon", 215, 102;
				break;
			case 4049:
				warp "morocc", 55,259;
				break;
//==============3rd============================================
			case 4054:
			case 4060:
				warp "prt_in", 164, 23;
				break;
			case 4055:
			case 4061:
				warp "morroc", 102, 143;
				break;
			case 4056:
			case 4062:
				warp "tur_dun01", 157, 54;
				break;
			case 4057:
			case 4063:
				warp "prt_church", 103, 88;
				break;
			case 4058:
			case 4064:
				warp "yuno", 129, 156;
				break;
			case 4059:
			case 4065:
				warp "morroc", 45, 107;
				break;
			case 4066:
			case 4073:
				warp "prt_castle", 48, 161;
				break;
			case 4067:
			case 4074:
				warp "gef_tower", 102, 34;
				break;
			case 4068:
			case 4075:
				warp "alberta", 196, 133;
				break;
			case 4069:
			case 4076:
				warp "xmas", 161, 209;
				break;
			case 4070:
			case 4077:
				warp "ve_in", 241, 128;
				break;
			case 4071:
			case 4078:
				warp "alde_alche", 35, 185;
				break;
			case 4072:
			case 4079:
				warp "morroc", 156, 70;
				break;
			case 4211:
			case 4212:
				warp "amatsu", 21, 76;
				break;
			case 4215:
				warp "Hugel", 70,137;
				break;
		} 
	}
	end;
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
	set .ThirdClass,1;		// Enable third classes? (1: yes / 0: no)
	set .SecondExpanded,1;		// Enable new expanded second classes: Ex. Super Novice, Kagerou/Oboro, Rebellion? (1: yes / 0: no)
	set .SNovice,45;		// Minimum base level to turn into Super Novice
	set .LastJob,1;			// Enforce linear class changes? (1: yes / 0: no)
	set .SkillPointCheck,1;		// Force player to use up all skill points? (1: yes / 0: no)
	set .Platinum,0;		// Get platinum skills automatically? (1: yes / 0: no)
	end;
}

im going to try this ,

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