Skip to content

События

Полные поля, типы, разрешения и изменяемость находятся в справочнике параметров событий.

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 и должны завершаться как можно быстрее.