События
Полные поля, типы, разрешения и изменяемость находятся в справочнике параметров событий.
lua
local subscription = samp.events.on("player.spawned", function(event)
samp.log.info(event.name)
end, {
priority = 100,
once = true
})Больший priority выполняется раньше. once = true автоматически удаляет подписку после первого успешного вызова.
События могут содержать name, sequence, timestamp, sessionId и playerGeneration. Основные группы: жизненный цикл, игрок, чат, checkpoints, сущности, dialogs, TextDraw, меню, игровой кадр и HUD.
Некоторые события изменяемы. Отмена необратима для текущей цепочки: после cancelled = true следующий плагин не может восстановить операцию.
lua
samp.events.on("chat.message_received", function(event)
samp.log.info(
event.playerName .. ": " .. event.message
)
end, {
priority = 0
})
samp.events.on("chat.message_sending", function(event)
if event.message == "!cancel" then
event.cancelled = true
end
end)Изменяемые callback не могут yield и должны завершаться как можно быстрее.