mirror of
https://github.com/reaaLx/nx1-gsc-dump.git
synced 2025-04-19 07:42:54 +00:00
327 lines
9.8 KiB
Plaintext
327 lines
9.8 KiB
Plaintext
|
|
//****************************************************************************
|
|
// **
|
|
// Confidential - (C) Activision Publishing, Inc. 2010 **
|
|
// **
|
|
//****************************************************************************
|
|
// **
|
|
// Module: NX_ROCKET_SECTION_ **
|
|
// **
|
|
// Created: 7/13/2011 - **
|
|
// **
|
|
//****************************************************************************
|
|
|
|
#include maps\_utility;
|
|
#include common_scripts\utility;
|
|
#include maps\_anim;
|
|
#include maps\_vehicle;
|
|
|
|
|
|
//*******************************************************************
|
|
// *
|
|
//*******************************************************************
|
|
start()
|
|
{
|
|
// Turn off AA turret section smoke
|
|
maps\nx_rocket_util::pre_turret_event();
|
|
|
|
teleport_info = [];
|
|
teleport_info[ "ALLY_BAKER" ] = "start_default_ally_00";
|
|
teleport_info[ "ALLY_JENKINS" ] = "start_base_echo_ally_01";
|
|
teleport_info[ "ALLY_WILLIAMS" ] = "start_base_echo_ally_02";
|
|
maps\nx_rocket_util::squad_teleport( teleport_info );
|
|
level._player maps\_nx_utility::move_player_to_start_point( "start_base_echo_player" );
|
|
}
|
|
|
|
main()
|
|
{
|
|
level thread objective_follow( true );
|
|
|
|
level thread section_dialogue();
|
|
|
|
// Ambient FX for Fallen Rocket
|
|
thread maps\nx_rocket_fx::fallenrocket_fx();
|
|
thread maps\nx_rocket_fx::fallenrocket_fx_cleanup();
|
|
thread maps\_utility::set_ambient( "nx_rocket_ext" );
|
|
thread ec_turret_sfx();
|
|
|
|
flag_set( "regrouped_with_squad" );
|
|
|
|
// level._player thread maps\nx_rocket_util::player_ledge_walk( GetEnt( "base_echo_ledge_trigger", "targetname" ) );
|
|
level._player thread player_ledge_walk();
|
|
|
|
// level thread chopper_crash();
|
|
|
|
level.squad[ "ALLY_WILLIAMS" ] enable_cqbwalk();
|
|
level.squad[ "ALLY_JENKINS" ] enable_cqbwalk();
|
|
|
|
issue_color_orders( "b0 p0", "allies" );
|
|
|
|
waittill_aigroupcleared( "enemy_base_echo_01" );
|
|
|
|
// SAVE POINT
|
|
level thread autosave_now();
|
|
|
|
issue_color_orders( "b2 p2", "allies" );
|
|
level.squad[ "ALLY_WILLIAMS" ] ally_wave_through_pass();
|
|
// ally_woods_traversal();
|
|
|
|
issue_color_orders( "b10 p10", "allies" );
|
|
waittill_aigroupcleared( "enemy_base_echo_02" );
|
|
|
|
// SAVE POINT
|
|
level thread autosave_now();
|
|
|
|
// ally_woods_mantle();
|
|
issue_color_orders( "b11 p11", "allies" );
|
|
|
|
flag_wait( "base_echo_team_ledge_walk" );
|
|
level.squad[ "ALLY_WILLIAMS" ] ally_woods_ledge( "p13" );
|
|
wait 2.0;
|
|
level.squad[ "ALLY_JENKINS" ] ally_woods_ledge( "b13" );
|
|
issue_color_orders( "b13 p13", "allies" );
|
|
|
|
// SAVE POINT
|
|
level thread autosave_now();
|
|
|
|
// ally_point_to_destroyed_rocket();
|
|
flag_wait( "base_echo_rocket_reveal" );
|
|
wait 5.0;
|
|
flag_wait( "base_echo_pipe_jump" );
|
|
|
|
// SPACING OUT THEIR ORDERS TO AVOID SYNCHRONIZATION.
|
|
issue_color_orders( "b14", "allies" );
|
|
wait 2.0;
|
|
issue_color_orders( "p14", "allies" );
|
|
|
|
flag_wait( "base_echo_pipe_start" );
|
|
issue_color_orders( "b30 p30", "allies" );
|
|
|
|
flag_wait( "base_echo_exit" );
|
|
|
|
level.squad[ "ALLY_WILLIAMS" ] disable_cqbwalk();
|
|
level.squad[ "ALLY_JENKINS" ] disable_cqbwalk();
|
|
|
|
level._player notify( "end_ledge" );
|
|
|
|
level thread objective_follow( false );
|
|
}
|
|
|
|
ally_woods_traversal()
|
|
{
|
|
maps\nx_rocket_anim::woods_traversal_01( level.squad[ "ALLY_WILLIAMS" ] );
|
|
maps\nx_rocket_anim::woods_traversal_02( level.squad[ "ALLY_WILLIAMS" ] );
|
|
maps\nx_rocket_util::squad_color_reset();
|
|
}
|
|
|
|
ally_woods_mantle()
|
|
{
|
|
maps\nx_rocket_anim::woods_mantle( level.squad[ "ALLY_WILLIAMS" ], level.squad[ "ALLY_JENKINS" ] );
|
|
maps\nx_rocket_util::squad_color_reset();
|
|
}
|
|
|
|
ally_woods_ledge( order_on_end )
|
|
{
|
|
maps\nx_rocket_anim::woods_ledge( self );
|
|
maps\nx_rocket_util::squad_color_reset();
|
|
issue_color_orders( order_on_end, "allies" );
|
|
}
|
|
|
|
ally_pipe_traversal()
|
|
{
|
|
maps\nx_rocket_anim::pipe_traversal_01( level.squad[ "ALLY_WILLIAMS" ] );
|
|
maps\nx_rocket_anim::pipe_traversal_02( level.squad[ "ALLY_WILLIAMS" ] );
|
|
maps\nx_rocket_util::squad_color_reset();
|
|
}
|
|
|
|
ally_wave_through_pass()
|
|
{
|
|
node = GetEnt( "anim_base_echo_direct", "targetname" );
|
|
node anim_reach_solo( self, "cqb_wave_on_me" );
|
|
flag_wait( "base_echo_wave_player" );
|
|
node anim_single_solo( self, "cqb_wave_on_me" );
|
|
|
|
maps\nx_rocket_util::squad_color_reset();
|
|
issue_color_orders( "b10 p10", "allies" );
|
|
}
|
|
|
|
ally_point_to_destroyed_rocket()
|
|
{
|
|
|
|
chopper = vehicle_spawn( GetEnt( "base_echo_chopper", "targetname" ) );
|
|
node = GetEnt( "anim_base_echo_rocket_reveal", "targetname" );
|
|
node anim_reach_solo( level.squad[ "ALLY_WILLIAMS" ], "rocket_reveal_point" );
|
|
|
|
flag_wait( "vignette_base_echo_rocket_reveal" );
|
|
chopper GoPath();
|
|
node anim_single_solo( level.squad[ "ALLY_WILLIAMS" ], "rocket_reveal_point" );
|
|
chopper Kill();
|
|
maps\nx_rocket_util::squad_color_reset();
|
|
}
|
|
|
|
chopper_crash()
|
|
{
|
|
flag_wait( "base_echo_chopper" );
|
|
|
|
chopper = vehicle_spawn( GetEnt( "base_echo_chopper", "targetname" ) );
|
|
chopper GodOn();
|
|
chopper GoPath();
|
|
chopper thread chopper_turret_fire();
|
|
// chopper waittill( "reached_dynamic_path_end" );
|
|
|
|
flag_wait( "base_echo_chopper_kill" );
|
|
chopper thread chopper_passengers_eject();
|
|
|
|
chopper GodOff();
|
|
chopper Kill();
|
|
}
|
|
|
|
chopper_turret_fire()
|
|
{
|
|
self endon( "death" );
|
|
|
|
turret_org = GetEnt( "base_echo_aa_turret", "targetname" );
|
|
fire_rate = 5; // SHOTS PER SECOND
|
|
hit_radius = 1000;
|
|
|
|
wait 5.0;
|
|
|
|
while( IsAlive( self ) )
|
|
{
|
|
hit_radius *= 0.99;
|
|
hit_offset = random_vector( hit_radius );
|
|
turret_org thread maps\nx_rocket_util::aa_turret_fire( self, hit_offset );
|
|
wait 1/(fire_rate);
|
|
}
|
|
}
|
|
|
|
chopper_passengers_eject()
|
|
{
|
|
while( self.riders.size > 1 )
|
|
{
|
|
rider = self.riders[ self.riders.size - 1 ];
|
|
rider Unlink();
|
|
rider StopAnimScripted();
|
|
rider Kill();
|
|
wait RandomFloatRange( 1.5, 3.0 );
|
|
}
|
|
}
|
|
|
|
player_ledge_walk()
|
|
{
|
|
self endon( "end_ledge" );
|
|
|
|
while( 1 )
|
|
{
|
|
flag_wait( "base_echo_ledge" );
|
|
self SetMoveSpeedScale( 0.3 );
|
|
self HideViewModel();
|
|
self DisableWeapons();
|
|
|
|
flag_waitopen( "base_echo_ledge" );
|
|
self SetMoveSpeedScale( 1.0 );
|
|
self ShowViewModel();
|
|
self Enableweapons();
|
|
|
|
wait 0.05;
|
|
}
|
|
}
|
|
//*******************************************************************
|
|
// *
|
|
// *
|
|
//*******************************************************************
|
|
section_dialogue()
|
|
{
|
|
wait 3.0;
|
|
maps\nx_rocket_util::wait_play_dialogue_wait( 1, "roc_jen_hang_baker" );
|
|
maps\nx_rocket_util::wait_play_dialogue_wait( 0, "roc_wil_hang_bettergetmoving" );
|
|
|
|
// flag_wait( "base_echo_wave_player" );
|
|
// level thread add_dialogue_line( "Williams", "They're gonna be looking for us. Stay sharp and keep quiet.", undefined, 3.0 );
|
|
|
|
flag_wait( "base_echo_rocket_reveal" );
|
|
maps\nx_rocket_util::wait_play_dialogue_wait( 1, "roc_wil_echo_objecho" );
|
|
maps\nx_rocket_util::wait_play_dialogue_wait( 0, "roc_jen_echo_flightdelayed" );
|
|
maps\nx_rocket_util::wait_play_dialogue_wait( 0, "roc_wil_echo_stfujenkins" );
|
|
// level thread add_dialogue_line( "Williams", "Woo! Well, look at that!", undefined, 3.0 );
|
|
// wait 2.0;
|
|
// level thread add_dialogue_line( "Jenkins", "Toasty!", undefined, 3.0 );
|
|
|
|
flag_wait( "base_echo_pipe_jump" );
|
|
maps\nx_rocket_util::wait_play_dialogue_wait( 1, "roc_jen_echo_pipe" );
|
|
maps\nx_rocket_util::wait_play_dialogue_wait( 1, "roc_wil_echo_worthashot" );
|
|
// level thread add_dialogue_line( "Jenkins", "This pipe might lead us out of here.", undefined, 3.0 );
|
|
// wait 2.0;
|
|
// level thread add_dialogue_line( "Williams", "Hell, it's worth a shot.", undefined, 3.0 );
|
|
|
|
// wait 3.0;
|
|
// level thread maps\nx_rocket_util::dialogue_nag_temp( "Williams", "Lockwood! Down here!", 3.0, 2.0, 4.0, "base_echo_pipe_start" );
|
|
|
|
flag_wait( "base_echo_pipe_start" );
|
|
maps\nx_rocket_util::wait_play_dialogue_wait( 0, "roc_wil_echo_moveout" );
|
|
// wait 1.0;
|
|
// level thread add_dialogue_line( "Williams", "Alright, let's move out. Watch your step...", undefined, 2.0 );
|
|
|
|
flag_wait( "base_echo_chopper" );
|
|
maps\nx_rocket_util::wait_play_dialogue_wait( 1, "roc_jen_echo_flagdownbird" );
|
|
|
|
// wait 1.0;
|
|
// level thread add_dialogue_line( "Jenkins", "Hey, that's one of our birds!", undefined, 3.0 );
|
|
// wait 1.0;
|
|
// level thread add_dialogue_line( "Williams", "Alright! Let's flag them down!", undefined, 3.0 );
|
|
|
|
flag_wait( "base_echo_chopper_kill" );
|
|
maps\nx_rocket_util::wait_play_dialogue_wait( 0, "roc_wil_echo_shit" );
|
|
maps\nx_rocket_util::wait_play_dialogue_wait( 0, "roc_wil_echo_cantdoanythingforthem" );
|
|
|
|
flag_wait( "base_echo_exit" );
|
|
maps\nx_rocket_util::wait_play_dialogue_wait( 0, "roc_wil_trbase_structureahead" );
|
|
wait 4.0;
|
|
maps\nx_rocket_util::wait_play_dialogue_wait( 0, "roc_wil_trbase_getdropontangos" );
|
|
|
|
|
|
// level thread add_dialogue_line( "Jenkins", "Holy shit...", undefined, 3.0 );
|
|
// wait 2.0;
|
|
// level thread add_dialogue_line( "Williams", "Let's keep moving. We can't help them...", undefined, 3.0 );
|
|
}
|
|
|
|
section_precache()
|
|
{
|
|
PreCacheItem( "nx_rocket_aa_turret" );
|
|
}
|
|
|
|
section_flag_inits()
|
|
{
|
|
flag_init( "regrouped_with_squad" );
|
|
flag_init( "base_echo_wave_player" );
|
|
flag_init( "vignette_base_echo_rocket_reveal" );
|
|
}
|
|
|
|
//ec_turret sfx
|
|
ec_turret_sfx()
|
|
{
|
|
soundorg = Spawn( "sound_emitter", ( 55996, 81590, 3106 ) );
|
|
level endon( "stop_turret_outdoor_sfx" );
|
|
while(1)
|
|
{
|
|
soundorg PlaySound( "emt_rocket_turret_outdoor" );
|
|
wait( RandomFloatRange( 2.0, 6.0 ));
|
|
}
|
|
}
|
|
|
|
objective_follow( enable )
|
|
{
|
|
wait 2.0;
|
|
if( enable )
|
|
{
|
|
Objective_State( obj( "OBJ_FIND_BAKER" ), "current" );
|
|
Objective_SetPointerTextOverride( obj( "OBJ_FIND_BAKER" ), &"NX_ROCKET_FOLLOW_MARKER" );
|
|
Objective_OnEntity( obj( "OBJ_FIND_BAKER" ), level.squad[ "ALLY_WILLIAMS" ], (0, 0, 90) );
|
|
}
|
|
else
|
|
{
|
|
Objective_State( obj( "OBJ_FIND_BAKER" ), "invisible" );
|
|
}
|
|
}
|
|
|