activeBlips = {}
function hashPos(pos)
x = math.floor(pos.x) * 2^12
y = math.floor(pos.y) * 2^6
z = math.floor(pos.z)
return x+y+z
end
RegisterServerEvent("atc:flashingBlip")
AddEventHandler("atc:flashingBlip", function(posv, blipid, time, col)
TriggerClientEvent("atc:startFlashingBlip", -1, posv, blipid, time, col)
local pos = hashPos(posv)
if activeBlips[pos] == nil then
activeBlips[pos] = 0
elseif activeBlips[pos] > 0 then
TriggerClientEvent("atc:warning", source)
print("[ATC] warning player "..source.." for calling out at "..pos)
print("[ATC] current state:")
for k,v in next, activeBlips do
print(k.." = "..v)
end
end
activeBlips[pos] = activeBlips[pos] + 1
--print("[atc] added blip "..pos.." = "..activeBlips[pos])
SetTimeout(time * 1000, function()
activeBlips[pos] = activeBlips[pos] - 1
--print("[atc] removed blip "..pos.." = "..activeBlips[pos])
if activeBlips[pos] < 0 then
print("[ATC] Bug or race condition detected... Resetting.")
activeBlips[pos] = 0
end
end)
end)
Comments