Postado Agosto 9, 2022 2 anos Fala pessoal tudo bem? Estou com dificuldades em um script e preciso da ajuda dos magos do LUA rs. Tenho um script que quando o player morre (onDeath), ele faz algumas coisas e depois ele chama uma função que deveria retornar uma table (array) para eu fazer o for com o ipairs certinho. Segue abaixo o código: Spoiler local opcodeLivePlayers = 115 function onDeath(cid, corpse) storages = {166668, 166666} for key, value in ipairs(storages) do if getPlayerStorageValue(cid, value) == 1 then setPlayerStorageValue(cid, value, -1) return false end end local players = #getPlayersInArea(torneio.area) -- <- Erro tá dando aqui print(players) for _, pid in ipairs(players) do doSendPlayerExtendedOpcode(pid, opcodeLivePlayers, players) print("enviada opcode: "..opcodeLivePlayers.." buffer: ".. playersInscritos) end return true end Segue abaixo a função getPlayersInArea: Spoiler torneio = { playerTemple = { x = 1016, y = 1025, z = 7 }, ---- posiçao do Templo tournamentFight = { x = 1162, y = 933, z = 7 }, ----- Area (Mapa) do torneio area = { fromx = 1113, fromy = 887, fromz = 7, fromzUp = 6, tox = 1218, toy = 955, toz = 7, tozUp = 6 }, } function getPlayersInArea(area) -- Pega a quantidade de jogadores na área local players = {} for x = area.fromx, area.tox do for y = area.fromy, area.toy do for z = area.fromz, area.toz do local m = getTopCreature({ x = x, y = y, z = z }).uid if m ~= 0 and isPlayer(m) then table.insert(players, m) end end end end return players end Acontece que no código de cima (do primeiro spoiler) eu dou um print no retorno da função getPlayersInArea, porém ela não tá me retornando a table, tá me retornando só: 2 Spoiler Alguém consegue me ajudar em, como raios eu faço a função retornar a lista de players ao invés da quantidade? Acredito que ta retornando o count da table, e não os itens do array. Agradeço desde já, valeu tchurma! Editado Agosto 9, 2022 2 anos por galokoao (veja o histórico de edições)
Postado Agosto 10, 2022 2 anos Solução 8 horas atrás, Ghaz disse: local players = #getPlayersInArea(torneio.area) -- <- Erro tá dando aqui print(players) o código ta fazendo oq tu pediu uai players = #getPlayerInarea o # significa o tamanho pra receber a table é só players = getPlayersInArea e depois print(#players) que ai vai printar o tamanho de players, ou seja, 2 players na area
Postado Agosto 10, 2022 2 anos Autor 1 minuto atrás, FeeTads disse: o código ta fazendo oq tu pediu uai players = #getPlayerInarea o # significa o tamanho pra receber a table é só players = getPlayersInArea e depois print(#players) que ai vai printar o tamanho de players, ou seja, 2 players na area Valeu irmão kkkk juro que eu n sabia disso kkkkkkk pqp, tamo junto!
Postado Agosto 10, 2022 2 anos 1 minuto atrás, Ghaz disse: Valeu irmão kkkk juro que eu n sabia disso kkkkkkk pqp, tamo junto! kkkkkkkkkkkkkk resolvido assim? ta facil demais kkkkkkkkk tmj meu bom
Postado Agosto 10, 2022 2 anos Autor 2 minutos atrás, FeeTads disse: kkkkkkkkkkkkkk resolvido assim? ta facil demais kkkkkkkkk tmj meu bom Sim hahahaha, ja testei aqui e funcionou o script. Tamo junto Editado Agosto 10, 2022 2 anos por Ghaz (veja o histórico de edições)
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.