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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...

Important Information

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