forked from Simnation/Main
241 lines
8.1 KiB
Lua
241 lines
8.1 KiB
Lua
if not Config.DisableExtKeyControls then
|
|
RegisterKeyMapping('+bedLower', Config.Controlmessages.LowerBed, 'keyboard', 'DOWN')
|
|
RegisterKeyMapping('+bedRaise', Config.Controlmessages.RaiseBed, 'keyboard', 'UP')
|
|
RegisterKeyMapping('+flatbedWheel', Config.Controlmessages.WheelLift, 'keyboard', 'H')
|
|
if Config.EnableRopes then
|
|
RegisterKeyMapping('+flatbedWind', Config.Controlmessages.WindWinch..' / '..Config.Controlmessages.GrabWinch, 'keyboard', 'LEFT')
|
|
RegisterKeyMapping('+flatbedUWind', Config.Controlmessages.ExtendWinch..' / '..Config.Controlmessages.ReturnWinch, 'keyboard', 'RIGHT')
|
|
RegisterKeyMapping('+flatbedRope', Config.Controlmessages.DetachWinch..' / '..Config.Controlmessages.AttachWinch, 'keyboard', 'G')
|
|
end
|
|
end
|
|
|
|
if not Config.DisableInVehControl then
|
|
RegisterKeyMapping('+flatbedAtt', Config.Controlmessages.AttachVehicle, 'keyboard', 'E')
|
|
end
|
|
|
|
RegisterKeyMapping('+flatbedWarp', 'Flatbed Get In Car', 'keyboard', 'F')
|
|
|
|
function loadComplete(car, truck)
|
|
--This is called once a vehicle is loaded onto a truck
|
|
|
|
end
|
|
|
|
--allowed() is the function that determines if the player is allowed to use the controls. DO NOT RENAME THE FUNCTION
|
|
--Place whatever job check code you want in here, return true if allowed, false if not
|
|
function allowed()
|
|
return true
|
|
end
|
|
|
|
--This function allows checks for vehicle ownership before attaching ropes or to the bed
|
|
-- args [truck(entity), car(entity)]
|
|
function checkOwnership(truck, car)
|
|
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
|
|
|
|
--======NOTIFICATIONS======--
|
|
function LoadCompleteNotif()
|
|
EndTextCommandThefeedPostTickerForced(1,1)
|
|
ThefeedNextPostBackgroundColor(184)
|
|
BeginTextCommandThefeedPost("STRING")
|
|
AddTextComponentSubstringPlayerName(Config.NotiLoadCompleteMessage)
|
|
EndTextCommandThefeedPostTicker(true, true)
|
|
Wait(3000)
|
|
EndTextCommandThefeedPostTickerForced(1,1)
|
|
end
|
|
|
|
function UnLoadCompleteNotif()
|
|
EndTextCommandThefeedPostTickerForced(1,1)
|
|
ThefeedNextPostBackgroundColor(184)
|
|
BeginTextCommandThefeedPost("STRING")
|
|
AddTextComponentSubstringPlayerName(Config.NotiUnLoadCompleteMessage)
|
|
EndTextCommandThefeedPostTicker(true, true)
|
|
Wait(3000)
|
|
EndTextCommandThefeedPostTickerForced(1,1)
|
|
end
|
|
|
|
function FBBlockedNotif()
|
|
EndTextCommandThefeedPostTickerForced(1,1)
|
|
ThefeedNextPostBackgroundColor(6)
|
|
BeginTextCommandThefeedPost("STRING")
|
|
AddTextComponentSubstringPlayerName(Config.NotiFBBlockedMessage)
|
|
EndTextCommandThefeedPostTicker(true, true)
|
|
Wait(3000)
|
|
EndTextCommandThefeedPostTickerForced(1,1)
|
|
end
|
|
|
|
function BlockedMessage()
|
|
EndTextCommandThefeedPostTickerForced(1,1)
|
|
ThefeedNextPostBackgroundColor(6)
|
|
BeginTextCommandThefeedPost("STRING")
|
|
AddTextComponentSubstringPlayerName(Config.NotiBlockedMessage)
|
|
EndTextCommandThefeedPostTicker(true, true)
|
|
Wait(3000)
|
|
EndTextCommandThefeedPostTickerForced(1,1)
|
|
end
|
|
|
|
|
|
|
|
--Help Text Messages
|
|
function message(lineOne, lineTwo, lineThree, duration, loop)
|
|
BeginTextCommandDisplayHelp("THREESTRINGS")
|
|
AddTextComponentSubstringPlayerName(lineOne)
|
|
AddTextComponentSubstringPlayerName(lineTwo or "")
|
|
AddTextComponentSubstringPlayerName(lineThree or "")
|
|
|
|
-- shape (always 0), loop (bool), makeSound (bool), duration (5000 max 5 sec)
|
|
EndTextCommandDisplayHelp(0, loop, false, duration or 5000)
|
|
end
|
|
|
|
|
|
--Advanced Functions
|
|
function validTruck(veh)
|
|
local playerPos = GetEntityCoords(PlayerPedId())
|
|
local truckCoords = GetEntityCoords(veh)
|
|
if trucks and #trucks > 0 and has_value(trucks, GetEntityModel(veh)) and #(playerPos - truckCoords) < 10 then
|
|
return true
|
|
end
|
|
return false
|
|
end
|
|
|
|
--Target
|
|
if Config.UseTarget then
|
|
--QB CORE
|
|
local bones = {"seat_dside_f", "seat_dside_r", "seat_pside_f", "seat_pside_f", 'boot', "scoop", 'chassis'}
|
|
local options = {}
|
|
options[#options+1] = {
|
|
num = 1,
|
|
icon = 'fa-solid fa-car-side',
|
|
label = '[Winch] Attach Winch',
|
|
action = function(entity)
|
|
playerAttach(entity)
|
|
end,
|
|
canInteract = function(entity, distance, data)
|
|
return winchInHand and Config.EnableRopes
|
|
end,
|
|
}
|
|
options[#options+1] = {
|
|
num = 2,
|
|
icon = 'fa-solid fa-angles-left',
|
|
label = '[Winch] Attach / Wind Winch',
|
|
action = function(entity)
|
|
TriggerEvent("ebu_flatbeds:client:targetflatbedWind", entity)
|
|
end,
|
|
canInteract = function(entity, distance, data)
|
|
return Config.Trucks[GetEntityModel(entity)] and Config.Trucks[GetEntityModel(entity)].type ~= "static" and allowed() and Config.EnableRopes
|
|
end,
|
|
}
|
|
options[#options+1] = {
|
|
num = 3,
|
|
icon = 'fa-solid fa-angles-right',
|
|
label = '[Winch] UnWind Winch',
|
|
action = function(entity)
|
|
TriggerEvent("ebu_flatbeds:client:targetflatbedUnWind", entity)
|
|
end,
|
|
canInteract = function(entity, distance, data)
|
|
return Config.Trucks[GetEntityModel(entity)] and Config.Trucks[GetEntityModel(entity)].type ~= "static" and allowed() and Config.EnableRopes
|
|
end,
|
|
}
|
|
options[#options+1] = {
|
|
num = 4,
|
|
icon = 'fa-solid fa-angles-up',
|
|
label = '[Winch] Raise Bed',
|
|
action = function(entity)
|
|
TriggerEvent("ebu_flatbeds:client:targetflatbedRaise", entity)
|
|
end,
|
|
canInteract = function(entity, distance, data)
|
|
return Config.Trucks[GetEntityModel(entity)] and Config.Trucks[GetEntityModel(entity)].type ~= "static" and allowed()
|
|
end,
|
|
}
|
|
options[#options+1] = {
|
|
num = 5,
|
|
icon = 'fa-solid fa-angles-down',
|
|
label = '[Winch] Lower Bed',
|
|
action = function(entity)
|
|
TriggerEvent("ebu_flatbeds:client:targetflatbedLower", entity)
|
|
end,
|
|
canInteract = function(entity, distance, data)
|
|
return Config.Trucks[GetEntityModel(entity)] and Config.Trucks[GetEntityModel(entity)].type ~= "static" and allowed()
|
|
end,
|
|
}
|
|
options[#options+1] = {
|
|
num = 6,
|
|
icon = 'fa-solid fa-ban',
|
|
label = '[Winch] Remove Winch',
|
|
action = function(entity)
|
|
TriggerEvent("ebu_flatbeds:client:targetflatbedRope", entity)
|
|
end,
|
|
canInteract = function(entity, distance, data)
|
|
return Config.Trucks[GetEntityModel(entity)] and Config.Trucks[GetEntityModel(entity)].type ~= "static" and allowed() and Config.EnableRopes
|
|
end,
|
|
}
|
|
options[#options+1] = {
|
|
num = 7,
|
|
icon = 'fa-solid fa-car-side',
|
|
label = '[Winch] Attach / Detach Vehicle',
|
|
action = function(entity)
|
|
TriggerEvent("ebu_flatbeds:client:targetflatbedAtt", entity)
|
|
end,
|
|
canInteract = function(entity, distance, data)
|
|
return Config.Trucks[GetEntityModel(entity)] and Config.Trucks[GetEntityModel(entity)].type ~= "static" and allowed()
|
|
end,
|
|
}
|
|
options[#options+1] = {
|
|
num = 8,
|
|
icon = 'fa-solid fa-truck-ramp-box',
|
|
label = '[Winch] Toggle Wheel Lift',
|
|
action = function(entity)
|
|
TriggerEvent("ebu_flatbeds:client:targetflatbedWheel", entity)
|
|
end,
|
|
canInteract = function(entity, distance, data)
|
|
return Config.Trucks[GetEntityModel(entity)] and Config.Trucks[GetEntityModel(entity)].wheellift and allowed() and Config.EnableRopes
|
|
end,
|
|
}
|
|
--Grab winch from truck
|
|
options[#options+1] = {
|
|
num = 9,
|
|
icon = 'fa-solid fa-car-side',
|
|
label = '[Winch] Grab Winch',
|
|
action = function(entity)
|
|
playerGrab(entity, PlayerPedId())
|
|
end,
|
|
canInteract = function(entity, distance, data)
|
|
return Config.Trucks[GetEntityModel(entity)] and Config.Trucks[GetEntityModel(entity)].type ~= "static" and allowed() and Config.EnableRopes
|
|
end,
|
|
}
|
|
--Grab winch from winched car
|
|
options[#options+1] = {
|
|
num = 10,
|
|
icon = 'fa-solid fa-car-side',
|
|
label = '[Winch] Grab Veh Winch',
|
|
action = function(entity)
|
|
playerGrabVeh(entity, PlayerPedId())
|
|
end,
|
|
canInteract = function(entity, distance, data)
|
|
return getIsVehWinched(entity) and allowed() and Config.EnableRopes
|
|
end,
|
|
}
|
|
options[#options+1] = {
|
|
num =11,
|
|
icon = 'fa-solid fa-car-side',
|
|
label = '[Winch] Return Winch',
|
|
action = function(entity)
|
|
playerReturn(entity)
|
|
end,
|
|
canInteract = function(entity, distance, data)
|
|
return Config.Trucks[GetEntityModel(entity)] and Config.Trucks[GetEntityModel(entity)].type ~= "static" and winchInHand and Config.EnableRopes
|
|
end,
|
|
}
|
|
|
|
exports['qb-target']:AddTargetBone(bones, {
|
|
options = options,
|
|
distance = 5.5
|
|
})
|
|
|
|
end
|
|
|