Jump to content
Sign in to follow this  
Kira Cross

[Resolvido] Ajuda com NPC da BG que está duplicando os itens na venda.

Recommended Posts

Pessoal estou precisando de uma ajuda com o NPC da BG que vende os ekips em formato de venda de utilidades só que com Emblemas.

O problema é o seguinte:
1-
Quando eu coloco mais de um NPC desse, os itens de venda aparece nos dois, pode ensinar como concertar isso?

por exemplo no npc 1 eu quero vender mastela que troca por emblemas de bravura
e no npc 2 eu quero vender mastela que troca por emblemas de valor.
etc..

aí quando eu ativo os dois npc's aparece na venda os dois itens mastela cada um vendendo por um tipo de emblema.

2- Na loja do NPC ele não aparece a quantidade de emblemas que é preciso para comprá-lo, tive que ativar a vizualização de zeny e colocar o preço de emblemas em zeny pra poder aparecer algum número, só que eu gostaria que esse zeny não fosse descontado, queria que descontasse apenas os emblemas.
tá assim atualmente, por ex:
comprando item A (No caso eu quero q o item custe só 240 emblemas)
Quando eu coloco pra comprar ele aparece assim:


Item A - 240z > comprar> aí aparece na tela do mes:

Requerimentos: 240 Emblema de Bravura

240 Zeny.

Gostaria de retirar o desconto do zeny e retirá-lo da tela de requerimento

NPC 1:

