Вынес хук девайса из своего шаблона аси-плагинов в отдельный модуль и спешу поделиться им. В отличие от других хуков dx9, данный хук можно выгружать даже такой ситуации:
Код:
hook->hook->этот hook->hook->game
. Конечно такая выгрузка не обходится бесплатно, мы жертвуем примерно 150 байт памяти при выгрузке. Данная память остается не выгруженной для работы прослойки, поддерживающей передачу вызовов между хуками, которые располагались до и после d3d9hook.
Как создать хук?
C++:
Код:
auto
hook
=
new
d3d9hook
(
*
(
IDirect3DDevice9
*
*
)
0xC97C28
)
;
// Код для GTA: SA. В других играх надо искать указатель на девайс
Необходимо добавить папки SRSignal и SRHookVtable в глобальную область инклюдов, что бы содержащиеся в них файлы можно было инклюдить через угловые скобкиКак использовать без CMake и не ебаться с видимостью инклюдов?
C++:
Код:
// Заменить эти строки в файле d3d9hook.h:
#include
#include
// На эти:
#include "SRHookVtable/SRHookVtableExt.hpp"
#include "SRSignal/SRSignal.hpp"