Reverse и Patching GTA SA

punkochel

Известный
Автор темы
4
5
Необходимо выпилить из GTA SA весь стандартный HUD, добавить транспорт, объекты и прочие asset's. Так же нужно добавить шейдеры и прочие технологии изменения графики.
Изначально я действительно начал с помощью CheatEngine искать адреса вклиниваться в EndScene DirectX. То есть взял простенький xenos и начал играться. Потом дело дошло до оверлея на WinAPI + CEF.
Можно как-то это сделать проще? Наверняка уже есть инструменты для выполнения подобных работ. Как я понял, нужно использовать Plugin SDK для создания ASI-скриптов и ASI-loader для их внедрения.
Но чем рисовать GUI? Есть какая-то возможность через ASI скрипты внедряться в DirectX рендер? В основном используете Dear ImGui? Есть ли возможность для Web GUI, или нужно для такого в любом случае использовать CEF + WinAPI окно для создания оверлея?

UPD: Подскажите пожалуйста с чего начать?
 
Последнее редактирование:

RedHolms

Известный
Проверенный
624
383
Просто хукаешь нужные функции и дальше ебешься как захочешь.
Очень полезным будет репо с почти полностью декомпилированным кодом гташки: https://github.com/gta-reversed/gta-reversed

CEF к игре подключается относительно легко. Единственное, если не хочется пихать libcef.dll в корень игры, придётся сделать биндинги и брать функции на рантайме.

Для отрисовки обычно подменяют IDirect3DDevice9 и рисуют в функции Present(). Я всегда поменял его в хуке после вызова функции CGame::InitialiseRenderWare() игрой.

Для чего-то серьёзного ImGui я бы не рекомендовал использовать, лучше уже подвязать цеф. Уже есть реализация на расте ( https://github.com/Pycckue-Bnepeg/samp-cef ), но если честно я бы энивей советовал переписать, как я и сделал, потому что там довольно старая версия цефа