Code:
public static Int64 OFFSET_WEAPONSCONFIG = 0x1423B2EC8;
public static Int64 m_pSway = 0x0078; // WeaponSway
public static Int64 m_pSwayData = 0x0008; // GunSwayData
public struct PZ_GunSwayData
{
public static Int64 m_RecoilSight = 0x0430; // FLOAT
public static Int64 m_RecoilHip = 0x0438; // FLOAT
public static Int64 m_SpreadSight = 0x0434; // FLOAT
public static Int64 m_SpreadHip = 0x043C; // FLOAT
}
Code:
#region No Recoil Control
private bool RipOfRecoilControl()
{
try
{
if (!localPlayer.CurrentWeapon.IsValid() || (int)localPlayer.CurrentWeapon.Slot >= 2 || localPlayer.IsDead() || localPlayer.InVehicle)
return false;
Int64 pSoldierWeapon = RPM.ReadInt64(Offsets.OFFSET_WEAPONSCONFIG);
if (!RPM.IsValid(pSoldierWeapon))
return false;
Int64 pSway = RPM.ReadInt64(pSoldierWeapon + Offsets.PZ_WeaponFiring.m_pSway);
if (!RPM.IsValid(pSway))
return false;
Int64 pSwayData = RPM.ReadInt64(pSway + Offsets.PZ_WeaponSway.m_pSwayData);
if (!RPM.IsValid(pSwayData))
return false;
float RecoilSight = RPM.ReadFloat(pSwayData + Offsets.PZ_GunSwayData.m_RecoilSight);
float RecoilHip = RPM.ReadFloat(pSwayData + Offsets.PZ_GunSwayData.m_RecoilHip);
if (bRipOfRecoil)
{
if(RecoilHip == localPlayer.CurrentWeapon.RecoilDecrease || RecoilSight == localPlayer.CurrentWeapon.RecoilMultiplier)
{
if (RPM.ReadFloat(pSwayData + Offsets.PZ_GunSwayData.m_RecoilSight) == 0.5f && RPM.ReadFloat(pSwayData + Offsets.PZ_GunSwayData.m_RecoilHip) == 0.5f)
return true;
if (RPM.ReadFloat(pSwayData + Offsets.PZ_GunSwayData.m_RecoilSight) == localPlayer.CurrentWeapon.RecoilMultiplier)
RPM.WriteFloat(pSwayData + Offsets.PZ_GunSwayData.m_RecoilSight, 0.5f);
if (RPM.ReadFloat(pSwayData + Offsets.PZ_GunSwayData.m_RecoilHip) == localPlayer.CurrentWeapon.RecoilDecrease)
RPM.WriteFloat(pSwayData + Offsets.PZ_GunSwayData.m_RecoilHip, 0.5f);
}
}
else
{
if (RecoilHip == 0.5f || RecoilSight == 0.5f)
{
if (RPM.ReadFloat(pSwayData + Offsets.PZ_GunSwayData.m_RecoilSight) == localPlayer.CurrentWeapon.RecoilMultiplier && RPM.ReadFloat(pSwayData + Offsets.PZ_GunSwayData.m_RecoilHip) == localPlayer.CurrentWeapon.RecoilDecrease)
return true;
if (RPM.ReadFloat(pSwayData + Offsets.PZ_GunSwayData.m_RecoilSight) == 0.5f)
RPM.WriteFloat(pSwayData + Offsets.PZ_GunSwayData.m_RecoilSight, localPlayer.CurrentWeapon.RecoilMultiplier);
if (RPM.ReadFloat(pSwayData + Offsets.PZ_GunSwayData.m_RecoilHip) == 0.5f)
RPM.WriteFloat(pSwayData + Offsets.PZ_GunSwayData.m_RecoilHip, localPlayer.CurrentWeapon.RecoilDecrease);
}
}
}
catch (Exception ex)
{
}
return false;
}
#endregion
#region No Spread Control
private bool NoSpreadControl()
{
try
{
if (!localPlayer.CurrentWeapon.IsValid() || (int)localPlayer.CurrentWeapon.Slot >= 2 || localPlayer.IsDead() || localPlayer.InVehicle)
return false;
Int64 pSoldierWeapon = RPM.ReadInt64(Offsets.OFFSET_WEAPONSCONFIG);
if (!RPM.IsValid(pSoldierWeapon))
return false;
Int64 pSway = RPM.ReadInt64(pSoldierWeapon + Offsets.PZ_WeaponFiring.m_pSway);
if (!RPM.IsValid(pSway))
return false;
Int64 pSwayData = RPM.ReadInt64(pSway + Offsets.PZ_WeaponSway.m_pSwayData);
if (!RPM.IsValid(pSwayData))
return false;
float SpreadHip = RPM.ReadFloat(pSwayData + Offsets.PZ_GunSwayData.m_SpreadHip);
float SpreadSight = RPM.ReadFloat(pSwayData + Offsets.PZ_GunSwayData.m_SpreadSight);
if (bNoSpread)
{
if (SpreadSight == localPlayer.CurrentWeapon.DeviationZoom || SpreadHip == localPlayer.CurrentWeapon.DeviationNoZoom)
{
if (RPM.ReadFloat(pSwayData + Offsets.PZ_GunSwayData.m_SpreadHip) == 0.5f && RPM.ReadFloat(pSwayData + Offsets.PZ_GunSwayData.m_SpreadSight) == 0.5f)
return true;
if (RPM.ReadFloat(pSwayData + Offsets.PZ_GunSwayData.m_SpreadHip) == localPlayer.CurrentWeapon.DeviationNoZoom)
RPM.WriteFloat(pSwayData + Offsets.PZ_GunSwayData.m_SpreadHip, 0.5f);
if (RPM.ReadFloat(pSwayData + Offsets.PZ_GunSwayData.m_SpreadSight) == localPlayer.CurrentWeapon.DeviationZoom)
RPM.WriteFloat(pSwayData + Offsets.PZ_GunSwayData.m_SpreadSight, 0.5f);
}
}
else
{
if (SpreadSight == 0.5f || SpreadHip == 0.5f)
{
if (RPM.ReadFloat(pSwayData + Offsets.PZ_GunSwayData.m_SpreadHip) == localPlayer.CurrentWeapon.DeviationNoZoom && RPM.ReadFloat(pSwayData + Offsets.PZ_GunSwayData.m_SpreadSight) == localPlayer.CurrentWeapon.DeviationZoom)
return true;
if (RPM.ReadFloat(pSwayData + Offsets.PZ_GunSwayData.m_SpreadHip) == 0.5f)
RPM.WriteFloat(pSwayData + Offsets.PZ_GunSwayData.m_SpreadHip, localPlayer.CurrentWeapon.DeviationNoZoom);
if (RPM.ReadFloat(pSwayData + Offsets.PZ_GunSwayData.m_SpreadSight) == 0.5f)
RPM.WriteFloat(pSwayData + Offsets.PZ_GunSwayData.m_SpreadSight, localPlayer.CurrentWeapon.DeviationZoom);
}
}
}
catch (Exception ex)
{
}
return false;
}
#endregion
Original Poster: zakaria1996