Jump to content
  • 0

Job Change NPC Transcend only


zeinzu21

Question


  • Group:  Members
  • Topic Count:  7
  • Topics Per Day:  0.00
  • Content Count:  21
  • Reputation:   0
  • Joined:  01/15/13
  • Last Seen:  

Hi there! im looking for a job change NPC that can only serve until transcend. no 3rd jobs!

ive been doing my best to look for an existing one but most of the scripts i found were upgraded to 3rd jobs.

 

can anyone give me one? and do please indicate some of the variables or functions you used and what it is for. im trying to learn scripting too. this part was too complicated for me. thanks!

Link to comment
Share on other sites

4 answers to this question

Recommended Posts


  • Group:  Members
  • Topic Count:  21
  • Topics Per Day:  0.00
  • Content Count:  244
  • Reputation:   17
  • Joined:  11/19/11
  • Last Seen:  

//===== eAthena Script =======================================
//= eAthena Jobchanger AKA Job Master
//===== 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,153,193,6    script    Job Master    123,{
    mes "^ff0000[Job Master]^000000";
    if(Upper == 1 && Class >= Job_Lord_Knight) goto L_noReq;
    if(SkillPoint != 0){
        mes "I'm sorry, please use up all your skill points before changing jobs";
        mes "Please come again soon!";
        close;
    }
    if(JobLevel < 10) goto L_LvError;
    switch(Class){
        case Job_Novice_High:
        case Job_Baby:
        case Job_Novice:
            skill 142,1,0;
            skill 143,1,0;
            mes "Welcome, please select the job you wish to change into";
            if(lastJob != 0 && Class == Job_Novice_High){
                switch(lastJob){
                    case Job_Knight:
                    case Job_Crusader:
                        set @target_job, Job_Swordman_High;
                        break;
                    case Job_Monk:
                    case Job_Priest:
                        set @target_job, Job_Acolyte_High;
                        break;
                    case Job_Alchemist:
                    case Job_Blacksmith:
                        set @target_job, Job_Merchant_High;
                        break;
                    case Job_Rogue:
                    case Job_Assassin:
                        set @target_job, Job_Thief_High;
                        break;
                    case Job_Wizard:
                    case Job_Sage:
                        set @target_job, Job_Mage_High;
                        break;
                    case Job_Hunter:
                    case Job_Bard:
                    case Job_Dancer:
                        set @target_job, Job_Archer_High;
                        break;
                            }
            } else {
                switch(select("Swordsman","Mage","Archer","Acolyte","Merchant","Thief",
                    "Super Novice","Taekwon","Gunslinger","Ninja")){
                        case 7:
                            if(Class == Job_Novice_High) goto L_noReq;
                            if($@JC_SupNovM > BaseLevel) goto L_BvError;
                            if(Upper == 2)
                                set @target_job, Job_Super_Baby;
                            else
                                set @target_job, Job_SuperNovice;
                            break;
                        case 8:
                            if(Class == Job_Novice_High) goto L_noReq;
                            if(Upper == 2) goto L_noReq;
                            set @target_job, Job_Taekwon;
                            break;
                        case 9:
                        case 10:
                            if(Class == Job_Novice_High || Upper == 2) goto L_noReq;
                            set @target_job, @menu + 15;
                            break;
                        default:
                            set @target_job, @menu;
                            if(Class == Job_Novice_High) set @target_job, @target_job + 4001;
                            break;
                    }
            }
            mes "Are you sure you want to change to " + JobName(@target_job) + "?";
            if(select("No","Yes") == 2){
                callfunc "Job_Change", @target_job;
                if(@target_job == Job_Gunslinger || @target_job == Job_Ninja || @target_job == Job_Taekwon) {
                    callfunc "F_ClearJobVar";
                } else {
                    if($@JC_Plat) goto L_GivePlat;
                }
            }
            close;
            break;
        default:
            if(JobLevel < $@JC_MinimumJB) goto L_LvError;
            deletearray @job_opt, getarraysize(@job_opt);
            if(Class < Job_Knight || Class == Job_Taekwon || (Class > Job_Baby && Class < Job_Baby_Knight) || (Class > Job_Novice_High && Class < Job_Lord_Knight)){
                if(lastJob != 0){
                    set @target_job, lastJob + 4001;
                } else {
                    switch(Class){
                        case Job_Swordman_High:
                        case Job_Baby_Swordman:
                        case Job_Swordman:
                            set @job_opt[0], Job_Knight;
                            set @job_opt[1], Job_Crusader;
                            break;
                        case Job_Mage_High:
                        case Job_Baby_Mage:
                        case Job_Mage:
                            set @job_opt[0], Job_Wizard;
                            set @job_opt[1], Job_Sage;
                            break;
                        case Job_Archer_High:
                        case Job_Baby_Archer:
                        case Job_Archer:
                            set @job_opt[0], Job_Hunter;
                            if(Sex == 0)
                                set @job_opt[1], Job_Dancer;
                            else
                                set @job_opt[1], Job_Bard;
                            break;
                        case Job_Acolyte_High:
                        case Job_Baby_Acolyte:
                        case Job_Acolyte:
                            set @job_opt[0], Job_Priest;
                            set @job_opt[1], Job_Monk;
                            break;
                        case Job_Merchant_High:
                        case Job_Baby_Merchant:
                        case Job_Merchant:
                            set @job_opt[0], Job_Blacksmith;
                            set @job_opt[1], Job_Alchemist;
                            break;
                        case Job_Thief_High:
                        case Job_Baby_Thief:
                        case Job_Thief:
                            set @job_opt[0], Job_Assassin;
                            set @job_opt[1], Job_Rogue;
                            break;                        
                        default:
                            set @job_opt[0], Job_Star_Gladiator;
                            set @job_opt[1], Job_Soul_Linker;
                            break;
                    }
                    mes "Welcome, please select the job you wish to change into";
                    set @target_job, @job_opt[select(JobName(@job_opt[0]), JobName(@job_opt[1]))-1];
                    if(Class > Job_Novice_High && Class < Job_Lord_Knight) set @target_job, @target_job + 4001;
                }
                mes "Are you sure you want to change to " + JobName(@target_job) + "?";
                if(select("No","Yes")==2){
                    callfunc "Job_Change", @target_job;
                    if(@target_job == Job_Star_Gladiator || @target_job == Job_Soul_Linker) {
                        callfunc "F_ClearJobVar";
                    } else {
                        if($@JC_Plat) goto L_GivePlat;
                    }
                }
                close;
            }
            if(checkfalcon() || checkcart() || checkriding()) goto L_remove;
            if((Class >=Job_Knight) && (Class <=Job_Crusader2)){
                mes "Do you want to reborn?";
                if(select("Yes","No")==1){
                    if(BaseLevel < 99 || JobLevel < 50) goto L_cantCh;
                    set lastJob, Class;
                    if(Class == Job_Knight2){
                        set lastJob, Job_Knight;
                    } else {
                        if(Class == Job_Crusader2){
                            set lastJob, Job_Crusader;
                        }
                    }
                    jobchange Job_Novice_High;
                    resetlvl(1);
                    skill 142,1,0;
                    skill 143,1,0;
                }
                close;
            }
    }
    mes "I'm sorry, there are no further classes for your job.";
    close;

