работа автотим баланса
22 час. назад
naruto

Создатель

Рейтинг: 1222

Сообщений: 397

Спасибок: 165

Полная логика работы AutoTeamBalance v3.0

1. Когда срабатывает баланс

Проверка происходит в конце каждого раунда (с задержкой 3 сек). Баланс срабатывает если:

Условие Значение Пример
Разница игроков ≥ 2 и > 1 CT 7 vs T 4
Серия побед ≥ 3 подряд CT выиграли 3 раунда
Разница счёта ≥ 3 Счёт 5-2
Соотношение сил > 1.5 Force CT 15000 vs T 10000

Кулдаун: минимум 2 раунда между балансами.


2. Направление переноса

Если численный дисбаланс (разница > 1):
    → Из БОЛЬШЕЙ команды в меньшую

Иначе если разница счёта:
    → Из ВЫИГРЫВАЮЩЕЙ команды в проигрывающую

Иначе (равный счёт):
    → Из команды с БОЛЬШЕЙ силой в слабую

3. Сколько игроков переносить

При численном дисбалансе:

Переносов = (разница + 1) / 2, минимум 2, максимум 4
Пример: 8 vs 4 = разница 4 → (4+1)/2 = 2 переноса

При разнице счёта:

Разница счёта Переносов
3-4 2
5-7 3
8+ 4

4. Выбор кандидатов для переноса

Порядок переносов:

  1. Первый перенос → выбирается СИЛЬНЫЙ игрок (максимальный Force)
  2. Последующие → выбираются СРЕДНИЕ игроки (ближе к целевому Force)

Кого НЕ переносят:

  • Админы с иммунитетом (флаг i)
  • Недавно перенесённые (< 120 сек или < 2 раундов назад)
  • Кто уже переносился 3 раза за карту
  • Некалиброванные (если включена защита)

Приоритет: мёртвые игроки (+5000 к скору для сильных, +1000 для средних)


5. Остановка переносов

Цикл переносов останавливается если:

  • Команды сравнялись по численности (from ≤ to)
  • Силы сбалансированы (ratio между 0.7 и 1.4)
  • Нет подходящих кандидатов
  • Достигнут максимум переносов (4)

6. Расчёт силы игрока (Force)

Force = EffectiveSkill + SessionBonus

EffectiveSkill = Skill из БД
    + VIP бонус (если VIP): Skill × 1.2 + 200

SessionBonus = (K/D - 1.0) × 100
    Пример: K/D 2.0 → +100
    Пример: K/D 0.5 → -50
    Если 0 смертей: +50 за каждый килл

7. Пример работы

Ситуация: CT 8 - T 8, счёт 7-0 в пользу CT

1. Триггер: Score diff 7 >= 3 ✓
2. Направление: CT выигрывает → кидаем из CT в T
3. Количество: Разница 7 → 3 переноса
4. Выбор:
   - Перенос #0: СИЛЬНЫЙ игрок из CT (Force 2500) → T
   - Перенос #1: СРЕДНИЙ игрок (Force 1200) → T  
   - Перенос #2: СРЕДНИЙ игрок (Force 900) → T
5. Проверка: CT 5 vs T 11? Стоп, from < to
   Реально: CT 5 vs T 8 (если было 8-8 изначально)
6. Итог: перенесли 3 игрока
7. Следующий баланс: через 2 раунда

8. Настройки (CVars)

CVar Значение Описание
atb_enabled 1 Вкл/выкл
atb_minplayers 4 Мин. игроков для баланса
atb_protect_top 0 Защита топ N (0 = никого)
atb_protect_time 120 Защита после переноса (сек)
atb_protect_rounds 2 Защита раундов после переноса
atb_max_switches 3 Макс переносов за карту
atb_balance_cooldown 2 Раундов между балансами
atb_max_score_diff 3 Триггер по разнице счёта
atb_max_winstreak 3 Триггер по серии побед
atb_immunity 1 Админ иммунитет
Отредактировал: naruto, 22 час. назад
Спасибо сказали: kiskis, Тигран Хачатрян, D.A.M.N.E.D

Последняя активность

Тема: работа автотим баланса

Автор: naruto

Дата: 22 час. назад

Тема: Бан не понятно за ,что

Автор: D.A.M.N.E.D

Дата: 18 января 2026 г, 20:45

Тема: Заявка на администрацию сервера

Автор: night knight

Дата: 12 января 2026 г, 13:55

Тема: Предложения по улучшению

Автор: D.A.M.N.E.D

Дата: 11 января 2026 г, 12:14

Тема: Иерархия на проекте

Автор: Spotlight

Дата: 22 декабря 2025 г, 15:48




SvaRoG-GaMe.COM
Яндекс.Метрика