fix(sync): enforce THROTTLE as hard floor on threat broadcasts
Large threat deltas could bypass the 0.4 s gate entirely, sending unbounded SendAddonMessage traffic in early combat (3.3.5 servers disconnect chatty senders). Throttle now always applies; the MIN_DELTA filter is checked separately afterwards.
This commit is contained in:
parent
3f71d66b0e
commit
d0c64d75eb
1 changed files with 3 additions and 2 deletions
|
|
@ -34,7 +34,7 @@ local Omen = LibStub("AceAddon-3.0"):GetAddon("Omen")
|
|||
if not Omen then return end
|
||||
|
||||
local PREFIX = "OMSYNC"
|
||||
local THROTTLE = 0.4 -- min seconds between sends per (subject, mob)
|
||||
local THROTTLE = 0.4 -- hard floor: min seconds between sends per (subject, mob)
|
||||
local STALE = 8 -- seconds; entries older than this are ignored
|
||||
local MIN_DELTA = 0.05 -- 5%; smaller changes don't trigger a send
|
||||
|
||||
|
|
@ -98,7 +98,8 @@ function Omen:SyncBroadcastThreat(subjectGUID, mobGUID, value, isTanking)
|
|||
local age = now - prev.time
|
||||
local maxV = math.max(value, prev.value, 1)
|
||||
local pct = math.abs(value - prev.value) / maxV
|
||||
if age < THROTTLE and pct < MIN_DELTA then return end
|
||||
if age < THROTTLE then return end -- hard rate floor
|
||||
if pct < MIN_DELTA then return end
|
||||
end
|
||||
lastSend[subjectGUID][mobGUID] = { value = value, time = now }
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue