Skip to main content
Version: bleeding-edge 🩸

Entitätswerte

Wie man Daten in allen verfügbaren Entitäten speichert

In der nanos Welt ist es möglich, Daten auf Entitäten zu speichern. Auf diese Werte kann jedes Paket zugreifen und Sie können auch feststellen, ob der Wert automatisch mit den Clients synchronisiert wird.

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!

Wert setzen

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

Es ist möglich, any Art von Wert zu speichern, außer Funktionen.

Wenn Sie Sync als wahr übergeben, wird dieser Wert automatisch mit allen Clients synchronisiert. Beachten Sie, dass Syncein optionaler Parameter ist, der nur auf der Server Seite verfügbar ist.

Notiz

Client.SetValue() and Server.SetValue() won't have the last parameter sync. Da der Wert nur auf der Seite vorhanden ist, die Sie einstellen.

GetWert

After set, you can access any value from any entity using :GetValue(key, fallback) on any entity you want. Wenn Sie den Wert festlegen, der auf Clients synchronisiert werden soll, können Sie die Werte auch auf der Client-Seite abrufen. 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

Beachten Sie, dass die Speicherung von Entitäten selbst den Wert nicht annullieren wird, wenn die Entität zerstört wird, also ist es eine gute Methode, nach dem Abrufen der Werte mit :IsValid() zu validieren.