Skip to content

PlayerMeta

Расширения мета-таблицы Player, добавляемые гейммодом Fazbear's Hunt.

Роль игрока SHARED

PLAYER:IsSurvivor()

Возвращает true, если игрок — выживший.

lua
if ply:IsSurvivor() then
    print(ply:Nick() .. " — выживший")
end

PLAYER:IsAnimatronic()

Возвращает true, если игрок играет за аниматроника.

lua
if ply:IsAnimatronic() then
    ply:ChatPrint("Удачной охоты!")
end

Спавн и позиция SERVER

PLAYER:ReturnToSpawn()

Меняет позицию игрока на точку спавна. В отличие от ENTITY:Spawn(), не пересоздаёт самого игрока — оружие, здоровье и т.д. сохраняются.

lua
ply:ReturnToSpawn()

PLAYER:SuppressRagdollSpawn(bool)

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

lua
hook.Add("DoPlayerDeath", "NoRagdoll", function(ply)
    ply:SuppressRagdollSpawn(true)
end)

Застревания SERVER

PLAYER:IsStuck()

Проверяет хитбокс игрока на застревание в геометрии или других сущностях. В отличие от ENTITY:IsInWorld(), учитывает хитбокс.

PLAYER:Unstuck()

Пытается телепортировать игрока в место, где он не застревает. Используйте вместе с IsStuck():

lua
hook.Add("PlayerSpawn", "CheckStuck", function(ply)
    timer.Simple(0.5, function()
        if IsValid(ply) and ply:IsStuck() then
            ply:Unstuck()
        end
    end)
end)

Толкания SERVER

PLAYER:SetPushImmune(bool)

Установка иммунитета к отталкиванию другими игроками.

PLAYER:IsPushImmune()

Имеет ли игрок иммунитет к отталкиваниям?

PLAYER:SetPushBlocked(bool)

Может ли игрок толкать других?

PLAYER:IsPushBlocked()

Запрещено ли игроку толкать других?

lua
-- Сделать аниматроника непробиваемой стеной
ply:SetPushImmune(true)
ply:SetPushBlocked(true)

Голосовой чат SERVER

PLAYER:SetAudible(bool)

Слышен ли игрок другими игроками в голосовом чате?

PLAYER:GetAudible()

Возвращает текущий статус слышимости.

PLAYER:ForceListenPlayer(Player)

Принудительно заставить игрока слышать только указанного игрока (всех остальных — выключить).

PLAYER:ResetListenPlayer()

Сбросить принудительное прослушивание.

lua
-- Заставить жертву слышать только аниматроника
victim:ForceListenPlayer(killer)

-- Через 10 секунд вернуть нормальное состояние
timer.Simple(10, function()
    if IsValid(victim) then victim:ResetListenPlayer() end
end)

Золотой Фредди SERVER

PLAYER:SetGFreddyImmune(bool)

Иммунитет к способности Золотого Фредди (Загранное Измерение).

PLAYER:GetGFreddyImmune()

Возвращает текущий статус иммунитета.

lua
-- Все админы иммунны к Золотому Фредди
hook.Add("PlayerInitialSpawn", "AdminGFImmune", function(ply)
    if ply:IsAdmin() then
        ply:SetGFreddyImmune(true)
    end
end)

Подарки SERVER

Уже используется режимом

Эти функции применяются по умолчанию — игра не выдаёт второй подарок, пока не подобран первый.

PLAYER:SetGiftOwnership(bool)

Установить флаг владения подарком.

PLAYER:GetGiftOwnership()

Имеет ли игрок несобранный подарок?

lua
if not ply:GetGiftOwnership() then
    -- спавним новый подарок
end