SoundMaster = SoundMaster or {} soundtable = {} function soundtable.Random(data) math.randomseed(math.random(0,255)*5) return table.Random(data) end /* stepgravel = "0xFAF102","0xFAF103","0xFAF104","0xFAF105","0xFAF106" stepsnow = "0xFAF107","0xFAF108","0xFAF109","0xFAF10A","0xFAF10B" */ //TODO: Unter-Wasser Sound ["rustsurvival/underwater_lp.wav"] function SoundMaster.EntityEmitSound(t) --MsgN(t.SoundName) --MsgN(t.Entity) /*if CLIENT and CleanDeathCam.Active then return end*/ if t.SoundName == "plats/elevator_move_loop1.wav" then t.SoundName = "common/null.wav" return true end if t.SoundName == "ambient/water/underwater.wav" then return false end --[[if t.SoundName == "vcmod/surface_grind.wav" then return false end--]] if t.SoundName == "npc/scanner/scanner_photo1.wav" then t.SoundName = "soundmaster/camera_ac/"..soundtable.Random({ "0x0C4E9EBF","0x1B33E508", "0x1F6744EF","0x06DAFC36", "0x08D657CA","0x11AD297B", "0x098D81BF","0x1114D0AA", })..".mp3" return true end if string.find(t.SoundName,"physics/") and CLIENT then if string.find(t.SoundName,"physics/wood/wood_box_footstep") then t.SoundName = "soundmaster/step_ac/"..soundtable.Random({"0xFAF118","0xFAF119","0xFAF120","0xFAF121","0xFAF122","0xFAF123"})..".mp3" return true end end if string.find(t.SoundName,"player/footsteps/") and CLIENT then if LocalPlayer():WaterLevel() > 1 then return false end --Unter-Wasser schritte deaktivieren local stub = string.sub(t.SoundName,18,-5) stub = string.sub(stub,0,string.len(stub)-1) if stub == "grass" then t.SoundName = "player/newfootsteps/grass"..math.random(1,4)..".wav" return true end if stub == "metal" then t.SoundName = "player/newfootsteps/metal"..math.random(1,5)..".wav" return true end if stub == "sand" then t.SoundName = "player/newfootsteps/sand"..math.random(1,5)..".wav" return true end if stub == "wood" then t.SoundName = "soundmaster/step_ac/"..soundtable.Random({"0xFAF118","0xFAF119","0xFAF120","0xFAF121","0xFAF122","0xFAF123"})..".mp3" return true end if stub == "gravel" then t.SoundName = "soundmaster/step_ac/"..soundtable.Random({"0xFAF102","0xFAF103","0xFAF104","0xFAF105","0xFAF106"})..".mp3" return true end if stub == "dirt" then t.SoundName = "soundmaster/step_ac/"..soundtable.Random({"0xFAF0E6","0xFAF0E7","0xFAF0E8","0xFAF0E9","0xFAF101"})..".mp3" return true end if stub == "stone" or stub == "concrete" or stub == "tile" then t.SoundName = "soundmaster/step_ac/"..soundtable.Random({"0xFAF10C","0xFAF10D","0xFAF10E","0xFAF110","0xFAF111","0xFAF112"})..".mp3" return true end if stub == "slosh" or stub == "wade" then t.SoundName = "soundmaster/step_ac/"..soundtable.Random({"0xFAF113","0xFAF114","0xFAF115","0xFAF116","0xFAF117"})..".mp3" return true end end if t.SoundName == "items/flashlight1.wav" then t.SoundName = "rustsurvival/flashlight_toggle.mp3" return true end if IsValid(t.Entity) then if t.Entity:IsVehicle() then local replacements = { ["physics/metal/*"] = { "0x00CED401","0x0DF65CA9", "0x0F481DDD","0x1AF0B69D", "0x1F56FF6A","0x03E4DA2C", "0x15E86B1D","0x18B930BF", "0x0450C95F","0x16387ED3", } } for i,k in pairs(replacements) do if string.find(t.SoundName,i) then t.SoundName = "soundmaster/carcrash_ac/"..table.Random(k)..".mp3" return true end end end if t.Entity == Entity(0) and string.find(t.SoundName,"explode") then t.SoundName = "rustsurvival/ambient/a_explosion.mp3" return true end if t.Entity == Entity(0) and string.find(t.SoundName,"ambient") then t.SoundName = "common/null.wav" return true end if t.Entity:IsVehicle() and string.find(t.SoundName,"explode") then t.SoundName = "soundmaster/carexplosion_ac/"..soundtable.Random({"0x1D0B27DF","0x0FEDCD9C"})..".mp3" return true end end end hook.Add("EntityEmitSound","SoundMaster.EntityEmitSound",SoundMaster.EntityEmitSound)