From 7f7353c505d132f5cee413d146fbfd04ce05f164 Mon Sep 17 00:00:00 2001 From: RaidMax Date: Tue, 10 Sep 2019 17:24:32 -0500 Subject: [PATCH] only count hits for valid recoil detection --- Plugins/Stats/Cheat/Detection.cs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/Plugins/Stats/Cheat/Detection.cs b/Plugins/Stats/Cheat/Detection.cs index 895ed6ff6..2db28aa97 100644 --- a/Plugins/Stats/Cheat/Detection.cs +++ b/Plugins/Stats/Cheat/Detection.cs @@ -39,6 +39,7 @@ namespace IW4MAdmin.Plugins.Stats.Cheat readonly DateTime ConnectionTime = DateTime.UtcNow; private double sessionAverageRecoilAmount; private EFClientKill lastHit; + private int validRecoilHitCount; private class HitInfo { @@ -205,13 +206,11 @@ namespace IW4MAdmin.Plugins.Stats.Cheat float hitRecoilAverage = 0; if (!Plugin.Config.Configuration().RecoilessWeapons.Any(_weaponRegex => Regex.IsMatch(hit.Weapon.ToString(), _weaponRegex))) { + validRecoilHitCount++; hitRecoilAverage = (hit.AnglesList.Sum(_angle => _angle.Z) + hit.ViewAngles.Z) / (hit.AnglesList.Count + 1); - sessionAverageRecoilAmount = (sessionAverageRecoilAmount * (HitCount - 1) + hitRecoilAverage) / HitCount; + sessionAverageRecoilAmount = (sessionAverageRecoilAmount * (validRecoilHitCount - 1) + hitRecoilAverage) / validRecoilHitCount; - var lifeTimeHits = ClientStats.HitLocations.Sum(_loc => _loc.HitCount); - ClientStats.AverageRecoilOffset = (ClientStats.AverageRecoilOffset * (lifeTimeHits - 1) + hitRecoilAverage) / lifeTimeHits; - - if (HitCount >= Thresholds.LowSampleMinKills && Kills > Thresholds.LowSampleMinKillsRecoil && sessionAverageRecoilAmount == 0) + if (validRecoilHitCount >= Thresholds.LowSampleMinKills && Kills > Thresholds.LowSampleMinKillsRecoil && sessionAverageRecoilAmount == 0) { results.Add(new DetectionPenaltyResult() {