Ir para conteúdo
  • 0

Não remove item do array


Geraldoida

Pergunta

Alô povo tô eu aí de novo com outra dúvida. Espero que possam me responder, to fazendo um código de npc aqui , e parte dele taí :



if msgcontains(msg, 'yes') then
local array = {11454,12415,6543}
local var = array[math.random(1,#array)]
doPlayerAddItem(cid,var,1)
table.remove(array,var)
addEvent(table.insert,60000,array,var)



O que eu quero que isso faça , é que ao player falar 'yes' , math random sorteie 1 numero dos que estão dentro do array, e assim o table.remove retirar esse numero sorteado do array, e por último, depois de 1 minuto o addEvent execute o table.insert e adicione o item no array novamente. O meu problema está sendo que o table.remove não está retirando o numero da tabela, quando eu falo yes 2 ou mais vezes , o mesmo item está sendo sorteado mais de uma vez em menos de 1 minuto. Gostaria que vcs criticassem e me ajudassem a concertar esse erro. Valeu galera !

Editado por Geraldoida
Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

Geraldoida, em 22 Abr 2014 - 17:28, disse:

como é que é slicer ?

O table remove funciona por posição.
local array = {2, 2160, 2159, 9323, 3, 4, 5, 6}table.remove(array, 2)print(table.concat(array, " "))
Assim printando:
2 2159 9323 3 4 5 6
Usa isso aqui:

local array = {2160, 2159, 9323}

    local rand = array[math.random(#array)]
    print(rand)

    for k, v in ipairs(array) then
        if(v == rand) then
            table.remove(array, k)
        end
    end
Editado por Skymagnum
Link para o comentário
Compartilhar em outros sites

  • 0

sky , muito obrigado cara. Mas n sei se vc sabe eu sou scripter iniciante, e teve uma vez que tentei aprender 'for k, v in ipairs(table)' mas tava muito dificil e deixei para aprender mais tarde. Agora que vc postou o codigo tem como vc me explicar o que vc fez ali ? ?De todo jeito fico muito agradecido a voce e ao slicer. Valeu ! Rep + pros 2

Link para o comentário
Compartilhar em outros sites

  • 0

sky , muito obrigado cara. Mas n sei se vc sabe eu sou scripter iniciante, e teve uma vez que tentei aprender 'for k, v in ipairs(table)' mas tava muito dificil e deixei para aprender mais tarde. Agora que vc postou o codigo tem como vc me explicar o que vc fez ali ? ?De todo jeito fico muito agradecido a voce e ao slicer. Valeu ! Rep + pros 2

Então eu fiz assim, for k, v in ipairs(array), v vai retornar os elementos da tabela e k a posição dele, então eu chequei se o random é igual um elemento da tabela e coloquei pra remover com k(que é a posição dele).

Link para o comentário
Compartilhar em outros sites

  • 0

Então eu fiz assim, for k, v in ipairs(array), v vai retornar os elementos da tabela e k a posição dele, então eu chequei se o random é igual um elemento da tabela e coloquei pra remover com k(que é a posição dele).

Poxa gostei Muito Tbm Estavá Procurando Entender um pouco + disso Agora Pq vir ums tutorial aprendir + só que n sabia direito agora sei 100%

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...