Events Guide
Tout ce que vous devez savoir sur les Évènements.
Évènements de classe​
Dans nanos world, toutes les actions effectuées par des joueurs ou des entités peuvent être obtenues grâce à des évènements.
L'évènement le plus basique pour donner un exemple est Spawn
. Chaque fois où une entité apparaît, l'évènement Spawn
est déclenché.
S'abonner à des Évènements de classe​
Registering for events is very easy and straightforward using the method :Subscribe()
, let's say we want to know when a Player has joined the server:
Player.Subscribe("Spawn", function(player)
Console.Log(player:GetName() .. " a rejoint!")
end)
Most events are triggered on both Client and Server sides, only a few rare exceptions which will be elicited by the Availability.
Se désabonner des Évènements de classe​
Actuellement, il y a deux façons de se désabonner d'évènements :
Note : Se désabonner d'évènements affectera toujours seulement le Package que vous utilisez.
Se désabonner de tous les évènements de classe​
-- Ceci affectera tous les évènements "Spawn" de joueur dans le package actuel
Player.Unsubscribe("Spawn")
Se désabonner d'un évènement de classe spécifique​
-- Declares the Callback beforehand
function OnSpawnPlayer(player)
Console.Log(player:GetName() .. " a rejoint!")
end
-- Subscribes the event, passing the Callback
Player.Subscribe("Spawn", OnSpawnPlayer)
-- Subscribes for the same event, twice
Player.Subscribe("Spawn", function(player)
Console.Log(player:GetName() .. " a encore rejoint!")
end)
-- Désabonnement de la première méthode de callback seulement
Player.Unsubscribe("Spawn", OnSpawnPlayer)
-- Cela déclenchera toujours "joueur a encore rejoint!" mais ne déclenchera plus
-- "joueur a rejoint!"
Évènements d'entité​
Dans nanos world, il est possible de s'abonner à des évènements pour des Entités spécifiques également, par conséquent la méthode de callback sera appelée si cette entité spécifique a déclenché l'évènement.
S'abonner à des Évènements d'entité​
-- Faire apparaître un personnage
local my_character = Character()
my_character:Subscribe("EnterVehicle", function(self, vehicle)
-- my_character est entré dans le véhicule
end)
À savoir qu'une fois l'entité détruite, tous les évènements enregistrés pour celle-ci seront automatiquement retirés !
Se désabonner des Évènements d'entité​
Actuellement, il y a deux façons de se désabonner d'évènements :
Note : Se désabonner d'évènements affectera toujours seulement le Package que vous utilisez.
Se désabonner de tous les Évènements d'entité​
-- Cela va retirer tous les évènements "EnterVehicle" de ce personnage spécifique
-- enregistrés dans ce Package
my_character:Unsubscribe("EnterVehicle")
Se désabonner d'un évènement d'entité spécifique​
-- Déclaration de la méthode de callback au préalable
function OnCharacterEnteredVehicle(character, vehicle)
-- Le personnage est entré dans le véhicule !
end
-- Abonnement à l'évènement, en précisant la méthode de callback
my_character:Subscribe("EnterVehicle", OnCharacterEnteredVehicle)
-- Abonnement au même évènement, une seconde fois
my_character:Subscribe("EnterVehicle", function(character, vehicle)
-- Le personnage est encore entré dans le véhicule !
end)
-- Désabonnement de la première méthode de callback seulement
my_character:Unsubscribe("EnterVehicle", OnCharacterEnteredVehicle)
Événements personnalisés​
Dans nanos world, il est possible de définir et d'appeler des Évènements personnalisés. Please refer to Events Static Class for the technical documentation.
Custom events are user-created events which you can subscribe or call to all other Packages.