59 lines
1.6 KiB
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)
|