Статус: Логика карты и зон исправлена в исходниках; командный захват ещё требует игрового прогона.
Во фракционном захвате игроку важно доверять карте. Если цвет клетки показывает одного владельца, а сервер считает персонажа в соседней зоне, результат битвы становится непонятным. Мы нашли два независимых расхождения и исправили их в коде.
Цвет каждой территории
Сервер хранит зоны с собственными номерами, начинающимися с единицы. Клиентский экран раньше рисовал цвет по позиции зоны в массиве, а не по её номеру. Из-за этого визуальный владелец мог «съехать» на соседнюю клетку. Передача цветов теперь привязана к фактическому ID территории, так что порядок элементов списка не должен менять изображение карты.
Где на самом деле проходит граница
Геометрия зоны тоже считалась иначе, чем показывала карта: координата центра использовалась как угол прямоугольника. Это могло смещать серверную границу примерно на половину клетки. Теперь прямоугольник строится относительно центра, и попадание игрока в зону должно согласоваться с визуальной схемой.
После выхода из зоны на стадии защиты игрок снова должен получать актуальный HUD при возвращении. При этом правило основной стадии войны сохранено: выход там, где режим считает его выбыванием, не превращается в бесплатную возможность вернуться.
Проверка с участниками
Следующий тест — начать захват в центре конкретной клетки, сверить её цвет, номер и фактическую территорию, затем пройти выход и возвращение на обеих стадиях. Нужны несколько игроков и настоящий игровой клиент; статическая проверка кода не может подтвердить весь ход фракционного события.