bat_room,160,149,2 script Loja Bravura 430,{
function Add; function Chk; function Slot; function A_An;
if(.Shops$ != "") set .@i,1;
else {
set .@menu$,"";
for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1)
set .@menu$, .@menu$+.Shops$[.@i]+":";
set .@i, select(.@menu$); }
dispbottom "Selecione um item de cada vez.";
callshop "qqshop"+.@i,1;
npcshopattach "qqshop"+.@i;
end;
function Add {
if (getitemname(getarg(1))=="null") {
debugmes "Quest reward #"+getarg(1)+" invalid (skipped)."; return; }
for(set .@n,5; .@n<127; set .@n,.@n+2) {
if (!getarg(.@n,0)) break;
if (getitemname(getarg(.@n))=="null") {
debugmes "Quest requirement #"+getarg(.@n)+" invalid (skipped)."; return; } }
for(set .@i,2; .@i<.@n; set .@i,.@i+1)
set getd(".q_"+getarg(1)+"["+(.@i-2)+"]"), getarg(.@i);
npcshopadditem "qqshop"+getarg(0),getarg(1),((.ShowZeny)?getarg(3):0);
return; }
function Chk {
if (getarg(0)<getarg(1)) { set @qe0,1; return "^FF0000"; }
else return "^00FF00"; }
function Slot {
set .@s$,getitemname(getarg(0));
switch(.ShowSlot){
case 1: if (!getitemslots(getarg(0))) return .@s$;
case 2: if (getiteminfo(getarg(0),11)>0) return .@s$+" ["+getitemslots(getarg(0))+"]";
default: return .@s$; } }
function A_An {
setarray .@A$[0],"a","e","i","o","u";
set .@B$, "_"+getarg(0);
for(set .@i,0; .@i<5; set .@i,.@i+1)
if (compare(.@B$,"_"+.@A$[.@i])) return "an "+getarg(0);
return "a "+getarg(0); }
OnBuyItem:
set .@q[0],@bought_nameid;
copyarray .@q[1],getd(".q_"+@bought_nameid+"[0]"),getarraysize(getd(".q_"+@bought_nameid+"[0]"));
if (!.@q[1]) { message strcharinfo(0),"An error has occurred."; end; }
mes "[Quest Shop]";
mes "Recompensa: ^0055FF"+((.@q[1]>1)?.@q[1]+"x ":"")+Slot(.@q[0])+"^000000";
mes "Requirementos:";
if (.@q[2]) mes " > "+Chk(Zeny,.@q[2])+.@q[2]+" Zeny^000000";
if (.@q[3]) mes " > "+Chk(getd(.Points$[0]),.@q[3])+.@q[3]+" "+.Points$[1]+" ("+getd(.Points$[0])+"/"+.@q[3]+")^000000";
if (.@q[4]) for(set .@i,4; .@i<getarraysize(.@q); set .@i,.@i+2)
mes " > "+Chk(countitem(.@q[.@i]),.@q[.@i+1])+((.DisplayID)?"{"+.@q[.@i]+"} ":"")+Slot(.@q[.@i])+" ("+countitem(.@q[.@i])+"/"+.@q[.@i+1]+")^000000";
next;
set @qe1, getiteminfo(.@q[0],5); set @qe2, getiteminfo(.@q[0],11);
addtimer 1000, strnpcinfo(1)+"::OnEnd";
while(1){
switch(select(" ~ Comprar ^0055FF"+getitemname(.@q[0])+"^000000:"+((((@qe1&1) || (@qe1&256) || (@qe1&512)) && @qe2>0 && !@qe6)?" ~ Visualização...":"")+": ~ ^777777Cancel^000000")) {
case 1:
if (@qe0) {
mes "[Quest Shop]";
mes "Está faltando um ou mais requisitos da quest.";
close; }
if (!checkweight(.@q[0],.@q[1])) {
mes "[Quest Shop]";
mes "^FF0000Você precisa "+(((.@q[1]*getiteminfo(.@q[0],6))+Weight-MaxWeight)/10)+" capacidade de peso adicional para completar este comércio.^000000";
close; }
if (.@q[2]) set Zeny, Zeny-.@q[2];
if (.@q[3]) setd .Points$[0], getd(.Points$[0])-.@q[3];
if (.@q[4]) for(set .@i,4; .@i<getarraysize(.@q); set .@i,.@i+2)
delitem .@q[.@i],.@q[.@i+1];
getitem .@q[0],.@q[1];
if (.Announce) announce strcharinfo(0)+" criou "+A_An(getitemname(.@q[0]))+"!",0;
specialeffect2 699;
close;
case 2:
set @qe3, getlook(3); set @qe4, getlook(4); set @qe5, getlook(5);
if (@qe1&1) atcommand "@changelook 3 "+@qe2;
if (@qe1&256) atcommand "@changelook 1 "+@qe2;
if (@qe1&512) atcommand "@changelook 2 "+@qe2;
set @qe6,1;
break;
case 3:
close; } }
OnEnd:
if (@qe6) { atcommand "@changelook 3 "+@qe3; atcommand "@changelook 1 "+@qe4; atcommand "@changelook 2 "+@qe5; }
for(set .@i,0; .@i<7; set .@i,.@i+1) setd "@qe"+.@i,0;
end;
OnInit:
setarray .Points$[0],"#CASHPOINTS","Cash Points";
set .Announce,0; // Announce quest completion? (1: yes / 0: no)
set .ShowSlot,1; // Show item slots? (2: all equipment / 1: if slots > 0 / 0: never)
set .DisplayID,0; // Show item IDs? (1: yes / 0: no)
set .ShowZeny,1; // Show Zeny cost, if any? (1: yes / 0: no)
setarray .Shops$[1],"Consumiveis","Equipamentos";
Add(1,522,100,0,0,7828,80);
Add(2,13036,1,0,0,7828,250);
for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1)
npcshopdelitem "qqshop"+.@i,909;
end;
}
- shop qqshop1 -1,909:-1

NPC 2:

