Jump to content
  • 0
Sign in to follow this  
Yazoo

Ajuda com NPC profições

Question

Ola pessoal !!!

 

Bom estou com problemas cm o script de um amigo...

é o npc de profições com sistema de Renascimentos.

 

O npc deveria fazer o seguinte, quando o player chega ao nivel 100/70  o npc abre um chat no player

para q o player possa renascer.

quando ele renasce ele volta para o nivel 1/1 mais ganha +100 a 150 pontos a mais para destribuir nos stats, sem que mude a classe. o mesmo pode resetar 12 vezes chegando a ter 3650 pontos para destribuir.

e quando ele chega aos 12 resets aparecem umas quests para poder almentar para o nivel 101, até o nivel 110, cada nivel 1 quest.

 

mas o mesmo não está aparecendo para resetar e n sei onde arrumo isso.

e no final do script não aparese o botão close. e o jogo fica travado pois n dá para sair do chat do npc, apenas relogando...

alguem poderia me ajudar ?

 

o npc ja está todo feito só preciso de ajuda para concertar esses bugs...

 

 

 

function script jobmaster {
L_Start:
mes "[^666699 Profissões~ ^000000]";
if(NextJobExp){
mes "Olá, você ainda não atingiu o nível de classe máximo, não poderei te ajudar...";
next;
goto L_Sair;
}else if(checkriding()){
mes "Olá, você ainda está utilizando seu peco-peco, não poderei te ajudar...";
next;
goto L_Sair;
}else if(getcharid(1)){
mes "Olá, você ainda está em grupo, você precisa sair para que eu te ajude...";
close;
}else if(SkillPoint){
goto L_SkillPoints;
}else if(BaseLevel>100 || (reborn>12 && (BaseLevel==100 || JobLevel==70))){
goto L_Quests;
}else if(BaseLevel>=100-(getgmlevel()>0)){
goto L_Reborn;
}
 
L_Job:
set @amuletos, 1;
set @pots, 1;
switch(Class){
case Job_Novice:
case Job_Baby:
if(JobLevel<10) goto L_notEn;
skill 142,1,0;
mes "Seja bem vindo, por favor escolha a classe que deseja se tornar";
next;
if(Class==Job_Baby)
set @opcao, select("Continuar como Bebê:Bebê Espadachim:Bebê Mago:Bebê Arqueiro:Bebê Noviço:Bebê Mercador:Bebê Gatuno:Super Bebê");
else
set @opcao, select("Continuar como aprendiz:Espadachim:Mago:Arqueiro:Noviço:Mercador:Gatuno:Super Aprendiz:Taekwon:Justiceiro:Ninja");
mes "[^666699 Profissões~ ^000000]";
switch(@opcao){
case 2: //Espadachim
mes "Tem certeza absoluta que deseja se tornar um espadachim?";
next;
if(select("Não:Sim")==1) break;
jobchange Class+1;
if(@amuletos){
getitem 16701,1;
getitem 16701,1;
}
break;
case 3: //Mago
mes "Tem certeza absoluta que deseja se tornar um mago?";
next;
if(select("Não:Sim")==1) break;
jobchange Class+2;
if(@amuletos){
getitem 16702,1;
getitem 16702,1;
}
break;
case 4: //Arqueiro
mes "Tem certeza absoluta que deseja se tornar um arqueiro?";
next;
if(select("Não:Sim")==1) break;
jobchange Class+3;
if(@amuletos){
getitem 16703,1;
getitem 16703,1;
}
getitem 1701,1;
getitem 1750,100;
break;
case 5: //Noviço
mes "Tem certeza absoluta que deseja se tornar um noviço?";
next;
if(select("Não:Sim")==1) break;
jobchange Class+4;
if(@amuletos){
getitem 16704,1;
getitem 16704,1;
}
getitem 1503,1;
break;
case 6: //Mercador
mes "Tem certeza absoluta que deseja se tornar um mercador?";
next;
if(select("Não:Sim")==1) break;
jobchange Class+5;
if(@amuletos){
getitem 16705,1;
getitem 16705,1;
}
break;
case 7: //Gatuno
mes "Tem certeza absoluta que deseja se tornar um gatuno?";
next;
if(select("Não:Sim")==1) break;
jobchange Class+6;
if(@amuletos){
getitem 16706,1;
getitem 16706,1;
}
break;
case 8: //Super Aprendiz
if(BaseLevel < 45){
mes "Para se tornar um super-aprendiz, é necessário ter nível de classe 45 ou mais...";
close;
}
mes "Tem certeza absoluta que deseja se tornar um super aprendiz?";
next;
if(select("Não:Sim")==1) break;
if(Class==Job_Baby)
jobchange Job_Super_Baby;
else
jobchange Job_SuperNovice;
if(@amuletos){
getitem 16710,1;
getitem 16710,1;
}
break;
case 9: //Taekwon
mes "Tem certeza absoluta que deseja se tornar um taekwon?";
next;
if(select("Não:Sim")==1) break;
setlook 7,0;
jobchange Job_Taekwon;
if(@amuletos){
getitem 16707,1;
getitem 16707,1;
}
callfunc "F_ClearJobVar";
break;
case 10: //Justiceiro
mes "Tem certeza absoluta que deseja se tornar um justiceiro?";
next;
if(select("Não:Sim")==1) break;
jobchange Job_Gunslinger;
if(@amuletos){
getitem 16709,1;
getitem 16709,1;
}
callfunc "F_ClearJobVar";
break;
case 11: //Ninja
mes "Tem certeza absoluta que deseja se tornar um ninja?";
next;
if(select("Não:Sim")==1) break;
jobchange Job_Ninja;
if(@amuletos){
getitem 16708,1;
getitem 16708,1;
}
callfunc "F_ClearJobVar";
break;
default:
mes "Boa sorte em sua jornada de aprendiz!";
next;
goto L_Sair;
}
if(Class!=Job_Novice && Class!=Job_Baby && @pots){
getitem 601,20; //Fly Wing
getitem 602,5; //Butterfly Wing
getitem 569,100; // Novice_Potion
}
break;
 
case Job_Swordman:
case Job_Baby_Swordman:
if(JobLevel<50) close;
mes "Seja bem vindo, por favor escolha a classe que deseja se tornar";
next;
set @opcao, select("Continuar como espadachim:Cavaleiro:Templário");
mes "[^666699 Profissões~ ^000000]";
switch(@opcao){
case 2:
mes "Tem certeza absoluta que deseja se tornar um cavaleiro?";
next;
if(select("Não:Sim")==1) break;
jobchange Class + 6;
break;
case 3:
mes "Tem certeza absoluta que deseja se tornar um templário?";
next;
if(select("Não:Sim")==1) break;
jobchange Class + 13;
break;
}
break;
 
case Job_Mage:
case Job_Baby_Mage:
if(JobLevel<50) close;
mes "Seja bem vindo, por favor escolha a classe que deseja se tornar";
next;
set @opcao, select("Continuar como mago:Bruxo:Sábio");
mes "[^666699 Profissões~ ^000000]";
switch(@opcao){
case 2:
mes "Tem certeza absoluta que deseja se tornar um bruxo?";
next;
if(select("Não:Sim")==1) break;
jobchange Class + 7;
break;
case 3:
mes "Tem certeza absoluta que deseja se tornar um sábio?";
next;
if(select("Não:Sim")==1) break;
jobchange Class + 14;
break;
}
break;
 
case Job_Archer:
case Job_Baby_Archer:
if(JobLevel<50) close;
if(Sex) set @prof$, "Bardo"; else set @prof$, "Odalisca";
 
mes "Seja bem vindo, por favor escolha a classe que deseja se tornar";
next;
set @opcao, select("Continuar como arqueiro:Caçador:" + @prof$);
mes "[^666699 Profissões~ ^000000]";
switch(@opcao){
case 2:
mes "Tem certeza absoluta que deseja se tornar caçador?";
next;
if(select("Não:Sim")==1) break;
jobchange Class + 8;
break;
case 3:
mes "Tem certeza absoluta que deseja se tornar " + @prof$ + "?";
next;
if(select("Não:Sim")==1) break;
jobchange Class + 17 - Sex; //16 bardo, 17 dancer
break;
}
break;
 
case Job_Acolyte:
case Job_Baby_Acolyte:
if(JobLevel<50) close;
mes "Seja bem vindo, por favor escolha a classe que deseja se tornar";
next;
set @opcao, select("Continuar como noviço:Sacerdote:Monge");
mes "[^666699 Profissões~ ^000000]";
switch(@opcao){
case 2:
mes "Tem certeza absoluta que deseja se tornar um sacerdote?";
next;
if(select("Não:Sim")==1) break;
jobchange Class + 4;
break;
case 3:
mes "Tem certeza absoluta que deseja se tornar um monge?";
next;
if(select("Não:Sim")==1) break;
jobchange Class + 11;
break;
}
break;
 
case Job_Merchant:
case Job_Baby_Merchant:
if(JobLevel<50) close;
mes "Seja bem vindo, por favor escolha a classe que deseja se tornar";
next;
set @opcao, select("Continuar como mercador:Ferreiro:Alquimista");
mes "[^666699 Profissões~ ^000000]";
switch(@opcao){
case 2:
mes "Tem certeza absoluta que deseja se tornar um ferreiro?";
next;
if(select("Não:Sim")==1) break;
jobchange Class + 5;
break;
case 3:
mes "Tem certeza absoluta que deseja se tornar um alquimista?";
next;
if(select("Não:Sim")==1) break;
jobchange Class + 13;
break;
}
break;
 
case Job_Thief:
case Job_Baby_Thief:
if(JobLevel<50) close;
mes "Seja bem vindo, por favor escolha a classe que deseja se tornar";
next;
set @opcao, select("Continuar como gatuno:Assassino:Arruaceiro");
mes "[^666699 Profissões~ ^000000]";
switch(@opcao){
case 2:
mes "Tem certeza absoluta que deseja se tornar um assassino?";
next;
if(select("Não:Sim")==1) break;
jobchange Class + 6;
break;
case 3:
mes "Tem certeza absoluta que deseja se tornar um arruaceiro?";
next;
if(select("Não:Sim")==1) break;
jobchange Class + 11;
break;
}
break;
 
case Job_Taekwon:
if(JobLevel<50) close;
mes "Seja bem vindo, por favor escolha a classe que deseja se tornar";
next;
set @opcao, select("Continuar como taekwon:Gladiador Estelar:Espiritualista");
mes "[^666699 Profissões~ ^000000]";
switch(@opcao){
case 2:
mes "Tem certeza absoluta que deseja se tornar um gladiador estelar?";
next;
if(select("Não:Sim")==1) break;
jobchange Job_Star_Gladiator;
break;
case 3:
mes "Tem certeza absoluta que deseja se tornar um espiritualista?";
next;
if(select("Não:Sim")==1) break;
jobchange Job_Soul_Linker;
break;
}
if(@opcao>1){
resetskill;
skill 1,9,0;
set SkillPoint,49;
callfunc "F_ClearJobVar";
}
break;
 
default:
mes "Olá, você poderá renascer em breve...";
if(getgmlevel()){
mes "Mas antes precisará chegar ao nível 99, pois você é VIP.";
mes "Se você não fosse VIP, precisaria de nível 100.";
}else{
mes "Mas antes precisará chegar ao nível 100.";
mes "Se você fosse VIP, precisaria de nível 99.";
}
mes "Portanto, vá ganhar mais alguns níveis rapidamente!";
next;
}
callfunc "platinum";
goto L_Sair;
 
L_Reborn:
if (reborn==0) set reborn, 1;
if(BaseLevel<100-(getgmlevel()>0)) close;
mes "Você já está em condições de renascer!";
if(Class>=Job_Knight && Class<=Job_Dancer){
if(reborn>=10){
mes "Agora é quase seu último renascimento, você vai precisar virar transclasse!";
mes "Deseja fazer isso agora?";
next;
set @opcao, 2;
}else{
mes "Você pode renascer continuando na sua classe, ou pode virar transclasse...";
mes "O que deseja fazer?";
next;
set @opcao, select("Continuar assim!:Virar transclasse");
}
mes "[^666699 Profissões~ ^000000]";
if(@opcao==2){
mes "Tem certeza que deseja virar transclasse?";
next;
if(select("Não...acho que não...:Tenho certeza!")==1) goto L_Sair;
mes "[^666699 Profissões~ ^000000]";
mes "Parabéns, agora se tornou transclasse!";
jobchange Class+4001;
resetstatus;
set BaseLevel, 1;
set StatusPoint, reborn*(100+20*(getgmlevel()>0)) + (50+10*(getgmlevel()>0))*(reborn<12);
resetskill;
skill 1,9,0;
set SkillPoint,49;
close;
}
}else if((Class>=Job_Novice && Class<=Job_Thief) || Class==Job_Taekwon || (Class>=Job_Novice_High && Class<=Job_Thief_High) || (Class>=Job_Baby && Class<=Job_Baby_Thief)){
mes "Estou vendo que você ainda pode mudar de classe...";
mes "O que deseja fazer?";
next;
set @opcao, select("Mudar de classe:Continuar assim!");
mes "[^666699 Profissões~ ^000000]";
if(@opcao==1) goto L_Job;
}
 
if(reborn>12){
mes "Mas já atingiu o máximo de renascimentos...!";
close;
}
mes "O que deseja fazer?";
next;
set @opcao, select("Nada, obrigado:Renascer!:Só minhas habilidades");
switch(@opcao){
case 2:
mes "[^666699 Profissões~ ^000000]";
mes "Ok, esta será a " +reborn+ "ª vez que você renasce.";
set @points, reborn*(100+20*(getgmlevel()>0 || reborn>=12));
mes "Você vai voltar ao nível 1 com a mesma classe, mas com " +@points+ " pontos de atributo.";
mes "Tem certeza?";
next;
if(select("Não, acho que não...:Sim, tenho!")==1) goto L_Sair;
 
resetstatus;
set BaseLevel, 1;
set StatusPoint, @points;
set reborn, reborn + 1;
query_sql "Update `char` Set resets="+(reborn-1)+" Where char_id="+getcharid(0);
mes "[^666699 Profissões~ ^000000]";
mes "Parabéns, agora você renasceu!";
close;
 
case 3:
mes "[^666699 Profissões~ ^000000]";
mes "Ok, aí vão suas habilidades!";
callfunc "platinum";
next;
break;
default:
break;
}
goto L_Sair;
 
L_Quests:
if(BaseLevel < 100) close;
if(reborn <= 12 && BaseLevel > 100) set reborn,13;
if(Premio110==1){
mes "Deseja retirar seu prêmio, um item refinado até +10 com seu nome mas com slots removidos?";
mes "Ele deve estar equipado no seu personagem.";
if(select("Não, obrigado:Sim, eu gostaria")==2){
next;
mes "[^666699 Profissões~ ^000000]";
mes "Legal! Qual dos seus itens eu devo ver?";
set @equip,select("Mudei de idéia...",getequipname(1),getequipname(2),getequipname(3),getequipname(4),getequipname(5),getequipname(6),getequipname(7),getequipname(8),getequipname(9),getequipname(10))-1;
if(@equip>0){
next;
mes "[^666699 Profissões~ ^000000]";
if(getequipcardcnt(@equip)>0){
mes "O item precisa estar sem cartas, pois os slots serão removidos...";
}else{
set @item,getequipid(@equip);
if(countitem(@item)!=1){
mes "Você tem "+countitem(@item)+" "+getequipname(@equip);
mes "Por favor, volte com um.";
}else{
logmes "[Prêmio 110] Item "+getequipname(@equip)+" refinado até +10!";
set Premio110, 0;
delitem @item, 1;
getitem2 @item,1,1,10,0,255,0,getcharid(0) & 0xFFFF,(getcharid(0)-(getcharid(0)&0xFFFF))>>0x10;
mes "Pronto, item entregue...";
mes "Meus parabéns!";
}
}
}
}
next;
mes "[^666699 Profissões~ ^000000]";
}else{
mes "Você já atingiu o máximo de 12 renascimentos...";
mes "Mas eu tenho algumas missões para você!";
}
mes "O que você deseja melhorar?";
next;
if(BaseLevel>=101 && JobLevel>=70 && JobLevel<=75)
set @opcao, select("Nada, obrigado:Meu nível de base:Meu nível de classe:Minhas habilidades:Minha classe");
else
set @opcao, select("Nada, obrigado:Meu nível de base:Meu nível de classe:Minhas habilidades");
switch(@opcao){
case 2:
mes "[^666699 Profissões~ ^000000]";
if(BaseLevel>=110){
mes "Você já chegou ao 110! Eu não posso mais te ajudar...";
}else{
mes "Completando a missão, você poderá conseguir avançar para o nível "+(BaseLevel+1)+".";
mes "O que acha?";
next;
if(select("Não me interessa:Qual a missão?")==2){
next;
deletearray @itens[0],getarraysize(@itens);
deletearray @qtde[0],getarraysize(@qtde);
 
switch(BaseLevel+1){
case 101:
setarray @itens[0], 969, 9922, 9921,   7048, 2286, 608;
setarray @itens$[0],"Ouros", "Pergaminho de clonagem Mal", "Pergaminhho de clonagem Bom", "Garras de Grifo", "Orelhas de Elfo", "Sementes de Yggdrasil";
setarray @qtde[0], 500, 5, 5, 25, 5, 20;
break;
case 102:
setarray @itens[0], 1228, 5081, 5018, 2234, 5094, 5003, 5007, 7566, 5016;
setarray @itens$[0],"Faca de Combate", "Coroa da abelha rainha", "Chapéu de plumas", "Diadema", "Elmo do Orc Herói", "Chapéu de Bufão", "Coroa do líder", "Desejo das trevas escarlate", "Quepe";
setarray @qtde[0], 1, 1, 1, 1, 1, 1, 1, 3, 1;
break;
case 103:
setarray @itens[0], 2513, 2334, 1363, 9930, 2261, 5093, 1136, 5149;
setarray @itens$[0],"Robe da donzela celestial", "Vestimenta arcana", "Machado Sangrento", "Ombreira de madeira", "Capacete de soldado", "Chapéu de freira", "Tiara de prata", "Máscara de Kabuki";
setarray @qtde[0], 2, 2, 1, 3, 1, 5, 1, 1;
break;
case 104:
setarray @itens[0], 5138, 1366, 12113, 5032, 10018, 5108, 5137, 7562, 1466;
setarray @itens$[0],"Chapéu de olho mágico", "Cruz impiedosa", "Escarlate praiano", "Chapéu de verão", "Coroa de macaco", "chapéu do detetive", "Boneca de Alice", "Escama de Gelo", "Foice de bafomé";
setarray @qtde[0], 1, 2, 6, 1, 7, 1, 1, 25, 2;
break;
case 105:
setarray @itens[0], 1235, 1238, 2246, 1422, 2659, 2660, 1135, 16601, 1368, 2544;
setarray @itens$[0],"Azoth", "Adaga da cobiça ", "Peça dourada", "Hunting Spear", "Núcleo Vesper 01", "Núcleo Vesper 02", "Cutelo", "Elmo Negro", "Tomahawk", "Couro de leão";
setarray @qtde[0], 1, 1, 2, 2, 1, 1, 2, 1, 1, 10;
break;
case 106:
setarray @itens[0], 2413, 2295, 16604, 9928, 12103, 9931, 2661, 2662, 16506, 5019, 5132;
setarray @itens$[0],"Coturnos", "Venda",  "Elmo do Ball", "Espinafre", "Galhos Sangrentos", "Manto abençoado [4]", "Núcleo Vesper 03", "Núcleo Vesper 04", "Asa Brilhante", "Corsário", "Chapéu de Angeling";
setarray @qtde[0], 1, 2, 1, 25, 30, 2, 1, 1, 1, 1,  1;
break;
case 107:
setarray @itens[0], 5179, 16606, 12060, 10006, 9926, 1413, 1237, 1224, 16507;
setarray @itens$[0],"Tiara Dourada", "Elmo de Ossos Humanos", "Asa de Morcego no Vapor", "Ornamento da Rainha", "Moeda", "Gungnir", "Adaga Sinistra", "Destruidor de espada", "Asa do Demônio";
setarray @qtde[0], 1, 1, 15, 5, 10, 2, 1, 1, 1;
break;
case 108:
setarray @itens[0], 5152, 16602, 2111, 1471, 1624, 1230, 12080, 10008, 16503;
setarray @itens$[0],"Coroa Chinesa", "Elmo do Dragão", "Spiritus Sancti", "Fogo Infernal", "Linch Bone Wand", "Rondel", "Coquetel de sopro do Dragão", "Pavana", "Asa de Borboleta";
setarray @qtde[0], 1, 1, 2, 1, 1, 2, 10, 1, 1;
break;
case 109:
setarray @itens[0], 16603, 16605, 1377, 9929, 5022, 5131, 5080, 1720, 1963;
setarray @itens$[0],"Elmo Dourado", "Elmo da Valkyrie", "Hurricane Furry", "Vale Bilhão", "Coroa do Deus-Sol", "Elmo fechado", "Coroa de rainha antiga", "Necro Bow", "Rosa Fustigante";
setarray @qtde[0], 1, 1, 1, 1, 1, 1, 1, 1, 1;
break;
case 110:
setarray @itens[0], 2630, 2629, 2511, 2649, 5374, 2133, 16502, 1530, 16510;
setarray @itens$[0],"Brisingamem", "Meginjard", "Skeleton Manteau", "Bracelete de Morpheus", "Chifre Gigante de baphomet", "Escudo de torneio", "Asa do Ártico", "Mjollnir", "Asa do Aprendiz";
setarray @qtde[0], 1, 1, 1, 1, 1, 3, 1, 1, 1;
break;
default:
close;
}
 
//Para caso de erro no script
if(getarraysize(@itens)<3){
debugmes "getarraysize(@itens)="+getarraysize(@itens)+"! Script cancelado.";
close;
}
//Mostrando os itens necessários
mes "[^666699 Profissões~ ^000000]";
mes "Para que você se torne nível "+(BaseLevel+1)+" vou precisar de:";
for(set @i, 0; @i<getarraysize(@itens); set @i, @i+1)
mes "- "+@qtde[@i]+"x "+@itens$[@i];
mes "Você vai me trazer os itens?";
if(select("Não...:Depois eu trago:Já trouxe!")==3){
//Verificando os itens
next;
mes "[^666699 Profissões~ ^000000]";
set @ok,0;
for(set @i, 0; @i<getarraysize(@itens); set @i, @i+1)
if(countitem(@itens[@i]) < @qtde[@i])
mes "Você não tem "+@qtde[@i]+"x "+@itens$[@i]+"...";
else if(countitem(@itens[@i]) > @qtde[@i])
mes "Você tem "+countitem(@itens[@i])+"x "+@itens$[@i]+", e não "+@qtde[@i]+"!";
else
set @ok, @ok + 1;
if(@ok==getarraysize(@itens)){
mes "Tudo certo.. Parabéns!";
close2;
for(set @i, 0; @i<getarraysize(@itens); set @i, @i+1)
if(countitem(@itens[@i]) != @qtde[@i])
end;
else
delitem @itens[@i],@qtde[@i];
set BaseLevel,BaseLevel+1;
logmes "[Level] "+BaseLevel+": "+strcharinfo(0);
announce "[Profissões] "+(Sex==0?"A jogadora ":"O jogador ")+strcharinfo(0)+" acaba de chegar ao nível "+BaseLevel+", parabéns!!!",bc_all;
if(BaseLevel==110){
set Premio110,1;
sleep2 2000;
announce "[Profissões] Como prêmio, el"+((Sex==0)?"a":"e")+" ganhará um item com seu nome, refinado até +10!",bc_all;
sleep2 2000;
dispbottom "Para receber o prêmio do nível 110, equipe o item desejado e fale comigo!";
}
}else{
mes " ";
mes "Achou que poderia me enganar ¬¬'";
}
}
}else{
goto L_Sair;
}
}
close;
case 3:
mes "[^666699 Profissões~ ^000000]";
if(JobLevel<70){
mes "Somente classes que vão até o nível de classe 70 podem fazer as missões...";
mes "Sinto muito!";
next;
goto L_Sair;
}if(JobLevel>=75){
mes "Você já chegou ao nível de classe 75!";
mes "Eu não posso mais te ajudar...";
}else{
mes "Completando a missão, você poderá conseguir avançar para o nível "+(JobLevel+1)+".";
mes "O que acha?";
next;
if(select("Não me interessa:Qual a missão?")==2){
next;
deletearray @itens[0],getarraysize(@itens);
deletearray @qtde[0],getarraysize(@qtde);
switch(JobLevel+1){
case 71:
setarray @itens[0], 968, 7300, 7443, 1009;
setarray @itens$[0],"Insignia do Herói", "Jewel Ore", "Cabeça de Dragão de Três Cabeças", "Mão Divina";
setarray @qtde[0], 60, 60, 60, 400;
break;
case 72:
setarray @itens[0], 7109, 1015, 7023, 679;
setarray @itens$[0],"Lâmina de Lança Colossal", "Língua", "Lamina Perdida das Trevas", "Recall Pills";
setarray @qtde[0], 10, 500, 50, 30;
break;
case 73:
setarray @itens[0], 7169, 7113, 7211, 1029;
setarray @itens$[0],"Ba gua", "Cetro do Faraó", "Lasca de Pedra", "Pele de Tigre";
setarray @qtde[0], 80, 60, 80, 100;
break;
case 74:
setarray @itens[0], 750, 751, 752, 753, 754;
setarray @itens$[0],"Bonecos de Bafomé", "Bonecos de Osiris", "Bonecos de Rocker", "Bonecos de Yoyo", "Bonecos de Fumacento";
setarray @qtde[0], 40, 50, 150, 350, 150;
break;
case 75:
setarray @itens[0], 12129, 1552, 2268, 7036, 10016, 2677;
setarray @itens$[0],"Kit de Culinária Fantástico", "Tabula[2]", "Cachimbo[2]", "Presa de Hati","Sino de Ouro", "Anel Espiritual";
setarray @qtde[0], 100, 7, 10, 2, 10, 1;
break;
default:
close;
}
//Para caso de erro no script
if(getarraysize(@itens)<3){
debugmes "getarraysize(@itens)="+getarraysize(@itens)+"! Script cancelado.";
close;
}
//Mostrando os itens necessários
mes "[^666699 Profissões~ ^000000]";
mes "Para que você se torne nível "+(JobLevel+1)+" vou precisar de:";
for(set @i, 0; @i<getarraysize(@itens); set @i, @i+1)
mes "- "+@qtde[@i]+"x "+@itens$[@i];
mes "Você vai me trazer os itens?";
if(select("Não...:Depois eu trago:Já trouxe!")==3){
//Verificando os itens
next;
mes "[^666699 Profissões~ ^000000]";
set @ok,0;
for(set @i, 0; @i<getarraysize(@itens); set @i, @i+1)
if(countitem(@itens[@i]) < @qtde[@i])
mes "Você não tem "+@qtde[@i]+"x "+@itens$[@i]+"...";
else if(countitem(@itens[@i]) > @qtde[@i])
mes "Você tem "+countitem(@itens[@i])+"x "+@itens$[@i]+", e não "+@qtde[@i]+"!";
else
set @ok, @ok + 1;
if(@ok==getarraysize(@itens)){
mes "Tudo certo.. Parabéns!";
close2;
for(set @i, 0; @i<getarraysize(@itens); set @i, @i+1)
if(countitem(@itens[@i]) != @qtde[@i])
end;
else
delitem @itens[@i],@qtde[@i];
set JobLevel,JobLevel+1;
logmes "[Level] "+JobLevel+": "+strcharinfo(0);
announce "[Profissões] "+(Sex==0?"A jogadora ":"O jogador ")+strcharinfo(0)+" acaba de chegar ao nível de classe "+JobLevel+", parabéns!!!",bc_all;
}else{
mes " ";
mes "Achou que poderia me enganar ¬¬'";
}
}
}
}
break;
 
case 4:
mes "[^666699 Profissões~ ^000000]";
mes "Tudo bem, irei lhe dar as habilidades especiais.";
next;
callfunc "platinum";
break;
 
case 5:
mes "[^666699 Profissões~ ^000000]";
mes "Você não gosta da sua classe??";
next;
if(select("Claro que gosto!:Não, faz tempo..")==2){
mes "[^666699 Profissões~ ^000000]";
mes "Olha, eu tenho um tipo de magia negra, mas que não sei se funciona..";
mes "É bem arriscada, mas se eu conseguir, isso possibilitaria você mudar de classe.";
next;
mes "[^666699 Profissões~ ^000000]";
if(checkcart()){
mes "Mas primeiro, você precisará devolver seu carrinho!";
next;
}else{
if(ChangedClass==0){
mes "Claro que nada é de graça, e você terá que pagar por meus serviços.";
mes "Se você não gostar da sua nova classe, será mais caro na próxima.";
}else{
mes "Vejo que você já mudou de personagem "+(ChangedClass==1?"uma vez":ChangedClass+" vezes")+"!";
mes "O valor desta vez será portanto maior!";
}
next;
set @@Valor, (BaseLevel-100)*100*pow(2,ChangedClass); // Em milhões
set @@Valor$, (@@Valor/1000) + "." + (@@Valor%1000<100?(@@Valor%1000<10?"00":"0"):"") + (@@Valor%1000);
mes "[^666699 Profissões~ ^000000]";
mes "O valor para mudança de classe é: ^ff0000"+@@Valor$+".000.000z^000000";
if(@@Valor > Zeny/1000000 + countitem(9929) * 1000){
mes "Um valor destes não é possível de ser alcançado por um ^009900simples aventureiro^000000 como você !!";
next;
}else{
mes "Deseja gastar seu precioso zeny com sua preguiça?";
next;
if(select("Não, é besteira:Sim, não é quase nada")==2){
mes "[^666699 Profissões~ ^000000]";
mes "Tudo bem, você é o chefe.. LOL!!";
next;
switch(select("Cancelar:Algoz:Arquimago:Atirador de Elite:Criador:Desordeiro:Espiritualista:Gladiador Estelar:Gunslinger:Lorde:Menestrel/Cigana:Mestre:Mestre Ferreiro:Ninja:Paladino:Professor:Sumo-Sacerdote")){
case  2: set @class,4013; break;
case  3: set @class,4010; break;
case  4: set @class,4012; break;
case  5: set @class,4019; break;
case  6: set @class,4018; break;
case  7: set @class,4049; break;
case  8: set @class,4047; break;
case  9: set @class,  24; break;
case 10: set @class,4008; break;
case 11: set @class,4021-Sex; break;
case 12: set @class,4016; break;
case 13: set @class,4011; break;
case 14: set @class,  25; break;
case 15: set @class,4015; break;
case 16: set @class,4017; break;
case 17: set @class,4009; break;
default: set @class,   0; break;
}
if(@class>0 && @class!=Class){
mes "[^666699 Profissões~ ^000000]";
mes "Antiga classe: ^ff0000"+jobname(Class)+"^000000";
mes "Nova classe: ^0000ff"+jobname(@class)+"^000000";
mes "Valor: ^990099"+@@Valor$+".000.000z^000000";
if(ChangedClass)
mes "Mudança: ^009900"+(ChangedClass+1)+"ª vez^000000";
mes " - Níveis de base/classe mantidos";
mes " ";
mes " Confere...?";
next;
mes "[^666699 Profissões~ ^000000]";
mes "Valor: ^990099"+@@Valor$+".000.000z^000000";
mes "Nova classe: ^0000ff"+jobname(@class)+"^000000";
mes " ";
mes " Confere...?";
next;
if(select("Não, senhor:Sim, senhor")==2){
if(@@Valor > Zeny/1000000 + countitem(9929) * 1000) close; //verificando denovo por segurança
while(@@Valor > 1000 && countitem(9929)>0){
delitem 9929,1;
logmes "[bilhao] Vale bilhão apagado";
set @@Valor,@@Valor-1000;
}
if(Zeny>=@@Valor*1000000){
query_logsql "INSERT INTO zenylog(time,char_id,src_id,type,amount,map)VALUES(now(),"+getcharid(0)+","+getcharid(0)+",'N',-"+(@@Valor*1000000)+",'jobmaster')";
set Zeny, Zeny - @@Valor*1000000;
}else{
delitem 9929,1;
logmes "[bilhao] Vale bilhão apagado";
query_logsql "INSERT INTO zenylog(time,char_id,src_id,type,amount,map)VALUES(now(),"+getcharid(0)+","+getcharid(0)+",'N',1000000000,'jobmaster')";
query_logsql "INSERT INTO zenylog(time,char_id,src_id,type,amount,map)VALUES(now(),"+getcharid(0)+","+getcharid(0)+",'N',-"+(@@Valor*1000000)+",'jobmaster')";
set @@Valor,@@Valor*1000000-Zeny;
set Zeny,1000000000 - @@Valor;
}
 
logmes "[Profissoes] Mudou de "+jobname(Class)+" para "+jobname(@class)+" - Mudança "+ChangedClass+" no nível "+BaseLevel;
if(@class==Job_Star_Gladiator || @class==Job_Soul_Linker){
setlook 7,0;
}
set @jobLevel,JobLevel;
set JobLevel,1;
set ChangedClass, ChangedClass+1;
jobchange @class;
set JobLevel, @jobLevel;
resetskill;
skill 1,9,0;
if(Class==Job_Gunslinger || Class==Job_Ninja)
set SkillPoint,@jobLevel-1;
else
set SkillPoint,@jobLevel+48;
if(Class==Job_Whitesmith){
skill 153,1,0;
skill 154,1,0;
}
 
mes "[^666699 Profissões~ ^000000]";
mes "Obrigado pela utilização de meus serviços, meu caro "+jobname(@class)+"!";
next;
}
}
}
}
}
}
break;
}
goto L_Sair;
 
L_SkillPoints:
if(Class==Job_Taekwon){
mes "Você tem alguns pontos de habilidade sobrando, favor utilizá-los antes de mudar de profissão";
menu "Ok...",L_Sair,"Quero jogar fora meus pontos",-;
next;
mes "[^666699 Profissões~ ^000000]";
mes "Você tem certeza que deseja apagar todos os seus pontos de habilidade?";
mes "Sabe que ao fazer isso poderá ficar sem habilidades até mudar de profissão?";
menu "Não",L_Sair,"Sim",-;
next;
mes "[^666699 Profissões~ ^000000]";
mes "Você tem certeza que deseja apagar todos os seus pontos de habilidade?";
mes "Sabe que ao fazer isso poderá ficar sem habilidades até mudar de profissão?";
menu "Tenho certeza",-,"Desisto!",L_Sair;
next;
mes "[^666699 Profissões~ ^000000]";
mes "Você tem certeza que deseja apagar todos os seus pontos de habilidade?";
mes "Sabe que ao fazer isso poderá ficar sem habilidades até mudar de profissão?";
menu "Ir embora!",L_Sair,"Confirmar",-;
next;
mes "[^666699 Profissões~ ^000000]";
mes "Você leu tudo, e tem mesmo certeza";
menu "Não, quero ir embora...",L_Sair,"Aceitar!!!",-;
next;
mes "[^666699 Profissões~ ^000000]";
mes "Ok, aí vai.";
set SkillPoint,0;
next;
}else{
if(SkillPoint==1)
mes "Utilize seu ponto de habilidade antes de mudar de classe...";
else
mes "Utilize seus "+SkillPoint+" pontos de habilidade antes de mudar de classe...";
mes "Obrigado!";
next;
menu "Pronto, já usei!",-,"Não quero falar com você",L_Sair;
}
goto L_Start;
 
L_Sair:
mes "[^666699 Profissões~ ^000000]";
mes "Quando precisar de meus serviços estarei à disposição!";
close;
}
 
