CS2 Lua API

Игровые события

Игровые события сервера (player_death, player_hurt, round_start и другие) приходят как одноимённые события events. Аргумент — таблица ключей события. События приходят через очередь, в начале следующего кадра.

<имя игрового события>#

Подписка по имени события игры, например events.player_hurt.

Аргумент Тип Описание
e table ключи события; набор зависит от события

Значения ключей по типу:

Тип ключа в игре Значение в таблице
строка string (пусто — "")
float, long, short, byte number (нет значения — 0)
bool boolean (нет значения — false)
uint64 64-битное целое (cdata)
дескриптор сущности ключ — entity (если сущность была жива), ключ_raw — число; пустой дескриптор — ключа нет
игрок (слот контроллера) ключ_raw — число; если игрок найден, ещё ключ — entity контроллера и ключ_slot — номер слота; пусто — ключа нет

Сущности в таблице снимаются в момент события, а не при раздаче.

events.player_death:set(function(e)
    local me = entity.local_controller()
    if e.attacker == me and e.userid ~= me then
        print("Вы убили: ", e.userid and e.userid:name() or "?", e.headshot and " (в голову)" or "")
    end
end)

game_event#

Приходит сразу после раздачи каждого игрового события по имени. Удобно, чтобы узнать, какие события вообще приходят.

Аргумент Тип Описание
name string имя игрового события
local seen = {}

events.game_event:set(function(name)
    if not seen[name] then
        seen[name] = true
        print("Новое игровое событие: ", name)
    end
end)