UID16741
阅读权限110
威望 点
积分757
注册时间2014-2-15
最后登录1970-1-1
听众
收听
 
 
 
升级 
    100%
 
 
 | 
 
 本帖最后由 chujixu 于 2014-8-21 03:05 编辑  
 
//===== rAthena Script ======================================= 
//= Job Master 
//===== By: ================================================== 
//= Euphy 
//===== Current Version: ===================================== 
//= 1.4 
//===== Compatible With: =====================================  
//= rAthena Project 
//===== Description: ========================================= 
//= A fully functional job changer. 
//===== Additional Comments: ================================= 
//= 1.0 Initial script. 
//= 1.1 Fixed reset on Baby job change. 
//= 1.2 Added Expanded Super Novice support and initial Kagerou/Oboro support. 
//= 1.3 Kagerou/Oboro added. 
//= 1.4 Rebellion added. 
//============================================================ 
 
prt_in,135,35,3        script        转职大师        754,{ 
function Job_Menu; 
 
        mes "[转职大师]"; 
        if (Class > 4049) { 
                mes "没有其他职业可供选择."; 
                close; 
        } 
        if (checkfalcon() || checkcart() || checkriding() || ismounting()) { 
                mes "请先卸除您的 "+((checkfalcon())?"猎鹰":"")+((checkcart())?"手推车":"")+((checkriding())?"大嘴鸟":"")+((ismounting())?"座骑":"")+" 才能继续转职."; 
                close; 
        } 
        if (.SkillPointCheck && SkillPoint) { 
                mes "请使用完所有的技能点数才能继续转职."; 
                close; 
        } 
 
        set .@eac, eaclass(); 
        set .@i, ((.ThirdClass)?roclass(.@eac&EAJ_UPPERMASK):Class); 
        if (.@i > 6 && .@i < 22) { 
                if (BaseLevel < .Rebirth[0] || JobLevel < .Rebirth[1]) { 
                        set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .Rebirth[1]-JobLevel; 
                        mes "您的基本等级还差 "+((.@blvl>0)?.@blvl+" 级需要提升,职业等级还差 "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" 级需要提升 ":"")+"才能继续转职."; 
                        close; 
                } 
                if (Class > 21) { 
                        mes "要转职为三转职业吗?"; 
                        next; 
                        Job_Menu(roclass(.@eac|EAJL_THIRD)); 
                        close; 
                } 
                while(1) { 
                        mes "请选择要转职的职业."; 
                        next; 
                        set .@i, select("- ^0055FF进阶职业^000000:"+((.ThirdClass)?"- ^FF0000三转职业^000000":"")+":- ^777777取消^000000"); 
                        if (.@i==3) close; 
                        mes "[转职大师]"; 
                        mes "您确定了吗?"; 
                        next; 
                        Job_Menu(((.@i==1)?4001:roclass(.@eac|EAJL_THIRD))); 
                        mes "[转职大师]"; 
                } 
        } 
        set .@j1, roclass(.@eac|EAJL_2_1); set .@j2,roclass(.@eac|EAJL_2_2); 
        if ((.@eac&EAJ_UPPERMASK) == EAJ_SUPER_NOVICE) setarray .@exp[0],roclass(.@eac|EAJL_THIRD),99; 
        if (Class == Job_Ninja || Class == Job_Gunslinger) setarray .@exp[0],.@j1,70; 
        if (.@exp[0] && .SecondExpanded) { 
                if (BaseLevel < .Rebirth[0] || JobLevel < .@exp[1]) { 
                        set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .@exp[1]-JobLevel; 
                        mes "您的基本等级还差 "+((.@blvl>0)?.@blvl+" 级需要提升,职业等级还差 "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" 级需要提升 ":"")+"才能继续转职."; 
                        close; 
                } 
                mes "要转职为 ^0055FF"+jobname(.@exp[0])+" ^000000吗?"; 
                next; 
                Job_Menu(.@exp[0]); 
                close; 
        } 
        if (.@eac&EAJL_2) 
                if (.@eac&(EAJL_UPPER|EAJL_BABY) || roclass(.@eac|EAJL_UPPER) == -1) { 
                        mes "没有其他职业可供选择."; 
                        close; 
                } 
        if ((.@eac&EAJ_BASEMASK) == EAJ_NOVICE) { 
                if (JobLevel < .JobReq[0]) 
                        mes "您的职业等级需升到"+.JobReq[0]+"级,才能转职为一转职业."; 
                else if (Class == 4001 && .LastJob && lastJob) { 
                        mes "您现在转职吗?"; 
                        next; 
                        Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER)); 
                } else switch(Class) { 
                        case 0: Job_Menu(1,2,3,4,5,6,23,4046,24,25,4023); 
                        case 4001: Job_Menu(4002,4003,4004,4005,4006,4007); 
                        case 4023: Job_Menu(4024,4025,4026,4027,4028,4029,4045); 
                        default: mes "An error has occurred."; break; 
                } 
                close; 
        } 
        if (roclass(.@eac|EAJL_2_1) == -1 || roclass(.@eac|EAJL_2_2) == -1) 
                mes "没有其他职业可供选择."; 
        else if (!(.@eac&EAJL_2) && JobLevel < .JobReq[1]) 
                mes "您的职业等级需提到"+.JobReq[1]+"级,才能转职为二转职业."; 
        else if (.LastJob && lastJob && (.@eac&EAJL_UPPER)) { 
                mes "您现在转职吗?"; 
                next; 
                Job_Menu(lastJob+4001); 
        } else 
                Job_Menu(.@j1,.@j2); 
        close; 
 
