Ir para o conteúdo principal
Version: bleeding-edge 🩸

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", função(jogador)
Package.Log(player:GetName() .. " entrou!")
end)
info

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:

info

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

-- Declita a função Callback beforehand
OnSpawnPlayer(player)
Package.Log(player:GetName() .. " entrou!")
fim

-- Inscreva-se no evento, passando o Callback
Player.Subscribe("Spawn", OnSpawnPlayer)

-- Inscrever-se para o mesmo evento, duas vezes
jogador. ubscribe("Spawn", function(jogador)
Package.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)
tip

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:

info

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.