mirror of
https://github.com/reaaLx/nx1-gsc-dump.git
synced 2025-04-23 09:35:45 +00:00
243 lines
8.0 KiB
Plaintext
243 lines
8.0 KiB
Plaintext
|
|
//****************************************************************************
|
|
// **
|
|
// Confidential - (C) Activision Publishing, Inc. 2010 **
|
|
// **
|
|
//****************************************************************************
|
|
// **
|
|
// Module: NX_ROCKET_SECTION_GANTRY **
|
|
// **
|
|
// Created: 7/13/2011 - Justin Rote **
|
|
// **
|
|
//****************************************************************************
|
|
|
|
#include maps\_utility;
|
|
#include common_scripts\utility;
|
|
#include maps\_anim;
|
|
#include maps\_vehicle;
|
|
|
|
|
|
//*******************************************************************
|
|
// *
|
|
// GANTRY ATTACK - From jumping out of the chopper to placing C4 *
|
|
// *
|
|
//*******************************************************************
|
|
start()
|
|
{
|
|
level._player maps\_nx_utility::move_player_to_start_point( "playerstart_gantry_attack" );
|
|
|
|
// Spawn chopper that just dropped you off
|
|
dropoff_chopper = spawn_vehicle_from_targetname_and_drive( "littlebird_rescue_heli" );
|
|
// dropoff_chopper = maps\nx_rocket_util::rescue_chopper_setup( "littlebird_rescue_heli", "targetname" );
|
|
dropoff_chopper thread maps\nx_rocket_section_littlebird::kill_littlebird_after_path();
|
|
|
|
// Hide the final gantry animated swing arm
|
|
swing_arm_bits = GetEntArray( "final_gantry_arm_extended", "targetname" );
|
|
foreach( bit in swing_arm_bits )
|
|
{
|
|
bit hide();
|
|
}
|
|
}
|
|
|
|
main()
|
|
{
|
|
thread maps\_utility::set_ambient( "nx_rocket_ext" );
|
|
|
|
// Setup some spawn funcs
|
|
//array_spawn_function_noteworthy( "fgantry_f0_guys_01", maps\nx_rocket_util::run_to_goal_then_aggro );
|
|
array_spawn_function_noteworthy( "fgantry_f0_guys_02", maps\nx_rocket_util::run_to_goal_then_aggro );
|
|
array_spawn_function_noteworthy( "fgantry_f1_guys_01", maps\nx_rocket_util::run_to_goal_then_aggro );
|
|
array_spawn_function_noteworthy( "fgantry_f1_guys_03", maps\nx_rocket_util::run_to_goal_then_aggro );
|
|
|
|
// Move baker to gantry
|
|
// Eventually he will jump out of the chopper
|
|
level.squad[ "ALLY_BAKER" ] StopAnimScripted();
|
|
level.squad[ "ALLY_BAKER" ] Unlink();
|
|
teleport_info = [];
|
|
teleport_info[ "ALLY_BAKER" ] = "start_baker_gantry";
|
|
maps\nx_rocket_util::squad_teleport( teleport_info );
|
|
|
|
//level.squad[ "ALLY_BAKER" ] thread show_debug_follow_on_baker();
|
|
Objective_SetPointerTextOverride( obj( "OBJ_DESTROY_FINAL_ROCKET" ), &"NX_ROCKET_FOLLOW_MARKER" );
|
|
Objective_OnEntity( obj( "OBJ_DESTROY_FINAL_ROCKET" ), level.squad[ "ALLY_BAKER" ], (0, 0, 90) );
|
|
|
|
// Start the dialogue thread
|
|
thread gantry_dialogue();
|
|
thread rocket_five_fx();
|
|
|
|
// Start the baker movement thread
|
|
thread gantry_baker_movement();
|
|
|
|
flag_wait( "flag_at_gantry_jump_down" );
|
|
}
|
|
|
|
//*******************************************************************
|
|
// *
|
|
// *
|
|
//*******************************************************************
|
|
section_precache()
|
|
{
|
|
PreCacheModel("machinery_railing_single_long02");
|
|
}
|
|
|
|
|
|
section_flag_inits()
|
|
{
|
|
flag_init( "gantry_arm_anim_done" );
|
|
}
|
|
|
|
|
|
gantry_baker_movement()
|
|
{
|
|
level endon( "flag_at_gantry_jump_down" );
|
|
|
|
// Baker setup
|
|
level.squad[ "ALLY_BAKER" ].script_forcegoal = true;
|
|
|
|
|
|
// Ignore everything
|
|
level.squad[ "ALLY_BAKER" ].moveplaybackrate = 1.2;
|
|
level.squad[ "ALLY_BAKER" ].grenadeawareness = 0;
|
|
level.squad[ "ALLY_BAKER" ].ignoreexplosionevents = true;
|
|
level.squad[ "ALLY_BAKER" ].ignorerandombulletdamage = true;
|
|
level.squad[ "ALLY_BAKER" ].ignoresuppression = true;
|
|
level.squad[ "ALLY_BAKER" ].disableBulletWhizbyReaction = true;
|
|
level.squad[ "ALLY_BAKER" ] disable_pain();
|
|
|
|
|
|
//==========================
|
|
// FLOOR 0
|
|
//==========================
|
|
flag_wait( "flag_gantry_f0_01" );
|
|
|
|
// Wait for tangos to die
|
|
flag_wait( "flag_gantry_f0_01_guys_dead" );
|
|
issue_color_orders( "g400", "allies" );
|
|
|
|
|
|
//==========================
|
|
// FLOOR 1
|
|
//==========================
|
|
flag_wait( "flag_gantry_f1_03_guys_dead" );
|
|
issue_color_orders( "g404", "allies" );
|
|
|
|
|
|
//==========================
|
|
// FLOOR 2
|
|
//==========================
|
|
|
|
// Spawn this extra safety thread to make sure baker doesnt get stuck
|
|
thread gantry_floor_two_move_baker();
|
|
thread final_gantry_objective_logic();
|
|
|
|
flag_wait( "flag_gantry_f1_stairs_down" );
|
|
level.squad[ "ALLY_BAKER" ].ignoreall = true;
|
|
|
|
flag_wait( "flag_gantry_f2_baker_in_pos" );
|
|
level.squad[ "ALLY_BAKER" ].ignoreall = false;
|
|
}
|
|
|
|
|
|
// Baker was getting stuck here,
|
|
// so this extra script will make sure he moves his ass
|
|
gantry_floor_two_move_baker()
|
|
{
|
|
level endon( "flag_gantry_f2_baker_in_pos" );
|
|
level waittill( "flag_gantry_f2_01_guys_dead" );
|
|
issue_color_orders( "g405", "allies" );
|
|
}
|
|
|
|
// Handles the mission objective markers for the end of the mission
|
|
final_gantry_objective_logic()
|
|
{
|
|
flag_wait( "flag_at_gantry_jump_down" );
|
|
hint_node = GetEnt( "gantry_jump_objective", "targetname" );
|
|
|
|
// JR - This does not work
|
|
// We need a special version of the asset that is suffixed "_obj" to act as the glow model version
|
|
// Make railing glow
|
|
//railing = getent( "gantry_jump_railing", "targetname" );
|
|
//railing glow();
|
|
|
|
// Turn off follow marker on Baker
|
|
Objective_ClearAllAdditionalEntities( obj( "OBJ_DESTROY_FINAL_ROCKET" ));
|
|
|
|
// Add extra objective text
|
|
objective_setpointertextoverride( obj( "OBJ_DESTROY_FINAL_ROCKET" ), &"NX_ROCKET_JUMP_DOWN" );
|
|
objective_position( obj( "OBJ_DESTROY_FINAL_ROCKET" ), hint_node.origin );
|
|
|
|
flag_wait( "flag_gantry_player_jumped_down" );
|
|
hint_node = GetEnt( "place_c4_objective", "targetname" );
|
|
objective_setpointertextoverride( obj( "OBJ_DESTROY_FINAL_ROCKET" ), &"NX_ROCKET_PLACE_C4" );
|
|
objective_position( obj( "OBJ_DESTROY_FINAL_ROCKET" ), hint_node.origin );
|
|
|
|
level waittill( "gantry_attack_c4_placed" );
|
|
objective_clearAdditionalPositions( obj( "OBJ_DESTROY_FINAL_ROCKET" ));
|
|
|
|
flag_wait( "gantry_arm_anim_done" );
|
|
wait 0.1;
|
|
objective_setpointertextoverride( obj( "OBJ_DESTROY_FINAL_ROCKET" ), &"" );
|
|
Objective_OnEntity( obj( "OBJ_DESTROY_FINAL_ROCKET" ), level.playerHeli, (0, 0, -50) );
|
|
}
|
|
|
|
|
|
gantry_dialogue()
|
|
{
|
|
// JR - Disabled the debug VO untill it can be updated with the proper audio VO lines
|
|
/*
|
|
wait 3.0;
|
|
thread add_dialogue_line( "Baker", "Lets go!!", "w" );
|
|
|
|
flag_wait( "gantry_attack_at_gantry" );
|
|
thread add_dialogue_line( "Baker", "Lockwood go! Get a charge on the hull!! Ill cover you.", "w" );
|
|
|
|
level waittill( "gantry_attack_c4_placed" );
|
|
wait 3.0;
|
|
thread add_dialogue_line( "Baker", "Theyre popping the walkways!!", "w" );
|
|
|
|
level waittill( "gantry_attack_swing_arm_done" );
|
|
wait 2.0;
|
|
thread add_dialogue_line( "Williams", "Come on! Jump in!!", "w" );
|
|
*/
|
|
}
|
|
|
|
rocket_five_fx()
|
|
{
|
|
wait 2;
|
|
//level endon( "rocket_1_destroyed" );
|
|
//self playsound("rocket_launch_close"); //plays the rocket launching sequence sound
|
|
|
|
|
|
exploder("rocketlaunch05_base_smoke_jets");
|
|
exploder("rocketlaunch05_base_sparkjets");
|
|
wait 10;
|
|
exploder("rocketlaunch05_jet_ignite");
|
|
wait 5;
|
|
//exploder("rocketlaunch_exhaust_01");
|
|
//wait 9;
|
|
|
|
//PlayFXOnTag( level._effect[ "nx_smoke_rocket_afterburner_liftoff" ], self, "j_tag_booster" );
|
|
|
|
//wait 1;
|
|
|
|
exploder("rocketlaunch05_blast");
|
|
|
|
//self playloopsound("rocket_launch_loop"); //looping rocket sound for when it goes in the air forever
|
|
|
|
// Stop FX with:
|
|
//thread stop_rocket_one_prelaunch_fx_on_destroy( self );
|
|
//thread stop_rocket_one_afterburn_fx_on_destroy( self );
|
|
//thread stop_rocket_one_prelaunch_fx_on_wait();
|
|
}
|
|
|
|
// Displays a debug follow text on Baker
|
|
show_debug_follow_on_baker()
|
|
{
|
|
level endon( "flag_at_gantry_jump_down" );
|
|
for( ; ; )
|
|
{
|
|
Print3d( self.origin + (0,0,60), "FOLLOW", (1,1,1), 1, 0.8, 1 );
|
|
wait(0.05);
|
|
}
|
|
}
|