Initial commit: arcanegame-duels plugin with documentation and config

This commit is contained in:
deidara
2026-05-01 06:57:31 +03:00
commit 56ea8aa4cd
3 changed files with 2309 additions and 0 deletions
+82
View File
@@ -0,0 +1,82 @@
# ArcaneGameDUELS Core
Система дуэлей 1v1 для CS:GO серверов на SourceMod. Поддерживает арену, зону ограничения, выбор оружия, модификаторы и интеграцию с системой XP (lvl_ranks).
## Функции
- Дуэли **1v1** между любыми двумя игроками
- Автоматический запуск дуэли при обнаружении двух игроков на сервере
- **Арена**: фиксированные точки спавна из конфига `ArcaneGameDUELS_Arena.cfg`
- **Зона ограничения**: дуэлянты не могут покинуть арену (настраиваемый padding)
- Выбор оружия: Deagle, AK-47, M4A4, M4A1-S, AWP, Scout, Knife
- Модификаторы: обычный / NoZoom / Headshot Only
- Сохранение и восстановление инвентаря и здоровья после дуэли
- Таймер дуэли с ограничением по времени
- Интеграция XP через **lvl_ranks** (награда за победу)
- **Forwards** для других плагинов: `OnDuelStarted`, `OnDuelFinished`, `OnDuelDraw`
- Beacon-индикатор (звук + частицы) вокруг дуэлянтов
## Зависимости
- [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`
## Конфиг арены
Путь: `cfg/sourcemod/ArcaneGameDUELS_Arena.cfg`
```
// Позиция спавна игрока 1
sm_duels_arena_spawn1_x "0.0"
sm_duels_arena_spawn1_y "0.0"
sm_duels_arena_spawn1_z "0.0"
sm_duels_arena_spawn1_yaw "0.0"
// Позиция спавна игрока 2
sm_duels_arena_spawn2_x "200.0"
sm_duels_arena_spawn2_y "0.0"
sm_duels_arena_spawn2_z "0.0"
sm_duels_arena_spawn2_yaw "180.0"
```
## ConVars
| ConVar | По умолчанию | Описание |
|---|---|---|
| `sm_duels_enable` | `1` | Включить/выключить дуэли |
| `sm_duels_use_arena` | `1` | Использовать арену |
| `sm_duels_beacon` | `1` | Включить beacon у дуэлянтов |
| `sm_duels_prepare_time` | `5` | Время подготовки перед дуэлью (сек) |
| `sm_duels_win_xp` | `50` | XP за победу |
| `sm_duels_time_limit` | `120` | Лимит времени дуэли (сек) |
| `sm_duels_zone_enable` | `1` | Включить зону ограничения |
| `sm_duels_zone_grace` | `3.0` | Время предупреждения перед кикбеком (сек) |
| `sm_duels_allow_deagle` | `1` | Разрешить Deagle |
| `sm_duels_allow_ak47` | `1` | Разрешить AK-47 |
| `sm_duels_allow_awp` | `1` | Разрешить AWP |
| `sm_duels_debug_solo` | `0` | Debug: одиночный режим (без второго игрока) |
## Forwards (для других плагинов)
```sourcepawn
// Дуэль началась
forward void OnDuelStarted(int player1, int player2);
// Дуэль завершилась
forward void OnDuelFinished(int winner, int loser);
// Дуэль завершилась ничьей
forward void OnDuelDraw(int player1, int player2);
```
## Версия
`1.5.3` — Автор: OpenAI / havno
+26
View File
@@ -0,0 +1,26 @@
// ArcaneGameDUELS Arena Configuration
// Укажите координаты точек спавна арены для текущей карты.
// Координаты можно узнать командой: getpos (в консоли CS:GO от имени игрока)
// ── Спавн игрока 1 ────────────────────────────────────────────
sm_duels_arena_spawn1_x "0.0"
sm_duels_arena_spawn1_y "0.0"
sm_duels_arena_spawn1_z "64.0"
sm_duels_arena_spawn1_yaw "0.0"
// ── Спавн игрока 2 ────────────────────────────────────────────
sm_duels_arena_spawn2_x "300.0"
sm_duels_arena_spawn2_y "0.0"
sm_duels_arena_spawn2_z "64.0"
sm_duels_arena_spawn2_yaw "180.0"
// ── Зона арены (опционально, используется если sm_duels_zone_enable = 1) ─
// Минимальная точка зоны (нижний левый угол)
sm_duels_arena_zone_min_x "-200.0"
sm_duels_arena_zone_min_y "-200.0"
sm_duels_arena_zone_min_z "0.0"
// Максимальная точка зоны (верхний правый угол)
sm_duels_arena_zone_max_x "500.0"
sm_duels_arena_zone_max_y "200.0"
sm_duels_arena_zone_max_z "300.0"
File diff suppressed because it is too large Load Diff