1
0
Fork 0
forked from Simnation/Main
Main/resources/[Developer]/[Nordi]/0r-atmrobbery/server.lua
2025-06-07 08:51:21 +02:00

72 lines
1.9 KiB
Lua

--[[ Main Server File]]
server = {
framework = shared.GetFrameworkObject(),
load = false,
}
local HackedAtms = {}
-- Loads module.bridge manage server-side functionality.
require 'modules.bridge.server'
local Utils = require 'modules.utils.server'
local Inventory = require 'modules.inventory.server'
--[[ functions ]]
function server.IsAtmHacked(model, coords)
for _, value in pairs(HackedAtms) do
if value.model == model and #(coords - value.coords) <= 0.1 then
return true
end
end
return false
end
function server.SetAtmHacked(model, coords, hacker)
if server.IsAtmHacked(model, coords) then return end
table.insert(HackedAtms, { model = model, coords = coords, hacker = hacker, time = os.time() })
end
--[[ events ]]
lib.callback.register(_e('server:IsAtmHacked'), function(source, model, coords)
print(model, coords, server.IsAtmHacked(model, coords))
return server.IsAtmHacked(model, coords)
end)
lib.callback.register(_e('server:HasItem'), function(source, itemName)
return Inventory.HasItem(source, itemName, 1)
end)
RegisterNetEvent(_e('server:RemoveItem'), function(itemName)
local source = source
Inventory.RemoveItem(source, itemName, 1)
end)
RegisterNetEvent(_e('server:GiveItem'), function(itemName, itemCount)
local source = source
Inventory.GiveItem(source, itemName, itemCount)
end)
--[[ threads ]]
Citizen.CreateThread(function()
while true do
local wait = 60000
local newHackedAtms = {}
for key, value in pairs(HackedAtms) do
local hackTime = value.time
local remainingTime = os.time() - hackTime
if remainingTime < Config.AtmCooldown then
table.insert(newHackedAtms, value)
end
end
HackedAtms = newHackedAtms
Citizen.Wait(wait)
end
end)