mirror of
https://github.com/reaaLx/nx1-gsc-dump.git
synced 2025-04-22 00:55:46 +00:00
682 lines
18 KiB
Plaintext
682 lines
18 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;
|
|
#include maps\_hud_util;
|
|
|
|
|
|
start()
|
|
{
|
|
level._player maps\_nx_utility::move_player_to_start_point( "playerstart_hanging" );
|
|
|
|
// 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_default_ally_01";
|
|
teleport_info[ "ALLY_WILLIAMS" ] = "start_default_ally_02";
|
|
maps\nx_rocket_util::squad_teleport( teleport_info );
|
|
}
|
|
|
|
main()
|
|
{
|
|
level thread player_hanging();
|
|
|
|
// Return to standard FOV now that we're out of the helicopter turret.
|
|
SetSavedDvar( "cg_fov", 65.0 );
|
|
|
|
flag_set("hanging_player_start_before_fadein");
|
|
|
|
// Stop the low frequency chopper rumble
|
|
thread maps\nx_rocket_util::slightly_vibrate_camera_end();
|
|
|
|
//ambient fx
|
|
thread maps\nx_rocket_fx::hanging_amb_fx();
|
|
thread maps\_utility::set_ambient( "nx_rocket_ext" );
|
|
|
|
// hanging_intro();
|
|
black_overlay = create_client_overlay( "black", 1 );
|
|
|
|
enemies_setup();
|
|
allies_setup();
|
|
player_setup();
|
|
|
|
level thread section_dialogue();
|
|
|
|
// SAVE POINT
|
|
level thread autosave_now();
|
|
|
|
wait 7.0;
|
|
flag_set( "vo_hanging_wake_up_01" );
|
|
black_overlay Destroy();
|
|
maps\nx_rocket_anim::hanging_setup();
|
|
thread hanging_fade_in();
|
|
|
|
flag_set( "vo_hanging_wake_up_02" );
|
|
|
|
flag_set( "hanging_player_start" );
|
|
level thread interrogation_start();
|
|
|
|
level waittill( "hanging_player_free" );
|
|
|
|
// level.squad[ "ALLY_JENKINS" ].ignoreAll = false;
|
|
// level.squad[ "ALLY_WILLIAMS" ].ignoreAll = false;
|
|
//
|
|
// teleport_info = [];
|
|
// teleport_info[ "ALLY_WILLIAMS" ] = "start_hanging_ally_02";
|
|
// maps\nx_rocket_util::squad_teleport( teleport_info );
|
|
//
|
|
|
|
// // SAVE POINT
|
|
// level thread autosave_now();
|
|
|
|
// ally_chopper_reveal();
|
|
|
|
foreach( ally in level.squad )
|
|
{
|
|
ally.ignoreAll = false;
|
|
ally.ignoreMe = false;
|
|
}
|
|
}
|
|
|
|
//*******************************************************************
|
|
// ALLIES *
|
|
// *
|
|
//*******************************************************************
|
|
allies_setup()
|
|
{
|
|
foreach( ally in level.squad )
|
|
{
|
|
ally.ignoreAll = true;
|
|
ally.ignoreMe = true;
|
|
}
|
|
|
|
// level.squad[ "ALLY_JENKINS" ].ignoreAll = true;
|
|
// level.squad[ "ALLY_WILLIAMS" ].ignoreAll = true;
|
|
|
|
teleport_info = [];
|
|
teleport_info[ "ALLY_BAKER" ] = "start_default_ally_00";
|
|
teleport_info[ "ALLY_JENKINS" ] = "start_hanging_ally_01";
|
|
teleport_info[ "ALLY_WILLIAMS" ] = "start_default_ally_02";
|
|
maps\nx_rocket_util::squad_teleport( teleport_info );
|
|
|
|
|
|
level.squad[ "ALLY_JENKINS" ] ally_drop_weapon();
|
|
level.squad[ "ALLY_WILLIAMS" ] ally_drop_weapon();
|
|
}
|
|
|
|
ally_drop_weapon()
|
|
{
|
|
self DropWeapon( self.weapon, "right", 1 );
|
|
}
|
|
|
|
ally_chopper_reveal()
|
|
{
|
|
maps\nx_rocket_anim::woods_chopper_fly_over( level.squad[ "ALLY_WILLIAMS" ] );
|
|
maps\nx_rocket_util::squad_color_reset();
|
|
}
|
|
|
|
//*******************************************************************
|
|
// ENEMIES *
|
|
// *
|
|
//*******************************************************************
|
|
enemies_setup()
|
|
{
|
|
level.hanging_enemies = [];
|
|
foreach( spawner in GetEntArray( "hanging_enemy", "script_noteworthy" ) )
|
|
{
|
|
enemy = spawner spawn_ai( true );
|
|
enemy.health = 5;
|
|
enemy.disableLongDeath = true;
|
|
enemy.animname = spawner.targetname;
|
|
enemy.ignoreAll = true;
|
|
enemy maps\nx_rocket_util::attach_flashlight_gun( true );
|
|
level.hanging_enemies[ spawner.targetname ] = enemy;
|
|
wait( 0.05 );
|
|
}
|
|
}
|
|
|
|
enemy_flashlights_off()
|
|
{
|
|
|
|
foreach( enemy in level.hanging_enemies )
|
|
{
|
|
enemy maps\nx_rocket_util::attach_flashlight_gun( false );
|
|
}
|
|
}
|
|
|
|
//*******************************************************************
|
|
// PLAYER *
|
|
// *
|
|
//*******************************************************************
|
|
player_setup()
|
|
{
|
|
}
|
|
|
|
player_remove_all_weapons()
|
|
{
|
|
self.weapons_stored = [];
|
|
self.weapons_stored[ "primary" ] = self GetWeaponsList("primary");
|
|
self.weapons_stored[ "offhand" ] = self GetWeaponsList("offhand");
|
|
// self.weapons_stored[ "altmode" ] = self GetWeaponsList("altmode");
|
|
|
|
foreach(weapon_type in self.weapons_stored)
|
|
{
|
|
foreach( weapon in weapon_type )
|
|
{
|
|
self TakeWeapon(weapon);
|
|
}
|
|
}
|
|
}
|
|
|
|
player_restore_all_weapons()
|
|
{
|
|
if( !IsDefined( self.weapons_stored ) )
|
|
return;
|
|
|
|
foreach(weapon_type in self.weapons_stored)
|
|
{
|
|
foreach( weapon in weapon_type )
|
|
{
|
|
self GiveWeapon( weapon );
|
|
self GiveStartAmmo( weapon );
|
|
}
|
|
}
|
|
}
|
|
|
|
player_hanging()
|
|
{
|
|
level._player SwitchToWeapon( level._gunSidearm );
|
|
wait 0.25;
|
|
level._player DisableWeaponSwitch();
|
|
level._player DisableOffhandWeapons();
|
|
|
|
cut_trigger = GetEnt( "hanging_trigger_cut", "targetname" );
|
|
cut_trigger SetHintString( "Hold [{+usereload}] to cut straps" ); // TODO: Localize
|
|
cut_trigger trigger_off();
|
|
|
|
// level._player player_remove_all_weapons();
|
|
// level._player store_players_weapons( "hanging" );
|
|
|
|
// level._player GiveWeapon( level._gunSidearm );
|
|
|
|
player_state_hanging( true );
|
|
player_state_vignette( true );
|
|
|
|
start = GetEnt( "origin_hanging_start", "script_noteworthy" );
|
|
start_lookat = GetEnt( start.target, "targetname" );
|
|
start.angles = VectorToAngles( start_lookat.origin - start.origin );
|
|
start.angles = ( 0, start.angles[1], 0 );
|
|
|
|
player_rig = spawn_anim_model( "player_rig" );
|
|
// player_rig.origin = start.origin;
|
|
// player_rig.angles = start.angles;
|
|
|
|
player_ground_origin = Spawn( "script_origin", ( 0, 0, 0 ) );
|
|
player_ground_origin LinkTo( player_rig, "tag_player" );
|
|
level._player PlayerSetGroundReferenceEnt( player_ground_origin );
|
|
level._player SetOrigin( player_rig.origin );
|
|
level._player SetPlayerAngles( player_rig.angles );
|
|
level._player PlayerLinkToDelta( player_rig, "tag_player", 1, 0, 0, 0, 0 );
|
|
|
|
flag_wait( "hanging_player_start" );
|
|
// VIGNETTE: Wake up
|
|
// start anim_single_solo( player_rig, "hanging_wakeup" );
|
|
maps\nx_rocket_anim::hanging_wakeup( player_rig, level.squad[ "ALLY_WILLIAMS" ] );
|
|
|
|
// SAVE POINT
|
|
level thread autosave_now();
|
|
|
|
player_rig Hide();
|
|
// player_rig thread hanging_camera_turn( "end_camera_turn" );
|
|
|
|
player_state_vignette( false );
|
|
// level._player SwitchToWeapon( level._gunSidearm );
|
|
|
|
level._player thread notify_on_fire();
|
|
level._player thread fail_on_fire();
|
|
// level._player thread slowmo_on_fire();
|
|
|
|
waittill_aigroupcleared( "hanging_enemy" );
|
|
wait 1.0;
|
|
|
|
////////////////
|
|
// GREENLIGHT: End the mission here
|
|
wait 6.0;
|
|
nextmission();
|
|
wait 7.0;
|
|
////////////////
|
|
|
|
cut_trigger trigger_on();
|
|
cut_trigger waittill( "trigger" );
|
|
cut_trigger trigger_off();
|
|
|
|
// VIGNETTE: Cut and fall
|
|
player_state_vignette( true );
|
|
knife = spawn( "script_model", (0,0,0) );
|
|
knife SetModel( "viewmodel_knife" );
|
|
knife LinkTo( player_rig, "tag_knife_attach", (0,0,0), (0,-180,-180) );
|
|
player_rig Show();
|
|
|
|
knife thread wait_then_hide( 9.0 );
|
|
maps\nx_rocket_anim::hanging_cutdown( player_rig, level.squad[ "ALLY_WILLIAMS" ] );
|
|
// start anim_single_solo( player_rig, "hanging_player_fall" );
|
|
player_state_hanging( false );
|
|
knife Delete();
|
|
player_rig Delete();
|
|
|
|
level._player SetPlayerAngles( start.angles );
|
|
|
|
wait 0.5;
|
|
|
|
// level._player player_restore_all_weapons();
|
|
// level._player restore_players_weapons( "hanging" );
|
|
level._player EnableWeaponSwitch();
|
|
level._player EnableOffhandWeapons();
|
|
|
|
level._player SwitchToWeapon( level._main_gun );
|
|
|
|
player_state_vignette( false );
|
|
|
|
level notify( "hanging_player_free" );
|
|
}
|
|
|
|
player_state_hanging( enable )
|
|
{
|
|
level._player AllowCrouch( !enable );
|
|
level._player AllowProne( !enable );
|
|
|
|
if( enable )
|
|
{
|
|
}
|
|
else
|
|
{
|
|
level._player Unlink();
|
|
level._player PlayerSetGroundReferenceEnt( undefined );
|
|
}
|
|
}
|
|
|
|
player_state_vignette( enable )
|
|
{
|
|
if( enable )
|
|
{
|
|
level._player HideViewModel();
|
|
level._player DisableWeapons();
|
|
level._player LerpViewAngleClamp( 0.5, 0.25, 0.25, 0, 0, 0, 0 );
|
|
}
|
|
else
|
|
{
|
|
level._player ShowViewModel();
|
|
level._player EnableWeapons();
|
|
level._player LerpViewAngleClamp( 1, 0.25, 0.25, 40, 40, 180, 180 );
|
|
}
|
|
}
|
|
|
|
//*******************************************************************
|
|
// INTERROGATION *
|
|
// *
|
|
//*******************************************************************
|
|
interrogation_start()
|
|
{
|
|
flag_set( "interrogation_started" );
|
|
level thread vignette_interrogation();
|
|
interrogation_update();
|
|
}
|
|
|
|
vignette_interrogation()
|
|
{
|
|
level endon( "hanging_interrogation_success" );
|
|
level endon( "hanging_interrogation_failure" );
|
|
|
|
maps\nx_rocket_anim::hanging_interrogation(
|
|
level.squad[ "ALLY_JENKINS" ],
|
|
level.hanging_enemies[ "hanging_enemy_01" ],
|
|
level.hanging_enemies[ "hanging_enemy_02" ],
|
|
level.hanging_enemies[ "hanging_enemy_03" ]
|
|
);
|
|
|
|
// WAIT LOOP
|
|
if( !flag( "hanging_player_fired" ) )
|
|
{
|
|
INTERROGATION_LOOP_TIME = 7.0;
|
|
|
|
node = getstruct("vignette_crash_site_wakeup_allyshot", "script_noteworthy");
|
|
guys = [ level.squad["ALLY_JENKINS"] ];
|
|
guys = array_combine( guys, level.hanging_enemies );
|
|
|
|
node thread anim_loop( guys, "hanging_loop", "player_fired" );
|
|
node thread end_loop_on_player_fire();
|
|
|
|
wait INTERROGATION_LOOP_TIME;
|
|
}
|
|
|
|
level thread interrogation_fail();
|
|
}
|
|
|
|
end_loop_on_player_fire()
|
|
{
|
|
flag_wait( "hanging_player_fired" );
|
|
self notify( "player_fired" );
|
|
}
|
|
|
|
interrogation_update()
|
|
{
|
|
foreach( name, enemy in level.hanging_enemies )
|
|
{
|
|
enemy thread enemy_interrogation_update( name );
|
|
}
|
|
}
|
|
|
|
interrogation_fail()
|
|
{
|
|
interrogation_end( false );
|
|
|
|
// FAIL
|
|
|
|
level._player DisableWeapons();
|
|
|
|
maps\nx_rocket_anim::hanging_execution(
|
|
level.squad[ "ALLY_JENKINS" ],
|
|
level.hanging_enemies[ "hanging_enemy_03" ]
|
|
);
|
|
|
|
SetDvar( "ui_deadquote", "You failed to rescue Cameron!" );
|
|
level notify( "mission_failed" );
|
|
maps\_utility::missionFailedWrapper();
|
|
}
|
|
|
|
interrogation_success()
|
|
{
|
|
interrogation_end( true );
|
|
|
|
// STRUGGLE
|
|
flag_set( "jenkins_rescued" );
|
|
flag_set( "vo_hanging_jenkins_rescued" );
|
|
|
|
struggle_enemy = level.hanging_enemies[ "hanging_enemy_01" ];
|
|
// SWAP THE ENEMIES WHEN WE GET THE COOL NEW ANIM
|
|
// if( !IsAlive( level.hanging_enemies[ "hanging_enemy_01" ] ) )
|
|
// struggle_enemy = level.hanging_enemies[ "hanging_enemy_03" ];
|
|
|
|
struggle_enemy.ignoreAll = true;
|
|
maps\nx_rocket_anim::hanging_struggle(
|
|
level.squad[ "ALLY_JENKINS" ],
|
|
struggle_enemy
|
|
);
|
|
|
|
// struggle_enemy enemy_exit_vignette();
|
|
|
|
level.squad[ "ALLY_JENKINS" ].ignoreAll = false;
|
|
level.squad[ "ALLY_JENKINS" ].ignoreMe = false;
|
|
|
|
level.squad[ "ALLY_JENKINS" ] Melee();
|
|
}
|
|
|
|
interrogation_end( success )
|
|
{
|
|
if( success )
|
|
flag_set( "hanging_interrogation_success" );
|
|
else
|
|
flag_set( "hanging_interrogation_failure" );
|
|
|
|
if( success )
|
|
{
|
|
foreach( enemy in level.hanging_enemies )
|
|
{
|
|
enemy thread enemy_interrogation_end();
|
|
}
|
|
}
|
|
|
|
// FLASHLIGHTS OFF
|
|
enemy_flashlights_off();
|
|
|
|
level.squad[ "ALLY_JENKINS" ] StopAnimScripted();
|
|
}
|
|
|
|
notify_on_fire()
|
|
{
|
|
self NotifyOnPlayerCommand( "player_fired", "+attack" );
|
|
self waittill( "player_fired" );
|
|
flag_set( "hanging_player_fired" );
|
|
}
|
|
|
|
fail_on_fire()
|
|
{
|
|
// self waittill( "player_fired" );
|
|
flag_wait( "hanging_player_fired" );
|
|
wait 0.15;
|
|
|
|
if( flag( "hanging_interrogation_success" ) )
|
|
return;
|
|
|
|
self.ignoreMe = false;
|
|
level.hanging_enemies[ "hanging_enemy_01" ] StopAnimScripted();
|
|
level.hanging_enemies[ "hanging_enemy_01" ].ignoreAll = false;
|
|
level.hanging_enemies[ "hanging_enemy_02" ] StopAnimScripted();
|
|
level.hanging_enemies[ "hanging_enemy_02" ].ignoreAll = false;
|
|
}
|
|
|
|
slowmo_on_fire()
|
|
{
|
|
// self waittill( "player_fired" );
|
|
flag_wait( "hanging_player_fired" );
|
|
|
|
normal_scale = 1.0;
|
|
slow_scale = 0.25;
|
|
time_in = 0.25;
|
|
time_out = 0.5;
|
|
struggle_anim = level.squad[ "ALLY_JENKINS" ] getanim( "hanging_struggle" );
|
|
// wait_time = GetAnimLength( struggle_anim );
|
|
wait_time = 2.25;
|
|
|
|
SetSlowMotion( normal_scale, slow_scale, time_in );
|
|
wait wait_time;
|
|
SetSlowMotion( slow_scale, normal_scale, time_out );
|
|
}
|
|
|
|
enemy_interrogation_end()
|
|
{
|
|
if( !IsAlive( self ) )
|
|
return;
|
|
|
|
self StopAnimScripted();
|
|
wait 0.35;
|
|
self.ignoreAll = false;
|
|
}
|
|
|
|
enemy_interrogation_update( name )
|
|
{
|
|
level endon( "hanging_interrogation_failure" );
|
|
level endon( "hanging_interrogation_success" );
|
|
|
|
self waittill( "damage" );
|
|
// self thread maps\_nx_vignette_util::vignette_actor_kill();
|
|
self thread enemy_exit_vignette();
|
|
|
|
level thread interrogation_success();
|
|
|
|
// if( name == "hanging_enemy_03" )
|
|
// level thread interrogation_success();
|
|
// else
|
|
// level thread interrogation_fail();
|
|
}
|
|
|
|
enemy_exit_vignette()
|
|
{
|
|
self StopAnimScripted();
|
|
self.allowdeath = true;
|
|
wait 0.05;
|
|
self Kill();
|
|
}
|
|
|
|
//*******************************************************************
|
|
// HELPERS *
|
|
// *
|
|
//*******************************************************************
|
|
hanging_intro()
|
|
{
|
|
black_overlay = create_client_overlay( "black", 1 );
|
|
wait 4.0;
|
|
black_overlay Destroy();
|
|
}
|
|
|
|
hanging_fade_in()
|
|
{
|
|
thread hanging_blur_in();
|
|
black_overlay = create_client_overlay( "black", 1 );
|
|
wait 0.5;
|
|
|
|
for( i = 0; i < 3; i ++ )
|
|
{
|
|
black_overlay fade_over_time( 1, 0.5 ); // Fade Out
|
|
wait RandomFloatRange( 0.4, 0.8 ); // Hold
|
|
black_overlay fade_over_time( 0, 1.0 ); // Fade In
|
|
wait RandomFloatRange( 0.2, 0.4 ); // Hold
|
|
}
|
|
|
|
black_overlay Destroy();
|
|
level notify( "hanging_fade_in" );
|
|
}
|
|
|
|
hanging_blur_in()
|
|
{
|
|
SetBlur( 6, 0 );
|
|
wait 1.0;
|
|
SetBlur( 0, 6 );
|
|
}
|
|
|
|
hanging_camera_turn( end_on )
|
|
{
|
|
self endon( end_on );
|
|
self endon( "death" );
|
|
|
|
interval = 0.05;
|
|
|
|
yaw_range_min = 16.5;
|
|
yaw_range_max = 20;
|
|
yaw_range = yaw_range_max;
|
|
|
|
speed_min = 18.0; // deg/sec
|
|
speed_max = 45.0; // deg/sec
|
|
speed = speed_max; // deg/sec
|
|
|
|
theta = 0;
|
|
original_yaw = self.angles[ 1 ];
|
|
|
|
while( 1 )
|
|
{
|
|
rot = speed * interval;
|
|
theta += rot;
|
|
|
|
if( theta >= 360 )
|
|
theta = 0;
|
|
|
|
self.angles = ( self.angles[ 0 ], original_yaw + sin( theta ) * yaw_range, self.angles[ 2 ] );
|
|
wait interval;
|
|
|
|
|
|
if( speed <= speed_min )
|
|
speed = speed_min;
|
|
else
|
|
speed -= 1 * interval;
|
|
|
|
if( yaw_range <= yaw_range_min )
|
|
yaw_range = yaw_range_min;
|
|
else
|
|
yaw_range -= 1 * interval;
|
|
}
|
|
}
|
|
|
|
wait_then_hide( wait_time )
|
|
{
|
|
wait wait_time;
|
|
self Hide();
|
|
}
|
|
//*******************************************************************
|
|
// *
|
|
// *
|
|
//*******************************************************************
|
|
section_dialogue()
|
|
{
|
|
enemy_01 = level.hanging_enemies[ "hanging_enemy_01" ];
|
|
|
|
//Today must be your lucky day, asshole.
|
|
enemy_01 thread play_dialogue( "roc_ec1_hang_luckyday", 25 );
|
|
//Where are your friends?
|
|
enemy_01 thread play_dialogue( "roc_ec1_hang_whereareyourfriends", 30 );
|
|
//If you don't answer me, you're going to be a dead man!
|
|
enemy_01 thread play_dialogue( "roc_ec1_hang_deadman", 34 );
|
|
|
|
flag_wait("hanging_interrogation_success");
|
|
//<grunts of pain>
|
|
enemy_01 thread play_dialogue( "roc_ec2_hang_grunt_01", 1.0 );
|
|
//<grunts of pain>
|
|
enemy_01 thread play_dialogue( "roc_ec2_hang_grunt_02", 2.0 );
|
|
|
|
// flag_wait( "vo_hanging_wake_up_01" );
|
|
//
|
|
//// add_dialogue_line( "Williams", "Lockwood!", undefined, 1.0 );
|
|
// maps\nx_rocket_util::wait_play_dialogue_wait( 1, "roc_wil_hanging_lockwood1" );
|
|
//
|
|
// flag_wait( "vo_hanging_wake_up_02" );
|
|
// wait 6.0;
|
|
//
|
|
//// add_dialogue_line( "Williams", "Lockwood!", undefined, 1.0 );
|
|
// maps\nx_rocket_util::wait_play_dialogue_wait( 0.5, "roc_wil_hanging_lockwood2" );
|
|
//
|
|
////// add_dialogue_line( "Williams", "Lockwood! Wake up, man!", undefined, 1.0 );
|
|
//// maps\nx_rocket_util::wait_play_dialogue_wait( 0.5, "roc_wil_hanging_lockwoodwakeup" );
|
|
//
|
|
//// add_dialogue_line( "Williams", "You're alive! Is Jenkins okay?", undefined, 1.0 );
|
|
//// maps\nx_rocket_util::wait_play_dialogue_wait( 1.0, "roc_wil_hanging_isjenkinsok" );
|
|
//
|
|
//// add_dialogue_line( "Williams", "Let me see if I can cut you down from there. Hang on.", undefined, 2.0 );
|
|
// maps\nx_rocket_util::wait_play_dialogue_wait( 6.0, "roc_wil_hanging_cutyoudown" );
|
|
//
|
|
//// add_dialogue_line( "Williams", "Oh shit, we've got company. Keep quiet and hang tight.", undefined, 2.0 );
|
|
// maps\nx_rocket_util::wait_play_dialogue_wait( 4.0, "roc_wil_hanging_gotcompany" );
|
|
//
|
|
//// add_dialogue_line( "Williams", "They're going to kill Jenkins, man. Do something!", undefined, 3.0 );
|
|
//// maps\nx_rocket_util::wait_play_dialogue_wait( 3.0, "roc_wil_hanging_dosomething" );
|
|
//
|
|
// level waittill( "hanging_player_free" );
|
|
// maps\nx_rocket_util::wait_play_dialogue_wait( 3.0, "roc_jen_hang_thoughtiwasdead" );
|
|
}
|
|
|
|
section_precache()
|
|
{
|
|
PrecacheItem( "nx_walther_p22" );
|
|
PrecacheModel( "viewmodel_knife" );
|
|
precacheModel( "com_flashlight_on" );
|
|
}
|
|
|
|
|
|
section_flag_inits()
|
|
{
|
|
flag_init( "hanging_player_start_before_fadein" );
|
|
flag_init( "hanging_player_start" );
|
|
flag_init( "interrogation_started" );
|
|
flag_init( "jenkins_rescued" );
|
|
flag_init( "vo_hanging_wake_up_01" );
|
|
flag_init( "vo_hanging_wake_up_02" );
|
|
flag_init( "vo_hanging_jenkins_rescued" );
|
|
flag_init( "hanging_player_fired" );
|
|
|
|
flag_init( "hanging_interrogation_success" );
|
|
flag_init( "hanging_interrogation_failure" );
|
|
}
|