Ir para o conteúdo principal
Version: latest - a1.19.x ⚖️

Valores da entidade

Como armazenar dados em Entidades acessíveis de qualquer lugar

Em nanos mundo é possível armazenar dados em entidades. Esses valores podem ser acessados por qualquer pacote e também você pode determinar se o valor será automaticamente sincronizado com os Clientes.

In Base Actor page we can find the definitions of :SetValue() and :GetValue() methods. Also it is possible to store Values globally on Client and Server Static Classes with the same methods!

Definir Valor

In any entity, you can use the method :SetValue(key, value, sync) to set any kind of value on that entity. Example:

Server/Index.lua
-- Sets a synchronized 'my_value' value
my_player:SetValue("my_value", 100, true)
tip

É possível armazenar any tipo de valor, exceto funções.

Se você passar sincronização como verdadeiro, esse valor será automaticamente sincronizado com todos os clientes. Note que sincronizaçãoé um parâmetro opcional disponível apenas no lado do servidor.

info

Client.SetValue() and Server.SetValue() won't have the last parameter sync. Como o valor só existirá do lado que você está configurando.

valorDeGetValue

After set, you can access any value from any entity using :GetValue(key, fallback) on any entity you want. Se você definir o valor a ser sincronizado em clientes, poderá obter os valores também no lado Cliente. You can pass an aditional parameter fallback which will be returned if the key doesn't exist!

-- Gets 'my_value' value, or returns '0' if no value is set
local my_value = my_player:GetValue("my_value", 0)
caution

Esteja ciente de que armazenar entidades em si não anula o valor se a entidade for destruída, então é uma boa prática validar se valores com :IsValid() depois de recuperá-los.