2026-05-01 06:57:31 +03:00
# ArcaneGameDUELS Core
2026-05-01 20:39:01 +03:00
Система дуэлей 1v1 для CS:GO серверов на SourceMod. Поддерживает арену, зону ограничения, выбор оружия, модификаторы, статистику и интеграцию с системой XP (lvl_ranks).
2026-05-01 06:57:31 +03:00
## Функции
2026-05-01 20:39:01 +03:00
- Дуэли **1v1 ** между любыми двумя игроками (автозапуск при 1v1 на сервере с >2 игроками)
2026-05-01 06:57:31 +03:00
- **Арена**: фиксированные точки спавна из конфига `ArcaneGameDUELS_Arena.cfg`
- **Зона ограничения**: дуэлянты не могут покинуть арену (настраиваемый padding)
2026-05-01 20:39:01 +03:00
- Выбор оружия: Knife / Deagle / AK-47 / M4A4 / M4A1-S / AWP / Scout + **случайное оружие **
- Модификаторы: обычный / Headshot Only
- **Полное сохранение и восстановление инвентаря** после дуэли (оружие, патроны в магазине и резерве, гранаты, броня, шлем, дефузер, деньги)
2026-05-01 06:57:31 +03:00
- Таймер дуэли с ограничением по времени
2026-05-01 20:39:01 +03:00
- Интеграция XP через **lvl_ranks ** (награда за победу + штраф за rage-quit)
- **Forwards** для других плагинов: `AGD_OnDuelStarted` , `AGD_OnDuelFinished` , `AGD_OnDuelDraw`
2026-05-01 06:57:31 +03:00
- Beacon-индикатор (звук + частицы) вокруг дуэлянтов
2026-05-01 20:39:01 +03:00
- **Звуковые эффекты**: победителю — фанфара, проигравшему — death-камера
- **Файловый лог** всех дуэлей в `addons/sourcemod/logs/arcane_duels.log`
- **Статистика per-игрок** (wins / losses / draws / rage-quits / total XP) в файл `addons/sourcemod/data/arcane_duels_stats.cfg`
- Команды `!duelstats` и `!duel_top` — статистика и топ-10 игроков
- Админ-команда `!duel_forceend` для принудительной остановки дуэли
- ConVar `agd_duel_block_external` — другие плагины могут временно блокировать авто-дуэли (например, во время кастомного раунда)
2026-05-01 06:57:31 +03:00
## Зависимости
- [SourceMod ](https://www.sourcemod.net/ ) 1.10+
- [SDKHooks ](https://wiki.alliedmods.net/SDK_Hooks ) (входит в SourceMod)
- [lvl_ranks ](https://github.com/levans95/lvl_ranks ) — для начисления XP
## Установка
1. Скомпилировать `scripting/ArcaneGameDUELS_Core.sp`
2. Положить `.smx` в `addons/sourcemod/plugins/`
3. Положить `cfg/sourcemod/ArcaneGameDUELS_Arena.cfg` в `cfg/sourcemod/` на сервере
4. Перезапустить сервер или загрузить плагин: `sm plugins load ArcaneGameDUELS_Core`
## Конфиг арены
2026-05-01 20:39:01 +03:00
Путь: `cfg/sourcemod/ArcaneGameDUELS_Arena.cfg` (ключ-значения через KeyValues, на каждую карту своя секция).
2026-05-01 06:57:31 +03:00
2026-05-01 20:39:01 +03:00
## Команды игрока
| Команда | Описание |
|---|---|
| `!duel` / `sm_duel` | Информация о системе дуэлей |
| `!duelstats` / `sm_duelstats` | Личная статистика (победы/поражения/винрейт) |
| `!duel_top` / `sm_duel_top` | Топ-10 игроков по победам |
## Команды админа (флаг `z` / ROOT)
| Команда | Описание |
|---|---|
| `sm_duel_setspawn1` / `sm_duel_setspawn2` | Сохранить точку спавна #1/ #2 |
| `sm_duel_setzone1` / `sm_duel_setzone2` | Углы зоны ограничения |
| `sm_duel_savearena` | Сохранить арену для текущей карты |
| `sm_duel_reloadarena` | Перезагрузить конфиг арены |
| `sm_duel_arena_info` | Показать данные арены |
| `sm_duel_showzone` | Показать визуально зону |
| `sm_duel_debugsolo` | Соло-дебаг (без 2-го игрока) |
| `sm_duel_forceend` | Принудительно завершить активную дуэль |
2026-05-01 06:57:31 +03:00
## ConVars
| ConVar | По умолчанию | Описание |
|---|---|---|
2026-05-01 20:39:01 +03:00
| `agd_core_enable` | `1` | Включить дуэли |
| `agd_use_arena` | `1` | Использовать арену |
| `agd_duel_beacon` | `1` | Включить beacon |
| `agd_duel_prepare_time` | `10` | Время подготовки (сек) |
| `agd_duel_post_unfreeze_invuln` | `2.0` | Неуязвимость после анфриза |
| `agd_duel_win_money` | `1500` | Деньги за победу |
| `agd_duel_win_xp` | `100` | XP за победу |
| `agd_duel_time_limit` | `30` | Лимит дуэли (сек, 0 = нет) |
| `agd_weapon_allow_*` | `1` | Разрешить оружие (knife/deagle/ak47/m4a1/m4a1s/awp/scout) |
| `agd_duel_bypass_restrict_flags` | `1` | Дать ROOT-флаг во время дуэли (обход других плагинов) |
| `agd_zone_*` | разные | Параметры зоны ограничения |
| `agd_debug_allow_solo` | `1` | Разрешить sm_duel_debugsolo |
| `agd_duel_block_external` | `0` | **Внешняя блокировка ** (другой плагин может выставить в `1` ) |
| `agd_duel_ragequit_xp_penalty` | `50` | Штраф XP за выход во время дуэли |
| `agd_duel_stats_enable` | `1` | Сохранять статистику в файл |
| `agd_duel_log_enable` | `1` | Логировать дуэли в файл |
## Forwards / Natives
2026-05-01 06:57:31 +03:00
``` sourcepawn
2026-05-01 20:39:01 +03:00
forward void AGD_OnDuelStarted ( int player1 , int player2 ) ;
forward void AGD_OnDuelFinished ( int winner , int loser , int winnerXP , int loserXP ) ;
forward void AGD_OnDuelDraw ( int player1 , int player2 ) ;
native bool AGD_IsDuelActive ( ) ;
native bool AGD_IsBettingOpen ( ) ;
native bool AGD_GetDuelPlayers ( int & p1 , int & p2 ) ;
native int AGD_GetDuelParticipantXP ( int client ) ;
native int AGD_GetWinnerMoneyReward ( ) ;
native bool AGD_IsArenaReady ( ) ;
native bool AGD_IsClientInDuel ( int client ) ;
```
2026-05-01 06:57:31 +03:00
2026-05-01 20:39:01 +03:00
## Файлы данных
2026-05-01 06:57:31 +03:00
2026-05-01 20:39:01 +03:00
- **Статистика:** `addons/sourcemod/data/arcane_duels_stats.cfg` (KeyValues per Steam ID)
- **Лог:** `addons/sourcemod/logs/arcane_duels.log` (текстовый, формат `[YYYY-MM-DD HH:MM:SS] EVENT: detail` )
2026-05-01 06:57:31 +03:00
## Версия
2026-05-01 20:39:01 +03:00
`1.6.0` — Автор: deidara.dev
### Changelog
- **1.6.0**
- Жёлтый префикс `[DUELS]` (был красный)
- **Полное** сохранение/восстановление инвентаря: гранаты, шлем, дефузер, патроны в клипе и резерве
- `RefillWeaponAmmo` теперь знает 25+ оружий (все винтовки, SMG, дробовики, пистолеты, снайперки)
- Добавлен пункт «Случайное оружие» в weapon menu
- Новая админ-команда `sm_duel_forceend` — принудительно остановить любую активную/готовящуюся дуэль
- **Файловый лог** дуэлей `addons/sourcemod/logs/arcane_duels.log`
- **Статистика** per-игрок: wins/losses/draws/rage-quits + персистенция через `addons/sourcemod/data/arcane_duels_stats.cfg`
- Команды `!duelstats` (личная стата) и `!duel_top` (топ-10 по победам)
- **Rage-quit penalty**: XP-штраф (по cvar) и +1 поражение/rage-quit в стате
- **Звуковые эффекты**: победителю — фанфара, проигравшему — death-камера
- ConVar `agd_duel_block_external` — внешние плагины могут временно блокировать авто-дуэли
- Убран двойной reset state в Event_RoundStart
- Author = `deidara.dev` (был `OpenAI / havno` )
- **1.5.3** — предыдущая версия