Code:
#include
#define Base_ptr 0xA77970
bool g_bNoRecoilSpr = false;
DWORD GetPlayerBase()
{
DWORD Base = *(DWORD*)Base_ptr;
if(!Base)
return NULL;
Base = *(DWORD*)(Base+0x30);
if(!Base)
return NULL;
Base = *(DWORD*)(Base+0x1c);
if(!Base)
return NULL;
return Base;
}
void NoRecoilSpr()
{
DWORD WeaponBase = NULL;
if(g_bNoRecoilSpr == true)
{
WeaponBase = GetPlayerBase();
if(WeaponBase)
{
WeaponBase = *(DWORD*)(WeaponBase+0x54);
if(WeaponBase)
{
*(BYTE*)(WeaponBase + 0x161D4) = 0;
*(BYTE*)(WeaponBase + 0x161D8) = 0;
*(BYTE*)(WeaponBase + 0x16204) = 0;
}
}
}
}
DWORD Init()
{
while(1)
{
if(GetAsyncKeyState(VK_F2)&1)g_bNoRecoilSpr = !g_bNoRecoilSpr;
NoRecoilSpr();
Sleep(100);
}
return 0;
}
BOOL __stdcall DllMain(HMODULE module, DWORD reason, LPVOID reserved)
{
if(reason == DLL_PROCESS_ATTACH)
{
CreateThread(0,0,(LPTHREAD_START_ROUTINE)Init, 0,0,0);
}
return TRUE;
}
Credit:
Somewhere