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 Entity 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:
-- Sets a synchronized 'my_value' value
my_player:SetValue("my_value", 100, true)
É 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.
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)
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.