Código Norecoil + Nospread
Code:
#define ADDR_WEAPONMGR 0x0018D917C //CShell -> ReloadAnimRatio
#define VAL_WEAPONCOUNT 1717
VOID WINAPI startNorecoil( int onOff )
{
DWORD CShell = ( DWORD ) GetModuleHandle( "CShell.dll" );
if( CShell != 0 )
{
DWORD weaponManager = *( DWORD * ) ( CShell + ADDR_WEAPONMGR );
if( weaponManager != 0 )
{
for( int i = 0; i < VAL_WEAPONCOUNT; i++ )
{
DWORD Weapon = *( DWORD * ) ( weaponManager + ( 4 * i ) );
if( Weapon != 0 )
{
for( int y = 0; y < 9; y++ )
{
if( onOff )
{
*( float * ) ( Weapon + 0x3D2C + ( y * 4 ) ) = 0.0f;
*( float * ) ( Weapon + 0x3D30 + ( y * 4 ) ) = 0.0f;
*( float * ) ( Weapon + 0x3D34 + ( y * 4 ) ) = 0.0f;
*( float * ) ( Weapon + 0x1480 + ( y * 4 ) ) = 0.0f;
*( float * ) ( Weapon + 0x15E8 + ( y * 4 ) ) = 0.0f;
*( float * ) ( Weapon + 0x088C + ( y * 4 ) ) = 0.0f;
*( float * ) ( Weapon + 0x09F4 + ( y * 4 ) ) = 0.0f;
*( float * ) ( Weapon + 0x3B4C + ( y * 4 ) ) = 0.0f;
*( float * ) ( Weapon + 0x3B50 + ( y * 4 ) ) = 0.0f;
*( float * ) ( Weapon + 0x3B54 + ( y * 4 ) ) = 0.0f;
*( float * ) ( Weapon + 0x1318 + ( y * 4 ) ) = 0.0f;
*( float * ) ( Weapon + 0x41A0 + ( y * 4 ) ) = 0.0f;
}
else
{
//Código para desligar a função ...
}
}
}
}
}
}
}
DWORD WINAPI startRountine( LPVOID )
{
static int recoil;
while( 1 )
{
if( GetAsyncKeyState( VK_F9 ) &1 )
recoil =! recoil;
startNorecoil( recoil );
Sleep( 100 );
}
return 0;
}
BOOL APIENTRY DllMain( HMODULE hModule, DWORD dwReason, LPVOID lpReserved )
{
DisableThreadLibraryCalls( hModule );
if( dwReason == DLL_PROCESS_ATTACH )
CreateThread( 0, 0, &startRountine, 0, 0, 0 );
return TRUE;
}