mirror of
https://github.com/reaaLx/nx1-gsc-dump.git
synced 2025-04-23 01:25:52 +00:00
241 lines
8.6 KiB
Plaintext
241 lines
8.6 KiB
Plaintext
//****************************************************************************
|
|
// **
|
|
// Confidential - (C) Activision Publishing, Inc. 2010 **
|
|
// **
|
|
//****************************************************************************
|
|
// **
|
|
// Module: MISSION DESCRIPTION **
|
|
// **
|
|
// Created: 8/10/2011 - Alan Flores **
|
|
// **
|
|
//****************************************************************************
|
|
|
|
|
|
#include maps\_utility;
|
|
#include maps\_utility_code;
|
|
#include maps\_nx_objective_util;
|
|
#include common_scripts\utility;
|
|
#include maps\_anim;
|
|
#include maps\_vehicle;
|
|
#include maps\_nx_utility;
|
|
#include maps\nx_skyscraper_util;
|
|
|
|
//*******************************************************************
|
|
// OUTRO *
|
|
// *
|
|
//*******************************************************************
|
|
|
|
outro_start()
|
|
{
|
|
//level._player maps\_nx_utility::move_player_to_start_point( "playerstart_outro" );
|
|
flag_set( "flag_atrum_crash_done" );
|
|
|
|
level._player.ignoreme = true;
|
|
|
|
maps\nx_skyscraper_util::spawn_baker();
|
|
|
|
}
|
|
|
|
outro_sequence()
|
|
{
|
|
flag_wait( "flag_atrum_crash_done" );
|
|
level._player unlink();
|
|
|
|
|
|
level._player FreezeControls( false );
|
|
level._player allowprone( true );
|
|
level._player allowcrouch( true );
|
|
|
|
flag_set( "flag_outro_start" );
|
|
|
|
level._player maps\_nx_utility::move_player_to_start_point( "playerstart_outro" );
|
|
|
|
thread lobby_fire_fx();
|
|
thread lobby_baker_control();
|
|
thread lobby_squad_a_control();
|
|
thread lobby_spawn_enemies();
|
|
thread lobby_spawn_civilians();
|
|
thread lobby_stumble_walk();
|
|
thread outro_mission_end();
|
|
}
|
|
|
|
lobby_fire_fx()
|
|
{
|
|
node_fire_fx01 = GetEnt( "node_fire_fx01", "targetname");
|
|
PlayFx( level._effect[ "firelp_large_pm_bh1" ], node_fire_fx01.origin );
|
|
node_fire_fx02 = GetEnt( "node_fire_fx02", "targetname");
|
|
PlayFx( level._effect[ "firelp_large_pm_bh1" ], node_fire_fx02.origin );
|
|
node_fire_fx03 = GetEnt( "node_fire_fx03", "targetname");
|
|
PlayFx( level._effect[ "firelp_large_pm_bh1" ], node_fire_fx03.origin );
|
|
node_smoke_fx01 = GetEnt( "node_smoke_fx01", "targetname");
|
|
PlayFx( level._effect[ "room_smoke_200" ], node_smoke_fx01.origin );
|
|
// spawn the downed helicopter model
|
|
node_crashed_heli = GetEnt( "node_crashed_heli", "targetname" );
|
|
model = spawn( "script_model", node_crashed_heli.origin );
|
|
model.angles = node_crashed_heli.angles;
|
|
model setmodel( "vehicle_blackhawk_crash" );
|
|
wait 0.25;
|
|
explosion_base = GetEnt( "outro_explosion_base", "targetname");
|
|
PlayFX( level._effect["nx_explosion_skybridge"], explosion_base.origin );
|
|
wait 1.0;
|
|
explosion_base = GetEnt( "outro_explosion_base2", "targetname");
|
|
PlayFX( level._effect["nx_explosion_skybridge"], explosion_base.origin );
|
|
fire_base1 = GetEnt( "fire_fallingdebris_base1", "targetname" );
|
|
fire_base2 = GetEnt( "fire_fallingdebris_base2", "targetname" );
|
|
fire_base3 = GetEnt( "fire_fallingdebris_base3", "targetname" );
|
|
fire_base4 = GetEnt( "fire_fallingdebris_base4", "targetname" );
|
|
fire_base5 = GetEnt( "fire_fallingdebris_base5", "targetname" );
|
|
while(1)
|
|
{
|
|
PlayFX( level._effect["fire_fallingdebris"], fire_base1.origin );
|
|
wait randomfloatrange(0.35, 1.0);
|
|
PlayFX( level._effect["fire_fallingdebris"], fire_base4.origin );
|
|
wait randomfloatrange(0.35, 1.0);
|
|
PlayFX( level._effect["fire_fallingdebris"], fire_base3.origin );
|
|
wait randomfloatrange(0.35, 1.0);
|
|
PlayFX( level._effect["fire_fallingdebris"], fire_base2.origin );
|
|
wait randomfloatrange(0.35, 1.0);
|
|
PlayFX( level._effect["fire_fallingdebris"], fire_base5.origin );
|
|
wait randomfloatrange(0.35, 1.0);
|
|
}
|
|
}
|
|
|
|
lobby_baker_control()
|
|
{
|
|
outro_vehicle = spawn_vehicle_from_targetname( "outro_vehicle" );
|
|
baker_teleport = GetEnt ("baker_outro_teleport", "targetname");
|
|
level.baker ForceTeleport( baker_teleport.origin, baker_teleport.angles);
|
|
//wait 0.25;
|
|
//
|
|
baker_wounded_lobby();
|
|
//level.baker.ignoreme = true;
|
|
level.baker.ignorerandombulletdamage = true;
|
|
level.baker.ignoresupression = true;
|
|
level.baker.fixednode = false;
|
|
level.baker.disableBulletWhizbyReaction = true;
|
|
level.baker disable_pain();
|
|
level.baker.dontavoidplayer = true;
|
|
level.baker.goalradius = 8;
|
|
baker_node = GetNode( "node_baker_outro1", "targetname" );
|
|
level.baker SetGoalNode( baker_node );
|
|
level.baker enable_cqbwalk();
|
|
}
|
|
|
|
baker_wounded_lobby()
|
|
{
|
|
level.baker.ignoreall = true;
|
|
level.baker.ignoreme = true;
|
|
|
|
// level.baker.animname = "baker";
|
|
node = GetEnt( "node_anim_wounded", "script_noteworthy" );
|
|
node anim_reach_solo( level.baker, "hunted_dazed_walk_C_limp" );
|
|
node anim_single_solo( level.baker, "hunted_dazed_walk_C_limp" );
|
|
node2 = GetEnt( "node_anim_wounded2", "script_noteworthy" );
|
|
node2 anim_single_solo( level.baker, "hunted_dazed_walk_C_limp" );
|
|
node3 = GetEnt( "node_anim_wounded3", "script_noteworthy" );
|
|
node3 anim_single_solo( level.baker, "hunted_dazed_walk_C_limp" );
|
|
node4 = GetEnt( "node_anim_wounded4", "script_noteworthy" );
|
|
//node4 anim_single_solo( level.baker, "hunted_dazed_walk_C_limp" );
|
|
node4 anim_single_run_solo( level.baker, "hunted_dazed_walk_C_limp" );
|
|
}
|
|
|
|
lobby_squad_a_control()
|
|
{
|
|
level.squad_a1 = spawn_targetname( "squad_A1", true );
|
|
level.squad_a2 = spawn_targetname( "squad_A2", true );
|
|
wait 0.25;
|
|
|
|
level.squad_a1.goalradius = 8;
|
|
level.squad_a2.goalradius = 8;
|
|
squad_a1_node = GetNode( "node_guard_A1", "targetname" );
|
|
squad_a2_node = GetNode( "node_guard_A2", "targetname" );
|
|
level.squad_a1 SetGoalNode( squad_a1_node );
|
|
level.squad_a2 SetGoalNode( squad_a2_node );
|
|
level.squad_a1 magic_bullet_shield();
|
|
level.squad_a2 magic_bullet_shield();
|
|
//level.squad_a1 waittill( "goal" );
|
|
wait 3.5;
|
|
level.baker.ignoreme = true;
|
|
//thread add_dialogue_line( "Squad A", "Baker! Spectre! We've got an exfil vehicle outside. Move, move, move!", "g" );
|
|
radio_dialogue( "sky_teama_outro_exfiloutside" );
|
|
flag_wait( "flag_outro_start" );
|
|
move_trigger = getent ( "squad_A_move_trigger", "targetname" );
|
|
move_trigger waittill( "trigger" );
|
|
squad_a1_node = GetNode( "node_guard_A1_1", "targetname" );
|
|
squad_a2_node = GetNode( "node_guard_A2_1", "targetname" );
|
|
level.squad_a1 SetGoalNode( squad_a1_node );
|
|
level.squad_a2 SetGoalNode( squad_a2_node );
|
|
|
|
//thread add_dialogue_line( "Squad A", "Let's go. Now!", "g" );
|
|
radio_dialogue( "sky_teama_outro_letsgonow" );
|
|
}
|
|
|
|
lobby_spawn_enemies()
|
|
{
|
|
array_thread( GetEntArray( "outro_enemies", "script_noteworthy" ), ::spawn_ai );
|
|
// if the player hasn't hit the exit yet flood the place with enemies and kill the player
|
|
wait 20.0;
|
|
level.squad_a1.ignoreme = true;
|
|
level.squad_a2.ignoreme = true;
|
|
level._player.ignoreme = false;
|
|
array_thread( GetEntArray( "outro_enemy_flood", "script_noteworthy" ), ::spawn_ai );
|
|
|
|
}
|
|
|
|
lobby_spawn_civilians()
|
|
{
|
|
array_thread( GetEntArray( "outro_civilian_spawner", "script_noteworthy" ), ::spawn_ai );
|
|
|
|
//spawners = GetEntArray( "outro_civilian_spawner", "script_noteworthy" );
|
|
//array_thread( spawners, ::spawn_ai );
|
|
//wait 0.1;
|
|
//spawners = get_living_ai_array( "outro_civilian_spawner", "script_noteworthy" );
|
|
spawners = get_living_ai_array( "outro_civilian_no_death", "targetname" );
|
|
foreach (spawner in spawners)
|
|
{
|
|
spawner magic_bullet_shield();
|
|
spawner.a.nodeath = true;
|
|
spawner setCanDamage( false );
|
|
}
|
|
}
|
|
|
|
lobby_stumble_walk()
|
|
{
|
|
|
|
level._player shellshock("default", 100);
|
|
level thread player_wakeup_movement_speed( 0.8 );
|
|
|
|
black_overlay = maps\_hud_util::create_client_overlay( "black", 1 );
|
|
black_overlay maps\_hud_util::fade_over_time( 1, 0.5 ); // Fade Out
|
|
wait 0.2;
|
|
black_overlay maps\_hud_util::fade_over_time( 0, 1.0 ); // Fade In
|
|
wait 0.4;
|
|
black_overlay Destroy();
|
|
|
|
level._ground_ref_ent = spawn( "script_model", ( 0, 0, 0 ) );
|
|
level._player playerSetGroundReferenceEnt( level._ground_ref_ent );
|
|
}
|
|
|
|
player_wakeup_movement_speed( speed )
|
|
{
|
|
level._player AllowCrouch( false );
|
|
level._player AllowProne( false );
|
|
level._player AllowJump( false );
|
|
level._player AllowSprint( false );
|
|
|
|
// Turn off the stance HUD indicator while the player cannot crouch
|
|
SetSavedDvar( "ammoCounterHide", "1" );
|
|
|
|
level._player blend_movespeedscale( 0.25, 0.1 );
|
|
level._player delayThread( 1, ::blend_movespeedscale, speed, 5 );
|
|
}
|
|
|
|
outro_mission_end()
|
|
{
|
|
flag_wait( "flag_outro_start" );
|
|
end_mission_trigger = getent ( "end_mission_trigger", "targetname" );
|
|
end_mission_trigger waittill( "trigger" );
|
|
nextmission();
|
|
}
|
|
|