//===== Hercules Script ======================================//= Job Master//===== By: ==================================================//= Euphy//===== Current Version: =====================================//= 1.4//===== Description: =========================================//= A fully functional job changer.//===== Additional Comments: =================================//= 1.1 Fixed reset on Baby job change. [Euphy]//= 1.2 Added Expanded Super Novice support and initial Kagerou/Oboro support. [Euphy]//= 1.3 Kagerou/Oboro added. [Euphy]//= 1.4 Improved legibility (renamed variables, replaced// numbers with constants; Changed syntax to match// Hercules standards; Fixed status point exploit upon// Baby Novice job change. [Haru]//============================================================
prontera,153,193,6 script Mestra das Classes2_F_MAGICMASTER,{
function Job_Menu; function A_An;
mes "[Mestra das Classes]";if(Class>Job_Soul_Linker){
mes "Não há mais classes disponíveis.";
close;}if(checkfalcon()|| checkcart()|| checkmount()|| hascashmount()){
mes "Por favor remova "+((checkfalcon())?"o seu falcão":"")+((checkcart())?"o seu carrinho":"")+((checkmount()|| hascashmount())?"a sua montaria":"")+" antes de continuar.";
close;}if(.skill_point_check &&SkillPoint>0){
mes "Por favor use todos os seus pontos de habilidade antes de continuar.";
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 "Você precisa de mais "+(BaseLevel<.rebirth_blevel ?((.rebirth_blevel -BaseLevel)+" níveis de base "+(JobLevel<.rebirth_jlevel ?"e ":"")):"")+(JobLevel<.rebirth_jlevel ?(.rebirth_jlevel -JobLevel)+" níveis de classe ":"")+"para continuar.";
close;}if(Class>Job_Crusader2){
mes "Trocar para terceira classe?";
next;Job_Menu(roclass(.@eac|EAJL_THIRD));
close;}while(true){
mes "Selecione uma opção.";
next;.@choice= select(" ~ ^0055FFRenascer^000000:"+(.third_classes ?" ~ ^FF0000Terceira Classe^000000":"")+": ~ ^777777Cancelar^000000");if(.@choice==3)
close;
mes "[Mestra das Classes]";
mes "Você tem certeza?";
next;if(.@choice==1)Job_Menu(Job_Novice_High);elseJob_Menu(roclass(.@eac|EAJL_THIRD));
mes "[Mestra das Classes]";}}.@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;}elseif(Class==Job_Ninja||Class==Job_Gunslinger){.@newclass=.@job1;.@required_jlevel=70;}if(.@newclass&&.third_classes){if(BaseLevel<.rebirth_blevel ||JobLevel<.@required_jlevel){
mes "Você precisa de mais "+(BaseLevel<.rebirth_blevel ?((.rebirth_blevel -BaseLevel)+" níveis de base "+(JobLevel<.@required_jlevel?"e ":"")):"")+(JobLevel<.@required_jlevel?(.@required_jlevel-JobLevel)+" níveis de classe ":"")+"para continuar.";
close;}
mes "Trocar para "+jobname(.@newclass)+"?";
next;Job_Menu(.@newclass);
close;}if(.@eac&EAJL_2)if(.@eac&(EAJL_UPPER|EAJL_BABY)|| roclass(.@eac|EAJL_UPPER)==-1){
mes "Não há mais classes disponíveis.";
close;}if((.@eac&EAJ_BASEMASK)== EAJ_NOVICE){if(JobLevel<.jobchange_first){
mes "É necessário ter um nível de classe igual ou maior que "+.jobchange_first+" para mudar para a 1ª Classe.";}elseif(Class==Job_Novice_High&&.linear_jobchange && lastJob){
mes "Trocar de classe agora?";
next;Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER));}elseif(Class==Job_Novice){Job_Menu(Job_Swordman,Job_Mage,Job_Archer,Job_Acolyte,Job_Merchant,Job_Thief,Job_SuperNovice,Job_Taekwon,Job_Gunslinger,Job_Ninja,Job_Baby);}elseif(Class==Job_Novice_High){Job_Menu(Job_Swordman_High,Job_Mage_High,Job_Archer_High,Job_Acolyte_High,Job_Merchant_High,Job_Thief_High);}elseif(Class==Job_Baby){Job_Menu(Job_Baby_Swordman,Job_Baby_Mage,Job_Baby_Archer,Job_Baby_Acolyte,Job_Baby_Merchant,Job_Baby_Thief,Job_Super_Baby);}else{
mes "Um erro aconteceu.";}
close;}if(roclass(.@eac|EAJL_2_1)==-1|| roclass(.@eac|EAJL_2_2)==-1){
mes "Não há mais classes disponíveis.";}elseif(!(.@eac&EAJL_2)&&JobLevel<.jobchange_second){
mes "É necessário ter um nível de classe igual ou maior a "+.jobchange_second+" para mudar para a 2ª Classe.";}elseif(.linear_jobchange && lastJob &&(.@eac&EAJL_UPPER)){
mes "Trocar de classe agora?";
next;Job_Menu(lastJob+Job_Novice_High);}else{Job_Menu(.@job1,.@job2);}
close;
function Job_Menu{while(true){if(getargcount()>1){
mes "Selecione uma classe.";.@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 "[Mestra das Classes]";
mes "É necessário ter um nível de base igual ou maior a "+.supernovice_level+" para virar um "+jobname(.@newjob)+".";
close;}
mes "[Mestra das Classes]";
mes "Você tem certeza?";
next;}else{.@newjob= getarg(0);}if(select(" ~ Mudar para a classe ^0055FF"+jobname(.@newjob)+"^000000: ~ ^777777"+(getargcount()>1?"Voltar":"Cancelar")+"^000000")==1){
mes "[Mestra das Classes]";
mes "Você agora é um "+A_An(jobname(.@newjob))+"!";if(.@newjob==Job_Novice_High&&.linear_jobchange)
lastJob =Class;// Nota: Isso é incompatível com o script de renascimento da Valquíria
jobchange .@newjob;if(.@newjob==Job_Novice_High)
resetlvl(1);if(.@newjob==Job_Baby){
resetlvl(4);SkillPoint=0;setBaseLevel,BaseLevel+175;setJobLevel,JobLevel+70;}
specialeffect2 EF_ANGEL2;
specialeffect2 EF_ELECTRIC;if(.platinum)
callsub Get_Platinum;
close;}if(getargcount()==1)return;
mes "[Mestra das Classes]";}
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);}Get_Platinum:
skill NV_FIRSTAID,1,0;if(BaseClass==Job_Novice){if(Class!=Job_SuperNovice)
skill NV_TRICKDEAD,1,0;}elseif(BaseClass==Job_Swordman){
skill SM_MOVINGRECOVERY,1,0;
skill SM_FATALBLOW,1,0;
skill SM_AUTOBERSERK,1,0;}elseif(BaseClass==Job_Mage){
skill MG_ENERGYCOAT,1,0;}elseif(BaseClass==Job_Archer){
skill AC_MAKINGARROW,1,0;
skill AC_CHARGEARROW,1,0;}elseif(BaseClass==Job_Acolyte){
skill AL_HOLYLIGHT,1,0;}elseif(BaseClass==Job_Merchant){
skill MC_CARTREVOLUTION,1,0;
skill MC_CHANGECART,1,0;
skill MC_LOUD,1,0;}elseif(BaseClass==Job_Thief){
skill TF_SPRINKLESAND,1,0;
skill TF_BACKSLIDING,1,0;
skill TF_PICKSTONE,1,0;
skill TF_THROWSTONE,1,0;}if(BaseJob==Job_Knight){
skill KN_CHARGEATK,1,0;}elseif(BaseJob==Job_Priest){
skill PR_REDEMPTIO,1,0;}elseif(BaseJob==Job_Wizard){
skill WZ_SIGHTBLASTER,1,0;}elseif(BaseJob==Job_Blacksmith){
skill BS_UNFAIRLYTRICK,1,0;
skill BS_GREED,1,0;}elseif(BaseJob==Job_Hunter){
skill HT_PHANTASMIC,1,0;}elseif(BaseJob==Job_Assassin){
skill AS_SONICACCEL,1,0;
skill AS_VENOMKNIFE,1,0;}elseif(BaseJob==Job_Crusader){
skill CR_SHRINK,1,0;}elseif(BaseJob==Job_Monk){
skill MO_KITRANSLATION,1,0;
skill MO_BALKYOUNG,1,0;}elseif(BaseJob==Job_Sage){
skill SA_CREATECON,1,0;
skill SA_ELEMENTWATER,1,0;
skill SA_ELEMENTGROUND,1,0;
skill SA_ELEMENTFIRE,1,0;
skill SA_ELEMENTWIND,1,0;}elseif(BaseJob==Job_Rogue){
skill RG_CLOSECONFINE,1,0;}elseif(BaseJob==Job_Alchemist){
skill AM_BIOETHICS,1,0;}elseif(BaseJob==Job_Bard){
skill BA_PANGVOICE,1,0;}elseif(BaseJob==Job_Dancer){
skill DC_WINKCHARM,1,0;}return;OnInit:.rebirth_blevel =1;// Nível de base mínimo para renascer OU mudar para terceira classe.rebirth_jlevel =1;// Nível de classe mínimo para renascer OU mudar para terceira classe.jobchange_first =1;// Nível de classe mínimo para mudar para 1ª classe.jobchange_second =1;// Nível de classe mínimo para mudar para 2ª classe.third_classes =1;// Permitir terceiras classes/classes expandidas? (1: sim / 0: não).supernovice_level =45;// Nível de base mínimo para virar um Super Aprendiz.linear_jobchange =1;// Forçar a troca linear de classes? (1: sim / 0: não).skill_point_check =1;// Forçar o jogador usar todos os pontos de habilidade? (1: sim / 0: não).platinum =1;// Obter habilidades de platina automaticamente? (1: sim / 0: não)set $@level,175;set $@job,70;
end;}
Para que upe lv máximo base e de classe sem all skill sempre que escolher uma classe, tentei adicionar:
Galera estou tentando modificar essas script:
Para que upe lv máximo base e de classe sem all skill sempre que escolher uma classe, tentei adicionar:
Só que não tive exito porque não entendendo muito de script ainda.
Share this post
Link to post
Share on other sites