@request
Zombie, Player OPK Structs
Zombie, Player OPK Structs
Quote:
@request
Zombie, Player OPK Structs
if(nPlayerOPK==1)//NEED UPDATED STRUCTS ;)
{
for(int i = 0; i < 32; i++)
{
CPlayer* pPlayer = pBase->player[i];
pBase->plocal->pos1 = 0;
pBase->plocal->pos2 = 0;
pBase->plocal->pos3 = 0;
pPlayer->pos1 = 0;
pPlayer->pos2 = 0;
pPlayer->pos3 = 0;
*(float*)(dwPlayerPtr+OFS_NFD) = -9999999;
}
}
//Credits: ToxicLibrary
int iDIRECT3D(void)
{
DWORD hD3D, adr, *vTable;
// wait for the d3dx dll
hD3D=0;
do {
hD3D = (DWORD)GetModuleHandleA("d3d9.dll");
Sleep(100);
} while(!hD3D);
adr = FindPattern(hD3D, 0x128000, (PBYTE)"\xC7\x06\x00\x00\x00\x00\x89\x86\x00\x00\x00\x00\x89\x86", "xx????xx????xx");
if(adr){
memcpy(&vTable,(void *)(adr+2),4);
BYTE* DipCheck = (BYTE*)vTable[82];
pReset = (oReset) DetourE9((DWORD)vTable[16], (DWORD)myReset,12);
pPresent = (oPresent) DetourE9((DWORD)vTable[17], (DWORD)myPresent,5);
pDrawIndexedPrimitive = (oDrawIndexedPrimitive) DetourCreate85539323((DWORD)vTable[82], (DWORD)myDrawIndexedPrimitive,12);
while (1)
{
if(memcmp((void*)vTable[82],(void*)(PBYTE)"\x8B\xFF",2)== 0)
{
pDrawIndexedPrimitive = (oDrawIndexedPrimitive) DetourCreate85539323((DWORD)vTable[82], (DWORD)myDrawIndexedPrimitive,12);
}
Sleep(100);
}
return TRUE;
}
}
DWORD DetourCreate85539323( DWORD SrcVA, DWORD DstVA, DWORD Size )
{
DWORD DetourVA, dwProtect, i;
#define SIZEOF_JMP_REL 5
if ( SrcVA && DstVA && Size >= SIZEOF_JMP_REL )
{
DetourVA = (DWORD) VirtualAlloc(
NULL, Size + SIZEOF_JMP_REL,
MEM_COMMIT, PAGE_EXECUTE_READWRITE );
if ( DetourVA && VirtualProtect( (VOID*)SrcVA, Size, PAGE_EXECUTE_READWRITE, &dwProtect ) )
{
for ( i=0; i < Size; i++ ) {
*(BYTE*)( DetourVA + i ) = *(BYTE*)( SrcVA + i );
}
*(BYTE*)( DetourVA + Size + 0 ) = 0xE9;
*(DWORD*)( DetourVA + Size + 1 ) = ( SrcVA - DetourVA - SIZEOF_JMP_REL );
*(BYTE*)( SrcVA + 0 ) = 0xE9;
*(DWORD*)( SrcVA + 1 ) = ( DstVA - SrcVA - SIZEOF_JMP_REL );
VirtualProtect( (VOID*)SrcVA, Size, dwProtect, &dwProtect );
VirtualProtect( (VOID*)DetourVA, Size +
SIZEOF_JMP_REL, PAGE_EXECUTE_READ, &dwProtect );
return DetourVA;
}
}
return (0);
}
DWORD DetourE9( DWORD SrcVA, DWORD DstVA, DWORD Size )
{
/* detour type: jmp rel */
/* it has no effect if you specify size below SIZEOF_JMP_REL */
/* by croner */
DWORD DetourVA, dwProtect, i;
#define SIZEOF_JMP_REL 5
if ( SrcVA && DstVA && Size >= SIZEOF_JMP_REL )
{
DetourVA = (DWORD) VirtualAlloc(
NULL, Size + SIZEOF_JMP_REL,
MEM_COMMIT, PAGE_EXECUTE_READWRITE );
if ( DetourVA && VirtualProtect( (VOID*)SrcVA, Size, PAGE_EXECUTE_READWRITE, &dwProtect ) )
{
for ( i=0; i < Size; i++ ) {
*(BYTE*)( DetourVA + i ) = *(BYTE*)( SrcVA + i );
}
*(BYTE*)( DetourVA + Size + 0 ) = 0xE9;
*(DWORD*)( DetourVA + Size + 1 ) = ( SrcVA - DetourVA - SIZEOF_JMP_REL );
*(BYTE*)( SrcVA + 0 ) = 0xE9;
*(DWORD*)( SrcVA + 1 ) = ( DstVA - SrcVA - SIZEOF_JMP_REL );
VirtualProtect( (VOID*)SrcVA, Size, dwProtect, &dwProtect );
VirtualProtect( (VOID*)DetourVA, Size +
SIZEOF_JMP_REL, PAGE_EXECUTE_READ, &dwProtect );
return DetourVA;
}
}
return (0);
}
noQuote: