151 lines
		
	
	
	
		
			6.8 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			151 lines
		
	
	
	
		
			6.8 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
RegisterKeyMapping("+trailerAttach", Config.Controlmessages.AttachVehicle, "keyboard", "g")
 | 
						|
RegisterKeyMapping("+trailerInteract", Config.Controlmessages.RampInteract, "keyboard", "e")
 | 
						|
RegisterKeyMapping("+trailerDetach", Config.Controlmessages.DetachAllVehicle, "keyboard", "h")
 | 
						|
 | 
						|
RegisterKeyMapping("+trailerWarp", "Get in attached vehicle", "keyboard", "f")
 | 
						|
RegisterKeyMapping("+trailerConnect", "Connect any trailer", "keyboard", "j")
 | 
						|
 | 
						|
function NotiAtt() -- Attached notification
 | 
						|
    BeginTextCommandThefeedPost("STRING")
 | 
						|
    AddTextComponentSubstringPlayerName(Config.NotiLoadMessage)
 | 
						|
    EndTextCommandThefeedPostTicker(true, true)
 | 
						|
end
 | 
						|
 | 
						|
function NotiDet() -- Detached notification
 | 
						|
    BeginTextCommandThefeedPost("STRING")
 | 
						|
    AddTextComponentSubstringPlayerName(Config.NotiUnLoadMessage)
 | 
						|
    EndTextCommandThefeedPostTicker(true, true)
 | 
						|
end
 | 
						|
 | 
						|
-- Use this function for job locking. If the job is correct, return true.
 | 
						|
-- Please refer to your framework's job system for how to implement, I do not support
 | 
						|
-- job checking integration. -Theebu
 | 
						|
function allowed()
 | 
						|
    return true
 | 
						|
end
 | 
						|
 | 
						|
--This function returns if the vehicle is locked or not when trying to get in the loaded vehicle from next to the trailer
 | 
						|
--false = NOT locked  true == LOCKED
 | 
						|
function IsVehicleLocked(car)
 | 
						|
 | 
						|
    return DecorGetInt(car, '_VEH_DOOR_LOCK_STATUS') == 2 or DecorGetInt(car, '_VEH_DOOR_LOCK_STATUS') == 10
 | 
						|
end
 | 
						|
 | 
						|
--Help Text Messages
 | 
						|
function message(lineOne, lineTwo, lineThree, duration)
 | 
						|
    BeginTextCommandDisplayHelp("THREESTRINGS")
 | 
						|
    AddTextComponentSubstringPlayerName(lineOne)
 | 
						|
    AddTextComponentSubstringPlayerName(lineTwo or "")
 | 
						|
    AddTextComponentSubstringPlayerName(lineThree or "")
 | 
						|
  
 | 
						|
    -- shape (always 0), loop (bool), makeSound (bool), duration (5000 max 5 sec)
 | 
						|
    EndTextCommandDisplayHelp(0, false, false, duration or 5000)
 | 
						|
end
 | 
						|
 | 
						|
