Code:
void speeds()
{
DWORD dwPlayerPtr = *(DWORD*)ADR_PLAYERPOINTER;
if(dwPlayerPtr != 0)
{
if(GetAsyncKeyState(VK_F5) &1<< 0xF)
{
*(float*)(OFS_Speed) = 0.0f;
}
if(GetAsyncKeyState(VK_F6) &1<< 0xF)
{
*(float*)(OFS_Speed) =97.0f;
}
if(GetAsyncKeyState(VK_F7) &1<< 0xF)
{
*(float*)(OFS_Speed) =150.0f;
[COLOR="red"]{[/COLOR][COLOR="Green"]// Vielleicht machst du daraus mal } o0[/COLOR]
if(GetAsyncKeyState(VK_F8) &1<< 0xF)
{
*(float*)(OFS_Speed) = 250.0f;
}
if(GetAsyncKeyState(VK_F9) &1<< 0xF)
{
*(float*)(OFS_Speed) = 350.0f;
[COLOR="Red"]{[/COLOR][COLOR="Green"]// Vielleicht machst du daraus mal } o0[/COLOR]
if(GetAsyncKeyState(VK_F10) &1<< 0xF)
{
*(float*)(OFS_Speed) = 500.0f;
}
if(GetAsyncKeyState(VK_F11) &1<< 0xF)
{
*(float*)(OFS_Speed) = 750.0f;
}
[COLOR="Red"]}[/COLOR][COLOR="SeaGreen"]// Fehlt.[/COLOR]
Btw der bessere Weg würde ungefähr so aussehen :
Code:
#define ADR_Speed 0x8F37B4
int speedstufe;
void speeds()
{
if( (GetAsyncKeyState(VK_F5)&1) && ( speedstufe < 7 ) )
{
speedstufe++;
}
if( (GetAsyncKeyState(VK_F6)&1) && ( speedstufe != 0 ) )
{
speedstufe--;
}
*(float*)(ADR_Speed) = (97 * speedstufe);
}
Mit F5 geht die Geschwindigkeit hoch - Mit F6 geht die Geschwindigkeit runter. :o
------------------------------------------------------------------------------
Zu dem Code:
Code:
VOID Hook(VOID)
{
hD3D9Dll = GetModuleHandleA("d3d9.dll");
do {
hEhSvc = GetModuleHandleA("EhSvc.dll");
Sleep(20);
}
while(!hD3D9Dll);
Sleep(100);
DWORD * VtablePtr = FindDevice((DWORD) hD3D9Dll, 0x128000);
if(VtablePtr == NULL)
{
MessageBoxA(NULL, "D3DDevice Pointer Not Found!", 0, MB_OK);
ExitProcess(0);
}
DWORD * VTable = 0;
*(DWORD *) &VTable = *(DWORD *) VtablePtr;
pReset = (oReset)cDetour((Dd)VTable[16],(Dd)myReset,5);
pPresent = (oPresent)cDetour((DWORD)VTable[17],(DWORD)myPresent,5);
pDrawIndexedPrimitive = (oDrawIndexedPrimitive) B8Detours((DWORD)VTable[82], (DWORD)myDrawIndexedPrimitive, 7);
while(1)
{
if(memcmp((void*)VTable[82],(void*)(PBYTE)"\x8B\xFF",2)== 0)
{
pDrawIndexedPrimitive = (oDrawIndexedPrimitive) B8Detours((DWORD)VTable[82], (DWORD)myDrawIndexedPrimitive, 7);
}
Sleep(458.50);
}
return ;
}
Erstmal muss ich sagen:
Stimmt nicht.
Er Hookt erst die DrawIndexedPrimitive und in der Schleife überprüft er ob die DrawIndexedPrimitive noch gehookt ist.
Falls sie nicht mehr gehookt ist , hookt er sie neu.
Ich frag mich zwar was dir das bringt:
aber egal.
Versuch mal dieses Rehook:
Code:
do{
if(memcmp((void*)VTable[82],(void*)(PBYTE)"\x8B\xFF",2)== 0)
{
pDrawIndexedPrimitive = (oDrawIndexedPrimitive) B8Detours((DWORD)VTable[82], (DWORD)myDrawIndexedPrimitive, 7);
}
Sleep(2000);
}while(TRUE);
Habe es noch nicht getestet aber sollte klappen. :)