diff --git a/__resource.lua b/__resource.lua new file mode 100644 index 00000000..d8e5a91c --- /dev/null +++ b/__resource.lua @@ -0,0 +1,7 @@ +resource_manifest_version '44febabe-d386-4d18-afbe-5e627f4af937' + +description 'ESX Service' + +server_scripts { + 'server/main.lua' +} \ No newline at end of file diff --git a/server/main.lua b/server/main.lua new file mode 100644 index 00000000..a30b38dc --- /dev/null +++ b/server/main.lua @@ -0,0 +1,43 @@ +ESX = nil +local InService = {} +local MaxInService = {} + +TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end) + +function GetInServiceCount(name) + + local count = 0 + + for k,v in pairs(InService[name]) do + if v == true then + count = count + 1 + end + end + + return count + +end + +AddEventHandler('esx_service:activateService', function(name, max) + InService[name] = {} + MaxInService[name] = max +end) + +AddEventHandler('esx_service:disableService', function(name) + InService[name][source] = nil +end) + +ESX.RegisterServerCallback('esx_service:enableService', function(source, cb, name) + + local inServiceCount = GetInServiceCount(name) + + if inServiceCount >= MaxInService[name] then + cb(false, MaxInService[name], inServiceCount) + else + InService[name][source] = enable + cb(true, MaxInService[name], inServiceCount) + end + +end) + +