// IW6 GSC SOURCE // Generated by https://github.com/xensik/gsc-tool player_move_to_checkpoint_start( var_0 ) { var_1 = getent( var_0, "targetname" ); level.player setorigin( var_1.origin ); level.player setplayerangles( var_1.angles ); } allies_move_to_checkpoint_start( var_0, var_1 ) { for ( var_2 = 0; var_2 < 3; var_2++ ) { var_3 = var_0 + "_ally_" + var_2; var_4 = common_scripts\utility::getstruct( var_3, "targetname" ); level.allies[var_2] forceteleport( var_4.origin, var_4.angles ); if ( isdefined( var_1 ) ) { level.allies[var_2] maps\_utility::clear_force_color(); level.allies[var_2] setgoalpos( var_4.origin ); } } } spawn_allies() { level.allies = []; level.allies[level.allies.size] = spawn_ally( "ally_0" ); level.allies[level.allies.size] = spawn_ally( "ally_1" ); level.allies[level.allies.size] = spawn_ally( "ally_2" ); } spawn_ally( var_0, var_1 ) { var_2 = undefined; if ( !isdefined( var_1 ) ) var_2 = level.start_point + "_" + var_0; else var_2 = var_1 + "_" + var_0; var_3 = spawn_targetname_at_struct_targetname( var_0, var_2 ); if ( !isdefined( var_3 ) ) return undefined; var_3 maps\_utility::make_hero(); if ( !isdefined( var_3.magic_bullet_shield ) ) { var_3 maps\_utility::magic_bullet_shield(); var_3.animname = var_0; } return var_3; } spawn_targetname_at_struct_targetname( var_0, var_1 ) { var_2 = getent( var_0, "targetname" ); var_3 = common_scripts\utility::getstruct( var_1, "targetname" ); if ( isdefined( var_2 ) && isdefined( var_3 ) ) { var_2.origin = var_3.origin; if ( isdefined( var_3.angles ) ) var_2.angles = var_3.angles; var_4 = var_2 maps\_utility::spawn_ai(); return var_4; } if ( isdefined( var_2 ) ) { var_4 = var_2 maps\_utility::spawn_ai(); iprintlnbold( "Add a script struct called: " + var_1 + " to spawn him in the correct location." ); var_4 teleport( level.player.origin, level.player.angles ); return var_4; } iprintlnbold( "failed to spawn " + var_0 + " at " + var_1 ); return undefined; } kill_allies() { foreach ( var_1 in level.allies ) { var_1 maps\_utility::stop_magic_bullet_shield(); var_1.diequietly = 1; var_1 kill(); } } reassign_goal_volume( var_0, var_1 ) { if ( !isarray( var_0 ) ) var_0 = maps\_utility::make_array( var_0 ); var_0 = maps\_utility::array_removedead_or_dying( var_0 ); var_2 = getent( var_1, "targetname" ); foreach ( var_4 in var_0 ) var_4 setgoalvolumeauto( var_2 ); } spawn_group_staggered( var_0, var_1 ) { spawn_group( var_0, var_1, 1 ); } spawn_group( var_0, var_1, var_2, var_3 ) { if ( !isdefined( var_1 ) ) var_1 = 0; if ( !isdefined( var_2 ) ) var_2 = 0; if ( !isdefined( var_3 ) ) var_3 = 0; var_0 = common_scripts\utility::array_randomize( var_0 ); var_4 = []; foreach ( var_8, var_6 in var_0 ) { var_7 = var_6 maps\_utility::spawn_ai(); var_4[var_4.size] = var_7; if ( var_2 ) { if ( var_8 != var_0.size - 1 ) wait( randomfloatrange( 0.25, 1 ) ); } } if ( var_1 ) { } return var_4; } friendly_adjust_movement_speed() { self notify( "stop_adjust_movement_speed" ); self endon( "death" ); self endon( "stop_adjust_movement_speed" ); while ( isalive( self ) ) { wait( randomfloatrange( 0.5, 1.5 ) ); while ( friendly_should_speed_up() ) { iprintlnbold( "friendlies speeding up" ); self.moveplaybackrate = 3.5; wait 0.05; } self.moveplaybackrate = 1.0; } } friendly_should_speed_up() { self endon( "death" ); if ( !isdefined( self.goalpos ) ) return 0; if ( distancesquared( self.origin, self.goalpos ) <= level.goodfriendlydistancefromplayersquared ) return 0; if ( common_scripts\utility::within_fov( level.player.origin, level.player getplayerangles(), self.origin, level.cosine["90"] ) ) return 0; return 1; } waittill_aigroupcount_or_trigger_targetname( var_0, var_1, var_2 ) { var_3 = getent( var_2, "targetname" ); var_3 endon( "trigger" ); level endon( "aigroup_count_triggered" ); maps\_utility::waittill_aigroupcount( var_0, var_1 ); level notify( "aigroup_count_triggered" ); } hide_scriptmodel_by_targetname( var_0 ) { var_1 = getent( var_0, "targetname" ); var_1 hide(); var_1 notsolid(); if ( var_1.classname == "script_brushmodel" ) var_1 connectpaths(); } hide_scriptmodel_by_targetname_array( var_0 ) { var_1 = getentarray( var_0, "targetname" ); foreach ( var_3 in var_1 ) { var_3 hide(); var_3 notsolid(); if ( var_3.classname == "script_brushmodel" ) var_3 connectpaths(); } } hide_models_by_targetname( var_0, var_1 ) { var_2 = getentarray( var_0, "targetname" ); foreach ( var_4 in var_2 ) { var_4 hide(); var_4 notsolid(); if ( isdefined( var_1 ) && var_1 ) { if ( var_4.classname == "script_brushmodel" ) var_4 connectpaths(); } } } show_models_by_targetname( var_0, var_1 ) { var_2 = getentarray( var_0, "targetname" ); foreach ( var_4 in var_2 ) { var_4 show(); var_4 solid(); if ( isdefined( var_1 ) && var_1 ) { if ( var_4.classname == "script_brushmodel" ) var_4 disconnectpaths(); } } } submerging_bubble_effects() { for ( var_0 = 0; var_0 < 4; var_0++ ) { playfx( common_scripts\utility::getfx( "flooded_player_bubbles" ), level.player_view_water_fx_source.origin ); wait 0.1; } } setup_default_weapons( var_0 ) { if ( !isdefined( var_0 ) ) { level.player giveweapon( "r5rgp+reflex_sp" ); level.player giveweapon( "m9a1" ); level.player switchtoweapon( "r5rgp" ); } level.player giveweapon( "fraggrenade" ); level.player giveweapon( "flash_grenade" ); level.player setoffhandsecondaryclass( "flash" ); } update_goal_vol_from_trigger( var_0, var_1 ) { self endon( "death" ); self endon( "stop_goal_volume_updates" ); var_2 = getent( var_0, "targetname" ); if ( !isdefined( var_2 ) ) { var_2 = getent( var_0, "script_noteworthy" ); if ( !isdefined( var_2 ) ) { } } self endon( "death" ); var_2 endon( "death" ); while ( isalive( self ) ) { var_2 waittill( "trigger" ); reassign_goal_volume( self, var_1 ); while ( level.player istouching( var_2 ) ) wait 1.0; } } cleanup_triggers( var_0 ) { var_1 = getentarray( var_0, "targetname" ); foreach ( var_3 in var_1 ) var_3 delete(); } notify_on_aigroup_count( var_0, var_1, var_2 ) { maps\_utility::waittill_aigroupcount( var_0, var_1 ); self notify( var_2 ); } notify_on_enemy_count( var_0, var_1, var_2 ) { for (;;) { var_3 = 0; var_4 = getaiarray( "axis" ); foreach ( var_6 in var_4 ) { if ( isalive( var_6 ) ) var_3++; } if ( var_0 >= var_3 ) break; wait 0.05; } if ( isdefined( var_1 ) ) self notify( var_1 ); if ( isdefined( var_2 ) ) common_scripts\utility::flag_set( var_2 ); } waittill_aigroup_count_or_timeout( var_0, var_1, var_2 ) { thread notify_on_aigroup_count( var_0, var_1, "count_reached" ); common_scripts\utility::waittill_notify_or_timeout( "count_reached", var_2 ); } waittill_aigroup_count_or_trigger( var_0, var_1, var_2 ) { var_3 = getent( var_2, "targetname" ); if ( !isdefined( var_3 ) ) { var_3 = getent( var_2, "script_noteworthy" ); if ( !isdefined( var_3 ) ) { } } var_3 thread notify_on_aigroup_count( var_0, var_1, "count_reached" ); var_3 common_scripts\utility::waittill_any( "trigger", "count_reached" ); } waittill_enemy_count_or_trigger( var_0, var_1 ) { var_2 = getent( var_1, "targetname" ); if ( !isdefined( var_2 ) ) { var_2 = getent( var_1, "script_noteworthy" ); if ( !isdefined( var_2 ) ) { } } var_2 thread notify_on_enemy_count( var_0, "count_reached" ); var_2 common_scripts\utility::waittill_any( "trigger", "count_reached" ); } waittill_enemy_count_or_flag( var_0, var_1 ) { level endon( "count_reached" ); if ( !common_scripts\utility::flag( var_1 ) ) { level thread notify_on_enemy_count( var_0, "count_reached" ); common_scripts\utility::flag_wait( var_1 ); } } add_actor_danger_listeners() { self addaieventlistener( "bulletwhizby" ); self addaieventlistener( "gunshot" ); self addaieventlistener( "grenade danger" ); self addaieventlistener( "explode" ); self addaieventlistener( "gunshot_teammate" ); } waittill_danger() { add_actor_danger_listeners(); self waittill( "ai_event" ); } waittill_danger_or_trigger( var_0 ) { add_actor_danger_listeners(); self endon( "ai_event" ); maps\_utility::wait_for_targetname_trigger( var_0 ); return 1; } apply_deathtime( var_0 ) { self endon( "death" ); wait( var_0 ); wait( randomfloat( 10 ) ); self kill(); } wait_incremental_nag_timer( var_0, var_1 ) { if ( !isdefined( var_0 ) ) { var_0 = []; if ( isdefined( var_1 ) ) var_0[var_0.size] = 0.0; else var_0[var_0.size] = 5.0; var_0[var_0.size] = 5.0; var_0[var_0.size] = 10.0; var_0[var_0.size] = 15.0; var_0[var_0.size] = 20.0; var_0[var_0.size] = 25.0; } wait( var_0[0] ); if ( 1 < var_0.size ) return maps\_utility::array_remove_index( var_0, 0 ); else return var_0; } kill_all_enemies() { var_0 = getaiarray( "axis" ); if ( isdefined( var_0 ) ) { foreach ( var_2 in var_0 ) { if ( isdefined( var_2 ) && isalive( var_2 ) ) var_2 kill(); } } } get_enemies_touching_volume( var_0 ) { var_1 = getent( var_0, "targetname" ); if ( !isdefined( var_1 ) ) { var_1 = getent( var_0, "script_noteworthy" ); if ( !isdefined( var_1 ) ) { } } var_2 = getaiarray( "axis" ); var_2 = maps\_utility::array_removedead_or_dying( var_2 ); var_3 = []; foreach ( var_5 in var_2 ) { if ( var_5 istouching( var_1 ) ) var_3 = common_scripts\utility::array_add( var_3, var_5 ); } return var_3; } get_enemy_count_touching_volume( var_0 ) { return get_enemies_touching_volume( var_0 ).size; } notify_on_enemy_count_touching_volume( var_0, var_1, var_2 ) { self endon( "stop_checking_volume" ); for (;;) { if ( var_1 >= get_enemies_touching_volume( var_0 ).size ) break; wait 0.05; } self notify( var_2 ); } stop_enemy_dialogue() { self waittill( "death" ); maps\_utility::anim_stopanimscripted(); } stop_enemy_dialogue_on_death_or_trigger( var_0 ) { self endon( "death" ); var_1 = getent( var_0, "targetname" ); if ( !isdefined( var_1 ) ) { var_1 = getent( var_0, "script_noteworthy" ); if ( !isdefined( var_1 ) ) { } } thread stop_enemy_dialogue(); var_1 waittill( "trigger" ); maps\_utility::anim_stopanimscripted(); } smart_get_nag_line( var_0, var_1, var_2 ) { if ( 1 < var_0.size ) var_3 = common_scripts\utility::array_remove( var_0, var_0[var_2] ); else var_3 = var_1; return var_3; } nag_end_on_notify( var_0, var_1, var_2 ) { self endon( var_1 ); var_3 = []; if ( !isarray( var_0 ) ) var_0 = maps\_utility::make_array( var_0 ); var_4 = var_0.size; var_5 = 0; var_6 = 0; var_7 = wait_incremental_nag_timer( undefined, var_2 ); for (;;) { var_3 = smart_get_nag_line( var_3, var_0, var_6 ); if ( var_5 < var_4 ) var_6 = 0; else var_6 = randomintrange( 0, var_3.size ); maps\_utility::smart_dialogue( var_3[var_6] ); var_5++; var_7 = wait_incremental_nag_timer( var_7 ); } } nag_multiple_end_on_notify( var_0, var_1, var_2 ) { self endon( var_2 ); if ( !isarray( var_0 ) ) var_0 = maps\_utility::make_array( var_0 ); if ( !isarray( var_1 ) ) var_1 = maps\_utility::make_array( var_1 ); var_3 = wait_incremental_nag_timer(); for (;;) { var_4 = randomint( var_1.size ); var_0[var_4] maps\_utility::smart_dialogue( var_1[var_4] ); var_3 = wait_incremental_nag_timer( var_3 ); } } notify_on_flag_set( var_0, var_1 ) { common_scripts\utility::flag_wait( var_0 ); self notify( var_1 ); } notify_on_flag_open( var_0, var_1 ) { common_scripts\utility::flag_waitopen( var_0 ); self notify( var_1 ); } notify_on_function_finish( var_0, var_1, var_2, var_3, var_4 ) { if ( !isdefined( var_2 ) ) self [[ var_1 ]](); else if ( !isdefined( var_3 ) ) self [[ var_1 ]]( var_2 ); else if ( !isdefined( var_4 ) ) self [[ var_1 ]]( var_2, var_3 ); else self [[ var_1 ]]( var_2, var_3, var_4 ); self notify( var_0 ); } setup_bokehdot_volume( var_0 ) { var_1 = getentarray( var_0, "targetname" ); foreach ( var_3 in var_1 ) var_3 thread do_bokehdot_volume(); } do_bokehdot_volume() { level endon( "swept_away" ); var_0 = common_scripts\utility::getstruct( self.target, "targetname" ); var_1 = common_scripts\utility::getstruct( var_0.target, "targetname" ); var_2 = distance2d( var_1.origin, var_0.origin ); maps\flood_fx::fx_create_bokehdots_source(); if ( isdefined( self.script_noteworthy ) && self.script_noteworthy == "splash" ) { var_3 = 0.5; for (;;) { common_scripts\utility::flag_wait( "do_bokehdot" ); if ( !common_scripts\utility::flag( "cw_player_underwater" ) && level.player istouching( self ) ) { } while ( common_scripts\utility::flag( "do_bokehdot" ) && level.player istouching( self ) ) { if ( distance2d( level.player.origin, var_0 ) < var_3 * var_2 ) thread maps\flood_fx::fx_turn_on_bokehdots_64_player(); else thread maps\flood_fx::fx_turn_on_bokehdots_16_player(); wait( randomfloatrange( 1.5, 2.5 ) ); } common_scripts\utility::waitframe(); } } else { var_3 = 0.33; for (;;) { common_scripts\utility::flag_wait( "do_bokehdot" ); if ( !common_scripts\utility::flag( "cw_player_underwater" ) && level.player istouching( self ) ) { } if ( !isdefined( self.waterdrops_once ) && level.player istouching( self ) ) { self.waterdrops_once = 1; thread maps\flood_fx::fx_waterdrops_20_inst(); } while ( common_scripts\utility::flag( "do_bokehdot" ) && level.player istouching( self ) ) { if ( distance2d( level.player.origin, var_0.origin ) < var_3 * var_2 ) { thread maps\flood_fx::fx_bokehdots_close(); wait( randomfloatrange( 0.25, 0.5 ) ); } else if ( distance2d( level.player.origin, var_0.origin ) < var_3 * 2 * var_2 ) { thread maps\flood_fx::fx_bokehdots_close(); wait( randomfloatrange( 0.25, 0.5 ) ); } else { thread maps\flood_fx::fx_bokehdots_far(); wait( randomfloatrange( 0.5, 1 ) ); } common_scripts\utility::waitframe(); } self.waterdrops_once = undefined; common_scripts\utility::waitframe(); } } } earthquake_w_fade( var_0, var_1, var_2, var_3 ) { self notify( "earthquake_end" ); self endon( "earthquake_end" ); if ( !isdefined( var_2 ) ) var_2 = 0; if ( !isdefined( var_3 ) ) var_3 = 0; var_4 = var_1 * 10; var_5 = var_2 * 10; if ( var_5 > 0 ) var_6 = var_0 / var_5; else var_6 = var_0; var_7 = var_3 * 10; var_8 = var_4 - var_7; if ( var_7 > 0 ) var_9 = var_0 / var_7; else var_9 = var_0; var_10 = 0.1; var_0 = 0; for ( var_11 = 0; var_11 < var_4; var_11++ ) { if ( var_11 <= var_5 ) var_0 = var_0 + var_6; if ( var_11 > var_8 ) var_0 = var_0 - var_9; earthquake( var_0, var_10, self.origin, 500 ); wait( var_10 ); } } notify_on_actor_distance_to_goal( var_0, var_1, var_2 ) { self endon( "death" ); for (;;) { if ( var_1 > distance2d( var_0, self.origin ) ) { self notify( var_2 ); break; } wait 0.05; } } play_nag( var_0, var_1, var_2, var_3, var_4, var_5, var_6, var_7 ) { self endon( "death" ); self endon( "stop nags" ); if ( isdefined( var_6 ) ) self endon( var_6 ); var_8 = var_2; if ( !isdefined( var_3 ) ) var_3 = 30; var_9 = 0; var_10 = 1; var_11 = 0; while ( !common_scripts\utility::flag( var_1 ) ) { var_9 = randomint( var_0.size ); if ( var_0.size > 1 ) { while ( var_10 == var_9 ) { var_9 = randomint( var_0.size ); wait 0.05; } } var_10 = var_9; var_12 = var_0[var_9]; if ( isdefined( var_7 ) ) { var_13 = var_7[randomint( var_7.size )]; thread maps\_anim::anim_single_solo( self, var_13 ); } if ( !common_scripts\utility::flag( var_1 ) ) { level notify( "nagging" ); maps\_utility::smart_dialogue( var_12 ); } else break; wait( randomfloatrange( var_8 * 0.8, var_8 * 1.2 ) ); if ( var_3 > var_8 ) { var_11 = var_11 + 1; if ( var_11 == var_4 ) { var_11 = 0; var_8 = var_8 * var_5; if ( var_3 < var_8 ) var_8 = var_3; } } } } push_player( var_0 ) { if ( !isdefined( var_0 ) ) var_0 = 1; self pushplayer( var_0 ); } flag_set_delayed( var_0, var_1 ) { maps\_utility::delaythread( var_1, common_scripts\utility::flag_set, var_0, undefined ); } block_until_at_struct( var_0, var_1 ) { self endon( "death" ); if ( isdefined( var_1 ) ) { if ( var_1 == 666 ) self.goalradius = 88; else self.goalradius = var_1; } self setgoalpos( var_0.origin ); self.flood_current_goalnode = var_0.targetname; self waittill( "goal" ); var_0 = common_scripts\utility::getstruct( var_0.target, "targetname" ); return var_0; } bullet_trace_debug( var_0, var_1, var_2, var_3, var_4, var_5 ) { if ( !isdefined( var_2 ) ) var_2 = 0; if ( !isdefined( var_3 ) ) var_3 = "white"; if ( !isdefined( var_4 ) ) var_4 = 1000; switch ( var_3 ) { case "white": var_3 = ( 255, 255, 255 ); break; case "red": var_3 = ( 255, 0, 0 ); break; case "green": var_3 = ( 0, 255, 0 ); break; case "blue": var_3 = ( 0, 0, 255 ); break; default: break; } if ( var_5 ) { } var_6 = bullettrace( var_0, var_1, var_2 ); return var_6; } spawn_and_link_models_to_tags( var_0, var_1 ) { var_2 = getnumparts( self.model ); for ( var_3 = 0; var_3 < var_2; var_3++ ) { var_4 = getpartname( self.model, var_3 ); if ( getsubstr( var_4, 0, 4 ) == "mdl_" ) { var_5 = getsubstr( var_4, 4, var_4.size - 4 ); var_6 = spawn( "script_model", self gettagorigin( var_4 ) ); if ( var_5 == "pb_weaponscase" ) var_6 setmodel( "com_plasticcase_beige_big_iw6" ); else var_6 setmodel( var_5 ); var_6.angles = self gettagangles( var_4 ); var_6 linkto( self, var_4 ); if ( isdefined( var_0 ) ) var_6.targetname = var_0; if ( isdefined( var_1 ) ) var_6 retargetscriptmodellighting( var_1 ); } common_scripts\utility::waitframe(); } } setup_water_death() { var_0 = getentarray( "trigger_water_death", "targetname" ); foreach ( var_2 in var_0 ) { var_2 thread grenade_kill(); var_2 thread fell_in_water_fail(); } } fell_in_water_fail( var_0 ) { self endon( "death" ); if ( !isdefined( var_0 ) ) { self waittill( "trigger" ); if ( level.player maps\_utility::ent_flag( "player_in_swept" ) ) { level.player maps\_utility::ent_flag_waitopen( "player_in_swept" ); self waittill( "trigger" ); } } level.player enableinvulnerability(); maps\flood_fx::water_death_fx(); level.player enableslowaim(); level.player disableweapons(); level.player hideviewmodel(); level.player freezecontrols( 1 ); level.player allowprone( 0 ); level.player allowcrouch( 0 ); setsaveddvar( "compass", 0 ); setsaveddvar( "ammoCounterHide", 1 ); setsaveddvar( "actionSlotsHide", 1 ); setsaveddvar( "hud_showStance", 0 ); level.player shellshock( "dog_bite", 0.75 ); level.player playrumbleonentity( "damage_heavy" ); level.player stunplayer( 1.0 ); level.player playsound( "scn_flood_swept_away_splash_ss" ); var_1 = level.player common_scripts\utility::spawn_tag_origin(); var_1.origin = var_1.origin + ( 0, 0, -128 ); if ( !isdefined( var_0 ) ) { var_2 = maps\_utility::spawn_anim_model( "player_rig", level.player.origin + ( 0, 0, -128 ) ); var_2.angles = level.player.angles; var_2 linkto( var_1 ); var_3["player_rig"] = var_2; var_4 = 15; level.player playerlinktodelta( var_2, "tag_player", 0, var_4, var_4, var_4, var_4 ); var_2 thread maps\_anim::anim_single( var_3, "flood_sweptaway" ); } if ( !isdefined( self.script_noteworthy ) ) self.script_noteworthy = "no_movement"; switch ( self.script_noteworthy ) { case "no_movement": break; case "gap_jump": var_1 movey( -3000, 5, 1 ); break; case "debris_bridge": var_1 movey( -100, 10, 1 ); break; case "ending": var_1 movey( -500, 5, 1 ); break; } var_1 rotateto( ( 0, 270, 0 ), 3 ); if ( !common_scripts\utility::flag( "missionfailed" ) ) setdvar( "ui_deadquote", "" ); level thread maps\_utility::missionfailedwrapper(); } grenade_kill() { for (;;) { var_0 = getentarray( "grenade", "classname" ); foreach ( var_2 in var_0 ) { if ( var_2 istouching( self ) ) { jkuprint( "grenade killed" ); var_2 delete(); break; } } common_scripts\utility::waitframe(); } } synctransients_safe( var_0 ) { if ( !istransientqueued( var_0 ) ) { unloadalltransients(); loadtransient( var_0 ); while ( !synctransients() ) wait 0.05; } } setup_palm_trees_in_rushing_water() { common_scripts\utility::waitframe(); var_0 = getentarray( "palm_tree_in_rushing_water", "script_noteworthy" ); foreach ( var_2 in var_0 ) { var_3 = 1 + randomfloat( 0.4 ); var_2 setanimknobrestart( level.anim_prop_models[var_2.model]["flood"], 1, 0, var_3 ); } } player_water_movement( var_0, var_1 ) { maps\_utility::player_speed_percent( var_0, var_1 ); maps\_utility::player_bob_scale_set( 1.0 / ( var_0 * 0.01 ), var_1 ); } play_fullscreen_splash_cinematic( var_0 ) { level.player thread play_splash_on_activate(); for (;;) { common_scripts\utility::flag_wait( "pip_flag" ); var_1 = newhudelem(); var_1.horzalign = "fullscreen"; var_1.vertalign = "fullscreen"; var_1.sort = -1; var_1 setshader( "cinematic", 512, 512 ); var_1.alpha = 0.0; cinematicingame( var_0 ); while ( iscinematicplaying() ) wait 0.05; var_1 destroy(); common_scripts\utility::flag_clear( "pip_flag" ); } } play_splash_on_activate() { for (;;) { while ( !self usebuttonpressed() ) wait 0.05; common_scripts\utility::flag_set( "pip_flag" ); common_scripts\utility::flag_waitopen( "pip_flag" ); } } jkuline( var_0, var_1, var_2, var_3, var_4, var_5 ) { if ( isdefined( level.jkudebug ) && level.jkudebug ) { if ( !isdefined( var_2 ) ) return; if ( !isdefined( var_3 ) ) return; if ( !isdefined( var_4 ) ) return; if ( !isdefined( var_5 ) ) return; return; return; return; return; } } jkupoint( var_0, var_1, var_2, var_3 ) { if ( isdefined( level.jkudebug ) && level.jkudebug ) { if ( !isdefined( var_1 ) ) var_1 = 6; if ( !isdefined( var_2 ) ) var_2 = ( 1, 1, 1 ); if ( !isdefined( var_3 ) ) var_3 = 9999; } } jkuprint( var_0 ) { if ( isdefined( level.jkudebug ) && level.jkudebug ) iprintln( var_0 ); } set_water_fog( var_0 ) { var_1 = maps\_utility::get_vision_set_fog( var_0 ); if ( isdefined( var_1.sunfogenabled ) && var_1.sunfogenabled ) self playersetwaterfog( var_1.startdist, var_1.halfwaydist, var_1.red, var_1.green, var_1.blue, var_1.hdrcolorintensity, var_1.maxopacity, 0, var_1.sunred, var_1.sungreen, var_1.sunblue, var_1.hdrsuncolorintensity, var_1.sundir, var_1.sunbeginfadeangle, var_1.sunendfadeangle, var_1.normalfogscale, var_1.skyfogintensity, var_1.skyfogminangle, var_1.skyfogmaxangle ); else self playersetwaterfog( var_1.startdist, var_1.halfwaydist, var_1.red, var_1.green, var_1.blue, var_1.hdrcolorintensity, var_1.maxopacity, 0, var_1.skyfogintensity, var_1.skyfogminangle, var_1.skyfogmaxangle ); } type_spawn_trigger() { if ( !isdefined( self.classname ) ) return 0; if ( self.classname == "trigger_multiple_spawn" ) return 1; if ( self.classname == "trigger_multiple_spawn_reinforcement" ) return 1; if ( self.classname == "trigger_multiple_friendly_respawn" ) return 1; if ( isdefined( self.targetname ) && self.targetname == "flood_spawner" ) return 1; if ( isdefined( self.targetname ) && self.targetname == "friendly_respawn_trigger" ) return 1; if ( isdefined( self.spawnflags ) && self.spawnflags & 32 ) return 1; return 0; } delete_all_triggers() { delete_all_by_type( ::type_trigger, ::type_spawn_trigger, ::type_flag_trigger, ::type_killspawner_trigger ); animscripts\battlechatter::update_bcs_locations(); } delete_all_by_type( var_0, var_1, var_2, var_3, var_4, var_5 ) { if ( !isdefined( var_5 ) ) var_5 = 0; var_6 = [ var_0, var_1, var_2, var_3, var_4 ]; var_6 = common_scripts\utility::array_removeundefined( var_6 ); var_7 = getentarray(); foreach ( var_9 in var_7 ) { if ( !isdefined( var_9.code_classname ) ) continue; var_10 = isdefined( var_9.targetname ) && var_9.targetname == "intelligence_item"; if ( var_10 ) continue; foreach ( var_12 in var_6 ) { if ( var_9 [[ var_12 ]]() ) { if ( var_5 ) var_9 notify( "delete" ); var_9 delete(); } } } } type_trigger() { if ( !isdefined( self.code_classname ) ) return 0; var_0 = []; var_0["trigger_multiple"] = 1; var_0["trigger_once"] = 1; var_0["trigger_use"] = 1; var_0["trigger_radius"] = 1; var_0["trigger_lookat"] = 1; var_0["trigger_disk"] = 1; var_0["trigger_damage"] = 1; return isdefined( var_0[self.code_classname] ); } type_flag_trigger() { if ( !isdefined( self.classname ) ) return 0; var_0 = []; var_0["trigger_multiple_flag_set"] = 1; var_0["trigger_multiple_flag_set_touching"] = 1; var_0["trigger_multiple_flag_clear"] = 1; var_0["trigger_multiple_flag_looking"] = 1; var_0["trigger_multiple_flag_lookat"] = 1; return isdefined( var_0[self.classname] ); } type_killspawner_trigger() { if ( !type_trigger() ) return 0; if ( isdefined( self.script_killspawner ) ) return 1; return 0; } type_goalvolume() { if ( !isdefined( self.classname ) ) return 0; if ( self.classname == "info_volume" && isdefined( self.script_goalvolume ) ) return 1; return 0; } type_infovolume() { if ( !isdefined( self.classname ) ) return 0; return self.classname == "info_volume"; } flood_battlechatter_on( var_0 ) { if ( !isdefined( var_0 ) ) var_0 = 0; maps\_utility::battlechatter_on( "allies" ); maps\_utility::battlechatter_on( "axis" ); if ( var_0 ) maps\_utility::flavorbursts_on( "allies" ); } create_world_model_from_ent_weapon( var_0 ) { if ( !isdefined( var_0 ) ) var_0 = self getcurrentweapon(); var_1 = getweaponmodel( var_0 ); var_2 = getweaponattachments( var_0 ); var_3 = spawn( "script_model", ( 0, 0, -10000 ) ); var_3 setmodel( var_1 ); jkuprint( "drop weapon model: " + var_1 ); jkuprint( var_1 + " attachment number: " + var_2.size ); foreach ( var_5 in var_2 ) { var_6 = getsubstr( var_5, 0, 4 ); switch ( var_6 ) { case "acog": jkuprint( var_1 + ": " + var_5 ); var_3 hidepart( "tag_sight_on", var_1 ); var_3 attach( "weapon_acog_iw6", "tag_acog_2", 1 ); break; case "eote": jkuprint( var_1 + ": " + var_5 ); var_3 hidepart( "tag_sight_on", var_1 ); var_3 attach( "weapon_eotech_iw6", "tag_eotech", 1 ); break; case "refl": jkuprint( var_1 + ": " + var_5 ); var_3 hidepart( "tag_sight_on", var_1 ); var_3 attach( "weapon_reflex_reddot", "tag_red_dot", 1 ); break; case "sile": jkuprint( var_1 + ": " + var_5 ); var_3 attach( "weapon_silencer_01", "tag_silencer", 1 ); break; default: jkuprint( "attachment failed: " + var_5 ); break; } } return var_3; } create_rumble_ent( var_0, var_1, var_2 ) { if ( !isdefined( var_0 ) ) var_0 = 0; var_3 = common_scripts\utility::spawn_tag_origin(); var_3.origin = self.origin + ( 0, 0, var_0 ); var_3 linkto( self ); if ( isdefined( var_1 ) ) var_3.script_noteworthy = var_1; if ( isdefined( var_2 ) ) var_3 common_scripts\utility::delaycall( var_2, ::delete ); return var_3; } play_rumble_light( var_0 ) { jkuprint( "playing play_rumble_light" ); var_0 playrumbleonentity( "light_1s" ); } play_rumble_light_3s( var_0 ) { jkuprint( "playing play_rumble_light 3s" ); var_0 playrumbleonentity( "light_3s" ); } play_rumble_heavy( var_0 ) { jkuprint( "playing play_rumble_heavy" ); var_0 playrumbleonentity( "heavy_1s" ); } registeractionbinding( var_0, var_1, var_2 ) { if ( !isdefined( level.actionbinds ) ) level.actionbinds = []; if ( !isdefined( level.actionbinds[var_0] ) ) level.actionbinds[var_0] = []; var_3 = spawnstruct(); var_3.binding = var_1; var_3.hint = var_2; var_3.keytext = undefined; var_3.hinttext = undefined; level.actionbinds[var_0][level.actionbinds[var_0].size] = var_3; } getactionbind( var_0 ) { for ( var_1 = 0; var_1 < level.actionbinds[var_0].size; var_1++ ) { var_2 = level.actionbinds[var_0][var_1]; var_3 = getkeybinding( var_2.binding ); if ( !var_3["count"] ) continue; return level.actionbinds[var_0][var_1]; } return level.actionbinds[var_0][0]; } game_is_pc() { if ( level.xenon ) return 0; if ( level.ps3 ) return 0; if ( level.ps4 ) return 0; if ( level.xb3 ) return 0; return 1; }