Server
unknown
lua
6 months ago
5.1 kB
2
Indexable
local newEngineSounds = {} local newTurboSounds = {} local newSuperSounds = {} local newBOVSounds = {} local newTransSounds = {} local function create(car, vars) table.clear(newEngineSounds) table.clear(newTurboSounds) table.clear(newSuperSounds) table.clear(newBOVSounds) table.clear(newTransSounds) for i, v in next, vars.EngineSounds do local ns = Instance.new("Sound") ns.Name = v.name ns.SoundId = "rbxassetid://"..v.id ns.Looped = true ns.Volume = 0 ns.RollOffMaxDistance = v.rollOffMax ns.RollOffMinDistance = v.rollOffMin local success, errormessage = pcall(function() ns.Parent = car.Body.Diffuser end) if not success then ns.Parent = car.DriveSeat end local e1 = Instance.new("EqualizerSoundEffect", ns) e1.Name = "E1" e1.HighGain = v.eq[1] e1.MidGain = v.eq[2] e1.LowGain = v.eq[3] local e2 = Instance.new("DistortionSoundEffect", ns) e2.Name = "E2" e2.Level = 0 local e3 = Instance.new("ReverbSoundEffect", ns) e3.Name = "E3" e3.Enabled = v.reverb[1] e3.DecayTime = v.reverb[2] e3.Density = v.reverb[3] e3.Diffusion = v.reverb[4] e3.DryLevel = v.reverb[5] e3.WetLevel = v.reverb[6] table.insert(newEngineSounds, i, ns) end for i, v in next, vars.TurboSounds do local ns = Instance.new("Sound") ns.Name = v.name ns.SoundId = "rbxassetid://"..v.id ns.Looped = true ns.Volume = 0 ns.RollOffMaxDistance = v.rollOffMax ns.RollOffMinDistance = v.rollOffMin local success, errormessage = pcall(function() ns.Parent = car.Body.Engine end) if not success then ns.Parent = car.DriveSeat end table.insert(newTurboSounds, i, ns) end for i, v in next, vars.SuperSounds do local ns = Instance.new("Sound") ns.Name = v.name ns.SoundId = "rbxassetid://"..v.id ns.Looped = true ns.Volume = 0 ns.RollOffMaxDistance = v.rollOffMax ns.RollOffMinDistance = v.rollOffMin local success, errormessage = pcall(function() ns.Parent = car.Body.Engine end) if not success then ns.Parent = car.DriveSeat end table.insert(newSuperSounds, i, ns) end for i, v in next, vars.BovSounds do local ns = Instance.new("Sound") ns.Name = v.name ns.SoundId = "rbxassetid://"..v.id ns.Volume = 0 ns.RollOffMaxDistance = v.rollOffMax ns.RollOffMinDistance = v.rollOffMin local success, errormessage = pcall(function() ns.Parent = car.Body.Engine end) if not success then ns.Parent = car.DriveSeat end table.insert(newBOVSounds, i, ns) end for i, v in next, vars.TransmissionSounds do local ns = Instance.new("Sound") ns.Name = v.name ns.SoundId = "rbxassetid://"..v.id ns.Looped = true ns.Volume = 0 ns.RollOffMaxDistance = v.rollOffMax ns.RollOffMinDistance = v.rollOffMin local success, errormessage = pcall(function() ns.Parent = car.Body.Transmission end) if not success then ns.Parent = car.DriveSeat end table.insert(newTransSounds, i, ns) end end local function updateEngine(i, vol, pit, highGain, midGain, lowGain, level) local v = newEngineSounds[i] v.Volume = vol v.PlaybackSpeed = pit v.E1.HighGain = highGain v.E1.MidGain = midGain v.E1.LowGain = lowGain v.E2.Level = level end local function updateTurbo(i, vol, pit) local v = newTurboSounds[i] v.Volume = vol v.PlaybackSpeed = pit end local function updateSuper(i, vol, pit) local v = newSuperSounds[i] v.Volume = vol v.PlaybackSpeed = pit end local function updateBOV(i, vol, pit) local v = newBOVSounds[i] v.Volume = vol v.PlaybackSpeed = pit v:Play() end local function updateTrans(i, vol, pit) local v = newTransSounds[i] v.Volume = vol v.PlaybackSpeed = pit end local function play() for _, v in next, newEngineSounds do v:Play() end for _, v in next, newTurboSounds do v:Play() end for _, v in next, newSuperSounds do v:Play() end for _, v in next, newTransSounds do v:Play() end end local function stop() for _, v in next, newEngineSounds do v:Stop() end for _, v in next, newTurboSounds do v:Stop() end for _, v in next, newSuperSounds do v:Stop() end for _, v in next, newTransSounds do v:Stop() end end local function remove() for _, v in next, newEngineSounds do v:Destroy() end for _, v in next, newTurboSounds do v:Destroy() end for _, v in next, newSuperSounds do v:Destroy() end for _, v in next, newBOVSounds do v:Destroy() end for _, v in next, newTransSounds do v:Destroy() end end script.Parent.OnServerEvent:Connect(function(player, func, car, ...) if func == "create" then create(car, ...) elseif func == "updateEngine" then updateEngine(...) elseif func == "updateTurbo" then updateTurbo(...) elseif func == "updateSuper" then updateSuper(...) elseif func == "updateBOV" then updateBOV(...) elseif func == "updateTrans" then updateTrans(...) elseif func == "play" then play() elseif func == "stop" then stop() elseif func == "remove" then remove() end end)
Editor is loading...
Leave a Comment