fix(client/vehicleProperties): tonumber for extras and tyres

Sparse arrays sometimes json.decode with string keys, i.e.
`{[5] = 1, [10] = 1}` becomes `[null,null,null,null,1,null,null,null,null,1]`
`{[10] = 1, [11] = 1}` becomes `{"10":1,"11":1}`
This commit is contained in:
Linden
2023-05-22 04:55:31 +10:00
parent b4edc5bac6
commit 4e4b5bd570
2 changed files with 6 additions and 6 deletions

View File

@@ -21,7 +21,7 @@ interface VehicleProperties {
xenonColor: number; xenonColor: number;
neonEnabled: boolean[]; neonEnabled: boolean[];
neonColor: [number, number, number]; neonColor: [number, number, number];
extras: boolean[]; extras: Record<number | string, 0 | 1>;
tyreSmokeColor: [number, number, number]; tyreSmokeColor: [number, number, number];
modKit: number; modKit: number;
modSpoilers: number; modSpoilers: number;
@@ -79,7 +79,7 @@ interface VehicleProperties {
modLightbar: number; modLightbar: number;
windows: number[]; windows: number[];
doors: number[]; doors: number[];
tyres: number[]; tyres: Record<number | string, 1 | 2>
leftHeadlight: boolean; leftHeadlight: boolean;
rightHeadlight: boolean; rightHeadlight: boolean;
frontBumper: boolean; frontBumper: boolean;

View File

@@ -23,7 +23,7 @@ if cache.game == 'redm' then return end
---@field xenonColor? number ---@field xenonColor? number
---@field neonEnabled? boolean[] ---@field neonEnabled? boolean[]
---@field neonColor? number | number[] ---@field neonColor? number | number[]
---@field extras? boolean[] ---@field extras? table<number | string, 0 | 1>
---@field tyreSmokeColor? number | number[] ---@field tyreSmokeColor? number | number[]
---@field modKit number ---@field modKit number
---@field modSpoilers? number ---@field modSpoilers? number
@@ -81,7 +81,7 @@ if cache.game == 'redm' then return end
---@field modLightbar? number ---@field modLightbar? number
---@field windows? number[] ---@field windows? number[]
---@field doors? number[] ---@field doors? number[]
---@field tyres? number[] ---@field tyres? table<number | string, 1 | 2>
---@field bulletProofTyres? boolean ---@field bulletProofTyres? boolean
RegisterNetEvent('ox_lib:setVehicleProperties', function(netid, data) RegisterNetEvent('ox_lib:setVehicleProperties', function(netid, data)
@@ -355,7 +355,7 @@ function lib.setVehicleProperties(vehicle, props)
if props.extras then if props.extras then
for id, disable in pairs(props.extras) do for id, disable in pairs(props.extras) do
SetVehicleExtra(vehicle, id, disable == 1) SetVehicleExtra(vehicle, tonumber(id) --[[@as number]], disable == 1)
end end
end end
@@ -373,7 +373,7 @@ function lib.setVehicleProperties(vehicle, props)
if props.tyres then if props.tyres then
for tyre, state in pairs(props.tyres) do for tyre, state in pairs(props.tyres) do
SetVehicleTyreBurst(vehicle, tyre, state == 2, 1000.0) SetVehicleTyreBurst(vehicle, tonumber(tyre) --[[@as number]], state == 2, 1000.0)
end end
end end