Gaimo Posted July 13, 2020 Posted July 13, 2020 players = {} function startWork (source) print(getPlayerName(source)) -- Retorna o nick ou seja o source existe if not players[source] then players[source]["rubble"] = 0 players[source]["rubbleRemoved"] = false players[source]["atWork"] = false end end Quando eu tento players[source]["rubble"] = 0, Não era pra adicionar na tablela o source? tipo assim: players{ source = {"rubble" = 0}, } Erro no debugscript: attempt to index field "?" (a nil value)
androksi Posted July 13, 2020 Posted July 13, 2020 (edited) Isso ocorre pois você precisa criar uma tabela para a tabela que indexa o jogador também. Dessa forma: local players = {} function startWork (source) print(getPlayerName(source)) -- Retorna o nick ou seja o source existe if not players[source] then players[source] = {} players[source]["rubble"] = 0 players[source]["rubbleRemoved"] = false players[source]["atWork"] = false end end Offtopic: percebo que você costuma não utilizar variáveis locais, o que deixa a desejar em questão de otimização (não é tanta diferença, mas boas práticas de programação devem estar em todos os códigos ). No topo do seu código, defina todas as tabelas e variáveis como local. Ao decorrer do código, você poderá usar sem o local, pois uma vez definida dessa forma, sempre será local. Isso vale também para funções, laços de repetições e afins, sempre considere usar local para definir uma variável ou tabela dentro do escopo seja de função ou laço de repetição. Edited July 13, 2020 by andreisrww 1 1
Gaimo Posted July 13, 2020 Author Posted July 13, 2020 Outra dúvida relacionada a tabelas, se eu quiser criar algo assim: markers["nome"] = createMarker..... Como eu crio direto na tabela? Assim? Markers={ ["nome"] = CreateMarker... , ["outroNome"] = 77, }
androksi Posted July 13, 2020 Posted July 13, 2020 Sim, você pode fazer isso, sem problema algum. Editei a minha outra resposta, leia por favor, apenas um conselho sobre o seu código. 1
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