# ArcaneGame Custom Rounds Core Плагин кастомных раундов для CS:GO серверов на SourceMod. Администраторы выбирают режим на следующий раунд через меню — и весь сервер играет в изменённых условиях. ## Функции - 10 режимов кастомных раундов: - **AWP Only** — только AWP + нож - **AWP NoScope** — AWP без прицела (zoom заблокирован) - **Scout Only** — только SSG-08 + нож - **Scout NoScope** — Scout без прицела - **Deagle Only** — только Deagle + нож - **Deagle HS Only** — только Deagle, **в тело — 0 урона, только хедшоты** - **HE Only** — только гранаты HE с бесконечным боезапасом - **Ножевой раунд** — только ножи - **Низкая гравитация** — гравитация уменьшена (настраивается) - **1 HP** — у всех игроков минимальное здоровье - Полное сохранение и восстановление инвентаря после кастомного раунда (основное оружие + патроны, запасное + патроны, нож, **все гранаты**, **броня**, **шлем**, **дефузер**) - Блокировка покупок во время режима - Блокировка зума для NoScope-режимов (через CommandListener + OnPlayerRunCmd) - Показ **MOTD-картинки** во freezetime в начале кастомного раунда (HTTP-страница, авто-закрытие через 12с) - Кулдаун **5 раундов** для обычных админов между запусками. Группы DEIDARA / TESTER и флаг `z` (Root) обходят кулдаун - Логирование действий админов (выбор/отмена режима) в `addons/sourcemod/logs/custom_rounds.log` - Защита от спама: один и тот же режим нельзя поставить в очередь дважды подряд - Интеграция AG Coins (награда за победу / убийства / хедшоты / выживание) - Объявления в чат о текущем и следующем режиме ## Зависимости - [SourceMod](https://www.sourcemod.net/) 1.10+ - `agcoins_bridge` — библиотека AG Coin (входит в систему ArcaneGame) ## Установка 1. Скомпилировать `scripting/ArcaneGame_CustomRounds_Core.sp` 2. Положить `.smx` в `addons/sourcemod/plugins/` 3. Убедиться, что `agcoins_bridge` загружен на сервере 4. Перезапустить сервер — конфиг создастся автоматически в `cfg/sourcemod/ArcaneGame_CustomRounds_Core.cfg` ## Команды | Команда | Доступ | Описание | |---|---|---| | `!cr` / `sm_cr` | Группы DEIDARA / TESTER или по флагу | Открыть меню кастомных раундов | | `!cr_status` / `sm_cr_status` | Любой админ с доступом к меню | Показать текущий/следующий режим и кулдаун | ## ConVars | ConVar | По умолчанию | Описание | |---|---|---| | `sm_cr_access_flag` | `b` | Флаг доступа для sm_cr (fallback) | | `sm_cr_access_use_overrides` | `1` | Разрешить доступ через admin_overrides.cfg | | `sm_cr_coins_enable` | `1` | Включить AG Coin награды | | `sm_cr_coins_win` | `0` | Монеты за победу в кастомном раунде | | `sm_cr_coins_kill` | `0` | Монеты за убийство | | `sm_cr_coins_headshot` | `0` | Монеты за хедшот | | `sm_cr_coins_survive` | `0` | Монеты за выживание победителю | | `sm_cr_lowgravity_value` | `0.40` | Значение гравитации (Low Gravity) | | `sm_cr_onehp_value` | `1` | Здоровье игроков в режиме 1 HP | | `sm_cr_announce` | `1` | Показывать объявления в чат | | `sm_cr_show_motd` | `1` | Показывать картинку режима во freezetime | | `sm_cr_cooldown_rounds` | `5` | Кулдаун в раундах для обычных админов (DEIDARA/TESTER/z обходят) | ## Уровни доступа | Уровень | Кулдаун | Возможности | |---|---|---| | Группа **DEIDARA** | Нет | Все режимы, все запуски | | Группа **TESTER** | Нет | Все режимы, все запуски | | Флаг `z` (Root) | Нет | Все режимы, все запуски | | Любой другой админ с флагом `sm_cr_access_flag` | **5 раундов** | Все режимы, но запуск раз в 5 раундов | | Без флага | Нет доступа | — | ## MOTD-картинка во freezetime Когда стартует кастомный раунд, всем игрокам отображается HTML-страница на время freezetime+несколько секунд. Страница хостится по адресу: ``` http://37.228.88.57/cr/.html ``` Slug-ы: `awp`, `awp-noscope`, `scout`, `scout-noscope`, `deagle`, `deagle-hs`, `he`, `knife`, `lowgrav`, `onehp`. По умолчанию страницы — стилизованные баннеры с заголовком режима. Чтобы заменить на реальные изображения — отредактируйте `<тег img>` в HTML на сервере по пути `/srv/cr-images/cr/.html`. URL картинок плагин дёргает динамически по slug-у, так что менять плагин не нужно. Отключить показ полностью — `sm_cr_show_motd 0`. ## Логирование Все запуски и отмены кастомных раундов пишутся в: ``` addons/sourcemod/logs/custom_rounds.log ``` Формат: ``` [YYYY-MM-DD HH:MM:SS] [FULL|REG] АдминИмя (STEAM_X:Y:Z) -> ВЫБРАЛ/ОТМЕНИЛ режим: <название> [раунд N] ``` Где: - `FULL` — DEIDARA / TESTER / Root (без кулдауна) - `REG` — обычный админ (с кулдауном) ## Версия `1.2.1` — Автор: deidara.dev ### Changelog - **1.2.1** - Фикс: жёсткая проверка прав в `HasCustomRoundsAccess` — теперь обязательно требуется хотя бы один админ-флаг (раньше при пустом флаге в `admin_overrides.cfg sm_cr` мог пропускать обычных игроков) - Защитные re-check вызовы в `MenuHandler_Main`, `QueueCustomRound`, `CancelPendingRound` — даже если меню каким-то образом окажется у игрока без прав, действия не выполнятся - Добавлен `IsFakeClient` в проверку (боты заблокированы) - Дополнительный `LogMessage` в стандартный SM-лог при логировании действий — для надёжности на shared-хостингах - **1.2.0** - Добавлены режимы: **Scout NoScope**, **Deagle Only**, **Deagle HS Only** (только хедшоты) - Полное сохранение/восстановление инвентаря: гранаты, броня, шлем, дефузер, патроны - Фикс: при заходе нового игрока на освободившийся слот не выдаётся чужой инвентарь - Фикс: убрано двойное применение режима в начале раунда - Фикс: `m_iFOV` восстанавливается в 90 (а не 0) - Фикс: удалён мёртвый код `GiveDefaultCombatLoadout` - **MOTD-картинка** во freezetime при старте кастомного раунда - **Логирование** действий в `custom_rounds.log` (с тегом FULL/REG) - **Кулдаун 5 раундов** для обычных админов (DEIDARA/TESTER/Root обходят) - Защита от спама очереди: один и тот же режим нельзя поставить дважды - Команда `sm_cr_status` - Унифицирован стиль API (методмапы вместо `GetConVarBool`) - **1.1.0** — Базовая версия с 7 режимами