Разработка на Lua
дистанционно
договорная
Helix garry's mod. Разработка с нуля. Предметы и инвентарь Противогаз Тип предмета: экипируемый предмет (head/face slot). Механика: При надевании даёт защиту от радиации (коэффициент снижения накопления). Без противогаза в зонах игрок получает урон и накапливает радиацию. Должна быть возможность снять/надеть через стандартное взаимодействие Helix. Визуализация: модель/проп на персонаже, синхронизация состояния (надет/снят). Фильтры (3 типа) Типы: Фильтр на 5 минут. Фильтр на 10 минут. Фильтр на 15 минут. Механика: Фильтры — отдельные предметы. Игрок может установить фильтр в противогаз (через контекстное меню/действие). Один фильтр = один таймер. По истечении времени фильтр становится «использованным» (непригодным), снимается автоматически или вручную. Возможность замены фильтра на новый (даже если старый ещё не истёк). Таймер должен сохраняться при перезаходе игрока и при рестарте сервера (сохранять время в базе Helix). UI/индикация: при наведении на фильтр/противогаз показывать оставшееся время работы фильтра. Дозиметр Тип предмета: предмет в слоте (hand/accessory). Функционал: Отображать текущую дозу радиации игрока (в мЗв). Команда/меню действия: «Изменить дозу» — позволяет менять дозу у себя или у другого игрока (права доступа по рангам/командам). Интерфейс: простой HUD/панель при активации предмета. Опционально: звук/вибрация при высоких значениях (клиентская часть). 3. Система радиации (игрок) Единица измерения: миллизиверты (мЗв). Хранение данных: в таблице игрока (Helix character/player data), сохраняемой в БД. Сброс: при смерти игрока радиация сбрасывается в 0. Накопление: происходит в радиационных зонах (см. раздел 4). Пороговые эффекты: 220 мЗв: начинается периодический урон, добавляется визуальный эффект «белая вспышка» раз в N секунд. 3000 мЗв: дополнительно появляются «зелёные огоньки» вокруг игрока (частицы/пропсы). 5000 мЗв и выше: игрок умирает, радиация сбрасывается. Логирование: фиксировать моменты достижения порогов (для отладки/админки). 4. Радиационные зоны Типы зон: Зона накопления: радиация накапливается, но без мгновенного урона (или низкий урон). Игрок может пройти, но будет заражаться. Зона запрета/опасная: без противогаза игрок получает урон, возможно мгновенное сильное накопление. Настройка силы: Каждая зона имеет параметр «сила накопления» (мЗв в секунду). Зоны могут быть разных «тиров» (слабая/средняя/сильная) — это можно реализовать как отдельные пресеты или как настраиваемое значение. Установка и редактирование: Админ-команда для создания зоны: указать позицию (вектор), радиус, тип, силу накопления, тип зоны (накопление/опасная). Список зон хранить в конфиге/БД, чтобы сохранялись после рестарта. Команды для редактирования/удаления зон. Визуализация для админов (например, отображение радиуса в виде сферы/маркера). Проверка нахождения: каждый тик (или по таймеру) проверять, находится ли игрок в зоне, и начислять радиацию с учётом защиты противогаза. 5. Механика защиты и расчёт урона Формула накопления радиации: накопление_в_секунду = базовая_сила_зоны * коэффициент_защиты Если противогаз надет и фильтр активен: коэффициент < 1 (например, 0.2–0.3). Если нет противогаза: коэффициент = 1. Если фильтр истёк: коэффициент = 1 (как без противогаза). Урон: Начинается при 220 мЗв. Урон должен быть периодическим (например, каждые 5–10 секунд). Значение урона можно сделать зависящим от силы зоны или фиксированным. Эффекты: Белая вспышка: клиентский эффект (screen effect / particle), периодичность настраивается. Зелёные огоньки: частицы/пропсы вокруг игрока, появляются при 3000 мЗв, исчезают при снижении ниже порога. 6. Сохранение и устойчивость к рестарту Все таймеры фильтров, уровни радиации, активные зоны должны сохраняться. Использовать механизмы сохранения Helix (character data, config files, SQL). При загрузке сервера восстанавливать: список зон; активные фильтры у игроков (оставшееся время); текущие дозы радиации. 7. Админ-функционал и команды Команды для админов: /radzone create — создать зону. /radzone edit — изменить параметры зоны. /radzone delete — удалить зону. /setrad — установить дозу радиации игроку. /resetrad — сбросить радиацию игрока. Права: ограничить команды по рангам (admin/superadmin). 8. UI и клиентские эффекты При наведении на предмет (фильтр/противогаз/дозиметр) — показывать: оставшееся время (для фильтра); текущий уровень радиации (для дозиметра). HUD-индикатор радиации (опционально): полоска/число в углу экрана. Эффекты: белая вспышка (настраиваемая частота); зелёные огоньки (частицы вокруг модели игрока). 9. Требования к совместимости и архитектуре Совместимость с Helix (использовать стандартные хуки и API Helix). Не ломать существующую экономику/баланс сервера. Минимизировать нагрузку на сервер: использовать оптимизированные таймеры, избегать частых проверок в каждом тике без необходимости. Логирование ошибок в консоль/лог-файл для отладки. 10. Критерии приёмки (что считать «готовым») Противогаз можно надеть/снять, он даёт защиту. Фильтры на 5/10/15 минут работают, время сохраняется при перезаходах и рестарте. Дозиметр показывает радиацию, админ может менять дозу себе и другим. Зоны создаются/редактируются/удаляются, сохраняются после рестарта. При 220 мЗв — урон и белая вспышка. При 3000 мЗв — зелёные огоньки. При 5000+ мЗв — смерть и сброс радиации. Нет критических ошибок в логах, нет лагов из-за плагина.
2026-06-26
Откликнуться