feat (vehicles): Updated Missing Vehicle Properties

[Update] Missing Vehicle Properties
This commit is contained in:
Idris Dev
2022-03-01 18:20:48 +11:00
committed by GitHub
2 changed files with 135 additions and 25 deletions
+2
View File
@@ -61,7 +61,9 @@ RegisterNetEvent('QBCore:Command:SpawnVehicle', function(vehName)
end
local vehicle = CreateVehicle(hash, GetEntityCoords(ped), GetEntityHeading(ped), true, false)
TaskWarpPedIntoVehicle(ped, vehicle, -1)
SetVehicleFuelLevel(vehicle, 100.0)
SetModelAsNoLongerNeeded(vehicle)
TriggerEvent("vehiclekeys:client:SetOwner", QBCore.Functions.GetPlate(vehicle))
end)
+133 -25
View File
@@ -366,7 +366,7 @@ end
-- Vehicle
function QBCore.Functions.SpawnVehicle(model, cb, coords, isnetworked)
function QBCore.Functions.SpawnVehicle(model, cb, coords, isnetworked, teleportInto)
local model = GetHashKey(model)
local ped = PlayerPedId()
if coords then
@@ -388,7 +388,10 @@ function QBCore.Functions.SpawnVehicle(model, cb, coords, isnetworked)
SetNetworkIdCanMigrate(netid, true)
SetVehicleNeedsToBeHotwired(veh, false)
SetVehRadioStation(veh, 'OFF')
SetVehicleFuelLevel(veh, 100.0)
SetModelAsNoLongerNeeded(model)
if teleportInto then TaskWarpPedIntoVehicle(PlayerPedId(), veh, -1) end
if cb then
cb(veh)
end
@@ -425,10 +428,9 @@ end
function QBCore.Functions.GetVehicleProperties(vehicle)
if DoesEntityExist(vehicle) then
local colorPrimary, colorSecondary = GetVehicleColours(vehicle)
local pearlescentColor, wheelColor = GetVehicleExtraColours(vehicle)
local extras = {}
local colorPrimary, colorSecondary = GetVehicleColours(vehicle)
if GetIsVehiclePrimaryColourCustom(vehicle) then
r, g, b = GetVehicleCustomPrimaryColour(vehicle)
colorPrimary = { r, g, b }
@@ -439,6 +441,7 @@ function QBCore.Functions.GetVehicleProperties(vehicle)
colorSecondary = { r, g, b }
end
local extras = {}
for extraId = 0, 12 do
if DoesExtraExist(vehicle, extraId) then
local state = IsVehicleExtraTurnedOn(vehicle, extraId) == 1
@@ -446,10 +449,39 @@ function QBCore.Functions.GetVehicleProperties(vehicle)
end
end
local modLivery = GetVehicleMod(vehicle, 48)
if GetVehicleMod(vehicle, 48) == -1 and GetVehicleLivery(vehicle) ~= -1 then
modLivery = GetVehicleLivery(vehicle)
else
modLivery = GetVehicleMod(vehicle, 48)
end
local neons = {}
for i = 0,3 do
neons[i] = IsVehicleNeonLightEnabled(vehicle, i)
end
local tireHealth = {}
for i = 0,3 do
tireHealth[i] = GetVehicleWheelHealth(vehicle, i)
end
local tireBurstState = {}
for i = 0,5 do
tireBurstState[i] = IsVehicleTyreBurst(vehicle, i, false)
end
local tireBurstCompletely = {}
for i = 0,5 do
tireBurstCompletely[i] = IsVehicleTyreBurst(vehicle, i, true)
end
local _windowStatus = {}
for i=0, 7 do
_windowStatus[i] = IsVehicleWindowIntact(vehicle, i) == 1
end
local _doorStatus = {}
for i=0, 5 do
_doorStatus[i] = IsVehicleDoorDamaged(vehicle, i) == 1
end
return {
@@ -461,6 +493,7 @@ function QBCore.Functions.GetVehicleProperties(vehicle)
tankHealth = QBCore.Shared.Round(GetVehiclePetrolTankHealth(vehicle), 0.1),
fuelLevel = QBCore.Shared.Round(GetVehicleFuelLevel(vehicle), 0.1),
dirtLevel = QBCore.Shared.Round(GetVehicleDirtLevel(vehicle), 0.1),
oilLevel = QBCore.Shared.Round(GetVehicleOilLevel(vehicle), 0.1),
color1 = colorPrimary,
color2 = colorSecondary,
pearlescentColor = pearlescentColor,
@@ -468,15 +501,19 @@ function QBCore.Functions.GetVehicleProperties(vehicle)
dashboardColor = GetVehicleDashboardColour(vehicle),
wheelColor = wheelColor,
wheels = GetVehicleWheelType(vehicle),
wheelSize = GetVehicleWheelSize(vehicle),
wheelWidth = GetVehicleWheelWidth(vehicle),
tireHealth = tireHealth,
tireBurstState = tireBurstState,
tireBurstCompletely = tireBurstCompletely,
windowTint = GetVehicleWindowTint(vehicle),
windowStatus = _windowStatus,
doorStatus = _doorStatus,
xenonColor = GetVehicleXenonLightsColour(vehicle),
neonEnabled = {
IsVehicleNeonLightEnabled(vehicle, 0),
IsVehicleNeonLightEnabled(vehicle, 1),
IsVehicleNeonLightEnabled(vehicle, 2),
IsVehicleNeonLightEnabled(vehicle, 3)
},
neonEnabled = neons,
neonColor = table.pack(GetVehicleNeonLightsColour(vehicle)),
headlightColor = GetVehicleHeadlightsColour(vehicle),
interiorColor = GetVehicleInteriorColour(vehicle),
extras = extras,
tyreSmokeColor = table.pack(GetVehicleTyreSmokeColor(vehicle)),
modSpoilers = GetVehicleMod(vehicle, 0),
@@ -496,8 +533,11 @@ function QBCore.Functions.GetVehicleProperties(vehicle)
modHorns = GetVehicleMod(vehicle, 14),
modSuspension = GetVehicleMod(vehicle, 15),
modArmor = GetVehicleMod(vehicle, 16),
modKit17 = GetVehicleMod(vehicle, 17),
modTurbo = IsToggleModOn(vehicle, 18),
modKit19 = GetVehicleMod(vehicle, 19),
modSmokeEnabled = IsToggleModOn(vehicle, 20),
modKit21 = GetVehicleMod(vehicle, 21),
modXenon = IsToggleModOn(vehicle, 22),
modFrontWheels = GetVehicleMod(vehicle, 23),
modBackWheels = GetVehicleMod(vehicle, 24),
@@ -525,7 +565,10 @@ function QBCore.Functions.GetVehicleProperties(vehicle)
modTrimB = GetVehicleMod(vehicle, 44),
modTank = GetVehicleMod(vehicle, 45),
modWindows = GetVehicleMod(vehicle, 46),
modKit47 = GetVehicleMod(vehicle, 47),
modLivery = modLivery,
modKit49 = GetVehicleMod(vehicle, 49),
liveryRoof = GetVehicleRoofLivery(vehicle),
}
else
return
@@ -534,6 +577,16 @@ end
function QBCore.Functions.SetVehicleProperties(vehicle, props)
if DoesEntityExist(vehicle) then
if props.extras then
for id, enabled in pairs(props.extras) do
if enabled then
SetVehicleExtra(vehicle, tonumber(id), 0)
else
SetVehicleExtra(vehicle, tonumber(id), 1)
end
end
end
local colorPrimary, colorSecondary = GetVehicleColours(vehicle)
local pearlescentColor, wheelColor = GetVehicleExtraColours(vehicle)
SetVehicleModKit(vehicle, 0)
@@ -549,12 +602,37 @@ function QBCore.Functions.SetVehicleProperties(vehicle, props)
if props.engineHealth then
SetVehicleEngineHealth(vehicle, props.engineHealth + 0.0)
end
if props.tankHealth then
SetVehiclePetrolTankHealth(vehicle, props.tankHealth)
end
if props.fuelLevel then
SetVehicleFuelLevel(vehicle, props.fuelLevel + 0.0)
end
if props.oilLevel then
SetVehicleOilLevel(vehicle, props.oilLevel)
end
if props.dirtLevel then
SetVehicleDirtLevel(vehicle, props.dirtLevel + 0.0)
end
if props.tireHealth then
for wheelIndex, health in pairs(props.tireHealth) do
SetVehicleWheelHealth(vehicle, wheelIndex, health)
end
end
if props.tireBurstState then
for wheelIndex, burstState in pairs(props.tireBurstState) do
if burstState then
SetVehicleTyreBurst(vehicle, tonumber(wheelIndex), false, 1000.0)
end
end
end
if props.tireBurstCompletely then
for wheelIndex, burstState in pairs(props.tireBurstCompletely) do
if burstState then
SetVehicleTyreBurst(vehicle, tonumber(wheelIndex), true, 1000.0)
end
end
end
if props.color1 then
if type(props.color1) == "number" then
SetVehicleColours(vehicle, props.color1, colorSecondary)
@@ -587,26 +665,35 @@ function QBCore.Functions.SetVehicleProperties(vehicle, props)
if props.windowTint then
SetVehicleWindowTint(vehicle, props.windowTint)
end
if props.neonEnabled then
SetVehicleNeonLightEnabled(vehicle, 0, props.neonEnabled[1])
SetVehicleNeonLightEnabled(vehicle, 1, props.neonEnabled[2])
SetVehicleNeonLightEnabled(vehicle, 2, props.neonEnabled[3])
SetVehicleNeonLightEnabled(vehicle, 3, props.neonEnabled[4])
if props.windowStatus then
for windowIndex, smashWindow in pairs(props.windowStatus) do
if not smashWindow then SmashVehicleWindow(vehicle, windowIndex) end
end
end
if props.extras then
for id, enabled in pairs(props.extras) do
if enabled then
SetVehicleExtra(vehicle, tonumber(id), 0)
else
SetVehicleExtra(vehicle, tonumber(id), 1)
end
if props.doorStatus then
for doorIndex, breakDoor in pairs(props.doorStatus) do
if breakDoor then SetVehicleDoorBroken(vehicle, doorIndex, true) end
end
end
if props.neonEnabled then
for neonIndex, enableNeons in pairs(props.neonEnabled) do
SetVehicleNeonLightEnabled(vehicle, i, enableNeons)
end
end
if props.neonColor then
SetVehicleNeonLightsColour(vehicle, props.neonColor[1], props.neonColor[2], props.neonColor[3])
end
if props.modSmokeEnabled then
ToggleVehicleMod(vehicle, 20, true)
if props.headlightColor then
SetVehicleHeadlightsColour(vehicle, props.headlightColor)
end
if props.interiorColor then
SetVehicleInteriorColour(vehicle, props.interiorColor)
end
if props.wheelSize then
SetVehicleWheelSize(vehicle, props.wheelSize)
end
if props.wheelWidth then
SetVehicleWheelWidth(vehicle, props.wheelWidth)
end
if props.tyreSmokeColor then
SetVehicleTyreSmokeColor(vehicle, props.tyreSmokeColor[1], props.tyreSmokeColor[2], props.tyreSmokeColor[3])
@@ -662,9 +749,21 @@ function QBCore.Functions.SetVehicleProperties(vehicle, props)
if props.modArmor then
SetVehicleMod(vehicle, 16, props.modArmor, false)
end
if props.modKit17 then
SetVehicleMod(vehicle, 17, props.modKit17, false)
end
if props.modTurbo then
ToggleVehicleMod(vehicle, 18, props.modTurbo)
end
if props.modKit19 then
SetVehicleMod(vehicle, 19, props.modKit19, false)
end
if props.modSmokeEnabled then
ToggleVehicleMod(vehicle, 20, props.modSmokeEnabled)
end
if props.modKit21 then
SetVehicleMod(vehicle, 21, props.modKit21, false)
end
if props.modXenon then
ToggleVehicleMod(vehicle, 22, props.modXenon)
end
@@ -749,10 +848,19 @@ function QBCore.Functions.SetVehicleProperties(vehicle, props)
if props.modWindows then
SetVehicleMod(vehicle, 46, props.modWindows, false)
end
if props.modKit47 then
SetVehicleMod(vehicle, 47, props.modKit47, false)
end
if props.modLivery then
SetVehicleMod(vehicle, 48, props.modLivery, false)
SetVehicleLivery(vehicle, props.modLivery)
end
if props.modKit49 then
SetVehicleMod(vehicle, 49, props.modKit49, false)
end
if props.liveryRoof then
SetVehicleRoofLivery(vehicle, props.liveryRoof)
end
end
end