//===== Cronus Script ========================================
//= Mestra das Classes
//===== Por: =================================================
//= Kamper
//= Mehah(Atualizações)
//===== Versão Atual: ========================================
//= 1.7.1
//===== Descrição: ===========================================
//= Muda a classe do personagem
//===== Changelog: ===========================================
//= 1.0 Iniciado o Npc [Kamper]
//= 1.1 Corrigido o erro de Dup Label
//= 1.2 Corrigido o mes
//= 1.3 Corrigido o label L_mer [Kamper]
//= 1.3.1 Adaptado para o novo sistema de classes [Mehah]
//= 1.4 Adaptado as transclasses [Kamper]
//= 1.5 Adicionado o a função mc_job [Kamper]
//= 1.5.1 Otimizado Script [Mehah]
//= 1.6b Corrigido Todos os Bugs Visto [Mehah]
//= - Novo Sistema de checagem de Renters e Classe
//= - Novo Sistema de Leitura das variaveis e Label
//= 1.7 Script Revisado, corrigido erros de label e level [Pudim]
//= 1.7.1 Corrigido bugs [Mehah]
//= - Ao sair da escolha de job
//= - Ao Escolher a Odalisca
//= - Checagem de lvl e joblvl
//============================================================
function script mc_job {
show "[Mestra das Classes]";
show "Você tem certeza?";
if(getarg(1) > 0) show "Custa "+ getarg(1) +" Zeny!";
if(Zeny < getarg(1)) goto ZenyErro;
menu "Não",L_sair,"Sim",-;
setjob getarg(0);
set zeny, Zeny - getarg(1);
L_sair:
close;
}
prontera.gat,153,186,5 script Mestra das Classes 101,{
// ======================================== Configuração =============================================
set @SupAprLvl, 45; // Nível de Base necessário para se transformar em Super aprendiz (Default : 45)
set @ZenyReq1, 0; // Dinheiro necessário para pagar a transformação de classes 1-1 (Default : 0)
set @ZenyReq2, 0; // Dinheiro necessário para pagar a transformação de classes 2-1 e 2-2 (Default : 0)
set @ZenyReqS, 0; // Dinheiro necessário para pagar a transformação de Super Aprendiz (Default : 0)
set @ZenyReqR, 0; // Dinheiro necessário para pagar a transformação de Aprendiz T (Default: 0)
// ===================================================================================================
if(Sex == 0) set @mc_sex$, "F";
if(Sex == 1) set @mc_sex$, "M";
if(BaseJob != Job_Novice){set @njob,40;}else{set @njob,10;};
if(Class == 0) goto L_Aprendiz;
if(Class > 4007 && Class < 4023){
show "[Mestra das Classes]";
show "Você já chegou ao final das classes, me desculpa mas não posso fazer nada por você.";
close;
}
if(Class > 0 && Class < 7) goto L_Prim;
if(Class > 6 && Class <= 20) goto L_Prim2;
if(Class == 4001) goto L_AprendizT;
if(Class > 4001 && Class < 4008) goto L_PrimT;
show "[Mestra das Classes]";
show "Desculpe, mas não há nada que eu possa fazer por você.";
close;
L_Aprendiz:
if(JobLevel < @njob) goto JobError;
if(SkillPoint != 0) goto SkillError;
show "Qual classe deseja se transformar?";
next;
menu ""+callfunc("classname",3,"S",@mc_sex$)+"",L_arq,""+callfunc("classname",6,"S",@mc_sex$)+"",L_gat,""+callfunc("classname",1,"S",@mc_sex$)+"",L_esp,""+callfunc("classname",5,"S",@mc_sex$)+"",L_mer,""+callfunc("classname",4,"S",@mc_sex$)+"",L_Nov,""+callfunc("classname",2,"S",@mc_sex$)+"",L_mag,""+callfunc("classname",23,"S",@mc_sex$)+"",L_sup;
L_Prim:
if(JobLevel < @njob) goto JobError;
if(SkillPoint != 0) goto SkillError;
show "Qual classe deseja se transformar?";
next;
if(BaseJob == Job_Archer){ menu ""+callfunc("classname",11,"S",@mc_sex$)+"",L_cac,""+callfunc("classname",19,"S",@mc_sex$)+"",L_bar; }else{
if(BaseJob == Job_Thief){ menu ""+callfunc("classname",12,"S",@mc_sex$)+"",L_mer2,""+callfunc("classname",17,"S",@mc_sex$)+"",L_arr; }else{
if(BaseJob == Job_Swordman){ menu ""+callfunc("classname",7,"S",@mc_sex$)+"",L_cav,""+callfunc("classname",14,"S",@mc_sex$)+"",L_tem; }else{
if(BaseJob == Job_Merchant){ menu ""+callfunc("classname",10,"S",@mc_sex$)+"",L_fer,""+callfunc("classname",18,"S",@mc_sex$)+"",L_alq; }else{
if(BaseJob == Job_Acolyte){ menu ""+callfunc("classname",8,"S",@mc_sex$)+"",L_sac,""+callfunc("classname",15,"S",@mc_sex$)+"",L_mon; }else{
if(BaseJob == Job_Mage){ menu ""+callfunc("classname",9,"S",@mc_sex$)+"",L_bru,""+callfunc("classname",16,"S",@mc_sex$)+"",L_sab; } }}}}}
L_Prim2:
callsub GravSkill;
show "[Mestra das Classes]";
show "Você tem certeza que deseja se transforma em Aprendiz T.?";
if(@ZenyReqR > 0) show "Custa "+ @ZenyReqR +" Zeny!";
if(Zeny < @ZenyReqR) goto ZenyErro;
next;
menu "Não",L_Sair,"Sim",-;
set zeny, Zeny - @ZenyReqR;
if(BaseLevel < 99 || JobLevel < 50) goto LevelError;
if(Zeny || Weight) goto ZenyItensError;
if(checkcart() || checkfalcon() || checkmount() ) goto CheckRenter;
if(SkillPoint != 0) goto SkillError;
set MC_ULTJOB, Class;
setjob 4001;
resetlvl(1);
if(@QSK144 != 0) skill 144,1,0;
if(@QSK156 != 0) skill 156,1,0;
if(@QSK157 != 0) skill 157,1,0;
if(@QSK153 != 0) skill 153,1,0;
if(@QSK147 != 0) skill 147,1,0;
if(@QSK149 != 0) skill 149,1,0;
if(@QSK145 != 0) skill 145,1,0;
if(@QSK154 != 0) skill 154,1,0;
if(@QSK148 != 0) skill 148,1,0;
if(@QSK150 != 0) skill 150,1,0;
if(@QSK146 != 0) skill 146,1,0;
if(@QSK155 != 0) skill 155,1,0;
if(@QSK151 != 0) skill 151,1,0;
if(@QSK152 != 0) skill 152,1,0;
close;
L_AprendizT:
if(JobLevel < @njob) goto JobError;
if(SkillPoint != 0) goto SkillError;
if(MC_ULTJOB == 7 || MC_ULTJOB == 14) set @mc_class, 4002;
if(MC_ULTJOB == 8 || MC_ULTJOB == 15) set @mc_class, 4005;
if(MC_ULTJOB == 9 || MC_ULTJOB == 16) set @mc_class, 4003;
if(MC_ULTJOB == 10 || MC_ULTJOB == 18)set @mc_class, 4006;
if(MC_ULTJOB == 11 || MC_ULTJOB == 19 || MC_ULTJOB == 20) set @mc_class, 4004;
if(MC_ULTJOB == 12 || MC_ULTJOB == 17) set @mc_class, 4007;
show "[Mestra das Classes]";
show "Deseja se transformar em "+callfunc("classname",@mc_class,"S",@mc_sex$)+"?";
if(@ZenyReq1 > 0) show "Custa "+ @ZenyReq1 +" Zeny!";
if(Zeny < @ZenyReq1) goto ZenyErro;
next;
menu "Não",L_Sair,"Sim",-;
if(MC_ULTJOB == 7 || MC_ULTJOB == 14) setjob 4002;
if(MC_ULTJOB == 8 || MC_ULTJOB == 15) setjob 4005;
if(MC_ULTJOB == 9 || MC_ULTJOB == 16) setjob 4003;
if(MC_ULTJOB == 10 || MC_ULTJOB == 18) setjob 4006;
if(MC_ULTJOB == 11 || MC_ULTJOB == 19 || MC_ULTJOB == 20) setjob 4004;
if(MC_ULTJOB == 12 || MC_ULTJOB == 17) setjob 4007;
set zeny, Zeny - @ZenyReq1;
close;
L_PrimT:
if(JobLevel < @njob) goto JobError;
if(SkillPoint != 0) goto SkillError;
if(MC_ULTJOB != 20){set @mc_class, MC_ULTJOB + 4001;}else{set @mc_class, MC_ULTJOB + 4000;}
show "[Mestra das Classes]";
show "Deseja se transformar em "+callfunc("classname",@mc_class,"S",@mc_sex$)+"?";
if(@ZenyReq2 > 0) show "Custa "+ @ZenyReq2 +" Zeny!";
if(Zeny < @ZenyReq2) goto ZenyErro;
menu "Não",L_Sair,"Sim",-;
if(MC_ULTJOB == 7) setjob 4008;
if(MC_ULTJOB == 8) setjob 4009;
if(MC_ULTJOB == 9) setjob 4010;
if(MC_ULTJOB == 10) setjob 4011;
if(MC_ULTJOB == 11) setjob 4012;
if(MC_ULTJOB == 12) setjob 4013;
if(MC_ULTJOB == 14) setjob 4015;
if(MC_ULTJOB == 15) setjob 4016;
if(MC_ULTJOB == 16) setjob 4017;
if(MC_ULTJOB == 17) setjob 4018;
if(MC_ULTJOB == 18) setjob 4019;
if(MC_ULTJOB == 19) setjob 4020;
if(MC_ULTJOB == 20) setjob 4021;
set zeny, Zeny - @ZenyReq2;
set MC_ULTJOB, 0;
close;
// Classes 1-1
L_esp:
callfunc "mc_job",1,@ZenyReq1;
L_mag:
callfunc "mc_job",2,@ZenyReq1;
L_arq:
callfunc "mc_job",3,@ZenyReq1;
L_Nov:
callfunc "mc_job",4,@ZenyReq1;
L_mer:
callfunc "mc_job",5,@ZenyReq1;
L_gat:
callfunc "mc_job",6,@ZenyReq1;
// Classe Super Aprendiz
L_sup:
if(BaseLevel < @SupAprLvl) goto LevelError;
callfunc "mc_job",23,@ZenyReqS;
// Classes 2-1
L_cav:
callfunc "mc_job",7,@ZenyReq2;
L_sac:
callfunc "mc_job",8,@ZenyReq2;
L_bru:
callfunc "mc_job",9,@ZenyReq2;
L_fer:
callfunc "mc_job",10,@ZenyReq2;
L_cac:
callfunc "mc_job",11,@ZenyReq2;
L_mer2:
callfunc "mc_job",12,@ZenyReq2;
// Classes 2-2
L_tem:
callfunc "mc_job",14,@ZenyReq2;
L_mon:
callfunc "mc_job",15,@ZenyReq2;
L_sab:
callfunc "mc_job",16,@ZenyReq2;
L_arr:
callfunc "mc_job",17,@ZenyReq2;
L_alq:
callfunc "mc_job",18,@ZenyReq2;
L_bar:
if(sex == 1){callfunc "mc_job",19,@ZenyReq2;}else{callfunc "mc_job",20,@ZenyReq2;}
GravSkill:
if(getskilllv(144)) set @QSK144,1;
if(getskilllv(156)) set @QSK156,1;
if(getskilllv(157)) set @QSK157,1;
if(getskilllv(153)) set @QSK153,1;
if(getskilllv(147)) set @QSK147,1;
if(getskilllv(149)) set @QSK149,1;
if(getskilllv(145)) set @QSK145,1;
if(getskilllv(154)) set @QSK154,1;
if(getskilllv(148)) set @QSK148,1;
if(getskilllv(150)) set @QSK150,1;
if(getskilllv(146)) set @QSK146,1;
if(getskilllv(155)) set @QSK155,1;
if(getskilllv(151)) set @QSK151,1;
if(getskilllv(152)) set @QSK152,1;
return;
LevelError:
show "[Mestra das Classes]";
if(BaseJob == Job_SuperNovice){show "Desculpe, mas você precisa de Nível Base "+ @SupAprLvl +"!";}else{
show "Desculpe, mas você precisa de Nível Base 99 e Nível de Classe 50!";
}
close;
ZenyItensError:
show "[Mestra das Classes]";
show "Seu dinheiro e seus itens te ligam ao mundo material.";
show "Se livre deles para que eu possa lhe transformar em Aprendiz T.";
close;
CheckRenter:
show "[Mestra das Classes]";
if(checkcart()){show "Por favor, se livre de seu carrinho apra continuarmos.";}else{
if(checkfalcon()){set @ChRent$,"falcão";}else{
if(checkmount()) set @ChRent$,"PecoPeco";}
show "Desculpe, mas você deve retirar seu "+@ChRent$+".";
close;
}
JobError:
show "[Mestra das Classes]";
show "Desculpe, mas você precisa chegar ao nível de classe "+@njob+"!";
close;
SkillError:
show "[Mestra das Classes]";
show "Desculpe, mas você precisa gastar todos os seus pontos de habilidades...";
close;
ZenyErro:
show "[Mestra das Classes]";
show "Desculpe, mas você não tem o dinheiro necessário!";
close;
L_Sair:
close;
}