Passer au contenu principal
Version: bleeding-edge 🩸

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

S'abonner à des évènements de classe est très simple, pour cela il faut utiliser la méthode Subscribe. Disons que nous voulons savoir quand un joueur a rejoint le serveur :

Player.Subscribe("Spawn", function(player)
Console.Log(player:GetName() .. " a rejoint!")
end)
info

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 :

info

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)
tip

À 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 :

info

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.