Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Вопрос Apex Legends — Мерцание RCS и десинхрон при записи через Kernel

Sloppy
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
13 Фев 2026
Сообщения
650
Реакции
17
Kernelmode RCS — это всегда секс с античитом и предикшеном, но тут ситуация совсем странная. Пытаюсь реализовать компенсацию отдачи через прямую запись в память, но результат пока максимально далекий от идеала: либо вью-англы фликчут как не в себя, либо пули живут своей жизнью отдельно от прицела.

Техническая база (билды актуальные):
Код:
Expand Collapse Copy
m_vecPunchBase_Angle = 0x2510
m_vecPunchWeapon_Angle = 0x2520
m_vecPunchWeapon_AngleVel = 0x252C
view_angles = 0x2600 (8 bytes, pitch + yaw)

Что было протестировано и какие побочки вылезли:
  1. Зануление 12 байт в m_vecPunchWeapon_Angle при зажатой ЛКМ — прицел дрожит, но ствол все равно ползет вверх.
  2. Зануление всего блока в 40 байт (Base + Weapon Angle + AngleVel) — локально прицел стоит как вкопанный, но визуально пули все равно улетают по паттерну отдачи. При отпускании кнопки прицел резко прыгает в «истинное» положение.
  3. Компенсация дельты (view_angles -= punch - prev_punch) — дичайший фликер по горизонтали.
  4. Попытки играть с Pitch (view[0] -= punch[1] - prev[1]) — вертикальная отдача становится в 10 раз сильнее. Похоже на нетипичный порядок осей.

Самое неприятное то, что даже если «заморозить» прицел в одной точке через запись в память, трассировка пуль (bullet tracing) все равно идет по кривой отдачи. Это наталкивает на мысль, что у игры есть отдельный авторитарный стейт для направления стрельбы, который не зависит напрямую от 0x2600.

Плюс порядок компонентов Vec3 в Apex явно отличается от классического Source-движка (Pitch, Yaw, Roll). Любая вариация знаков или осей выдает разные артефакты, но чистого результата добиться не получается.

Есть подозрение, что в текущих билдах Apex просто писать в view_angles недостаточно, так как движок перезаписывает или игнорирует эти правки для самого вектора выстрела. Если сервер считает траекторию по скрытому стейту, то простая запись в память только ломает интерполяцию картинки, не меняя физику разлета.
 
Назад
Сверху Снизу