if Config.UseTarget then
 | 
						|
    --QB CORE
 | 
						|
    if Config.Target == 'qb-target' then
 | 
						|
        exports['qb-target']:AddTargetBone({'boot', 'chassis', "door_dside_f", "door_dside_r", "door_pside_f", "door_pside_f", "bonnet"}, {
 | 
						|
            options = {
 | 
						|
                {
 | 
						|
                    icon = 'fa-solid fa-truck-ramp-box',
 | 
						|
                    label = 'Toggle Ramp',
 | 
						|
                    action = function(entity)
 | 
						|
                        interactCheck(entity)
 | 
						|
                    end,
 | 
						|
                    canInteract = function(entity, distance, data)
 | 
						|
                        return Config.Trailers[GetEntityModel(entity)] and allowed()
 | 
						|
                    end,
 | 
						|
                },
 | 
						|
                {
 | 
						|
                    icon = 'fa-solid fa-lock',
 | 
						|
                    label = 'Attach load',
 | 
						|
                    action = function(entity)
 | 
						|
                        attachAllCheck(entity)
 | 
						|
                    end,
 | 
						|
                    canInteract = function(entity, distance, data)
 | 
						|
                        return Config.Trailers[GetEntityModel(entity)] and allowed()
 | 
						|
                    end,
 | 
						|
                },
 | 
						|
                {
 | 
						|
                    icon = 'fa-solid fa-lock-open',
 | 
						|
                    label = 'Detach load',
 | 
						|
                    action = function(entity)
 | 
						|
                        detachAllCheck(entity)
 | 
						|
                    end,
 | 
						|
                    canInteract = function(entity, distance, data)
 | 
						|
                        return Config.Trailers[GetEntityModel(entity)] and allowed()
 | 
						|
                    end,
 | 
						|
                },
 | 
						|
                {
 | 
						|
                    icon = 'fa-solid fa-lock-open',
 | 
						|
                    label = 'Attach/Detach Vehicle',
 | 
						|
                    action = function(entity)
 | 
						|
                        attachCheck2(entity)
 | 
						|
                    end,
 | 
						|
                    canInteract = function(entity, distance, data)
 | 
						|
                        local vehCoords = GetEntityCoords(entity)
 | 
						|
                        local vehicle = getVehicleInDirection(vector3(vehCoords.x, vehCoords.y, vehCoords.z + 1.0), vector3(vehCoords.x, vehCoords.y, vehCoords.z - 8.0), entity)
 | 
						|
                        return allowed() and DoesEntityExist(vehicle) and Config.Trailers[GetEntityModel(vehicle)] and vehicle ~= entity
 | 
						|
                    end,
 | 
						|
                }
 | 
						|
            },
 | 
						|
            distance = 5.5,
 | 
						|
        })
 | 
						|
    elseif Config.Target == 'ox_target' then
 | 
						|
        exports["ox_target"]:addGlobalVehicle(
 | 
						|
            {
 | 
						|
                {
 | 
						|
                    icon = 'fa-solid fa-truck-ramp-box',
 | 
						|
                    label = 'Toggle Ramp',
 | 
						|
                    bones = {'boot', 'chassis', "door_dside_f", "door_dside_r", "door_pside_f", "door_pside_f", "bonnet"},
 | 
						|
                    distance = 2.0,
 | 
						|
                    canInteract = function(entity, distance, data)
 | 
						|
                        return Config.Trailers[GetEntityModel(entity)] and allowed()
 | 
						|
                    end,
 | 
						|
                    onSelect = function(data)
 | 
						|
                        interactCheck(data.entity)
 | 
						|
                    end
 | 
						|
                },
 | 
						|
                {
 | 
						|
                    icon = 'fa-solid fa-lock',
 | 
						|
                    label = 'Attach load',
 | 
						|
                    bones = 'boot', 'chassis', "door_dside_f", "door_dside_r", "door_pside_f", "door_pside_f", "bonnet",
 | 
						|
                    distance = 2.0,
 | 
						|
                    canInteract = function(entity, distance, data)
 | 
						|
                        return Config.Trailers[GetEntityModel(entity)] and allowed()
 | 
						|
                    end,
 | 
						|
                    onSelect = function(data)
 | 
						|
                        attachAllCheck(data.entity)
 | 
						|
                    end
 | 
						|
                },
 | 
						|
                {
 | 
						|
                    icon = 'fa-solid fa-lock-open',
 | 
						|
                    label = 'Detach load',
 | 
						|
                    bones = 'boot', 'chassis', "door_dside_f", "door_dside_r", "door_pside_f", "door_pside_f", "bonnet",
 | 
						|
                    distance = 2.0,
 | 
						|
                    canInteract = function(entity, distance, data)
 | 
						|
                        return Config.Trailers[GetEntityModel(entity)] and allowed()
 | 
						|
                    end,
 | 
						|
                    onSelect = function(data)
 | 
						|
                        detachAllCheck(data.entity)
 | 
						|
                    end
 | 
						|
                },
 | 
						|
                {
 | 
						|
                    icon = 'fa-solid fa-lock-open',
 | 
						|
                    label = 'Attach/Detach Vehicle',
 | 
						|
                    bones = 'boot', 'chassis', "door_dside_f", "door_dside_r", "door_pside_f", "door_pside_f", "bonnet",
 | 
						|
                    distance = 2.0,
 | 
						|
                    canInteract = function(entity, distance, data)
 | 
						|
                        local vehCoords = GetEntityCoords(entity)
 | 
						|
                        local vehicle = getVehicleInDirection(vector3(vehCoords.x, vehCoords.y, vehCoords.z + 1.0), vector3(vehCoords.x, vehCoords.y, vehCoords.z - 8.0), entity)
 | 
						|
                        return allowed() and DoesEntityExist(vehicle) and Config.Trailers[GetEntityModel(vehicle)] and vehicle ~= entity
 | 
						|
                    end,
 | 
						|
                    onSelect = function(data)
 | 
						|
                        attachCheck2(data.entity)
 | 
						|
                    end
 | 
						|
                }
 | 
						|
            }
 | 
						|
        )
 | 
						|
    end
 | 
						|
end
 |