814 lines
		
	
	
		
			No EOL
		
	
	
		
			32 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			814 lines
		
	
	
		
			No EOL
		
	
	
		
			32 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
-- FOR OX_TARGET --
 | 
						|
local OXGroups = {['marshal'] = 0, ['vagos'] = 0}
 | 
						|
 | 
						|
-- FOR QB-TARGET --
 | 
						|
local QBCoreJobs = {['marshal'] = 1}
 | 
						|
local QBCoreGangs = {['vagos'] = 100}
 | 
						|
 | 
						|
--------------------------------------FOR OX_TARGET AND CUSTOM TARGET--------------------------------------
 | 
						|
local groups = (target.system == 'ox' or target.system == 'custom') and (target.enabledGroups and OXGroups) or nil
 | 
						|
-----------------------------------------------------------------------------------------
 | 
						|
 | 
						|
--#####################################################################################--
 | 
						|
 | 
						|
--------------------------------------FOR QB-TARGET--------------------------------------
 | 
						|
-- Use QBJobs OR QBGangs ! If both are enabled, you will need to have both the gang AND the job
 | 
						|
local QBJobs = target.system == 'qb' and (target.enabledGroups and QBCoreJobs) or nil
 | 
						|
--local QBGangs = target.system == 'qb' and target.enabledGroups and QBCoreGangs or nil
 | 
						|
-----------------------------------------------------------------------------------------
 | 
						|
local useAuthorizedCharacters = target.useAuthorizedCharacters
 | 
						|
 | 
						|
local authorizedCharacters = {
 | 
						|
    ---@QB_FORMAT
 | 
						|
    ["license:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"] = true,
 | 
						|
    ["license:yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"] = true,
 | 
						|
    ---@ESX_FORMAT
 | 
						|
    ["char1:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"] = true,
 | 
						|
    ["char2:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"] = true,
 | 
						|
    -- Add your licenses here
 | 
						|
    ["license:0eafabe308cf0eaca0b0fbf5c1ca13f756d224f2"] = true,
 | 
						|
    ["license:fff901d8f6568f356416076df59251aede9c6b68"] = true,
 | 
						|
    ["license:dae8d3f44cc7de24638a82ff53a7643475267ef0"] = true,
 | 
						|
    ["license:af732c42d19a3d8b6a0169ebb13fc135e1d26859"] = true,
 | 
						|
    ["license:7670072db4258a31e67f66e432cd307d9e3495bd"] = true,
 | 
						|
}
 | 
						|
 | 
						|
local function isCharacterAuthorized()
 | 
						|
    if Framework == 'qb' or Framework == 'qbx' then
 | 
						|
        local license = CORE.Functions.GetPlayerData().license
 | 
						|
 | 
						|
        return authorizedCharacters[license] or false
 | 
						|
    elseif Framework == 'esx' then
 | 
						|
        return authorizedCharacters[ESX.PlayerData.identifier] or false
 | 
						|
    end
 | 
						|
end
 | 
						|
 | 
						|
--------------------DO NOT TOUCH IF YOU DON'T KNOW WHAT YOU'RE DOING---------------------
 | 
						|
