Jump to content

Erro ao adicionar player na tabela


Recommended Posts

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)

Link to comment
  • Other Languages Moderators

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

Offtopicpercebo 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 by andreisrww
  • Like 1
  • Thanks 1
Link to comment

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...