119 lines
		
	
	
	
		
			3.1 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			119 lines
		
	
	
	
		
			3.1 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
RESTARTING = false
 | 
						|
local deleteModels = {
 | 
						|
    'kq_roofbox_1_1',
 | 
						|
    'kq_roofbox_1_2',
 | 
						|
    'kq_roofbox_1_3',
 | 
						|
    'kq_roofbox_1_4',
 | 
						|
    'kq_roofbox_1_5',
 | 
						|
    'kq_roofbox_1_6',
 | 
						|
    'kq_roofbox_1_7',
 | 
						|
    'kq_roofbox_1_8',
 | 
						|
    'kq_roofbox_2_1',
 | 
						|
    'kq_roofbox_2_2',
 | 
						|
    'kq_roofbox_2_3',
 | 
						|
    'kq_roofbox_2_4',
 | 
						|
    'kq_roofbox_2_5',
 | 
						|
    'kq_roofbox_2_6',
 | 
						|
    'kq_roofbox_2_7',
 | 
						|
    'kq_roofbox_2_8',
 | 
						|
    'kq_roofbox_3_1',
 | 
						|
    'kq_roofbox_3_2',
 | 
						|
    'kq_roofbox_3_3',
 | 
						|
    'kq_roofbox_3_4',
 | 
						|
    'kq_roofbox_3_5',
 | 
						|
    'kq_roofbox_3_6',
 | 
						|
    'kq_roofbox_3_7',
 | 
						|
    'kq_roofbox_3_8',
 | 
						|
    'kq_roofbox_2',
 | 
						|
    'kq_roofbox_3',
 | 
						|
    'kq_roofbox_b1',
 | 
						|
    'kq_roofbox_b2',
 | 
						|
    'kq_roofbox_b3',
 | 
						|
    'kq_roofbox_c1',
 | 
						|
    'kq_roofbox_c2',
 | 
						|
    'kq_roofbox_c3',
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
local function ContainsHash(tab, val)
 | 
						|
    for index, value in ipairs(tab) do
 | 
						|
        if GetHashKey(value) == val then
 | 
						|
            return true
 | 
						|
        end
 | 
						|
    end
 | 
						|
    
 | 
						|
    return false
 | 
						|
end
 | 
						|
 | 
						|
--- SAFE RESTART FUNCTIONALITY
 | 
						|
RegisterNetEvent(GetCurrentResourceName() .. ':client:safeRestart')
 | 
						|
AddEventHandler(GetCurrentResourceName() .. ':client:safeRestart', function(caller)
 | 
						|
    RESTARTING = true
 | 
						|
    Citizen.Wait(1000)
 | 
						|
    local entities = GetGamePool('CObject')
 | 
						|
    
 | 
						|
    local playerPed = PlayerPedId()
 | 
						|
    
 | 
						|
    WipeAllInteractionEntities()
 | 
						|
    
 | 
						|
    for k, entity in pairs(entities) do
 | 
						|
        if DoesEntityExist(entity) then
 | 
						|
            if ContainsHash(deleteModels, GetEntityModel(entity)) then
 | 
						|
                SetEntityAsMissionEntity(entity, true, true)
 | 
						|
                DeleteEntity(entity)
 | 
						|
            end
 | 
						|
        end
 | 
						|
    end
 | 
						|
    
 | 
						|
    if caller == GetPlayerServerId(PlayerId()) then
 | 
						|
        Citizen.Wait(2000)
 | 
						|
        
 | 
						|
        ExecuteCommand('ensure ' .. GetCurrentResourceName())
 | 
						|
    end
 | 
						|
end)
 | 
						|
 | 
						|
 | 
						|
RegisterNetEvent(GetCurrentResourceName() .. ':client:toggleDebug')
 | 
						|
AddEventHandler(GetCurrentResourceName() .. ':client:toggleDebug', function(val)
 | 
						|
    Config.debug = val
 | 
						|
end)
 | 
						|
 | 
						|
--- STATE DEBUG
 | 
						|
if Config.debug then
 | 
						|
    local function DrawStateData(vehicle, state)
 | 
						|
        local coords = GetEntityCoords(vehicle)
 | 
						|
        
 | 
						|
        SetTextScale(0.28, 0.28)
 | 
						|
        SetTextFont(4)
 | 
						|
        SetTextProportional(1)
 | 
						|
        SetTextDropshadow(1, 1, 1, 1, 255)
 | 
						|
        SetTextEdge(2, 0, 0, 0, 150)
 | 
						|
        SetTextDropShadow()
 | 
						|
        SetTextOutline()
 | 
						|
        SetTextCentre(0)
 | 
						|
        
 | 
						|
        AddTextEntry("roofbox_veh_state", json.encode(state) .. '\n\n~g~Open: ' .. json.encode(Entity(vehicle).state.kq_roofboxes_open))
 | 
						|
        SetTextEntry("roofbox_veh_state")
 | 
						|
        
 | 
						|
        SetDrawOrigin(coords, 0)
 | 
						|
        DrawText(0.0, 0.0)
 | 
						|
        
 | 
						|
        ClearDrawOrigin()
 | 
						|
    end
 | 
						|
    
 | 
						|
    --Citizen.CreateThread(function()
 | 
						|
    --    while true do
 | 
						|
    --        local sleep = 1000
 | 
						|
    --
 | 
						|
    --        local vehicle = GetVehiclePedIsUsing(PlayerPedId())
 | 
						|
    --        if vehicle > 0 then
 | 
						|
    --            sleep = 1
 | 
						|
    --
 | 
						|
    --            local state = GetVehicleRoofboxState(vehicle)
 | 
						|
    --            DrawStateData(vehicle, state)
 | 
						|
    --        end
 | 
						|
    --
 | 
						|
    --        Citizen.Wait(sleep)
 | 
						|
    --    end
 | 
						|
    --end)
 | 
						|
end
 |