a little help with this NPC

champzro

New member
Messages
7
Points
0
Location
Sorocaba Brazil
Emulator
brAthena
yO...

i made this script with a friend, and both can't find where we screw up...

script works fine until we go to give all items to NPC, and get back the quest item !!!
if we have all the required itens works fine, but...
if we don't have 1 item exemple : needs 500 id = 607, we have 499 id = 607  

the NPC remove all itens of the quest, and don't show any error !!!

there he is :
 

1@def02,30,38,4 script Quests Viajante#Killik 4_M_YOUNGKNIGHT,{
Inicio:
//Insira as quests aqui --

setarray .@quest_0, 20854,1,0,660,150,734,200,990,400,975,30,7440,300,7447,300,7450,2,7444,50; //Red aura

setarray .@quest_1, 20723,1,0,7063,200,1038,200,7048,10,641,300,983,30,7019,30,7297,10; //Black phonix wing

setarray .@quest_2, 20795,1,0,7512,350,7507,350,7325,400,7315,250,7290,10,2255,3,4406,5,982,30; //skelletron

setarray .@quest_3, 20813,1,0,4105,30,720,100,984,500,7321,250,2254,5,7446,250,978,30; //Cavalo marinho wing

setarray .@quest_4, 20756,1,0,7507,250,995,300,7561,350,749,150,7319,400,978,15,982,15,7036,5; //Ice Metal wing

//Nome do NPC

set @nomedonpc$, "^B22222"+strnpcinfo(2)+"^000000";

//Configuração Status



//Interação do NPC

mes "["+@nomedonpc$+"]";

mes "Olá ^4682B4"+strcharinfo(0)+"^000000, sobre qual quest você quer saber mais?";

for(set .@i, 0; getd (".@quest_"+ .@i); set .@i, .@i + 1)

set .@menu$, .@menu$ + ""+ getitemname (getd (".@quest_"+.@i)) + ":";

set .@i, select(.@menu$) - 1;

set .@size, getarraysize (getd (".@quest_"+.@i));

next;
VoltaMenu:
mes "["+@nomedonpc$+"]";

mes "Você escolheu ^9400D3" + getitemname (getd (".@quest_"+.@i)) + "^000000, o que deseja fazer?";

switch(select("Trocar Item", "Ver Itens Necessários", "Ver Atributos", "Visualizar Item", "Escolher Outro Item", "Sair")) {

case 1:

next;

mes "["+@nomedonpc$+"]";
mes "Tem certeza?";

switch (select ("Tenho sim.", "Ainda não.")){

case 1:

next;

for (set .@j, 3; .@j < .@size; set .@j, .@j + 2)

if(countitem (getd (".@quest_"+.@i+"["+.@j+"]")) < getd (".@quest_"+.@i+"["+(.@j+1)+"]") || Zeny < getd (".@quest_"+.@i+"[2]"))
{
if (rand(3) == 0)
{
mes "["+@nomedonpc$+"]";
mes "Tá querendo me passar a perna, garot"+(Sex?"o":"a")+"? Sai fora! E só volte quando estiver com meus itens!";
}
else if (rand (3) == 1)
{
mes "["+@nomedonpc$+"]";
mes "Você realmente acha que pode me enganar fácil assim? Sai daqui e vá buscar meus itens!";
}
else
{
mes "["+@nomedonpc$+"]";
mes "Tentando conseguir um item valioso como esse sem dar nada em troca? Sai da minha frente e não volte sem os itens de troca!";
}
close;
}
else
{
for (set .@j, 3 ; .@j<.@size ; set .@j, .@j+2)

delitem getd (".@quest_"+.@i+"["+.@j+"]"), getd (".@quest_"+.@i+"["+(.@j+1)+"]");
getitem getd (".@quest_"+.@i+"[0]"), getd (".@quest_"+.@i+"[1]");

set Zeny, Zeny - getd (".@quest_"+.@i+"[2]");

mes "["+@nomedonpc$+"]";
mes "Aí está a sua recompensa.";

close;
}

case 2:

next;

mes "["+@nomedonpc$+"]";
mes "Volte quando tiver certeza, não me faça mais perder tempo!";

close;

}
close;

case 2:

next;

mes "["+@nomedonpc$+"]";
mes "Os itens que quero para produzir ^9400D3" + getitemname (getd (".@quest_"+.@i)) + "^000000 são:";

for(set .@j, 3; .@j < .@size; set .@j, .@j + 2)

mes "- " + getd (".@quest_"+.@i+"["+(.@j+1)+"]") + "x " + getitemname(getd (".@quest_"+.@i+"["+.@j+"]"));

if (getd (".@quest_"+.@i+"[2]"))

mes "- " + getd (".@quest_"+.@i+"[2]") + " Zenies";

next;
deletearray .@menu$[0],getarraysize(.@menu$);
goto VoltaMenu;

case 3:

next;

goto StatusCustons;


case 4:

set @bottomview, getlook(3);
set @topview, getlook(4);
set @midview, getlook(5);
addtimer 1000, strnpcinfo(3)+"::On_Leave";
set @equip,getiteminfo(getd (".@quest_"+.@i), 5);
set @view, getiteminfo(getd (".@quest_"+.@i), 11);

if(@equip != -1 && @view > 0)
{
if(@equip & 1) atcommand "@changelook 3 " + @view;
if(@equip & 256) atcommand "@changelook 1 " + @view;
if(@equip & 512) atcommand "@changelook 2 " + @view;
}
next;

atcommand "@changelook 1 " + @topview;
atcommand "@changelook 2 " + @midview;
atcommand "@changelook 3 " + @bottomview;
set @equip,0;
set @view,0;
set @topview,0;
set @midview,0;
set @bottomview,0;

goto VoltaMenu;

case 5:
next;
deletearray .@menu$[0],getarraysize(.@menu$);
goto Inicio;

case 6:
next;
mes "["+@nomedonpc$+"]";
mes "Volte quando realmente quiser algo!";
close;


}
On_Leave:

set @bottomview, getlook(3);
set @topview, getlook(4);
set @midview, getlook(5);
atcommand "@changelook 1 " + @topview;
atcommand "@changelook 2 " + @midview;
atcommand "@changelook 3 " + @bottomview;
set @equip,0;
set @view,0;
set @topview,0;
set @midview,0;
set @bottomview,0;
end;


StatusCustons:

if (getitemname (getd (".@quest_"+.@i))) == getitemname(getd (".@quest_0"))
{
mes "["+@nomedonpc$+"]";
mes "Os atributos de ^9400D3" + getitemname (getd (".@quest_"+.@i)) + "^000000 são:^4169E1";
mes " +10 Inteligência";
mes " +3 Desteza";
mes " +5 Vitalitade";
mes "+10% Congelar Atacante";
}
if (getitemname (getd (".@quest_"+.@i))) == getitemname(getd (".@quest_1"))
{
mes "["+@nomedonpc$+"]";
mes "Os atributos de ^9400D3" + getitemname (getd (".@quest_"+.@i)) + "^000000 são:^4169E1";
mes " +1 Inteligência";
mes " +3 Desteza";
mes " +5 Vitalitade";
mes "+10% Congelar Atacante";
}
if (getitemname (getd (".@quest_"+.@i))) == getitemname(getd (".@quest_2"))
{
mes "["+@nomedonpc$+"]";
mes "Os atributos de ^9400D3" + getitemname (getd (".@quest_"+.@i)) + "^000000 são:^4169E1";
mes " +1 Inteligência";
mes " +3 Desteza";
mes " +5 Vitalitade";
mes "+10% Congelar Atacante";
}
if (getitemname (getd (".@quest_"+.@i))) == getitemname(getd (".@quest_3"))
{
mes "["+@nomedonpc$+"]";
mes "Os atributos de ^9400D3" + getitemname (getd (".@quest_"+.@i)) + "^000000 são:^4169E1";
mes " +1 Inteligência";
mes " +3 Desteza";
mes " +5 Vitalitade";
mes "+10% Congelar Atacante";
}
if (getitemname (getd (".@quest_"+.@i))) == getitemname(getd (".@quest_4"))
{
mes "["+@nomedonpc$+"]";
mes "Os atributos de ^9400D3" + getitemname (getd (".@quest_"+.@i)) + "^000000 são:^4169E1";
mes " +1 Inteligência";
mes " +3 Desteza";
mes " +5 Vitalitade";
mes "+10% Congelar Atacante";
}
next;
deletearray .@menu$[0],getarraysize(.@menu$);
goto VoltaMenu;
}



i Will be grateful if anyone can help me with that

 
Back
Top