L_GivePlat:
    if (BaseClass==Job_SuperNovice) goto L_sSuperN;
    if (BaseClass==Job_Swordman) goto L_sSword;
    if (BaseClass==Job_Mage) goto L_sMage;
    if (BaseClass==Job_Archer) goto L_sArcher;
    if (BaseClass==Job_Acolyte) goto L_sAcolyte;
    if (BaseClass==Job_Merchant) goto L_sMerchant;
    if (BaseClass==Job_Thief) goto L_sThief;
    close;
L_sSuperN:
    skill 142,1,0;
    close;
L_sSword:
    skill 142,1,0;
    skill 144,1,0;
    skill 145,1,0;
    skill 146,1,0;
    close;
L_sMage:
    skill 142,1,0;
    skill 157,1,0;
    close;
L_sArcher:
    skill 142,1,0;
    skill 147,1,0;
    skill 148,1,0;
    close;
L_sAcolyte:
    skill 142,1,0;
    skill 156,1,0;
    close;
L_sMerchant:
    skill 142,1,0;
    skill 153,1,0;
    skill 154,1,0;
    skill 155,1,0;
    close;
L_sThief:
    skill 142,1,0;
    skill 149,1,0;
    skill 150,1,0;
    skill 151,1,0;
    skill 152,1,0;
    close;

L_cantCh:
    mes "I'm sorry, you do not meet the requirements to change";
    mes "Please come again soon!";
    close;

L_LvError:
    mes "I'm sorry, you do not seem to have enough Job Levels";
    mes "Please come again soon!";
    close;

L_BvError:
    mes "I'm sorry, you do not seem to have enough Base Levels";
    mes "Please come again soon!";
    close;

L_noReq:
    mes "I'm sorry, you do not meet the requirements to change";
    mes "Please come again soon!";
    close;

L_remove:
    mes "Please remove your cart,falcon or peco";
    mes "Please come again soon!";
    close;

OnInit:
    // Variable Setup
    set $@JC_MinimumJB, 40; //Minimum job level for changing between 2nd and advance Class (Default : 40)
    set $@JC_Plat, 1; //Give Platinum skills on Jobchange (Default : 1-yes)
    set $@JC_SupNovM, 45; //Base Level to change into Super Novice (Default : 45)
    end;
}

