Não remove item do array

Geraldoida
em Scripts

Geraldoida

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 23/11/13Posts: 25

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 !

Slicer

Insanity
avatar
Príncipe
Príncipe

INFOS

Grupo: PríncipeRegistrado: 19/08/10Posts: 4014Gênero: Masculino

joga a array do pro começo do script...

"Só a beira do abismo que os seres humanos acham forças para mudar."... E isso me da nojo... ¬¬

"Insanity is doing the exact... same fucking thing... over and over again expecting... shit to change... That. Is. Crazy." -Vass/Einstein

 

Geraldoida

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 23/11/13Posts: 25

como é que é slicer ?

Skymagnum

Hamburguer
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 02/08/12Posts: 1025Char no Tibia: Maurolkit

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
jeoz.png

Slicer

Insanity
avatar
Príncipe
Príncipe

INFOS

Grupo: PríncipeRegistrado: 19/08/10Posts: 4014Gênero: Masculino

/\ ui como q n reparei nisso? o.O ty kk'

"Só a beira do abismo que os seres humanos acham forças para mudar."... E isso me da nojo... ¬¬

"Insanity is doing the exact... same fucking thing... over and over again expecting... shit to change... That. Is. Crazy." -Vass/Einstein

 

Geraldoida

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 23/11/13Posts: 25

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

Skymagnum

Hamburguer
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 02/08/12Posts: 1025Char no Tibia: Maurolkit

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).

jeoz.png

Dbko

Mudando Para Melhor
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 21/11/13Posts: 372

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%

tumblr_mqi6iwn0FQ1s3jp5fo3_500.gif

Geraldoida

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 23/11/13Posts: 25

Simplesmente perfect. Parabéns sky ! Podem fechar !