From ba4846fcc065abbb32e2769e9a24c74f05501d93 Mon Sep 17 00:00:00 2001 From: Darsu <95997959+dar-su@users.noreply.github.com> Date: Fri, 31 Jan 2025 21:46:32 +0700 Subject: [PATCH] cache for dyn stats now has one tick lifetime --- lua/weapons/arc9_base/sh_stats.lua | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lua/weapons/arc9_base/sh_stats.lua b/lua/weapons/arc9_base/sh_stats.lua index 50f16b1e..28bb4e35 100644 --- a/lua/weapons/arc9_base/sh_stats.lua +++ b/lua/weapons/arc9_base/sh_stats.lua @@ -429,6 +429,8 @@ do local cvarArc9Truenames = GetConVar("arc9_truenames") local cvarGetBool = FindMetaTable("ConVar").GetBool local vectorLength = FindMetaTable("Vector").Length + local engineTickInterval = engine.TickInterval + local engineTickCount = engine.TickCount local getmetatable = getmetatable local numberMeta = getmetatable(1) @@ -454,12 +456,13 @@ do local ct = CurTime() local upct = UnPredictedCurTime() local processedValueName = tostring(val) .. tostring(base) + local ticks = engineTickCount() -- if CLIENT then -- why cache was client only??? - if self.PV_Cache[processedValueName] ~= nil and self.PV_Tick == upct then + if self.PV_Cache[processedValueName] ~= nil and self.PV_Tick >= ticks then return self.PV_Cache[processedValueName] end - if self.PV_Tick ~= upct then + if self.PV_Tick < ticks then self.PV_Cache = {} end -- end @@ -697,7 +700,7 @@ do end -- if CLIENT then - self.PV_Tick = upct + self.PV_Tick = ticks + engineTickInterval() self.PV_Cache[processedValueName] = stat -- end