Credits to eAthena.

  • Upvote 2
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  7
  • Topics Per Day:  0.00
  • Content Count:  21
  • Reputation:   0
  • Joined:  01/15/13
  • Last Seen:  

appreciated! thanks!

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  21
  • Topics Per Day:  0.00
  • Content Count:  244
  • Reputation:   17
  • Joined:  11/19/11
  • Last Seen:  

appreciated! thanks!

 

No problem :)

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  22
  • Topics Per Day:  0.01
  • Content Count:  76
  • Reputation:   1
  • Joined:  10/11/12
  • Last Seen:  

//===== eAthena Script =======================================
//= eAthena Jobchanger AKA Job Master
//===== 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,153,193,6    script    Job Master    123,{
    mes "^ff0000[Job Master]^000000";
    if(Upper == 1 && Class >= Job_Lord_Knight) goto L_noReq;
    if(SkillPoint != 0){
        mes "I'm sorry, please use up all your skill points before changing jobs";
        mes "Please come again soon!";
        close;
    }
    if(JobLevel < 10) goto L_LvError;
    switch(Class){
        case Job_Novice_High:
        case Job_Baby:
        case Job_Novice:
            skill 142,1,0;
            skill 143,1,0;
            mes "Welcome, please select the job you wish to change into";
            if(lastJob != 0 && Class == Job_Novice_High){
                switch(lastJob){
                    case Job_Knight:
                    case Job_Crusader:
                        set @target_job, Job_Swordman_High;
                        break;
                    case Job_Monk:
                    case Job_Priest:
                        set @target_job, Job_Acolyte_High;
                        break;
                    case Job_Alchemist:
                    case Job_Blacksmith:
                        set @target_job, Job_Merchant_High;
                        break;
                    case Job_Rogue:
                    case Job_Assassin:
                        set @target_job, Job_Thief_High;
                        break;
                    case Job_Wizard:
                    case Job_Sage:
                        set @target_job, Job_Mage_High;
                        break;
                    case Job_Hunter:
                    case Job_Bard:
                    case Job_Dancer:
                        set @target_job, Job_Archer_High;
                        break;
                            }
            } else {
                switch(select("Swordsman","Mage","Archer","Acolyte","Merchant","Thief",
                    "Super Novice","Taekwon","Gunslinger","Ninja")){
                        case 7:
                            if(Class == Job_Novice_High) goto L_noReq;
                            if($@JC_SupNovM > BaseLevel) goto L_BvError;
                            if(Upper == 2)
                                set @target_job, Job_Super_Baby;
                            else
                                set @target_job, Job_SuperNovice;
                            break;
                        case 8:
                            if(Class == Job_Novice_High) goto L_noReq;
                            if(Upper == 2) goto L_noReq;
                            set @target_job, Job_Taekwon;
                            break;
                        case 9:
                        case 10:
                            if(Class == Job_Novice_High || Upper == 2) goto L_noReq;
                            set @target_job, @menu + 15;
                            break;
                        default:
                            set @target_job, @menu;
                            if(Class == Job_Novice_High) set @target_job, @target_job + 4001;
                            break;
                    }
            }
            mes "Are you sure you want to change to " + JobName(@target_job) + "?";
            if(select("No","Yes") == 2){
                callfunc "Job_Change", @target_job;
                if(@target_job == Job_Gunslinger || @target_job == Job_Ninja || @target_job == Job_Taekwon) {
                    callfunc "F_ClearJobVar";
                } else {
                    if($@JC_Plat) goto L_GivePlat;
                }
            }
            close;
            break;
        default:
            if(JobLevel < $@JC_MinimumJB) goto L_LvError;
            deletearray @job_opt, getarraysize(@job_opt);
            if(Class < Job_Knight || Class == Job_Taekwon || (Class > Job_Baby && Class < Job_Baby_Knight) || (Class > Job_Novice_High && Class < Job_Lord_Knight)){
                if(lastJob != 0){
                    set @target_job, lastJob + 4001;
                } else {
                    switch(Class){
                        case Job_Swordman_High:
                        case Job_Baby_Swordman:
                        case Job_Swordman:
                            set @job_opt[0], Job_Knight;
                            set @job_opt[1], Job_Crusader;
                            break;
                        case Job_Mage_High:
                        case Job_Baby_Mage:
                        case Job_Mage:
                            set @job_opt[0], Job_Wizard;
                            set @job_opt[1], Job_Sage;
                            break;
                        case Job_Archer_High:
                        case Job_Baby_Archer:
                        case Job_Archer:
                            set @job_opt[0], Job_Hunter;
                            if(Sex == 0)
                                set @job_opt[1], Job_Dancer;
                            else
                                set @job_opt[1], Job_Bard;
                            break;
                        case Job_Acolyte_High:
                        case Job_Baby_Acolyte:
                        case Job_Acolyte:
                            set @job_opt[0], Job_Priest;
                            set @job_opt[1], Job_Monk;
                            break;
                        case Job_Merchant_High:
                        case Job_Baby_Merchant:
                        case Job_Merchant:
                            set @job_opt[0], Job_Blacksmith;
                            set @job_opt[1], Job_Alchemist;
                            break;
                        case Job_Thief_High:
                        case Job_Baby_Thief:
                        case Job_Thief:
                            set @job_opt[0], Job_Assassin;
                            set @job_opt[1], Job_Rogue;
                            break;                        
                        default:
                            set @job_opt[0], Job_Star_Gladiator;
                            set @job_opt[1], Job_Soul_Linker;
                            break;
                    }
                    mes "Welcome, please select the job you wish to change into";
                    set @target_job, @job_opt[select(JobName(@job_opt[0]), JobName(@job_opt[1]))-1];
                    if(Class > Job_Novice_High && Class < Job_Lord_Knight) set @target_job, @target_job + 4001;
                }
                mes "Are you sure you want to change to " + JobName(@target_job) + "?";
                if(select("No","Yes")==2){
                    callfunc "Job_Change", @target_job;
                    if(@target_job == Job_Star_Gladiator || @target_job == Job_Soul_Linker) {
                        callfunc "F_ClearJobVar";
                    } else {
                        if($@JC_Plat) goto L_GivePlat;
                    }
                }
                close;
            }
            if(checkfalcon() || checkcart() || checkriding()) goto L_remove;
            if((Class >=Job_Knight) && (Class <=Job_Crusader2)){
                mes "Do you want to reborn?";
                if(select("Yes","No")==1){
                    if(BaseLevel < 99 || JobLevel < 50) goto L_cantCh;
                    set lastJob, Class;
                    if(Class == Job_Knight2){
                        set lastJob, Job_Knight;
                    } else {
                        if(Class == Job_Crusader2){
                            set lastJob, Job_Crusader;
                        }
                    }
                    jobchange Job_Novice_High;
                    resetlvl(1);
                    skill 142,1,0;
                    skill 143,1,0;
                }
                close;
            }
    }
    mes "I'm sorry, there are no further classes for your job.";
    close;

