Jump to content
  • 0

Custom 3rd Job Changer


Gidz Cross

Question


  • Group:  Members
  • Topic Count:  123
  • Topics Per Day:  0.03
  • Content Count:  640
  • Reputation:   82
  • Joined:  04/07/14
  • Last Seen:  

Hello guys. I know we have the default jobmaster in our rathena. Well i disabled the 3rd job class there. I want a separate npc that can change players into 3rd job.

 

i have one here (one from my old server) its very dirty and doesnt do what i want.

here is the code

//===== eAthena Script =======================================
//= eAthena Jobchanger AKA Aone
//===== By: ==================================================
//= eAthena Dev Team [Ori:LunatikBunnie] [Cur:Lance]
//===== Current Version: =====================================
//= 1.5a
//===== Compatible With: =====================================
//= eAthena SVN Trunk 6674
//===== Description: =========================================
//= Changes your job without asking too much
//= For other info, please contact me at [email protected]
//= Editted menu to avoid button mashing.
//= 1.3 Added TK/SL/SG, thanks to Haplo. Fixed minor bugs [Lupus]
//= script leaves grabage variable: 'lastJob'
//= 1.4 Added NJ/GS, changed all job numbers to Job_* constants.
//= All credits go to pxxx [Skotlex]
//= 1.5 Rewrite everything from scratch. [Lance]
//= 1.5a fixed Baby -> Super Baby change. Switched to JobName() [Lupus]
//============================================================

prontera,163,190,5	script	3rd Job Master	703,{

	mes "^ff0000[Jamie]^000000";


		if(Class == Job_Lord_Knight || Class == Job_Paladin || Class == Job_Champion || Class == Job_High_Priest || Class == Job_High_Wizard || Class == Job_Professor ||Class == Job_Whitesmith || Class == Job_Creator || Class == Job_Stalker ||Class == Job_Assassin_Cross || Class == Job_Sniper || Class == Job_Gypsy || Class == Job_Clown){

		mes "I know, I know, you wanna be a 3rd class, right?";
		next;
		mes "Now, don't feel down... I'm gonna change you right away...";
		next;
		mes "Unless you wanna change your mind?";
		next;
		menu "I don't want to yet...",E_quit,"Yes, Please!!~",N_change;

		}

		else{
			mes "No more jobs are available";
			next;
			next;
			mes "BYE BYE!!~";
			
			close;
		
		}
		
N_change:		
		
	RK:
		if(Class == Job_Lord_Knight){
		mes "To become Rune Knight,";
		mes "you must have the following items.";
		next;
		mes "You need to give me these:";
		mes "1 TCG";
		mes "5 Poring Card.";
		menu "Okay i have it!",RKc;
		}
	
	RG:
		if(Class == Job_Paladin){
		mes "RG";
		mes "RG";
		next;
		menu "DO YOU HAVE IT ALL??",RGc;
		close;
		}
		
	SURA:
		if(Class == Job_Champion){
		mes "SURA";
		mes "SURA";
		next;
		menu "DO YOU HAVE IT ALL??",SURAc;
		close;
		}
	
	AB:
		if(Class == Job_High_Priest){
		mes "AB";
		mes "AB";
		next;
		menu "DO YOU HAVE IT ALL??",ABc;
		close;
		}
		
	WL:
		if(Class == Job_High_Wizard){
		mes "WL";
		mes "WL";
		next;
		menu "DO YOU HAVE IT ALL??",WLc;
		close;
		}
		
	SORCE:
		if(Class == Job_Professor){
		mes "SORCE";
		mes "SORCE";
		next;
		menu "DO YOU HAVE IT ALL??",SORCEc;
		close;
		}
	GEN:
		if(Class == Job_Creator){
		mes "GEN";
		mes "GEN";
		next;
		menu "DO YOU HAVE IT ALL??",GENc;
		close;
		}
	MECH:
		if(Class == Job_Whitesmith){
		mes "MECH";
		mes "MECH";
		next;
		menu "DO YOU HAVE IT ALL??",MECHc;
		close;
		}
	SC:
		if(Class == Job_Stalker){
		mes "SC";
		mes "SC";
		next;
		menu "DO YOU HAVE IT ALL??",SCc;
		close;
		}

	GX:
		if(Class == Job_Assassin_Cross){
		mes "GX";
		mes "GX";
		next;
		menu "DO YOU HAVE IT ALL??",GXc;
		close;
		}

	RAN:
		if(Class == Job_Sniper){
		mes "RAN";
		mes "RAN";
		next;
		menu "DO YOU HAVE IT ALL??",RANc;
		close;
		}

	MW:
		if(Class == Job_Gypsy || Class == Job_Clown){
		mes "MW";
		mes "MW";
		next;
		menu "DO YOU HAVE IT ALL??",MWc;
		close;
		}
		

				
		RKc:
				if(Class == Job_Lord_Knight && countitem(7227) > 5){
					mes "ABRA!!";
					next;
					mes "KADABRA~~";
					next;
					mes "ALAKAZAM!!~~";
					next;
					set JobLevel, 1;
					set SkillPoint, 0;
					jobchange 4060;
					callfunc "F_ClearJobVar";
					delitem 7227,5;
					mes "CONGRATS!!";
					next;
					mes "NOW YOU ARE A RUNE KNIGHT";
					mes "KEEP PLAYING AND SUPPORT HELLRO~~";
					next;
					mes "KILL THEM ALL AND HAVE FUN!!";
					close;
				}
		RGc:	
				if(Class == Job_Paladin && countitem(1009) > 0){
					mes "ABRA!!";
					next;
					mes "KADABRA~~";
					next;
					mes "ALAKAZAM!!~~";
					next;
					set JobLevel, 1;
					set SkillPoint, 0;
					jobchange 4073;
					callfunc "F_ClearJobVar";
					delitem 7227,1;
					mes "CONGRATS!!";
					next;
					mes "NOW YOU ARE A RUNE KNIGHT";
					mes "KEEP PLAYING AND SUPPORT HELLRO~~";
					next;
					mes "KILL THEM ALL AND HAVE FUN!!";
					close;
				}
		SURAc:
				if(Class == Job_Champion){
					mes "ABRA!!";
					next;
					mes "KADABRA~~";
					next;
					mes "ALAKAZAM!!~~";
					next;
					set JobLevel, 1;
					set SkillPoint, 0;
					jobchange 4077;
					callfunc "F_ClearJobVar";
					mes "CONGRATS!!";
					next;
					mes "NOW YOU ARE A RUNE KNIGHT";
					mes "KEEP PLAYING AND SUPPORT HELLRO~~";
					next;
					mes "KILL THEM ALL AND HAVE FUN!!";
					close;
				}
		ABc:
				if(Class == Job_High_Priest){
					mes "ABRA!!";
					next;
					mes "KADABRA~~";
					next;
					mes "ALAKAZAM!!~~";
					next;
					set JobLevel, 1;
					set SkillPoint, 0;
					jobchange 4063;
					callfunc "F_ClearJobVar";
					delitem 7227,1;
					mes "CONGRATS!!";
					next;
					mes "NOW YOU ARE A RUNE KNIGHT";
					mes "KEEP PLAYING AND SUPPORT HELLRO~~";
					next;
					mes "KILL THEM ALL AND HAVE FUN!!";
					close;
				}
		GENc:
				if(Class == Job_Creator){
					mes "ABRA!!";
					next;
					mes "KADABRA~~";
					next;
					mes "ALAKAZAM!!~~";
					next;
					set JobLevel, 1;
					set SkillPoint, 0;
					jobchange 4078;
					callfunc "F_ClearJobVar";
					delitem 7227,1;
					mes "CONGRATS!!";
					next;
					mes "NOW YOU ARE A RUNE KNIGHT";
					mes "KEEP PLAYING AND SUPPORT HELLRO~~";
					next;
					mes "KILL THEM ALL AND HAVE FUN!!";
					close;
				}
		MECHc:
				if(Class == Job_Whitesmith){
					mes "ABRA!!";
					next;
					mes "KADABRA~~";
					next;
					mes "ALAKAZAM!!~~";
					next;
					set JobLevel, 1;
					set SkillPoint, 0;
					jobchange 4064;
					callfunc "F_ClearJobVar";
					delitem 7227,1;
					mes "CONGRATS!!";
					next;
					mes "NOW YOU ARE A RUNE KNIGHT";
					mes "KEEP PLAYING AND SUPPORT HELLRO~~";
					next;
					mes "KILL THEM ALL AND HAVE FUN!!";
					close;
				}
		SCc:
				if(Class == Job_Stalker){
					mes "ABRA!!";
					next;
					mes "KADABRA~~";
					next;
					mes "ALAKAZAM!!~~";
					next;
					set JobLevel, 1;
					set SkillPoint, 0;
					jobchange 4079;
					callfunc "F_ClearJobVar";
					delitem 7227,1;
					mes "CONGRATS!!";
					next;
					mes "NOW YOU ARE A RUNE KNIGHT";
					mes "KEEP PLAYING AND SUPPORT HELLRO~~";
					next;
					mes "KILL THEM ALL AND HAVE FUN!!";
					close;
				}
		GXc:
				if(Class == Job_Assassin_Cross){
					mes "ABRA!!";
					next;
					mes "KADABRA~~";
					next;
					mes "ALAKAZAM!!~~";
					next;
					set JobLevel, 1;
					set SkillPoint, 0;
					jobchange 4065;
					callfunc "F_ClearJobVar";
					delitem 7227,1;
					mes "CONGRATS!!";
					next;
					mes "NOW YOU ARE A RUNE KNIGHT";
					mes "KEEP PLAYING AND SUPPORT HELLRO~~";
					next;
					mes "KILL THEM ALL AND HAVE FUN!!";
					close;
				}
		WLc:
				if(Class == Job_High_Wizard){
					mes "ABRA!!";
					next;
					mes "KADABRA~~";
					next;
					mes "ALAKAZAM!!~~";
					next;
					set JobLevel, 1;
					set SkillPoint, 0;
					jobchange 4061;
					callfunc "F_ClearJobVar";
					delitem 7227,1;
					mes "CONGRATS!!";
					next;
					mes "NOW YOU ARE A RUNE KNIGHT";
					mes "KEEP PLAYING AND SUPPORT HELLRO~~";
					next;
					mes "KILL THEM ALL AND HAVE FUN!!";
					close;
				}
		SORCEc:
				if(Class == Job_Professor){
					mes "ABRA!!";
					next;
					mes "KADABRA~~";
					next;
					mes "ALAKAZAM!!~~";
					next;
					set JobLevel, 1;
					set SkillPoint, 0;
					jobchange 4074;
					callfunc "F_ClearJobVar";
					delitem 7227,1;
					mes "CONGRATS!!";
					next;
					mes "NOW YOU ARE A RUNE KNIGHT";
					mes "KEEP PLAYING AND SUPPORT HELLRO~~";
					next;
					mes "KILL THEM ALL AND HAVE FUN!!";
					close;
				}
		RANc:
				if(Class == Job_Sniper){
					mes "ABRA!!";
					next;
					mes "KADABRA~~";
					next;
					mes "ALAKAZAM!!~~";
					next;
					set JobLevel, 1;
					set SkillPoint, 0;
					jobchange 4062;
					callfunc "F_ClearJobVar";
					delitem 7227,1;
					mes "CONGRATS!!";
					next;
					mes "NOW YOU ARE A RUNE KNIGHT";
					mes "KEEP PLAYING AND SUPPORT HELLRO~~";
					next;
					mes "KILL THEM ALL AND HAVE FUN!!";
					close;
				}
		MWc:
				if(Class == Job_Clown){
					mes "ABRA!!";
					next;
					mes "KADABRA~~";
					next;
					mes "ALAKAZAM!!~~";
					next;
					set JobLevel, 1;
					set SkillPoint, 0;
					jobchange 4075;
					callfunc "F_ClearJobVar";
					delitem 7227,1;
					mes "CONGRATS!!";
					next;
					mes "NOW YOU ARE A RUNE KNIGHT";
					mes "KEEP PLAYING AND SUPPORT HELLRO~~";
					next;
					mes "KILL THEM ALL AND HAVE FUN!!";
					close;
				}
				if(Class == Job_Gypsy){
					set JobLevel, 1;
					set SkillPoint, 0;
					jobchange 4076;
					callfunc "F_ClearJobVar";
					delitem 7227,1;
					mes "CONGRATS!!";
					next;
					mes "NOW YOU ARE A RUNE KNIGHT";
					mes "KEEP PLAYING AND SUPPORT HELLRO~~";
					next;
					mes "KILL THEM ALL AND HAVE FUN!!";
					close;
				}
				
				else{
				next;
				mes "ARE YOU AN IDIOT??";
				next;
				mes "PLEASE CHECK EVERYTHING BEFORE YOU TALK TO ME!!";
				next;
				mes "BYE~~";
				close;
				}
				
E_quit:		
		mes ".....";
		mes "Well, I think it's okay if you're not ready yet.";
		emotion e_sweat;
		close;
}

