Skip to content

Просветы

С обновлением 3.0.0 просвет (подсветка игроков сквозь стены) выделен в отдельную библиотеку — highlight.

Основные функции

highlight.ByDistance(ply, ent) SERVER

Автоматически просвечивает игроку ply всех выживших в радиусе, заданном консольной командой halo_radius. По умолчанию используется аниматрониками на бинд +RELOAD.

ПараметрТипОписание
plyPlayerИгрок, который просвечивает
entEntityЭнтити-модель аниматроника ply (нужно для звуков)
lua
hook.Add("KeyPress", "MyHighlight", function(ply, key)
    if key == IN_RELOAD and ply:IsAnimatronic() then
        local ent = pills.getMappedEnt(ply)
		if IsValid(ent) then
			highlight.ByDistance(ply, ent)
		end
    end
end)

highlight.Add(ply, players, duration, color) SERVER

Просвечивает указанных игроков для ply на заданное время, с указанным цветом.

ПараметрТипОписание
plyPlayerКто видит просвет
playersPlayer или table[Player]Кого просвечивает
durationfloatДлительность в секундах
colorColor (опц.)Цвет просвета

Учтите

Эта функция не включает звуки оповещения о просвете. Используйте highlight.NotifyTarget() для оповещения.

addAffected(ply, duration, color) CLIENT

Просвечивает ply для локального игрока на заданное время, с указанным цветом.

ПараметрТипОписаниеЗн. по умолчанию
plyPlayerКто просвечен
durationfloat (опц.)Длительность в секундахConVar halo_time
colorColor (опц.)Цвет просветаColor(255,0,0)
forcebool (опц.)Насильно просветить, даже если игрок уже просвеченfalse

removeAffected(ply, force) CLIENT

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

ПараметрТипОписаниеЗн. по умолчанию
plyPlayerКто просвечен
forcebool (опц.)Насильно выключить просвет, если игрок был насильно просвеченfalse

Кулдауны

highlight.Cooldown(ply, duration) SERVER

Устанавливает игроку кулдаун на просвет и обновляет значение в интерфейсе.

lua
highlight.Cooldown(ply, 15)  -- 15 секунд КД

INFO

Если у аниматроника нет способности «Просвет» в интерфейсе, он не узнаёт про КД.

highlight.GetCooldown(ply) SERVER

Возвращает количество секунд до следующего использования просвета.

lua
if highlight.GetCooldown(ply) > 0 then
    ply:ChatPrint("Просвет ещё не готов!")
end

Звуки просвета

highlight.AddVisionSounds(name, snd_affected, snd_unaffected) SERVER

Регистрирует звуки просвета для конкретного аниматроника.

lua
highlight.AddVisionSounds(
    "pill_wgfreddy2",
    "my_anim/highlight_success.wav",
    "my_anim/highlight_fail.wav"
)

Важно

В путях звуков обязательно указывайте полный путь до файла, включая расширение.

highlight.GetVisionSound(ent) SERVER

Возвращает таблицу со звуками: { affected = "...", unaffected = "..." }.

highlight.NotifyTarget(target, ent, isAffected) SERVER

Включает звук просвета и накладывает визуальный эффект на экране игрока.

ПараметрТипОписание
targetPlayerКого оповестить
entEntityМодель аниматроника, который просвечивает
isAffectedbooltrue — звук успеха, false — звук провала
lua
highlight.NotifyTarget(survivor, pillEnt, true)