function Job_Menu { 
        while(1) { 
                if (getargcount() > 1) { 
                        mes "请选择要转职的职业."; 
                        set .@menu$,""; 
                        for(set .@i,0; .@i<getargcount(); set .@i,.@i+1) 
                                set .@menu$, .@menu$+"- "+jobname(getarg(.@i))+":"; 
                        set .@menu$, .@menu$+"- ^777777取消^000000"; 
                        next; 
                        set .@i, getarg(select(.@menu$)-1,0); 
                        if (!.@i) close; 
                        if ((.@i == 23 || .@i == 4045) && BaseLevel < .SNovice) { 
                                mes "[转职大师]"; 
                                mes "目前基本等级需达到 "+.SNovice+" is required to turn into a "+jobname(.@i)+"."; 
                                close; 
                        } 
                        mes "[转职大师]"; 
                        mes "您确定了吗?"; 
                        next; 
                } else 
                        set .@i, getarg(0); 
                if (select("- 转职为 ^0055FF"+jobname(.@i)+"^000000 职业:- ^777777"+((getargcount() > 1)?"返回":"取消")+"^000000") == 1) { 
                        mes "[转职大师]"; 
                        mes "您已经是 "+callfunc("F_InsertArticle",jobname(.@i))+"!"; 
                        if (.@i==4001 && .LastJob) set lastJob, Class; 
                        jobchange .@i; 
                        if (.@i==4001 || .@i==4023) resetlvl(1); 
                        specialeffect2 EF_ANGEL2; specialeffect2 EF_ELECTRIC; 
                        if (.Platinum) callsub Get_Platinum; 
                        close; 
                } 
                if (getargcount() == 1) return; 
                mes "[转职大师]"; 
        } 
        end; 
} 
 
Get_Platinum: 
        skill 142,1,0; 
        switch(BaseClass) { 
                case 0: if (Class !=23) skill 143,1,0; break; 
                case 1: skill 144,1,0; skill 145,1,0; skill 146,1,0; break; 
                case 2: skill 157,1,0; break; 
                case 3: skill 147,1,0; skill 148,1,0; break; 
                case 4: skill 156,1,0; break; 
                case 5: skill 153,1,0; skill 154,1,0; skill 155,1,0; break; 
                case 6: skill 149,1,0; skill 150,1,0; skill 151,1,0; skill 152,1,0; break; 
                default: break; 
        } 
        switch(BaseJob) { 
                case 7: skill 1001,1,0; break; 
                case 8: skill 1014,1,0; break; 
                case 9: skill 1006,1,0; break; 
                case 10: skill 1012,1,0; skill 1013,1,0; break; 
                case 11: skill 1009,1,0; break; 
                case 12: skill 1003,1,0; skill 1004,1,0; break; 
                case 14: skill 1002,1,0; break; 
                case 15: skill 1015,1,0; skill 1016,1,0; break; 
                case 16: skill 1007,1,0; skill 1008,1,0; skill 1017,1,0; skill 1018,1,0; skill 1019,1,0; break; 
                case 17: skill 1005,1,0; break; 
                case 18: skill 238,1,0; break; 
                case 19: skill 1010,1,0; break; 
                case 20: skill 1011,1,0; break; 
                default: break; 
        } 
        return; 
 
OnInit: 
        setarray .Rebirth[0],99,50;        // Minimum base level, job level to rebirth OR change to third class 
        setarray .JobReq[0],10,40;        // Minimum job level to turn into 1st class, 2nd class 
        set .ThirdClass,1;                // Enable third classes? (1: yes / 0: no) 
        set .SecondExpanded,1;                // Enable new expanded second classes: Ex. Super Novice, Kagerou/Oboro, Rebellion? (1: yes / 0: no) 
        set .SNovice,45;                // Minimum base level to turn into Super Novice 
        set .LastJob,1;                        // Enforce linear class changes? (1: yes / 0: no) 
        set .SkillPointCheck,1;                // Force player to use up all skill points? (1: yes / 0: no) 
        set .Platinum,1;                // Get platinum skills automatically? (1: yes / 0: no) 
        end; 
} 
 
 
需要修改哪段内容才不会导致脚本出错,而且关了三转呢??? |   
 
 温馨提示:
1. 本站模拟器源于网络,经 99Max.mE 二次开发,仅供个人学习娱乐使用,切勿用于商业用途,否则后果自负! 
2. 如需更好体验游戏内容,请前往官方游戏!不具备合法的运营模式,都是强盗,请勿擅自搭建私服! 
3. 如本站内容有侵犯您的权益,请发送信息至QQ:372607220 或 EMAIL:372607220@qq.com ,我们会及时删除。 
 
 
 |