Queiroz Posted December 14, 2024 Share Posted December 14, 2024 Olá pessoal, Gostaria de entender mais sobre tabelas. Alguém poderia me dá um exemplo de tabela do tipo: tenho 3 posições x,y,z | x,y,z | x,y,z queria que criar uma marker em cada uma dessas posições só que ultílizando tabela. Como posso fazer isso? Link to comment
Other Languages Moderators Lord Henry Posted December 16, 2024 Other Languages Moderators Share Posted December 16, 2024 (edited) Faça assim: -- TABELA COM ÍNDICES DECLARADOS: (substitua os X, Y, Z pelos valores das posições respectivamente) local tabela = { -- Abre e fecha a tabela com chaves. Você pode declará-la toda em 1 linha ou separar cada item por linha, sempre entre vírgulas. [1] = {x, y, z}, -- Por se tratar de 1 posição com 3 valores xyz, crie uma sub-tabela. Como se cada item fosse uma tabela de 3 itens. [2] = {x, y, z}, -- Não é obrigatório declarar o "[índice] =" se for inteiro sequencial, mas é bom para ficar mais fácil de entender. -- Entre cada item, é obrigatório ter vírgula. Só não precisa da vírgula após o último item. [3] = {x, y, z}, [4] = {x, y, z} } -- Tabelas também podem ser declaradas em 1 linha se forem pequenas, apesar de ser mais difícil de ler. local tabela = {[1] = {x, y, z}, [2] = {x, y, z}, [3] = {x, y, z}, [4] = {x, y, z}} -- TABELA SEM DECLARAR ÍNDICES: local tabela = { {x, y, z}, {x, y, z}, {x, y, z}, {x, y, z} } -- Ou: local tabela = {{x, y, z}, {x, y, z}, {x, y, z}, {x, y, z}} -- Script para acessar essa tabela e criar vários markers utilizando essas posições: function criaTodos() for i,v in ipairs(tabela) do -- Para cada item da tabela (de 1 até 4), faça: -- i = índice do item, ou seja: 1, 2, 3 ou 4. -- v = valor do item, ou seja: {x, y, z}. -- isso significa que: v[1] = x, v[2] = y, v[3] = z. createMarker (v[1], v[2], v[3], "checkpoint") -- Cria o marker com os respectivos valores x, y, z. end end addCommandHandler("eae", criaTodos) -- Script para criar 1 marker específico, declarando qual índice quer pegar a posição: (client-side) function criaUnico(comando, i) i = tonumber(i) -- Converte o que foi digitado após o comando. De texto para número. local v = tabela[i] -- Obtém o {x, y, z} do item de índice [i] createMarker (v[1], v[2], v[3], "checkpoint") -- Cria o marker com os respectivos valores x, y, z. end addCommandHandler("opa", criaTodos) -- Exemplo /opa 2 Edited December 16, 2024 by Lord Henry 1 Link to comment
Recommended Posts