From 901b2a45a275a0db925dcb097826fb5e4b57eecc Mon Sep 17 00:00:00 2001 From: asofold Date: Sat, 26 Jul 2014 20:25:54 +0200 Subject: [PATCH] Account for server-side lag with burst packets. Only count as burst, if there was enough lag. Might need adaption to count lag again for judging the EPM, due to differing window resolution. --- .../fr/neatmonster/nocheatplus/net/NetStatic.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/net/NetStatic.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/net/NetStatic.java index 540d9213..ce4f9a0d 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/net/NetStatic.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/net/NetStatic.java @@ -90,10 +90,14 @@ public class NetStatic { double violation = (double) fullCount - (double) (maxPackets * winNum * winDur / 1000f); final float burst = packetFreq.bucketScore(0); if (burst > burstPackets) { - // TODO: Account for "just now lag", i.e. time until first occupied one > 0. - burstFreq.add(time, 1f); // TODO: Remove float packets or do this properly. - violation = Math.max(violation, burst - burstDirect); - violation = Math.max(violation, burstEPM * (double) (burstFreq.bucketDuration() * burstFreq.numberOfBuckets()) / 60000.0 - (double) burstFreq.score(0f)); + // Account for server-side lag "minimally". + if (burst > burstPackets * TickTask.getLag(winDur, true)) { + // TODO: Does lag adaption suffice this way ? + burstFreq.add(time, 1f); // TODO: Remove float packets or do this properly. + violation = Math.max(violation, burst - burstDirect); + violation = Math.max(violation, burstEPM * (double) (burstFreq.bucketDuration() * burstFreq.numberOfBuckets()) / 60000.0 - (double) burstFreq.score(0f)); + + } } return Math.max(0.0, violation); }