summaryrefslogtreecommitdiff
path: root/ftp_gmstranded/gamemode/time_weather.lua
diff options
context:
space:
mode:
Diffstat (limited to 'ftp_gmstranded/gamemode/time_weather.lua')
-rw-r--r--ftp_gmstranded/gamemode/time_weather.lua185
1 files changed, 0 insertions, 185 deletions
diff --git a/ftp_gmstranded/gamemode/time_weather.lua b/ftp_gmstranded/gamemode/time_weather.lua
deleted file mode 100644
index bc34fac..0000000
--- a/ftp_gmstranded/gamemode/time_weather.lua
+++ /dev/null
@@ -1,185 +0,0 @@
-
-NightLight = string.byte( "a" )
-DayLight = string.byte( "m" )
-
-NextPattern = NextPattern or DayLight
-CurrentPattern = CurrentPattern or DayLight
-
-RiseTime = 300
-DayTime = 480
-SetTime = 960
-NightTime = 1200
-
-StealTime = 0
-Time = Time or RiseTime + 1
-
-IsNight = false
-
-if ( CLIENT ) then
- timer.Simple( 5, function()
- RunConsoleCommand( "pp_sunbeams", "0" )
- end )
-
- hook.Add( "RenderScreenspaceEffects", "RenderSunbeams", function()
- if ( !render.SupportsPixelShaders_2_0() ) then return end
- local sun = util.GetSunInfo()
-
- if ( !sun ) then return end
- if ( sun.obstruction == 0 ) then return end
-
- local sunpos = EyePos() + sun.direction * 4096
- local scrpos = sunpos:ToScreen()
-
- local dot = ( sun.direction:Dot( EyeVector() ) - 0.8 ) * 5
- if ( dot <= 0 ) then return end
-
- DrawSunbeams( 0.85, 1 * dot * sun.obstruction, 0.25, scrpos.x / ScrW(), scrpos.y / ScrH() )
- end )
-
- timer.Create( "DayTime.TimerClient", 1, 0, function()
- if ( GetConVarNumber( "gms_daynight" ) <= 0 ) then return end
-
- Time = Time + 1
- if ( Time > 1440 ) then Time = 0 end
- end )
-elseif ( SERVER ) then
-
- RunConsoleCommand( "sv_skyname", "painted" )
-
- local GMS_DayColorTop = Vector( 0.22, 0.51, 1.0 )
- local GMS_DayColorBottom = Vector( 0.92, 0.93, 0.99 )
- local GMS_DayColorDusk = Vector( 1.0, 0.2, 0.0 )
- local GMS_Clouds = "skybox/clouds"
- local GMS_Stars = "skybox/starfield"
- local GMS_StarFade = 1//0.5
- local GMS_StarScale = 1.75
- local GMS_StarSpeed = 0.03
- theSky = theSky or nil
-
- hook.Add( "InitPostEntity", "gms_create_skypaint", function()
- if ( table.Count( ents.FindByClass( "env_skypaint" ) ) >= 1 ) then theSky = ents.FindByClass( "env_skypaint" )[ 1 ] return end
- theSky = ents.Create( "env_skypaint" )
- theSky:Spawn()
- end )
-
- timer.Create( "DayTime.TimerServer", 1, 0, function()
- if ( GetConVarNumber( "gms_daynight" ) <= 0 ) then return end
-
- Time = Time + 1
- if ( Time > 1440 ) then Time = 0 end
-
- //Time = CurTime() - math.floor( CurTime() / 1440 ) * 1440
-
- for id, sun in pairs( ents.FindByClass( "env_sun" ) or {} ) do
- sun:SetKeyValue( "pitch", math.NormalizeAngle( ( Time / 1440 * 360 ) + 90 ) )
- sun:Activate()
- end
-
- local coef = 0
- if ( Time >= NightTime && Time < RiseTime ) then // Night
- IsNight = true
- coef = 0
- elseif ( Time >= RiseTime && Time < DayTime ) then // Sunrise
- IsNight = false
- coef = 1 - ( DayTime - Time ) / ( DayTime - RiseTime ) // Calculate progress
- elseif ( Time >= DayTime && Time < SetTime ) then // Day
- IsNight = false
- coef = 1
- elseif ( Time >= SetTime && Time < NightTime ) then // Sunset
- IsNight = false
- coef = ( NightTime - Time ) / ( NightTime - SetTime ) // Calculate progress
- end
-
- local dusk_coef = coef
- if ( dusk_coef > 0.5 ) then
- dusk_coef = 1 - dusk_coef
- if ( IsValid( theSky ) ) then
- if ( theSky:GetStarTexture() != GMS_Clouds ) then
- theSky:SetStarTexture( GMS_Clouds )
- theSky:SetStarScale( GMS_StarScale )
- end
- end
- else
- if ( IsValid( theSky ) ) then
- if ( theSky:GetStarTexture() != GMS_Stars ) then
- theSky:SetStarTexture( GMS_Stars )
- theSky:SetStarScale( 0.5 )
- end
- end
- end
-
- if ( IsValid( theSky ) ) then
- theSky:SetTopColor( GMS_DayColorTop * coef )
- theSky:SetBottomColor( GMS_DayColorBottom * coef )
- theSky:SetStarFade( GMS_StarFade * ( 0.5 - dusk_coef ) )
- theSky:SetSunSize( 1 )
-
- if ( IsNight ) then dusk_coef = 0 end
- theSky:SetDuskColor( GMS_DayColorDusk * dusk_coef )
- end
-
- NextPattern = math.Clamp( NightLight + math.ceil( ( DayLight - NightLight ) * coef ), NightLight, DayLight )
-
- if ( NextPattern != CurrentPattern ) then
- for _, light in pairs( ents.FindByClass( "light_environment" ) or {} ) do
- light:Fire( "FadeToPattern", string.char( NextPattern ) )
- light:Activate()
- end
-
- //engine.LightStyle( 0, string.char( NextPattern - 1 ) )
- //for id, ply in pairs( player.GetAll() ) do ply:SendLua( "render.RedownloadAllLightmaps()" ) end
-
- CurrentPattern = NextPattern
- end
-
- if ( Time == StealTime && GetConVarNumber( "gms_night_cleanup" ) >= 1 ) then
- local drops = ents.FindByClass( "gms_resourcedrop" )
- local weaps = ents.FindByClass( "gms_resourcedrop" )
- local msg = false
-
- if ( #drops > 8 ) then for id, ent in pairs( drops ) do msg = true ent:Fadeout() end end
- if ( #weaps > 4 ) then for id, ent in pairs( weaps ) do msg = true ent:Fadeout() end end
-
- if ( msg ) then
- for id, ply in pairs( player.GetAll() ) do
- ply:SendMessage( "Something happened outside...", 5, Color( 255, 10, 10, 255 ) )
-
- timer.Simple( 10, function()
- ply:SendMessage( "So they dont't get stolen at night.", 5, Color( 255, 150, 150, 255 ) )
- ply:SendMessage( "Remember to store your resources in resoucepack, ", 5, Color( 255, 150, 150, 255 ) )
- end )
- end
- end
-
- for i = 0, math.random( 2, 6 ) do
- local zombies = #ents.FindByClass( "npc_zombie" )
- local fzombies = #ents.FindByClass( "npc_fastzombie" )
- if ( zombies + fzombies > 14 ) then break end
- local pos = Vector( math.random( -6000, 6000 ), math.random( -6000, 6000 ), 1800 )
- local tr = util.TraceLine( {
- start = pos, endpos = pos - Vector( 0, 0, 9999 )
- } )
-
- if ( tr.HitWorld ) then
- local class = "npc_zombie"
- if ( math.random( 0, 100 ) < 25 ) then class = "npc_fastzombie" end
- local zombie = ents.Create( class )
- zombie:SetPos( tr.HitPos + Vector( 0, 0, 64 ) )
- zombie:SetHealth( 128 )
- zombie:SetNWString( "Owner", "World" )
- zombie:SetKeyValue( "spawnflags", "1280" )
- zombie:Spawn()
- zombie:Fire( "Wake" )
- zombie:Activate()
-
- local ourEnemy = player.GetByID( math.random( 1, #player.GetAll() ) )
- if ( IsValid( ourEnemy ) ) then
- zombie:SetEnemy( ourEnemy )
- zombie:SetLastPosition( ourEnemy:GetPos() )
- zombie:SetSchedule( SCHED_FORCED_GO )
- end
- end
- end
- end
- end )
-end