diff --git a/Zombies Mods/Nightmode/Precompiled/_zm_nightmode.gsc b/Zombies Mods/Nightmode/Precompiled/_zm_nightmode.gsc new file mode 100644 index 0000000..2b93c30 Binary files /dev/null and b/Zombies Mods/Nightmode/Precompiled/_zm_nightmode.gsc differ diff --git a/Zombies Mods/Nightmode/Source Code/_zm_nightmode.gsc b/Zombies Mods/Nightmode/Source Code/_zm_nightmode.gsc new file mode 100644 index 0000000..cde880d --- /dev/null +++ b/Zombies Mods/Nightmode/Source Code/_zm_nightmode.gsc @@ -0,0 +1,106 @@ +#include common_scripts/utility; +#include maps/mp/zombies/_zm_utility; + +init() +{ + level thread night_mode(); +} + +night_mode() +{ + for( ;; ) + { + level waittill( "connected", player ); + player setclientdvar( "r_dof_enable", 0 ); + player setclientdvar( "r_lodBiasRigid", -1000 ); + player setclientdvar( "r_lodBiasSkinned", -1000 ); + player setclientdvar( "r_enablePlayerShadow", 1 ); + player setclientdvar( "r_skyTransition", 1 ); + player setclientdvar( "sm_sunquality", 2 ); + player setclientdvar( "vc_fbm", "0 0 0 0" ); + player setclientdvar( "vc_fsm", "1 1 1 1" ); + player thread visual_fix(); + player thread enable_night_mode(); + } +} + +enable_night_mode() +{ + if( !isDefined( level.default_r_exposureValue ) ) + level.default_r_exposureValue = getDvar( "r_exposureValue" ); + if( !isDefined( level.default_r_lightTweakSunLight ) ) + level.default_r_lightTweakSunLight = getDvar( "r_lightTweakSunLight" ); + if( !isDefined( level.default_r_sky_intensity_factor0 ) ) + level.default_r_sky_intensity_factor0 = getDvar( "r_sky_intensity_factor0" ); + + self setclientdvar( "r_filmUseTweaks", 1 ); + self setclientdvar( "r_bloomTweaks", 1 ); + self setclientdvar( "r_exposureTweak", 1 ); + self setclientdvar( "vc_rgbh", "0.1 0 0.3 0" ); + self setclientdvar( "vc_yl", "0 0 0.25 0" ); + self setclientdvar( "vc_yh", "0.02 0 0.1 0" ); + self setclientdvar( "vc_rgbl", "0.02 0 0.1 0" ); + self setclientdvar( "r_exposureValue", 3.9 ); + self setclientdvar( "r_lightTweakSunLight", 1 ); + self setclientdvar( "r_sky_intensity_factor0", 0 ); + if( level.script == "zm_buried" ) + { + self setclientdvar( "r_exposureValue", 3.5 ); + } + else if( level.script == "zm_tomb" ) + { + self setclientdvar( "r_exposureValue", 4.25 ); + } + else if( level.script == "zm_nuked" ) + { + self setclientdvar( "r_exposureValue", 5.6 ); + } + else if( level.script == "zm_highrise" ) + { + self setclientdvar( "r_exposureValue", 3.9 ); + } +} + +disable_night_mode() +{ + self notify( "disable_nightmode" ); + self setclientdvar( "r_filmUseTweaks", 0 ); + self setclientdvar( "r_bloomTweaks", 0 ); + self setclientdvar( "r_exposureTweak", 0 ); + self setclientdvar( "vc_rgbh", "0 0 0 0" ); + self setclientdvar( "vc_yl", "0 0 0 0" ); + self setclientdvar( "vc_yh", "0 0 0 0" ); + self setclientdvar( "vc_rgbl", "0 0 0 0" ); + self setclientdvar( "r_exposureValue", int( level.default_r_exposureValue ) ); + self setclientdvar( "r_lightTweakSunLight", int( level.default_r_lightTweakSunLight ) ); + self setclientdvar( "r_sky_intensity_factor0", int( level.default_r_sky_intensity_factor0 ) ); +} + +visual_fix() +{ + level endon( "game_ended" ); + self endon( "disconnect" ); + self endon( "disable_nightmode" ); + if( level.script == "zm_buried" ) + { + while( getDvar( "r_sky_intensity_factor0" ) != 0 ) + { + self setclientdvar( "r_lightTweakSunLight", 1 ); + self setclientdvar( "r_sky_intensity_factor0", 0 ); + wait 0.05; + } + } + else if( level.script == "zm_prison" ) + { + while( getDvar( "r_lightTweakSunLight" ) != 0 ) + { + for( i = getDvar( "r_lightTweakSunLight" ); i >= 0; i = ( i - 0.05 ) ) + { + self setclientdvar( "r_lightTweakSunLight", i ); + wait 0.05; + } + wait 0.05; + } + } + else return; +}