PlayerMeta
Расширения мета-таблицы Player, добавляемые режимом Fazbear's Hunt.
Роль игрока SHARED
PLAYER:IsSurvivor()
Возвращает true, если игрок - выживший.
if ply:IsSurvivor() then
print(ply:Nick() .. " - выживший")
endPLAYER:IsAnimatronic()
Возвращает true, если игрок - аниматроник.
if ply:IsAnimatronic() then
ply:ChatPrint("Удачной охоты!")
endВажно
Если засунуть выжившего в команду TEAM_PILLS (или 2701), то игра здесь будет выдавать true.
PLAYER:GetPill()
Возвращает Пилл-Энтити игрока.
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(), не пересоздаёт самого игрока — оружие, здоровье и т.д. сохраняются.
ply:ReturnToSpawn()PLAYER:SuppressRagdollSpawn(bool)
Позволяет отменить спавн посмертного регдолла. После одной попытки спавна автоматически сбрасывается в false.
hook.Add("DoPlayerDeath", "NoRagdoll", function(ply)
ply:SuppressRagdollSpawn(true)
end)Застревания SERVER
PLAYER:IsStuck()
Проверяет хитбокс игрока на застревание в геометрии или других сущностях. В отличие от ENTITY:IsInWorld(), учитывает хитбокс.
PLAYER:Unstuck()
Пытается телепортировать игрока в место, где он не застревает. Используйте вместе с IsStuck():
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()
Запрещено ли игроку толкать других?
-- Я его не пну, и он меня не пнёт.
ply:SetPushImmune(true)
ply:SetPushBlocked(true)Голосовой чат SERVER
PLAYER:SetAudible(bool)
Слышен ли игрок другими игроками в голосовом чате?
PLAYER:GetAudible()
Возвращает текущий статус слышимости.
PLAYER:ForceListenPlayer(Player)
Принудительно заставить игрока слышать только указанного игрока (всех остальных — выключить).
PLAYER:ResetListenPlayer()
Сбросить принудительное прослушивание.
-- Заставить жертву слышать только аниматроника
victim:ForceListenPlayer(killer)
-- Через 10 секунд вернуть нормальное состояние
timer.Simple(10, function()
if IsValid(victim) then victim:ResetListenPlayer() end
end)Золотой Фредди SERVER
PLAYER:SetGFreddyImmune(bool)
Иммунитет к способности Золотого Фредди (Загранное Измерение).
PLAYER:GetGFreddyImmune()
Возвращает текущий статус иммунитета.
-- Все админы иммунны к Золотому Фредди
hook.Add("PlayerSpawn", "AdminGFImmune", function(ply)
if ply:IsAdmin() then
ply:SetGFreddyImmune(true)
end
end)Подарки SERVER
Уже используется режимом
Эти функции применяются режимом по умолчанию — они не выдают второй подарок, пока не подобран первый. Используйте, если знаете что делаете.
PLAYER:SetGiftOwnership(bool)
Установить флаг владения подарком.
PLAYER:GetGiftOwnership()
Имеет ли игрок несобранный подарок?
if not ply:GetGiftOwnership() then
-- спавним новый подарок
end