forked from Simnation/Main
72 lines
1.9 KiB
Lua
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)
|