Adding snow to your map is quite simple, in radiant you have to add an outdoor volume covering your whole playable area. ( Make sure to check enabled0-3, else the snow goes through your brushes still )
Make a copy of zm_usermap.gsc and copy that into your map folder. Make sure to include it into your zone.
Open the file and find this line:
level util::set_lighting_state( 1 );
And replace with this:
level util::set_lighting_state( 0 );
Now we have to modify your mapname.csc
Add this above your main() function:
#define SNOW_FX "dlc0/factory/fx_snow_player_os_factory" #precache( "client_fx", SNOW_FX );
Add this line into the main() function:
callback::on_localplayer_spawned( &on_localplayer_spawned );
And copy and paste the following functions:
function on_localplayer_spawned( localClientNum )
{
if( self == GetLocalPlayer( localClientNum ) )
self thread falling_snow(localClientNum);
}
function falling_snow(localClientNum)
{
self endon( "disconnect" );
self endon( "entityshutdown" );
self endon( "death" );
while(1)
{
PlayFX( localClientNum, SNOW_FX, self.origin );
wait 0.3; //Change this to increase or decrease the snow intensity (Higher = Slower )
}
}
Compile and link the map, enjoy the weather!