bat_room,160,150,2 script Loja Valor 430,{
function Add; function Chk; function Slot; function A_An;
if(.Shops$ != "") set .@i,1;
else {
set .@menu$,"";
for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1)
set .@menu$, .@menu$+.Shops$[.@i]+":";
set .@i, select(.@menu$); }
dispbottom "Selecione um item de cada vez.";
callshop "qqshop"+.@i,1;
npcshopattach "qqshop"+.@i;
end;
function Add {
if (getitemname(getarg(1))=="null") {
debugmes "Quest reward #"+getarg(1)+" invalid (skipped)."; return; }
for(set .@n,5; .@n<127; set .@n,.@n+2) {
if (!getarg(.@n,0)) break;
if (getitemname(getarg(.@n))=="null") {
debugmes "Quest requirement #"+getarg(.@n)+" invalid (skipped)."; return; } }
for(set .@i,2; .@i<.@n; set .@i,.@i+1)
set getd(".q_"+getarg(1)+"["+(.@i-2)+"]"), getarg(.@i);
npcshopadditem "qqshop"+getarg(0),getarg(1),((.ShowZeny)?getarg(3):0);
return; }
function Chk {
if (getarg(0)<getarg(1)) { set @qe0,1; return "^FF0000"; }
else return "^00FF00"; }
function Slot {
set .@s$,getitemname(getarg(0));
switch(.ShowSlot){
case 1: if (!getitemslots(getarg(0))) return .@s$;
case 2: if (getiteminfo(getarg(0),11)>0) return .@s$+" ["+getitemslots(getarg(0))+"]";
default: return .@s$; } }
function A_An {
setarray .@A$[0],"a","e","i","o","u";
set .@B$, "_"+getarg(0);
for(set .@i,0; .@i<5; set .@i,.@i+1)
if (compare(.@B$,"_"+.@A$[.@i])) return "an "+getarg(0);
return "a "+getarg(0); }
OnBuyItem:
set .@q[0],@bought_nameid;
copyarray .@q[1],getd(".q_"+@bought_nameid+"[0]"),getarraysize(getd(".q_"+@bought_nameid+"[0]"));
if (!.@q[1]) { message strcharinfo(0),"An error has occurred."; end; }
mes "[Quest Shop]";
mes "Recompensa: ^0055FF"+((.@q[1]>1)?.@q[1]+"x ":"")+Slot(.@q[0])+"^000000";
mes "Requirementos:";
if (.@q[2]) mes " > "+Chk(Zeny,.@q[2])+.@q[2]+" Zeny^000000";
if (.@q[3]) mes " > "+Chk(getd(.Points$[0]),.@q[3])+.@q[3]+" "+.Points$[1]+" ("+getd(.Points$[0])+"/"+.@q[3]+")^000000";
if (.@q[4]) for(set .@i,4; .@i<getarraysize(.@q); set .@i,.@i+2)
mes " > "+Chk(countitem(.@q[.@i]),.@q[.@i+1])+((.DisplayID)?"{"+.@q[.@i]+"} ":"")+Slot(.@q[.@i])+" ("+countitem(.@q[.@i])+"/"+.@q[.@i+1]+")^000000";
next;
set @qe1, getiteminfo(.@q[0],5); set @qe2, getiteminfo(.@q[0],11);
addtimer 1000, strnpcinfo(1)+"::OnEnd";
while(1){
switch(select(" ~ Comprar ^0055FF"+getitemname(.@q[0])+"^000000:"+((((@qe1&1) || (@qe1&256) || (@qe1&512)) && @qe2>0 && !@qe6)?" ~ Visualização...":"")+": ~ ^777777Cancel^000000")) {
case 1:
if (@qe0) {
mes "[Quest Shop]";
mes "Está faltando um ou mais requisitos da quest.";
close; }
if (!checkweight(.@q[0],.@q[1])) {
mes "[Quest Shop]";
mes "^FF0000Você precisa "+(((.@q[1]*getiteminfo(.@q[0],6))+Weight-MaxWeight)/10)+" capacidade de peso adicional para completar este comércio.^000000";
close; }
if (.@q[2]) set Zeny, Zeny-.@q[2];
if (.@q[3]) setd .Points$[0], getd(.Points$[0])-.@q[3];
if (.@q[4]) for(set .@i,4; .@i<getarraysize(.@q); set .@i,.@i+2)
delitem .@q[.@i],.@q[.@i+1];
getitem .@q[0],.@q[1];
if (.Announce) announce strcharinfo(0)+" criou "+A_An(getitemname(.@q[0]))+"!",0;
specialeffect2 699;
close;
case 2:
set @qe3, getlook(3); set @qe4, getlook(4); set @qe5, getlook(5);
if (@qe1&1) atcommand "@changelook 3 "+@qe2;
if (@qe1&256) atcommand "@changelook 1 "+@qe2;
if (@qe1&512) atcommand "@changelook 2 "+@qe2;
set @qe6,1;
break;
case 3:
close; } }
OnEnd:
if (@qe6) { atcommand "@changelook 3 "+@qe3; atcommand "@changelook 1 "+@qe4; atcommand "@changelook 2 "+@qe5; }
for(set .@i,0; .@i<7; set .@i,.@i+1) setd "@qe"+.@i,0;
end;
OnInit:
setarray .Points$[0],"#CASHPOINTS","Cash Points";
set .Announce,0; // Announce quest completion? (1: yes / 0: no)
set .ShowSlot,1; // Show item slots? (2: all equipment / 1: if slots > 0 / 0: never)
set .DisplayID,0; // Show item IDs? (1: yes / 0: no)
set .ShowZeny,1; // Show Zeny cost, if any? (1: yes / 0: no)
setarray .Shops$[1],"Consumiveis","Equipamentos";
Add(1,522,100,0,0,7829,80);
Add(2,13037,1,0,0,7829,250);
for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1)
npcshopdelitem "qqshop"+.@i,909;
end;
}
- shop qqshop2 -1,909:-1



