MatheusNs Posted April 23, 2020 Share Posted April 23, 2020 (edited) Fala galera! eu aqui novamente .... Como alguns já sabem mas outros não, sou iniciante aqui na programação. Estou tentando usar um loop para criar peds com ipairs. Lembrando que uma variável é criada em um arquivo separado chamado "editar.Lua" Declaração da variável no arquivo "editar.Lua" (Não vejo problema aqui, me corrijam se eu estiver errado) PedLoja = {0, 1398.5822753906, -1630.8250732422, 14.102245330811, 88} -- declaração da variável com a posição x,y,z e rotação z Código para criação de loop com ped for i, v in ipairs(PedLoja) do ped = createPed(v[1], v[2], v[3], v[4], v[5]) setElementFrozen(PedLoja, true) setElementData(PedLoja, "TS:Blindado", true) local BlipLoja = createBlipAttachedTo(PedLoja, 17) local BlipLojaAssalta = createBlipAttachedTo(PedLoja, 18) setElementVisibleTo(BlipLojaAssalta, root, false) end Erro que me retorna ao executar o script: tentativa de indexar 'v' local (um valor numérico) Estava estudando Lua e sinceramente não sei ou porque cometeu um erro. Deve ser sobre algum valor incorreto que "V" não entra? Como posso otimizar para que funcione? Obs: Nunca usei para i , v em ipairs () do Edited April 23, 2020 by MatheusNs Bug, ao editar um texto de código os outros somem. Link to comment
Gw8 Posted April 23, 2020 Share Posted April 23, 2020 (edited) PedLoja = { {0, 1398.5822753906, -1630.8250732422, 14.102245330811, 88}, -- i = 1 {0, 1398.5822753906, -1630.8250732422, 14.102245330811, 88}, -- i = 2 } essa forma que voce fez voce ler apenas a linha 1, logo nao é necessario for, pode acessar a informação direta. PedLoja[2] = 1398.5822753906 isso voce fez , -> https://forum.multitheftauto.com/topic/36659-navegando-pelos-elementos-de-uma-tabela/ Edited April 23, 2020 by Gw8 Link to comment
Other Languages Moderators Lord Henry Posted April 23, 2020 Other Languages Moderators Share Posted April 23, 2020 O problema está na table. Você fez uma table para funcionar com somente 1 ped, dessa forma não precisaria de loop nenhum. PedLoja = {0, 1398.5822753906, -1630.8250732422, 14.102245330811, 88} -- id, x, y, z, rotZ (não aceita outros Peds, pois precisaria de uma sub-table. PedLoja = { {0, 1398.5822753906, -1630.8250732422, 14.102245330811, 88}, -- Agora sim, cada ped separado em uma sub-table. {0, 1398.5822753906, -1630.8250732422, 14.102245330811, 88} } -- Se usar a primeira tabela, o loop vai rodar 5 vezes. Na primeira vez, v = 0, na segunda vez, v = 1398.5822... e assim por diante. for i, v in ipairs(PedLoja) do ped = createPed(v[1], v[2], v[3], v[4], v[5]) -- erro, não é possível indexar o número 0[1]. end -- Se usar a segunda tabela, o loop vai rodar duas vezes, pois no exemplo a tabela tem 2 itens. Sendo cada item uma sub-table. for i, v in ipairs(PedLoja) do -- Na primeira vez, v = {0, 1398.5822753906, -1630.82507324422, 14.102245330811, 88} ped = createPed(v[1], v[2], v[3], v[4], v[5]) -- Agora sim, v[1] = 0. Pois é o primeiro item da sub-table v, v[2] = 1398.5822753906, e assim por diante. end 1 Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now