Ослепляющий фонарик: плагин для Counter-Strike 1.6 и идея мутатора для Killing Floor
Blinding Flashlight — плагин AMX Mod X 2006-2007 годов для Counter-Strike 1.6 и Condition Zero. Он превращает фонарик в оружие: посветите противнику в лицо, и его экран на мгновение станет белым. Это не мод для Killing Floor, но его настройки — хороший шаблон для любой механики «свет как оружие», а в KF фонарики есть на многих стволах. Ниже разбор плагина, а затем набросок того, как идея могла бы работать в KF.
Как работает плагин
Плагин ждёт игрового события фонарика. Когда игрок включает свет, проверяется, кто попал в луч, и жертве накладывается ScreenFade (белая вспышка). Версия 0.2.3SL (июнь 2007) основана на оригинальной 0.2.0 от VEN и добавила большую часть настроек:
| Cvar | По умолчанию | Смысл |
|---|---|---|
bf_mindistance | 500 | До этой дистанции эффект действует в полную силу |
bf_maxdistance | 1500 | После неё эффект полностью исчезает, линейно от bf_mindistance |
bf_maxblindtime | 1.5 | Секунды полного ослепления на минимальной дистанции (время удержания ScreenFade без появления и затухания) |
bf_maxblend | 255 | Непрозрачность белого экрана вблизи |
bf_minblend | 128 | Непрозрачность на максимальной дистанции |
bf_hitplace | b | Какие зоны тела срабатывают: a общая, b голова, c грудь, d живот, e/f руки, g/h ноги |
bf_fxfactor | 4.0 | Множитель длительности появления и затухания эффекта |
Решения, которые стоит позаимствовать:
- Жертва должна смотреть на атакующего. Проверку добавили в v0.2.1SL: ослепить со спины нельзя.
- По умолчанию только голова.
bf_hitplace=bозначает, что луч надо навести в лицо. - Затухание с дистанцией и по длительности, и по непрозрачности, а не эффект «вкл/выкл».
- Батарейка важна. Автор советует отдельный плагин, который быстрее разряжает фонарик, потому что стандартная батарейка CS не рассчитана на фонарик-оружие. Ещё он предлагает снизить
bf_mindistanceдо 200 для лучшего геймплея. - Сброс при рестарте раунда. В v0.2.1SL исправили баг, когда таймеры игроков переживали рестарт раунда и блокировали эффект.
Отзывы в теме: на CS 1.6 работает; в Day of Defeat нет события фонарика, так что как есть работать не будет; на The Specialists 3.0 плагин загрузился, но ничего не делал. Многие ожидали, что на полном сервере это начнёт раздражать.
Идея для Killing Floor
KF — это PvE, поэтому интересная цель здесь мобы, а не игроки. У многих стволов KF есть фонарик с батарейкой, и на тёмных картах им и так пользуются. Вот как настройки плагина могли бы перейти в мутатор. Это набросок дизайна, а не проверенный код:
| Правило плагина | Вариант для KF |
|---|---|
| Проверка по событию фонарика | На сервере каждые 0.2-0.3 с проверять игроков с включённым фонариком на оружии (как хранится состояние света, смотрите в классах оружия KF) |
| Жертва смотрит на атакующего | Направление моба (Rotation) указывает на игрока в пределах конуса |
| Только голова | Трассировка от глаз игрока по направлению взгляда с попаданием в голову (определение попадания в голову в KF уже есть для хедшотов) |
| Затухание с дистанцией | Сила эффекта от полной на 5 м до нуля на 15 м |
| ScreenFade у жертвы | Короткое оглушение или замедление лёгких мобов (Клот, Горфаст, Ползун, Сталкер), на Скрейка, Флешпаунда и Патриарха не действует |
| Расход батарейки | Пока эффект активен, батарейка фонарика KF садится быстрее, чтобы это был инструмент, а не вечный стан |
| Таймеры игроков | Кулдаун на каждого моба, полный сброс в конце волны и при смене карты |
На что обратить внимание:
- Баланс. Бесплатный стан на каждого Клота делает «Нормально» и «Сложно» тривиальными. Привяжите механику к перку (Support или Sharpshooter, в зависимости от сервера), добавьте кулдаун или ограничьте её Сталкерами, чтобы раскрывать и замедлять их.
- Производительность. Проверки по таймеру, а не в
Tick(), и только для игроков с включённым светом. Туториал по ночному видению показывает, как быстро поитерационные проверки съедают FPS. - Обратная связь. У мобов нет экрана, который можно засветить, поэтому эффект нужно показать: анимация оглушения, звук или короткая реакция на попадание.
- Только сервер. Если всё считается на сервере, клиенты остаются ванильными, и мутатор не нужно скачивать.