170 lines
4.9 KiB
Plaintext
170 lines
4.9 KiB
Plaintext
// IW6 GSC SOURCE
|
|
// Generated by https://github.com/xensik/gsc-tool
|
|
|
|
bridge_main()
|
|
{
|
|
bridge_precache();
|
|
common_scripts\utility::waitframe();
|
|
|
|
if ( getdvar( "r_reflectionProbeGenerate" ) == "1" )
|
|
return;
|
|
|
|
level.bridge_device = spawnstruct();
|
|
level.bridge_device maps\mp\mp_ca_red_river_bridge_device::bridge_device_init();
|
|
maps\mp\mp_ca_red_river_bridge_device::bridge_extras_init( level.bridge_device );
|
|
level.bridge = spawnstruct();
|
|
level.bridge bridge_init();
|
|
level.bridge thread bridge_wait_explode();
|
|
}
|
|
|
|
bridge_precache()
|
|
{
|
|
precachempanim( "mp_ca_red_river_bridge_01" );
|
|
precachempanim( "mp_ca_red_river_bridge_02" );
|
|
precachempanim( "mp_ca_red_river_bridge_03" );
|
|
}
|
|
|
|
#using_animtree("animated_props");
|
|
|
|
bridge_init()
|
|
{
|
|
self.bridge_anim_time = 0.0;
|
|
self.bridge_anim_time = max( self.bridge_anim_time, getanimlength( %mp_ca_red_river_bridge_01 ) );
|
|
self.bridge_anim_time = max( self.bridge_anim_time, getanimlength( %mp_ca_red_river_bridge_02 ) );
|
|
self.bridge_anim_time = max( self.bridge_anim_time, getanimlength( %mp_ca_red_river_bridge_03 ) );
|
|
self.bridge_wholeents = getentarray( "bridge_whole", "targetname" );
|
|
self.bridge_destroyedents = getentarray( "bridge_destroyed", "targetname" );
|
|
bridge_hideparts( self.bridge_destroyedents );
|
|
level.bridge_animated_models = getentarray( "bridge_animated_model", "targetname" );
|
|
bridge_hideparts( level.bridge_animated_models );
|
|
level.bridge_scriptables = getscriptablearray( "bridge_animated_model", "targetname" );
|
|
|
|
foreach ( var_1 in level.bridge_scriptables )
|
|
var_1 hide();
|
|
|
|
level.bridgepathnodes = getent( "bridgePathNodes", "targetname" );
|
|
clearpath( level.bridgepathnodes );
|
|
level.destroypathnodes = getent( "destroyPathNodes", "targetname" );
|
|
blockpath( level.destroypathnodes );
|
|
}
|
|
|
|
bridge_showparts( var_0 )
|
|
{
|
|
foreach ( var_2 in var_0 )
|
|
{
|
|
var_2 show();
|
|
var_2 solid();
|
|
}
|
|
}
|
|
|
|
bridge_hideparts( var_0 )
|
|
{
|
|
foreach ( var_2 in var_0 )
|
|
{
|
|
var_2 hide();
|
|
var_2 notsolid();
|
|
var_2 maps\mp\_movers::notify_moving_platform_invalid();
|
|
}
|
|
}
|
|
|
|
bridge_wait_explode()
|
|
{
|
|
level waittill( "bridge_trigger_explode" );
|
|
level.bridge_device notify( "bridge_exploded" );
|
|
maps\mp\_utility::playsoundonplayers( "scn_bridge_explo_2d" );
|
|
thread common_scripts\utility::play_sound_in_space( "scn_bridge_explo_boom_left", ( -484, -733, 90 ) );
|
|
thread common_scripts\utility::play_sound_in_space( "scn_bridge_explo_boom_right", ( 143, -824, 60 ) );
|
|
bridge_play_fx();
|
|
wait 0.15;
|
|
|
|
if ( isdefined( self.bridge_destroyedents ) )
|
|
bridge_showparts( self.bridge_destroyedents );
|
|
|
|
if ( isdefined( self.bridge_wholeents ) )
|
|
bridge_hideparts( self.bridge_wholeents );
|
|
|
|
clearpath( level.destroypathnodes );
|
|
blockpath( level.bridgepathnodes );
|
|
|
|
foreach ( var_1 in level.bridge_animated_models )
|
|
{
|
|
var_1 show();
|
|
var_1 solid();
|
|
|
|
if ( isdefined( var_1.animation ) )
|
|
var_1 scriptmodelplayanim( var_1.animation );
|
|
}
|
|
|
|
foreach ( var_4 in level.bridge_scriptables )
|
|
{
|
|
var_4 show();
|
|
var_4 setscriptablepartstate( 0, "destroyed" );
|
|
}
|
|
|
|
wait( self.bridge_anim_time );
|
|
}
|
|
|
|
bridge_play_fx()
|
|
{
|
|
common_scripts\utility::exploder( 11 );
|
|
common_scripts\utility::exploder( 12 );
|
|
playloopsoundatpos( ( -941.022, -712.704, -133.546 ), "emt_red_fire_explo_med1_lp" );
|
|
playloopsoundatpos( ( -389.143, -886.295, -174.497 ), "emt_red_fire_explo_med2_lp" );
|
|
playloopsoundatpos( ( -283.364, -531.226, 73.5775 ), "emt_red_fire_explo_med3_lp" );
|
|
playloopsoundatpos( ( 103.789, -379.687, 116.523 ), "emt_red_fire_explo_lrg_pole_lp" );
|
|
playloopsoundatpos( ( 244.235, -335.982, 33.3856 ), "emt_red_fire_explo_lrg_pole_lp" );
|
|
playloopsoundatpos( ( -371.551, -1141.23, 27.313 ), "emt_red_fire_explo_sm_lp" );
|
|
level thread bridge_fx_waitforconnections();
|
|
}
|
|
|
|
playloopsoundatpos( var_0, var_1 )
|
|
{
|
|
common_scripts\utility::play_loopsound_in_space( var_1, var_0 );
|
|
}
|
|
|
|
bridge_fx_waitforconnections()
|
|
{
|
|
level endon( "game_ended" );
|
|
|
|
for (;;)
|
|
{
|
|
level waittill( "connected", var_0 );
|
|
var_0 childthread bridge_fx_playonconnection();
|
|
}
|
|
}
|
|
|
|
bridge_fx_playonconnection()
|
|
{
|
|
self endon( "disconnect" );
|
|
common_scripts\utility::waittill_any( "joined_team", "luinotifyserver" );
|
|
common_scripts\utility::exploder( 11, self, 0 );
|
|
|
|
if ( isdefined( level.nukedetonated ) )
|
|
{
|
|
self visionsetnakedforplayer( "", 0 );
|
|
maps\mp\killstreaks\_nuke::setnukeaftermathvision( 0 );
|
|
}
|
|
else
|
|
self visionsetnakedforplayer( "mp_ca_red_river_exploded", 0 );
|
|
}
|
|
|
|
clearpath( var_0 )
|
|
{
|
|
if ( isdefined( var_0 ) )
|
|
{
|
|
var_0 connectpaths();
|
|
var_0 hide();
|
|
var_0 notsolid();
|
|
}
|
|
}
|
|
|
|
blockpath( var_0 )
|
|
{
|
|
if ( isdefined( var_0 ) )
|
|
{
|
|
var_0 show();
|
|
var_0 solid();
|
|
var_0 disconnectpaths();
|
|
}
|
|
}
|