Jump to content

Please help me with the car sound mod :((


LuisPark

Recommended Posts

try this

function updateEngineSound() 
    local allVehicles = getElementsByType("vehicle") 
    for index, veh in ipairs (allVehicles) do 
        local model = getElementModel(veh) 
        if model == 580 then 
            if getVehicleEngineState(veh) then 
                local x, y, z = getElementPosition(veh) 
  
                local sound = getElementData(veh, "engineSound") 
  
                    sound = playSound3D("sounds/song.mp3", x, y, z, true) 
                    setElementData(veh, "engineSound", sound) 
                end 
  
                if isSoundPaused(sound) then 
                    setSoundPaused(sound, false) 
                end 
  
                local velocityX, velocityY, velocityZ = getElementVelocity(veh) 
                local actualspeed = (velocityX^2 + velocityY^2 + velocityZ^2)^(0.5) 
                local mph = actualspeed * 50 * 111.847 
  
                
                local minSoundSpeed = 0.25 
                local soundSpeed = mph/(80+80/minSoundSpeed) + minSoundSpeed 
              
                setSoundSpeed (sound, soundSpeed) 
  
  
                setElementPosition(sound, x, y, z) 
  
            else -- otherwise (so if the engine is off) 
  
                setSoundPaused(sound, true) 
            end 
        end 
    end 
end 
setTimer(updateEngineSound, 50, 0) 
  

Link to comment

Create a 3D sound and attach it to the car, then you'll have to edit the pitch and speed of the sound cue to create the effect of reving the engine.

I was working on something like this before, but I never finished it and don't think I will - it alters the sound effect depending on the engine's RPM, rather than speed.

Link to comment
  • 3 weeks later...

This is the 'client' I'm using, you can refer to it :D

Just add your audio files.

  
local engine_sound = "sounds/engine.wav"
local idle_soundfile = "sounds/engine_idle.wav"
local engine_sound1 = "sounds/audi_start.wav"
local idle_soundfile1 = "sounds/audi_stop.wav"
local engine_sound2 = "sounds/bmw_start.wav"
local idle_soundfile2 = "sounds/bmw_stop.wav"
local engine_sound3 = "sounds/bugatti_start.wav"
local idle_soundfile3 = "sounds/bugatti_stop.wav"
local engine_sound4 = "sounds/camaro_start.wav"
local idle_soundfile4 = "sounds/camaro_stop.wav"
local engine_sound5 = "sounds/cop_start.wav"
local idle_soundfile5 = "sounds/cop_stop.wav"
local engine_sound6 = "sounds/engine_2.wav"
local idle_soundfile6 = "sounds/engine_idle_2.wav"
local engine_sound7 = "sounds/ford_start.wav"
local idle_soundfile7 = "sounds/ford_stop.wav"
local engine_sound8 = "sounds/kog_start.wav"
local idle_soundfile8 = "sounds/kog_stop.wav"
local engine_sound9 = "sounds/lambor_start.wav"
local idle_soundfile10 = "sounds/lambor_stop.wav"
local engine_sound10 = "sounds/lex_start.wav"
local idle_soundfile11 = "sounds/lex_stop.wav"
local engine_sound12 = "sounds/mer_start.wav"
local idle_soundfile12 = "sounds/mer_stop.wav"
local engine_sound13 = "sounds/mit_start.wav"
local idle_soundfile13 = "sounds/mit_stop.wav"
local engine_sound14 = "sounds/nis_start.wav"
local idle_soundfile15 = "sounds/nis_stop.wav"
local engine_sound15 = "sounds/nrg_start.wav"
local idle_soundfile16 = "sounds/nrg_stop.wav"
local engine_sound16 = "sounds/pon_start.wav"
local idle_soundfile17 = "sounds/pon_stop.wav"
local engine_sound17 = "sounds/roll_start.wav"
local idle_soundfile18 = "sounds/roll_stop.wav"
local engine_sound19 = "sounds/tus_start.wav"
local idle_soundfile19 = "sounds/tus_stop.wav"
local engine_sound20 = "sounds/_start.wav"
local idle_soundfile20 = "sounds/_stop.wav"
 
local sound = nil
local idle_sound = nil
 
function getVehicleRPM(vehicle)
    if (vehicle) then  
        if (isVehicleOnGround(vehicle)) then
            if (getVehicleEngineState(vehicle) == true) then
                if(getVehicleCurrentGear(vehicle) > 0) then
                    vehicleRPM = math.floor(((getElementSpeed(vehicle, "kmh")/getVehicleCurrentGear(vehicle))*220) + 0.5)
                   
                    if (vehicleRPM < 650) then
                        vehicleRPM = math.random(650, 750)
                    elseif (vehicleRPM >= 9800) then
                        vehicleRPM = 9800
                    end
                else
                    vehicleRPM = math.floor(((getElementSpeed(vehicle, "kmh")/1)*220) + 0.5)
                   
                    if (vehicleRPM < 650) then
                        vehicleRPM = math.random(650, 750)
                    elseif (vehicleRPM >= 9800) then
                        vehicleRPM = 9800
                    end
                end
            else
                vehicleRPM = 0
            end
        else  
            if (getVehicleEngineState(vehicle) == true) then
                vehicleRPM = vehicleRPM - 150
                   
                if (vehicleRPM < 650) then
                    vehicleRPM = math.random(650, 750)
                elseif (vehicleRPM >= 9800) then
                    vehicleRPM = 9800
                end
            else
                vehicleRPM = 0
            end
        end
       
        return tonumber(vehicleRPM)
    else
        return 0
    end
end
 
function getElementSpeed(element,unit)
    if (unit == nil) then unit = 0 end
    if (isElement(element)) then
        local x,y,z = getElementVelocity(element)
        if (unit=="mph" or unit==1 or unit =='1') then
            return (x^2 + y^2 + z^2) ^ 0.5 * 100
        else
            return (x^2 + y^2 + z^2) ^ 0.5 * 1.61 * 100
        end
    else
        outputDebugString("Not an element. Can't get speed")
        return false
    end
end
 
function engine_func()
    local veh = getPedOccupiedVehicle ( getLocalPlayer())
    if veh then
 
--Lykan
        if getElementModel ( veh ) == 587 then
            if getVehicleEngineState ( veh ) == true then
                if getElementSpeed ( veh, "kmh" ) > 10 then
                    if idle_sound then
                        destroyElement ( idle_sound )
                        idle_sound = nil
                    end
                    if sound == nil then
                        sound = playSound3D ( engine_sound_14, 0, 0, 0, true )
                        setElementDimension ( sound, getElementDimension(veh) )
                        setElementInterior ( sound, getElementInterior(veh) )
                        attachElements ( sound, veh )
                    end
                    setSoundSpeed ( sound, getVehicleRPM(veh)/10000 )
                elseif getElementSpeed ( veh, "kmh" ) < 10 then
                    if idle_sound == nil then
                        idle_sound = playSound3D ( idle_soundfile_14, 0, 0, 0, true )
                        setElementDimension ( idle_sound, getElementDimension(veh) )
                        setElementInterior ( idle_sound, getElementInterior(veh) )
                        setSoundVolume ( idle_sound, 0.5 )
                        attachElements ( idle_sound, veh )
                    end
                    if sound then
                        destroyElement ( sound )
                        sound = nil
                    end
                elseif getElementSpeed ( veh, "kmh" ) == 0 then
                    if sound then
                        destroyElement ( sound )
                        sound = nil
                    end
                end
            else
                if sound then
                    destroyElement ( sound )
                    sound = nil
                end
                if idle_sound then
                    destroyElement ( idle_sound )
                    idle_sound = nil
                end
            end
 
 
        elseif getElementModel ( veh ) == 451 or getElementModel ( veh ) == 550 then
            if getVehicleEngineState ( veh ) == true then
                if getElementSpeed ( veh, "kmh" ) > 10 then
                    if idle_sound then
                        destroyElement ( idle_sound )
                        idle_sound = nil
                    end
                    if sound == nil then
                        sound = playSound3D ( engine_sound_4, 0, 0, 0, true )
                        setElementDimension ( sound, getElementDimension(veh) )
                        setElementInterior ( sound, getElementInterior(veh) )
                        attachElements ( sound, veh )
                    end
                    setSoundSpeed ( sound, getVehicleRPM(veh)/10000 )
                elseif getElementSpeed ( veh, "kmh" ) < 10 then
                    if idle_sound == nil then
                        idle_sound = playSound3D ( idle_soundfile_4, 0, 0, 0, true )
                        setElementDimension ( idle_sound, getElementDimension(veh) )
                        setElementInterior ( idle_sound, getElementInterior(veh) )
                        setSoundVolume ( idle_sound, 0.5 )
                        attachElements ( idle_sound, veh )
                    end
                    if sound then
                        destroyElement ( sound )
                        sound = nil
                    end
                elseif getElementSpeed ( veh, "kmh" ) == 0 then
                    if sound then
                        destroyElement ( sound )
                        sound = nil
                    end
                end
            else
                if sound then
                    destroyElement ( sound )
                    sound = nil
                end
                if idle_sound then
                    destroyElement ( idle_sound )
                    idle_sound = nil
                end
            end
 
 
        elseif getElementModel ( veh ) == 466 then
            if getVehicleEngineState ( veh ) == true then
                if getElementSpeed ( veh, "kmh" ) > 10 then
                    if idle_sound then
                        destroyElement ( idle_sound )
                        idle_sound = nil
                    end
                    if sound == nil then
                        sound = playSound3D ( engine_sound_20, 0, 0, 0, true )
                        setElementDimension ( sound, getElementDimension(veh) )
                        setElementInterior ( sound, getElementInterior(veh) )
                        attachElements ( sound, veh )
                    end
                    setSoundSpeed ( sound, getVehicleRPM(veh)/10000 )
                elseif getElementSpeed ( veh, "kmh" ) < 10 then
                    if idle_sound == nil then
                        idle_sound = playSound3D ( idle_soundfile_20, 0, 0, 0, true )
                        setElementDimension ( idle_sound, getElementDimension(veh) )
                        setElementInterior ( idle_sound, getElementInterior(veh) )
                        setSoundVolume ( idle_sound, 0.5 )
                        attachElements ( idle_sound, veh )
                    end
                    if sound then
                        destroyElement ( sound )
                        sound = nil
                    end
                elseif getElementSpeed ( veh, "kmh" ) == 0 then
                    if sound then
                        destroyElement ( sound )
                        sound = nil
                    end
                end
            else
                if sound then
                    destroyElement ( sound )
                    sound = nil
                end
                if idle_sound then
                    destroyElement ( idle_sound )
                    idle_sound = nil
                end
            end
 
 
        elseif getElementModel ( veh ) == 543 then
            if getVehicleEngineState ( veh ) == true then
                if getElementSpeed ( veh, "kmh" ) > 10 then
                    if idle_sound then
                        destroyElement ( idle_sound )
                        idle_sound = nil
                    end
                    if sound == nil then
                        sound = playSound3D ( engine_sound_21, 0, 0, 0, true )
                        setElementDimension ( sound, getElementDimension(veh) )
                        setElementInterior ( sound, getElementInterior(veh) )
                       
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...