//===== Hercules Script ======================================
//= Class Setter
//===== By: ==================================================
//= Ancyker
//===== Description: =========================================
//= Disguises you as various classes.
//===== Additional Comments: =================================
//= v1.1 - Bug Fixes
//= v1.0 - Initial version
//===== Obtained at: =========================================
//= https://github.com/Ancyker/PublicScripts/blob/master/SingleFiles/class_setter.txt
//= http://hercules.ws/board/topic/9734-class-setter-disguise-as-third-job-trans-etc/
//============================================================
prontera,158,163,4 script Class Setter 615,{
mes "["+strnpcinfo(1)+"]";
mes "What can I do for you?";
next;
switch(select("Disguise as Third Class:Disguise as Trans Class:Disguise as Baby Class:Disguise as Second Class:Disguise as First Class:End All Disguises")) {
case 1: // Display everything as third
set .@eac, eaclass();
.@eac |= EAJL_THIRD;
set .@job,roclass(.@eac);
if (.@job < 0 || !(.@eac&EAJL_2)) {
mes "["+strnpcinfo(1)+"]";
mes "I'm sorry, but I can't disguise you as this class.";
close;
} else callfunc "applybase",.@job;
break;
case 2: // Display everything as trans
set .@eac, eaclass();
if (.@eac&EAJL_THIRD) .@eac -= EAJL_THIRD;
.@eac |= EAJL_UPPER;
set .@job,roclass(.@eac);
if (.@job < 0 || !(.@eac&EAJL_2)) {
mes "["+strnpcinfo(1)+"]";
mes "I'm sorry, but I can't disguise you as this class.";
close;
} else callfunc "applybase",.@job;
break;
case 3: // Display everyone as baby
set .@eac, eaclass();
if (.@eac&EAJL_UPPER) .@eac -= EAJL_UPPER;
.@eac |= EAJL_BABY;
set .@job,roclass(.@eac);
if (.@job < 0) {
mes "["+strnpcinfo(1)+"]";
mes "I'm sorry, but I can't disguise you as this class.";
close;
} else callfunc "applybase",.@job;
break;
case 4: // Display everyone as 2nd
set .@eac, eaclass();
if (.@eac&EAJL_THIRD) .@eac -= EAJL_THIRD;
if (.@eac&EAJL_UPPER) .@eac -= EAJL_UPPER;
set .@job,roclass(.@eac);
if (.@job < 0 || !(.@eac&EAJL_2)) {
mes "["+strnpcinfo(1)+"]";
mes "I'm sorry, but I can't disguise you as this class.";
close;
} else callfunc "applybase",.@job;
break;
case 5: // Display everyone as 1st
set .@eac, eaclass();
if (.@eac&EAJL_THIRD) .@eac -= EAJL_THIRD;
if (.@eac&EAJL_UPPER) .@eac -= EAJL_UPPER;
if (.@eac&EAJL_2_1) .@eac -= EAJL_2_1;
if (.@eac&EAJL_2_2) .@eac -= EAJL_2_2;
set .@job,roclass(.@eac);
if (.@job < 0) {
mes "["+strnpcinfo(1)+"]";
mes "I'm sorry, but I can't disguise you as this class.";
close;
} else callfunc "applybase",.@job;
break;
default:
callfunc "applybase";
break;
}
mes "["+strnpcinfo(1)+"]";
mes "There you go!";
close;
}
function script applybase {
if (checkmount()) switch (getarg(0,Class)) {
case Job_Rune_Knight:
case Job_Rune_Knight_T:
case Job_Baby_Rune:
setoption 0x80000;
break;
case Job_Knight:
case Job_Baby_Knight:
case Job_Crusader:
case Job_Baby_Crusader:
case Job_Lord_Knight:
case Job_Paladin:
case Job_Royal_Guard:
case Job_Royal_Guard_T:
case Job_Baby_Guard:
setoption 0x20;
break;
default:
break;
}
changebase getarg(0,Class);
return 0;
}