Skip to content

Хуки раунда

Хуки, вызываемые на разных этапах жизни раунда.

fh_prestartgame() HOOK SHARED

Вызывается перед выбором типа раунда.

Возврат false — отменить выбор раунда.


fh_startgame(roundType) HOOK SERVER

Вызывается после выбора типа раунда и выполнения базовых функций раунда (раздача ролей, заморозка, выдача Шокера).

АргументТипОписание
roundTypeintID типа раунда

Возврат false — отменить запуск таймера, музыки и т.д.

Пример: уникальный раунд с заменой таймера. См. Бонни-Тег →

lua
hook.Add("fh_startgame", "AnnounceRound", function(roundType)
    local name = fh.GetRoundTypeNameByNumber(roundType)
    PrintMessage(HUD_PRINTTALK, "Раунд: " .. name)
end)

fh_poststartgame(roundType, animatronics) HOOK SHARED

Вызывается после разморозки аниматроников.

АргументТипОписание
roundTypeintID типа раунда
animatronicstable[Player]Игроки-аниматроники в этом раунде
lua
hook.Add("fh_poststartgame", "BuffAnims", function(roundType, anims)
    for ply, _ in ipairs(anims) do
        ply:SetMaxHealth(150000)
        ply:SetHealth(150000)
    end
end)

fh_postendgame(killerVictory, animatronics) HOOK SHARED

Вызывается после конца раунда, перед таймером возврата в лобби.

АргументТипОписание
killerVictoryboolПобедили ли аниматроники?
animatronicstable[Player]Аниматроники этого раунда
lua
hook.Add("fh_postendgame", "RewardAnims", function(victory, anims)
    if not victory then
        -- Аниматроники проиграли - взрываем их.
        for ply, _ in ipairs(anims) do
			local effectdata = EffectData()
			effectdata:SetOrigin(ply:GetPos())
			effectdata:SetScale(1)
			util.Effect("Explosion", effectdata)
			ply:Kill()
        end
    end
end)