Плагин кастомных раундов для CS:GO серверов на SourceMod. Администраторы выбирают режим на следующий раунд через меню — и весь сервер играет в изменённых условиях.
- **1 vs All** (от 15 игроков) — 1 ТТшник против всех CT. У ТТшника 5000 HP, 500 брони, +25% скорости, $16000 на покупку любого оружия. CT — XM1014 + 4 гранаты (HE, флеш, смок, инсентари). Админ выбирает игрока вручную или рандомно.
- Полное сохранение и восстановление инвентаря после кастомного раунда (основное оружие + патроны, запасное + патроны, нож, **все гранаты**, **броня**, **шлем**, **дефузер**)
Когда стартует кастомный раунд, всем игрокам показывается **PrintHintText** — большое уведомление в правом нижнем углу экрана со звуком. Содержит название режима и краткое описание.
- Фикс: после 1vAll-раунда модели игроков теперь корректно меняются под их восстановленную команду. Раньше игрок с CT-моделью оставался в этой модели даже после возврата в команду T (и наоборот), потому что `CS_SwitchTeam` не обновляет модель. Теперь используется `ChangeClientTeam` — он триггерит правильный death+respawn → игра выдаёт модель для новой команды.
- Фикс: ТТшник в режиме 1 vs All теперь гарантированно телепортируется на T-спавн (раньше `CS_RespawnPlayer` в CSGO мог оставить уже-живого игрока на CT-спавне, что ломало возможность покупки)
- Фикс: после окончания 1vAll команды восстанавливаются физически — добавлен `Timer_FinalTeamRestore`, который телепортирует игроков на спавны их исходных команд
- Замена `ShowHudText` (для HL2, не работал в CSGO) на надёжные `PrintHintText` + `PrintCenterText`
- Уведомление о кастомном раунде показывается всем игрокам тремя способами одновременно: MOTD-картинка, hint-text в углу со звуком, большой центральный текст
- Центральный текст повторяется таймерами на 2/4/6 секундах чтобы держать сообщение видимым на протяжении всего freezetime
- Фикс лога: переход с `LogToFileEx(absolute_path)` на `OpenFile("addons/sourcemod/logs/custom_rounds.log", "a")`. На MyArena `LogToFileEx` с absolute путём от `BuildPath` молча не создавал файл.
- Фикс MOTD: используется стандартный `ShowMOTDPanel` (правильно сериализует KeyValues с типом как строкой)
- Добавлен **гарантированный HUD-overlay** с названием и описанием режима в центре экрана (~6 секунд), показывается всегда независимо от клиентского `cl_disablehtmlmotd`
- Фикс: жёсткая проверка прав в `HasCustomRoundsAccess` — теперь обязательно требуется хотя бы один админ-флаг (раньше при пустом флаге в `admin_overrides.cfg sm_cr` мог пропускать обычных игроков)
- Защитные re-check вызовы в `MenuHandler_Main`, `QueueCustomRound`, `CancelPendingRound` — даже если меню каким-то образом окажется у игрока без прав, действия не выполнятся
- Добавлен `IsFakeClient` в проверку (боты заблокированы)
- Дополнительный `LogMessage` в стандартный SM-лог при логировании действий — для надёжности на shared-хостингах