Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

Job Advance (For All version) *Just 111 line*

Junior Spellweaver
Joined
Aug 13, 2010
Messages
111
Reaction score
16
Hi everybody. I release my job advance script from my server. enjoy :lol: :lol: :lol:

PHP:
/*
==============Job Advance : Made By Jamaykids (GloryMS Thailand) KMS 1.2.219 ================
*/
var warrior = Array("110#Figther","120#Page","130#Spearman");
var magician = Array("210#Fire / Poison Mage","220#Ice / Lightening Mage","230#Bishop");
var archer = Array("310#Bowman","320#CrossBowman");
var thief = Array("410#Assasin","420#Bandit");
var pirate = Array("510#Brawler","520#Gunslinger");

function start() {
    status = -1;
    action(1, 0, 0);
}

function action(mode, type, selection) {
    if (mode == -1) {
        cm.dispose();
    } else {
        if (mode == 0) {
            cm.dispose();
            return;
        }
        if (mode == 1)
            status++;
        else
            status--;
        if (status == 0) {
			if (cm.getPlayer().getLevel() == 30 && (cm.getJob() < 1000 && cm.getJob() != 430 && cm.getJob() != 501)) {
				if (cm.getJob() == 100) {
					lvl30 = warrior;
				} else if (cm.getJob() == 200) {
					lvl30 = magician;
				} else if (cm.getJob() == 300) {
					lvl30 = archer;
				} else if (cm.getJob() == 400) {
					lvl30 = thief;
				} else if (cm.getJob() == 500) {
					lvl30 = pirate;
				} else {
					cm.dispose();
				}
				status = 10;
				var chat = "Choose #e#bjob#k#n do you want.\r\n";
				for (var i = 0; i < lvl30.length; i++) {
					chat += "#L" + lvl30[i] + "#l\r\n";
				}
                cm.sendSimple(chat);		
			} else {
			cm.sendNext("Please Click #e#rNext#k#n for change Job");
			}
        } else if (status == 1) {
			if (cm.getPlayer().getLevel() == 20) {
				if (cm.getPlayer().getKeyValue("dualBlade") && cm.getJob() == 400) { // DB
					Job = cm.getJob() + 30;
				} else if (cm.getJob() == 2200) { // Evan
					Job = cm.getJob() + 10;
				} else {
					cm.dispose();
				}
			} else if (cm.getPlayer().getLevel() == 30) {
				if (cm.getJob() == 1100 || cm.getJob() == 1200 || cm.getJob() == 1300 || cm.getJob() == 1400 || cm.getJob() == 1500 || cm.getJob() == 2100 || cm.getJob() == 2300 || cm.getJob() == 2400 || cm.getJob() == 2500 || cm.getJob() == 2700 || cm.getJob() == 3100 || cm.getJob() == 3200 || cm.getJob() == 3300 || cm.getJob() == 3500 || cm.getJob() == 3600 || cm.getJob() == 5100 || cm.getJob() == 6100 || cm.getJob() == 6500) {
					Job = cm.getJob() + 10;
				} else if (cm.getJob() == 430 || cm.getJob() == 2210) { // Evan & DB
					Job = cm.getJob() + 1;
				} else if (cm.getJob() == 501) { // Cannon
					Job = cm.getJob() + 29;		
				} else if (cm.getJob() == 3101) { // Demon Avenger
					Job = cm.getJob() + 19;						
				} else {
					cm.dispose();
				}
			} else if ((cm.getPlayer().getLevel() == 40 && cm.getJob() == 2211) || (cm.getPlayer().getLevel() == 50 && cm.getJob() == 2212) || (cm.getPlayer().getLevel() == 80 && cm.getJob() == 2214) || (cm.getPlayer().getLevel() == 120 && cm.getJob() == 2216) || (cm.getPlayer().getLevel() == 160 && cm.getJob() == 2217)) { // Evan
					Job = cm.getJob() + 1;		
			} else if (cm.getPlayer().getLevel() == 45) { // DB
				if (cm.getJob() == 431) {
					Job = cm.getJob() + 1;		
				} else {
					cm.dispose();
				}			
			} else if (cm.getPlayer().getLevel() == 60)  {
				if (cm.getJob() == 1110 || cm.getJob() == 1210 || cm.getJob() == 1310 || cm.getJob() == 1410 || cm.getJob() == 1510 || cm.getJob() == 2110 || cm.getJob() == 2310 || cm.getJob() == 2410 || cm.getJob() == 2510 || cm.getJob() == 2710 || cm.getJob() == 3110 || cm.getJob() == 3210 || cm.getJob() == 3310 || cm.getJob() == 3510 || cm.getJob() == 3610 || cm.getJob() == 5110 || cm.getJob() == 6110 || cm.getJob() == 6510 || cm.getJob() == 110 || cm.getJob() == 120 || cm.getJob() == 130 || cm.getJob() == 210 || cm.getJob() == 220 || cm.getJob() == 230 || cm.getJob() == 310 || cm.getJob() == 320 || cm.getJob() == 410 || cm.getJob() == 420 || cm.getJob() == 510 || cm.getJob() == 520) {
					Job = cm.getJob() + 1;
				} else if (cm.getJob() == 432 || cm.getJob() == 2213 || cm.getJob() == 3120) { // Evan & DB && DA
					Job = cm.getJob() + 1;
				} else {
					cm.dispose();
				}				
			} else if (cm.getPlayer().getLevel() == 100)  {
				if (cm.getJob() == 1111 || cm.getJob() == 1211 || cm.getJob() == 1311 || cm.getJob() == 1411 || cm.getJob() == 1511 || cm.getJob() == 111 || cm.getJob() == 121 || cm.getJob() == 131 || cm.getJob() == 211 || cm.getJob() == 221 || cm.getJob() == 231 || cm.getJob() == 311 || cm.getJob() == 321 || cm.getJob() == 411 || cm.getJob() == 421 || cm.getJob() == 511 || cm.getJob() == 521 || cm.getJob() == 2111 || cm.getJob() == 2311 || cm.getJob() == 2411 || cm.getJob() == 2511 || cm.getJob() == 2711 || cm.getJob() == 3111 || cm.getJob() == 3211 || cm.getJob() == 3311 || cm.getJob() == 3511 || cm.getJob() == 3611 || cm.getJob() == 5111 || cm.getJob() == 6111 || cm.getJob() == 6511 ) {
					Job = cm.getJob() + 1;
				} else if (cm.getJob() == 433 || cm.getJob() == 2215 || cm.getJob() == 3121) { // Evan & DB && DA
						Job = cm.getJob() + 1;
				} else {
					cm.dispose();
				}
			} else {
				cm.sendOk("...");
				cm.dispose()
			}
			cm.getPlayer().changeJob(Job);
			if (cm.getPlayer().getKeyValue("dualBlade")) {
				cm.fakeRelog();
				cm.updateChar();
			}			
			cm.dispose();
		} else if (status == 11) {
			cm.getPlayer().changeJob(selection);
			cm.dispose();
		}
	}
}
 
