Idk why i'm releasing this, just felt like it.
Code:
QAngle angOldPunch;
bool bDoneRecoil = false;
bool bAimbotting = false; // if you have aimbot set this to false if it doesn't find a target and true if it does
void DoNoRecoil(CUserCmd* cmd, CBaseEntity* pLocalPlayer)
{
QAngle angPunch = *(QAngle*)((DWORD)pLocalPlayer + NetVarManager.GetOffset("DT_Local", "m_vecPunch")); // netvar's don't really change so you could just do pLocalPlayer + 0x2FF8
if (!bAimbotting && (cmd->buttons & IN_ATTACK))
{
if (!bDoneRecoil)
{
bDoneRecoil = true;
angOldPunch = QAngle(0, 0, 0);
}
else
{
QAngle angRealPunch = angPunch * 2;
QAngle angNoRecoil = cmd->viewangles - (angRealPunch - angOldPunch);
angNoRecoil.x = clamp(angNoRecoil.x, -89, 89); // instead of all this garbage you could just make a NormalizeAngle function or use your existing one
if (angNoRecoil.y >= 181)
angNoRecoil.y -= 360;
elseif (-181 >= angNoRecoil.y)
angNoRecoil += 360;
angNoRecoil.y = clamp(angNoRecoil.y, -180, 180)
cmd->viewangles = angNoRecoil;
angOldPunch = angRealPunch;
}
}
else
bDoneRecoil = false;
}
like i said, ghetto way of doing it