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

Важно

Если засунуть выжившего в команду TEAM_PILLS (или 2701), то игра здесь будет выдавать true.

PLAYER:GetPill()

Возвращает Пилл-Энтити игрока.

lua
local ent = ply:GetPill()
if IsValid(ent) then
	print("Пилл присутствует!")
end

Важно

Этот метод напрямую вызывает pills.getMappedEnt(ply), поэтому рекомендуется использовать именно второй вариант, ради оптимизации.


События SHARED

PLAYER:IsJumpscared()

Скримерят ли прямо сейчас игрока?

PLAYER:SetJumpscared()

Устанавливает скримерят ли сейчас игрока.

На заметку

Эта функция уже автоматически используется внутри (performJumpscare)[/reference/functions#performjumpscare]

ENTITY:IsInvisible()

Невидимый-ли игрок?

На заметку

Чтобы вернуло true, энтити должно иметь материал models/null или быть :GetNoDraw() == true.

Эта функция общая для PLAYER и ENTITY.


Спавн и позиция 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("PlayerLeaveVehicle", "CheckStuck", function(ply, 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("PlayerSpawn", "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