void SetLocal( D3DXVECTOR3 Pos)
{
DWORD dwAdress;
dwAdress = (DWORD)GetModuleHandleA("Clientfx.fxd" );
DWORD dwMyLocal = *(DWORD*)( dwAdress + 0x66F34 );
if( dwMyLocal == NULL )
return;
*(float*)( dwMyLocal + 0xCC ) = Pos.y;
*(float*)( dwMyLocal + 0xD0 ) = Pos.z;
*(float*)( dwMyLocal + 0xC8 ) = Pos.x;
}
void SetLocalPlayerPosition( D3DXVECTOR3 Pos )
{
dwClientFxEntry = (DWORD)GetModuleHandle( "Clientfx.fxd" );
DWORD dwClass = *(DWORD*)( dwClientFxEntry + 0x66F34 );
if( dwClass == NULL )
return;
*(float*)( dwClass + 0xC8 ) = Pos.x;
*(float*)( dwClass + 0xCC ) = Pos.y;
*(float*)( dwClass + 0xD0 ) = Pos.z;
}
void Ghostmod (LPDIRECT3DDEVICE9 pDevice)
{
float PlayerPitch, PlayerYaw;
pPlayerManager = *(cPlayerMgr**)0x377DEA34;
PlayerPitch = pPlayerManager->Pitch;
PlayerYaw = pPlayerManager->Yaw;
bool Forward = (GetAsyncKeyState('I') & 0x8000) != 0;
bool Backward = (GetAsyncKeyState('K') & 0x8000) != 0;
bool Left = (GetAsyncKeyState('J') & 0x8000) != 0;
bool Right = (GetAsyncKeyState('L') & 0x8000) != 0;
if (Forward || Backward || Left || Right)
{
if (Forward || Backward)
{
float Sign = (Forward ? 1.0f : -1.0f);
Posx += Sign * 03.0f * sinf(PlayerYaw);
Posy += Sign * 03.0f * sinf(-PlayerPitch);
Posz += Sign * 03.0f * cosf(PlayerYaw);
Sleep(1);
}
if (Left)
{
Posx += 03.0f * sinf(PlayerYaw - (M_PI / 2.0f));
Posy += 0;
Posz += 03.0f * cosf(PlayerYaw - (M_PI / 2.0f));
Sleep(1);
}
if (Right)
{
Posx += 03.0f * sinf(PlayerYaw + (M_PI / 2.0f));
Posy += 0;
Posz += 03.0f * cosf(PlayerYaw + (M_PI / 2.0f));
Sleep(1);
}
}
SetLocalPlayerPosition(D3DXVECTOR3(Posx, Posy, Posz));
}