817 lines
24 KiB
Plaintext
817 lines
24 KiB
Plaintext
// IW6 GSC SOURCE
|
|
// Generated by https://github.com/xensik/gsc-tool
|
|
|
|
callback_playerlaststandalien( var_0, var_1, var_2, var_3, var_4, var_5, var_6, var_7, var_8, var_9 )
|
|
{
|
|
blackbox_laststand( var_1, var_2 );
|
|
|
|
if ( maps\mp\alien\_utility::is_chaos_mode() )
|
|
maps\mp\alien\_chaos_laststand::chaos_playerlaststand( var_0, var_1, var_2, var_3, var_4, var_5, var_6, var_9 );
|
|
else
|
|
regularextinction_playerlaststand( var_0, var_1, var_2, var_3, var_4, var_5, var_6, var_9 );
|
|
}
|
|
|
|
regularextinction_playerlaststand( var_0, var_1, var_2, var_3, var_4, var_5, var_6, var_7 )
|
|
{
|
|
var_8 = gameshouldend( self );
|
|
|
|
if ( var_8 )
|
|
level thread maps\mp\gametypes\aliens::alienendgame( "axis", maps\mp\alien\_hud::get_end_game_string_index( "kia" ) );
|
|
|
|
if ( self.inlaststand )
|
|
forcebleedout( var_7 );
|
|
else
|
|
dropintolaststand( var_0, var_1, var_2, var_3, var_4, var_5, var_6, var_7, var_8 );
|
|
}
|
|
|
|
forcebleedout( var_0 )
|
|
{
|
|
if ( maps\mp\alien\_utility::isplayingsolo() )
|
|
self setorigin( var_0.origin );
|
|
|
|
self.bleedoutspawnentityoverride = var_0;
|
|
self notify( "force_bleed_out" );
|
|
}
|
|
|
|
dropintolaststand( var_0, var_1, var_2, var_3, var_4, var_5, var_6, var_7, var_8 )
|
|
{
|
|
self endon( "disconnect" );
|
|
level endon( "game_ended" );
|
|
self notify( "last_stand" );
|
|
enter_gamemodespecificaction();
|
|
enter_laststand();
|
|
|
|
if ( maydolaststandalien( self, var_8, var_7 ) )
|
|
{
|
|
var_9 = waitinlaststand( var_7, var_8 );
|
|
|
|
if ( !var_9 )
|
|
waitinspecator( var_7, var_8 );
|
|
}
|
|
else
|
|
waitinspecator( var_7, var_8 );
|
|
|
|
self notify( "revive" );
|
|
exit_laststand();
|
|
exit_gamemodespecificaction();
|
|
}
|
|
|
|
enter_laststand()
|
|
{
|
|
self.inlaststand = 1;
|
|
self.laststand = 1;
|
|
self.ignoreme = 1;
|
|
self.health = 1;
|
|
common_scripts\utility::_disableusability();
|
|
}
|
|
|
|
exit_laststand()
|
|
{
|
|
self laststandrevive();
|
|
self setstance( "stand" );
|
|
self.inlaststand = 0;
|
|
self.laststand = undefined;
|
|
self.ignoreme = 0;
|
|
self.health = maps\mp\gametypes\aliens::gethealthcap();
|
|
common_scripts\utility::_enableusability();
|
|
}
|
|
|
|
enter_gamemodespecificaction_getcurrentweapon( var_0 )
|
|
{
|
|
var_1 = self getcurrentweapon();
|
|
|
|
if ( var_1 == "none" )
|
|
return self.copy_fullweaponlist[0];
|
|
|
|
foreach ( var_3 in var_0 )
|
|
{
|
|
if ( var_1 == var_3 )
|
|
return self.copy_fullweaponlist[0];
|
|
}
|
|
|
|
return var_1;
|
|
}
|
|
|
|
enter_gamemodespecificaction()
|
|
{
|
|
level thread maps\mp\alien\_music_and_dialog::playvofordowned( self );
|
|
maps\mp\alien\_gamescore::update_team_encounter_performance( maps\mp\alien\_gamescore::get_team_score_component_name(), "num_players_enter_laststand" );
|
|
var_0 = [ "alienbomb_mp", "killstreak_remote_uav_mp", "mortar_detonator_mp", "switchblade_laptop_mp", "aliendeployable_crate_marker_mp", "iw6_alienminigun_mp", "iw6_alienminigun1_mp", "iw6_alienminigun2_mp", "iw6_alienminigun3_mp", "iw6_alienminigun4_mp", "iw6_alienmk32_mp", "iw6_alienmk321_mp", "iw6_alienmk322_mp", "iw6_alienmk323_mp", "iw6_alienmk324_mp", "alienflare_mp", "aliensemtex_mp", "alienclaymore_mp", "alientrophy_mp", "alienbetty_mp", "alienthrowingknife_mp", "iw6_alienmaaws_mp", "alienmortar_shell_mp", "iw6_aliendlc21_mp", "iw6_aliendlc22_mp", "iw6_aliendlc31_mp", "iw6_aliendlc32_mp", "iw6_aliendlc33_mp", "iw6_aliendlc43_mp", "aliencortex_mp" ];
|
|
maps\mp\alien\_utility::store_weapons_status( var_0 );
|
|
self.lastweapon = enter_gamemodespecificaction_getcurrentweapon( var_0 );
|
|
self.bleedoutspawnentityoverride = undefined;
|
|
self.laststand_pistol = self getweaponslistprimaries()[0];
|
|
self.being_revived = 0;
|
|
thread only_use_weapon();
|
|
maps\mp\alien\_persistence::take_player_currency( 500, 1 );
|
|
maps\mp\alien\_persistence::eog_player_update_stat( "downs", 1 );
|
|
maps\mp\alien\_alien_matchdata::inc_downed_counts();
|
|
maps\mp\alien\_challenge::update_challenge( "no_laststand" );
|
|
self setclientomnvar( "ui_alien_player_in_laststand", 1 );
|
|
}
|
|
|
|
exit_gamemodespecificaction()
|
|
{
|
|
thread maps\mp\alien\_music_and_dialog::ext_last_stand_sfx();
|
|
self.haveinvulnerabilityavailable = 1;
|
|
self.damageshieldexpiretime = gettime() + 3000;
|
|
self visionsetnakedforplayer( "", 0 );
|
|
maps\mp\alien\_utility::restore_client_fog( 0 );
|
|
maps\mp\alien\_progression::restore_all_perks();
|
|
self setweaponammostock( self.laststand_pistol, self.laststand_ammo );
|
|
self setweaponammoclip( self.laststand_pistol, self.laststand_clip_ammo );
|
|
var_0 = [ "alienflare_mp", "aliensemtex_mp", "alienclaymore_mp", "alientrophy_mp", "alienbetty_mp", "alienthrowingknife_mp", "alienmortar_shell_mp", "iw6_aliendlc21_mp", "iw6_aliendlc22_mp", "iw6_aliendlc31_mp", "iw6_aliendlc32_mp", "iw6_aliendlc43_mp", "iw6_aliendlc33_mp" ];
|
|
maps\mp\alien\_utility::restore_weapons_status( var_0 );
|
|
self setclientomnvar( "ui_alien_player_in_laststand", 0 );
|
|
self.laststand_ammo = undefined;
|
|
self.bleedoutspawnentityoverride = undefined;
|
|
maps\mp\alien\_alien_matchdata::inc_revived_counts();
|
|
self setspawnweapon( self.lastweapon );
|
|
maps\mp\alien\_death::set_kill_trigger_event_processed( self, 0 );
|
|
|
|
if ( maps\mp\alien\_utility::is_chaos_mode() )
|
|
maps\mp\alien\_chaos_laststand::chaos_exit_gamemodespecificaction( self );
|
|
}
|
|
|
|
waitinlaststand( var_0, var_1 )
|
|
{
|
|
self endon( "disconnect" );
|
|
self endon( "revive" );
|
|
level endon( "game_ended" );
|
|
|
|
if ( !var_1 )
|
|
{
|
|
visionfadetoblack( 35 );
|
|
thread playdeathsoundinlaststand( 35 );
|
|
|
|
if ( maps\mp\alien\_utility::isplayingsolo() )
|
|
{
|
|
take_laststand( self, 1 );
|
|
self setclientomnvar( "ui_laststand_end_milliseconds", gettime() + 5000 );
|
|
register_laststand_ammo();
|
|
}
|
|
else
|
|
self setclientomnvar( "ui_laststand_end_milliseconds", gettime() + 35000 );
|
|
}
|
|
|
|
if ( maps\mp\alien\_utility::isplayingsolo() )
|
|
return wait_for_self_revive( var_0, var_1 );
|
|
else
|
|
return wait_to_be_revived( self, self.origin, undefined, undefined, 1, 5000, ( 0.33, 0.75, 0.24 ), 35, 0, var_1 );
|
|
}
|
|
|
|
waitinspecator( var_0, var_1 )
|
|
{
|
|
self endon( "disconnect" );
|
|
level endon( "game_ended" );
|
|
self notify( "death" );
|
|
register_laststand_ammo();
|
|
common_scripts\utility::waitframe();
|
|
level.alienbbdata["times_died"]++;
|
|
maps\mp\alien\_persistence::eog_player_update_stat( "deaths", 1 );
|
|
|
|
if ( isdefined( self.bleedoutspawnentityoverride ) )
|
|
{
|
|
var_0 = self.bleedoutspawnentityoverride;
|
|
self.bleedoutspawnentityoverride = undefined;
|
|
}
|
|
|
|
if ( is_killed_by_kill_trigger( var_0 ) )
|
|
{
|
|
var_2 = common_scripts\utility::drop_to_ground( var_0.origin, 32, -64 );
|
|
var_3 = var_0.angles;
|
|
}
|
|
else
|
|
{
|
|
maps\mp\alien\_gamescore::update_team_encounter_performance( maps\mp\alien\_gamescore::get_team_score_component_name(), "num_players_bleed_out" );
|
|
maps\mp\alien\_alien_matchdata::inc_bleedout_counts();
|
|
var_2 = self.origin;
|
|
var_3 = self.angles;
|
|
}
|
|
|
|
maps\mp\alien\_challenge::update_challenge( "no_bleedout" );
|
|
self setclientomnvar( "ui_laststand_end_milliseconds", 0 );
|
|
var_4 = wait_to_be_revived( self, var_2, "prop_dogtags_friend_iw6", "mp_dogtag_spin", 0, 6000, ( 1, 0, 0 ), undefined, 1, var_1 );
|
|
maps\mp\_utility::updatesessionstate( "playing" );
|
|
self.forcespawnorigin = var_2;
|
|
self.forcespawnangles = var_3;
|
|
|
|
if ( isdefined( self.forceteleportorigin ) )
|
|
self.forcespawnorigin = self.forceteleportorigin;
|
|
|
|
if ( isdefined( self.forceteleportangles ) )
|
|
self.forcespawnangles = self.forceteleportangles;
|
|
|
|
maps\mp\gametypes\_playerlogic::spawnplayer( 1 );
|
|
}
|
|
|
|
wait_for_self_revive( var_0, var_1 )
|
|
{
|
|
if ( var_1 )
|
|
{
|
|
level waittill( "forever" );
|
|
self setclientomnvar( "ui_laststand_end_milliseconds", 0 );
|
|
return 0;
|
|
}
|
|
|
|
if ( is_killed_by_kill_trigger( var_0 ) )
|
|
self setorigin( var_0.origin );
|
|
else
|
|
wait 5;
|
|
|
|
self setclientomnvar( "ui_laststand_end_milliseconds", 0 );
|
|
return 1;
|
|
}
|
|
|
|
wait_to_be_revived( var_0, var_1, var_2, var_3, var_4, var_5, var_6, var_7, var_8, var_9, var_10 )
|
|
{
|
|
register_laststand_ammo();
|
|
var_11 = makereviveentity( var_0, var_1, var_2, var_3, var_4 );
|
|
var_11 thread cleanupreviveent( var_0 );
|
|
|
|
if ( maps\mp\alien\_utility::is_true( var_10 ) )
|
|
common_scripts\utility::_disableweapon();
|
|
|
|
if ( var_8 )
|
|
thread enter_spectate( var_0, var_1, var_11 );
|
|
|
|
if ( var_9 )
|
|
{
|
|
level waittill( "forever" );
|
|
return 0;
|
|
}
|
|
else
|
|
{
|
|
var_12 = var_11;
|
|
|
|
if ( var_8 )
|
|
var_12 = makereviveiconentity( var_0, var_11 );
|
|
|
|
var_12 maps\mp\alien\_hud::makereviveicon( var_0, var_6, var_7 );
|
|
var_0.reviveent = var_11;
|
|
var_0.reviveiconent = var_12;
|
|
var_11 thread laststandwaittilllifereceived( var_0, var_5 );
|
|
|
|
if ( isdefined( var_7 ) )
|
|
var_13 = var_11 waittill_any_ents_or_timeout_return( var_7, var_11, "revive_success", var_0, "force_bleed_out", var_0, "revive_success" );
|
|
else if ( !isdefined( var_7 ) && maps\mp\alien\_utility::is_true( var_10 ) )
|
|
var_13 = var_11 waittill_any_ents_return( var_11, "revive_success", var_0, "force_bleed_out", var_0, "revive_success" );
|
|
else
|
|
var_13 = var_11 common_scripts\utility::waittill_any_return( "revive_success" );
|
|
|
|
if ( var_13 == "timeout" && is_being_revived( var_0 ) )
|
|
var_13 = var_11 common_scripts\utility::waittill_any_return( "revive_success", "revive_fail" );
|
|
|
|
if ( var_13 == "revive_success" )
|
|
{
|
|
if ( maps\mp\alien\_utility::is_true( var_10 ) )
|
|
common_scripts\utility::_enableweapon();
|
|
|
|
return 1;
|
|
}
|
|
else
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
laststandwaittilllifereceived( var_0, var_1 )
|
|
{
|
|
self endon( "death" );
|
|
level endon( "game_ended" );
|
|
|
|
for (;;)
|
|
{
|
|
self makeusable();
|
|
self waittill( "trigger", var_2 );
|
|
self makeunusable();
|
|
|
|
if ( !isplayer( var_2 ) || !var_2 isonground() )
|
|
continue;
|
|
|
|
var_3 = var_2 maps\mp\alien\_perk_utility::perk_getrevivetimescalar();
|
|
|
|
if ( var_0 maps\mp\alien\_persistence::is_upgrade_enabled( "faster_revive_upgrade" ) )
|
|
var_3 = var_3 * 1.2;
|
|
|
|
var_4 = int( var_1 / var_3 );
|
|
var_5 = get_revive_result( var_0, var_2, self.origin, var_4 );
|
|
|
|
if ( var_5 )
|
|
{
|
|
record_revive_success( var_2, var_0 );
|
|
break;
|
|
}
|
|
else
|
|
{
|
|
self notify( "revive_fail" );
|
|
continue;
|
|
}
|
|
}
|
|
|
|
var_0 setclientomnvar( "ui_laststand_end_milliseconds", 0 );
|
|
self notify( "revive_success" );
|
|
}
|
|
|
|
medic_revive( var_0, var_1 )
|
|
{
|
|
instant_revive( var_1 );
|
|
record_revive_success( var_0, var_1 );
|
|
}
|
|
|
|
record_revive_success( var_0, var_1 )
|
|
{
|
|
level thread maps\mp\alien\_music_and_dialog::playvoforrevived( var_0 );
|
|
var_0 maps\mp\alien\_persistence::set_player_revives();
|
|
var_0 maps\mp\alien\_persistence::eog_player_update_stat( "revives", 1 );
|
|
var_1 thread maps\mp\gametypes\_hud_message::playercardsplashnotify( "revived", var_0 );
|
|
}
|
|
|
|
makereviveentity( var_0, var_1, var_2, var_3, var_4 )
|
|
{
|
|
var_5 = ( 0, 0, 20 );
|
|
var_1 = common_scripts\utility::drop_to_ground( var_1 + var_5, 32, -64 );
|
|
var_6 = spawn( "script_model", var_1 );
|
|
var_6 setcursorhint( "HINT_NOICON" );
|
|
var_6 sethintstring( &"PLATFORM_REVIVE" );
|
|
var_6.owner = var_0;
|
|
var_6.inuse = 0;
|
|
var_6.targetname = "revive_trigger";
|
|
|
|
if ( isdefined( var_2 ) )
|
|
var_6 setmodel( var_2 );
|
|
|
|
if ( isdefined( var_3 ) )
|
|
var_6 scriptmodelplayanim( var_3 );
|
|
|
|
if ( var_4 )
|
|
var_6 linkto( var_0, "tag_origin", var_5, ( 0, 0, 0 ) );
|
|
|
|
return var_6;
|
|
}
|
|
|
|
makereviveiconentity( var_0, var_1 )
|
|
{
|
|
var_2 = ( 0, 0, 30 );
|
|
var_3 = spawn( "script_model", var_1.origin + var_2 );
|
|
var_3 thread cleanupreviveent( var_0 );
|
|
return var_3;
|
|
}
|
|
|
|
maydolaststandalien( var_0, var_1, var_2 )
|
|
{
|
|
if ( maps\mp\alien\_utility::isplayingsolo() )
|
|
return solo_maydolaststand( var_1, var_2 );
|
|
else
|
|
return coop_maydolaststand( var_2 );
|
|
}
|
|
|
|
solo_maydolaststand( var_0, var_1 )
|
|
{
|
|
if ( var_0 && is_killed_by_kill_trigger( var_1 ) )
|
|
return 0;
|
|
|
|
return 1;
|
|
}
|
|
|
|
coop_maydolaststand( var_0 )
|
|
{
|
|
if ( is_killed_by_kill_trigger( var_0 ) )
|
|
return 0;
|
|
|
|
return 1;
|
|
}
|
|
|
|
only_use_weapon( var_0 )
|
|
{
|
|
if ( isdefined( self.iscarrying ) && self.iscarrying )
|
|
wait 0.5;
|
|
|
|
var_1 = self getweaponslistprimaries()[0];
|
|
var_2 = [ "alienflare_mp", "aliensemtex_mp", "alienclaymore_mp", "alientrophy_mp", "alienbetty_mp", "iw6_aliendlc43_mp", "alienthrowingknife_mp", "alienmortar_shell_mp", "iw6_aliendlc21_mp", "iw6_aliendlc22_mp", "iw6_aliendlc31_mp", "iw6_aliendlc32_mp", "iw6_aliendlc33_mp" ];
|
|
var_3 = can_use_pistol_during_last_stand( self );
|
|
|
|
if ( var_3 )
|
|
var_2[var_2.size] = var_1;
|
|
|
|
_takeweaponsexceptlist( var_2 );
|
|
|
|
if ( var_3 )
|
|
{
|
|
var_4 = self getammocount( var_1 );
|
|
var_5 = weaponclipsize( var_1 );
|
|
|
|
if ( var_4 < var_5 )
|
|
self setweaponammoclip( var_1, var_5 );
|
|
|
|
self switchtoweapon( var_1 );
|
|
}
|
|
}
|
|
|
|
can_use_pistol_during_last_stand( var_0 )
|
|
{
|
|
if ( maps\mp\alien\_utility::is_chaos_mode() && var_0 get_last_stand_count() == 0 )
|
|
return 0;
|
|
|
|
return 1;
|
|
}
|
|
|
|
cleanupreviveent( var_0 )
|
|
{
|
|
self endon( "death" );
|
|
var_0 common_scripts\utility::waittill_any( "death", "disconnect", "revive" );
|
|
self delete();
|
|
}
|
|
|
|
player_init_laststand()
|
|
{
|
|
if ( maps\mp\alien\_utility::is_chaos_mode() )
|
|
maps\mp\alien\_chaos_laststand::chaos_player_init_laststand();
|
|
else
|
|
regularextinction_player_init_laststand();
|
|
}
|
|
|
|
regularextinction_player_init_laststand()
|
|
{
|
|
if ( maps\mp\alien\_utility::isplayingsolo() && !issplitscreen() )
|
|
{
|
|
set_last_stand_count( self, 1 );
|
|
thread init_selfrevive_icon( 1 );
|
|
}
|
|
}
|
|
|
|
init_selfrevive_icon( var_0 )
|
|
{
|
|
self endon( "death" );
|
|
self endon( "disconnect" );
|
|
level endon( "game_ended" );
|
|
wait 5.0;
|
|
var_1 = get_last_stand_count();
|
|
self setclientomnvar( "ui_alien_selfrevive", var_1 );
|
|
}
|
|
|
|
give_laststand( var_0, var_1 )
|
|
{
|
|
if ( !isdefined( var_1 ) )
|
|
var_1 = 1;
|
|
|
|
var_2 = var_0 get_last_stand_count() + var_1;
|
|
set_last_stand_count( var_0, var_2 );
|
|
}
|
|
|
|
take_laststand( var_0, var_1 )
|
|
{
|
|
if ( !isdefined( var_1 ) )
|
|
var_1 = 1;
|
|
|
|
var_2 = var_0 get_last_stand_count() - var_1;
|
|
set_last_stand_count( var_0, max( var_2, 0 ) );
|
|
}
|
|
|
|
gameshouldend( var_0 )
|
|
{
|
|
if ( maps\mp\alien\_utility::isplayingsolo() )
|
|
return solo_gameshouldend( var_0 );
|
|
else
|
|
return coop_gameshouldend( var_0 );
|
|
}
|
|
|
|
solo_gameshouldend( var_0 )
|
|
{
|
|
if ( var_0.inlaststand )
|
|
return 0;
|
|
|
|
return var_0 get_last_stand_count() == 0;
|
|
}
|
|
|
|
coop_gameshouldend( var_0 )
|
|
{
|
|
return everyone_else_all_in_laststand( var_0 );
|
|
}
|
|
|
|
everyone_else_all_in_laststand( var_0 )
|
|
{
|
|
foreach ( var_2 in level.players )
|
|
{
|
|
if ( var_2 == var_0 )
|
|
continue;
|
|
|
|
if ( !player_in_laststand( var_2 ) )
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
get_revive_result( var_0, var_1, var_2, var_3 )
|
|
{
|
|
var_1.iscapturingcrate = 1;
|
|
var_4 = createuseent( var_2 );
|
|
var_4 thread cleanupreviveent( var_0 );
|
|
var_5 = revive_use_hold_think( var_0, var_1, var_4, var_3 );
|
|
var_1.iscapturingcrate = 0;
|
|
return var_5;
|
|
}
|
|
|
|
createuseent( var_0 )
|
|
{
|
|
var_1 = spawn( "script_origin", var_0 );
|
|
var_1.curprogress = 0;
|
|
var_1.usetime = 0;
|
|
var_1.userate = 8000;
|
|
var_1.inuse = 0;
|
|
return var_1;
|
|
}
|
|
|
|
playdeathsoundinlaststand( var_0 )
|
|
{
|
|
self endon( "disconnect" );
|
|
self endon( "revive" );
|
|
level endon( "game_ended" );
|
|
maps\mp\_utility::playdeathsound();
|
|
wait( var_0 / 3 );
|
|
maps\mp\_utility::playdeathsound();
|
|
wait( var_0 / 3 );
|
|
maps\mp\_utility::playdeathsound();
|
|
}
|
|
|
|
visionfadetoblack( var_0 )
|
|
{
|
|
var_1 = 2.4;
|
|
self visionsetnakedforplayer( "black_bw", var_0 * var_1 );
|
|
maps\mp\alien\_utility::restore_client_fog( 0 );
|
|
}
|
|
|
|
enter_spectate( var_0, var_1, var_2 )
|
|
{
|
|
var_0 endon( "disconnect" );
|
|
level endon( "game_ended" );
|
|
enter_camera_zoomout();
|
|
camera_zoomout( var_0, var_1, var_2 );
|
|
exit_camera_zoomout();
|
|
}
|
|
|
|
camera_zoomout( var_0, var_1, var_2 )
|
|
{
|
|
var_2 endon( "revive_success" );
|
|
var_3 = ( 0, 0, 30 );
|
|
var_4 = ( 0, 0, 100 );
|
|
var_5 = ( 0, 0, 400 );
|
|
var_6 = 2.0;
|
|
var_7 = 0.6;
|
|
var_8 = 0.6;
|
|
var_9 = var_1 + var_3;
|
|
var_10 = bullettrace( var_9, var_9 + var_4, 0, var_0 );
|
|
var_11 = var_10["position"];
|
|
var_10 = bullettrace( var_11, var_11 + var_5, 0, var_0 );
|
|
var_12 = var_10["position"];
|
|
var_13 = spawn( "script_model", var_11 );
|
|
var_13 setmodel( "tag_origin" );
|
|
var_13.angles = vectortoangles( ( 0, 0, -1 ) );
|
|
var_13 thread cleanupreviveent( var_0 );
|
|
var_0 cameralinkto( var_13, "tag_origin" );
|
|
var_13 moveto( var_12, var_6, var_7, var_8 );
|
|
var_13 waittill( "movedone" );
|
|
var_13 delete();
|
|
var_0 maps\mp\gametypes\_playerlogic::respawn_asspectator();
|
|
}
|
|
|
|
enter_camera_zoomout()
|
|
{
|
|
self playerhide();
|
|
self freezecontrols( 1 );
|
|
self visionsetnakedforplayer( "cheat_bw", 0 );
|
|
maps\mp\alien\_utility::restore_client_fog( 0 );
|
|
}
|
|
|
|
exit_camera_zoomout()
|
|
{
|
|
self cameraunlink();
|
|
self freezecontrols( 0 );
|
|
}
|
|
|
|
revive_use_hold_think( var_0, var_1, var_2, var_3 )
|
|
{
|
|
enter_revive_use_hold_think( var_0, var_1, var_2, var_3 );
|
|
thread wait_for_exit_revive_use_hold_think( var_0, var_1, var_2 );
|
|
var_4 = 0;
|
|
var_5 = 0;
|
|
|
|
while ( should_revive_continue( var_1 ) )
|
|
{
|
|
if ( var_4 >= var_3 )
|
|
{
|
|
var_5 = 1;
|
|
break;
|
|
}
|
|
|
|
var_0 setclientomnvar( "ui_securing_progress", var_4 / var_3 );
|
|
var_1 setclientomnvar( "ui_securing_progress", var_4 / var_3 );
|
|
var_4 = var_4 + 50;
|
|
common_scripts\utility::waitframe();
|
|
}
|
|
|
|
var_2 notify( "use_hold_think_complete" );
|
|
var_2 waittill( "exit_use_hold_think_complete" );
|
|
return var_5;
|
|
}
|
|
|
|
enter_revive_use_hold_think( var_0, var_1, var_2, var_3 )
|
|
{
|
|
var_0 setclientomnvar( "ui_securing", 4 );
|
|
var_1 setclientomnvar( "ui_securing", 3 );
|
|
var_0.being_revived = 1;
|
|
var_1 playerlinkto( var_2 );
|
|
var_1 playerlinkedoffsetenable();
|
|
var_1 maps\mp\alien\_utility::disable_weapon_timeout( var_3 + 0.05, "revive_weapon_management" );
|
|
var_1.isreviving = 1;
|
|
}
|
|
|
|
wait_for_exit_revive_use_hold_think( var_0, var_1, var_2 )
|
|
{
|
|
common_scripts\utility::waittill_any_ents( var_2, "use_hold_think_complete", var_0, "disconnect", var_0, "revive_success", var_0, "force_bleed_out" );
|
|
|
|
if ( maps\mp\_utility::isreallyalive( var_0 ) )
|
|
{
|
|
var_0.being_revived = 0;
|
|
var_0 setclientomnvar( "ui_securing", 0 );
|
|
}
|
|
|
|
var_1 unlink();
|
|
var_1 maps\mp\alien\_utility::enable_weapon_wrapper( "revive_weapon_management" );
|
|
var_1 setclientomnvar( "ui_securing", 0 );
|
|
var_1.isreviving = 0;
|
|
var_2 notify( "exit_use_hold_think_complete" );
|
|
}
|
|
|
|
should_revive_continue( var_0 )
|
|
{
|
|
return !level.gameended && maps\mp\_utility::isreallyalive( var_0 ) && var_0 usebuttonpressed() && !var_0.inlaststand;
|
|
}
|
|
|
|
register_laststand_ammo()
|
|
{
|
|
self.laststand_ammo = self getweaponammostock( self.laststand_pistol );
|
|
self.laststand_clip_ammo = self getweaponammoclip( self.laststand_pistol );
|
|
}
|
|
|
|
_takeweaponsexceptlist( var_0 )
|
|
{
|
|
var_1 = self getweaponslistall();
|
|
|
|
foreach ( var_3 in var_1 )
|
|
{
|
|
if ( common_scripts\utility::array_contains( var_0, var_3 ) )
|
|
continue;
|
|
else
|
|
self takeweapon( var_3 );
|
|
}
|
|
}
|
|
|
|
blackbox_laststand( var_0, var_1 )
|
|
{
|
|
level.alienbbdata["times_downed"]++;
|
|
var_2 = isagent( var_0 );
|
|
|
|
if ( var_2 )
|
|
{
|
|
var_3 = ( gettime() - var_0.birthtime ) / 1000;
|
|
var_4 = "unknown agent";
|
|
|
|
if ( isdefined( var_0.agent_type ) )
|
|
{
|
|
var_4 = var_0.agent_type;
|
|
|
|
if ( isdefined( var_0.alien_type ) )
|
|
var_4 = var_0.alien_type;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var_3 = 0;
|
|
|
|
if ( isplayer( var_0 ) )
|
|
var_4 = "player";
|
|
else
|
|
var_4 = "nonagent";
|
|
}
|
|
|
|
var_5 = 0.0;
|
|
var_6 = 0.0;
|
|
var_7 = 0.0;
|
|
|
|
if ( isdefined( var_0 ) && isagent( var_0 ) )
|
|
{
|
|
var_5 = var_0.origin[0];
|
|
var_6 = var_0.origin[1];
|
|
var_7 = var_0.origin[2];
|
|
}
|
|
|
|
var_8 = "";
|
|
|
|
if ( isdefined( self.name ) )
|
|
var_8 = self.name;
|
|
|
|
var_9 = -1;
|
|
|
|
if ( isdefined( level.current_cycle_num ) )
|
|
var_9 = level.current_cycle_num;
|
|
|
|
var_10 = "unknown";
|
|
|
|
if ( isdefined( level.current_hive_name ) )
|
|
var_10 = level.current_hive_name;
|
|
|
|
bbprint( "alienplayerlaststand", "cyclenum %i hivename %s attackerisagent %i attackeragenttype %s attackeralivetime %f attackerx %f attackery %f attackerz %f victimx %f victimy %f victimz %f victimname %s damage %i", var_9, var_10, var_2, var_4, var_3, var_5, var_6, var_7, self.origin[0], self.origin[1], self.origin[2], var_8, var_1 );
|
|
}
|
|
|
|
waittill_any_ents_or_timeout_return( var_0, var_1, var_2, var_3, var_4, var_5, var_6, var_7, var_8, var_9, var_10, var_11, var_12, var_13, var_14 )
|
|
{
|
|
self endon( "death" );
|
|
var_15 = spawnstruct();
|
|
var_1 childthread common_scripts\utility::waittill_string( var_2, var_15 );
|
|
|
|
if ( isdefined( var_3 ) && isdefined( var_4 ) )
|
|
var_3 childthread common_scripts\utility::waittill_string( var_4, var_15 );
|
|
|
|
if ( isdefined( var_5 ) && isdefined( var_6 ) )
|
|
var_5 childthread common_scripts\utility::waittill_string( var_6, var_15 );
|
|
|
|
if ( isdefined( var_7 ) && isdefined( var_8 ) )
|
|
var_7 childthread common_scripts\utility::waittill_string( var_8, var_15 );
|
|
|
|
if ( isdefined( var_9 ) && isdefined( var_10 ) )
|
|
var_9 childthread common_scripts\utility::waittill_string( var_10, var_15 );
|
|
|
|
if ( isdefined( var_11 ) && isdefined( var_12 ) )
|
|
var_11 childthread common_scripts\utility::waittill_string( var_12, var_15 );
|
|
|
|
if ( isdefined( var_13 ) && isdefined( var_14 ) )
|
|
var_13 childthread common_scripts\utility::waittill_string( var_14, var_15 );
|
|
|
|
var_15 childthread common_scripts\utility::_timeout( var_0 );
|
|
var_15 waittill( "returned", var_16 );
|
|
var_15 notify( "die" );
|
|
return var_16;
|
|
}
|
|
|
|
waittill_any_ents_return( var_0, var_1, var_2, var_3, var_4, var_5, var_6, var_7, var_8, var_9, var_10, var_11, var_12, var_13 )
|
|
{
|
|
self endon( "death" );
|
|
var_14 = spawnstruct();
|
|
var_0 childthread common_scripts\utility::waittill_string( var_1, var_14 );
|
|
|
|
if ( isdefined( var_2 ) && isdefined( var_3 ) )
|
|
var_2 childthread common_scripts\utility::waittill_string( var_3, var_14 );
|
|
|
|
if ( isdefined( var_4 ) && isdefined( var_5 ) )
|
|
var_4 childthread common_scripts\utility::waittill_string( var_5, var_14 );
|
|
|
|
if ( isdefined( var_6 ) && isdefined( var_7 ) )
|
|
var_6 childthread common_scripts\utility::waittill_string( var_7, var_14 );
|
|
|
|
if ( isdefined( var_8 ) && isdefined( var_9 ) )
|
|
var_8 childthread common_scripts\utility::waittill_string( var_9, var_14 );
|
|
|
|
if ( isdefined( var_10 ) && isdefined( var_11 ) )
|
|
var_10 childthread common_scripts\utility::waittill_string( var_11, var_14 );
|
|
|
|
if ( isdefined( var_12 ) && isdefined( var_13 ) )
|
|
var_12 childthread common_scripts\utility::waittill_string( var_13, var_14 );
|
|
|
|
var_14 waittill( "returned", var_15 );
|
|
var_14 notify( "die" );
|
|
return var_15;
|
|
}
|
|
|
|
is_killed_by_kill_trigger( var_0 )
|
|
{
|
|
return isdefined( var_0 );
|
|
}
|
|
|
|
set_last_stand_count( var_0, var_1 )
|
|
{
|
|
var_1 = int( var_1 );
|
|
var_0 setcoopplayerdata( "alienSession", "last_stand_count", var_1 );
|
|
var_0 setclientomnvar( "ui_alien_selfrevive", var_1 );
|
|
}
|
|
|
|
get_last_stand_count()
|
|
{
|
|
return self getcoopplayerdata( "alienSession", "last_stand_count" );
|
|
}
|
|
|
|
is_being_revived( var_0 )
|
|
{
|
|
return var_0.being_revived;
|
|
}
|
|
|
|
player_in_laststand( var_0 )
|
|
{
|
|
return var_0.inlaststand;
|
|
}
|
|
|
|
instant_revive( var_0 )
|
|
{
|
|
var_0 notify( "revive_success" );
|
|
}
|