Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if CLIENT then
- local blur = Material("pp/blurscreen")
- hook.Add("RenderScreenspaceEffects", "water", function()
- local ply = LocalPlayer()
- if not ply:IsFlying() or ply ~= me then
- if ply.water_snd then ply.water_snd:Stop() ply.water_snd = nil ply:SetDSP(0) end
- return end
- if not ply.water_snd then
- ply.water_snd = CreateSound(LocalPlayer(), "ambient/water/underwater.wav")
- elseif not ply.water_snd:IsPlaying() then
- ply.water_snd = nil
- end
- ply.water_snd:PlayEx(1, 30)
- -- lowpass filter
- ply:SetDSP(31)
- local W = ScrW()
- local H = ScrH()
- surface.SetMaterial(blur)
- surface.SetDrawColor(255, 255, 255, 255)
- for i = 0.33, 2, 0.33 do
- blur:SetFloat("$blur", 2 * i)
- blur:Recompute()
- render.UpdateScreenEffectTexture()
- surface.DrawTexturedRect(0, 0, W, H)
- end
- end)
- local function draw_fog()
- local ply = LocalPlayer()
- if not ply:IsFlying() or ply ~= me then return end
- render.SetFogZ(5)
- render.FogMode(1)
- render.FogStart(0)
- render.FogEnd(256)
- render.FogMaxDensity(0.999)
- local c = render.GetLightColor(ply:EyePos())
- c.r = c.r * 0.6
- c.g = c.g * 1
- c.b = c.b * 2
- c = c * 255
- render.FogColor(c.r, c.g, c.b)
- return true
- end
- hook.Add("SetupSkyboxFog", "water", function()
- return draw_fog()
- end)
- hook.Add("SetupWorldFog", "water", function()
- return draw_fog()
- end)
- end
- hook.Add("Move", "water", function(ply)
- if not ply:IsFlying() or ply ~= me then return end
- local vel = ply:GetVelocity()
- vel.z = vel.z * 3
- ply:SetVelocity(vel * -0.1)
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement