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