Events Guide
Tudo o que você precisa saber sobre os eventos.
Eventos de aulas
No mundo do nano, todas as ações realizadas por Jogadores ou Entidades podem ser obtidas através de eventos.
O evento mais básico para trazer um exemplo é o Invocar
. Toda vez que uma entidade é gerada, o evento gerador
será acionado.
Inscrevendo-se para Eventos de Classe
Registrar para eventos é muito fácil e direto usando o método Inscrever-se
, digamos que queremos saber onde um jogador entrou no servidor:
Player.Subscribe("Spawn", function(player)
Console.Log(player:GetName() .. " entrou!")
end)
Most events are triggered on both Client and Server sides, only a few rare exceptions which will be elicited by the Availability.
Cancelando assinatura de Eventos de Classe
Atualmente existem duas maneiras de cancelar a assinatura dos eventos:
Nota: Cancelar a assinatura de eventos sempre cancelar o registro de eventos que foram registrados no pacote que você é.
Cancelando assinatura de todos os eventos
-- Isto irá cancelar o registro de todos os eventos "Spawn" do jogador registrado neste pacote
Player.Unsubscribe("Spawn")
Cancelando a assinatura de um Callback de Evento específico
-- Declares the Callback beforehand
function OnSpawnPlayer(player)
Console.Log(player:GetName() .. " entrou!")
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() .. " entrou novamente!")
final)
-- Desinscreve-se somente do primeiro reprodutor de chamadas
nsubscribe("Spawn", OnSpawnPlayer)
-- Isso continuará acionando "player entrou novamente" mas não ativará
-- "jogador já entrou"
Eventos de Entidade
No mundo do nanos é possível registrar eventos em entidades específicas também Desta forma, o retorno de chamada só será acionado se a entidade específica for o motivo do evento.
Inscrevendo-se para Eventos de Entidade
-- Gera um caráter
local meu_caractere = Character()
meu_caractere:Subscribe("EnterVehicle", função(si mesmo, veículo)
-- meu_caractere entrou no veículo
fim)
Note que uma vez que a entidade é destruída, todos os eventos registrados serão cancelados automaticamente!
Cancelando assinatura de Eventos de Entidade
Atualmente existem duas maneiras de cancelar a assinatura dos eventos:
Nota: Cancelar a assinatura de eventos sempre cancelar o registro de eventos que foram registrados no pacote que você é.
Cancelando assinatura de todos os eventos da entidade
-- Isso irá cancelar o registro de todos os eventos "EnterVehicle" deste Personagem específico
-- registrado nesse Pacote
meu_character:Unsubscribe("EnterVehicle")
Desinscrevendo-se de um Callback de evento de entidade específica
-- Declara a função de retorno de chamada
OnCharacterEnteredVehicle(personagem, veículo)
-- Veículo!
fim
-- Inscreva-se no evento, passando o Callback
meu_character:Subscribe("EnterVehicle", OnCharacterEnteredVehicle)
-- Inscreva-se para o mesmo evento duas vezes
meu_personagem:Subscribe("EnterVehicle", função(personagem, veículo)
-- Veículo digitado novamente!
final)
-- Cancelar inscrição apenas do primeiro retorno
meu_caractere:Cancelar inscrição ("EnterVehicle", OnCharacterEnteredVehicle)
Eventos Personalizados
No mundo do nano, é possível definir e chamar eventos personalizados. 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.