From 5cc91ca942ea59dba517e0ee040b7eaa1f8b1d50 Mon Sep 17 00:00:00 2001 From: KingMcDonalds Date: Sat, 28 Feb 2026 14:53:02 -0800 Subject: [PATCH] adding tow script --- .../Maxlasd18charger/__resource.lua | 20 + .../Maxlasd18charger/carcols.meta | 1363 +++++++++++++++++ .../Maxlasd18charger/carvariations.meta | 38 + .../Maxlasd18charger/handling.meta | 67 + .../stream/Maxlasd18charger+hi.ytd | 3 + .../stream/Maxlasd18charger.yft | 3 + .../stream/Maxlasd18charger.ytd | 3 + .../stream/Maxlasd18charger_hi.yft | 3 + .../[lasd-packs]/Maxlasd18charger/ulc.lua | 752 +++++++++ .../Maxlasd18charger/vehicles.meta | 138 ++ .../[lasd-packs]/lasd22tunm/vehicles.meta | 2 +- .../lasd23tunm/stream/lasd23tunm.ytd | 4 +- .../[lasd-packs]/lasd23tunm/vehicles.meta | 2 +- resources/[EGRP-CarPacks]/ebu_flatbeds/.fxap | Bin 0 -> 178 bytes .../[EGRP-CarPacks]/ebu_flatbeds/Readme.md | 67 + .../ebu_flatbeds/client/client.lua | Bin 0 -> 46029 bytes .../ebu_flatbeds/client/utils.lua | 241 +++ .../[EGRP-CarPacks]/ebu_flatbeds/config.lua | 1143 ++++++++++++++ .../ebu_flatbeds/fxmanifest.lua | 27 + .../ebu_flatbeds/server/server.lua | Bin 0 -> 4067 bytes resources/[EGRP-CarPacks]/ebu_trailer/.fxap | Bin 0 -> 178 bytes .../ebu_trailer/client/client.lua | Bin 0 -> 15166 bytes .../ebu_trailer/client/utils.lua | 151 ++ .../[EGRP-CarPacks]/ebu_trailer/config.lua | 352 +++++ .../ebu_trailer/fxmanifest.lua | 23 + .../[EGRP-CarPacks]/ebu_trailer/readme.md | 16 + .../ebu_trailer/server/server.lua | Bin 0 -> 857 bytes .../Discord-VehRestriction/config.lua | 2 + resources/lvc/SIRENS.lua | 2 +- resources/ulc/config.lua | 2 +- server.cfg | 6 + 31 files changed, 4424 insertions(+), 6 deletions(-) create mode 100644 resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/__resource.lua create mode 100644 resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/carcols.meta create mode 100644 resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/carvariations.meta create mode 100644 resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/handling.meta create mode 100644 resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/stream/Maxlasd18charger+hi.ytd create mode 100644 resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/stream/Maxlasd18charger.yft create mode 100644 resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/stream/Maxlasd18charger.ytd create mode 100644 resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/stream/Maxlasd18charger_hi.yft create mode 100644 resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/ulc.lua create mode 100644 resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/vehicles.meta create mode 100644 resources/[EGRP-CarPacks]/ebu_flatbeds/.fxap create mode 100644 resources/[EGRP-CarPacks]/ebu_flatbeds/Readme.md create mode 100644 resources/[EGRP-CarPacks]/ebu_flatbeds/client/client.lua create mode 100644 resources/[EGRP-CarPacks]/ebu_flatbeds/client/utils.lua create mode 100644 resources/[EGRP-CarPacks]/ebu_flatbeds/config.lua create mode 100644 resources/[EGRP-CarPacks]/ebu_flatbeds/fxmanifest.lua create mode 100644 resources/[EGRP-CarPacks]/ebu_flatbeds/server/server.lua create mode 100644 resources/[EGRP-CarPacks]/ebu_trailer/.fxap create mode 100644 resources/[EGRP-CarPacks]/ebu_trailer/client/client.lua create mode 100644 resources/[EGRP-CarPacks]/ebu_trailer/client/utils.lua create mode 100644 resources/[EGRP-CarPacks]/ebu_trailer/config.lua create mode 100644 resources/[EGRP-CarPacks]/ebu_trailer/fxmanifest.lua create mode 100644 resources/[EGRP-CarPacks]/ebu_trailer/readme.md create mode 100644 resources/[EGRP-CarPacks]/ebu_trailer/server/server.lua diff --git a/resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/__resource.lua b/resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/__resource.lua new file mode 100644 index 000000000..e85b41837 --- /dev/null +++ b/resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/__resource.lua @@ -0,0 +1,20 @@ +resource_manifest_version '77731fab-63ca-442c-a67b-abc70f28dfa5' + +files { + 'vehicles.meta', + 'carvariations.meta', + 'carcols.meta', + 'handling.meta', + 'vehiclelayouts.meta', -- Not Required +} + +data_file 'HANDLING_FILE' 'handling.meta' +data_file 'VEHICLE_METADATA_FILE' 'vehicles.meta' +data_file 'CARCOLS_FILE' 'carcols.meta' +data_file 'VEHICLE_VARIATION_FILE' 'carvariations.meta' +data_file 'VEHICLE_LAYOUTS_FILE' 'vehiclelayouts.meta' -- Not Required + + +client_script { + 'vehicle_names.lua' -- Not Required +} \ No newline at end of file diff --git a/resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/carcols.meta b/resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/carcols.meta new file mode 100644 index 000000000..6a46bd68e --- /dev/null +++ b/resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/carcols.meta @@ -0,0 +1,1363 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + VehicleLight_car_utility + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Maxlasd18charger + + + + + + Maxlasd18charger + + + + + + + VehicleLight_sirenlight + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/carvariations.meta b/resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/carvariations.meta new file mode 100644 index 000000000..d5b4193e7 --- /dev/null +++ b/resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/carvariations.meta @@ -0,0 +1,38 @@ + + + + + + Maxlasd18charger + + + + 0 + 0 + 0 + 0 + 28 + 0 + + + + + + + + 0_default_modkit + + + + + + Police guv plate + + + + + + + + + \ No newline at end of file diff --git a/resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/handling.meta b/resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/handling.meta new file mode 100644 index 000000000..4de441d9e --- /dev/null +++ b/resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/handling.meta @@ -0,0 +1,67 @@ + + + + + + 18CHARGER + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 440010 + 0 + 0 + AVERAGE + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/stream/Maxlasd18charger+hi.ytd b/resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/stream/Maxlasd18charger+hi.ytd new file mode 100644 index 000000000..75c7eef7a --- /dev/null +++ b/resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/stream/Maxlasd18charger+hi.ytd @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f2189fbe8d7c4e5b80f3122ab5c6fa1d2370b5a9569e72c095347b46efebaabf +size 2205553 diff --git a/resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/stream/Maxlasd18charger.yft b/resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/stream/Maxlasd18charger.yft new file mode 100644 index 000000000..e62145187 --- /dev/null +++ b/resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/stream/Maxlasd18charger.yft @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:863640e11756e55b712f9704ee288c9abc4fec422db895f3eeb7d1ab56785861 +size 2167805 diff --git a/resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/stream/Maxlasd18charger.ytd b/resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/stream/Maxlasd18charger.ytd new file mode 100644 index 000000000..84048eebd --- /dev/null +++ b/resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/stream/Maxlasd18charger.ytd @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:704340d987b655ad6d728fe54ecf38a6a07fe51e9ceb90910885b8a7eca5dcdf +size 6394599 diff --git a/resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/stream/Maxlasd18charger_hi.yft b/resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/stream/Maxlasd18charger_hi.yft new file mode 100644 index 000000000..822694ab4 --- /dev/null +++ b/resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/stream/Maxlasd18charger_hi.yft @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa01eb98159c928a6b0d52da3f38aeb5beaf2661936f67d4cbec05d8d5a9d20a +size 6086655 diff --git a/resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/ulc.lua b/resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/ulc.lua new file mode 100644 index 000000000..2b65552b7 --- /dev/null +++ b/resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/ulc.lua @@ -0,0 +1,752 @@ + +--[[ + Ultimate Lighting Controller Config + the ULC resource is required to use this configuration + get the resource here: https://github.com/Flohhhhh/ultimate-lighting-controller/releases/latest + To learn how to setup and use ULC visit here: https://docs.dwnstr.com/ulc/overview +]] + +return +{names = {"lasd16asapc","lasd16asapd","lasd16fpiu","lasd16fpiub"}, + steadyBurnConfig = { + forceOn = false, useTime = false, + disableWithLights = false, + sbExtras = {} + }, + parkConfig = { + usePark = false, + useSync = false, + syncWith = {}, + pExtras = {}, + dExtras = {} + }, + hornConfig = { + useHorn = false, + hornExtras = {}, + disableExtras = {} + }, + brakeConfig = { + useBrakes = false, + speedThreshold = 3, + brakeExtras = {}, + disableExtras = {} + }, + reverseConfig = { + useReverse = false, + reverseExtras = {}, + disableExtras = {} + }, + doorConfig = { + useDoors = false, + driverSide = {enable = {}, disable = {}}, + passSide = {enable = {}, disable = {}}, + trunk = {enable ={}, disable = {}} + }, + buttons = { + {label = "Stage 1", key = 1, color = "red", extra = 2, linkedExtras = {5,1}, oppositeExtras = {}, offExtras = {3,4}, repair = false}, + {label = "Stage 2", key = 2, color = "red", extra = 6, linkedExtras = {2,3}, oppositeExtras = {}, offExtras = {1,4,5}, repair = false}, + {label = "Stage 3", key = 3, color = "red", extra = 4, linkedExtras = {3}, oppositeExtras = {}, offExtras = {1,2,5}, repair = false}, + {label = "Parking Lights", key = 4, color = "amber", extra = 8, linkedExtras = {}, oppositeExtras = {}, offExtras = {}, repair = false} + }, + stages = { + useStages = false, + stageKeys = {}, + }, + defaultStages = { + useDefaults = false, + enableKeys = {}, + disableKeys = {} + }, +}, + +{names = {"lasd16asap","lasd16asapb","lasd16rfr","lasd16rfrb"}, + steadyBurnConfig = { + forceOn = false, useTime = false, + disableWithLights = false, + sbExtras = {} + }, + parkConfig = { + usePark = false, + useSync = false, + syncWith = {}, + pExtras = {}, + dExtras = {} + }, + hornConfig = { + useHorn = false, + hornExtras = {}, + disableExtras = {} + }, + brakeConfig = { + useBrakes = false, + speedThreshold = 3, + brakeExtras = {}, + disableExtras = {} + }, + reverseConfig = { + useReverse = false, + reverseExtras = {}, + disableExtras = {} + }, + doorConfig = { + useDoors = false, + driverSide = {enable = {}, disable = {}}, + passSide = {enable = {}, disable = {}}, + trunk = {enable ={}, disable = {}} + }, + buttons = { + {label = "Stage 1", key = 1, color = "green", extra = 1, linkedExtras = {2,5}, oppositeExtras = {}, offExtras = {3,4,6}, repair = false}, + {label = "Stage 2", key = 2, color = "green", extra = 2, linkedExtras = {3}, oppositeExtras = {}, offExtras = {1,4,5,6}, repair = false}, + {label = "Stage 3", key = 3, color = "green", extra = 3, linkedExtras = {4}, oppositeExtras = {}, offExtras = {1,2,5,6}, repair = false}, + {label = "Parking Lights", key = 4, color = "amber", extra = 8, linkedExtras = {}, oppositeExtras = {}, offExtras = {}, repair = false} + }, + stages = { + useStages = false, + stageKeys = {}, + }, + defaultStages = { + useDefaults = false, + enableKeys = {}, + disableKeys = {} + } +}, +{names = {"lasd13fasap","lasd13fpiu1","lasd13fpiu2","lasd13fpiu3","lasd13fpiu4","lasd13fpiu5","lasd13fsfpiu"}, + steadyBurnConfig = { + forceOn = false, useTime = false, + disableWithLights = false, + sbExtras = {} + }, + parkConfig = { + usePark = false, + useSync = false, + syncWith = {}, + pExtras = {}, + dExtras = {} + }, + hornConfig = { + useHorn = false, + hornExtras = {}, + disableExtras = {} + }, + brakeConfig = { + useBrakes = false, + speedThreshold = 3, + brakeExtras = {}, + disableExtras = {} + }, + reverseConfig = { + useReverse = false, + reverseExtras = {}, + disableExtras = {} + }, + doorConfig = { + useDoors = false, + driverSide = {enable = {}, disable = {}}, + passSide = {enable = {}, disable = {}}, + trunk = {enable ={}, disable = {}} + }, + buttons = { + {label = "Stage 1", key = 1, color = "red", extra = 5, linkedExtras = {}, oppositeExtras = {}, offExtras = {6}, repair = false}, + {label = "Stage 2", key = 2, color = "red", extra = 6, linkedExtras = {}, oppositeExtras = {}, offExtras = {5}, repair = false} + }, + stages = { + useStages = false, + stageKeys = {}, + }, + defaultStages = { + useDefaults = false, + enableKeys = {}, + disableKeys = {} + } +}, +{names = {"lacpvic","lasd06m","lasd06u","lasdcrownvic","lasd18taurus","Maxlasd18charger","lasd18chrg","lasdchg","lasd18taurus","lasdchrg14","lasdparamount","lasdsd7100","lasdvicslicktop","lasd05cvpi","lasd06cvpi","lasd06cvpicarson","lasd06cvpisd7100","lasd08cvpi","lasd08cvpilomita","lasd08cvpitransit"}, + steadyBurnConfig = { + forceOn = false, useTime = false, + disableWithLights = false, + sbExtras = {} + }, + parkConfig = { + usePark = false, + useSync = false, + syncWith = {}, + pExtras = {}, + dExtras = {} + }, + hornConfig = { + useHorn = false, + hornExtras = {}, + disableExtras = {} + }, + brakeConfig = { + useBrakes = false, + speedThreshold = 3, + brakeExtras = {}, + disableExtras = {} + }, + reverseConfig = { + useReverse = false, + reverseExtras = {}, + disableExtras = {} + }, + doorConfig = { + useDoors = false, + driverSide = {enable = {}, disable = {}}, + passSide = {enable = {}, disable = {}}, + trunk = {enable ={}, disable = {}} + }, + buttons = { + {label = "Stage 1", key = 1, color = "green", extra = 7, linkedExtras = {8,9}, oppositeExtras = {}, offExtras = {6}, repair = false}, + {label = "Stage 2", key = 2, color = "green", extra = 8, linkedExtras = {7}, oppositeExtras = {}, offExtras = {9}, repair = false}, + {label = "Stage 3", key = 3, color = "green", extra = 6, linkedExtras = {8}, oppositeExtras = {}, offExtras = {7,9}, repair = false} + }, + stages = { + useStages = false, + stageKeys = {}, + }, + defaultStages = { + useDefaults = false, + enableKeys = {}, + disableKeys = {} + } +}, +{names = {"lasd08tahoe","lasd08tahoe2","lasd14tahoe","lasd06tahoe","lasd15k9b","lasd15tahoeb","lasdexp","lasdexp2","lasdfpiu5","lasdtahoe4","lasdtahoe","lasdtahoe2","lasdtahoe3","lasd15k9","lasd15k9b","lasd15tahoe","lasd15tahoeb","lasd20k9","lasd20lp","lasd20tahoe","lasd20tfs","lasd20lp","lasd20tfs","lasd20tunm","lasdtahoelan"}, + steadyBurnConfig = { + forceOn = false, useTime = false, + disableWithLights = false, + sbExtras = {} + }, + parkConfig = { + usePark = false, + useSync = false, + syncWith = {}, + pExtras = {}, + dExtras = {} + }, + hornConfig = { + useHorn = false, + hornExtras = {}, + disableExtras = {} + }, + brakeConfig = { + useBrakes = false, + speedThreshold = 3, + brakeExtras = {}, + disableExtras = {} + }, + reverseConfig = { + useReverse = false, + reverseExtras = {}, + disableExtras = {} + }, + doorConfig = { + useDoors = false, + driverSide = {enable = {}, disable = {}}, + passSide = {enable = {}, disable = {}}, + trunk = {enable ={}, disable = {}} + }, + buttons = { + {label = "Stage 1", key = 1, color = "green", extra = 1, linkedExtras = {3}, oppositeExtras = {}, offExtras = {4,5,6,2}, repair = false}, + {label = "Stage 2", key = 2, color = "green", extra = 7, linkedExtras = {3,4,6,2}, oppositeExtras = {}, offExtras = {1,5}, repair = false}, + {label = "Stage 3", key = 3, color = "green", extra = 8, linkedExtras = {5,6,4}, oppositeExtras = {}, offExtras = {1,2,3}, repair = false} + }, + stages = { + useStages = false, + stageKeys = {}, + }, + defaultStages = { + useDefaults = false, + enableKeys = {}, + disableKeys = {} + } +}, +{names = {"lasd20lp"}, + steadyBurnConfig = { + forceOn = false, useTime = false, + disableWithLights = false, + sbExtras = {} + }, + parkConfig = { + usePark = false, + useSync = false, + syncWith = {}, + pExtras = {}, + dExtras = {} + }, + hornConfig = { + useHorn = false, + hornExtras = {}, + disableExtras = {} + }, + brakeConfig = { + useBrakes = false, + speedThreshold = 3, + brakeExtras = {}, + disableExtras = {} + }, + reverseConfig = { + useReverse = false, + reverseExtras = {}, + disableExtras = {} + }, + doorConfig = { + useDoors = false, + driverSide = {enable = {}, disable = {}}, + passSide = {enable = {}, disable = {}}, + trunk = {enable ={}, disable = {}} + }, + buttons = { + {label = "Stage 1", key = 1, color = "green", extra = 1, linkedExtras = {3}, oppositeExtras = {}, offExtras = {2,4,5}, repair = false}, + {label = "Stage 2", key = 2, color = "green", extra = 6, linkedExtras = {2,3,5}, oppositeExtras = {}, offExtras = {4,1}, repair = false}, + {label = "Stage 3", key = 3, color = "green", extra = 7, linkedExtras = {4,5}, oppositeExtras = {}, offExtras = {1,3,2}, repair = false} + }, + stages = { + useStages = false, + stageKeys = {}, + }, + defaultStages = { + useDefaults = false, + enableKeys = {}, + disableKeys = {} + } +}, +{names = {"met2"}, + steadyBurnConfig = { + forceOn = false, useTime = false, + disableWithLights = false, + sbExtras = {} + }, + parkConfig = { + usePark = false, + useSync = false, + syncWith = {}, + pExtras = {}, + dExtras = {} + }, + hornConfig = { + useHorn = false, + hornExtras = {}, + }, + brakeConfig = { + useBrakes = false, + speedThreshold = 3, + brakeExtras = {}, + disableExtras = {} + }, + reverseConfig = { + useReverse = false, + reverseExtras = {} + }, + doorConfig = { + useDoors = false, + driverSide = {enable = {}, disable = {}}, + passSide = {enable = {}, disable = {}}, + trunk = {enable ={}, disable = {}} + }, + buttons = { + {label = "Stage 1", key = 1, color = "green", extra = 5, linkedExtras = {}, oppositeExtras = {}, offExtras = {3,6,7,8,9,10,11,12}, repair = false}, + {label = "Stage 2", key = 2, color = "green", extra = 6, linkedExtras = {7,8,9}, oppositeExtras = {}, offExtras = {3,5,10,11,12}, repair = false}, + {label = "Stage 3", key = 3, color = "green", extra = 10, linkedExtras = {3,11,12}, oppositeExtras = {}, offExtras = {4,5,6,7,8,9}, repair = false}, + {label = "Steady Spotlights", key = 6, color = "green", extra = 4, linkedExtras = {}, oppositeExtras = {}, offExtras = {3,10,11,12}, repair = false} + }, + defaultStages = { + useDefaults = true, + enableKeys = {1}, + disableKeys = {2,3,6} + } +}, +{names = {"met3"}, + steadyBurnConfig = { + forceOn = false, useTime = false, + disableWithLights = false, + sbExtras = {} + }, + parkConfig = { + usePark = false, + useSync = false, + syncWith = {}, + pExtras = {}, + dExtras = {} + }, + hornConfig = { + useHorn = false, + hornExtras = {}, + }, + brakeConfig = { + useBrakes = false, + speedThreshold = 3, + brakeExtras = {}, + disableExtras = {} + }, + reverseConfig = { + useReverse = false, + reverseExtras = {} + }, + doorConfig = { + useDoors = false, + driverSide = {enable = {}, disable = {}}, + passSide = {enable = {}, disable = {}}, + trunk = {enable ={}, disable = {}} + }, + buttons = { + {label = "Stage 1", key = 1, color = "green", extra = 5, linkedExtras = {}, oppositeExtras = {}, offExtras = {3,6,7,8,9,10,11,12}, repair = false}, + {label = "Stage 2", key = 2, color = "green", extra = 6, linkedExtras = {7,8,9}, oppositeExtras = {}, offExtras = {3,5,10,11,12}, repair = false}, + {label = "Stage 3", key = 3, color = "green", extra = 10, linkedExtras = {3,11,12}, oppositeExtras = {}, offExtras = {4,5,6,7,8,9}, repair = false}, + {label = "Steady Spotlights", key = 6, color = "green", extra = 4, linkedExtras = {}, oppositeExtras = {}, offExtras = {3,10,11,12}, repair = false} + }, + defaultStages = { + useDefaults = true, + enableKeys = {1}, + disableKeys = {2,3,6} + } +}, +{names = {"sd20asap"}, + steadyBurnConfig = { + forceOn = false, useTime = false, + disableWithLights = false, + sbExtras = {} + }, + parkConfig = { + usePark = false, + useSync = false, + syncWith = {}, + pExtras = {}, + dExtras = {} + }, + hornConfig = { + useHorn = false, + hornExtras = {}, + disableExtras = {} + }, + brakeConfig = { + useBrakes = false, + speedThreshold = 3, + brakeExtras = {}, + disableExtras = {} + }, + reverseConfig = { + useReverse = false, + reverseExtras = {}, + disableExtras = {} + }, + doorConfig = { + useDoors = false, + driverSide = {enable = {}, disable = {}}, + passSide = {enable = {}, disable = {}}, + trunk = {enable ={}, disable = {}} + }, + buttons = { + {label = "Stage 1", key = 1, color = "green", extra = 1, linkedExtras = {}, oppositeExtras = {}, offExtras = {2}, repair = false}, + {label = "Stage 2", key = 2, color = "green", extra = 2, linkedExtras = {}, oppositeExtras = {}, offExtras = {1}, repair = false} + }, + stages = { + useStages = false, + stageKeys = {}, + }, + defaultStages = { + useDefaults = false, + enableKeys = {}, + disableKeys = {} + } +}, + +{names = {"sd20fpiu", "lasdfpiu3"}, + steadyBurnConfig = { + forceOn = false, useTime = false, + disableWithLights = false, + sbExtras = {} + }, + parkConfig = { + usePark = false, + useSync = false, + syncWith = {}, + pExtras = {}, + dExtras = {} + }, + hornConfig = { + useHorn = false, + hornExtras = {}, + disableExtras = {} + }, + brakeConfig = { + useBrakes = false, + speedThreshold = 3, + brakeExtras = {}, + disableExtras = {} + }, + reverseConfig = { + useReverse = false, + reverseExtras = {}, + disableExtras = {} + }, + doorConfig = { + useDoors = false, + driverSide = {enable = {}, disable = {}}, + passSide = {enable = {}, disable = {}}, + trunk = {enable ={}, disable = {}} + }, + buttons = { + {label = "Stage 1", key = 1, color = "green", extra = 1, linkedExtras = {}, oppositeExtras = {}, offExtras = {2}, repair = false}, + {label = "Stage 2", key = 2, color = "green", extra = 2, linkedExtras = {}, oppositeExtras = {}, offExtras = {1}, repair = false} + }, + stages = { + useStages = false, + stageKeys = {}, + }, + defaultStages = { + useDefaults = false, + enableKeys = {}, + disableKeys = {} + } +}, + +{names = {"lasd23tahoe","lasd23k9t"}, + steadyBurnConfig = { + forceOn = false, useTime = false, + disableWithLights = false, + sbExtras = {} + }, + parkConfig = { + usePark = false, + useSync = false, + syncWith = {}, + pExtras = {}, + dExtras = {} + }, + hornConfig = { + useHorn = false, + hornExtras = {}, + disableExtras = {} + }, + brakeConfig = { + useBrakes = false, + speedThreshold = 3, + brakeExtras = {}, + disableExtras = {} + }, + reverseConfig = { + useReverse = false, + reverseExtras = {}, + disableExtras = {} + }, + doorConfig = { + useDoors = false, + driverSide = {enable = {}, disable = {}}, + passSide = {enable = {}, disable = {}}, + trunk = {enable ={}, disable = {}} + }, + buttons = { + {label = "Stage 1", key = 1, color = "green", extra = 1, linkedExtras = {3}, oppositeExtras = {}, offExtras = {4,5,6,2}, repair = false}, + {label = "Stage 2", key = 2, color = "green", extra = 2, linkedExtras = {3,4,6}, oppositeExtras = {}, offExtras = {5,1}, repair = false}, + {label = "Stage 3", key = 3, color = "green", extra = 5, linkedExtras = {6,4}, oppositeExtras = {}, offExtras = {3,2,1}, repair = false} + }, + stages = { + useStages = false, + stageKeys = {}, + }, + defaultStages = { + useDefaults = false, + enableKeys = {}, + disableKeys = {} + } +}, + +{names = {"lasd23tunm","lasd22tunm"}, + steadyBurnConfig = { + forceOn = false, useTime = false, + disableWithLights = false, + sbExtras = {} + }, + parkConfig = { + usePark = false, + useSync = false, + syncWith = {}, + pExtras = {}, + dExtras = {} + }, + hornConfig = { + useHorn = false, + hornExtras = {}, + disableExtras = {} + }, + brakeConfig = { + useBrakes = false, + speedThreshold = 3, + brakeExtras = {}, + disableExtras = {} + }, + reverseConfig = { + useReverse = false, + reverseExtras = {}, + disableExtras = {} + }, + doorConfig = { + useDoors = false, + driverSide = {enable = {}, disable = {}}, + passSide = {enable = {}, disable = {}}, + trunk = {enable ={}, disable = {}} + }, + buttons = { + {label = "Stage 1", key = 1, color = "green", extra = 7, linkedExtras = {2,1}, oppositeExtras = {}, offExtras = {3,4,5}, repair = false}, + {label = "Stage 2", key = 2, color = "green", extra = 10, linkedExtras = {2,3}, oppositeExtras = {}, offExtras = {1,4,5}, repair = false}, + {label = "Stage 3", key = 3, color = "green", extra = 9, linkedExtras = {5,3,4}, oppositeExtras = {}, offExtras = {1,2}, repair = false} + }, + stages = { + useStages = false, + stageKeys = {}, + }, + defaultStages = { + useDefaults = false, + enableKeys = {}, + disableKeys = {} + } +}, + +{names = {"lasd20funm"}, + steadyBurnConfig = { + forceOn = false, useTime = false, + disableWithLights = false, + sbExtras = {} + }, + parkConfig = { + usePark = false, + useSync = false, + syncWith = {}, + pExtras = {}, + dExtras = {} + }, + hornConfig = { + useHorn = false, + hornExtras = {}, + disableExtras = {} + }, + brakeConfig = { + useBrakes = false, + speedThreshold = 3, + brakeExtras = {}, + disableExtras = {} + }, + reverseConfig = { + useReverse = false, + reverseExtras = {}, + disableExtras = {} + }, + doorConfig = { + useDoors = false, + driverSide = {enable = {}, disable = {}}, + passSide = {enable = {}, disable = {}}, + trunk = {enable ={}, disable = {}} + }, + buttons = { + {label = "STAGE 1", key = 1, color = "green", extra = 1, linkedExtras = {2}, oppositeExtras = {}, offExtras = {3,4,5}, repair = false}, + {label = "STAGE 2", key = 2, color = "green", extra = 2, linkedExtras = {3}, oppositeExtras = {}, offExtras = {1,4,5}, repair = false}, + {label = "STAGE 3", key = 3, color = "green", extra = 4, linkedExtras = {3,5}, oppositeExtras = {}, offExtras = {1,2}, repair = false} + }, + stages = { + useStages = true, + stageKeys = {2,3,1}, + }, + defaultStages = { + useDefaults = false, + enableKeys = {}, + disableKeys = {} + } +}, +{names = {"lasd12", "LASD13"}, + steadyBurnConfig = { + forceOn = false, useTime = false, + disableWithLights = false, + sbExtras = {} + }, + parkConfig = { + usePark = false, + useSync = false, + syncWith = {}, + pExtras = {}, + dExtras = {} + }, + hornConfig = { + useHorn = false, + hornExtras = {}, + disableExtras = {} + }, + brakeConfig = { + useBrakes = false, + speedThreshold = 3, + brakeExtras = {}, + disableExtras = {} + }, + reverseConfig = { + useReverse = false, + reverseExtras = {}, + disableExtras = {} + }, + doorConfig = { + useDoors = false, + driverSide = {enable = {}, disable = {}}, + passSide = {enable = {}, disable = {}}, + trunk = {enable ={}, disable = {}} + }, + buttons = { + {label = "TKDN LGHT", key = 1, color = "green", extra = 11, linkedExtras = {}, oppositeExtras = {}, offExtras = {12}, repair = false}, + {label = "STAGE LGHT", key = 2, color = "green", extra = 12, linkedExtras = {}, oppositeExtras = {}, offExtras = {11}, repair = false}, + }, + stages = { + useStages = false, + stageKeys = {}, + }, + defaultStages = { + useDefaults = false, + enableKeys = {}, + disableKeys = {} + } +}, +{names = {"lasd25fpiu","lasdfpiu5","lasdtahoe4","lasd20fpiu"}, + steadyBurnConfig = { + forceOn = false, useTime = false, + disableWithLights = false, + sbExtras = {} + }, + parkConfig = { + usePark = false, + useSync = false, + syncWith = {}, + pExtras = {}, + dExtras = {} + }, + hornConfig = { + useHorn = false, + hornExtras = {}, + disableExtras = {} + }, + brakeConfig = { + useBrakes = false, + speedThreshold = 3, + brakeExtras = {}, + disableExtras = {} + }, + reverseConfig = { + useReverse = false, + reverseExtras = {}, + disableExtras = {} + }, + doorConfig = { + useDoors = false, + driverSide = {enable = {}, disable = {}}, + passSide = {enable = {}, disable = {}}, + trunk = {enable ={}, disable = {}} + }, + buttons = { + {label = "STAGE 2", key = 1, color = "green", extra = 5, linkedExtras = {10}, oppositeExtras = {}, offExtras = {9,8,6,7}, repair = false}, + {label = "STAGE 3", key = 2, color = "green", extra = 9, linkedExtras = {7, 6}, oppositeExtras = {}, offExtras = {8,5,10}, repair = false}, + {label = "PARK", key = 3, color = "green", extra = 8, linkedExtras = {6, 9}, oppositeExtras = {}, offExtras = {8,5,10,7}, repair = false}, + }, + stages = { + useStages = true, + stageKeys = {1,2,3}, + }, + defaultStages = { + useDefaults = false, + enableKeys = {}, + disableKeys = {} + } +} \ No newline at end of file diff --git a/resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/vehicles.meta b/resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/vehicles.meta new file mode 100644 index 000000000..91841e939 --- /dev/null +++ b/resources/[EGRP-CarPacks]/[lasd-packs]/Maxlasd18charger/vehicles.meta @@ -0,0 +1,138 @@ + + + vehshare + + + + Maxlasd18charger + Maxlasd18charger + 18CHARGER + Maxlasd18charger + Maxlasd18charger + null + null + null + null + + null + str392m + LAYOUT_STANDARD + BUFFALO_COVER_OFFSET_INFO + EXPLOSION_INFO_DEFAULT + + DEFAULT_FOLLOW_VEHICLE_CAMERA + BOX_VEHICLE_AIM_CAMERA + VEHICLE_BONNET_CAMERA_STANDARD + DEFAULT_POV_CAMERA_LOOKAROUND + + + + + + + + + + + + + + + + + + + + + + + + + + + + VFXVEHICLEINFO_CAR_GENERIC + + + + + + + + + + + + + + + + + + + + + + 15.000000 + 30.000000 + 70.000000 + 140.000000 + 500.000000 + 500.000000 + + + + + + + + + + + SWANKNESS_1 + + FLAG_USE_INTERIOR_RED_LIGHT FLAG_LAW_ENFORCEMENT FLAG_EMERGENCY_SERVICE FLAG_NO_RESPRAY FLAG_DONT_SPAWN_IN_CARGEN FLAG_REPORT_CRIME_IF_STANDING_ON FLAG_HAS_LIVERY + VEHICLE_TYPE_CAR + VPT_FRONT_AND_BACK_PLATES + VDT_RACE + VC_EMERGENCY + VWT_SPORT + + + + + + + + + + + + WHEEL_FRONT_RIGHT_CAMERA + WHEEL_FRONT_LEFT_CAMERA + WHEEL_REAR_RIGHT_CAMERA + WHEEL_REAR_LEFT_CAMERA + + + + + + + STD_POLICE3_FRONT_LEFT + STD_POLICE3_FRONT_RIGHT + STD_POLICE2_REAR_LEFT + STD_POLICE2_REAR_RIGHT + + + + + + vehicles_race_interior + vehicles_race_generic + + + vehicles_race_generic + Maxlasd18charger + + + \ No newline at end of file diff --git a/resources/[EGRP-CarPacks]/[lasd-packs]/lasd22tunm/vehicles.meta b/resources/[EGRP-CarPacks]/[lasd-packs]/lasd22tunm/vehicles.meta index 96eb05fb5..0b975432d 100644 --- a/resources/[EGRP-CarPacks]/[lasd-packs]/lasd22tunm/vehicles.meta +++ b/resources/[EGRP-CarPacks]/[lasd-packs]/lasd22tunm/vehicles.meta @@ -15,7 +15,7 @@ null null - bison + SHERIFF2 LAYOUT_STANDARD GRESLEY_COVER_OFFSET_INFO EXPLOSION_INFO_DEFAULT diff --git a/resources/[EGRP-CarPacks]/[lasd-packs]/lasd23tunm/stream/lasd23tunm.ytd b/resources/[EGRP-CarPacks]/[lasd-packs]/lasd23tunm/stream/lasd23tunm.ytd index 913ea3434..ebed6d18f 100644 --- a/resources/[EGRP-CarPacks]/[lasd-packs]/lasd23tunm/stream/lasd23tunm.ytd +++ b/resources/[EGRP-CarPacks]/[lasd-packs]/lasd23tunm/stream/lasd23tunm.ytd @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bc6c8e364f07c04dab84aa98382f7df0b7b528e956dcdf766d04ef53a70b23fd -size 7171117 +oid sha256:5dfdfd6a9e2156baf9bd204cd6382c4fd54014dd2df36f1b6203afcffc1f525f +size 5748481 diff --git a/resources/[EGRP-CarPacks]/[lasd-packs]/lasd23tunm/vehicles.meta b/resources/[EGRP-CarPacks]/[lasd-packs]/lasd23tunm/vehicles.meta index 2bcfe59d9..0358e2fd6 100644 --- a/resources/[EGRP-CarPacks]/[lasd-packs]/lasd23tunm/vehicles.meta +++ b/resources/[EGRP-CarPacks]/[lasd-packs]/lasd23tunm/vehicles.meta @@ -15,7 +15,7 @@ null null - bison + SHERIFF2 LAYOUT_STANDARD GRESLEY_COVER_OFFSET_INFO EXPLOSION_INFO_DEFAULT diff --git a/resources/[EGRP-CarPacks]/ebu_flatbeds/.fxap b/resources/[EGRP-CarPacks]/ebu_flatbeds/.fxap new file mode 100644 index 0000000000000000000000000000000000000000..70d15391ce028ce79aaefc643f9e8eb11fe8b5cd GIT binary patch literal 178 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 literal 0 HcmV?d00001 diff --git a/resources/[EGRP-CarPacks]/ebu_flatbeds/client/utils.lua b/resources/[EGRP-CarPacks]/ebu_flatbeds/client/utils.lua new file mode 100644 index 000000000..b8a301956 --- /dev/null +++ b/resources/[EGRP-CarPacks]/ebu_flatbeds/client/utils.lua @@ -0,0 +1,241 @@ +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 + diff --git a/resources/[EGRP-CarPacks]/ebu_flatbeds/config.lua b/resources/[EGRP-CarPacks]/ebu_flatbeds/config.lua new file mode 100644 index 000000000..a9a6ad77f --- /dev/null +++ b/resources/[EGRP-CarPacks]/ebu_flatbeds/config.lua @@ -0,0 +1,1143 @@ +Config = {} + +Config.Debug = false -- Used for support + +Config.InteractDistance = 2.0 -- Distance to check if near a truck on foot +Config.CloseVehiclesDistance = 10.0 -- Distance to check for nearby vehicles +Config.GetInDistance = 3.5 + + +--Ctrl + Shift Bed Control +Config.DisableCabControl = true -- Disables Left Stick Control and Ctrl + Shift while driving. +Config.DisableSpeed = 3.0 -- Speed at which the controls get disabled + +--Rope/Winch Config +Config.EnableRopes = true -- if disabled, ALL rope / winching is disabled +Config.WinchSpeed = 0.11 -- Winch Speed. HIGHLY suggest adjusting in 0.1 increments +Config.MaxWinchLength = 50 +Config.MinWindDistance = 2.6 +Config.ModifierKey = 21 -- Default 21 (SHIFT): Key to hold to see secondary winch controls +Config.ModifierKeyName = '~INPUT_SPRINT~' -- Match name to number here https://docs.fivem.net/docs/game-references/controls/ +Config.AutoWinchOnDetach = true -- Automatically attach winch rope when detaching from bed +Config.AutoAttach = true --Automatically attach a vehicle when it reaches the min winch length +Config.Doublecheck = true -- Double locks the vehicle onto the bed to try and ensure its touching the bed + +Config.LegacyMove = false -- Set to true if the new winch method does not work for you + + +--Bed Movement +Config.BedSpeed = 0.0003 -- Speed of the bed movement +Config.DisableUnloadOnUp = true --Prevent Unloading car when bed is up + +--NOTIFICATIONS-- +Config.Notifications = true -- See utils.lua for functions + +--TRANSLATIONS More customization in utils.lua including key controls +Config.NotiUnLoadCompleteMessage = "Unload Complete" +Config.NotiLoadCompleteMessage = "Loading Complete" +Config.NotiBlockedMessage = "Unloading zone blocked" +Config.NotiFBBlockedMessage = "Flatbed blocked or occupied" + +--========Target System========-- +Config.UseTarget = false --Enable Target system. Set up in utils.lua. Supports qb-target by default + +--If the below are disabled, it is recommened to set Config.ShowMarkers and Config.ShowHelp to false +Config.DisableExtKeyControls = false --Disable key controls for bed control. Attach/Detach from inside vehicle separate +Config.DisableInVehControl = false --Disable key controls for in vehicle. + +--========Markers & Prompts=======-- +--Increases tick rate from 0.01 to 0.08 - 0.1 when in range +Config.ShowMarkers = true -- Display markers at interaction points +Config.ShowHelp = true -- Display help prompts + +Config.MarkerDistance = 5.0 -- Distance from point to see marker +Config.WaitTimer = 3000 -- Update rate to check for nearby trailer seconds * 1000 (Default 3000) + +Config.MessageDistance = 2.0 -- Distance from point to display message (Default 2.0) +Config.Marker = { + type = 1, -- marker shape: https://docs.fivem.net/docs/game-references/markers/ (Default 27) + + Size = 1.0, -- marker size (Default 2.0) + + Color = { -- RGBA color + red = 100, + green = 200, + blue = 200, + alpha = 150 + }, + heightOffset = 0.0, -- Height from ground for marker. Marker at ground Z (Default 0.0) + Bob = false, -- Marker bobbing up and down (Default false) + faceCamera = false, -- Marker always faces camera (Default false) + rotate = false -- Marker rotates (Default false) +} + +Config.Controlmessages = { + LowerBed = "Lower", + RaiseBed = "Raise bed", + AttachVehicle = "Attach/Detach", + WindWinch = "Wind", + ExtendWinch = "Unwind", + DetachWinch = "Detach Winch", + GrabWinch = "Grab Winch", + ReturnWinch = "Return Winch", + AttachWinch = "Attach Winch", + WheelLift = "WheelLift" +} + +--========Trucks========-- +Config.Trucks = { + + --Bagged + [GetHashKey('bcsandking5500wr2')] = { + type = 'rolling', -- Rolling for moving beds, static for flatbeds like the vanilla flatbed + boneName = 'misc_a', -- Name of the bone to attach to Generally embedded in the flatbed + hasBedControl = true, + MaxUnwindDistance = 10.0, -- Max distance in meters the winch will unwind + BedControl = {vector3(-1.8,-4.5,-0.55),vector3(1.8,-4.5,-0.55)}, + carPosition = vector3(0.0, 0.4, -0.1), -- Offset from the boneName position + carHeightOffset = 0.375, -- Height to adjust attached car by + winchBone = 'misc_b', -- Bone for winch Rope + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 12.0, -- How far backwards from the winch bone to check from + animation = true, + animExt = 1 + }, + [GetHashKey('ct660tow')] = { + type = 'rolling', -- Rolling for moving beds, static for flatbeds like the vanilla flatbed + boneName = 'misc_a', -- Name of the bone to attach to Generally embedded in the flatbed + hasBedControl = true, + MaxUnwindDistance = 10.0, -- Max distance in meters the winch will unwind + BedControl = {vector3(-1.8,-4.5,-0.55),vector3(1.8,-4.5,-0.55)}, + carPosition = vector3(0.0, 0.4, -0.1), -- Offset from the boneName position + carHeightOffset = 0.375, -- Height to adjust attached car by + winchBone = 'misc_b', -- Bone for winch Rope + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 12.0, -- How far backwards from the winch bone to check from + MinPos = 0.03, -- Position of the bed when raised fully + MaxPos = 0.26 -- Position of the bed when lowered fully + }, + [GetHashKey('bcthauler2')] = { + type = 'trailer', -- Trailer + boneName = 'misc_a', -- Name of the bone to attach to Generally embedded in the flatbed + hasBedControl = true, + MaxUnwindDistance = 10.0, -- Max distance in meters the winch will unwind + BedControl = {vector3(-1.0,4.0,-0.55),vector3(1.0,4.0,-0.55)}, + winchBone = 'misc_b', -- Bone for winch Rope + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 12.0, -- How far backwards from the winch bone to check from + }, + [GetHashKey('bc205500w')] = { + type = 'rolling', + boneName = 'misc_a', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-4.5,-0.55),vector3(1.8,-4.5,-0.55)}, + carPosition = vector3(0.0, 0.8, 0.0), + carHeightOffset = 0.2, + winchBone = 'misc_b', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 8.0, --How far backwards from the winch bone to check from + MinPos = 0.028, + MaxPos = 0.26 + }, + [GetHashKey('bcsandking5500wr')] = { + type = 'rolling', + boneName = 'misc_a', + hasBedControl = true, + BedControl = {vector3(-1.8,-4.5,-0.55),vector3(1.8,-4.5,-0.55)}, + carPosition = vector3(0.0, 0.8, 0.0), + carHeightOffset = -0.05, + winchBone = 'misc_b', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 3.0, --How far backwards from the winch bone to check from + MinPos = 0.03, --Position of the bed when raised fully + MaxPos = 0.26 -- Position of the bed when lowered fully + }, + --Code3 + [GetHashKey('c3rollback')] = { + type = 'rolling', + boneName = 'misc_b', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-6.0,-0.55)}, + carPosition = vector3(0.0, 0.5, 0.2), + carHeightOffset = -0.05, + winchBone = 'misc_a', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 8.0, --How far backwards from the winch bone to check from + MinPos = 0.02, + MaxPos = 0.25 + }, + [GetHashKey('c3pwrollback')] = { + type = 'rolling', + boneName = 'misc_b', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-4.6,-0.55)}, + carPosition = vector3(0.0, 0.5, 0.2), + carHeightOffset = -0.05, + winchBone = 'misc_a', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 8.0, --How far backwards from the winch bone to check from + MinPos = 0.02, + MaxPos = 0.22 + }, + [GetHashKey('c3f350rollback')] = { + type = 'rolling', + boneName = 'misc_b', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-5.6,-0.55)}, + carPosition = vector3(0.0, 0.5, 0.2), + carHeightOffset = -0.05, + winchBone = 'misc_a', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 8.0, --How far backwards from the winch bone to check from + MinPos = 0.02, + MaxPos = 0.23 + }, + [GetHashKey('c3navistar')] = { + type = 'rolling', + boneName = 'misc_b', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-5.2,-0.55),vector3(1.8,-5.2,-0.55)}, + carPosition = vector3(0.0, 0.4, -0.4), + carHeightOffset = 0.0, + winchBone = 'misc_a', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 8.0, --How far backwards from the winch bone to check from + MinPos = 0.02, + MaxPos = 0.27 + }, + [GetHashKey('c3silvrollback')] = { + type = 'rolling', + boneName = 'misc_b', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-4.9,-0.55)}, + carPosition = vector3(0.0, 0.5, -0.0), + carHeightOffset = -0.05, + winchBone = 'misc_a', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 8.0, --How far backwards from the winch bone to check from + MinPos = 0.02, + MaxPos = 0.23 + }, + + --Redneck + [GetHashKey('f550rb')] = { + type = 'rolling', + staticBed = false, + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-4.75,-0.55),vector3(1.8,-4.75,-0.55)}, + carPosition = vector3(0.0, -0.0, 0.0), + carHeightOffset = 0.2, + winchBone = 'attach_male', + winchDistCheck = 5.0, + winchOffset = 8.0, + MinPos = 0.00, + MaxPos = 0.33 + + }, + [GetHashKey('f550rbc')] = { + type = 'rolling', + staticBed = false, + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-4.75,-0.55),vector3(1.8,-4.75,-0.55)}, + carPosition = vector3(0.0, -0.0, 0.0), + carHeightOffset = -0.2, + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 8.0, --How far backwards from the winch bone to check from + MinPos = 0.00, + MaxPos = 0.33 + }, + [GetHashKey('20ramrbc')] = { + type = 'rolling', + staticBed = false, + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-4.75,-0.55),vector3(1.8,-4.75,-0.55)}, + carPosition = vector3(0.0, -0.0, 0.0), + carHeightOffset = 0, + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 8.0, --How far backwards from the winch bone to check from + MinPos = 0.00, + MaxPos = 0.33 + + }, + + --https://www.gta5-mods.com/vehicles/freightliner-m2-crew-cab-flatbed-add-on-script-beta [[VEHICLE ONLY]] + [GetHashKey('flatbedm2')] = { + type = 'rolling', + boneName = 'misc_a', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-4.5,-0.55), vector3(1.8,-4.5,-0.55)}, + carPosition = vector3(0.0, 1.2, -0.1), + carHeightOffset = 0.2, + winchBone = 'misc_b', + winchDistCheck = 10.0, -- How far from winchOffset to check for a vehicle + winchOffset = 10.0 , --How far backwards from the winch bone to check from + MinPos = 0.025, + MaxPos = 0.22 + }, + + --LordGooben + [GetHashKey('lgc19flatbed')] = { + type = 'rolling', + boneName = 'misc_a', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-4.5,-0.55)}, + carPosition = vector3(0.0, 1.2, -0.1), + carHeightOffset = 0.5, + winchBone = 'misc_b', + winchDistCheck = 10.0, + winchOffset = 10.0, --How far backwards from the winch bone to check from + MinPos = 0.028, + MaxPos = 0.23 + }, + + --MAOAM + [GetHashKey('biftowmfd2')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-1.5,0.55),vector3(1.8,-1.5,0.55)}, + unloadPos = {vector3(-2.0,-2.0,-0.55)}, + carPosition = vector3(0.0, -0.1, 0.06), + carHeightOffset = 0.375, + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 5.0, --How far backwards from the winch bone to check from + MinPos = 0.00, + MaxPos = 0.25, + wheellift = 5 + + }, + [GetHashKey('389towmfd2')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-1.5,0.55),vector3(1.8,-1.5,0.55)}, + carPosition = vector3(0.0, -0.1, 0.0), + carHeightOffset = 0.375, + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 12.0, --How far backwards from the winch bone to check from + MinPos = 0.03, + MaxPos = 0.25, + wheellift = 5 + + }, + [GetHashKey('389towmfd3')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-1.5,0.55),vector3(1.8,-1.5,0.55)}, + carPosition = vector3(0.0, -0.1, 0.06), + carHeightOffset = 0.375, + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 12.0, --How far backwards from the winch bone to check from + MinPos = 0.03, + MaxPos = 0.25, + wheellift = 5 + + }, + [GetHashKey('389towmfd4')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-1.9,0.55),vector3(1.8,-1.9,0.55)}, + carPosition = vector3(0.0, -0.3, -0.12), + carHeightOffset = 0.375, + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 12.0, --How far backwards from the winch bone to check from + MinPos = 0.00, + MaxPos = 0.22, + wheellift = 5 + + }, + [GetHashKey('389towmfd5')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-1.9,0.55),vector3(1.8,-1.9,0.55)}, + carPosition = vector3(0.0, -0.3, -0.12), + carHeightOffset = 0.375, + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 12.0, --How far backwards from the winch bone to check from + MinPos = 0.00, + MaxPos = 0.22, + wheellift = 5 + + }, + [GetHashKey('389towmfd6')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 12.0, + BedControl = {vector3(-1.8,-2.5,0.55), vector3(1.8,-2.5,0.55)}, + carPosition = vector3(0.0, -0.2, 0.0), + carHeightOffset = 0.14, + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 12.0, --How far backwards from the winch bone to check from + MinPos = 0.035, + MaxPos = 0.25, + wheellift = 5 + + }, + + [GetHashKey('389towmfd7')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-1.9,0.55),vector3(1.8,-1.9,0.55)}, + carPosition = vector3(0.0, -1.2, -0.08), + carHeightOffset = 0.375, + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 12.0, --How far backwards from the winch bone to check from + MinPos = 0.036, + MaxPos = 0.24, + wheellift = 5 + + }, + + [GetHashKey('112towmfd4')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 11.0, + BedControl = {vector3(-1.8,-7.5,-0.55),vector3(1.8,-7.5,-0.55)}, + carPosition = vector3(0.0, -0.2, 0.2), + carHeightOffset = 0.0, + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 10.0, --How far backwards from the winch bone to check from + MinPos = 0.03, + MaxPos = 0.25, + wheellift = 5 + }, + [GetHashKey('t112towmfd4')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 11.0, + BedControl = {vector3(-1.8,-7.5,-0.55),vector3(1.8,-7.5,-0.55)}, + carPosition = vector3(0.0, -0.2, 0.2), + carHeightOffset = 0.0, + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 10.0, --How far backwards from the winch bone to check from + MinPos = 0.03, + MaxPos = 0.25, + wheellift = 5 + }, + [GetHashKey('108towmfd4')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-3.0,-0.55),vector3(1.8,-3.0,-0.55)}, + carPosition = vector3(0.0, -0.2, 0.0), + carHeightOffset = 0.4, + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 10.0, --How far backwards from the winch bone to check from + MinPos = 0.03, + MaxPos = 0.25, + wheellift = 5 + }, + [GetHashKey('t108towmfd4')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-3.0,-0.55),vector3(1.8,-3.0,-0.55)}, + carPosition = vector3(0.0, -0.2, 0.0), + carHeightOffset = 0.4, + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 10.0, --How far backwards from the winch bone to check from + MinPos = 0.03, + MaxPos = 0.25, + wheellift = 5 + }, + [GetHashKey('108utwmfd3')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-3.0,-0.55),vector3(1.8,-3.0,-0.55)}, + carPosition = vector3(0.0, -0.2, 0.0), + carHeightOffset = 0.55, + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 10.0, --How far backwards from the winch bone to check from + MinPos = 0.00, + MaxPos = 0.21 + }, + + [GetHashKey('440towmfd4')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-6.5,-0.55),vector3(1.8,-6.5,-0.55)}, + carPosition = vector3(0.0, -0.2, 0.0), + carHeightOffset = 0.1, + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 12.0, --How far backwards from the winch bone to check from + MinPos = 0.03, + MaxPos = 0.24, + wheellift = 5 + }, + [GetHashKey('t440towmfd4')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-6.5,-0.55),vector3(1.8,-6.5,-0.55)}, + carPosition = vector3(0.0, -0.2, 0.0), + carHeightOffset = 0.1, + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 12.0, --How far backwards from the winch bone to check from + MinPos = 0.03, + MaxPos = 0.24, + wheellift = 5 + }, + [GetHashKey('440towmfd2')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-5.5,-0.55),vector3(1.8,-5.5,-0.55)}, + carPosition = vector3(0.0, -0.2, 0.0), + carHeightOffset = 0.45, + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 12.0, --How far backwards from the winch bone to check from + MinPos = 0.03, + MaxPos = 0.26, + wheellift = 5 + }, + [GetHashKey('t440towmfd2')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-5.5,-0.55),vector3(1.8,-5.5,-0.55)}, + carPosition = vector3(0.0, -0.2, 0.0), + carHeightOffset = 0.45, + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 12.0, --How far backwards from the winch bone to check from + MinPos = 0.03, + MaxPos = 0.26, + wheellift = 5 + }, + [GetHashKey('cortowmfd4')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-5.25,-0.55),vector3(1.8,-5.25,-0.55)}, + carPosition = vector3(0.0, -0.2, 0.0), + carHeightOffset = 0.05, + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 12.0, --How far backwards from the winch bone to check from + MinPos = 0.03, + MaxPos = 0.26, + wheellift = 5 + }, + [GetHashKey('tcortowmfd4')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-5.25,-0.55),vector3(1.8,-5.25,-0.55)}, + carPosition = vector3(0.0, -0.2, 0.0), + carHeightOffset = 0.05, + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 12.0, --How far backwards from the winch bone to check from + MinPos = 0.03, + MaxPos = 0.26, + wheellift = 5 + }, + [GetHashKey('112utwmfd2')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-2.5,-0.55),vector3(1.8,-2.5,-0.55)}, + carPosition = vector3(0.0, -0.2, 0.0), + carHeightOffset = 0.6, + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 10.0, --How far backwards from the winch bone to check from + MinPos = 0.03, + MaxPos = 0.25 + }, + + [GetHashKey('112utwmfd3')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-2.5,-0.55),vector3(1.8,-2.5,-0.55)}, + carPosition = vector3(0.0, -0.2, 0.0), + carHeightOffset = 0.6, + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 10.0, --How far backwards from the winch bone to check from + MinPos = 0.03, + MaxPos = 0.25 + }, + + [GetHashKey('112towmfd3')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-7.0,-0.55),vector3(1.8,-7.0,-0.55)}, + carPosition = vector3(0.0, -0.1, 0.0), + carHeightOffset = 0.25, + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 10.0, --How far backwards from the winch bone to check from + MinPos = 0.00, + MaxPos = 0.23, + wheellift = 5 + + }, + + [GetHashKey('112towmfd2')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-5.5,-0.55),vector3(1.8,-5.5,-0.55)}, + carPosition = vector3(0.0, -0.1, 0.0), + carHeightOffset = 0.3, + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 10.0, --How far backwards from the winch bone to check from + MinPos = 0.03, + MaxPos = 0.23, + wheellift = 5 + }, + [GetHashKey('t112towmfd2')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-5.5,-0.55),vector3(1.8,-5.5,-0.55)}, + carPosition = vector3(0.0, -0.1, 0.0), + carHeightOffset = 0.3, + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 10.0, --How far backwards from the winch bone to check from + MinPos = 0.0, + MaxPos = 0.23, + wheellift = 5 + }, + [GetHashKey('t112towmfd3')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-5.5,-0.55),vector3(1.8,-5.5,-0.55)}, + carPosition = vector3(0.0, -0.1, 0.0), + carHeightOffset = 0.3, + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 10.0, --How far backwards from the winch bone to check from + MinPos = 0.00, + MaxPos = 0.23, + wheellift = 5 + }, + [GetHashKey('t112towmfd4')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-5.5,-0.55),vector3(1.8,-5.5,-0.55)}, + carPosition = vector3(0.0, -0.1, 0.0), + carHeightOffset = 0.3, + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 10.0, --How far backwards from the winch bone to check from + MinPos = 0.03, + MaxPos = 0.23, + wheellift = 5 + }, + [GetHashKey('112towmfd5')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-3.0,-0.55),vector3(1.8,-3.0,-0.55)}, + carPosition = vector3(0.0, -0.1, 0.0), + carHeightOffset = 0.35, + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 10.0, --How far backwards from the winch bone to check from + MinPos = 0.03, + MaxPos = 0.24, + wheellift = 5 + }, + [GetHashKey('t112towmfd5')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-3.0,-0.55),vector3(1.8,-3.0,-0.55)}, + carPosition = vector3(0.0, -0.1, 0.0), + carHeightOffset = 0.35, + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 10.0, --How far backwards from the winch bone to check from + MinPos = 0.00, + MaxPos = 0.24, + wheellift = 5 + }, + [GetHashKey('112towmfd6')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 12.0, + BedControl = {vector3(-1.8,-3.0,0.55),vector3(1.8,-3.0,0.55)}, + carPosition = vector3(0.0, -1.2, -0.08), + carHeightOffset = 0.375, + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 12.0, --How far backwards from the winch bone to check from + MinPos = 0.01, + MaxPos = 0.24, + wheellift = 5 + + }, + [GetHashKey('t112towmfd6')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 12.0, + BedControl = {vector3(-1.8,-3.0,0.55),vector3(1.8,-3.0,0.55)}, + carPosition = vector3(0.0, -1.2, -0.08), + carHeightOffset = 0.375, + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 12.0, --How far backwards from the winch bone to check from + MinPos = 0.00, + MaxPos = 0.24, + wheellift = 5 + + }, + [GetHashKey('112boxmfd2')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-6.0,-0.55),vector3(1.8,-6.0,-0.55)}, + carPosition = vector3(0.0, -0.2, 0.0), + carHeightOffset = 0.3, + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 10.0, --How far backwards from the winch bone to check from + MinPos = 0.03, + MaxPos = 0.25, + wheellift = 5 + }, + + [GetHashKey('800towmfd4')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-2.5,-0.55),vector3(1.8,-7.5,-0.55)}, + carPosition = vector3(0.0, -0.2, 0.0), + carHeightOffset = 0.0, + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 12.0, --How far backwards from the winch bone to check from + MinPos = 0.0, + MaxPos = 0.21 + }, + + [GetHashKey('550towmfd2')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-1.5,0.55),vector3(1.8,-1.5,0.55)}, + carPosition = vector3(0.0, -0.1, -0.5), + carHeightOffset = 0.375, + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 5.0, --How far backwards from the winch bone to check from + MinPos = 0.00, + MaxPos = 0.17, + wheellift = 5 + }, + [GetHashKey('t550towmfd2')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-1.5,0.55),vector3(1.8,-1.5,0.55)}, + carPosition = vector3(0.0, -0.1, -0.5), + carHeightOffset = 0.375, + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 5.0, --How far backwards from the winch bone to check from + MinPos = 0.00, + MaxPos = 0.17, + wheellift = 5 + }, + + --MAOAM Public Release https://www.gta5-mods.com/vehicles/peterbilt-337-tuning-by-mfd-fivem + [GetHashKey('Gtow')] = { + type = 'rolling', + boneName = 'misc_a', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-4.0,-0.55),vector3(1.8,-4.0,-0.55)}, + carPosition = vector3(0.0, -0.2, 0.2), + carHeightOffset = 0.0, + winchBone = 'misc_b', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 10.0, --How far backwards from the winch bone to check from + MinPos = 0.01, + MaxPos = 0.2 + }, + + [GetHashKey('106towmfd1')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-1.5,-0.55),vector3(1.8,-1.5,-0.55)}, + carPosition = vector3(0.0, -0.2, -1.0), + carHeightOffset = 0.35, --Will vary per truck + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 12.0, --How far backwards from the winch bone to check from + MinPos = 0.00, + MaxPos = 0.21, + wheellift = 5 + }, + [GetHashKey('t106towmfd1')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-1.5,-0.55),vector3(1.8,-1.5,-0.55)}, + carPosition = vector3(0.0, -0.2, -1.0), + carHeightOffset = 0.35, --Will vary per truck + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 12.0, --How far backwards from the winch bone to check from + MinPos = 0.00, + MaxPos = 0.21, + wheellift = 5 + }, + [GetHashKey('106towmfd2')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-1.5,-0.55),vector3(1.8,-1.5,-0.55)}, + carPosition = vector3(0.0, -0.2, -1.0), + carHeightOffset = 0.35, --Will vary per truck + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 12.0, --How far backwards from the winch bone to check from + MinPos = 0.00, + MaxPos = 0.21, + wheellift = 5 + }, + [GetHashKey('t106towmfd2')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-1.5,-0.55),vector3(1.8,-1.5,-0.55)}, + carPosition = vector3(0.0, -0.2, -1.0), + carHeightOffset = 0.35, --Will vary per truck + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 12.0, --How far backwards from the winch bone to check from + MinPos = 0.00, + MaxPos = 0.21, + wheellift = 5 + }, + [GetHashKey('106towmfd3')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-1.5,-0.55),vector3(1.8,-1.5,-0.55)}, + carPosition = vector3(0.0, -0.2, -1.0), + carHeightOffset = 0.35, --Will vary per truck + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 12.0, --How far backwards from the winch bone to check from + MinPos = 0.00, + MaxPos = 0.21, + wheellift = 5 + }, + [GetHashKey('t106towmfd3')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-1.5,-0.55),vector3(1.8,-1.5,-0.55)}, + carPosition = vector3(0.0, -0.2, -1.0), + carHeightOffset = 0.35, --Will vary per truck + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 12.0, --How far backwards from the winch bone to check from + MinPos = 0.00, + MaxPos = 0.21, + wheellift = 5 + }, + --Paul + [GetHashKey('rollback2')] = { + type = 'rolling', + boneName = 'misc_a', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-4.5,-0.55),vector3(1.8,-4.5,-0.55)}, + carPosition = vector3(0.0, -0.2, 0.0), + carHeightOffset = -0.1, + winchBone = 'misc_b', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 8.0, --How far backwards from the winch bone to check from + MinPos = 0.025, + MaxPos = 0.23 + }, + [GetHashKey('rollback3')] = { + type = 'rolling', + boneName = 'misc_a', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-4.5,-0.55),vector3(1.8,-4.5,-0.55)}, + carPosition = vector3(0.0, -0.2, 0.0), + carHeightOffset = -0.1, + winchBone = 'misc_b', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 8.0, --How far backwards from the winch bone to check from + MinPos = 0.025, + MaxPos = 0.23 + }, + [GetHashKey('rollback4')] = { + type = 'rolling', + boneName = 'misc_a', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-4.9,-0.55),vector3(1.8,-4.9,-0.55)}, + carPosition = vector3(0.0, -0.2, 0.0), + carHeightOffset = -0.2, + winchBone = 'misc_b', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 8.0, --How far backwards from the winch bone to check from + MinPos = 0.03, + MaxPos = 0.23 + }, + [GetHashKey('rollback14')] = { + type = 'rolling', + boneName = 'misc_a', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-4.5,-0.55),vector3(1.8,-4.5,-0.55)}, + carPosition = vector3(0.0, -0.2, 0.0), + carHeightOffset = -0.22, + winchBone = 'misc_b', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 8.0, --How far backwards from the winch bone to check from + MinPos = 0.032, + MaxPos = 0.23 + }, + [GetHashKey('rollback1')] = { + type = 'rolling', + boneName = 'misc_a', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-4.5,-0.55),vector3(1.8,-4.5,-0.55)}, + carPosition = vector3(0.0, -0.2, 0.0), + carHeightOffset = -0.22, + winchBone = 'misc_b', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 8.0, --How far backwards from the winch bone to check from + MinPos = 0.032, + MaxPos = 0.23 + }, + + --Flair + [GetHashKey('independent389')] = { + type = 'rolling', + boneName = 'misc_z', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-6.4,-0.55),vector3(1.8,-6.4,-0.55)}, + carPosition = vector3(0.0, -0.2, 0.0), + carHeightOffset = -0.05, + winchBone = 'attach_male', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 12.0, --How far backwards from the winch bone to check from + MinPos = 0.03, + MaxPos = 0.23, + wheellift = 5 + }, + + --Other + [GetHashKey('towy')] = { + type = 'rolling', + boneName = 'misc_b', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-5.5,-0.55),vector3(1.8,-5.5,-0.55)}, + carPosition = vector3(0.0, 0.4, -0.1), + carHeightOffset = -0.1, + winchBone = 'misc_a', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 8.0, --How far backwards from the winch bone to check from + MinPos = 0.028, + MaxPos = 0.26 + }, + + [GetHashKey('ramtow')] = { + type = 'rolling', + boneName = 'misc_f', + hasBedControl = true, + MaxUnwindDistance = 10.0, + BedControl = {vector3(-1.8,-5.0,-0.55),vector3(1.8,-5.0,-0.55)}, + carPosition = vector3(0.0, -0.5, 0.0), + carHeightOffset = 0.15, + winchBone = 'misc_w', + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 8.0, --How far backwards from the winch bone to check from + MinPos = 0.028, + MaxPos = 0.26 + }, + + + --STATIC BEDS + [GetHashKey('flatbed')] = { + type = 'static', + carloadPos = vector3(0.0, -10.0, -0.55), + BedControl = {vector3(-2.0, -5.0, -0.55)}, + carPosition = vector3(0.0, -2.3, 0.4), + bikePositions = {vector3(0.0, -2.3, 0.8)}, + carHeightOffset = -0.7, + }, + [GetHashKey('slamtruck')] = { + type = 'static', + carloadPos = vector3(0.0, -8.0, -0.55), + BedControl = {vector3(-2.0, -4.0, -0.55)}, + carPosition = vector3(0.0, -2.3, 0.4), + bikePositions = {vector3(0.0, -2.3, 0.8)}, + carHeightOffset = -0.7, + chkDist = 4.0 + }, + + --PICKUP TRUCK EXAMPLE + [GetHashKey('sadler')] = { + type = 'static', + carloadPos = vector3(0.0, -5.5, -0.55), + BedControl = {vector3(-1.5, -3.0, -0.55)}, + carPosition = vector3(0.0, -2.2, 0.8), + bikePositions = {vector3(0.0, -2.3, 0.8)}, + carHeightOffset = -0.6, + }, + + --Corentin + [GetHashKey('flatbed1amber')] = { + type = 'static', + carloadPos = vector3(-1.0, -9.0, -0.55), + BedControl = {vector3(-2.0, -5.0, -0.55)}, + carPosition = vector3(0.0, -1.9, 0.1), + bikePositions = {vector3(0.0, -2.3, 0.8)}, + carHeightOffset = -0.3, + }, + + [GetHashKey('flatbed2amber')] = { + type = 'static', + carloadPos = vector3(-1.0, -9.0, -0.55), + BedControl = {vector3(-2.0, -5.0, -0.55)}, + carPosition = vector3(0.0, -3.3, 0.0), + bikePositions = {vector3(0.0, -2.3, 0.8)}, + carHeightOffset = -0.3, + }, + + [GetHashKey('flatbed3amber')] = { + type = 'static', + carloadPos = vector3(-1.0, -9.0, -0.55), + BedControl = {vector3(-2.0, -5.0, -0.55)}, + carPosition = vector3(0.0, -3.3, 0.0), + bikePositions = {vector3(0.0, -2.3, 0.8)}, + carHeightOffset = -0.3, + }, + --lorewave + [GetHashKey('nkbrickade')] = { + type = 'rolling', -- Rolling for moving beds, static for flatbeds like the vanilla flatbed + boneName = 'scoop', -- Name of the bone to attach to Generally embedded in the flatbed + hasBedControl = true, + MaxUnwindDistance = 10.0, -- Max distance in meters the winch will unwind + BedControl = {vector3(-1.8,-4,-0.55),vector3(1.8,-4,-0.55)}, + carPosition = vector3(0.0, 0.4, -0.1), -- Offset from the boneName position + carHeightOffset = 17.9, -- Height to adjust attached car by + winchBone = 'misc_x', -- Bone for winch Rope + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 12.0, -- How far backwards from the winch bone to check from + MinPos = 0.03, -- Position of the bed when raised fully + MaxPos = 0.28, -- Position of the bed when lowered fully + bedOffset = 19.5, + chkDist = 6.0, + unloadOffset = 0.1 + }, + [GetHashKey('nkguardian')] = { + type = 'rolling', -- Rolling for moving beds, static for flatbeds like the vanilla flatbed + boneName = 'scoop', -- Name of the bone to attach to Generally embedded in the flatbed + hasBedControl = true, + MaxUnwindDistance = 10.0, -- Max distance in meters the winch will unwind + BedControl = {vector3(-1.8,-4.5,-0.55),vector3(1.8,-4.5,-0.55)}, + carPosition = vector3(0.0, -0.1, -0.1), -- Offset from the boneName position + carHeightOffset = 13.55, -- Height to adjust attached car by + winchBone = 'misc_x', -- Bone for winch Rope + winchDistCheck = 5.0, -- How far from winchOffset to check for a vehicle + winchOffset = 12.0, -- How far backwards from the winch bone to check from + MinPos = 0.03, -- Position of the bed when raised fully + MaxPos = 0.28, -- Position of the bed when lowered fully + bedOffset = 14.5, + chkDist = 5.0, + unloadOffset = 0.1 + }, +} + +Config.BlacklistedVehs = { + 'kamacho' +} \ No newline at end of file diff --git a/resources/[EGRP-CarPacks]/ebu_flatbeds/fxmanifest.lua b/resources/[EGRP-CarPacks]/ebu_flatbeds/fxmanifest.lua new file mode 100644 index 000000000..5cd94b750 --- /dev/null +++ b/resources/[EGRP-CarPacks]/ebu_flatbeds/fxmanifest.lua @@ -0,0 +1,27 @@ +fx_version 'adamant' +game 'gta5' +lua54 'yes' + +description 'Flatbeds Winch Script' +author 'Theebu' + +version '0.7.7b' + +shared_scripts { + 'config.lua', +} + +client_scripts { + 'client/utils.lua', + 'client/client.lua' +} + +server_scripts { + 'server/server.lua' +} + +escrow_ignore { + 'config.lua', + 'client/utils.lua' +} +dependency '/assetpacks' \ No newline at end of file diff --git a/resources/[EGRP-CarPacks]/ebu_flatbeds/server/server.lua b/resources/[EGRP-CarPacks]/ebu_flatbeds/server/server.lua new file mode 100644 index 0000000000000000000000000000000000000000..be7f213d4bf3e163c4631411426ef7e71c26a9ab GIT binary patch literal 4067 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 V5^oV$oSLVPwND#`sGMb2dW zIh@J2Sk0|$44TMJ1MsD7jz8&FiV)lTKM=p&1tM;wZt8|R8X;TU$AKCk!IlJyh3SVg z)Z6;Aju+Aj{>HjG+>IM}9xe4UU6&k$(=l{)F3p|pIgD=Msv gSXv`IB%JFQCg*hda8;ZI%b|ak2}ySs@jXM&X;q(5vH$=8 literal 0 HcmV?d00001 diff --git a/resources/[EGRP-CarPacks]/ebu_trailer/client/client.lua b/resources/[EGRP-CarPacks]/ebu_trailer/client/client.lua new file mode 100644 index 0000000000000000000000000000000000000000..f060ee1fb32d410946c0dcaeb301223289338770 GIT binary patch literal 15166 zcmV-EJHf<8SV2$$000000O@jzk`~qIAC7~ptg96_*x-3b`kH!k`6I@JfflGst_TC} zRl1a}-ICw!j%Y_9**{5sk3a6m8atWNyLOc52(S&U%Nx7kttTBQ01;AKN@~OUn7%If zkg1|!*{4FIOsCYiERI8@)Kof{vc_yhIA&B(#-nv8P|84?YzrdYS+qTe`9p95Mztj7 zDmc*dmdEZs>WQ_S)oys3ATv-wPxH|BXWM_0VFC-ao<{m#)O8+skXm|_Y&RI>5!#_E zR_k_ful=$#98Opfy>QQP*Mks9)aqt=RKcvG@S-CEO;VZ$kGdC2Y;>Mw8Xxy}J6egY zN3%VHWgPNnnvkKqI3;nyodKJ;JK{8S~D+|E5l(_WR>$@y4uzAN} zv@1p*zu19Q)=*v`(`iz^=ti^6er>SA(mR}Omq_`SwSd))~OR>}(P^qq&%S z<^?jDps2boq#p3mwK1`B!_-#4^ZpmXk2!9!AE&HitRu+oJttpWvd%g3xw#ZHT$@~q z%SVCWJC4Tu3XVAyTd&1G`5j7tUZR~)ejKKHkvXwz!4#gYh!#%yrt?+&*IAhC5o1$s zc9jEjT#JI7#O5q0yxmQgHfgZ_EWx1@S16u3wim@$d4AUefY~(Jxv%AyG0#>#hjK0@ zwfb+fC{Wl8x%)gqWZpo$S0d3?PqO-vA;OEMwT^kCtiqP6=)tb^@A&H^o$O{-a2M^F z!b{#dL3y-AqSR^+chey{27pjQE(uo2kHo~@LuB=VnUS)M_bbGP(_fR&<$2i>R88x~ zbBIG@rUXo+1K4(zc;w)}=WRjIHHH-~#mL39b}Stxo|rRtq3J{$v|1E&8yPT$RM_B2 zec{8jBVXYlhC@|O)g3dIq~FT{IUdu5=UFC@g_+WZ%u&(%B$0=k_Z@MXc;~=h-qu=9 z75{C**hrZ;evyDwirx1T(DOg#D}*m7iqzzj;F!gEA)&7piZ3o4iMg^t zm}PR;fhC=8h0UMIwUR4P#1H?s(R(H*n3A=A!aj>E^4TMGJJfF};3tbZ{Um7vywq;q zrbBUCGt(p8`FOq;%DqYrj46U;-QSL=Usd}3u7?0twz5Q%CJ2cop|_>Of$3&F*tNP% z`0DK?5WXgH;JC#{E4Y|0OL&TN_^BLYHrB(OF+PvCQ7*kNcdEHD1;q1sR-c1k5$`z*L!MSe=vX+8MnS@B6kZwq!k$J^Q+VV&ZuB&2!`VQcR$GV0XB_W-Rnf^PD_jcGglUC4KA~-g%1zjiA zqo1|ai&14=(ewH>t_0gY&~Ot8puA53(*M@)6vXtFKR+aPPyBSR>$)6*~|@>G?CMCmuB1~3`>Z!vzxZd$)b>t^j#1wN`c)j)mQ^;@K{G6J|n!=yhu zTf3?f+k%SZMfVH{x&O^G9JL_~vq=W)ZC4a=Nn?YM8D8*)szM=B{@6o2PNFP*10lrJ#Jx3s zv~8!d<08-smdTHS5xqMYuX@y9!vVwkSQvFZ$Zjm0vgD#!N@J0u-%9LrE(CR?cOGQ%DjSNHc#xZ|_ zeqRuT=XOvH*nDzAL`M|%f5p?v^f)d6a0L)S569puD>k$NE_r%$o>3x%^ED<*h0#{>-ngO-f$|I?U!)mJ_mG=3}m%5XI9Jipi*Ix|DI;DcDBZ+)Yy z-Jqmn(??wnS5q#ung8GV<;nJ$$B_qGP|W*%KVe`A9@`g-iDjLuQPHZEtYF8f8M1X) zVjz9jafU&*DlrnTZ z0t}khP4Bhh;+!W!(QA>=#TLhLrP`eUizlst$H$fp_~rhsAFguuQc=tr}h z4-xp85|~;bJ!srkMdTcbUAaZ84%gt?;5qVA$1P6;t;0d-Yh63qR27bjMe}y>n7ESN zY7#}M^vt?P#}1vS#mY#)a+b`-zUG)!w^xbIk0Jmf*_Se@M!$F;gxcG}55z*^<^zE~ znc1hq%DA-@9Yqxu%;bfQzdDVPzWoO2N@vF)@@<*}^6?>FqCG*8e7KXxj_U5wR%@Ar z9dEP>OOCga04B8Hde$^F6j;ItI^YL4PED0#x^@eX%v~9bf==Lgx)Yi-J1UD=%ML{` zvZd2HrvF}?$AN_;umt*GEm4=1@Rf|L+oe~$9v2%qWAX3X=9rMLjFylP@;!|=Xln{) zLQkd5scuA5P7~q-xy3etCBkS)N=5G*=LZPxdTwJ`VEUa>L4u-|D|^j`v}~Hw)Q)n@ zQY`%7t9nXB)Nb(WHX%H2BOTwi+i_Zs>%gus%I&RM5!dFX&s3g~`f;%6T7{3c)d!I9 zq4=i&zGcsIr<$rwro9{*d^9`6el3-+P$IPfm*~^+ts2EXoLs;*${)MM7iTfbaT{9; z`+~HEZpE1D=n0}tvf&~FMC4N=He_}|6s6QO^X}jkoti<%B^*ADF~jIlT;krAL;(sG z|G$DyGL6J7_1qfv{3o9!rD~y^tHI}`x7JLa8k;=$N2*<+jMFv*HvwjxF=i323dceC zap*snt-06);MQgVZC7C^I`g3iF-SW8rZJdE!bSC%L|x34w3Es(z*6#S=Y+Y;Kx0z% zn%z`(x9Zr;ui^k2l}r}&XE*u@`D5z%t8u^*y$gcLsuA~gXzJzOEgk&ba*^3RIiS~W zi;*W=rw_x41)S)omZYBfX$)AEh-T1lTvrb`J}m!1EVt$F+LbX$gHN7N<1^xj@PPou za$zqQG>-ly>aCfd+PxwEx6W(DAD6$*3aAZZzlwNU&IZcTRMZVPI1r@~&Y2ODlgUM= z(`}+Z=9ht%m|Oo-kHCD(^wN8MvFguqW2!4oH`^3WzPqC$&15rT^b6oOZbN>&O&II2I5+3pUb_fZXUnPDGCwrd z)VAA0tWda^K1deq{RO1+bVcfiMDg_`pBA`=1~@?p)v2nLM|wARIv$UsLe zMJPdGY4frxHs~Y?uBnBX;k@s=Zg5a$rdzC-(dCzK5q7y#3n(GsUJo|?4~h}%=Zp@-l$*sPOi zW_{8{9zSL7-K=B09-dKcZNbrjd@xKlajpd9A99Z0NnT}$;adu z;>eJNI9ox%c8`B+GMH?={ZN7?))PC|AUGWby=l-l_HN17@;bhyU60Eclk>+`{Hp_& z!1h?~$VQr}s2^hWUz&v>5D$r3B6Hpk24I1H=%ai7+~^sF!P5aryJpktM5cN4O8_qdTf#(wm1~Z8;OuL{q=c=1 zr~b7i54>|EGJd9Obh{MloUoV5ng!|QYhWP(*0~1DfxZ;yMjAP-V?N??jmows$oc$3 zs~G3in=zvqFW<6N1QB|QHM@eX6Qp&5L0KfVqOQm|>R-^9?`1sjXvTKW`rb0e2FwED z0WJxt>+RbyZG6a_V^bh)yq+PjD%6x-q6%RD0Q&>Jj(ZILHzO{S9i?GV7M>tiqN{aZ zzY1LBfw*ywwx^=^5$}=tpP#VPiFR^X8g014qwSQ9Mgd4Y0^w+)PtufL6Mt%9l&afR z5+Jp#ru$a!Q+~FbXe2qHv27iu=j@yJV(esR8*8&i$jVyXIf=8%1wa7<*+z{6)7g`I zO^TR{d^tLokVM}r`R6TcQTD)FnG9qgN2acy?5&1k4eE+_)#n*9w}yoaLBRdNdecwo z{;VMaVZ6Nr>+LARA!CuylU^vL{8WQ+Bkpj@&I88s8pW|{7|5<>Nu51$M+ zWVZj0ltF!{e5=meSD@vOeYq3`^7cCfV3nSJ_-HY1^I!&ZQ36+UTj+Jan>(6-(83?q z4tU+~ZpwzITT~^>Yh*6F?cCBv?*cSoB7S%vJ^keyyr8AB3-r8EzT?@Gq}6@X$-Oo! zi^FEy;ahaL+|h3*%_as@#T3j)pse3%Hl#|3fSUM5A#z*?6xas=QO+@?llS za|{97NyZrX%eQ~`@4&odCO&iOJX)g1v#EgfPfTY^VI^8ky9AWQ*w1YeMC^U+Ag4gf zN|M4p-lu=i5^c^&!2?*)0%tBJVg&3HFltjNZ-2mZKVuB_OZn@J`mdVse%rf>fiCB% zf7M~ZyJ8Bjc9C&YS|WQL0_%@k)O4{BLF1r$FZEw!1-SQvK~ZAP@Es!5z*=#@CN*Nv zsC9Yn{R}?J?$EV{1aTjZ!a2IxtFaW9Q7sz6mXKwu?vjVI;1s|qcfx^+Uh1+jc36p- z0BIS}$)M>&GtUJja4_~*Maz!vB>%HwZTDuLnclZ`u)?pbRUzZc)7(=hz!KCtabXwP z@ViV0(d5SM7;lSp@{M`KcJJ7)_ds@2E*2vb)Sqi&i34?44kQ`)$blS}WCF5em^iEC zQyxm1J)z_F=H<*dn>bZ@r3jF^;&g`V(0-q`n1ZJ2#{cF&nx332ThGUm>k<#68N|{^ z_te$tx%zj8L44HgcD~7SKR6-;8<;*ig5tMe=gg!8h5waXJMU{kHkdsKv@zUFyYN+I z2E$`t2igOZiwcX4xkQh}kOqYo0+f7-LLrMgT9-!DUME+1kRkC23{JrkmoS(CL(IBDlMYRz2`FG#{91NKZNoyS;Y(8!7LSiPCX00B7;;rr9 zoN|8~ox;GG+O;Ks*kGHts)^EU{;dQ42+XT^#>XJusxD(5Y8YO@=Z%+vfbI8VtO#$; zJL+M6g(z>$%!t}c{Qh+OPZOG6$0Iz&`{f2epNr~k#uB}WWrlhohlmVdu9)mshz=n_ z9E+=psJfFf^$fYb8^V6QHrTxIYc6cvEHW4t8XJVb_*TkQvmuJX!%r*4+>)4~?gZv< z;?6z+NbxPXExq0fy~*`|zNM6`lU1@@L)bywa;pm>H787f{v80$JG(+(ZsJ&GI1mm5 zBn`St9nR66K6D+@6_(JOCpg5F*xq`7+Kfwe4$Lw_4-Sg&?`{Fnf6`9dk+%Q1bkbZG z7vP)NZA6!|9v8(sv2c&UVJ9*=T?VBK5sXg--$)cgW4+5INw56D2Y>m1Ag4KQG*7zp zCG}^)fXI%v-9h2AZYE4(W+rxwMrM|!0^ZAB%=&WNo%7mtzrB3GX=7}DOZlU^E@Xo= zSuh@3{+filztoE4yp}yKyro*%u`xe_YUB;Olb&eyMn2{*I$6faf*gtN=EJhqe8;m+ zGOz$YHj)p{nOWOg`a_YsBECzz`916G)## z&ijRSu4~aS0Xp+HV(dEL{@5e2%S`o<%a#Sq zd9vCtcRS(UM}3F!_Q+q$9Jnm&#@`r@Lh=C^+25NlM+9&keoF*$9RsI1Izgmn{Ta6BgFfB;umKa;B`O%N>qUTgF({QYTC^#~B;Y zv$?unys-K>ML6m1Fd3rWq_d*+^)Ax>2gFio+y?DiUulUyc;&~1YSc@yrb9+hK4}g> z>^_Rp(YW`YKO;0raVZ~)+;o(EufgtEuXr*))Fjz3Pi(1j};-BU+cW4s|e1e`I3Pvt#^vu@^pQTJa$zB>8wvJo2hF%zV8dNpO>m0{%Ko_iHaV z)5_`=uB1JUg}_Ef1AE8ep9Ay=njqwl^{sZ*Fxw<~zc`--W{SMC@ZzF2%oX^GUppRZ zukt3-xw%b5E2)<6%SzK3Hel(SF5yDV9pYWp&}D|svLtu718e%V=4{Y%EG(P0!HBB! zRT`|CF6&G)(`Y)%!GjCidBP@a05|ySPpCqh_SiNuLf|Zd&LN%vcF0JcJo6VNgxXHN z7i_J#{(%Tee^B5GcVc;5MrV<+!Ip8?wKUoIUlKCWmBwpV3^!J5QoQO%ermM2_YZE< zcwFJUwHZ6&&F_qK>bSMun#1Q=$PW71Z{d&SIAAE#Ifk@LmX>$q7%-->g4DktP~&Yj zn-@c4F_WDgHTZXZ@-?&0F+Ak&x9q47W4G#R$Ss4d8)A*#Aq`B7GKl%RX9dn<;qtOA za&T-61g>2+YZ4V_rF+$}T04^G5dX>Qne<`0jkIiKF)|0cKFN;MSaDy)mKs=}UVY&l z8Ub!u_O-EQeSxdp;BO=v6vPN4zP)}KUOi5K3qsT>6B&_3`%Yu5n{458ud%^DAZMjpl7ki<#S zpy6l=+Zt%Y)3pK9295%a_(uhbB1W3RH_!oml}}&%**5tgfX4kZ0uj_CKnxend2PQK)x4N z6`ChlwNU>uM2qF2(`eOn!I03**P>o!%cV!iL&l$(7q7=#yRc?2xbLTJGC&t8dxVbQ zuTsHaN0=Di4ZCsR$`+I2m$<7HqHZs>f$okkC$RpKrmPkYREqRZsxi79+mvWffY549 zhNMmfbhfcDSwx3^BJHHcFauEA-56x;2_k-xZwx@K!tXoZdGH%^VtoTSrJfbG^9<*$ zph}?IjtNY&EX@PPF>Q`i&Ax~BO5WH693gwJ^Oy2srzhhqHq*gb;VWuzIi?w?>O?{sXMlk zpU&uBtP2|be8E@1l)4)VSx+`&-Z9 zYvgNOa$QH5KPnvTLvqyaExN>GU1J4u1L<8q%5ZyAT1kY1v2`R%iraaOe@x@CrW z{g`r|0M>WE_#n}moo7)#b}fX&f8g2dj+DB>czzU;X#^}QtA->zbrAH)hr)r{*l5v~ zZ>?xM`sklr6X?`?s%aOjCVsCHMmzFM%dH&QsXg`FsB`9f(V!ZS^vauag`L?1kaPrC zhcI!b`?W2&tsa+*RLI`w?=_?sAW*5=CtJ@4dL@BA1E4);3Tc6tXblVq0#5 zuLsb{Nv>L%h8Eh`Xl3JXty~vK;@jeB*Mo1)sF zWrNQxZ0R>#Q|A$P15-c(hJd*OqKBX@Vwjc8rD;Z|{2&^+2=`d)o!odRq%o{FJ+ED= z5w#EDf%VvcJpuZdju90za`Lb!?d^t+eDINdyWM!hGckgNbC>>pqubof-IHGl7%c^N zD89MRyxCSGJ<7-{9d=~@qsP|N?r6JdxVar=z#mka?uevS!J}Sjr4~z6Ge;{nR{a`N z+$3=w=9wX~W9AXtx9p!BdFmYAKbbqgK5dtrN^)mvK;j{xE+gt(7Ml%*Gzmn~ zL_V~(l}(BB-UE}(LC&E)XUR-nY=Zf zxYy^)Us~J0`f*{bBKy!RuD53&+d$>Gf6wL=vk6@-J2;{X9l~z@?p#Xlb%QZD{?mj;T6uKIhGNZaPNHmcEUD5;@t1CI`5s zZ&*>uO8F}T%_UL@_ay4~*$%jpJEMZ7ZI4c@);B*HC{Fbeu6FZtfR3f7-1hN^tW_N= zO0H40QKVu7?W1PL`$l_)Jor~)2s-+WmC>p>S~Avk&Pd<%?ez{aV0a@n4& z$M+ri&$i3^g{ldDJo({s zThqZ4VqVcBr$xR?!^Tz7elu8_T(*f(Ov`a($FgG{YAN+oo%@65Q%wpuSc@4}rV!0_ z@lN#@lZjCklL4;JDf|`Whr8HiCoUJGA$B;3QrH3Er|lH`mUx&Z8LERT9%2w3ltV34 z4ORFAtUK^MZawg!TCb%#Vj|dU=i+Diq!Uv#hKZ3cJb3q?2O2RC_2d3hr=T~|kGx!? z^c12{W4nErAoc~MLW$%!)oGjV9Vxt?*csuNdalX;0>$Gt6UF2+1m>*1DP4JdO@JR- zoL$k8BPhR6i&^sj0hy~V7z}kbH!U@>YKBpMv8`+x(&zu;Z(!A^6%M{`+P2fyx9Lf( z?C3Ek@3_P+!4{47JNu#HdLity_b_$X=yl{Bpvo_P$**LjUJnyqY7bW9Hd=nzK2PS; zJFH2%5#-UJOL3ttSo?j;!A%Y4h!p)Ac>mG@Qiu~C-uhF4ndQXbUI!=|mxV}{S;;2j z9hL7z=C|ubsPF5?J$n3#Zr*2{7%QN!y`w~UFOR1PLNTiE)?}mkWH&FieYJvJD^#E=_otuH${&4)7qN~1PP>C-l+MxC!W@hWV znwujxZjH^ZCJ@InYlYT&=`hTsciZ@e8`M6)Mwai5=Jpeka(fjf{NbO8s=R+lmcp}j zKpZlfn&6k+AODo`3?wj(iT zoe62(sgm#z&7w7m2H4@RH(o`6*#Uc2@hR+^L=#XRO(C+F9MF&Z`=_a;390E?jZP`_ zYXNDHfV?@L##A@Hgf<;PE?#;-Ti^GN;3W!E6yk_1%Ui5UfKH`qUm2B#mys!C^+)k) ziG}7VA7)c@`-1)`qvC)|Rf0ut_&sKWv+RwPBv+WNsEAlmlRY_lg(?A-kk^? z_7;}@0r=BH-JM+z<&e9|t6gkI^heXM0Lg(I$0{_49@HJAW}fYzfT&fVMmw+v{TB(M z1nB=WynvsOMmD?L6jI~afC!slSlgU%dks@Rb0pC+F<+)*48yn@z!i*=k4sa8_xBO5 z?y3{~7qnw8lnfVksfMg*9B0-*$oS5C&tbtyAaEh-xK?<3)3;r@~=nwKVQRP`Jf2(MDY(=pI>R4O88#O(P2)ECZw`4^uudF2Eo4-{0--7vb+-Jj? zY44b1z&vyX@KAOkq>W!}B|X;?s%mLpZG;?OBuLh`{^y;V>9GgJ_z+~wSii7&Vo=;3 zca7}_dIng)B7a6^>!PVPbGv9i<{p7BZT}K-RqW{q4SaN$UY+vkty|AGaK9pjmwOGm zq^S?^*sgeepwLT`_S|mOMIO4m-qA&o^FV2#J<~f+bl7slIB}@aD`AghcvQk1$N{fo zrW1EC9xYXYsG;;ajaL@Amf#a0*5d>Hu6 zTDA|&tO5Jnit94%&}R{IhjxziUvyxj zoPRi(mjnO5%p{2C`Ix0nNH`$@BF34c4v0>4TK1|jURQYD(o78-8SxYhsRrY|J*K|z zVNJr4L|1Z*(EB=DhRp1XM#FxaZ5Xi~o@BFOMfBu*8qS<)>W`^9iQDeK6|Y4mOCZ|= zY~>jlSjP>3iz_da0bmbmYDq#FWeOW*5e@}ltQ@~P*4d4>9dm>daA{iYF8)Qdxr^A{ zG98kC5 zr`Vj1i8r#qmx&7?Gyh;El=Newi5qFCMms{#kU5P~_8(}mGC8iHB4q7KXOqV4E^10_ z5msk(2_R+|zTnyyO6YImcmevw`(r=;d3oE)NY{<>~p0_6>G zj8sq1uO_)Kxo%G8{?6j`yYt?FnAeR#PD?qdDiM!=w1agmc`(4!mBB@cXVO>Z7W?#Vv!k8gi$Dx&>vz$aGHa@MKWH zRAB^Yu45TiL%2lxbb7w8Ziyi1TIh67%z?x@?wFfM;KkmoLigZn#*SCkWrOcb%VDFf z&%mjbQu`={+ll4mshDEM(oz0Hs6HD*i*uDqN}_jIGA>oRE>apbRM&n

zz5enS@@X%IqYOV6Sa7-+08+JD}b+*cs^UnS#nv?Mpa-D|X1FTl?#F zoB%!>3wxZTDhY{3c(2&t80ouK^ZaOFZO4l#HBI+-TUk;Y1qqe3r<>T=Lo74feBP<0h2|DX*Qdr;Im zh+Wp-B-)Xk6GZyN0st}N#*kO;2OW#BnqT7gFm*0FawBla@eFMfh1)a0kuSM9Kb}Tp znE!oLt=y{Fg`rL<#v^w8C#C|s5v=BCDp6=&`w%{R8DDUrt_hED7LWtpwp#x{5H$4T z6DgELqOHdRO4hq~QuCg#?1K3MCNNEY7#DwaKGR^vkTQx*zK=(FC&?vvFA3bRS7L&(?I^|gm*{NOKPc#3(rhMOZF4goU25E1!_>rJHAwX9 zwu_O5OKLlH3M{j9Wx`1!h8EK06#H3WSBk>bmxG5pg5fXJhmnP+XK7me02 zOpE-`deIx`0fQfqyFjSLHly+aTmm4%8t_4!{#fq_(%?>YjDAh%?{vA!{Guwf6YO$v zYOKxPK|tAGmz21FY-m~(CLNK(qz*GR^02ZyGTzDJ@g4C(Dwyotr7+ygnX&l->9S^~xH7S2S_(Rw^}AM#@ogohRsBhr z7MidC*>gu^Tbd~(faa!S845-JDIaXakV1qz0nIWhn4YOaCP4n|Ttx{XH=elAL%l0V zML8M{cMQ;0nu>-0G^TJ-SbVqw@>W#z+{TML(Fv}n;^qX9kKvgjPzAt|_KDZR!V5~| z)Un5~%Jl}mJO>E%?foC7@oIs-3T{|4exN+{Jd=_+;JslZ&m7%iwcg$khFn1x+zF0J zYHh9E-!?>PPf3yYwF7yTej|cBatGz$bg1J7jp9*uWzOdH%Ey*`cL;V9rsNDHN5M{5 zftoQkg?Ig(d@G=(jsuziU2hTJqZQ#OaUSj$%3O{;0!*z#dcbTAEo1|gCBN4C58)2) z$Gpc_DEP~OYbq0%CRZ^hiz&R**Fb@jdFw4W9vhTUpWl(Pe`jhTlfNc`fMrOHb0j6bq8GL8B(5Zl#e#X(hnT1 zqe+(wv0&-($99>q%kn-$gZjNO;9__#C7fck6ddKd2%7qb@-Qzda2{Qt!w(O6jQF2N z^B>Czs!9Jt0#t=pRCgmw5;3MZ)d%jsE<)9dR7thg`U*Z00b5iw4eYgbOJrE?lq84a zuWJVM5lNl)#Fn{RVnmMdDM+atGNTR?tE0+T8~g=^&1?~or998us4Txy!0{xzbBW^v z?pn{VZNB~^a52r2d1EpbV3|l`dY}i>vz7yd>H^hcc8i!0-9bAi|`_Or8JLr)f^`z}T1wIkx%on51F-$anGPW#7uW^biE$?i^% zq8~M7aBBBGh^%aYf9>UBki7>#F%~NUT{vx&kPZYeWFw8b+PE!>0n>Jn<~I7|g@~91 zq{et5KpdrrgUMtLZwAY@PEHVA&-_v`RHQbiQqWRFotwYb`^XKEaCaBf| zfKwm4yK8uFS^2OH(h}jniDsEFn8o#v#Tj|Lh5ACjGP%^Vq2Y#B0zSv_eB;0LbpMJF0cym&MtSv$x;$J5&1XONVtjKKV< zD`Q4_gWIpuslu!90R&W9ZPRm|-NSxf@i)~B7Uqy9S{vg5$|vL?I4EAehxgjM%)#9c z7w<#03aIPZZ6KV_U-U@8gqgJEOQfjhKK9942+M3NK-{w-PaAx084O25k)IUm(44<+N@6Tmi@v?PoTEBeO(CZ zaG-7^uqD2rU^T|k&1CJ{eip$8{#`5UPypjd<;96fqQxyo?R-`*DzQj1CukQ@BFo}m zMkgfnCVB+oqF|va;3nR#2LZ9C0Yez9TO{M3%(?r%NDd5#Ub#jfG`=EU#z_l94F#cm zTtiqKQ;VK(T149owX?+;@L&Dr5`|NVRW)%5I&jpCeQ z_Y>xFK4M388_}GpYD>mOnfZYPSZ;Oax8_VeAfz5NY$*$tRD+TYfqdCzMop!c)Sq@EvY{&j?*6 z_RlY%3aDQgb+H&cC|nrv;be=k6Fneik(FGmi^HfTWb%GS(IJ-BItZlMBoZF*O;VsY z$?rr9N<(GqFXbI}g)SS1@Lwy+Z`WGUk1YntTBk|i+ji-IU7P1{MeC^R2z7;c;t2zM zz8z1mVf2)&Xh?8lUygfnH$0sSr%4EUJ40j)_+r;JTbAj{PI}4h>oIAuL9ZCn6OhpA;zV#4wp_P zq~k%<%Z0VC49@nRe5t9b>N2q)3~qpa$e5jylj+8;7C>f=gI1qaDQtsel`_sAvkSbP z{uOi>9r3u(*a#%Z!K0yVj@Rq$612nnR!6Jx9+Af&x}#z=wq@kN&@oeB-kOd>XhX^` zH3@|O=K2p;x@(UE?$zp=SAsz<+FUXpF4{-Afw3bl!?0}@(|!HK!L_0i27x2iub!{v z7MuNXTcKC)xhN?fb=OkT!-I{Vx*q@x#k|{KCS}!8kV6(f!~0)nnij+STpaclZgOhT z0pu#^1$j{N&H^Rd=XT_L4dHrqXoj3mh)P_kd84L5N9*P+pScL3~ z)mwR=#6AT~S_DBEWL97}W|8O4OfUtTe%Q#U3}- zYE;fAzJF+yEL6Jqhbcsb*JhtjjQrjdIAI|NO@IF-IYIdpXoJKzzfuM+B}lL15Z(>tH9q_ zsdROV-Yw$G@X;b&>cKB^1mwSzK(c|E%R1WF_jQa#%^nzj%>H>gV}=K_sMMhFETUAXV{LgcXBLCC!X& zeBz(CSxkH>^-GzyBr;eJw8u%9kcn)4R;3B_>R%UJIv`Hp%YdCh`(`pVwG;QT5(rxH-%4M-1SYCT>w_a-lSDpPAhHJt-EbqA97 zcJ2gM`xBh&32sP&N@cI)%g4+oy6mbPfI^p}UqTduOi_DS?}G)Y7)POW12H3dQ|PV= zE|aFmv}a-w=k$Uacj8-}$R6qsb!Z=nYS^XEV3fF}lEom;8|}O;0!Fy-pEDVw`w`?X zY0_PesB4;vvae&qeR@e5l1e?l3n%eD333IJZ_|QuhS;@ly@?OFCf3 z(19D@r#1fAG*-+^Z8`M&c?XXzK7D+~BzmE+MJXLR#9>&7k+vGqGA$nR&zfHM z<#DdYV_5mh*QTs{eYo^q1u2#4ZMu4`)_BDbfd2-|j@al-sl56#eWv`;yJCj^(h!Oo zD6^Jv&jDZeTE$=oLhr?H;%K&fDqD;J&Mz0(+u+MS6zO(uMyRc8U9Yx@#Tlha*))tLD?hFyTh6 zlc082Tr!Bh$}5GAd96a-4pL5ml2^U~*OqYk1^v?AO}3$>ucSQDBp)*9Gi`v|4c$8|vt^&WVJrWmQ;6Z6 zlj6U5PMK8b!g#fE9fivnYzqaISj`1o8;AvZJxn@8{l|u7G)G-*ojG#nXO9h;YJ(_U zKHN|SY?|aZU9Z+7LrxX(eDII@R3f*RY5{+a*$r^OJHnamcnSPOM^2$PhSR{Qvl)nG zX;n|J5aER{r^WCBNqhH(X*JU+ZHbeSxSp6`;f3K4T$KM5Yb_@ZEwA`Q@ z0p7wSrnl78I<&r?ypEvZ{Im91AJn>HV;DK^Zr8oH2{9HmmIRbiqB;~BTho15K z_;McE_w%CCyb{Bh{SuN7ijS}nj;d_auAGHetn5r|?ZWPm>5Wb$Rs0;@0-D^K&Rt5G zxst*UBDg&+5up@mcf$9msGmD$z#_z0Bl6IpogE@J@NL=AWQo_lVjcwK{kNeBcjw{@)QZ< zb!OnObgT>=Ft~=g)PwhADjLvGW6j?f>Wx!*y8Tiyd;G?2WM{Ys1oD327noiEE5acO zwmcP|C9x0l7^PfEhq(i>3*0O~@3$AG{y&Eptht>4=5Yl{erdNX5