Custom Title Activated
Loyal Member
Joined
Jan 18, 2010
Messages
3,109
Reaction score
1,140
Cool I guess, but.. couldn't this be shorter? This looks reeaally long and it looks like a v140+ script with demon avengers and stuff in it (or demon slayer?) which is v117. Nonetheless, nice release.
 
Newbie Spellweaver
Joined
May 23, 2010
Messages
86
Reaction score
24
I recommend changing the code to work for Mod's (%) and checking for individual job ids that way instead of all those id checks manually. That way its more dynamic if nexon adds another job, and im not saying this will work for all job advancement levels, some of the early advancements have a big jump in job id i,e (3002 >> 3600)
 
Junior Spellweaver
Joined
Aug 13, 2010
Messages
111
Reaction score
16
I recommend changing the code to work for Mod's (%) and checking for individual job ids that way instead of all those id checks manually. That way its more dynamic if nexon adds another job, and im not saying this will work for all job advancement levels, some of the early advancements have a big jump in job id i,e (3002 >> 3600)

explain :)
 
Newbie Spellweaver
Joined
May 23, 2010
Messages
86
Reaction score
24
PHP:
} else if (cm.getPlayer().getLevel() >= 60)  {
                if (cm.getJob() % 100 >= 10) { Job = cm.getJob() + 1; }
} else if (cm.getPlayer().getLevel() >= 100)  {
                if (cm.getJob() % 100 > 10) { Job = cm.getJob() + 1; }
}

Code may be subject to change, but this is my thought behind the code. This will prolly only work for the giant blocks of job id checks that you have, the others may have to change, but that requires furthur insight into how the code functions.
 
Back
Top