Ir para conteúdo
Entre para seguir isso  
Soft

[Resolvido] Itens de uma array para a lista.

Recommended Posts

Olá, estava editando um npc meu e me veio uma questão, como fazer com que os itens que estão na array apareçam em uma lista no npc.

Por exemplo:

Tenho a array itensids:

setarray .itensids[0],5360,5361,5363,5362,5364;

Gostaria com que os itens listados na array aparecessem na lista para selecionar e efetuar ação X, que eu edito depois...

E a cada 15 itens listados aparecesse a opção de mudar de página e continuar a lista.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por exemplo,uma lista pra selecionar o item que quero comprar, por exemplo.

E sim, em vez de aparecer o id, o nome do item.

Por exemplo:

Eu falo com o npc, ele me da uma lista com o nome dos itens (que foram postos na array) e, eu seleciono o item que eu quero e ele efetua a ação X.

Editado por Soft

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz esse exemplo utilizando outro array de quantia.

mes .quantia[0]+"x"+getitemname(.itensids[0]);

Tenta fazer mais ou menos assim.

  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como seria o "efetuar uma ação"? você pode setar um loop ( for set acho que é o melhor ) e usar a variável do forset para a index da array.

ficaria +/- assim:


for ( set .@k1, 0; .@k1 < getarraysize(.itensid); set .@k1, .@k1+1){
mes "+getitemname(itensid[@k1])}

  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele retiraria uma determinada quantidade de cash e emblemas de Guerra.

Bom, vou explicar meu npc.

Seria assim, os ids dos itens ficariam armazenados em uma array, e ao clicar na 1 opção do npc, ele mostraria um menu com diversos itens (os itens que possuem o ids na array)e ao selecionar determinado item o npc o daria o item mas em troca te tiraria 1000 de cash e 500 emblemas de guerra.

O NPC ficaria assim.

NPC>"COMPRAR ITENS">"ITEM 1","ITEM 2","ITEM 3","ITEM 4",...>"CASH -1000 + EMBLEMA DE GUERRA -500 + GETITEM "ITEM 1"".

Mas ao invés de ter que fazer a opção de item por item, fazer uma, função (eu acho)que faria isso automaticamente.

Editado por Soft

Compartilhar este post


Link para o post
Compartilhar em outros sites

todos os itens seriam do mesmo preço? acho que consigo fazer este menu... mas se tiver cada um um preço váriavel complica um pouco e eu não estou com "paciencia" para tal ...

  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

O jeito mais simples que tem é repetir a linha tipo isso:

mes .quantia[0]+"x"+getitemname(.itensids[0]);
mes .quantia[1]+"x"+getitemname(.itensids[1]);
mes .quantia[2]+"x"+getitemname(.itensids[2]);
....

E assim por diante, apenas o jeito mais simples.

  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Servi?

ou

http://pastebin.com/raw.php?i=G4e3X7bc

prontera,156,185,5	script	Tesste	706,{

mes "Veja agora uma lista de itens!";
next;

set .@cmd$,"";
setarray .itemlist[0],607,608,609,610,611,612; //Itens da lista
for(set .@i,0; .@i < getarraysize(.itemlist); set .@i,.@i+1)
set .@cmd$, .@cmd$+getitemname(.itemlist[.@i]) + ":";
set .@cmd$, .@cmd$+"Fechar";
select(.@cmd$);
set .@value,@menu-1;

if(.@value == getarraysize(.itemlist)) close; //Fecha caso escolha a opção fechar!

mes "Gostaria de comprar o item "+getitemname(.itemlist[.@value])+" ?";
if(select("Sim:Não")==2) close;

set #CASHPOINTS,#CASHPOINTS-1000;
delitem ITEM_ID,500;
getitem .itemlist[.@value],1;
close;
}

Editado por DarkDiscovery
  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

O meu ficou meio parecido com o do senhor acima... vê qual se encaixa melhor ( ou funciona (risos) )... só falta enfeitar um pouco... mas acho que isso você faz sem problemas :S

prontera,161,183,3 script Test 100,{
setarray .itensids[0],607,616,999,969,5035,2524,2421,2357;

for ( set .@k1, 0; .@k1 < getarraysize(.itensids[0]); set .@k1, .@k1+1){
set .@tdk$,""+.@tdk$+""+.itensids[.@k1]+":";
}
set .@tdk$, ""+.@tdk$+"Cancelar";
set .@option, select(.@tdk$);

if(.@option == getarraysize(.itensids)+1)
close;
else if(#CASHPOINTS >= 1000 && countitem(7086) >= 5){
getitem (.itensids[.@option-1]),1;
delitem 7086, 5;
set #CASHPOINTS, #CASHPOINTS-99999;
close;
}
else{
close;}
}

esse cronus tá tenso D+ -.- @cash -1 diz que não pode mudar de sexo, e #cashpoints não funciona aqui...

Editado por Dark Rose

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deu certo o dos dois, muito obrigado.

Obrigado a todos, devidamente reputados :).

Editado por Soft

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  

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.

×