@@Skulls então, não é aleatório, ele segue a ordem do next. Isso que vc falou de indexação fora de ordem está correto, mas tem casos em que ipairs não funcionaria como tabelas contendo nil pois o next iria retornar falso e cancelar (semelhante à um break)
info
Grupo: Herói
Registrado: 14/02/14
Posts: 341
Reputação: +285
Gênero: Masculino
Char no Tibia: Night Wolf

info
Grupo: Marquês
Registrado: 25/09/10
Posts: 1.3k
Reputação: +446
Gênero: Masculino

,
Editado Janeiro 8 por Caronte
info
Grupo: Herói
Registrado: 25/02/07
Posts: 859
Reputação: +331
Gênero: Masculino

Segundo o lottery.lua do baiak 10.10, o wolf tem razão:
info
Grupo: Conde
Registrado: 07/04/15
Posts: 926
Reputação: +335
Gênero: Masculino

Tópico movido para dúvidas / pedidos resolvidos.
Não funciona
primeiramente desculpa por revives o topico mais ja tenti mil coisas e nao achei a solucao...
to tendo o siguente error:
[01/05/2020 00:18:35] [Error - LuaScriptInterface::loadFile] data/globalevents/scripts/recompensaonline.lua:2: unexpected symbol near '{'
[01/05/2020 00:18:35] [Warning - Event::loadScript] Cannot load script (data/globalevents/scripts/recompensaonline.lua)
[01/05/2020 00:18:35] data/globalevents/scripts/recompensaonline.lua:2: unexpected symbol near '{'
function onThink() local tab {-- Siga o exemplo: --[hora] = {[itemid] = quantidade}, [1] = {[15556] = 100, [15556] = 100, [15590] = 100}, [2] = {[15556] = 100, [15556] = 100, [15590] = 100, [2145] = 1}, [3] = {[15556] = 100, [15556] = 100, [15590] = 100}, [4] = {[15556] = 100, [15556] = 100, [15590] = 100, [2145] = 1}, [5] = {[15556] = 100, [15556] = 100, [15590] = 100, [12227] = 1}, [6] = {[15556] = 100, [15556] = 100, [15590] = 100}, } for k, v in pairs(getOnlinePlayers()) do for i = #tab, 0 in pairs(tab) do -- 1 = hora inicial para receber, caso mudar acima, mudar aqui também if tab[i] and (os.time() - getCreatureStorage(cid, 151091) / 360000) > i then for item, count in pairs(tab[i]) doPlayerAddItem(k, item, count) end if tab[i] == tab[#tab] and (os.time() - getCreatureStorage(cid, 151091) / 360000) > i then doCreatureSetStorage(cid, 151091, 0) end break return true end end end
outra duvida, fizeram alguma coisa pra ele nao resetar qndo o player morre?
PD: Eu cloquei os items do meu server mais colocando aquele script postado aqui msm, tava dando o msm error entao nao foi error ao adicionar os items na tabelas.
Editado Maio 1 por Josegvb






info
Grupo: Herói
Registrado: 25/02/07
Posts: 859
Reputação: +331
Gênero: Masculino
Bom, se realmente retornar uma lista de ids, eu estava certo. Mas se ele retorna uma lista de nomes indexada por ids, o código dele faz sentido. Vai depender do return do getPlayersOnline(). Valeu pela explicação, deixou mais claro ainda pra mim.
E, pelo que entendi da leitura, a diferença entre o ipairs e o pairs é que o ipairs é em ordem e o pairs aleatório, assim sendo, no pairs você consegue fazer a leitura de tabelas com a indexação sem ordem (como tab = { [123] = "Lucas", [16123] = "Goulart"}, o que não é possível pelo ipairs, (é possível, mas ele não retorna esses indexes aleatórios, ele vai retornar o número do elemento) correto?
Abraços
Editado Janeiro 8 por Skulls