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

Вопрос Deadlock — Реализация Magic Bullet и оффсеты CUserCmd

Sloppy
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
13 Фев 2026
Сообщения
507
Реакции
13
Разбираем нутрянку Deadlock под интерал. Суть проблемы в следующем: Silent Aim завезти получилось через хук сетапа камеры в предикшене (проверено через брейкпоинт на питче). Скрытый аим пашет — просто подменяем pitch/yaw во время тика предикшена и возвращаем всё назад.

Но вот с Magic Bullet (стрельбой из-за укрытий через смещение ориджина) возник затык. Попытки просто записать в камеру (cam+0x38/3C/40) или в
Код:
Expand Collapse Copy
m_vecAbsOrigin
во время предикшена ни к чему не привели — пули всё равно летят из дефолтной точки.

Есть подозрение, что смещение позиции камеры зашито где-то в саб-месседжах camera info внутри CUserCmd. Проблема в том, что найти чистый CreateMove для хука сейчас тот еще квест — судя по всему, логика уехала в цепочку диспетчеров
Код:
Expand Collapse Copy
CInputService
внутри
Код:
Expand Collapse Copy
engine2.dll
, а не
Код:
Expand Collapse Copy
client.dll
. Стек вызовов предикшена проходит через networkgameclientbase, но где именно инициализируется shoot origin из Protobuf-сообщения — вопрос открытый.

Собственно, что нужно понять:
  1. Какое конкретно поле в
    Код:
    Expand Collapse Copy
    CBaseUserCmdPB
    (или вложенных структурах) отвечает за точку спавна пули?
  2. Как правильно собрать
    Код:
    Expand Collapse Copy
    TraceFilter
    для
    Код:
    Expand Collapse Copy
    TraceShape
    ? Сейчас трассировка через стены выдает fraction 1.0, а фильтр по оффсету +0x08 явно просит vtable или колбэк, который не получается корректно сконструировать.

Если кто-то уже копал проты в Deadlock или плотно сидел на реверсе Source 2 (CS2 стайл), накидайте идей по поводу векторов в CUserCmd. Зацикливаться на старых методах смысла нет, тут явно надо лезть в сетевой стек.
 
Назад
Сверху Снизу