Valeurs des entités
Comment stocker des données dans des entités accessibles depuis n'importe où
Dans nanos world, il est possible de stocker des données sur des entités. Ces valeurs sont accessibles par n'importe quel Package et vous pouvez également déterminer si la valeur sera automatiquement synchronisée avec les clients.
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!
SetValue
Sur n'importe quelle entité, vous pouvez utiliser la méthode :SetValue(key, value, sync)
pour définir n'importe quelle valeur sur cette entité. Exemple :
-- Définit une valeur 'my_value' synchronisée.
my_player:SetValue("my_value", 100, true)
Il est possible de stocker des valeurs de type any, à l'exception des fonctions
.
Si vous passez sync
comme vrai, cette valeur sera automatiquement synchronisée avec tous les clients. Notez que sync
est un paramètre facultatif disponible uniquement sur le coté Serveur.
Client.SetValue() et Server.SetValue() n'auront pas le dernier paramètre sync
. En effet, la valeur n'existera que sur le côté que vous définissez.
GetValue
Après avoir été défini, vous pouvez accéder à n'importe quelle valeur de n'importe quelle entité en utilisant :GetValue(key)
sur n'importe quelle entité que vous voulez. Si vous définissez la valeur à synchroniser sur les Clients, vous serez en mesure d'obtenir les valeurs du côté Client également. Vous pouvez passer un paramètre aditionnel fallback
qui sera retourné si la clé n'existe pas!
-- Obtient la valeur 'my_value' ou retourne '0' si aucune valeur n'est définie
locale my_value = my_player:GetValue("my_value", 0)
Be aware that storing entities itself will not nullify the value if the entity is destroyed, so it is a good practice to validate if values with :IsValid()
after retrieving them.