# Пре-альфа 0.7.9 — дополнительная выборка и диагностика навигации

19.10.2026. Рабочая папка Project_Psyz0r_bot. Отчёт не объявляет победу над Xaero 5 или завершение контроля карты.

## Что разобрано

200 сохранённых оригиналов вне прежних top500 выбраны по SHA-256: [манифест](training/RESERVE200_079_MANIFEST.json). Это новый разбор запаса, а не новые скачивания. У всех 200 заново извлечены snapshots и metadata через UDT. Всего в двух выборках 700 уникальных оригиналов. Итоговая таблица статистики присутствует не в каждом файле.

В новой выборке 127 итоговых 1v1-записей. В 22 победитель и лидер damageGiven различаются. Строки победителя и лидера урона считаются отдельно; группы пересекаются и не складываются как независимые наблюдения. Лидер урона определяется только при наличии обоих показателей в двух строках игроков; ничья отмечается отдельно. Неизвестный победитель не назначается по урону. [Полные данные](training/RESERVE200_RESEARCH_079.json).

## Стрельба: общее среднее по доступной статистике 700 оригиналов

| Оружие | Победитель · среднее / N | Лидер урона · среднее / N |
|---|---:|---:|
| MG | 27.46% / 239 | 28.05% / 211 |
| SG | 26.22% / 110 | 28.00% / 113 |
| Rocket | 31.09% / 296 | 32.28% / 276 |
| LG | 33.97% / 296 | 35.03% / 276 |
| Rail | 44.58% / 296 | 46.42% / 276 |
| Plasma | 10.67% / 271 | 11.08% / 248 |
| GL · справочно | 4.76% / 292 | 4.65% / 272 |

N — строки match/player с shots>0 и доступной accuracy, а не число всех демок. Нулевые shots исключаются, реальная нулевая accuracy при стрельбе сохраняется. Это среднее заявленной accuracy, не damage/shot; shotgun pellets и splash не равнозначны hitscan. Для перчатки/BFG достаточных наблюдений нет. GL не получает новых настроек наведения. Профиль стрельбы 0.7.8 сохранён: новые статистические средние не являются измерением достигнутой точности бота.

## Движение и прицел

Доступные POV победителя/лидера урона найдены в 96 из 200 оригиналов и дали 37 стартов после остановки, из них 18 с полным четырёхсекундным окном. Медианы: скорость отрыва 371.223 UPS, первый воздушный пик 494.553, второй 575.893 UPS. Лучший полный кандидат — 617.776 UPS, demo 6917, client 2, takeoff 109375 ms. Это кандидат наблюдения; физика после конвертации протокола и достижимость такого исполнения нашим контроллером не доказаны. Эталон старой выборки не заменяется меньшим максимумом небольшой новой выборки.

В выбранных LG-эпизодах 963425 из 2077450 ms — боковое движение (46.4%), 1600775 ms — на земле (77.1%), 1440450 ms — yaw-rate ≤60°/с (69.3%). Эти доли описывают наблюдаемые кадры во время огневых окон, а не восстановленные WASD. Они поддерживают плавное сопровождение и работу ногами; не доказывают причинную связь конкретного стрейфа с попаданием. Шум прицела не увеличен.

## Что исправлено в коде

1. Сторож реального перемещения теперь работает при target=-1, если штатный AI выдаёт forward/right. Раньше возврат к stock AAS отключал эту проверку вместе с нашей целью. Мёртвый бот, свой RJ и отсутствие цели вместе с отсутствием команды движения не запускают маршрутное восстановление.
2. Оба сторожа одинаково определяют короткое ожидание: distance<64u, |height|<40u, предмет ещё недоступен, срок появления в пределах 3с. Прежний goal-watch допускал 96u без отдельной проверки высоты. Это фильтр ложного ожидания, не точная геометрия pickup volume.
3. PSYZ_NAV дополнен forward/right/up/buttons, target/route/armor/escape. Теперь неподвижность при команде идти отличима от остановки без команды; старые логи этого не подтверждают.
4. Найденная локальная строка с посторонними символами внутри RJ-условия сохранена в out/reserve200-079/local-edit-backup и исправлена. Сам RJ-контроллер не переписан.

## Противоречия и оставшиеся причины остановок

