361 lines
9.7 KiB
Plaintext
361 lines
9.7 KiB
Plaintext
// IW6 GSC SOURCE
|
|
// Generated by https://github.com/xensik/gsc-tool
|
|
|
|
main()
|
|
{
|
|
init_lights();
|
|
}
|
|
|
|
init_lights()
|
|
{
|
|
common_scripts\utility::array_thread( getentarray( "mp_dart_discoball_light", "targetname" ), ::mp_dart_discoball_light );
|
|
common_scripts\utility::array_thread( getentarray( "mp_dart_discoball_light_reverse", "targetname" ), ::mp_dart_discoball_light_reverse );
|
|
var_0 = getentarray( "mp_dart_pulsing_light", "targetname" );
|
|
common_scripts\utility::array_thread( var_0, ::mp_dart_pulsing_light );
|
|
var_1 = getentarray( "mp_dart_tv_flicker", "targetname" );
|
|
common_scripts\utility::array_thread( var_1, ::mp_dart_tv_flicker );
|
|
}
|
|
|
|
mp_dart_discoball_light()
|
|
{
|
|
var_0 = 3;
|
|
var_1 = 150000;
|
|
self rotatevelocity( ( 0, var_0, 0 ), var_1 );
|
|
}
|
|
|
|
mp_dart_discoball_light_reverse()
|
|
{
|
|
var_0 = -3;
|
|
var_1 = 150000;
|
|
self rotatevelocity( ( 0, var_0, 0 ), var_1 );
|
|
}
|
|
|
|
mp_dart_restarteffect()
|
|
{
|
|
common_scripts\_createfx::restart_fx_looper();
|
|
}
|
|
|
|
ent_flag( var_0 )
|
|
{
|
|
return self.ent_flag[var_0];
|
|
}
|
|
|
|
mp_dart_ent_flag_clear( var_0 )
|
|
{
|
|
if ( self.ent_flag[var_0] )
|
|
{
|
|
self.ent_flag[var_0] = 0;
|
|
self notify( var_0 );
|
|
}
|
|
}
|
|
|
|
mp_dart_ent_flag_set( var_0 )
|
|
{
|
|
self.ent_flag[var_0] = 1;
|
|
self notify( var_0 );
|
|
}
|
|
|
|
mp_dart_ent_flag_init( var_0 )
|
|
{
|
|
if ( !isdefined( self.ent_flag ) )
|
|
{
|
|
self.ent_flag = [];
|
|
self.ent_flags_lock = [];
|
|
}
|
|
|
|
self.ent_flag[var_0] = 0;
|
|
}
|
|
|
|
mp_dart_is_light_entity( var_0 )
|
|
{
|
|
return var_0.classname == "light_spot" || var_0.classname == "light_omni" || var_0.classname == "light";
|
|
}
|
|
|
|
mp_dart_pulsing_light()
|
|
{
|
|
self endon( "stop_dynamic_light_behavior" );
|
|
self.linked_models = 0;
|
|
self.lit_models = undefined;
|
|
self.unlit_models = undefined;
|
|
self.linked_lights = 0;
|
|
self.linked_light_ents = [];
|
|
self.linked_prefab_ents = undefined;
|
|
self.linked_things = [];
|
|
|
|
if ( isdefined( self.script_linkto ) )
|
|
{
|
|
self.linked_prefab_ents = common_scripts\utility::get_linked_ents();
|
|
|
|
foreach ( var_1 in self.linked_prefab_ents )
|
|
{
|
|
if ( isdefined( var_1.script_noteworthy ) && var_1.script_noteworthy == "on" )
|
|
{
|
|
if ( !isdefined( self.lit_models ) )
|
|
self.lit_models[0] = var_1;
|
|
else
|
|
self.lit_models[self.lit_models.size] = var_1;
|
|
|
|
continue;
|
|
}
|
|
|
|
if ( isdefined( var_1.script_noteworthy ) && var_1.script_noteworthy == "off" )
|
|
{
|
|
if ( !isdefined( self.unlit_models ) )
|
|
self.unlit_models[0] = var_1;
|
|
else
|
|
self.unlit_models[self.unlit_models.size] = var_1;
|
|
|
|
self.unlit_model = var_1;
|
|
continue;
|
|
}
|
|
|
|
if ( mp_dart_is_light_entity( var_1 ) )
|
|
{
|
|
self.linked_lights = 1;
|
|
self.linked_light_ents[self.linked_light_ents.size] = var_1;
|
|
}
|
|
}
|
|
|
|
self.linked_models = 1;
|
|
}
|
|
|
|
thread mp_dart_generic_flicker_msg_watcher();
|
|
thread mp_dart_generic_flicker();
|
|
}
|
|
|
|
mp_dart_generic_flicker_msg_watcher()
|
|
{
|
|
mp_dart_ent_flag_init( "flicker_on" );
|
|
|
|
if ( isdefined( self.script_light_startnotify ) && self.script_light_startnotify != "nil" )
|
|
{
|
|
for (;;)
|
|
{
|
|
level waittill( self.script_light_startnotify );
|
|
mp_dart_ent_flag_set( "flicker_on" );
|
|
|
|
if ( isdefined( self.script_light_stopnotify ) && self.script_light_stopnotify != "nil" )
|
|
{
|
|
level waittill( self.script_light_stopnotify );
|
|
mp_dart_ent_flag_clear( "flicker_on" );
|
|
}
|
|
}
|
|
}
|
|
else
|
|
mp_dart_ent_flag_set( "flicker_on" );
|
|
}
|
|
|
|
mp_dart_generic_flicker_pause()
|
|
{
|
|
var_0 = self getlightintensity();
|
|
|
|
if ( !ent_flag( "flicker_on" ) )
|
|
{
|
|
if ( self.linked_models )
|
|
{
|
|
if ( isdefined( self.lit_models ) )
|
|
{
|
|
foreach ( var_2 in self.lit_models )
|
|
{
|
|
if ( isdefined( var_2.effect ) )
|
|
{
|
|
var_2.effect delete();
|
|
var_2.effect = undefined;
|
|
}
|
|
|
|
var_2 hide();
|
|
}
|
|
}
|
|
|
|
if ( isdefined( self.unlit_models ) )
|
|
{
|
|
foreach ( var_5 in self.unlit_models )
|
|
var_5 show();
|
|
}
|
|
}
|
|
|
|
self setlightintensity( 0 );
|
|
|
|
if ( self.linked_lights )
|
|
{
|
|
for ( var_7 = 0; var_7 < self.linked_light_ents.size; var_7++ )
|
|
self.linked_light_ents[var_7] setlightintensity( 0 );
|
|
}
|
|
|
|
self waittill( "flicker_on" );
|
|
self setlightintensity( var_0 );
|
|
|
|
if ( self.linked_lights )
|
|
{
|
|
for ( var_7 = 0; var_7 < self.linked_light_ents.size; var_7++ )
|
|
self.linked_light_ents[var_7] setlightintensity( var_0 );
|
|
}
|
|
|
|
if ( self.linked_models )
|
|
{
|
|
if ( isdefined( self.lit_models ) )
|
|
{
|
|
foreach ( var_2 in self.lit_models )
|
|
{
|
|
var_2 show();
|
|
|
|
if ( !isdefined( var_2.effect ) )
|
|
{
|
|
var_2.effect = spawnfx( level._effect["vfx_bulb_single"], var_2.origin );
|
|
triggerfx( var_2.effect );
|
|
common_scripts\utility::waitframe();
|
|
}
|
|
}
|
|
}
|
|
|
|
if ( isdefined( self.unlit_models ) )
|
|
{
|
|
foreach ( var_5 in self.unlit_models )
|
|
var_5 hide();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
mp_dart_generic_flicker()
|
|
{
|
|
self endon( "stop_dynamic_light_behavior" );
|
|
self endon( "death" );
|
|
var_0 = 0.2;
|
|
var_1 = 1.0;
|
|
var_2 = self getlightintensity();
|
|
var_3 = 0;
|
|
var_4 = var_2;
|
|
var_5 = 0;
|
|
|
|
while ( isdefined( self ) )
|
|
{
|
|
mp_dart_generic_flicker_pause();
|
|
|
|
for ( var_5 = randomintrange( 1, 10 ); var_5; var_5-- )
|
|
{
|
|
mp_dart_generic_flicker_pause();
|
|
wait( randomfloatrange( 0.05, 0.1 ) );
|
|
|
|
if ( var_4 > 0.2 )
|
|
{
|
|
var_4 = randomfloatrange( 0, 0.3 );
|
|
|
|
if ( self.linked_models )
|
|
{
|
|
foreach ( var_7 in self.lit_models )
|
|
{
|
|
if ( isdefined( var_7.effect ) )
|
|
{
|
|
var_7.effect delete();
|
|
var_7.effect = undefined;
|
|
common_scripts\utility::waitframe();
|
|
}
|
|
|
|
var_7 hide();
|
|
}
|
|
}
|
|
|
|
if ( isdefined( self.unlit_models ) )
|
|
{
|
|
foreach ( var_10 in self.unlit_models )
|
|
var_10 show();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var_4 = var_2;
|
|
|
|
if ( self.linked_models )
|
|
{
|
|
if ( isdefined( self.lit_models ) )
|
|
{
|
|
foreach ( var_7 in self.lit_models )
|
|
{
|
|
var_7 show();
|
|
|
|
if ( !isdefined( var_7.effect ) )
|
|
{
|
|
var_7.effect = spawnfx( level._effect["vfx_bulb_single"], var_7.origin );
|
|
triggerfx( var_7.effect );
|
|
common_scripts\utility::waitframe();
|
|
}
|
|
}
|
|
}
|
|
|
|
if ( isdefined( self.unlit_models ) )
|
|
{
|
|
foreach ( var_10 in self.unlit_models )
|
|
var_10 hide();
|
|
}
|
|
}
|
|
}
|
|
|
|
self setlightintensity( var_4 );
|
|
|
|
if ( self.linked_lights )
|
|
{
|
|
for ( var_16 = 0; var_16 < self.linked_light_ents.size; var_16++ )
|
|
self.linked_light_ents[var_16] setlightintensity( var_4 );
|
|
}
|
|
}
|
|
|
|
mp_dart_generic_flicker_pause();
|
|
self setlightintensity( var_2 );
|
|
|
|
if ( self.linked_lights )
|
|
{
|
|
for ( var_16 = 0; var_16 < self.linked_light_ents.size; var_16++ )
|
|
self.linked_light_ents[var_16] setlightintensity( var_2 );
|
|
}
|
|
|
|
if ( self.linked_models )
|
|
{
|
|
if ( isdefined( self.lit_models ) )
|
|
{
|
|
foreach ( var_7 in self.lit_models )
|
|
{
|
|
var_7 show();
|
|
|
|
if ( !isdefined( var_7.effect ) )
|
|
{
|
|
var_7.effect = spawnfx( level._effect["vfx_bulb_single"], var_7.origin );
|
|
triggerfx( var_7.effect );
|
|
common_scripts\utility::waitframe();
|
|
}
|
|
}
|
|
}
|
|
|
|
if ( isdefined( self.unlit_models ) )
|
|
{
|
|
foreach ( var_10 in self.unlit_models )
|
|
var_10 hide();
|
|
}
|
|
}
|
|
|
|
wait( randomfloatrange( var_0, var_1 ) );
|
|
}
|
|
}
|
|
|
|
mp_dart_tv_flicker()
|
|
{
|
|
var_0 = self getlightintensity();
|
|
var_1 = var_0;
|
|
|
|
for (;;)
|
|
{
|
|
var_2 = randomfloatrange( var_0 * 0.3, var_0 * 0.9 );
|
|
var_3 = randomfloatrange( 0.05, 0.1 );
|
|
var_3 = var_3 * 15;
|
|
|
|
for ( var_4 = 0; var_4 < var_3; var_4++ )
|
|
{
|
|
var_5 = var_2 * ( var_4 / var_3 ) + var_1 * ( ( var_3 - var_4 ) / var_3 );
|
|
self setlightintensity( var_5 );
|
|
wait 0.05;
|
|
}
|
|
|
|
var_1 = var_2;
|
|
}
|
|
}
|