Files
Elite-Gaming-FiveM/resources/Car-Nitro/client/ptfx.lua
T
2021-12-03 01:19:31 +00:00

83 lines
3.2 KiB
Lua

-- TODO: Get actual exhaust positions and rotations. This is based on bone
-- positions, but custom exhausts can have different positions or rotations.
function CreateVehicleExhaustBackfire(vehicle, scale)
local exhaustNames = {
"exhaust", "exhaust_2", "exhaust_3", "exhaust_4",
"exhaust_5", "exhaust_6", "exhaust_7", "exhaust_8",
"exhaust_9", "exhaust_10", "exhaust_11", "exhaust_12",
"exhaust_13", "exhaust_14", "exhaust_15", "exhaust_16"
}
for _, exhaustName in ipairs(exhaustNames) do
local boneIndex = GetEntityBoneIndexByName(vehicle, exhaustName)
if boneIndex ~= -1 then
local pos = GetWorldPositionOfEntityBone(vehicle, boneIndex)
local off = GetOffsetFromEntityGivenWorldCoords(vehicle, pos.x, pos.y, pos.z)
UseParticleFxAssetNextCall('core')
StartParticleFxNonLoopedOnEntity('veh_backfire', vehicle, off.x, off.y, off.z, 0.0, 0.0, 0.0, scale, false, false, false)
end
end
end
function CreateVehiclePurgeSpray(vehicle, xOffset, yOffset, zOffset, xRot, yRot, zRot, scale)
UseParticleFxAssetNextCall('core')
return StartParticleFxLoopedOnEntity('ent_sht_steam', vehicle, xOffset, yOffset, zOffset, xRot, yRot, zRot, scale, false, false, false)
end
function CreateVehicleLightTrail(vehicle, bone, scale)
UseParticleFxAssetNextCall('core')
local ptfx = StartParticleFxLoopedOnEntityBone('veh_light_red_trail', vehicle, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, bone, scale, false, false, false)
SetParticleFxLoopedEvolution(ptfx, "speed", 1.0, false)
return ptfx
end
function StopVehicleLightTrail(ptfx, duration)
Citizen.CreateThread(function()
local startTime = GetGameTimer()
local endTime = GetGameTimer() + duration
while GetGameTimer() < endTime do
Citizen.Wait(0)
local now = GetGameTimer()
local scale = (endTime - now) / duration
SetParticleFxLoopedScale(ptfx, scale)
SetParticleFxLoopedAlpha(ptfx, scale)
end
StopParticleFxLooped(ptfx)
end)
end
-- function CreateVehiclePurgeSpray(vehicle, xOffset, yOffset, zOffset, xRot, yRot, zRot, scale, density, r, g, b)
-- local boneIndex = GetEntityBoneIndexByName(vehicle, 'bonnet')
-- local pos = GetWorldPositionOfEntityBone(vehicle, boneIndex)
-- local off = GetOffsetFromEntityGivenWorldCoords(vehicle, pos.x, pos.y, pos.z)
--
-- local xOffset = (xOffset or 0) + off.x
-- local yOffset = (yOffset or 0) + off.y
-- local zOffset = (zOffset or 0) + off.z
--
-- local xRot = xRot or 0
-- local yRot = yRot or 0
-- local zRot = zRot or 0
--
-- local scale = scale or 0.5
-- local density = density or 3
--
-- local r = (r or 255) / 255
-- local g = (g or 255) / 255
-- local b = (b or 255) / 255
--
-- local particles = {}
--
-- for i = 0, density do
-- UseParticleFxAssetNextCall('core')
-- local fx1 = StartParticleFxLoopedOnEntity('ent_sht_steam', vehicle, off.x - 0.5, off.y + 0.05, off.z, 40.0, -20.0, 0.0, 0.5, false, false, false)
-- SetParticleFxLoopedColour(fx1, r, g, b)
--
-- UseParticleFxAssetNextCall('core')
-- local fx2 = StartParticleFxLoopedOnEntity('ent_sht_steam', vehicle, off.x + 0.5, off.y + 0.05, off.z, 40.0, 20.0, 0.0, 0.5, false, false, false)
-- SetParticleFxLoopedColour(fx2, r, g, b)
-- end
-- end