- «Всегда прийти на предмет» не означает ждать непоявившийся ресурс где угодно. Приход, короткое ожидание и тупик маршрута — разные состояния.
- Возврат к штатному AAS не гарантирует выход из угла: сам stock может снова выбрать тот же сложный проход. Без BSP trace нельзя объявлять случайный прыжок/сайдстеп безопасным исправлением.
- Абсолютная скорость ps при неизменной позиции не доказывает перемещение. Новый лог хранит и позицию, и команды.
- Неподвижные интервалы включают бой, ожидание и игровые переходы. Исторический [аудит кандидатов](training/MOTION_BASELINE_078.json) нельзя выдавать за точный счёт технических зависаний или сравнивать целиком с одной короткой новой дуэлью.
- Полный стек ограничивает возможность/полезность повторного подбора. Свободный красный при armor≈200 — не тот же сценарий, что пропуск красного при низкой броне.
- Точные таймеры уже читаются из engine; это ещё не ETA маршрута. Прямое расстояние не становится проверенным p90 пути через стены/этажи.
- Банк дебютов остаётся кандидатом исполнения. Частота последовательности в демках не доказывает её оптимальность для каждого spawn и оружия соперника.
- Полное копирование мыши/клавиш и обучение скрытому положению противника не заявляются. Новые данные не включают WH или подмену попаданий.

## Проверки и развёртывание

Windows: 17/17 CTest; Python: 127/127. Linux: сборка retail-адаптера и 5/5 групп native/nav/LG/combo/arrival. Отдельно проверены: stock-only тупик без item-цели, намеренный idle, смерть, RJ, разница этажей и просроченное/дальнее ожидание.

0.7.9 установлена на 27961 после резервной копии и SHA-проверки. Основной 27960 PID 415921 сохранён. Профиль Xaero-derived, чат, weapon weights и aim-настройки не менялись. [Квитанция установки](training/PREALPHA_079_DEPLOYMENT.json). Для исходников и результатов используется отдельный серверный архив; он не меняет runtime.

Пятиминутная дуэль с Xaero 5 проводится как диагностика с проверкой обоих участников и прекращением команд при появлении человека. Её результат добавляется отдельно; один короткий матч не доказывает превосходство в серии. Для человеческого теста проверять ранний RA/Mega при слабом стеке, выход из стен и реальный разгон первых прыжков. Демку сохранять вместе с версией и серверным логом.


## Результат первого диагностического матча

Первый матч дошёл до `Timelimit hit`: 5 минут, Psyz0r **4:9** Xaero 5. Оба бота проверены в status. До первого timelimit у Psyz0r 77 подтверждённых подборов, RA=3, Mega=3, YA=2; у Xaero RA=0, Mega=4, YA=11. Было 2 stock escape, fatal AI-ошибок нет. Это проигрыш, не подтверждение превосходства или устойчивого контроля. Сервер затем автоматически начал реванш; его статистика и intermission исключены из этих значений.

Новая диагностика показала, что позиция `-288,-400,592` с нулевыми командами возникает после timelimit — это intermission-камера, не доказанное застревание у стены. Финальная сборка 0.7.9 отключает Goal/Move-надстройки при ps.pm_type!=0 и записывает pmtype. Это исправление добавлено после данного матча; SHA протестированного матча сохранён отдельно в PREALPHA_079_TRIAL.json и не подменён SHA финального runtime. Для финальной сборки выполняется отдельная 30-секундная проверка разминки, не повторная полная дуэль.

Следующее игровое узкое место: восстановление стека и оружия при высоком приоритете основных предметов. В этом матче малые/жёлтые ресурсы оставались у Xaero; наличие точного таймера не превращает маршрут в хороший цикл. Не менять сразу точность и маршруты под один счёт — нужен следующий сопоставимый прогон.

## Сайт и автономная пересылка

Заголовок Pracc Room Server BOT; 280 правил, интерактивное дерево с переносом узлов, масштабированием и поиском. Шесть дополнительных гистограмм точности, раздельные группы победителя/лидера урона, сравнение 0.7.6/0.7.7/0.7.8/0.7.9. 0.7.7 явно отмечена офлайн-этапом. Графики разработки не выдают рост количества правил за рост силы.

Фон — одна фиксированная область без повторений; прокручивается контент. Анимации отключаются по prefers-reduced-motion. Мобильный HTML содержит данные, JS/CSS и вложенные источники; APK не требуется. ZIP включает HTML, JSON и инструкции. Реальный Android в этом этапе не проверялся. Статические/VM-проверки и чистая математика карты выполняются отдельно от браузерной проверки; доступного браузера для визуального теста нет.