function script platinum {
switch(BaseClass){
case Job_SuperNovice:
skill 142,1,0;
break;
 
case Job_Swordman:
skill 142,1,0;
skill 144,1,0;
skill 145,1,0;
skill 146,1,0;
if(Class==Job_Knight || Class==Job_Knight2
|| Class==Job_Baby_Knight || Class==Job_Baby_Knight2
|| Class==Job_Lord_Knight || Class==Job_Lord_Knight2)
skill 1001,1,0;
else if(Class==Job_Crusader || Class==Job_Crusader2
|| Class==Job_Baby_Crusader || Class==Job_Baby_Crusader2
|| Class==Job_Paladin || Class==Job_Paladin2)
skill 1002,1,0;
break;
 
case Job_Mage:
skill 142,1,0;
skill 157,1,0;
if(Class==Job_Wizard || Class==Job_High_Wizard || Class==Job_Baby_Wizard)
skill 1006,1,0;
else if(Class==Job_Sage || Class==Job_Baby_Sage || Class==Job_Professor){
skill 1007,1,0;
skill 1008,1,0;
skill 1017,1,0;
skill 1018,1,0;
skill 1019,1,0;
}
break;
 
case Job_Archer:
skill 142,1,0;
skill 147,1,0;
skill 148,1,0;
if(Class==Job_Hunter || Class==Job_Baby_Sage || Class==Job_Sniper)
skill 1009,1,0;
else
if(Class==Job_Bard || Class==Job_Baby_Bard || Class==Job_Clown)
skill 1010,1,0;
else
if(Class==Job_Dancer || Class==Job_Baby_Dancer || Class==Job_Gypsy)
skill 1011,1,0;
break;
 
case Job_Acolyte:
skill 142,1,0;
skill 156,1,0;
if(Class==Job_Priest || Class==Job_Baby_Priest || Class==Job_High_Priest){
skill 363,10,0;
skill 1014,1,0;
}
else
if(Class==Job_Monk || Class==Job_Baby_Monk || Class==Job_Champion){
skill 1015,1,0;
skill 1016,10,0;
}
break;
 
case Job_Merchant:
skill 142,1,0;
skill 153,1,0;
skill 154,1,0;
skill 155,1,0;
if(Class==Job_Blacksmith || Class==Job_Baby_Blacksmith || Class==Job_Whitesmith){
skill 1012,1,0;
skill 1013,1,0;
}
else
if(Class==Job_Alchem || Class==Job_Baby_Alchem || Class==Job_Creator){
if(alch_bock != 1){
getitem 7434,1; 
set alch_bock,1;
}
//Bioethics: skill 238,1,0;
}
break;
 
case Job_Thief:
skill 142,1,0;
skill 149,1,0;
skill 150,1,0;
skill 151,1,0;
skill 152,1,0;
if(Class==Job_Assassin || Class==Job_Baby_Assassin || Class==Job_Assassin_Cross){
skill 1003,1,0;
skill 1004,1,0;
}
else if(Class==Job_Rogue || Class==Job_Baby_Rogue || Class==Job_Stalker)
skill 1005,1,0;
break;
 
case Job_Taekwon:
if(Class==Job_Star_Gladiator || Class==Job_Star_Gladiator2)
skill 444,1,0;
break;
 
default:
break;
}
return;
}
 
prontera,161,187,4 script Profissões 780,{
callfunc "jobmaster";
end;
}
 
prontera,0,0,0 script #LvUpEvent -1,{
OnPCJobLvUpEvent:
if(NextJobExp==0) callfunc "jobmaster";
end;
 
OnPCBaseLvUpEvent:
if(NextJobExp==0 && BaseLevel>=100-(getgmlevel()>0))
callfunc "jobmaster";
end;
}

 
Alguem poderia me ajudar ??

Share this post


Link to post
Share on other sites

3 answers to this question

Recommended Posts

  • 0

cara coloca o script em algum site tipo pastebin/upaste etc, pq do jeito q vc postou fica meio complicado entender o script pela falta de indentação

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.