1
0
Fork 0
forked from Simnation/Main
Main/resources/[carscripts]/ebu_trailer/client/utils.lua

152 lines
6.8 KiB
Lua
Raw Normal View History

2025-07-09 15:19:44 +02:00
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