L_GivePlat:
    if (BaseClass==Job_SuperNovice) goto L_sSuperN;
    if (BaseClass==Job_Swordman) goto L_sSword;
    if (BaseClass==Job_Mage) goto L_sMage;
    if (BaseClass==Job_Archer) goto L_sArcher;
    if (BaseClass==Job_Acolyte) goto L_sAcolyte;
    if (BaseClass==Job_Merchant) goto L_sMerchant;
    if (BaseClass==Job_Thief) goto L_sThief;
    close;
L_sSuperN:
    skill 142,1,0;
    close;
L_sSword:
    skill 142,1,0;
    skill 144,1,0;
    skill 145,1,0;
    skill 146,1,0;
    close;
L_sMage:
    skill 142,1,0;
    skill 157,1,0;
    close;
L_sArcher:
    skill 142,1,0;
    skill 147,1,0;
    skill 148,1,0;
    close;
L_sAcolyte:
    skill 142,1,0;
    skill 156,1,0;
    close;
L_sMerchant:
    skill 142,1,0;
    skill 153,1,0;
    skill 154,1,0;
    skill 155,1,0;
    close;
L_sThief:
    skill 142,1,0;
    skill 149,1,0;
    skill 150,1,0;
    skill 151,1,0;
    skill 152,1,0;
    close;

L_cantCh:
    mes "I'm sorry, you do not meet the requirements to change";
    mes "Please come again soon!";
    close;

L_LvError:
    mes "I'm sorry, you do not seem to have enough Job Levels";
    mes "Please come again soon!";
    close;

L_BvError:
    mes "I'm sorry, you do not seem to have enough Base Levels";
    mes "Please come again soon!";
    close;

L_noReq:
    mes "I'm sorry, you do not meet the requirements to change";
    mes "Please come again soon!";
    close;

L_remove:
    mes "Please remove your cart,falcon or peco";
    mes "Please come again soon!";
    close;

OnInit:
    // Variable Setup
    set $@JC_MinimumJB, 40; //Minimum job level for changing between 2nd and advance Class (Default : 40)
    set $@JC_Plat, 1; //Give Platinum skills on Jobchange (Default : 1-yes)
    set $@JC_SupNovM, 45; //Base Level to change into Super Novice (Default : 45)
    end;
}

Credits to eAthena.

 

i tried to add

set $@SkillPointCheck = 1; 

not working  /sob

set $@JC_SkillPointCheck, 0;

sorry wrong code fixed  /ok

Removing this if(SkillPoint != 0)

solve my problem

bypass skillpoints

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