No caso eu iria colocar mais uns 4 NPC's além desses 2...
Não precisa nem coloca o script já todo arrumado, prefiro que me ensinem a mexer nele.
Ou então se vc for colocar um arrumado, explica onde mexeu e por que, mas também se não tiver tempo tudo bem.

No momento só to sabendo mexer nessa parte (
parte em vermelho não sei):

bat_room,160,149,2 script Loja Bravura 430,{

.
.
.

set .Announce,0; // Announce quest completion? (1: yes / 0: no)

set .ShowSlot,1; // Show item slots? (2: all equipment / 1: if slots > 0 / 0: never)
set .DisplayID,0; // Show item IDs? (1: yes / 0: no)
set .ShowZeny,1; // Show Zeny cost, if any? (1: yes / 0: no)
setarray .Shops$[1],"Consumiveis","Equipamentos";
Add(1,522,100,0,0,7829,80);
Add(2,13037,1,0,0,7829,250);

Agradeço desde já!

Edited by Kira Cross
  • Love 1

Share this post


Link to post
Share on other sites

Pow não aparece ninguem, ;(
Foda que quando aparece uns cara pedindo as coisas já prontas aparece um bucado de gente.

Agora eu que to querendo aprender não aparece ninguém...

  • Love 1

Share this post


Link to post
Share on other sites

Cara gostaria que você mandasse os itens que você quer por no npc que eu faço um npc pra você!



aqui um básico,espero pelo menos um "curtir"

//=============================================
//== Seika Ashiro =======
//== Versão: ==================================
//== 1.0
//== Autor: ===================================
//== RoM
//=============================================
prontera,150,150,4 script Trocador de Emblemas Val 418,{
mes "[Trocador de Emblemas Val]";
mes "Olá "+StrCharInfo(0)+"!";
mes "Eu tenho alguns itens interessantes aqui, deseja dar uma olhada?";
next;
if( select("Claro!:Talvez mais tarde...") == 2 )
{
mes "[Trocador de Emblemas Val]";
mes "Tudo bem, estarei aqui se você mudar de idéia.";
close;
}
mes "[Trocador de Emblemas Val]";
mes "Bem, estes são os itens que eu tenho...";
mes "Sobre qual deles vai querer saber mais?";
next;
switch(select("Espírito do dragão de ouro:Chifres Misticos de Bafomé:Chifres Majestosos Gigantes:Olhos Bionicos:Nenhum"))
{
case 1:
mes "[Espírito do dragão de ouro]";
mes "Recompensa:";
mes "200x "+getitemname(5451);
mes " ";
mes "Requerimento:";
mes "900x "+getitemname(7829);
next;
mes "[Trocador de Emblemas Val]";
mes "Deseja fazer esta quest?";
next;
if( select("Sim!:Agora não...") == 2 )
{
mes "[Trocador de Emblemas Val]";
mes "Tudo bem... Até mais!";
close;
}
if(countitem(7829) >= 900)
{
delitem 7829,900;
getitem 5451,200;
mes "[Trocador de Emblemas Val]";
mes "Parabéns! Aqui está!";
close;
}
break;
case 2:
mes "[Chifres Misticos de Bafomé]";
mes "Recompensa:";
mes "1x "+getitemname(5518);
mes " ";
mes "Requerimento:";
mes "900x "+getitemname(7829);
next;
mes "[Trocador de Emblemas Val]";
mes "Deseja fazer esta quest?";
next;
if( select("Sim!:Agora não...") == 2 )
{
mes "[Trocador de Emblemas Val]";
mes "Tudo bem... Até mais!";
close;
}
if(countitem(7829) >= 900)
{
delitem 7829,900;
getitem 5518,1;
mes "[Trocador de Emblemas Val]";
mes "Parabéns! Aqui está!";
close;
}
break;
case 3:
mes "[Chifres Majestosos Gigantes]";
mes "Recompensa:";
mes "1x "+getitemname(5374);
mes " ";
mes "Requerimento:";
mes "900x "+getitemname(7829);
next;
mes "[Trocador de Emblemas Val]";
mes "Deseja fazer esta quest?";
next;
if( select("Sim!:Agora não...") == 2 )
{
mes "[Trocador de Emblemas Val]";
mes "Tudo bem... Até mais!";
close;
}
if(countitem(7829) >= 900)
{
delitem 7829,900;
getitem 5374,1;
mes "[Trocador de Emblemas Val]";
mes "Parabéns! Aqui está!";
close;
}
break;
case 4:
mes "[Olhos Bionicos]";
mes "Recompensa:";
mes "1x "+getitemname(5325);
mes " ";
mes "Requerimento:";
mes "500x "+getitemname(7829);
next;
mes "[Trocador de Emblemas Val]";
mes "Deseja fazer esta quest?";
next;
if( select("Sim!:Agora não...") == 2 )
{
mes "[Trocador de Emblemas Val]";
mes "Tudo bem... Até mais!";
close;
}
if(countitem(7829) >= 500)
{
delitem 7829,500;
getitem 5325,1;
mes "[Trocador de Emblemas Val]";
mes "Parabéns! Aqui está!";
close;
}
break;
case 5:
mes "[Trocador de Emblemas Val]";
mes "Tudo bem, estarei aqui se você mudar de idéia.";
close;
}
mes "[Trocador de Emblemas Val]";
mes "Me desculpe, mas você não tem todos os itens necessários para esta quest.";
mes "Volte quando você tiver todos os itens!";
close;
}

  • Love 1

Share this post


Link to post
Share on other sites

Então cara, esse modelo que vc me passou eu mesmo consigo editar tranquilamente.
acontece que esse daí que vc me passou, é um NPC de janela normal, tipo quest.

E o modelo que eu tenho e quero pro meu servidor é um modelo de NPC com a janela de mercado.
então só me agradaria se fosse desse jeito em janela de mercado.

Acho que só o criador do NPC mesmo pra me ajudar ;(

Share this post


Link to post
Share on other sites

Já consegui resolver o problema, falei diretamente com o criador do script e ele me deu uma ajuda.

Obrigado à Todos

Edited by Kira Cross

Share this post


Link to post
Share on other sites
Aviso Automático
Tópico movido.

Razão: Dúvida e/ou problema resolvido.



Aviso automático:

Este tópico foi movido de "SuporteSuporte à NPC" para "SuporteSuporte à NPCSoluções".

Se você não concorda com esta ação, vá até o Tribunal de Pequenas Causas.

Equipe Cronus Emulator.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

Seja bem vindo ao Cronus-Emulator.
É sempre um prazer te-lo conosco.
Você pode visualizar nossas áreas de suporte para encontrar suas soluções sem a necessidade de se registrar!
Registrando em nossa comunidade, você poderá conhecer mais sobre nosso projeto, criar tópicos, responder tópicos existentes, baixar milhares de recursos em nosso sistema de downloads, participar de nossa comunidade, customizar seu perfil e muito mais... Se você já possui uma conta, faça seu login - ou crie uma conta. Também temos integração com Google+ e Facebook.

×
×
  • Create New...