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)
 |