viewing paste Class Setter (Disguise) | Athena

Posted on the
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
//===== 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;
}
Viewed 1743 times, submitted by Streusel.