return {
 | 
						|
    {
 | 
						|
        name = 'patoche_call_lift_up',
 | 
						|
        coords = vec3(-1142.63, 355.56, 71.72),
 | 
						|
        size = vec3(0.3, 1.1, 2.2),
 | 
						|
        rotation = 328,
 | 
						|
        debug = false,
 | 
						|
        options = {
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                onSelect = function()
 | 
						|
                    if useAuthorizedCharacters and not isCharacterAuthorized() then Notification(locale('notif.notAuthorized'), 'error', 5000) return end
 | 
						|
                    TriggerServerEvent('patoche:interact:server:setDoorState', {map = 'bunker', doorName = 'lift', auto = false})
 | 
						|
                end,
 | 
						|
                icon = 'fa-solid fa-elevator',
 | 
						|
                label = locale('label.lift_ed'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            }
 | 
						|
        },
 | 
						|
    },
 | 
						|
    {
 | 
						|
        name = 'patoche_call_lift_down',
 | 
						|
        coords = vec3(-1137.94, 353.68, 68.8),
 | 
						|
        size = vec3(0.4, 0.4, 0.8),
 | 
						|
        rotation = 328,
 | 
						|
        debug = false,
 | 
						|
        options = {
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                onSelect = function()
 | 
						|
                    if useAuthorizedCharacters and not isCharacterAuthorized() then Notification(locale('notif.notAuthorized'), 'error', 5000) return end
 | 
						|
                    TriggerServerEvent('patoche:interact:server:setDoorState', {map = 'bunker', doorName = 'lift', auto = false})
 | 
						|
                end,
 | 
						|
                icon = 'fa-solid fa-elevator',
 | 
						|
                label = locale('label.lift_ed'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            }
 | 
						|
        }
 | 
						|
    },
 | 
						|
    {
 | 
						|
        name = 'patoche_lift_down',
 | 
						|
        coords = vec3(-1138.69, 351.37, 72.0),
 | 
						|
        size = vec3(0.2, 0.25, 0.75),
 | 
						|
        rotation = 330,
 | 
						|
        debug = false,
 | 
						|
        options = {
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                onSelect = function()
 | 
						|
                    if useAuthorizedCharacters and not isCharacterAuthorized() then Notification(locale('notif.notAuthorized'), 'error', 5000) return end
 | 
						|
                    TriggerServerEvent('patoche:interact:server:setDoorState', {map = 'bunker', doorName = 'lift', auto = false})
 | 
						|
                end,
 | 
						|
                icon = 'fa-solid fa-down-long',
 | 
						|
                label = locale('label.lift_down'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            }
 | 
						|
        }
 | 
						|
    },
 | 
						|
    {
 | 
						|
        name = 'patoche_lift_up',
 | 
						|
        coords = vec3(-1138.66, 351.37, 69.0),
 | 
						|
        size = vec3(0.2, 0.25, 0.95),
 | 
						|
        rotation = 330,
 | 
						|
        debug = false,
 | 
						|
        options = {
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                onSelect = function()
 | 
						|
                    if useAuthorizedCharacters and not isCharacterAuthorized() then Notification(locale('notif.notAuthorized'), 'error', 5000) return end
 | 
						|
                    TriggerServerEvent('patoche:interact:server:setDoorState', {map = 'bunker', doorName = 'lift', auto = false})
 | 
						|
                end,
 | 
						|
                icon = 'fa-solid fa-up-long',
 | 
						|
                label = locale('label.lift_up'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            }
 | 
						|
        }
 | 
						|
    },
 | 
						|
    {
 | 
						|
        name = 'patoche_quadDoors',
 | 
						|
        coords = vec3(-1138.51, 357.48, 68.3),
 | 
						|
        size = vec3(0.5, 0.5, 1.0),
 | 
						|
        rotation = 331,
 | 
						|
        debug = false,
 | 
						|
        options = {
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                onSelect = function()
 | 
						|
                    if useAuthorizedCharacters and not isCharacterAuthorized() then Notification(locale('notif.notAuthorized'), 'error', 5000) return end
 | 
						|
                    TriggerServerEvent('patoche:interact:server:setDoorState', {map = 'bunker', doorName = 'quadDoors', auto = false})
 | 
						|
                end,
 | 
						|
                icon = 'fa-solid fa-door-open',
 | 
						|
                label = locale('label.doors'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            },
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                onSelect = function()
 | 
						|
                    if useAuthorizedCharacters and not isCharacterAuthorized() then Notification(locale('notif.notAuthorized'), 'error', 5000) return end
 | 
						|
                    TriggerServerEvent('patoche:interact:server:setDoorState', {map = 'bunker', doorName = 'quadDoors', auto = true})
 | 
						|
                end,
 | 
						|
                icon = 'fa-solid fa-door-open',
 | 
						|
                label = locale('label.auto'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            }
 | 
						|
        }
 | 
						|
    },
 | 
						|
    {
 | 
						|
        name = 'patoche_weapons',
 | 
						|
        coords = vec3(-1134.43, 358.6, 67.9),
 | 
						|
        size = vec3(0.5, 0.55, 2.0),
 | 
						|
        rotation = 328,
 | 
						|
        debug = false,
 | 
						|
        options = {
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                onSelect = function()
 | 
						|
                    if useAuthorizedCharacters and not isCharacterAuthorized() then Notification(locale('notif.notAuthorized'), 'error', 5000) return end
 | 
						|
                    TriggerServerEvent('patoche:interact:server:setDoorState', {map = 'bunker', doorName = 'weaponDoor', auto = false})
 | 
						|
                end,
 | 
						|
                icon = 'fa-solid fa-gun',
 | 
						|
                label = locale('label.weapon_doors'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            }
 | 
						|
        }
 | 
						|
    },
 | 
						|
    {
 | 
						|
        name = 'patoche_clothes',
 | 
						|
        coords = vec3(-1134.04, 354.28, 68.2),
 | 
						|
        size = vec3(0.35, 0.3, 1.0),
 | 
						|
        rotation = 12.5,
 | 
						|
        debug = false,
 | 
						|
        options = {
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                onSelect = function()
 | 
						|
                    if useAuthorizedCharacters and not isCharacterAuthorized() then Notification(locale('notif.notAuthorized'), 'error', 5000) return end
 | 
						|
                    TriggerServerEvent('patoche:interact:server:setDoorState', {map = 'bunker', doorName = 'clothesDoor', auto = false})
 | 
						|
                end,
 | 
						|
                icon = 'fa-solid fa-shirt',
 | 
						|
                label = locale('label.clothes_doors'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            }
 | 
						|
        }
 | 
						|
    },
 | 
						|
    {
 | 
						|
        name = 'patoche_target_button',
 | 
						|
        coords = vec3(-1141.9, 350.89, 68.3),
 | 
						|
        size = vec3(0.4, 0.4, 0.8),
 | 
						|
        rotation = 328,
 | 
						|
        debug = false,
 | 
						|
        options = {
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                onSelect = function()
 | 
						|
                    if useAuthorizedCharacters and not isCharacterAuthorized() then Notification(locale('notif.notAuthorized'), 'error', 5000) return end
 | 
						|
                    TriggerServerEvent('patoche:interact:server:setDoorState', {map = 'bunker', doorName = 'targetButton', auto = false})
 | 
						|
                end,
 | 
						|
                icon = 'fa-solid fa-bullseye',
 | 
						|
                label = locale('label.target_button'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            }
 | 
						|
        }
 | 
						|
    },
 | 
						|
    {
 | 
						|
        name = 'patoche_target',
 | 
						|
        coords = vec3(-1141.48, 349.86, 68.35),
 | 
						|
        size = vec3(0.25, 0.8, 1.6),
 | 
						|
        rotation = 328,
 | 
						|
        debug = false,
 | 
						|
        options = {
 | 
						|
            {
 | 
						|
                event = 'patoche:interact:client:animClearArea',
 | 
						|
                icon = 'fa-solid fa-bullseye',
 | 
						|
                label = locale('label.target'),
 | 
						|
            }
 | 
						|
        }
 | 
						|
    },
 | 
						|
    {
 | 
						|
        name = 'patoche_ordidoor',
 | 
						|
        coords = vec3(-1147.89, 352.33, 68.2),
 | 
						|
        size = vec3(0.6, 0.2, 1.0),
 | 
						|
        rotation = 331,
 | 
						|
        debug = false,
 | 
						|
        options = {
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                onSelect = function()
 | 
						|
                    if useAuthorizedCharacters and not isCharacterAuthorized() then Notification(locale('notif.notAuthorized'), 'error', 5000) return end
 | 
						|
                    TriggerServerEvent('patoche:interact:server:setDoorState', {map = 'bunker', doorName = 'computerDoor1', auto = false})
 | 
						|
                end,
 | 
						|
                icon = 'fa-solid fa-door-open',
 | 
						|
                label = locale('label.doors'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            },
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                onSelect = function()
 | 
						|
                    if useAuthorizedCharacters and not isCharacterAuthorized() then Notification(locale('notif.notAuthorized'), 'error', 5000) return end
 | 
						|
                    TriggerServerEvent('patoche:interact:server:setDoorState', {map = 'bunker', doorName = 'computerDoor1', auto = true})
 | 
						|
                end,
 | 
						|
                icon = 'fa-solid fa-door-open',
 | 
						|
                label = locale('label.auto'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            }
 | 
						|
        }
 | 
						|
    },
 | 
						|
    {
 | 
						|
        name = 'patoche_ordidoor2',
 | 
						|
        coords = vec3(-1147.77, 354.62, 68.2),
 | 
						|
        size = vec3(0.6, 0.2, 1.0),
 | 
						|
        rotation = 331,
 | 
						|
        debug = false,
 | 
						|
        options = {
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                onSelect = function()
 | 
						|
                    if useAuthorizedCharacters and not isCharacterAuthorized() then Notification(locale('notif.notAuthorized'), 'error', 5000) return end
 | 
						|
                    TriggerServerEvent('patoche:interact:server:setDoorState', {map = 'bunker', doorName = 'computerDoor2', auto = false})
 | 
						|
                end,
 | 
						|
                icon = 'fa-solid fa-door-open',
 | 
						|
                label = locale('label.doors'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            },
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                onSelect = function()
 | 
						|
                    if useAuthorizedCharacters and not isCharacterAuthorized() then Notification(locale('notif.notAuthorized'), 'error', 5000) return end
 | 
						|
                    TriggerServerEvent('patoche:interact:server:setDoorState', {map = 'bunker', doorName = 'computerDoor2', auto = true})
 | 
						|
                end,
 | 
						|
                icon = 'fa-solid fa-door-open',
 | 
						|
                label = locale('label.auto'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            }
 | 
						|
        }
 | 
						|
    },
 | 
						|
    {
 | 
						|
        name = 'patoche_secretdoors',
 | 
						|
        coords = vec3(-1126.44, 357.09, 71.29),
 | 
						|
        size = vec3(0.5, 0.5, 1.1),
 | 
						|
        rotation = 328,
 | 
						|
        debug = false,
 | 
						|
        options = {
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                onSelect = function()
 | 
						|
                    if useAuthorizedCharacters and not isCharacterAuthorized() then Notification(locale('notif.notAuthorized'), 'error', 5000) return end
 | 
						|
                    TriggerServerEvent('patoche:interact:server:setDoorState', {map = 'bunker', doorName = 'secretDoors', auto = false})
 | 
						|
                end,
 | 
						|
                icon = 'fa-solid fa-door-open',
 | 
						|
                label = locale('label.doors'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            }
 | 
						|
        }
 | 
						|
    },
 | 
						|
    {
 | 
						|
        name = 'patoche_bookdoor',
 | 
						|
        coords = vec3(-1128.82, 358.95, 71.6),
 | 
						|
        size = vec3(0.6, 0.7, 1.15),
 | 
						|
        rotation = 330,
 | 
						|
        debug = false,
 | 
						|
        options = {
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                onSelect = function()
 | 
						|
                    if useAuthorizedCharacters and not isCharacterAuthorized() then Notification(locale('notif.notAuthorized'), 'error', 5000) return end
 | 
						|
                    TriggerServerEvent('patoche:interact:server:setDoorState', {map = 'bunker', doorName = 'bookDoor', auto = false})
 | 
						|
                end,
 | 
						|
                icon = 'fa-solid fa-door-open',
 | 
						|
                label = locale('label.doors'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            }
 | 
						|
        }
 | 
						|
    },
 | 
						|
    {
 | 
						|
        name = 'patoche_doors1',
 | 
						|
        coords = vec3(-1141.93, 365.97, 71.32),
 | 
						|
        size = vec3(1.0, 3.0, 2.55),
 | 
						|
        rotation = 59,
 | 
						|
        debug = false,
 | 
						|
        options = {
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                onSelect = function()
 | 
						|
                    if useAuthorizedCharacters and not isCharacterAuthorized() then Notification(locale('notif.notAuthorized'), 'error', 5000) return end
 | 
						|
                    TriggerServerEvent('patoche:interact:server:setDoorState', {map = 'bunker', doorName = 'doors1', auto = false})
 | 
						|
                end,
 | 
						|
                icon = 'fa-solid fa-door-open',
 | 
						|
                label = locale('label.doors'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            }
 | 
						|
        }
 | 
						|
    },
 | 
						|
    {
 | 
						|
        name = 'patoche_doors2',
 | 
						|
        coords = vec3(-1121.14, 364.7, 71.32),
 | 
						|
        size = vec3(1.7, 1.0, 2.6),
 | 
						|
        rotation = 328,
 | 
						|
        debug = false,
 | 
						|
        options = {
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                onSelect = function()
 | 
						|
                    if useAuthorizedCharacters and not isCharacterAuthorized() then Notification(locale('notif.notAuthorized'), 'error', 5000) return end
 | 
						|
                    TriggerServerEvent('patoche:interact:server:setDoorState', {map = 'bunker', doorName = 'doors2', auto = false})
 | 
						|
                end,
 | 
						|
                icon = 'fa-solid fa-door-open',
 | 
						|
                label = locale('label.doors'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            }
 | 
						|
        }
 | 
						|
    },
 | 
						|
    {
 | 
						|
        name = 'patoche_doors3',
 | 
						|
        coords = vec3(-1136.01, 375.41, 71.3),
 | 
						|
        size = vec3(1.0, 3.05, 2.55),
 | 
						|
        rotation = 59,
 | 
						|
        debug = false,
 | 
						|
        options = {
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                onSelect = function()
 | 
						|
                    if useAuthorizedCharacters and not isCharacterAuthorized() then Notification(locale('notif.notAuthorized'), 'error', 5000) return end
 | 
						|
                    TriggerServerEvent('patoche:interact:server:setDoorState', {map = 'bunker', doorName = 'doors3', auto = false})
 | 
						|
                end,
 | 
						|
                icon = 'fa-solid fa-door-open',
 | 
						|
                label = locale('label.doors'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            }
 | 
						|
        }
 | 
						|
    },
 | 
						|
    {
 | 
						|
        name = 'patoche_doors4',
 | 
						|
        coords = vec3(-1143.44, 371.58, 74.93),
 | 
						|
        size = vec3(1.0, 3.0, 2.55),
 | 
						|
        rotation = 59,
 | 
						|
        debug = false,
 | 
						|
        options = {
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                onSelect = function()
 | 
						|
                    if useAuthorizedCharacters and not isCharacterAuthorized() then Notification(locale('notif.notAuthorized'), 'error', 5000) return end
 | 
						|
                    TriggerServerEvent('patoche:interact:server:setDoorState', {map = 'bunker', doorName = 'doors4', auto = false})
 | 
						|
                end,
 | 
						|
                icon = 'fa-solid fa-door-open',
 | 
						|
                label = locale('label.doors'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            }
 | 
						|
        }
 | 
						|
    },
 | 
						|
    {
 | 
						|
        name = 'patoche_doors5',
 | 
						|
        coords = vec3(-1130.81, 370.57, 74.93),
 | 
						|
        size = vec3(1.0, 3.0, 2.55),
 | 
						|
        rotation = 59,
 | 
						|
        debug = false,
 | 
						|
        options = {
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                onSelect = function()
 | 
						|
                    if useAuthorizedCharacters and not isCharacterAuthorized() then Notification(locale('notif.notAuthorized'), 'error', 5000) return end
 | 
						|
                    TriggerServerEvent('patoche:interact:server:setDoorState', {map = 'bunker', doorName = 'doors5', auto = false})
 | 
						|
                end,
 | 
						|
                icon = 'fa-solid fa-door-open',
 | 
						|
                label = locale('label.doors'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            }
 | 
						|
        }
 | 
						|
    },
 | 
						|
    {
 | 
						|
        name = 'patoche_secretdoors_underground',
 | 
						|
        coords = vec3(-1123.32, 361.65, 68.3),
 | 
						|
        size = vec3(0.2, 0.2, 1.1),
 | 
						|
        rotation = 328,
 | 
						|
        debug = false,
 | 
						|
        options = {
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                onSelect = function()
 | 
						|
                    if useAuthorizedCharacters and not isCharacterAuthorized() then Notification(locale('notif.notAuthorized'), 'error', 5000) return end
 | 
						|
                    TriggerServerEvent('patoche:interact:server:setDoorState', {map = 'bunker', doorName = 'secretDoors', auto = false})
 | 
						|
                end,
 | 
						|
                icon = 'fa-solid fa-door-open',
 | 
						|
                label = locale('label.doors'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            }
 | 
						|
        }
 | 
						|
    },
 | 
						|
    {
 | 
						|
        name = 'patoche_cloakdoors',
 | 
						|
        coords = vec3(-1128.39, 356.57, 68.2),
 | 
						|
        size = vec3(0.5, 1.7, 1.8),
 | 
						|
        rotation = 329,
 | 
						|
        debug = false,
 | 
						|
        options = {
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                onSelect = function()
 | 
						|
                    if useAuthorizedCharacters and not isCharacterAuthorized() then Notification(locale('notif.notAuthorized'), 'error', 5000) return end
 | 
						|
                    TriggerServerEvent('patoche:interact:server:setDoorState', {map = 'bunker', doorName = 'cloakDoors', auto = false})
 | 
						|
                end,
 | 
						|
                icon = 'fa-solid fa-door-open',
 | 
						|
                label = locale('label.doors'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
 | 
						|
            },
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                onSelect = function()
 | 
						|
                    if useAuthorizedCharacters and not isCharacterAuthorized() then Notification(locale('notif.notAuthorized'), 'error', 5000) return end
 | 
						|
                    TriggerServerEvent('patoche:interact:server:setDoorState', {map = 'bunker', doorName = 'cloakDoors', auto = true})
 | 
						|
                end,
 | 
						|
                icon = 'fa-solid fa-door-open',
 | 
						|
                label = locale('label.auto'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            }
 | 
						|
        }
 | 
						|
    },
 | 
						|
    -- --PROPS
 | 
						|
    {
 | 
						|
        name = 'patoche_security_room01_top',
 | 
						|
        coords = vec3(-1144.89, 372.67, 74.93),
 | 
						|
        size = vec3(0.55, 0.4, 2.0),
 | 
						|
        rotation = 330,
 | 
						|
        debug = false,
 | 
						|
        options = {
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                onSelect = function()
 | 
						|
                    if useAuthorizedCharacters and not isCharacterAuthorized() then Notification(locale('notif.notAuthorized'), 'error', 5000) return end
 | 
						|
                    TriggerServerEvent('patoche:interact:server:setPropsState', {map = 'bunker', class = 'doors'})
 | 
						|
                end,
 | 
						|
                icon = 'fa-solid fa-door-open',
 | 
						|
                label = locale('label.close_doors'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            },
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                onSelect = function()
 | 
						|
                    if useAuthorizedCharacters and not isCharacterAuthorized() then Notification(locale('notif.notAuthorized'), 'error', 5000) return end
 | 
						|
                    TriggerServerEvent('patoche:interact:server:setPropsState', {map = 'bunker', class = 'windows'})
 | 
						|
                end,
 | 
						|
                icon = 'fa-solid fa-door-open',
 | 
						|
                label = locale('label.close_windows'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            },
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                onSelect = function()
 | 
						|
                    if useAuthorizedCharacters and not isCharacterAuthorized() then Notification(locale('notif.notAuthorized'), 'error', 5000) return end
 | 
						|
                    TriggerServerEvent('patoche:interact:server:setPropsState', {map = 'bunker', class = 'full'})
 | 
						|
                end,
 | 
						|
                icon = 'fa-solid fa-house-lock',
 | 
						|
                label = locale('label.full_close'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            }
 | 
						|
        }
 | 
						|
    },
 | 
						|
    {
 | 
						|
        name = 'patoche_security_room01_pillar',
 | 
						|
        coords = vec3(-1136.13, 371.15, 71.7),
 | 
						|
        size = vec3(1.0, 1.0, 2.0),
 | 
						|
        rotation = 328,
 | 
						|
        debug = false,
 | 
						|
        options = {
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                onSelect = function()
 | 
						|
                    if useAuthorizedCharacters and not isCharacterAuthorized() then Notification(locale('notif.notAuthorized'), 'error', 5000) return end
 | 
						|
                    TriggerServerEvent('patoche:interact:server:setPropsState', {map = 'bunker', class = 'doors'})
 | 
						|
                end,
 | 
						|
                icon = 'fa-solid fa-door-open',
 | 
						|
                label = locale('label.close_doors'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            },
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                onSelect = function()
 | 
						|
                    if useAuthorizedCharacters and not isCharacterAuthorized() then Notification(locale('notif.notAuthorized'), 'error', 5000) return end
 | 
						|
                    TriggerServerEvent('patoche:interact:server:setPropsState', {map = 'bunker', class = 'windows'})
 | 
						|
                end,
 | 
						|
                icon = 'fa-solid fa-door-open',
 | 
						|
                label = locale('label.close_windows'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            },
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                onSelect = function()
 | 
						|
                    if useAuthorizedCharacters and not isCharacterAuthorized() then Notification(locale('notif.notAuthorized'), 'error', 5000) return end
 | 
						|
                    TriggerServerEvent('patoche:interact:server:setPropsState', {map = 'bunker', class = 'full'})
 | 
						|
                end,
 | 
						|
                icon = 'fa-solid fa-house-lock',
 | 
						|
                label = locale('label.full_close'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            }
 | 
						|
        }
 | 
						|
    },
 | 
						|
    {
 | 
						|
        name = 'patoche_security_room03', 
 | 
						|
        coords = vec3(-1129.26, 369.4, 75.3),
 | 
						|
        size = vec3(0.8, 0.8, 2.0),
 | 
						|
        rotation = 328,
 | 
						|
        debug = false,
 | 
						|
        options = {
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                onSelect = function()
 | 
						|
                    if useAuthorizedCharacters and not isCharacterAuthorized() then Notification(locale('notif.notAuthorized'), 'error', 5000) return end
 | 
						|
                    TriggerServerEvent('patoche:interact:server:setPropsState', {map = 'bunker', class = 'doors'})
 | 
						|
                end,
 | 
						|
                icon = 'fa-solid fa-door-open',
 | 
						|
                label = locale('label.close_doors'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            },
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                onSelect = function()
 | 
						|
                    if useAuthorizedCharacters and not isCharacterAuthorized() then Notification(locale('notif.notAuthorized'), 'error', 5000) return end
 | 
						|
                    TriggerServerEvent('patoche:interact:server:setPropsState', {map = 'bunker', class = 'windows'})
 | 
						|
                end,
 | 
						|
                icon = 'fa-solid fa-door-open',
 | 
						|
                label = locale('label.close_windows'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            },
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                onSelect = function()
 | 
						|
                    if useAuthorizedCharacters and not isCharacterAuthorized() then Notification(locale('notif.notAuthorized'), 'error', 5000) return end
 | 
						|
                    TriggerServerEvent('patoche:interact:server:setPropsState', {map = 'bunker', class = 'full'})
 | 
						|
                end,
 | 
						|
                icon = 'fa-solid fa-house-lock',
 | 
						|
                label = locale('label.full_close'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            }
 | 
						|
        }
 | 
						|
    },
 | 
						|
    {
 | 
						|
        name = 'patoche_security_room02',
 | 
						|
        coords = vec3(-1122.1, 365.16, 71.49),
 | 
						|
        size = vec3(0.55, 0.5, 1.8),
 | 
						|
        rotation = 330,
 | 
						|
        debug = false,
 | 
						|
        options = {
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                onSelect = function()
 | 
						|
                    if useAuthorizedCharacters and not isCharacterAuthorized() then Notification(locale('notif.notAuthorized'), 'error', 5000) return end
 | 
						|
                    TriggerServerEvent('patoche:interact:server:setPropsState', {map = 'bunker', class = 'doors'})
 | 
						|
                end,
 | 
						|
                icon = 'fa-solid fa-door-open',
 | 
						|
                label = locale('label.close_doors'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            },
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                onSelect = function()
 | 
						|
                    if useAuthorizedCharacters and not isCharacterAuthorized() then Notification(locale('notif.notAuthorized'), 'error', 5000) return end
 | 
						|
                    TriggerServerEvent('patoche:interact:server:setPropsState', {map = 'bunker', class = 'windows'})
 | 
						|
                end,
 | 
						|
                icon = 'fa-solid fa-door-open',
 | 
						|
                label = locale('label.close_windows'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            },
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                onSelect = function()
 | 
						|
                    if useAuthorizedCharacters and not isCharacterAuthorized() then Notification(locale('notif.notAuthorized'), 'error', 5000) return end
 | 
						|
                    TriggerServerEvent('patoche:interact:server:setPropsState', {map = 'bunker', class = 'full'})
 | 
						|
                end,
 | 
						|
                icon = 'fa-solid fa-house-lock',
 | 
						|
                label = locale('label.full_close'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            }
 | 
						|
        }
 | 
						|
    },
 | 
						|
    {
 | 
						|
        name = 'patoche_security_room_WD_villa_bunker',
 | 
						|
        coords = vec3(-1152.64, 351.91, 67.9),
 | 
						|
        size = vec3(1.0, 1.0, 2.0),
 | 
						|
        rotation = 328,
 | 
						|
        debug = false,
 | 
						|
        options = {
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                onSelect = function()
 | 
						|
                    if useAuthorizedCharacters and not isCharacterAuthorized() then Notification(locale('notif.notAuthorized'), 'error', 5000) return end
 | 
						|
                    TriggerServerEvent('patoche:interact:server:setPropsState', {map = 'bunker', class = 'doors'})
 | 
						|
                end,
 | 
						|
                icon = 'fa-solid fa-door-open',
 | 
						|
                label = locale('label.close_doors'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            },
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                onSelect = function()
 | 
						|
                    if useAuthorizedCharacters and not isCharacterAuthorized() then Notification(locale('notif.notAuthorized'), 'error', 5000) return end
 | 
						|
                    TriggerServerEvent('patoche:interact:server:setPropsState', {map = 'bunker', class = 'windows'})
 | 
						|
                end,
 | 
						|
                icon = 'fa-solid fa-door-open',
 | 
						|
                label = locale('label.close_windows'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            },
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                onSelect = function()
 | 
						|
                    if useAuthorizedCharacters and not isCharacterAuthorized() then Notification(locale('notif.notAuthorized'), 'error', 5000) return end
 | 
						|
                    TriggerServerEvent('patoche:interact:server:setPropsState', {map = 'bunker', class = 'full'})
 | 
						|
                end,
 | 
						|
                icon = 'fa-solid fa-house-lock',
 | 
						|
                label = locale('label.full_close'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            }
 | 
						|
        }
 | 
						|
    },
 | 
						|
    {
 | 
						|
        name = 'patoche_pool_doors',
 | 
						|
        coords = vec3(-1150.18, 356.3, 71.6),
 | 
						|
        size = vec3(1.0, 1.0, 2.0),
 | 
						|
        rotation = 328,
 | 
						|
        debug = false,
 | 
						|
        options = {
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                onSelect = function()
 | 
						|
                    if useAuthorizedCharacters and not isCharacterAuthorized() then Notification(locale('notif.notAuthorized'), 'error', 5000) return end
 | 
						|
                    TriggerServerEvent('patoche:interact:server:setPropsState', {map = 'bunker', class = 'doorsPool'})
 | 
						|
                end,
 | 
						|
                icon = 'fa-solid fa-door-open',
 | 
						|
                label = locale('label.roofpool_doors'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            }
 | 
						|
        }
 | 
						|
    },
 | 
						|
    --CAMERA
 | 
						|
    {
 | 
						|
        name = 'patoche_cameras_01',
 | 
						|
        coords = vec3(-1151.82, 353.43, 67.9),
 | 
						|
        size = vec3(1.6, 0.6, 1.65),
 | 
						|
        rotation = 60,
 | 
						|
        debug = false,
 | 
						|
        options = {
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                event = 'patoche:interact:client:cameraMenu',
 | 
						|
                icon = 'fa-solid fa-video',
 | 
						|
                label = locale('label.camera'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            }
 | 
						|
        }
 | 
						|
    },
 | 
						|
    {
 | 
						|
        name= 'patoche_cameras_02',
 | 
						|
        coords = vec3(-1127.87, 358.38, 71.49),
 | 
						|
        size = vec3(1.05, 0.25, 1.8),
 | 
						|
        rotation = 328,
 | 
						|
        debug = false,
 | 
						|
        options = {
 | 
						|
            {
 | 
						|
                groups = groups,
 | 
						|
                event = 'patoche:interact:client:cameraMenu',
 | 
						|
                icon = 'fa-solid fa-video',
 | 
						|
                label = locale('label.camera'),
 | 
						|
                job = QBJobs,
 | 
						|
                gang = QBGangs,
 | 
						|
                distance = target.distance
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
},
 | 
						|
 | 
						|
lib.zones.poly({
 | 
						|
    points = {
 | 
						|
        vec3(-1180.4207763672, 340.18664550781, 60.0),
 | 
						|
        vec3(-1190.1365966797, 350.82202148438, 60.0),
 | 
						|
        vec3(-1196.0961914062, 371.77169799805, 60.0),
 | 
						|
        vec3(-1198.7802734375, 412.01794433594, 60.0),
 | 
						|
        vec3(-1064.8665771484, 405.42504882812, 60.0),
 | 
						|
        vec3(-1072.6895751953, 279.83306884766, 60.0),
 | 
						|
        vec3(-1147.7784423828, 270.69509887695, 60.0)
 | 
						|
    },
 | 
						|
    thickness = 75,
 | 
						|
    onEnter = function()
 | 
						|
        TriggerEvent('patoche_interact:client:spawnProps', 'bunker')
 | 
						|
    end,
 | 
						|
    onExit = function()
 | 
						|
        TriggerEvent('patoche_interact:client:deleteProps', 'bunker')
 | 
						|
    end,
 | 
						|
    debug = false,
 | 
						|
}) |