2026-05-01 06:57:31 +03:00
# ArcaneGame Custom Rounds Core
Плагин кастомных раундов для CS:GO серверов на SourceMod. Администраторы выбирают режим на следующий раунд через меню — и весь сервер играет в изменённых условиях.
## Функции
2026-05-01 17:16:23 +03:00
- 10 режимов кастомных раундов:
2026-05-01 06:57:31 +03:00
- **AWP Only** — только AWP + нож
2026-05-01 17:16:23 +03:00
- **AWP NoScope** — AWP без прицела (zoom заблокирован)
- **Scout Only** — только SSG-08 + нож
- **Scout NoScope** — Scout без прицела
- **Deagle Only** — только Deagle + нож
- **Deagle HS Only** — только Deagle, **в тело — 0 урона, только хедшоты **
2026-05-01 06:57:31 +03:00
- **HE Only** — только гранаты HE с бесконечным боезапасом
- **Ножевой раунд** — только ножи
- **Низкая гравитация** — гравитация уменьшена (настраивается)
- **1 HP** — у всех игроков минимальное здоровье
2026-05-01 17:16:23 +03:00
- Полное сохранение и восстановление инвентаря после кастомного раунда (основное оружие + патроны, запасное + патроны, нож, **все гранаты ** , **броня ** , **шлем ** , **дефузер ** )
2026-05-01 06:57:31 +03:00
- Блокировка покупок во время режима
2026-05-01 17:16:23 +03:00
- Блокировка зума для NoScope-режимов (через CommandListener + OnPlayerRunCmd)
- Показ **MOTD-картинки ** во freezetime в начале кастомного раунда (HTTP-страница, авто-закрытие через 12с)
- Кулдаун **5 раундов ** для обычных админов между запусками. Группы DEIDARA / TESTER и флаг `z` (Root) обходят кулдаун
- Логирование действий админов (выбор/отмена режима) в `addons/sourcemod/logs/custom_rounds.log`
- Защита от спама: один и тот же режим нельзя поставить в очередь дважды подряд
2026-05-01 06:57:31 +03:00
- Интеграция 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 или по флагу | Открыть меню кастомных раундов |
2026-05-01 17:16:23 +03:00
| `!cr_status` / `sm_cr_status` | Любой админ с доступом к меню | Показать текущий/следующий режим и кулдаун |
2026-05-01 06:57:31 +03:00
## 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` | Показывать объявления в чат |
2026-05-01 17:16:23 +03:00
| `sm_cr_show_motd` | `1` | Показывать картинку режима во freezetime |
| `sm_cr_cooldown_rounds` | `5` | Кулдаун в раундах для обычных админов (DEIDARA/TESTER/z обходят) |
2026-05-01 06:57:31 +03:00
## Уровни доступа
2026-05-01 17:16:23 +03:00
| Уровень | Кулдаун | Возможности |
|---|---|---|
| Группа **DEIDARA ** | Нет | Все режимы, все запуски |
| Группа **TESTER ** | Нет | Все режимы, все запуски |
| Флаг `z` (Root) | Нет | Все режимы, все запуски |
| Любой другой админ с флагом `sm_cr_access_flag` | **5 раундов ** | Все режимы, но запуск раз в 5 раундов |
| Без флага | Нет доступа | — |
## MOTD-картинка во freezetime
Когда стартует кастомный раунд, всем игрокам отображается HTML-страница на время freezetime+несколько секунд. Страница хостится по адресу:
```
http://37.228.88.57/cr/<slug>.html
```
Slug-ы: `awp` , `awp-noscope` , `scout` , `scout-noscope` , `deagle` , `deagle-hs` , `he` , `knife` , `lowgrav` , `onehp` .
По умолчанию страницы — стилизованные баннеры с заголовком режима. Чтобы заменить на реальные изображения — отредактируйте `<тег img>` в HTML на сервере по пути `/srv/cr-images/cr/<slug>.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` — обычный админ (с кулдауном)
2026-05-01 06:57:31 +03:00
## Версия
2026-05-01 17:47:45 +03:00
`1.2.2` — Автор: deidara.dev
2026-05-01 17:16:23 +03:00
### Changelog
2026-05-01 17:47:45 +03:00
- **1.2.2**
- Фикс лога: переход с `LogToFileEx(absolute_path)` на `OpenFile("addons/sourcemod/logs/custom_rounds.log", "a")` . На MyArena `LogToFileEx` с absolute путём от `BuildPath` молча не создавал файл.
- Фикс MOTD: используется стандартный `ShowMOTDPanel` (правильно сериализует KeyValues с типом как строкой)
- Добавлен **гарантированный HUD-overlay ** с названием и описанием режима в центре экрана (~6 секунд), показывается всегда независимо от клиентского `cl_disablehtmlmotd`
2026-05-01 17:34:07 +03:00
- **1.2.1**
- Фикс: жёсткая проверка прав в `HasCustomRoundsAccess` — теперь обязательно требуется хотя бы один админ-флаг (раньше при пустом флаге в `admin_overrides.cfg sm_cr` мог пропускать обычных игроков)
- Защитные re-check вызовы в `MenuHandler_Main` , `QueueCustomRound` , `CancelPendingRound` — даже если меню каким-то образом окажется у игрока без прав, действия не выполнятся
- Добавлен `IsFakeClient` в проверку (боты заблокированы)
- Дополнительный `LogMessage` в стандартный SM-лог при логировании действий — для надёжности на shared-хостингах
2026-05-01 17:16:23 +03:00
- **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 режимами