169 lines
		
	
	
	
		
			7.6 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			169 lines
		
	
	
	
		
			7.6 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
if config.framework == "esx" then
 | 
						|
    tgiCore.GetVehicleProperties = myFramework.Game.GetVehicleProperties
 | 
						|
elseif config.framework == "qb" then
 | 
						|
    tgiCore.GetVehicleProperties = myFramework.Functions.GetVehicleProperties
 | 
						|
else
 | 
						|
    local gameBuild = GetGameBuildNumber()
 | 
						|
    function tgiCore.GetVehicleProperties(vehicle)
 | 
						|
        if DoesEntityExist(vehicle) then
 | 
						|
            ---@type number | number[], number | number[]
 | 
						|
            local colorPrimary, colorSecondary = GetVehicleColours(vehicle)
 | 
						|
            local pearlescentColor, wheelColor = GetVehicleExtraColours(vehicle)
 | 
						|
            local paintType1 = GetVehicleModColor_1(vehicle)
 | 
						|
            local paintType2 = GetVehicleModColor_2(vehicle)
 | 
						|
 | 
						|
            if GetIsVehiclePrimaryColourCustom(vehicle) then
 | 
						|
                colorPrimary = { GetVehicleCustomPrimaryColour(vehicle) }
 | 
						|
            end
 | 
						|
 | 
						|
            if GetIsVehicleSecondaryColourCustom(vehicle) then
 | 
						|
                colorSecondary = { GetVehicleCustomSecondaryColour(vehicle) }
 | 
						|
            end
 | 
						|
 | 
						|
            local extras = {}
 | 
						|
 | 
						|
            for i = 1, 15 do
 | 
						|
                if DoesExtraExist(vehicle, i) then
 | 
						|
                    extras[i] = IsVehicleExtraTurnedOn(vehicle, i) and 0 or 1
 | 
						|
                end
 | 
						|
            end
 | 
						|
 | 
						|
            local modLiveryCount = GetVehicleLiveryCount(vehicle)
 | 
						|
            local modLivery = GetVehicleLivery(vehicle)
 | 
						|
 | 
						|
            if modLiveryCount == -1 or modLivery == -1 then
 | 
						|
                modLivery = GetVehicleMod(vehicle, 48)
 | 
						|
            end
 | 
						|
 | 
						|
            local damage = {
 | 
						|
                windows = {},
 | 
						|
                doors = {},
 | 
						|
                tyres = {},
 | 
						|
            }
 | 
						|
 | 
						|
            local windows = 0
 | 
						|
 | 
						|
            for i = 0, 7 do
 | 
						|
                RollUpWindow(vehicle, i)
 | 
						|
 | 
						|
                if not IsVehicleWindowIntact(vehicle, i) then
 | 
						|
                    windows += 1
 | 
						|
                    damage.windows[windows] = i
 | 
						|
                end
 | 
						|
            end
 | 
						|
 | 
						|
            local doors = 0
 | 
						|
 | 
						|
            for i = 0, 5 do
 | 
						|
                if IsVehicleDoorDamaged(vehicle, i) then
 | 
						|
                    doors += 1
 | 
						|
                    damage.doors[doors] = i
 | 
						|
                end
 | 
						|
            end
 | 
						|
 | 
						|
            for i = 0, 7 do
 | 
						|
                if IsVehicleTyreBurst(vehicle, i, false) then
 | 
						|
                    damage.tyres[i] = IsVehicleTyreBurst(vehicle, i, true) and 2 or 1
 | 
						|
                end
 | 
						|
            end
 | 
						|
 | 
						|
            local neons = {}
 | 
						|
 | 
						|
            for i = 0, 3 do
 | 
						|
                neons[i + 1] = IsVehicleNeonLightEnabled(vehicle, i)
 | 
						|
            end
 | 
						|
 | 
						|
            return {
 | 
						|
                model = GetEntityModel(vehicle),
 | 
						|
                plate = GetVehicleNumberPlateText(vehicle),
 | 
						|
                plateIndex = GetVehicleNumberPlateTextIndex(vehicle),
 | 
						|
                bodyHealth = math.floor(GetVehicleBodyHealth(vehicle) + 0.5),
 | 
						|
                engineHealth = math.floor(GetVehicleEngineHealth(vehicle) + 0.5),
 | 
						|
                tankHealth = math.floor(GetVehiclePetrolTankHealth(vehicle) + 0.5),
 | 
						|
                fuelLevel = math.floor(GetVehicleFuelLevel(vehicle) + 0.5),
 | 
						|
                oilLevel = math.floor(GetVehicleOilLevel(vehicle) + 0.5),
 | 
						|
                dirtLevel = math.floor(GetVehicleDirtLevel(vehicle) + 0.5),
 | 
						|
                paintType1 = paintType1,
 | 
						|
                paintType2 = paintType2,
 | 
						|
                color1 = colorPrimary,
 | 
						|
                color2 = colorSecondary,
 | 
						|
                pearlescentColor = pearlescentColor,
 | 
						|
                interiorColor = GetVehicleInteriorColor(vehicle),
 | 
						|
                dashboardColor = GetVehicleDashboardColour(vehicle),
 | 
						|
                wheelColor = wheelColor,
 | 
						|
                wheelWidth = GetVehicleWheelWidth(vehicle),
 | 
						|
                wheelSize = GetVehicleWheelSize(vehicle),
 | 
						|
                wheels = GetVehicleWheelType(vehicle),
 | 
						|
                windowTint = GetVehicleWindowTint(vehicle),
 | 
						|
                xenonColor = GetVehicleXenonLightsColor(vehicle),
 | 
						|
                neonEnabled = neons,
 | 
						|
                neonColor = { GetVehicleNeonLightsColour(vehicle) },
 | 
						|
                extras = extras,
 | 
						|
                tyreSmokeColor = { GetVehicleTyreSmokeColor(vehicle) },
 | 
						|
                modSpoilers = GetVehicleMod(vehicle, 0),
 | 
						|
                modFrontBumper = GetVehicleMod(vehicle, 1),
 | 
						|
                modRearBumper = GetVehicleMod(vehicle, 2),
 | 
						|
                modSideSkirt = GetVehicleMod(vehicle, 3),
 | 
						|
                modExhaust = GetVehicleMod(vehicle, 4),
 | 
						|
                modFrame = GetVehicleMod(vehicle, 5),
 | 
						|
                modGrille = GetVehicleMod(vehicle, 6),
 | 
						|
                modHood = GetVehicleMod(vehicle, 7),
 | 
						|
                modFender = GetVehicleMod(vehicle, 8),
 | 
						|
                modRightFender = GetVehicleMod(vehicle, 9),
 | 
						|
                modRoof = GetVehicleMod(vehicle, 10),
 | 
						|
                modEngine = GetVehicleMod(vehicle, 11),
 | 
						|
                modBrakes = GetVehicleMod(vehicle, 12),
 | 
						|
                modTransmission = GetVehicleMod(vehicle, 13),
 | 
						|
                modHorns = GetVehicleMod(vehicle, 14),
 | 
						|
                modSuspension = GetVehicleMod(vehicle, 15),
 | 
						|
                modArmor = GetVehicleMod(vehicle, 16),
 | 
						|
                modNitrous = GetVehicleMod(vehicle, 17),
 | 
						|
                modTurbo = IsToggleModOn(vehicle, 18),
 | 
						|
                modSubwoofer = GetVehicleMod(vehicle, 19),
 | 
						|
                modSmokeEnabled = IsToggleModOn(vehicle, 20),
 | 
						|
                modHydraulics = IsToggleModOn(vehicle, 21),
 | 
						|
                modXenon = IsToggleModOn(vehicle, 22),
 | 
						|
                modFrontWheels = GetVehicleMod(vehicle, 23),
 | 
						|
                modBackWheels = GetVehicleMod(vehicle, 24),
 | 
						|
                modCustomTiresF = GetVehicleModVariation(vehicle, 23),
 | 
						|
                modCustomTiresR = GetVehicleModVariation(vehicle, 24),
 | 
						|
                modPlateHolder = GetVehicleMod(vehicle, 25),
 | 
						|
                modVanityPlate = GetVehicleMod(vehicle, 26),
 | 
						|
                modTrimA = GetVehicleMod(vehicle, 27),
 | 
						|
                modOrnaments = GetVehicleMod(vehicle, 28),
 | 
						|
                modDashboard = GetVehicleMod(vehicle, 29),
 | 
						|
                modDial = GetVehicleMod(vehicle, 30),
 | 
						|
                modDoorSpeaker = GetVehicleMod(vehicle, 31),
 | 
						|
                modSeats = GetVehicleMod(vehicle, 32),
 | 
						|
                modSteeringWheel = GetVehicleMod(vehicle, 33),
 | 
						|
                modShifterLeavers = GetVehicleMod(vehicle, 34),
 | 
						|
                modAPlate = GetVehicleMod(vehicle, 35),
 | 
						|
                modSpeakers = GetVehicleMod(vehicle, 36),
 | 
						|
                modTrunk = GetVehicleMod(vehicle, 37),
 | 
						|
                modHydrolic = GetVehicleMod(vehicle, 38),
 | 
						|
                modEngineBlock = GetVehicleMod(vehicle, 39),
 | 
						|
                modAirFilter = GetVehicleMod(vehicle, 40),
 | 
						|
                modStruts = GetVehicleMod(vehicle, 41),
 | 
						|
                modArchCover = GetVehicleMod(vehicle, 42),
 | 
						|
                modAerials = GetVehicleMod(vehicle, 43),
 | 
						|
                modTrimB = GetVehicleMod(vehicle, 44),
 | 
						|
                modTank = GetVehicleMod(vehicle, 45),
 | 
						|
                modWindows = GetVehicleMod(vehicle, 46),
 | 
						|
                modDoorR = GetVehicleMod(vehicle, 47),
 | 
						|
                modLivery = modLivery,
 | 
						|
                modRoofLivery = GetVehicleRoofLivery(vehicle),
 | 
						|
                modLightbar = GetVehicleMod(vehicle, 49),
 | 
						|
                windows = damage.windows,
 | 
						|
                doors = damage.doors,
 | 
						|
                tyres = damage.tyres,
 | 
						|
                bulletProofTyres = GetVehicleTyresCanBurst(vehicle),
 | 
						|
                driftTyres = gameBuild >= 2372 and GetDriftTyresEnabled(vehicle),
 | 
						|
                -- no setters?
 | 
						|
                -- leftHeadlight = GetIsLeftVehicleHeadlightDamaged(vehicle),
 | 
						|
                -- rightHeadlight = GetIsRightVehicleHeadlightDamaged(vehicle),
 | 
						|
                -- frontBumper = IsVehicleBumperBrokenOff(vehicle, true),
 | 
						|
                -- rearBumper = IsVehicleBumperBrokenOff(vehicle, false),
 | 
						|
            }
 | 
						|
        end
 | 
						|
    end
 | 
						|
end
 |