//===== Cronus Script ========================================
//= Mestra das Classes
//===== Por: =================================================
//= Reply.
//===== Versão: ==============================================
//= 1.3e
//===== Descrição: ===========================================
//= Muda a classe do personagem.
//===== Changelog: ===========================================
//= 1.0 - NPC Criado. [Reply.]
//= 1.1 - Corrigido alguns erros. [Reply.]
//= 1.2 - Corrigido a checagem de job para Baby Aprendiz. [RoM]
//= - Corrigido onde mostra o nome na função.
//= 1.3 - Adicionada uma verificação de peso ao rebornar para não perder itens. [RoM]
//= 1.3a - Algumas correções de gramática. [Puncker]
//= 1.3b - Uma pequena correção. [RoM]
//= 1.3c - Corrigido erro de "Frase desnecessária" [Heaven]
//= 1.3d - Não há necessidade de usar uma variável no nome do npc, retirado. [Mooka]
//= 1.3e - Corrição no if() da função checkconditions(), problema com classes baby. [Mooka]
//============================================================
prontera,153,193,6 script Mestra das Classes::mcl 123,{
mes "[Mestra das Classes]";
callfunc "checkconditions";
if(!Class)
{
mes "Olá "+strcharinfo(0)+".";
mes "Por favor, escolha qual profissão deseja seguir.";
switch(select("Espadachim","Mago","Arqueiro","Noviço","Mercador","Gatuno","Super Aprendiz","Taekwon","Justiceiro","Ninja"))
{
default:
callfunc "nextmesname";
callfunc "changejob",@menu;
break;
case 7:
if(BaseLevel < 45)
{
next;
mes "[Mestra das Classes]";
mes "Você não tem nível suficiente para mudar para Super Aprendiz.";
close;
}
callfunc "nextmesname";
callfunc "changejob",@menu + 16;
break;
case 8:
callfunc "nextmesname";
callfunc "changejob",4046;
break;
case 9:
case 10:
callfunc "nextmesname";
callfunc "changejob",@menu + 15;
break;
}
}
else if((Class > 0) && (Class < 7) || (Class == 4046))
{
mes "Olá "+strcharinfo(0)+".";
mes "Vejo que você voltou!";
mes "E então, qual classe deseja seguir agora?";
switch(Class)
{
case 1:
if(select("Cavaleiro:Templário") == 1){
callfunc "nextmesname";
callfunc "changejob",7;
}else{
callfunc "nextmesname";
callfunc "changejob",14;
}
break;
case 2:
if(select("Bruxo:Sábio") == 1){
callfunc "nextmesname";
callfunc "changejob",9;
}else{
callfunc "nextmesname";
callfunc "changejob",16;
}
break;
case 3:
if(Sex){
if(select("Caçador:Bardo") == 1){
callfunc "nextmesname";
callfunc "changejob",11;
}else{
callfunc "nextmesname";
callfunc "changejob",19;
}
}else{
if(select("Caçadora:Odalisca") == 1){
callfunc "nextmesname";
callfunc "changejob",11;
}else{
callfunc "nextmesname";
callfunc "changejob",20;
}
break;
}
case 4:
if(select("Sacerdote:Monge") == 1){
callfunc "nextmesname";
callfunc "changejob",8;
}else{
callfunc "nextmesname";
callfunc "changejob",15;
}
break;
case 5:
if(select("Ferreiro:Alquimista") == 1){
callfunc "nextmesname";
callfunc "changejob",10;
}else{
callfunc "nextmesname";
callfunc "changejob",18;
}
break;
case 6:
if(select("Mercenário:Arruaceiro") == 1){
callfunc "nextmesname";
callfunc "changejob",12;
}else{
callfunc "nextmesname";
callfunc "changejob",17;
}
break;
case 4046:
if(select("Mestre Taekwon:Espiritualista") == 1){
callfunc "nextmesname";
callfunc "changejob",4047;
}else{
callfunc "nextmesname";
callfunc "changejob",4049;
}
break;
}
}
else if((Class > Job_Thief) && (Class < 22))
{
mes "Olá "+strcharinfo(0)+".";
mes "Vejo que já está bem forte.";
mes "Gostaria de renascer agora?";
if(select("Sim:Não") == 2) close;
next;
mes "[Mestra das Classes]";
if(Weight >= 1935){
mes "Você está acima do peso permitido, guarde alguns itens e volte mais tarde.";
close;
}
set lastjob, Class;
jobchange Job_Novice_High;
resetlvl(1);
mes "Certo, vai ganhar 100 pontos de atributos";
mes "para lhe ajudar nessa nova jornada";
mes "e mais algumas habilidades.";
close;
}
else if(Class == Job_Novice_High)
{
switch(lastjob)
{
case 7:
case 14:
set @job, 4002;
break;
case 9:
case 16:
set @job, 4003;
break;
case 11:
case 19:
case 20:
set @job, 4004;
break;
case 8:
case 15:
set @job, 4005;
break;
case 10:
case 18:
set @job, 4006;
break;
case 12:
case 17:
set @job, 4007;
break;
}
mes "Olá "+strcharinfo(0)+".";
mes "Que bom que já retornou.";
mes "Deseja se tornar um "+jobname(@job)+"?";
if(select("- Sim, claro:- Não, obrigado") == 2) close;
next;
jobchange @job;
mes "[Mestra das Classes]";
mes "Parabéns "+strcharinfo(0)+".";
close;
}
else if(Class > 4001 && Class < 4008)
{
mes "Olá "+strcharinfo(0)+".";
mes "Que bom que já retornou.";
set @job, lastjob + 4001;
callfunc "nextmesname";
callfunc "changejob", @job;
}
else if(Class == 4023)
{
mes "Olá "+strcharinfo(0)+".";
mes "Por favor, escolha qual profissão deseja seguir.";
switch(select("Bebê Espadachim","Bebê Mago","Bebê Arqueiro","Bebê Noviço","Bebê Mercador","Bebê Gatuno","Super Bebê"))
{
default:
callfunc "nextmesname";
callfunc "changejob",@menu + 4023;
break;
case 7:
callfunc "nextmesname";
callfunc "changejob", 4045;
break;
}
}
else if(Class > 4023 && Class < 4030)
{
mes "Olá "+strcharinfo(0)+".";
mes "Vejo que você voltou!";
mes "E então, qual classe deseja seguir agora?";
switch(Class)
{
case 4024:
if(select("Bebê Cavaleiro:Bebê Templário") == 1){
callfunc "nextmesname";
callfunc "changejob", 4030;
}else{
callfunc "nextmesname";
callfunc "changejob", 4037;
}
break;
case 4025:
if(select("Bebê Bruxo:Bêbe Sábio") == 1){
callfunc "nextmesname";
callfunc "changejob", 4032;
}else{
callfunc "nextmesname";
callfunc "changejob", 4039;
}
break;
case 4026:
if(Sex){
if(select("Bebê Caçador:Bebê Bardo") == 1){
callfunc "nextmesname";
callfunc "changejob", 4034;
}else{
callfunc "nextmesname";
callfunc "changejob", 4042;
}
}else{
if(select("Bebê Caçador:Bebê Odalisca") == 1){
callfunc "nextmesname";
callfunc "changejob", 4034;
}else{
callfunc "nextmesname";
callfunc "changejob", 4043;
}
break;
}
case 4027:
if(select("Bebê Sacerdote:Bebê Monge") == 1){
callfunc "nextmesname";
callfunc "changejob", 4031;
}else{
callfunc "nextmesname";
callfunc "changejob", 4038;
}
break;
case 4028:
if(select("Bebê Ferreiro:Bebê Alquimista") == 1){
callfunc "nextmesname";
callfunc "changejob", 4033;
}else{
callfunc "nextmesname";
callfunc "changejob", 4041;
}
break;
case 4029:
if(select("Bebê Mercenário:Bebê Arruaceiro") == 1){
callfunc "nextmesname";
callfunc "changejob", 4035;
}else{
callfunc "nextmesname";
callfunc "changejob", 4040;
}
break;
}
}
}
function script checkconditions {
if(Class > 22 && Class < 26 || Class > 4007 && Class < 4023 || Class > 4029 && Class < 4046 || Class > 4046 && Class <= 4049)
{
mes "Você já chegou ao limite de mudança de classe.";
mes "Sinto muito, mas não posso mais lhe ajudar.";
close;
}
if(Class == 0 && JobLevel < 10 || Class == 4001 && JobLevel < 10 || Class == 4023 && JobLevel < 10 || Class > 4023 && Class <= 4043 && JobLevel < 40 || Class > 0 && Class < 7 && JobLevel < 40 || Class > 4001 && Class < 4008 && JobLevel < 40 || Class == 4046 && JobLevel < 40)
{
mes "Você não está apto a mudar de classe ainda.";
mes "Volte quando estiver mais forte.";
close;
}
if(checkcart() || checkfalcon() || checkriding())
{
mes "Sinto muito mas você não pode mudar de classe se estiver com falcão, carrinho ou peco-peco.";
close;
}
if(Class > 6 && Class < 22 && BaseLevel < 99)
{
mes "Sinto muito, mas você não está apto a mudar de classe ainda.";
mes "Volte quando estiver mais forte.";
close;
}
if(SkillPoint)
{
mes "Por favor utilize todos seus pontos de habilidade antes de mudar de classe.";
close;
}
return;
}
function script changejob {
set @jobc, getarg(0);
mes "Você tem certeza que quer se tornar um ^FF0000"+jobname(@jobc)+"^000000?";
if(select("Sim:Não") == 2) close;
next;
mes "[Mestra das Classes]";
jobchange @jobc;
mes "Muito bem "+strcharinfo(0);
mes "Você agora é um ^FF0000"+jobname(@jobc)+"^000000";
close;
}
function script nextmesname {
next;
mes "[Mestra das Classes]";
return;
}