Jump to content
  • 0
Sign in to follow this  
Alertz

Custom Job Master Script

Question

i need some help with job master script remove ex super novice and some of the third class job third class job. Soul Linker, Star Gladiator

 

mes "[Dead Job Changer]";
    if (Class > Job_Soul_Linker) {
        mes "No more jobs are available.";
        close;
    }
    if (checkfalcon() || checkcart() || checkmount() || hascashmount()) {
        mes "Please remove your "+((checkfalcon())?"falcon":"")+((checkcart())?"cart":"")+((checkmount() || hascashmount())?"mount":"")
            +" before proceeding.";
        close;
    }
    if (.skill_point_check && SkillPoint > 0) {
        mes "Please use all your skill points before proceeding.";
        close;
    }
 
    .@eac = eaclass();
    .@base = .third_classes ? roclass(.@eac&EAJ_UPPERMASK) : Class;
    if (.@base >= Job_Knight && .@base <= Job_Crusader2) {
        if (BaseLevel < .rebirth_blevel || JobLevel < .rebirth_jlevel) {
            .@blvl = .rebirth_blevel - BaseLevel;
            .@jlvl = .rebirth_jlevel - JobLevel;
            mes "You need "
                + (BaseLevel < .rebirth_blevel ? ((.rebirth_blevel - BaseLevel) +" more base levels "+ (JobLevel < .rebirth_jlevel ? "and " : "")) : "")
                + (JobLevel < .rebirth_jlevel ? (.rebirth_jlevel - JobLevel) +" more job levels " : "")
                + "to continue.";
            close;
        }
        if (Class > Job_Crusader2) {
            mes "Switch to third class?";
            next;
            Job_Menu(roclass(.@eac|EAJL_THIRD));
            close;
        }
        while (true) {
            mes "Select an option.";
            next;
            .@[member="choice"] = select(" ~ ^0055FFRebirth^000000:"+": ~ ^777777Cancel^000000");
            if (.@[member="choice"] == 3)
                close;
            mes "[Job Master]";
            mes "Are you sure?";
            next;
            if (.@[member="choice"] == 1)
                Job_Menu(Job_Novice_High);
            mes "[Job Master]";
        }
    }
    .@job1 = roclass(.@eac|EAJL_2_1);
    .@job2 = roclass(.@eac|EAJL_2_2);
    if ((.@eac&EAJ_UPPERMASK) == EAJ_SUPER_NOVICE) {
        .@newclass = roclass(.@eac|EAJL_THIRD);
        .@required_jlevel = 99;
        .@newclass = .@job1;
        .@required_jlevel = 70;
    }
    if (.@newclass && .third_classes) {
        if (BaseLevel < .rebirth_blevel || JobLevel < .@required_jlevel) {
            mes "You need "
                + (BaseLevel < .rebirth_blevel ? ((.rebirth_blevel - BaseLevel) +" more base levels "+ (JobLevel < .@required_jlevel ? "and " : "")) : "")
                + (JobLevel < .@required_jlevel ? (.@required_jlevel - JobLevel) +" more job levels " : "")
                + "to continue.";
            close;
        }
        mes "Switch to "+jobname(.@newclass)+"?";
        next;
        Job_Menu(.@newclass);
        close;
    }
    if (.@eac&EAJL_2)
        if (.@eac&(EAJL_UPPER|EAJL_BABY) || roclass(.@eac|EAJL_UPPER) == -1) {
            mes "No more jobs are available.";
            close;
        }
    if ((.@eac&EAJ_BASEMASK) == EAJ_NOVICE) {
        if (JobLevel < .jobchange_first) {
            mes "A job level of "+.jobchange_first+" is required to change into the 1st Class.";
        } else if (Class == Job_Novice_High && .linear_jobchange && lastJob) {
            mes "Switch classes now?";
            next;
            Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER));
        } else if (Class == Job_Novice) {
            Job_Menu(Job_Archer, Job_Acolyte, Job_Merchant, Job_Thief);
        } else if (Class == Job_Novice_High) {
            Job_Menu(Job_Swordman_High, Job_Mage_High, Job_Archer_High, Job_Acolyte_High, Job_Merchant_High, Job_Thief_High);
        } else {
            mes "An error has occurred.";
        }
        close;
    }
    if (roclass(.@eac|EAJL_2_1) == -1 || roclass(.@eac|EAJL_2_2) == -1) {
        mes "No more jobs are available.";
    } else if (!(.@eac&EAJL_2) && JobLevel < .jobchange_second) {
        mes "A job level of "+.jobchange_second+" is required to change into the 2nd Class.";
    } else if (.linear_jobchange && lastJob && (.@eac&EAJL_UPPER)) {
        mes "Switch classes now?";
        next;
        Job_Menu(lastJob+Job_Novice_High);
    } else {
        Job_Menu(.@job1, .@job2);
    }
    close;
 
function Job_Menu {
    while (true) {
        if (getargcount() > 1) {
            mes "Select a job.";
            .@menu$ = "";
            for (.@i = 0; .@i < getargcount(); ++.@i)
                .@menu$ += " ~ "+jobname(getarg(.@i))+":";
            .@menu$ += " ~ ^777777Cancel^000000";
            next;
            .@newjob = getarg(select(.@menu$)-1, 0);
            if (!.@newjob) close;
            if ((.@newjob == Job_SuperNovice || .@newjob == Job_Super_Baby) && BaseLevel < .supernovice_level) {
                mes "[Dead Job Changer]";
                mes "A base level of "+.supernovice_level+" is required to turn into a "+jobname(.@newjob)+".";
                close;
            }
            mes "[Dead Job Changer]";
            mes "Are you sure?";
            next;
        } else {
            .@newjob = getarg(0);
        }
        if (select(" ~ Change into ^0055FF"+jobname(.@newjob)+"^000000 class: ~ ^777777"+(getargcount() > 1 ? "Go back" : "Cancel")+"^000000") == 1) {
            mes "[Dead Job Changer]";
            mes "You are now "+A_An(jobname(.@newjob))+"!";
            if (.@newjob == Job_Novice_High && .linear_jobchange)
                lastJob = Class; // Note: This is incompatible with the Valkyrie rebirth script.
            jobchange .@newjob;
            if (.@newjob == Job_Novice_High)
                resetlvl(1);
            if (.@newjob == Job_Baby) {
                resetlvl(4);
                SkillPoint = 0;
            }
            specialeffect2 EF_ANGEL2;
            specialeffect2 EF_ELECTRIC;
            if (.platinum)
                callsub Get_Platinum;
            close;
        }
        if (getargcount() == 1)
            return;
        mes "[Dead Job Changer]";
    }
    end;
}
 
function A_An {
    setarray .@vowels$, "a", "e", "i", "o", "u";
    .@firstletter$ = strtolower(charat(getarg(0), 0));
    for (.@i = 0; .@i < getarraysize(.@vowels); ++.@i) {
        if (.@vowels$[.@i] == .@firstletter$)
            return "an "+getarg(0);
    }
    return "a "+getarg(0);
}

Share this post


Link to post
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

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

  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.

Loading...
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.