Turfwar/server/gangbank.lua

59 lines
1.6 KiB
Lua

print("^2[turfwar]^7 gangbank.lua loaded (server)")
local GangBank = {} -- [gangId] = amount
local function clamp(n)
n = tonumber(n) or 0
if n < 0 then n = 0 end
return math.floor(n)
end
local function getGangId(src)
if PlayerGang and PlayerGang[src] ~= nil then return tonumber(PlayerGang[src]) or 0 end
return 0
end
local function broadcastToGang(gangId)
local amount = GangBank[gangId] or 0
for _, s in ipairs(GetPlayers()) do
s = tonumber(s)
if getGangId(s) == gangId then
TriggerClientEvent("turfwar:gangbank:update", s, gangId, amount)
end
end
end
GangBankAPI = GangBankAPI or {}
function GangBankAPI.Get(gangId)
gangId = tonumber(gangId) or 0
return GangBank[gangId] or 0
end
function GangBankAPI.Set(gangId, amount)
gangId = tonumber(gangId) or 0
GangBank[gangId] = clamp(amount)
broadcastToGang(gangId)
end
function GangBankAPI.Add(gangId, delta)
gangId = tonumber(gangId) or 0
GangBank[gangId] = clamp((GangBank[gangId] or 0) + (tonumber(delta) or 0))
broadcastToGang(gangId)
end
RegisterNetEvent("turfwar:gangbank:requestMyGang", function()
local src = source
local gangId = getGangId(src)
TriggerClientEvent("turfwar:gangbank:update", src, gangId, GangBank[gangId] or 0)
end)
-- console test
RegisterCommand("gangbank_set", function(src, args)
if src ~= 0 then return end
local g = tonumber(args[1] or "0") or 0
local a = tonumber(args[2] or "0") or 0
GangBankAPI.Set(g, a)
print(("Set gangbank %d = %d"):format(g, a))
end, true)