It works alright. This is perfect for those free job change. What i want is these....

 

1. Player must be lvl 200 to be able to change into 3rd class (i set my server to 255 max joblevel)

2. Player must provide 2 to 5 items to be able to become 3rd class. (editable and can add or lessen the item requirements)

3. when player become 3rd class it will broadcast to the whole server like Wowowow! <playername> has become a Champion!

something like that.

thank you so much guys!

Edited by gidzdlcrz
additional infos
Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0

  • Group:  Members
  • Topic Count:  19
  • Topics Per Day:  0.01
  • Content Count:  398
  • Reputation:   246
  • Joined:  07/04/19
  • Last Seen:  

if you want to add more item requirements 

countitem(512) >= 500 || countitem(513) >= 500

and so on..

//==============================================================================//
//= Script Release : Job Changer + Max Leveler  [ Version 1.5 ]
//==================================By==========================================//
//= ManiacSociety
//==============================================================================//
//= Idea Came From : ManiacSociety
//= Helper : Emistry & Kenpachi
//==============================================================================//
//= D E S C R I P T I O N S
//==============================================================================//
// -- 1. Character can choose a Job which he like to be.
// -- 2. This NPC only have 1 Time Usage.
//		 If it is set to Account Based then that account can use 1 times.
//		 If it is set to Character Based then all new character can use 1 times.
// -- 3. Complete skills / Skill Points will be given if it is set to be.
// -- 4. Base Level and Job Level will be given upon Job Change.
//==============================================================================//
//= V E R S I O N S
//==============================================================================//
// -- [ 1.5 ] : Added Configuration for Account Based / Character Based Settings
// -- [ 1.4 ] : Added Baby Classes + 3rd Job Classes.							
// -- [ 1.3 ] : Added Configuration Option , 4 Announce Option , Informations.			
// -- [ 1.2 ] : Simplified Scripts + Shorten the Scripts.							
// -- [ 1.1 ] : Added New Job Change Option.									
// -- [ 1.0 ] : Simple Login Auto Max Level + Job Changer.						
//==============================================================================//
//= R U L E S
//==============================================================================//
// -- 1. Do not use for exchanging purpose.										
// -- 2. Do not claim it as yours.												
// -- 3. Do not change or remove the credits.
// -- 4. Do not sell the script in order to get paid.
// -- 5. Do not re-sharing upon modified without permission.
//==============================================================================//
-- Update By Krane

//==============================================================================//


prontera,153,189,5	script	Job Changer2	620,{  
//OnPCLoginEvent:

// -- Configuration Option
set .npcname$,"[ ^0000FF Class Helper ^000000 ]";
set .InfoMenu,0;					// Classes Informations Option [ 0 - Disable / 1 - Enable ]
set .1stClassMenu,0;				// First Job Class Option [ 0 - Disable / 1 - Enable ]
set .2ndClassMenu,0;				// Second Job Class Option [ 0 - Disable / 1 - Enable ]
set .High1stClassMenu,0;			// High 1st Class Option [ 0 - Disable / 1 - Enable ]
set .Trans2ndClassMenu,0;			// Transcendent Class Option [ 0 - Disable / 1 - Enable ]
set .Trans3rdClassMenu,1;			// Third Job Class Option [ 0 - Disable / 1 - Enable ]
set .ExpandedClassMenu,0;			// Expanded Class Option [ 0 - Disable / 1 - Enable ]
set .BabyClassMenu,0;				// Baby Job Class Option [ 0 - Disable / 1 - Enable ]
set .Baby3rdClassMenu,0;			// Baby Third Job Class Option [ 0 - Disable / 1 - Enable ]
set .Allskills,1;					// Complete Skills Option [ 0 - Disable / 1 - Enable ]

// -- Usable for Only 1 Time
set .Based,1;						// [ 0 - Account Based  / 1 - Character Based ]


if( ClassHelper == 1 || #ClassHelper == 1 ) end;

Main_Menu:
	mes .npcname$;
	mes "I am the Job Class Helper...";
	mes "I am here to help you.";
	mes " ^FF0000________________________________^000000";
	mes "Do you wish to become Stronger ?";
	mes " ^FF0000________________________________^000000";
	next;
	mes .npcname$;
	mes "Do you admire those who have a great power ? Do you wish to become a part of them ? If yes , then which classes that you admire the most ?";
	next;
	if( BaseLevel >= 200 ){
}else{
			mes "Sorry you need to reach level 200";
			close;
		}
	switch(select(( .InfoMenu == 0 )?"":"^4EEE94Classes Information^000000",
				( .1stClassMenu == 0 )?"":"^0000FFFirst Job Classes^000000",
				( .2ndClassMenu == 0 )?"":"^0000FFSecond Job Classes^000000",	
				( .High1stClassMenu == 0 )?"":"^0000FFHigh First Job Classes^000000",	
				( .Trans2ndClassMenu == 0 )?"":"^0000FFTranscendent Job Classes^000000",	
				( .Trans3rdClassMenu == 0 )?"":"^0000FFThird Job Classes^000000",		
				( .ExpandedClassMenu == 0 )?"":"^0000FFExpanded Job Classes^000000",	
				( .BabyClassMenu == 0 )?"":"^0000FFBaby Normal Job Classes^000000",		
				( .Baby3rdClassMenu == 0 )?"":"^0000FFBaby Third Job Classes^000000",		
				"^FF0000Sorry, i admire nobody....^000000")) {

					Case 1: goto Classes_info;
					Case 2:	goto FirstJob_Classes;
					Case 3:	goto SecondJob_Classes;
					Case 4:	goto HighFirstJob_Classes;
					Case 5:	goto TransSecondJob_Classes;
					Case 6:	goto TransThirdJob_Classes;
					Case 7:	goto ExpandedJob_Classes;
					Case 8:	goto BabyJob_Classes;
					Case 9:	goto BabyThirdJob_Classes;
					Case 10:	close;
			}
	
FirstJob_Classes:
	mes .npcname$;
	mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes.";
	next;
	switch(select("^76EE00Swordman^000000",
				"^76EE00Magician^000000",
				"^76EE00Archer^000000",
				"^76EE00Acolyte^000000",
				"^76EE00Merchant^000000",
				"^76EE00Thief^000000",
				"^FF0000Back^000000")) {

// --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;	

			Case 1:	callsub Job_Changing,1,99,50,60,"All";
			Case 2:	callsub Job_Changing,2,99,50,60,"All";
			Case 3:	callsub Job_Changing,3,99,50,60,"All";
			Case 4:	callsub Job_Changing,4,99,50,60,"All";
			Case 5:	callsub Job_Changing,5,99,50,60,"All";
			Case 6:	callsub Job_Changing,6,99,50,60,"All";
			Case 7:	goto Main_Menu;
		}

HighFirstJob_Classes:
	mes .npcname$;
	mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes.";
	next;
	switch(select("^76EE00High Swordman^000000",
				"^76EE00High Magician^000000",
				"^76EE00High Archer^000000",
				"^76EE00High Acolyte^000000",
				"^76EE00High Merchant^000000",
				"^76EE00High Thief^000000",
				"^FF0000Back^000000")) {

// --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;	

			Case 1:	callsub Job_Changing,4002,99,50,60,"All";
			Case 2:	callsub Job_Changing,4003,99,50,60,"All";
			Case 3:	callsub Job_Changing,4004,99,50,60,"All";
			Case 4:	callsub Job_Changing,4005,99,50,60,"All";
			Case 5:	callsub Job_Changing,4006,99,50,60,"All";
			Case 6:	callsub Job_Changing,4007,99,50,60,"All";
			Case 7:	goto Main_Menu;
		}
		
SecondJob_Classes:
	mes .npcname$;
	mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes.";
	next;
	switch(select("^76EE00Knight^000000",
				"^76EE00Priest^000000",
				"^76EE00Wizard^000000",
				"^76EE00Blacksmith^000000",
				"^76EE00Hunter^000000",
				"^76EE00Assassin^000000",
				"^76EE00Crusader^000000",
				"^76EE00Monk^000000",
				"^76EE00Sage^000000",
				"^76EE00Rogue^000000",
				"^76EE00Alchemist^000000",
				( Sex == 0 )?"":"^76EE00Dancer^000000",		
				( Sex == 1 )?"":"^76EE00Bard^000000",	
				"^FF0000Back^000000")) {

// --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;	
			
			Case 1:	callsub Job_Changing,7,99,50,110,"All";
			Case 2:	callsub Job_Changing,8,99,50,110,"All";
			Case 3:	callsub Job_Changing,9,99,50,110,"All";
			Case 4:	callsub Job_Changing,10,99,50,110,"All";
			Case 5:	callsub Job_Changing,11,99,50,110,"All";
			Case 6:	callsub Job_Changing,12,99,50,110,"All";
			Case 7:	callsub Job_Changing,14,99,50,110,"All";
			Case 8:	callsub Job_Changing,15,99,50,110,"All";
			Case 9:	callsub Job_Changing,16,99,50,110,"All";
			Case 10:	callsub Job_Changing,17,99,50,110,"All";
			Case 11:	callsub Job_Changing,18,99,50,110,"All";
			Case 12:	callsub Job_Changing,20,99,50,110,"All";
			Case 13:	callsub Job_Changing,19,99,50,110,"All";
			Case 14:	goto Main_Menu;
		}

TransSecondJob_Classes:
	mes .npcname$;
	mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes.";
	next;
	switch(select("^76EE00Lord Knight^000000",
				"^76EE00High Priest^000000",
				"^76EE00High Wizard^000000",
				"^76EE00Whitesmith^000000",
				"^76EE00Sniper^000000",
				"^76EE00Assassin Cross^000000",
				"^76EE00Paladin^000000",
				"^76EE00Champion^000000",
				"^76EE00Professor^000000",
				"^76EE00Stalker^000000",
				"^76EE00Creator^000000",
				( Sex == 0 )?"":"^76EE00Gypsy^000000",		
				( Sex == 1 )?"":"^76EE00Clown^000000",	
				"^FF0000Back^000000")) {

// --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;	
			
			Case 1:	callsub Job_Changing,4008,255,120,130,"All";
			Case 2:	callsub Job_Changing,4009,255,120,130,"All";
			Case 3:	callsub Job_Changing,4010,255,120,130,"All";
			Case 4:	callsub Job_Changing,4011,255,120,130,"All";
			Case 5:	callsub Job_Changing,4012,255,120,130,"All";
			Case 6:	callsub Job_Changing,4013,255,120,130,"All";
			Case 7:	callsub Job_Changing,4015,255,120,130,"All";
			Case 8:	callsub Job_Changing,4016,255,120,130,"All";
			Case 9:	callsub Job_Changing,4017,255,120,130,"All";
			Case 10:	callsub Job_Changing,4018,255,120,130,"All";
			Case 11:	callsub Job_Changing,4019,255,120,130,"All";
			Case 12:	callsub Job_Changing,4021,255,120,130,"All";
			Case 13:	callsub Job_Changing,4020,255,120,130,"All";
			Case 14:	goto Main_Menu;
		}

TransThirdJob_Classes:
	mes .npcname$;
	mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes.";
	next;
	if(countitem(512) >= 500){
	}else{
	mes "Sorry you need 500 Apple to change 3rd job class";
	close;
	}
	switch(select("^76EE00Rune Knight^000000",
				"^76EE00Warlock^000000",
				"^76EE00Ranger^000000",
				"^76EE00Arch Bishop^000000",
				"^76EE00Mechanic^000000",
				"^76EE00Guillotine Cross^000000",
				"^76EE00Royal Guard^000000",
				"^76EE00Sorcerer^000000",
				( Sex == 0 )?"":"^76EE00Wanderer^000000",		
				( Sex == 1 )?"":"^76EE00Minstrel^000000",	
				"^76EE00Shura^000000",
				"^76EE00Genetic^000000",
				"^76EE00Shadow Chaser^000000",
				"^FF0000Back^000000")) {
// --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;	
			
			
			Case 1:	callsub Job_Changing,4060,99,70,200,"All";
			Case 2:	callsub Job_Changing,4061,99,70,200,"All";
			Case 3:	callsub Job_Changing,4062,99,70,200,"All";
			Case 4:	callsub Job_Changing,4063,99,70,200,"All";
			Case 5:	callsub Job_Changing,4064,99,70,200,"All";
			Case 6:	callsub Job_Changing,4065,99,70,200,"All";
			Case 7:	callsub Job_Changing,4073,99,70,200,"All";
			Case 8:	callsub Job_Changing,4074,99,70,200,"All";
			Case 9:	callsub Job_Changing,4076,99,70,200,"All";
			Case 10:	callsub Job_Changing,4075,70,70,200,"All";
			Case 11:	callsub Job_Changing,4077,70,70,200,"All";
			Case 12:	callsub Job_Changing,4078,70,70,200,"All";
			Case 13:	callsub Job_Changing,4079,70,70,200,"All";
			Case 14:	goto Main_Menu;
		}	
ExpandedJob_Classes:
	mes .npcname$;
	mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes.";
	next;
	switch(select("^76EE00Gunslinger^000000",
				"^76EE00Ninja^000000",
				"^76EE00Star Gladiator^000000",
				"^76EE00Soul Linker^000000",
				"^FF0000Back^000000")) {

// --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;	

			Case 1:	callsub Job_Changing,24,255,120,600,"All";
			Case 2:	callsub Job_Changing,25,255,120,60,"All";
			Case 3:	callsub Job_Changing,4047,255,120,110,"All";
			Case 4:	callsub Job_Changing,4049,255,120,110,"All";
			Case 5:	goto Main_Menu;
		}

BabyJob_Classes:
	mes .npcname$;
	mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes.";
	next;
	switch(select("^76EE00Baby Swordman^000000",
				"^76EE00Baby Magician^000000",
				"^76EE00Baby Archer^000000",
				"^76EE00Baby Acolyte^000000",
				"^76EE00Baby Merchant^000000",
				"^76EE00Baby Thief^000000",
				"^76EE00Baby Knight^000000",
				"^76EE00Baby Priest^000000",
				"^76EE00Baby Wizard^000000",
				"^76EE00Baby Blacksmith^000000",
				"^76EE00Baby Hunter^000000",
				"^76EE00Baby Assassin^000000",
				"^76EE00Baby Crusader^000000",
				"^76EE00Baby Monk^000000",
				"^76EE00Baby Sage^000000",
				"^76EE00Baby Rogue^000000",
				"^76EE00Baby Alchemist^000000",
				( Sex == 0 )?"":"^76EE00Baby Dancer^000000",		
				( Sex == 1 )?"":"^76EE00Baby Bard^000000",	
				"^76EE00Baby Baby^000000",
				"^FF0000Back^000000")) {

// --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;	
			
			Case 1:	callsub Job_Changing,4024,99,50,60,"All";
			Case 2:	callsub Job_Changing,4025,99,50,60,"All";
			Case 3:	callsub Job_Changing,4026,99,50,60,"All";
			Case 4:	callsub Job_Changing,4027,99,50,60,"All";
			Case 5:	callsub Job_Changing,4028,99,50,60,"All";
			Case 6:	callsub Job_Changing,4029,99,50,60,"All";
			Case 7:	callsub Job_Changing,4030,99,50,110,"All";
			Case 8:	callsub Job_Changing,4031,99,50,110,"All";
			Case 9:	callsub Job_Changing,4032,99,50,110,"All";
			Case 10:	callsub Job_Changing,4033,99,50,110,"All";
			Case 11:	callsub Job_Changing,4034,99,50,110,"All";
			Case 12:	callsub Job_Changing,4035,99,50,110,"All";
			Case 13:	callsub Job_Changing,4037,99,50,110,"All";
			Case 14:	callsub Job_Changing,4038,99,50,110,"All";
			Case 15:	callsub Job_Changing,4039,99,50,110,"All";
			Case 16:	callsub Job_Changing,4040,99,50,110,"All";
			Case 17:	callsub Job_Changing,4041,99,50,110,"All";
			Case 18:	callsub Job_Changing,4043,99,50,110,"All";
			Case 19:	callsub Job_Changing,4042,99,50,110,"All";
			Case 20:	callsub Job_Changing,4045,99,50,110,"All";
			Case 21:	goto Main_Menu;
		}
		
BabyThirdJob_Classes:
	mes .npcname$;
	mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes.";
	next;
	switch(select("^76EE00Baby Rune Knight^000000",
				"^76EE00Baby Warlock^000000",
				"^76EE00Baby Ranger^000000",
				"^76EE00Baby Arch Bishop^000000",
				"^76EE00Baby Mechanic^000000",
				"^76EE00Baby Guillotine Cross^000000",
				"^76EE00Baby Royal Guard^000000",
				"^76EE00Baby Sorcerer^000000",
				( Sex == 0 )?"":"^76EE00Baby Wanderer^000000",		
				( Sex == 1 )?"":"^76EE00Baby Minstrel^000000",	
				"^76EE00Baby Shura^000000",
				"^76EE00Baby Genetic^000000",
				"^76EE00Baby Shadow Chaser^000000",
				"^FF0000Back^000000")) {

// --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;	
			
			Case 1:	callsub Job_Changing,4096,99,70,200,"All";
			Case 2:	callsub Job_Changing,4097,99,70,200,"All";
			Case 3:	callsub Job_Changing,4098,99,70,200,"All";
			Case 4:	callsub Job_Changing,4099,99,70,200,"All";
			Case 5:	callsub Job_Changing,4100,99,70,200,"All";
			Case 6:	callsub Job_Changing,4101,99,70,200,"All";
			Case 7:	callsub Job_Changing,4102,99,70,200,"All";
			Case 8:	callsub Job_Changing,4103,99,70,200,"All";
			Case 9:	callsub Job_Changing,4105,99,70,200,"All";
			Case 10:	callsub Job_Changing,4104,99,70,200,"All";
			Case 11:	callsub Job_Changing,4106,99,70,200,"All";
			Case 12:	callsub Job_Changing,4107,99,70,200,"All";
			Case 13:	callsub Job_Changing,4108,99,70,200,"All";
			Case 14:	goto Main_Menu;
		}

Job_Changing:
		mes .npcname$;
		mes "You are now a part of ^FF0000"+jobname(getarg(0))+"^000000.";
		if (compare(getarg(4),"All")){	announce "[ "+strcharinfo(0)+" ] has changed to [ "+jobname(getarg(0))+" ].",bc_all,0x76EE00;	}
		if (compare(getarg(4),"Map")){	announce "[ "+strcharinfo(0)+" ] has changed to [ "+jobname(getarg(0))+" ].",bc_map,0x76EE00;	}
		if (compare(getarg(4),"Area")){	announce "[ "+strcharinfo(0)+" ] has changed to [ "+jobname(getarg(0))+" ].",bc_area,0x76EE00;	}
		if (compare(getarg(4),"Self")){	announce "[ "+strcharinfo(0)+" ] has changed to [ "+jobname(getarg(0))+" ].",bc_self,0x76EE00;	}
		jobchange getarg(0);
		set BaseLevel,getarg(1);
        set JobLevel,getarg(2);
		ResetSkill;
		ResetStatus;
        set SkillPoint,getarg(3);
		if ( .Allskills == 1 ){
		atcommand "@allskills";
        set SkillPoint,0;
		}
        percentheal 100,100;
		if ( .Based == 0 ){	set #ClassHelper,1;	}
		if ( .Based == 1 ){	set ClassHelper,1;	}
		close;
	
Classes_info:
	mes .npcname$;
	mes "=====[^76EE00 Swordman Classes ^000000]=====";
	mes " ^FF0000________________________________^000000";
	mes "^4EEE94Description :^000000";
	mes "Enthusiastic skills in sword fighting is a definite attraction to all teenagers. Easy to control and master character enables most players to be a great player.";
	mes " ^FF0000________________________________^000000";
	next;
	mes .npcname$;
	mes "=====[^76EE00 Archer Classes ^000000]=====";
	mes " ^FF0000________________________________^000000";
	mes "^4EEE94Description :^000000";
	mes "Long ranged attack ability and special techniques of archers in defeating enemy often lure players to try this.";
	mes " ^FF0000________________________________^000000";
	next;
	mes .npcname$;
	mes "=====[^76EE00 Mage Classes ^000000]=====";
	mes " ^FF0000________________________________^000000";
	mes "^4EEE94Description :^000000";
	mes "Fascinating element techniques involvement of nature in its abilities is truly amazing with their series of undefeatable magics.";
	mes " ^FF0000________________________________^000000";
	next;
	mes .npcname$;
	mes "=====[^76EE00 Thief Classes ^000000]=====";
	mes " ^FF0000________________________________^000000";
	mes "^4EEE94Description :^000000";
	mes "Poisoning and dodging abilities will defeat most of the enemy. Maximum defensive and offensive ability caused this character to fearsome one.";
	mes " ^FF0000________________________________^000000";
	next;
	mes .npcname$;
	mes "=====[^76EE00 Acolyte Classes ^000000]=====";
	mes " ^FF0000________________________________^000000";
	mes "^4EEE94Description :^000000";
	mes "A supportive character, most of the skills like helping will benefit to teammates who lead to teammates act like a terminator.";
	mes " ^FF0000________________________________^000000";
	next;
	mes .npcname$;
	mes "=====[^76EE00 Merchant Classes ^000000]=====";
	mes " ^FF0000________________________________^000000";
	mes "^4EEE94Description :^000000";
	mes "Involving communication with other players that emphasizes on battles, intelligence in business dealing. His versatility made him must not be look down.";
	mes " ^FF0000________________________________^000000";
	next;
	mes .npcname$;
	mes "=====[^76EE00 Super Novice ^000000]=====";
	mes " ^FF0000________________________________^000000";
	mes "^4EEE94Description :^000000";
	mes "A job who are Advanced after Novice Class. It look alike like a Novice but it is not. Beside that, it can learn most of the skills for all 1st Job Class.";
	mes " ^FF0000________________________________^000000";
	next;
	mes .npcname$;
	mes "=====[^76EE00 Gunslinger ^000000]=====";
	mes " ^FF0000________________________________^000000";
	mes "^4EEE94Description :^000000";
	mes "The only Job class in RO who are using Gun as weapon. If are you a Gun Lover , there is no doubt you will choose this Job.";
	mes " ^FF0000________________________________^000000";
	next;
	mes .npcname$;
	mes "=====[^76EE00 Ninja ^000000]=====";
	mes " ^FF0000________________________________^000000";
	mes "^4EEE94Description :^000000";
	mes "A mysterious Job Class , who alway processing Ancient Spells , look alike with Mage but not mage , good in PK , can evade very well during PK.";
	mes " ^FF0000________________________________^000000";
	next;
	mes .npcname$;
	mes "=====[^76EE00 Taekwon ^000000]=====";
	mes " ^FF0000________________________________^000000";
	mes "^4EEE94Description :^000000";
	mes "Just like the name has mentioned. The only class in RO who are not using any Weapon. Attack enemy using barehand and foots. ";
	mes " ^FF0000________________________________^000000";
	next;
	mes .npcname$;
	mes "=====[^76EE00 Star Gladiator ^000000]=====";
	mes " ^FF0000________________________________^000000";
	mes "^4EEE94Description :^000000";
	mes "A class who can use the power of the Sun / Star / Moon. By processing the power of Universe to gain a stronger Power.";
	mes " ^FF0000________________________________^000000";
	next;
	mes .npcname$;
	mes "=====[^76EE00 Soul Linker ^000000]=====";
	mes " ^FF0000________________________________^000000";
	mes "^4EEE94Description :^000000";
	mes "Class that work like a Shaman, who able to recalling the soul of the dead from the underworld to Boost other class ability.";
	mes " ^FF0000________________________________^000000";
	next;
	goto Main_Menu;

}

 

Edited by BeWan
  • Upvote 2
Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  123
  • Topics Per Day:  0.03
  • Content Count:  640
  • Reputation:   82
  • Joined:  04/07/14
  • Last Seen:  

2 hours ago, BeWan said:

if you want to add more item requirements 

countitem(512) >= 500 || countitem(513) >= 500

and so on..


//==============================================================================//
//= Script Release : Job Changer + Max Leveler  [ Version 1.5 ]
//==================================By==========================================//
//= ManiacSociety
//==============================================================================//
//= Idea Came From : ManiacSociety
//= Helper : Emistry & Kenpachi
//==============================================================================//
//= D E S C R I P T I O N S
//==============================================================================//
// -- 1. Character can choose a Job which he like to be.
// -- 2. This NPC only have 1 Time Usage.
//		 If it is set to Account Based then that account can use 1 times.
//		 If it is set to Character Based then all new character can use 1 times.
// -- 3. Complete skills / Skill Points will be given if it is set to be.
// -- 4. Base Level and Job Level will be given upon Job Change.
//==============================================================================//
//= V E R S I O N S
//==============================================================================//
// -- [ 1.5 ] : Added Configuration for Account Based / Character Based Settings
// -- [ 1.4 ] : Added Baby Classes + 3rd Job Classes.							
// -- [ 1.3 ] : Added Configuration Option , 4 Announce Option , Informations.			
// -- [ 1.2 ] : Simplified Scripts + Shorten the Scripts.							
// -- [ 1.1 ] : Added New Job Change Option.									
// -- [ 1.0 ] : Simple Login Auto Max Level + Job Changer.						
//==============================================================================//
//= R U L E S
//==============================================================================//
// -- 1. Do not use for exchanging purpose.										
// -- 2. Do not claim it as yours.												
// -- 3. Do not change or remove the credits.
// -- 4. Do not sell the script in order to get paid.
// -- 5. Do not re-sharing upon modified without permission.
//==============================================================================//
-- Update By Krane

//==============================================================================//


prontera,153,189,5	script	Job Changer2	620,{  
//OnPCLoginEvent:

// -- Configuration Option
set .npcname$,"[ ^0000FF Class Helper ^000000 ]";
set .InfoMenu,0;					// Classes Informations Option [ 0 - Disable / 1 - Enable ]
set .1stClassMenu,0;				// First Job Class Option [ 0 - Disable / 1 - Enable ]
set .2ndClassMenu,0;				// Second Job Class Option [ 0 - Disable / 1 - Enable ]
set .High1stClassMenu,0;			// High 1st Class Option [ 0 - Disable / 1 - Enable ]
set .Trans2ndClassMenu,0;			// Transcendent Class Option [ 0 - Disable / 1 - Enable ]
set .Trans3rdClassMenu,1;			// Third Job Class Option [ 0 - Disable / 1 - Enable ]
set .ExpandedClassMenu,0;			// Expanded Class Option [ 0 - Disable / 1 - Enable ]
set .BabyClassMenu,0;				// Baby Job Class Option [ 0 - Disable / 1 - Enable ]
set .Baby3rdClassMenu,0;			// Baby Third Job Class Option [ 0 - Disable / 1 - Enable ]
set .Allskills,1;					// Complete Skills Option [ 0 - Disable / 1 - Enable ]

// -- Usable for Only 1 Time
set .Based,1;						// [ 0 - Account Based  / 1 - Character Based ]


if( ClassHelper == 1 || #ClassHelper == 1 ) end;

Main_Menu:
	mes .npcname$;
	mes "I am the Job Class Helper...";
	mes "I am here to help you.";
	mes " ^FF0000________________________________^000000";
	mes "Do you wish to become Stronger ?";
	mes " ^FF0000________________________________^000000";
	next;
	mes .npcname$;
	mes "Do you admire those who have a great power ? Do you wish to become a part of them ? If yes , then which classes that you admire the most ?";
	next;
	if( BaseLevel >= 200 ){
}else{
			mes "Sorry you need to reach level 200";
			close;
		}
	switch(select(( .InfoMenu == 0 )?"":"^4EEE94Classes Information^000000",
				( .1stClassMenu == 0 )?"":"^0000FFFirst Job Classes^000000",
				( .2ndClassMenu == 0 )?"":"^0000FFSecond Job Classes^000000",	
				( .High1stClassMenu == 0 )?"":"^0000FFHigh First Job Classes^000000",	
				( .Trans2ndClassMenu == 0 )?"":"^0000FFTranscendent Job Classes^000000",	
				( .Trans3rdClassMenu == 0 )?"":"^0000FFThird Job Classes^000000",		
				( .ExpandedClassMenu == 0 )?"":"^0000FFExpanded Job Classes^000000",	
				( .BabyClassMenu == 0 )?"":"^0000FFBaby Normal Job Classes^000000",		
				( .Baby3rdClassMenu == 0 )?"":"^0000FFBaby Third Job Classes^000000",		
				"^FF0000Sorry, i admire nobody....^000000")) {

					Case 1: goto Classes_info;
					Case 2:	goto FirstJob_Classes;
					Case 3:	goto SecondJob_Classes;
					Case 4:	goto HighFirstJob_Classes;
					Case 5:	goto TransSecondJob_Classes;
					Case 6:	goto TransThirdJob_Classes;
					Case 7:	goto ExpandedJob_Classes;
					Case 8:	goto BabyJob_Classes;
					Case 9:	goto BabyThirdJob_Classes;
					Case 10:	close;
			}
	
FirstJob_Classes:
	mes .npcname$;
	mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes.";
	next;
	switch(select("^76EE00Swordman^000000",
				"^76EE00Magician^000000",
				"^76EE00Archer^000000",
				"^76EE00Acolyte^000000",
				"^76EE00Merchant^000000",
				"^76EE00Thief^000000",
				"^FF0000Back^000000")) {

// --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;	

			Case 1:	callsub Job_Changing,1,99,50,60,"All";
			Case 2:	callsub Job_Changing,2,99,50,60,"All";
			Case 3:	callsub Job_Changing,3,99,50,60,"All";
			Case 4:	callsub Job_Changing,4,99,50,60,"All";
			Case 5:	callsub Job_Changing,5,99,50,60,"All";
			Case 6:	callsub Job_Changing,6,99,50,60,"All";
			Case 7:	goto Main_Menu;
		}

HighFirstJob_Classes:
	mes .npcname$;
	mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes.";
	next;
	switch(select("^76EE00High Swordman^000000",
				"^76EE00High Magician^000000",
				"^76EE00High Archer^000000",
				"^76EE00High Acolyte^000000",
				"^76EE00High Merchant^000000",
				"^76EE00High Thief^000000",
				"^FF0000Back^000000")) {

// --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;	

			Case 1:	callsub Job_Changing,4002,99,50,60,"All";
			Case 2:	callsub Job_Changing,4003,99,50,60,"All";
			Case 3:	callsub Job_Changing,4004,99,50,60,"All";
			Case 4:	callsub Job_Changing,4005,99,50,60,"All";
			Case 5:	callsub Job_Changing,4006,99,50,60,"All";
			Case 6:	callsub Job_Changing,4007,99,50,60,"All";
			Case 7:	goto Main_Menu;
		}
		
SecondJob_Classes:
	mes .npcname$;
	mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes.";
	next;
	switch(select("^76EE00Knight^000000",
				"^76EE00Priest^000000",
				"^76EE00Wizard^000000",
				"^76EE00Blacksmith^000000",
				"^76EE00Hunter^000000",
				"^76EE00Assassin^000000",
				"^76EE00Crusader^000000",
				"^76EE00Monk^000000",
				"^76EE00Sage^000000",
				"^76EE00Rogue^000000",
				"^76EE00Alchemist^000000",
				( Sex == 0 )?"":"^76EE00Dancer^000000",		
				( Sex == 1 )?"":"^76EE00Bard^000000",	
				"^FF0000Back^000000")) {

// --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;	
			
			Case 1:	callsub Job_Changing,7,99,50,110,"All";
			Case 2:	callsub Job_Changing,8,99,50,110,"All";
			Case 3:	callsub Job_Changing,9,99,50,110,"All";
			Case 4:	callsub Job_Changing,10,99,50,110,"All";
			Case 5:	callsub Job_Changing,11,99,50,110,"All";
			Case 6:	callsub Job_Changing,12,99,50,110,"All";
			Case 7:	callsub Job_Changing,14,99,50,110,"All";
			Case 8:	callsub Job_Changing,15,99,50,110,"All";
			Case 9:	callsub Job_Changing,16,99,50,110,"All";
			Case 10:	callsub Job_Changing,17,99,50,110,"All";
			Case 11:	callsub Job_Changing,18,99,50,110,"All";
			Case 12:	callsub Job_Changing,20,99,50,110,"All";
			Case 13:	callsub Job_Changing,19,99,50,110,"All";
			Case 14:	goto Main_Menu;
		}

TransSecondJob_Classes:
	mes .npcname$;
	mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes.";
	next;
	switch(select("^76EE00Lord Knight^000000",
				"^76EE00High Priest^000000",
				"^76EE00High Wizard^000000",
				"^76EE00Whitesmith^000000",
				"^76EE00Sniper^000000",
				"^76EE00Assassin Cross^000000",
				"^76EE00Paladin^000000",
				"^76EE00Champion^000000",
				"^76EE00Professor^000000",
				"^76EE00Stalker^000000",
				"^76EE00Creator^000000",
				( Sex == 0 )?"":"^76EE00Gypsy^000000",		
				( Sex == 1 )?"":"^76EE00Clown^000000",	
				"^FF0000Back^000000")) {

// --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;	
			
			Case 1:	callsub Job_Changing,4008,255,120,130,"All";
			Case 2:	callsub Job_Changing,4009,255,120,130,"All";
			Case 3:	callsub Job_Changing,4010,255,120,130,"All";
			Case 4:	callsub Job_Changing,4011,255,120,130,"All";
			Case 5:	callsub Job_Changing,4012,255,120,130,"All";
			Case 6:	callsub Job_Changing,4013,255,120,130,"All";
			Case 7:	callsub Job_Changing,4015,255,120,130,"All";
			Case 8:	callsub Job_Changing,4016,255,120,130,"All";
			Case 9:	callsub Job_Changing,4017,255,120,130,"All";
			Case 10:	callsub Job_Changing,4018,255,120,130,"All";
			Case 11:	callsub Job_Changing,4019,255,120,130,"All";
			Case 12:	callsub Job_Changing,4021,255,120,130,"All";
			Case 13:	callsub Job_Changing,4020,255,120,130,"All";
			Case 14:	goto Main_Menu;
		}

TransThirdJob_Classes:
	mes .npcname$;
	mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes.";
	next;
	if(countitem(512) >= 500){
	}else{
	mes "Sorry you need 500 Apple to change 3rd job class";
	close;
	}
	switch(select("^76EE00Rune Knight^000000",
				"^76EE00Warlock^000000",
				"^76EE00Ranger^000000",
				"^76EE00Arch Bishop^000000",
				"^76EE00Mechanic^000000",
				"^76EE00Guillotine Cross^000000",
				"^76EE00Royal Guard^000000",
				"^76EE00Sorcerer^000000",
				( Sex == 0 )?"":"^76EE00Wanderer^000000",		
				( Sex == 1 )?"":"^76EE00Minstrel^000000",	
				"^76EE00Shura^000000",
				"^76EE00Genetic^000000",
				"^76EE00Shadow Chaser^000000",
				"^FF0000Back^000000")) {
// --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;	
			
			
			Case 1:	callsub Job_Changing,4060,99,70,200,"All";
			Case 2:	callsub Job_Changing,4061,99,70,200,"All";
			Case 3:	callsub Job_Changing,4062,99,70,200,"All";
			Case 4:	callsub Job_Changing,4063,99,70,200,"All";
			Case 5:	callsub Job_Changing,4064,99,70,200,"All";
			Case 6:	callsub Job_Changing,4065,99,70,200,"All";
			Case 7:	callsub Job_Changing,4073,99,70,200,"All";
			Case 8:	callsub Job_Changing,4074,99,70,200,"All";
			Case 9:	callsub Job_Changing,4076,99,70,200,"All";
			Case 10:	callsub Job_Changing,4075,70,70,200,"All";
			Case 11:	callsub Job_Changing,4077,70,70,200,"All";
			Case 12:	callsub Job_Changing,4078,70,70,200,"All";
			Case 13:	callsub Job_Changing,4079,70,70,200,"All";
			Case 14:	goto Main_Menu;
		}	
ExpandedJob_Classes:
	mes .npcname$;
	mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes.";
	next;
	switch(select("^76EE00Gunslinger^000000",
				"^76EE00Ninja^000000",
				"^76EE00Star Gladiator^000000",
				"^76EE00Soul Linker^000000",
				"^FF0000Back^000000")) {

// --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;	

			Case 1:	callsub Job_Changing,24,255,120,600,"All";
			Case 2:	callsub Job_Changing,25,255,120,60,"All";
			Case 3:	callsub Job_Changing,4047,255,120,110,"All";
			Case 4:	callsub Job_Changing,4049,255,120,110,"All";
			Case 5:	goto Main_Menu;
		}

BabyJob_Classes:
	mes .npcname$;
	mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes.";
	next;
	switch(select("^76EE00Baby Swordman^000000",
				"^76EE00Baby Magician^000000",
				"^76EE00Baby Archer^000000",
				"^76EE00Baby Acolyte^000000",
				"^76EE00Baby Merchant^000000",
				"^76EE00Baby Thief^000000",
				"^76EE00Baby Knight^000000",
				"^76EE00Baby Priest^000000",
				"^76EE00Baby Wizard^000000",
				"^76EE00Baby Blacksmith^000000",
				"^76EE00Baby Hunter^000000",
				"^76EE00Baby Assassin^000000",
				"^76EE00Baby Crusader^000000",
				"^76EE00Baby Monk^000000",
				"^76EE00Baby Sage^000000",
				"^76EE00Baby Rogue^000000",
				"^76EE00Baby Alchemist^000000",
				( Sex == 0 )?"":"^76EE00Baby Dancer^000000",		
				( Sex == 1 )?"":"^76EE00Baby Bard^000000",	
				"^76EE00Baby Baby^000000",
				"^FF0000Back^000000")) {

// --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;	
			
			Case 1:	callsub Job_Changing,4024,99,50,60,"All";
			Case 2:	callsub Job_Changing,4025,99,50,60,"All";
			Case 3:	callsub Job_Changing,4026,99,50,60,"All";
			Case 4:	callsub Job_Changing,4027,99,50,60,"All";
			Case 5:	callsub Job_Changing,4028,99,50,60,"All";
			Case 6:	callsub Job_Changing,4029,99,50,60,"All";
			Case 7:	callsub Job_Changing,4030,99,50,110,"All";
			Case 8:	callsub Job_Changing,4031,99,50,110,"All";
			Case 9:	callsub Job_Changing,4032,99,50,110,"All";
			Case 10:	callsub Job_Changing,4033,99,50,110,"All";
			Case 11:	callsub Job_Changing,4034,99,50,110,"All";
			Case 12:	callsub Job_Changing,4035,99,50,110,"All";
			Case 13:	callsub Job_Changing,4037,99,50,110,"All";
			Case 14:	callsub Job_Changing,4038,99,50,110,"All";
			Case 15:	callsub Job_Changing,4039,99,50,110,"All";
			Case 16:	callsub Job_Changing,4040,99,50,110,"All";
			Case 17:	callsub Job_Changing,4041,99,50,110,"All";
			Case 18:	callsub Job_Changing,4043,99,50,110,"All";
			Case 19:	callsub Job_Changing,4042,99,50,110,"All";
			Case 20:	callsub Job_Changing,4045,99,50,110,"All";
			Case 21:	goto Main_Menu;
		}
		
BabyThirdJob_Classes:
	mes .npcname$;
	mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes.";
	next;
	switch(select("^76EE00Baby Rune Knight^000000",
				"^76EE00Baby Warlock^000000",
				"^76EE00Baby Ranger^000000",
				"^76EE00Baby Arch Bishop^000000",
				"^76EE00Baby Mechanic^000000",
				"^76EE00Baby Guillotine Cross^000000",
				"^76EE00Baby Royal Guard^000000",
				"^76EE00Baby Sorcerer^000000",
				( Sex == 0 )?"":"^76EE00Baby Wanderer^000000",		
				( Sex == 1 )?"":"^76EE00Baby Minstrel^000000",	
				"^76EE00Baby Shura^000000",
				"^76EE00Baby Genetic^000000",
				"^76EE00Baby Shadow Chaser^000000",
				"^FF0000Back^000000")) {

// --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;	
			
			Case 1:	callsub Job_Changing,4096,99,70,200,"All";
			Case 2:	callsub Job_Changing,4097,99,70,200,"All";
			Case 3:	callsub Job_Changing,4098,99,70,200,"All";
			Case 4:	callsub Job_Changing,4099,99,70,200,"All";
			Case 5:	callsub Job_Changing,4100,99,70,200,"All";
			Case 6:	callsub Job_Changing,4101,99,70,200,"All";
			Case 7:	callsub Job_Changing,4102,99,70,200,"All";
			Case 8:	callsub Job_Changing,4103,99,70,200,"All";
			Case 9:	callsub Job_Changing,4105,99,70,200,"All";
			Case 10:	callsub Job_Changing,4104,99,70,200,"All";
			Case 11:	callsub Job_Changing,4106,99,70,200,"All";
			Case 12:	callsub Job_Changing,4107,99,70,200,"All";
			Case 13:	callsub Job_Changing,4108,99,70,200,"All";
			Case 14:	goto Main_Menu;
		}

Job_Changing:
		mes .npcname$;
		mes "You are now a part of ^FF0000"+jobname(getarg(0))+"^000000.";
		if (compare(getarg(4),"All")){	announce "[ "+strcharinfo(0)+" ] has changed to [ "+jobname(getarg(0))+" ].",bc_all,0x76EE00;	}
		if (compare(getarg(4),"Map")){	announce "[ "+strcharinfo(0)+" ] has changed to [ "+jobname(getarg(0))+" ].",bc_map,0x76EE00;	}
		if (compare(getarg(4),"Area")){	announce "[ "+strcharinfo(0)+" ] has changed to [ "+jobname(getarg(0))+" ].",bc_area,0x76EE00;	}
		if (compare(getarg(4),"Self")){	announce "[ "+strcharinfo(0)+" ] has changed to [ "+jobname(getarg(0))+" ].",bc_self,0x76EE00;	}
		jobchange getarg(0);
		set BaseLevel,getarg(1);
        set JobLevel,getarg(2);
		ResetSkill;
		ResetStatus;
        set SkillPoint,getarg(3);
		if ( .Allskills == 1 ){
		atcommand "@allskills";
        set SkillPoint,0;
		}
        percentheal 100,100;
		if ( .Based == 0 ){	set #ClassHelper,1;	}
		if ( .Based == 1 ){	set ClassHelper,1;	}
		close;
	
Classes_info:
	mes .npcname$;
	mes "=====[^76EE00 Swordman Classes ^000000]=====";
	mes " ^FF0000________________________________^000000";
	mes "^4EEE94Description :^000000";
	mes "Enthusiastic skills in sword fighting is a definite attraction to all teenagers. Easy to control and master character enables most players to be a great player.";
	mes " ^FF0000________________________________^000000";
	next;
	mes .npcname$;
	mes "=====[^76EE00 Archer Classes ^000000]=====";
	mes " ^FF0000________________________________^000000";
	mes "^4EEE94Description :^000000";
	mes "Long ranged attack ability and special techniques of archers in defeating enemy often lure players to try this.";
	mes " ^FF0000________________________________^000000";
	next;
	mes .npcname$;
	mes "=====[^76EE00 Mage Classes ^000000]=====";
	mes " ^FF0000________________________________^000000";
	mes "^4EEE94Description :^000000";
	mes "Fascinating element techniques involvement of nature in its abilities is truly amazing with their series of undefeatable magics.";
	mes " ^FF0000________________________________^000000";
	next;
	mes .npcname$;
	mes "=====[^76EE00 Thief Classes ^000000]=====";
	mes " ^FF0000________________________________^000000";
	mes "^4EEE94Description :^000000";
	mes "Poisoning and dodging abilities will defeat most of the enemy. Maximum defensive and offensive ability caused this character to fearsome one.";
	mes " ^FF0000________________________________^000000";
	next;
	mes .npcname$;
	mes "=====[^76EE00 Acolyte Classes ^000000]=====";
	mes " ^FF0000________________________________^000000";
	mes "^4EEE94Description :^000000";
	mes "A supportive character, most of the skills like helping will benefit to teammates who lead to teammates act like a terminator.";
	mes " ^FF0000________________________________^000000";
	next;
	mes .npcname$;
	mes "=====[^76EE00 Merchant Classes ^000000]=====";
	mes " ^FF0000________________________________^000000";
	mes "^4EEE94Description :^000000";
	mes "Involving communication with other players that emphasizes on battles, intelligence in business dealing. His versatility made him must not be look down.";
	mes " ^FF0000________________________________^000000";
	next;
	mes .npcname$;
	mes "=====[^76EE00 Super Novice ^000000]=====";
	mes " ^FF0000________________________________^000000";
	mes "^4EEE94Description :^000000";
	mes "A job who are Advanced after Novice Class. It look alike like a Novice but it is not. Beside that, it can learn most of the skills for all 1st Job Class.";
	mes " ^FF0000________________________________^000000";
	next;
	mes .npcname$;
	mes "=====[^76EE00 Gunslinger ^000000]=====";
	mes " ^FF0000________________________________^000000";
	mes "^4EEE94Description :^000000";
	mes "The only Job class in RO who are using Gun as weapon. If are you a Gun Lover , there is no doubt you will choose this Job.";
	mes " ^FF0000________________________________^000000";
	next;
	mes .npcname$;
	mes "=====[^76EE00 Ninja ^000000]=====";
	mes " ^FF0000________________________________^000000";
	mes "^4EEE94Description :^000000";
	mes "A mysterious Job Class , who alway processing Ancient Spells , look alike with Mage but not mage , good in PK , can evade very well during PK.";
	mes " ^FF0000________________________________^000000";
	next;
	mes .npcname$;
	mes "=====[^76EE00 Taekwon ^000000]=====";
	mes " ^FF0000________________________________^000000";
	mes "^4EEE94Description :^000000";
	mes "Just like the name has mentioned. The only class in RO who are not using any Weapon. Attack enemy using barehand and foots. ";
	mes " ^FF0000________________________________^000000";
	next;
	mes .npcname$;
	mes "=====[^76EE00 Star Gladiator ^000000]=====";
	mes " ^FF0000________________________________^000000";
	mes "^4EEE94Description :^000000";
	mes "A class who can use the power of the Sun / Star / Moon. By processing the power of Universe to gain a stronger Power.";
	mes " ^FF0000________________________________^000000";
	next;
	mes .npcname$;
	mes "=====[^76EE00 Soul Linker ^000000]=====";
	mes " ^FF0000________________________________^000000";
	mes "^4EEE94Description :^000000";
	mes "Class that work like a Shaman, who able to recalling the soul of the dead from the underworld to Boost other class ability.";
	mes " ^FF0000________________________________^000000";
	next;
	goto Main_Menu;

}

 

Wow @BeWan!!! Thank you for always taking time to reply to my silly posts! Will try this now and give a feedback! 

Okay it works but i can choose any class i want. I am Lord Knight. Had 500 apples as requirement. I selected ranger and it did. I want to set conditions. If im in swordmans class it should make me rune knight instead of any class i want. But i thank you @BeWan for helping me.

Any other script regarding my query? Thanks!

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  19
  • Topics Per Day:  0.01
  • Content Count:  398
  • Reputation:   246
  • Joined:  07/04/19
  • Last Seen:  

On 11/22/2019 at 6:38 PM, gidzdlcrz said:

Okay it works but i can choose any class i want. I am Lord Knight. Had 500 apples as requirement. I selected ranger and it did. I want to set conditions. If im in swordmans class it should make me rune knight instead of any class i want. But i thank you @BeWan for helping me.

Any other script regarding my query? Thanks!

sure later i'll send it to you. busy at work right now ?

no time to config all 3rd job classes

//==============================================================================//
//= Script Release : Job Changer + Max Leveler  [ Version 1.5 ]
//==================================By==========================================//
//= ManiacSociety
//==============================================================================//
//= Idea Came From : ManiacSociety
//= Helper : Emistry & Kenpachi
//==============================================================================//
//= D E S C R I P T I O N S
//==============================================================================//
// -- 1. Character can choose a Job which he like to be.
// -- 2. This NPC only have 1 Time Usage.
//		 If it is set to Account Based then that account can use 1 times.
//		 If it is set to Character Based then all new character can use 1 times.
// -- 3. Complete skills / Skill Points will be given if it is set to be.
// -- 4. Base Level and Job Level will be given upon Job Change.
//==============================================================================//
//= V E R S I O N S
//==============================================================================//
// -- [ 1.5 ] : Added Configuration for Account Based / Character Based Settings
// -- [ 1.4 ] : Added Baby Classes + 3rd Job Classes.							
// -- [ 1.3 ] : Added Configuration Option , 4 Announce Option , Informations.			
// -- [ 1.2 ] : Simplified Scripts + Shorten the Scripts.							
// -- [ 1.1 ] : Added New Job Change Option.									
// -- [ 1.0 ] : Simple Login Auto Max Level + Job Changer.						
//==============================================================================//
//= R U L E S
//==============================================================================//
// -- 1. Do not use for exchanging purpose.										
// -- 2. Do not claim it as yours.												
// -- 3. Do not change or remove the credits.
// -- 4. Do not sell the script in order to get paid.
// -- 5. Do not re-sharing upon modified without permission.
//==============================================================================//
//-- Update By Krane

//==============================================================================//


prontera,153,189,5	script	Job Changer2	620,{  
//OnPCLoginEvent:

// -- Configuration Option
set .npcname$,"[ ^0000FF Class Helper ^000000 ]";
set .InfoMenu,0;					// Classes Informations Option [ 0 - Disable / 1 - Enable ]
set .1stClassMenu,0;				// First Job Class Option [ 0 - Disable / 1 - Enable ]
set .2ndClassMenu,0;				// Second Job Class Option [ 0 - Disable / 1 - Enable ]
set .High1stClassMenu,0;			// High 1st Class Option [ 0 - Disable / 1 - Enable ]
set .Trans2ndClassMenu,0;			// Transcendent Class Option [ 0 - Disable / 1 - Enable ]
set .Trans3rdClassMenu,1;			// Third Job Class Option [ 0 - Disable / 1 - Enable ]
set .ExpandedClassMenu,0;			// Expanded Class Option [ 0 - Disable / 1 - Enable ]
set .BabyClassMenu,0;				// Baby Job Class Option [ 0 - Disable / 1 - Enable ]
set .Baby3rdClassMenu,0;			// Baby Third Job Class Option [ 0 - Disable / 1 - Enable ]
set .Allskills,1;					// Complete Skills Option [ 0 - Disable / 1 - Enable ]

// -- Usable for Only 1 Time
set .Based,1;						// [ 0 - Account Based  / 1 - Character Based ]


if( ClassHelper == 1 || #ClassHelper == 1 ) end;

Main_Menu:
	mes .npcname$;
	mes "I am the Job Class Helper...";
	mes "I am here to help you.";
	mes " ^FF0000________________________________^000000";
	mes "Do you wish to become Stronger ?";
	mes " ^FF0000________________________________^000000";
	next;
	mes .npcname$;
	mes "Do you admire those who have a great power ? Do you wish to become a part of them ? If yes , then which classes that you admire the most ?";
	next;
	if( BaseLevel >= 200 ){
}else{
			mes "Sorry you need to reach level 200";
			close;
		}
	switch(select(( .InfoMenu == 0 )?"":"^4EEE94Classes Information^000000",
				( .1stClassMenu == 0 )?"":"^0000FFFirst Job Classes^000000",
				( .2ndClassMenu == 0 )?"":"^0000FFSecond Job Classes^000000",	
				( .High1stClassMenu == 0 )?"":"^0000FFHigh First Job Classes^000000",	
				( .Trans2ndClassMenu == 0 )?"":"^0000FFTranscendent Job Classes^000000",	
				( .Trans3rdClassMenu == 0 )?"":"^0000FFThird Job Classes^000000",		
				( .ExpandedClassMenu == 0 )?"":"^0000FFExpanded Job Classes^000000",	
				( .BabyClassMenu == 0 )?"":"^0000FFBaby Normal Job Classes^000000",		
				( .Baby3rdClassMenu == 0 )?"":"^0000FFBaby Third Job Classes^000000",		
				"^FF0000Sorry, i admire nobody....^000000")) {

					Case 1: goto Classes_info;
					Case 2:	goto FirstJob_Classes;
					Case 3:	goto SecondJob_Classes;
					Case 4:	goto HighFirstJob_Classes;
					Case 5:	goto TransSecondJob_Classes;
					Case 6:	goto TransThirdJob_Classes;
					Case 7:	goto ExpandedJob_Classes;
					Case 8:	goto BabyJob_Classes;
					Case 9:	goto BabyThirdJob_Classes;
					Case 10:	close;
			}
	
FirstJob_Classes:
	mes .npcname$;
	mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes.";
	next;
	switch(select("^76EE00Swordman^000000",
				"^76EE00Magician^000000",
				"^76EE00Archer^000000",
				"^76EE00Acolyte^000000",
				"^76EE00Merchant^000000",
				"^76EE00Thief^000000",
				"^FF0000Back^000000")) {

// --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;	

			Case 1:	callsub Job_Changing,1,99,50,60,"All";
			Case 2:	callsub Job_Changing,2,99,50,60,"All";
			Case 3:	callsub Job_Changing,3,99,50,60,"All";
			Case 4:	callsub Job_Changing,4,99,50,60,"All";
			Case 5:	callsub Job_Changing,5,99,50,60,"All";
			Case 6:	callsub Job_Changing,6,99,50,60,"All";
			Case 7:	goto Main_Menu;
		}

HighFirstJob_Classes:
	mes .npcname$;
	mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes.";
	next;
	switch(select("^76EE00High Swordman^000000",
				"^76EE00High Magician^000000",
				"^76EE00High Archer^000000",
				"^76EE00High Acolyte^000000",
				"^76EE00High Merchant^000000",
				"^76EE00High Thief^000000",
				"^FF0000Back^000000")) {

// --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;	

			Case 1:	callsub Job_Changing,4002,99,50,60,"All";
			Case 2:	callsub Job_Changing,4003,99,50,60,"All";
			Case 3:	callsub Job_Changing,4004,99,50,60,"All";
			Case 4:	callsub Job_Changing,4005,99,50,60,"All";
			Case 5:	callsub Job_Changing,4006,99,50,60,"All";
			Case 6:	callsub Job_Changing,4007,99,50,60,"All";
			Case 7:	goto Main_Menu;
		}
		
SecondJob_Classes:
	mes .npcname$;
	mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes.";
	next;
	switch(select("^76EE00Knight^000000",
				"^76EE00Priest^000000",
				"^76EE00Wizard^000000",
				"^76EE00Blacksmith^000000",
				"^76EE00Hunter^000000",
				"^76EE00Assassin^000000",
				"^76EE00Crusader^000000",
				"^76EE00Monk^000000",
				"^76EE00Sage^000000",
				"^76EE00Rogue^000000",
				"^76EE00Alchemist^000000",
				( Sex == 0 )?"":"^76EE00Dancer^000000",		
				( Sex == 1 )?"":"^76EE00Bard^000000",	
				"^FF0000Back^000000")) {

// --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;	
			
			Case 1:	callsub Job_Changing,7,99,50,110,"All";
			Case 2:	callsub Job_Changing,8,99,50,110,"All";
			Case 3:	callsub Job_Changing,9,99,50,110,"All";
			Case 4:	callsub Job_Changing,10,99,50,110,"All";
			Case 5:	callsub Job_Changing,11,99,50,110,"All";
			Case 6:	callsub Job_Changing,12,99,50,110,"All";
			Case 7:	callsub Job_Changing,14,99,50,110,"All";
			Case 8:	callsub Job_Changing,15,99,50,110,"All";
			Case 9:	callsub Job_Changing,16,99,50,110,"All";
			Case 10:	callsub Job_Changing,17,99,50,110,"All";
			Case 11:	callsub Job_Changing,18,99,50,110,"All";
			Case 12:	callsub Job_Changing,20,99,50,110,"All";
			Case 13:	callsub Job_Changing,19,99,50,110,"All";
			Case 14:	goto Main_Menu;
		}

TransSecondJob_Classes:
	mes .npcname$;
	mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes.";
	next;
	switch(select("^76EE00Lord Knight^000000",
				"^76EE00High Priest^000000",
				"^76EE00High Wizard^000000",
				"^76EE00Whitesmith^000000",
				"^76EE00Sniper^000000",
				"^76EE00Assassin Cross^000000",
				"^76EE00Paladin^000000",
				"^76EE00Champion^000000",
				"^76EE00Professor^000000",
				"^76EE00Stalker^000000",
				"^76EE00Creator^000000",
				( Sex == 0 )?"":"^76EE00Gypsy^000000",		
				( Sex == 1 )?"":"^76EE00Clown^000000",	
				"^FF0000Back^000000")) {

// --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;	
			
			Case 1:	callsub Job_Changing,4008,255,120,130,"All";
			Case 2:	callsub Job_Changing,4009,255,120,130,"All";
			Case 3:	callsub Job_Changing,4010,255,120,130,"All";
			Case 4:	callsub Job_Changing,4011,255,120,130,"All";
			Case 5:	callsub Job_Changing,4012,255,120,130,"All";
			Case 6:	callsub Job_Changing,4013,255,120,130,"All";
			Case 7:	callsub Job_Changing,4015,255,120,130,"All";
			Case 8:	callsub Job_Changing,4016,255,120,130,"All";
			Case 9:	callsub Job_Changing,4017,255,120,130,"All";
			Case 10:	callsub Job_Changing,4018,255,120,130,"All";
			Case 11:	callsub Job_Changing,4019,255,120,130,"All";
			Case 12:	callsub Job_Changing,4021,255,120,130,"All";
			Case 13:	callsub Job_Changing,4020,255,120,130,"All";
			Case 14:	goto Main_Menu;
		}

TransThirdJob_Classes:
	mes .npcname$;
	mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes.";
	next;
	if(countitem(512) >= 500){
	}else{
	mes "Sorry you need 500 Apple to change 3rd job class";
	close;
	}
	switch(select("^76EE00Rune Knight^000000",
				"^76EE00Warlock^000000",
				"^76EE00Ranger^000000",
				"^76EE00Arch Bishop^000000",
				"^76EE00Mechanic^000000",
				"^76EE00Guillotine Cross^000000",
				"^76EE00Royal Guard^000000",
				"^76EE00Sorcerer^000000",
				( Sex == 0 )?"":"^76EE00Wanderer^000000",		
				( Sex == 1 )?"":"^76EE00Minstrel^000000",	
				"^76EE00Shura^000000",
				"^76EE00Genetic^000000",
				"^76EE00Shadow Chaser^000000",
				"^FF0000Back^000000")) {
// --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;	
			
			if(Class == Job_Lord_Knight){
				atcommand "#job " +strcharinfo(0)+ " 4060";
				atcommand "#blvl " +strcharinfo(0)+ " 255";
				atcommand "#jlvl " +strcharinfo(0)+ " 120";
				atcommand "#skillall " +strcharinfo(0);
				delitem 512,500;
				close;
			}else{
				mes "Sorry you are not lord knight class";
				close;
			}
			Case 2:	callsub Job_Changing,4061,99,70,200,"All";
			Case 3:	callsub Job_Changing,4062,99,70,200,"All";
			Case 4:	callsub Job_Changing,4063,99,70,200,"All";
			Case 5:	callsub Job_Changing,4064,99,70,200,"All";
			Case 6:	callsub Job_Changing,4065,99,70,200,"All";
			Case 7:	callsub Job_Changing,4073,99,70,200,"All";
			Case 8:	callsub Job_Changing,4074,99,70,200,"All";
			Case 9:	callsub Job_Changing,4076,99,70,200,"All";
			Case 10:	callsub Job_Changing,4075,70,70,200,"All";
			Case 11:	callsub Job_Changing,4077,70,70,200,"All";
			Case 12:	callsub Job_Changing,4078,70,70,200,"All";
			Case 13:	callsub Job_Changing,4079,70,70,200,"All";
			Case 14:	goto Main_Menu;
		}	
ExpandedJob_Classes:
	mes .npcname$;
	mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes.";
	next;
	switch(select("^76EE00Gunslinger^000000",
				"^76EE00Ninja^000000",
				"^76EE00Star Gladiator^000000",
				"^76EE00Soul Linker^000000",
				"^FF0000Back^000000")) {

// --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;	

			Case 1:	callsub Job_Changing,24,255,120,600,"All";
			Case 2:	callsub Job_Changing,25,255,120,60,"All";
			Case 3:	callsub Job_Changing,4047,255,120,110,"All";
			Case 4:	callsub Job_Changing,4049,255,120,110,"All";
			Case 5:	goto Main_Menu;
		}

BabyJob_Classes:
	mes .npcname$;
	mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes.";
	next;
	switch(select("^76EE00Baby Swordman^000000",
				"^76EE00Baby Magician^000000",
				"^76EE00Baby Archer^000000",
				"^76EE00Baby Acolyte^000000",
				"^76EE00Baby Merchant^000000",
				"^76EE00Baby Thief^000000",
				"^76EE00Baby Knight^000000",
				"^76EE00Baby Priest^000000",
				"^76EE00Baby Wizard^000000",
				"^76EE00Baby Blacksmith^000000",
				"^76EE00Baby Hunter^000000",
				"^76EE00Baby Assassin^000000",
				"^76EE00Baby Crusader^000000",
				"^76EE00Baby Monk^000000",
				"^76EE00Baby Sage^000000",
				"^76EE00Baby Rogue^000000",
				"^76EE00Baby Alchemist^000000",
				( Sex == 0 )?"":"^76EE00Baby Dancer^000000",		
				( Sex == 1 )?"":"^76EE00Baby Bard^000000",	
				"^76EE00Baby Baby^000000",
				"^FF0000Back^000000")) {

// --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;	
			
			Case 1:	callsub Job_Changing,4024,99,50,60,"All";
			Case 2:	callsub Job_Changing,4025,99,50,60,"All";
			Case 3:	callsub Job_Changing,4026,99,50,60,"All";
			Case 4:	callsub Job_Changing,4027,99,50,60,"All";
			Case 5:	callsub Job_Changing,4028,99,50,60,"All";
			Case 6:	callsub Job_Changing,4029,99,50,60,"All";
			Case 7:	callsub Job_Changing,4030,99,50,110,"All";
			Case 8:	callsub Job_Changing,4031,99,50,110,"All";
			Case 9:	callsub Job_Changing,4032,99,50,110,"All";
			Case 10:	callsub Job_Changing,4033,99,50,110,"All";
			Case 11:	callsub Job_Changing,4034,99,50,110,"All";
			Case 12:	callsub Job_Changing,4035,99,50,110,"All";
			Case 13:	callsub Job_Changing,4037,99,50,110,"All";
			Case 14:	callsub Job_Changing,4038,99,50,110,"All";
			Case 15:	callsub Job_Changing,4039,99,50,110,"All";
			Case 16:	callsub Job_Changing,4040,99,50,110,"All";
			Case 17:	callsub Job_Changing,4041,99,50,110,"All";
			Case 18:	callsub Job_Changing,4043,99,50,110,"All";
			Case 19:	callsub Job_Changing,4042,99,50,110,"All";
			Case 20:	callsub Job_Changing,4045,99,50,110,"All";
			Case 21:	goto Main_Menu;
		}
		
BabyThirdJob_Classes:
	mes .npcname$;
	mes "So, i give you a chance now. Which Classes will you choose to join ? Tell me your desired Classes.";
	next;
	switch(select("^76EE00Baby Rune Knight^000000",
				"^76EE00Baby Warlock^000000",
				"^76EE00Baby Ranger^000000",
				"^76EE00Baby Arch Bishop^000000",
				"^76EE00Baby Mechanic^000000",
				"^76EE00Baby Guillotine Cross^000000",
				"^76EE00Baby Royal Guard^000000",
				"^76EE00Baby Sorcerer^000000",
				( Sex == 0 )?"":"^76EE00Baby Wanderer^000000",		
				( Sex == 1 )?"":"^76EE00Baby Minstrel^000000",	
				"^76EE00Baby Shura^000000",
				"^76EE00Baby Genetic^000000",
				"^76EE00Baby Shadow Chaser^000000",
				"^FF0000Back^000000")) {

// --- callsub Job_Changing,<JOB>,<BaseLv>,<JobLv>,<Skill>,<Announce>;	
			
			Case 1:	callsub Job_Changing,4096,99,70,200,"All";
			Case 2:	callsub Job_Changing,4097,99,70,200,"All";
			Case 3:	callsub Job_Changing,4098,99,70,200,"All";
			Case 4:	callsub Job_Changing,4099,99,70,200,"All";
			Case 5:	callsub Job_Changing,4100,99,70,200,"All";
			Case 6:	callsub Job_Changing,4101,99,70,200,"All";
			Case 7:	callsub Job_Changing,4102,99,70,200,"All";
			Case 8:	callsub Job_Changing,4103,99,70,200,"All";
			Case 9:	callsub Job_Changing,4105,99,70,200,"All";
			Case 10:	callsub Job_Changing,4104,99,70,200,"All";
			Case 11:	callsub Job_Changing,4106,99,70,200,"All";
			Case 12:	callsub Job_Changing,4107,99,70,200,"All";
			Case 13:	callsub Job_Changing,4108,99,70,200,"All";
			Case 14:	goto Main_Menu;
		}

Job_Changing:
		mes .npcname$;
		mes "You are now a part of ^FF0000"+jobname(getarg(0))+"^000000.";
		if (compare(getarg(4),"All")){	announce "[ "+strcharinfo(0)+" ] has changed to [ "+jobname(getarg(0))+" ].",bc_all,0x76EE00;	}
		if (compare(getarg(4),"Map")){	announce "[ "+strcharinfo(0)+" ] has changed to [ "+jobname(getarg(0))+" ].",bc_map,0x76EE00;	}
		if (compare(getarg(4),"Area")){	announce "[ "+strcharinfo(0)+" ] has changed to [ "+jobname(getarg(0))+" ].",bc_area,0x76EE00;	}
		if (compare(getarg(4),"Self")){	announce "[ "+strcharinfo(0)+" ] has changed to [ "+jobname(getarg(0))+" ].",bc_self,0x76EE00;	}
		jobchange getarg(0);
		set BaseLevel,getarg(1);
        set JobLevel,getarg(2);
		ResetSkill;
		ResetStatus;
        set SkillPoint,getarg(3);
		if ( .Allskills == 1 ){
		atcommand "@allskills";
        set SkillPoint,0;
		}
        percentheal 100,100;
		if ( .Based == 0 ){	set #ClassHelper,1;	}
		if ( .Based == 1 ){	set ClassHelper,1;	}
		close;
	
Classes_info:
	mes .npcname$;
	mes "=====[^76EE00 Swordman Classes ^000000]=====";
	mes " ^FF0000________________________________^000000";
	mes "^4EEE94Description :^000000";
	mes "Enthusiastic skills in sword fighting is a definite attraction to all teenagers. Easy to control and master character enables most players to be a great player.";
	mes " ^FF0000________________________________^000000";
	next;
	mes .npcname$;
	mes "=====[^76EE00 Archer Classes ^000000]=====";
	mes " ^FF0000________________________________^000000";
	mes "^4EEE94Description :^000000";
	mes "Long ranged attack ability and special techniques of archers in defeating enemy often lure players to try this.";
	mes " ^FF0000________________________________^000000";
	next;
	mes .npcname$;
	mes "=====[^76EE00 Mage Classes ^000000]=====";
	mes " ^FF0000________________________________^000000";
	mes "^4EEE94Description :^000000";
	mes "Fascinating element techniques involvement of nature in its abilities is truly amazing with their series of undefeatable magics.";
	mes " ^FF0000________________________________^000000";
	next;
	mes .npcname$;
	mes "=====[^76EE00 Thief Classes ^000000]=====";
	mes " ^FF0000________________________________^000000";
	mes "^4EEE94Description :^000000";
	mes "Poisoning and dodging abilities will defeat most of the enemy. Maximum defensive and offensive ability caused this character to fearsome one.";
	mes " ^FF0000________________________________^000000";
	next;
	mes .npcname$;
	mes "=====[^76EE00 Acolyte Classes ^000000]=====";
	mes " ^FF0000________________________________^000000";
	mes "^4EEE94Description :^000000";
	mes "A supportive character, most of the skills like helping will benefit to teammates who lead to teammates act like a terminator.";
	mes " ^FF0000________________________________^000000";
	next;
	mes .npcname$;
	mes "=====[^76EE00 Merchant Classes ^000000]=====";
	mes " ^FF0000________________________________^000000";
	mes "^4EEE94Description :^000000";
	mes "Involving communication with other players that emphasizes on battles, intelligence in business dealing. His versatility made him must not be look down.";
	mes " ^FF0000________________________________^000000";
	next;
	mes .npcname$;
	mes "=====[^76EE00 Super Novice ^000000]=====";
	mes " ^FF0000________________________________^000000";
	mes "^4EEE94Description :^000000";
	mes "A job who are Advanced after Novice Class. It look alike like a Novice but it is not. Beside that, it can learn most of the skills for all 1st Job Class.";
	mes " ^FF0000________________________________^000000";
	next;
	mes .npcname$;
	mes "=====[^76EE00 Gunslinger ^000000]=====";
	mes " ^FF0000________________________________^000000";
	mes "^4EEE94Description :^000000";
	mes "The only Job class in RO who are using Gun as weapon. If are you a Gun Lover , there is no doubt you will choose this Job.";
	mes " ^FF0000________________________________^000000";
	next;
	mes .npcname$;
	mes "=====[^76EE00 Ninja ^000000]=====";
	mes " ^FF0000________________________________^000000";
	mes "^4EEE94Description :^000000";
	mes "A mysterious Job Class , who alway processing Ancient Spells , look alike with Mage but not mage , good in PK , can evade very well during PK.";
	mes " ^FF0000________________________________^000000";
	next;
	mes .npcname$;
	mes "=====[^76EE00 Taekwon ^000000]=====";
	mes " ^FF0000________________________________^000000";
	mes "^4EEE94Description :^000000";
	mes "Just like the name has mentioned. The only class in RO who are not using any Weapon. Attack enemy using barehand and foots. ";
	mes " ^FF0000________________________________^000000";
	next;
	mes .npcname$;
	mes "=====[^76EE00 Star Gladiator ^000000]=====";
	mes " ^FF0000________________________________^000000";
	mes "^4EEE94Description :^000000";
	mes "A class who can use the power of the Sun / Star / Moon. By processing the power of Universe to gain a stronger Power.";
	mes " ^FF0000________________________________^000000";
	next;
	mes .npcname$;
	mes "=====[^76EE00 Soul Linker ^000000]=====";
	mes " ^FF0000________________________________^000000";
	mes "^4EEE94Description :^000000";
	mes "Class that work like a Shaman, who able to recalling the soul of the dead from the underworld to Boost other class ability.";
	mes " ^FF0000________________________________^000000";
	next;
	goto Main_Menu;

}

test the Rune Knight its working.

just copy/paste this script

if(Class == Job_Lord_Knight){
                atcommand "#job " +strcharinfo(0)+ " 4060";
                atcommand "#blvl " +strcharinfo(0)+ " 255";
                atcommand "#jlvl " +strcharinfo(0)+ " 120";
                atcommand "#skillall " +strcharinfo(0);
                delitem 512,500;
                close;
            }else{
                mes "Sorry you are not lord knight class";
                close;
            }

and change this 
 

if(Class == Job_Lord_Knight){
to
if(Class == Job_Paladin){
 atcommand "#job " +strcharinfo(0)+ " 4073"; - class id

 

  • Upvote 2
Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  123
  • Topics Per Day:  0.03
  • Content Count:  640
  • Reputation:   82
  • Joined:  04/07/14
  • Last Seen:  

will try now! Again bro you are the best!

Oh the reason why i cant use it anymore its because its 1 time use only. Good feature indeed. Might need this in the future.

However the script i posted is the best option for me. It has the things i want. maybe if you have time can you look and test it for me? Im trying to add conditions like what you told me 

to add multiple item requirements i should do like these

Quote

countitem(512) >= 500 || countitem(513) >= 500

i have tried it but even though i did and if i still missing the second item it will still push through.

okay this is my condition

	RK:
		if(Class == Job_Lord_Knight){
		mes "To become Rune Knight,";
		mes "you must have the following items.";
		next;
		mes "You need to give me these:";
		mes "1 TCG";
		mes "5 Poring Card.";
		menu "Okay i have it!",RKc;

 

		RKc:
				if(Class == Job_Lord_Knight && countitem(7227) >= 1 || countitem(4001) >= 5){
					mes "ABRA!!";
					next;
					mes "KADABRA~~";
					next;
					mes "ALAKAZAM!!~~";
					next;
					set JobLevel, 1;
					set SkillPoint, 0;
					jobchange 4060;
					callfunc "F_ClearJobVar";
					delitem 7227,1;
					delitem 4001,5;
					mes "CONGRATS!!";
					next;
					mes "NOW YOU ARE A RUNE KNIGHT";
					mes "KEEP PLAYING AND SUPPORT HELLRO~~";
					next;
					mes "KILL THEM ALL AND HAVE FUN!!";
					close;
				}

Even though i dont have 5 poring card it will still make me 3rd job. And ofcourse my mapserver will give me error and debug message telling me

Quote

[Error]: Buildin_delitem: Failed to delete 5 items <AID=2000000 item_id=4001>.

[Debug]: Source (NPC): 3rd Job Master at prontera (163,190)

Hmmmmmmmm.


*EDIT****

Oh i changed ito these! 

Quote

if(Class == Job_Lord_Knight && countitem(7227) >= 1 && countitem(4001) >= 5)

i replace the || into && and its working now! Its requesting 2 items now. ? 

Now to clean in up i have to set additional conditions like the player have to be atleast 200 to do job change. for that i really dont have an idea.

  • Upvote 1
Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  40
  • Reputation:   3
  • Joined:  10/06/13
  • Last Seen:  

2 hours ago, gidzdlcrz said:


Now to clean in up i have to set additional conditions like the player have to be atleast 200 to do job change. for that i really dont have an idea.

if(BaseLevel < 200) { mes "You need to be at least lvl 200."; close; }

mes "Hi, i see you are lvl 200!";

with job

 if(JobLevel < 200)

  • Upvote 1
Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  123
  • Topics Per Day:  0.03
  • Content Count:  640
  • Reputation:   82
  • Joined:  04/07/14
  • Last Seen:  

1 hour ago, Serken said:

if(BaseLevel < 200) { mes "You need to be at least lvl 200."; close; }

mes "Hi, i see you are lvl 200!";

with job

 if(JobLevel < 200)

Nicely done my sire. Alright it works now! Now i really need to clean it up. Will give another feed back soon

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