- 150
- 17
Может есть где то пример как отрендерить что то в игре ?
Используя IDirect3DDevice9
Нашел был такое:
Но игра вылетает почему то.
Еще нашел такой способ:
Но тут нет даже IDirect3DDevice9.
Помогите пожалуйста
Используя IDirect3DDevice9
Нашел был такое:
Код:
typedef IDirect3DDevice9 *(*RwD3D9GetCurrentD3DDevicePtr)();
RwD3D9GetCurrentD3DDevicePtr fpRwD3D9GetCurrentD3DDevice = (RwD3D9GetCurrentD3DDevicePtr)0x007F9D90;
void InitRender()
{
IDirect3DDevice9 *pDevice = fpRwD3D9GetCurrentD3DDevice();
if (pDevice)
{
pDevice->ShowCursor(1);
Debug("Cursor");
}
}
Еще нашел такой способ:
Код:
typedef void (*Render2dStuffPtr)();
// Pointer to Render2dStuff function
Render2dStuffPtr fpRender2dStuff = (Render2dStuffPtr)0x0053E230;
// This function will be called by SA after hook is installed
void MyDrawFunction()
{
// first draw SA's 2d stuff
fpRender2dStuff();
// draw own stuff here using d3d device or SA functions
}
// This function should typically be called in DllMain
void SetupMyDrawFunctionHook()
{
DWORD oldProtect;
DWORD *workAddress = (DWORD *)0x0053EB13; // Pointer to the call to Render2dStuff
// change protection/permissions to allow modification to instructions
VirtualProtect(workAddress, 4, PAGE_READWRITE, &oldProtect);
// modify instruction with a pointer to our draw function
*workAddress = (DWORD)&MyDrawFunction - (DWORD)(workAddress + 1);
// restore original protection/permissions to allow code to be executed again
VirtualProtect(workAddress, 4, oldProtect, NULL);
}
Помогите пожалуйста