Files
IL-GSC/IW/PC/ALL/scripts/cp/cp_laststand.gsc
2023-10-27 03:49:01 -04:00

1729 lines
33 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\cp_laststand.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 105
* Decompile Time: 5173 ms
* Timestamp: 10/27/2023 12:09:34 AM
*******************************************************************/
//Function Number: 1
func_373E(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
{
func_500F(param_09);
}
//Function Number: 2
func_500F(param_00)
{
var_01 = func_7682(self);
if(var_01 && isdefined(level.endgame) && isdefined(level.end_game_string_index))
{
level thread [[ level.endgame ]]("axis",level.end_game_string_index["kia"]);
}
if(player_in_laststand(self))
{
func_72A1(param_00);
return;
}
func_5D2B(param_00,var_01);
}
//Function Number: 3
func_72A1(param_00)
{
if(scripts\cp\_utility::isplayingsolo() || level.only_one_player)
{
self setorigin(param_00.origin);
}
self.var_2B6A = param_00;
self notify("force_bleed_out");
}
//Function Number: 4
func_5D2B(param_00,param_01)
{
self endon("disconnect");
level endon("game_ended");
self notify("last_stand",scripts\cp\_utility::getvalidtakeweapon());
var_02 = scripts\cp\_utility::has_zombie_perk("perk_machine_revive");
func_6610();
func_6612();
level.var_AA0B++;
func_6616();
if((scripts\cp\_utility::isplayingsolo() || level.only_one_player) && func_8C50())
{
if(scripts\cp\_utility::func_9BA0("self_revive") || scripts\common\utility::istrue(level.the_hoff_revive))
{
func_13701(param_00,param_01,var_02);
}
else
{
func_13703(param_00,param_01);
}
}
else if(func_4F33())
{
func_13703(param_00,param_01);
}
else if(func_B4DC(param_01,param_00))
{
var_03 = func_13701(param_00,param_01);
if(!var_03)
{
func_13703(param_00,param_01);
}
}
else
{
func_13703(param_00,param_01);
}
self notify("revive");
level notify("revive_success",self);
func_6956();
func_6952();
func_6951();
}
//Function Number: 5
func_6616()
{
self.inlaststand = 1;
self.health = 1;
scripts\common\utility::func_1C6E(0);
self notify("healthRegeneration");
}
//Function Number: 6
func_6956()
{
self laststandrevive();
self setstance("stand");
self.inlaststand = 0;
self.health = func_7EF4();
scripts\cp\_utility::func_7298();
}
//Function Number: 7
func_7EF4()
{
return int(self.maxhealth);
}
//Function Number: 8
func_6612()
{
lib_0A54::func_12E38(lib_0A54::func_7CE6(),"num_players_enter_laststand");
var_00 = ["iw7_gunless_zm"];
if(isdefined(level.additional_laststand_weapon_exclusion))
{
var_00 = scripts\common\utility::array_combine(var_00,level.additional_laststand_weapon_exclusion);
}
if(isdefined(self.former_mule_weapon))
{
var_00[var_00.size] = self.former_mule_weapon;
}
var_01 = [];
foreach(var_03 in self getweaponslistprimaries())
{
if(!scripts\cp\_utility::isstrstart(var_03,"alt_"))
{
var_01[var_01.size] = var_03;
}
}
self.var_B0A1 = var_01;
scripts\cp\_utility::func_110AA(var_00,1);
self.var_AA45 = func_6613(var_00,1);
self.var_2B6A = undefined;
self.saved_last_stand_pistol = self.var_A913;
self.var_D7CE = self getweaponslistprimaries()[1];
self.var_D7D0 = self getweaponammostock(self.var_D7CE);
self.var_D7CF = self getweaponammoclip(self.var_D7CE);
self.var_2A85 = 0;
func_3D89();
thread func_C553();
scripts\cp\_persistence::func_11445(func_78F8(self),1,"laststand");
scripts\cp\_persistence::func_666A("downs",1);
scripts\cp\_persistence::increment_player_career_downs(self);
scripts\cp\_analytics::func_93C1();
scripts\cp\_challenge::func_12D9C("no_laststand");
self stopgestureviewmodel();
}
//Function Number: 9
func_3D89()
{
if(!isdefined(self.var_4643))
{
return;
}
if(scripts\cp\_utility::func_9BA0("just_a_flesh_wound"))
{
return;
}
var_00 = undefined;
if(isdefined(self.var_AA45) && !scripts\common\utility::func_693B(self.var_4643,self.var_AA45))
{
self.var_4643 = scripts\common\utility::array_add(self.var_4643,self.var_AA45);
}
foreach(var_02 in self.var_4643)
{
if(scripts\cp\_weapon::func_8BD1(var_02,"doubletap"))
{
var_03 = strtok(var_02,"+");
var_00 = var_03[0];
for(var_04 = 1;var_04 < var_03.size;var_04++)
{
if(issubstr(var_03[var_04],"doubletap"))
{
continue;
}
var_00 = var_00 + "+" + var_03[var_04];
}
if(scripts\common\utility::func_2286(self.var_4643,var_02))
{
self.var_4643 = scripts\common\utility::func_22A9(self.var_4643,var_02);
self.var_4643[self.var_4643.size] = var_00;
}
if(issubstr(self.var_464B,var_03[0]))
{
self.var_464B = var_00;
}
var_05 = getarraykeys(self.var_4648);
var_06 = getarraykeys(self.var_464A);
foreach(var_08 in var_05)
{
if(issubstr(var_08,var_03[0]))
{
if(var_00 != var_08)
{
self.var_4648[var_00] = self.var_4648[var_08];
self.var_4648[var_08] = undefined;
}
}
}
foreach(var_0B in var_06)
{
if(issubstr(var_0B,var_03[0]))
{
if(var_00 != var_0B)
{
self.var_464A[var_00] = self.var_464A[var_0B];
self.var_464A[var_0B] = undefined;
}
}
}
if(issubstr(self.var_AA45,var_03[0]))
{
self.var_AA45 = var_00;
}
if(issubstr(self.var_D7CE,var_03[0]))
{
self.var_D7CE = var_00;
}
}
}
}
//Function Number: 10
func_6613(param_00,param_01)
{
var_02 = scripts\cp\_utility::getvalidtakeweapon(param_00);
if(isdefined(self.var_D7AB))
{
var_02 = self.var_D7AB;
}
var_03 = 0;
if(var_02 == "none")
{
var_03 = 1;
}
else if(scripts\common\utility::func_2286(param_00,var_02))
{
var_03 = 1;
}
else if(scripts\common\utility::func_2286(param_00,getweaponbasename(var_02)))
{
var_03 = 1;
}
else if(scripts\common\utility::istrue(param_01) && scripts\cp\_utility::func_9C42(var_02,1))
{
var_03 = 1;
}
if(scripts\cp\_utility::func_9C8F(var_02))
{
var_03 = 0;
}
if(var_03)
{
return func_3E88(param_00,param_01,1);
}
return var_02;
}
//Function Number: 11
func_3E88(param_00,param_01,param_02)
{
for(var_03 = 0;var_03 < self.var_4643.size;var_03++)
{
if(self.var_4643[var_03] == "none")
{
continue;
}
else if(scripts\common\utility::func_2286(param_00,self.var_4643[var_03]))
{
continue;
}
else if(scripts\common\utility::func_2286(param_00,getweaponbasename(self.var_4643[var_03])))
{
continue;
}
else if(scripts\common\utility::istrue(param_01) && scripts\cp\_utility::func_9C42(self.var_4643[var_03],param_02))
{
continue;
}
else
{
return self.var_4643[var_03];
}
}
}
//Function Number: 12
func_6952()
{
self.var_8C4C = 1;
self.var_4D69 = gettime() + 3000;
var_00 = [];
scripts\cp\_utility::func_E2D5(var_00);
if(isdefined(self.var_D7D0))
{
self setweaponammostock(self.var_D7CE,self.var_D7D0);
}
if(isdefined(self.var_D7CF))
{
self setweaponammoclip(self.var_D7CE,self.var_D7CF);
}
if(is_valid_spawn_weapon(self.var_AA45))
{
self method_833B(self.var_AA45,1);
}
give_fists_if_no_real_weapon(self);
self.var_2B6A = undefined;
self.var_D7AB = undefined;
self.var_D7AC = undefined;
self.var_D7AD = undefined;
self.former_mule_weapon = undefined;
scripts\cp\_analytics::func_93C7();
scripts\cp\_damage::func_F446(self,0);
func_12ED5();
self setclientomnvarbit("player_damaged",2,0);
}
//Function Number: 13
func_6610()
{
if(isdefined(level.var_A9FD))
{
[[ level.var_A9FD ]](self);
}
if(isdefined(level.laststand_enter_levelspecificaction))
{
[[ level.laststand_enter_levelspecificaction ]](self);
}
}
//Function Number: 14
func_6951()
{
if(isdefined(level.var_A9FF))
{
[[ level.var_A9FF ]](self);
}
}
//Function Number: 15
func_13701(param_00,param_01,param_02)
{
self endon("disconnect");
self endon("revive");
level endon("game_ended");
if(self_revive_activated())
{
return func_F1E5(self);
}
var_03 = 35;
if(scripts\cp\_utility::func_9BA0("coagulant"))
{
var_03 = 60;
scripts\cp\_utility::func_C151("coagulant");
}
if(scripts\cp\_utility::isplayingsolo() || level.only_one_player)
{
if(scripts\cp\_utility::has_zombie_perk("perk_machine_revive") && !isdefined(level.the_hoff_revive))
{
wait(5);
return 1;
}
}
else
{
param_02 = undefined;
}
if(!param_01)
{
thread func_CF17(var_03);
if(scripts\cp\_utility::isplayingsolo() || level.only_one_player)
{
func_1143C(self,1);
if(scripts\common\utility::istrue(level.the_hoff_revive))
{
func_F44B(self,35);
}
else
{
func_F44B(self,5);
}
}
else if(!scripts\common\utility::func_6E34("meph_fight") || scripts\common\utility::func_6E34("meph_fight") && !scripts\common\utility::flag("meph_fight"))
{
func_F44B(self,var_03);
}
else
{
var_03 = undefined;
}
}
if((scripts\cp\_utility::isplayingsolo() || level.only_one_player) && !isdefined(level.the_hoff_revive))
{
return func_13626(param_00,param_01);
}
return func_13679(self,self.origin,undefined,undefined,1,func_7B22(),(0.33,0.75,0.24),var_03,0,param_01,1,param_02);
}
//Function Number: 16
func_13703(param_00,param_01)
{
self endon("disconnect");
level endon("game_ended");
wait(0.5);
self notify("death");
scripts\common\utility::func_136F7();
func_DDE2(param_00);
if(isdefined(self.var_2B6A))
{
param_00 = self.var_2B6A;
self.var_2B6A = undefined;
}
if(func_9C2D(param_00))
{
var_02 = scripts\common\utility::func_5D14(param_00.origin,32,-64) + (0,0,5);
var_03 = param_00.angles;
}
else
{
var_02 = self.origin;
var_03 = self.angles;
}
func_4164(self);
self.var_1097A = 1;
foreach(var_05 in level.players)
{
if(var_05 == self)
{
continue;
}
var_06 = var_05 scripts\cp\_persistence::func_7B8B();
var_07 = int(var_06 * 0.1);
var_05 scripts\cp\_persistence::func_11445(var_07,1,"bleedoutPenalty");
}
var_09 = func_13679(self,var_02,undefined,undefined,0,func_7C95(),(1,0,0),undefined,1,param_01,0);
func_100C2(self);
self.var_1097A = undefined;
scripts\cp\_utility::func_12F19("playing");
self.var_72E2 = var_02;
self.var_72E0 = var_03;
if(isdefined(level.var_D869))
{
[[ level.var_D869 ]](self);
}
scripts\cp\_globallogic::func_108F2();
}
//Function Number: 17
func_DDE2(param_00)
{
scripts\cp\_persistence::func_666A("deaths",1);
scripts\cp\_challenge::func_12D9C("no_bleedout");
if(!func_9C2D(param_00))
{
lib_0A54::func_12E38(lib_0A54::func_7CE6(),"num_players_bleed_out");
scripts\cp\_analytics::func_93BE();
}
}
//Function Number: 18
func_13626(param_00,param_01)
{
if(param_01)
{
level waittill("forever");
func_4164(self);
return 0;
}
if(func_9C2D(param_00))
{
self setorigin(param_00.origin);
}
else
{
wait(5);
}
func_4164(self);
return 1;
}
//Function Number: 19
func_13679(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B)
{
var_0C = func_B2AE(param_00,param_01,param_02,param_03,param_04);
if(param_08)
{
thread func_661D(param_00,param_01,var_0C);
}
if(param_09)
{
level waittill("forever");
return 0;
}
var_0D = var_0C;
if(param_08)
{
var_0D = func_B2B0(param_00,var_0C);
}
if(param_0A)
{
var_0D func_B2AF(var_0D,param_00,param_06,param_07);
}
param_00.reviveent = var_0C;
param_00.var_E4AB = var_0D;
if(isdefined(level.wait_to_be_revived_func))
{
var_0E = [[ level.wait_to_be_revived_func ]](param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B);
if(isdefined(var_0E))
{
return var_0E;
}
}
if(param_0A)
{
var_0C thread func_AA1A(param_00,param_05);
}
if(isdefined(param_07))
{
var_0E = var_0C scripts\cp\_utility::func_1372C(param_07,var_0C,"revive_success",param_00,"force_bleed_out",param_00,"revive_success",param_00,"challenge_complete_revive");
}
else
{
var_0E = var_0D scripts\cp\_utility::func_1372D(var_0D,"revive_success",param_01,"challenge_complete_revive");
}
if(var_0E == "timeout" && func_9B79(param_00))
{
var_0E = var_0C scripts\common\utility::func_13734("revive_success","revive_fail");
}
if(var_0E == "revive_success" || var_0E == "challenge_complete_revive")
{
return 1;
}
return 0;
}
//Function Number: 20
func_AA1A(param_00,param_01)
{
self endon("death");
level endon("game_ended");
for(;;)
{
self makeusable();
self waittill("trigger",var_02);
self makeunusable();
if(!var_02 isonground())
{
continue;
}
if(var_02 ismeleeing())
{
continue;
}
if(!isplayer(var_02) && !scripts\common\utility::istrue(var_02.var_3842))
{
continue;
}
var_03 = func_80F0(var_02,param_00);
var_04 = int(param_01 / var_03);
var_05 = func_7C12(param_00,var_02,self.origin,var_04);
if(var_05)
{
if(isdefined(var_02.var_134FD))
{
if(param_00.var_134FD == "p4_" && soundexists(var_02.var_134FD + "respawn_laststand_valleygirl"))
{
var_02 thread scripts\cp\_vo::try_to_play_vo("respawn_laststand_valleygirl","zmb_comment_vo","medium",10,0,0,0,50);
param_00 thread scripts\cp\_vo::try_to_play_vo("respawn_laststand","zmb_comment_vo","medium",10,0,0,1,50);
}
else if(param_00.var_134FD == "p1_" && soundexists(var_02.var_134FD + "respawn_laststand_aj"))
{
var_02 thread scripts\cp\_vo::try_to_play_vo("respawn_laststand_aj","zmb_comment_vo","medium",10,0,0,0,50);
param_00 thread scripts\cp\_vo::try_to_play_vo("respawn_laststand","zmb_comment_vo","medium",10,0,0,1,50);
}
else if(level.script == "cp_town")
{
if(var_02.var_134FD == "p1_")
{
param_00 thread scripts\cp\_vo::try_to_play_vo("respawn_laststand_sally","town_comment_vo");
}
}
else
{
param_00 thread scripts\cp\_vo::try_to_play_vo("respawn_laststand","zmb_comment_vo","medium",10,0,0,1,50);
}
}
if(param_00 scripts\cp\_utility::func_9BA0("faster_revive_upgrade"))
{
param_00 scripts\cp\_utility::func_C151("faster_revive_upgrade");
}
var_02 playlocalsound("revive_teammate");
func_DDEA(var_02,param_00);
var_02 notify("revive_teammate",param_00);
if(isplayer(var_02) && scripts\common\utility::istrue(var_02.can_give_revive_xp))
{
var_02.can_give_revive_xp = 0;
var_02 scripts\cp\_persistence::give_player_xp(int(250),1);
}
break;
}
else
{
self notify("revive_fail");
continue;
}
}
func_4164(param_00);
self notify("revive_success");
}
//Function Number: 21
func_80F0(param_00,param_01)
{
if(scripts\common\utility::istrue(param_00.var_3842))
{
return 2;
}
var_02 = param_00 lib_0CFC::func_CA41();
if(param_01 scripts\cp\_utility::func_9BA0("faster_revive_upgrade"))
{
var_02 = var_02 * 2;
}
return var_02;
}
//Function Number: 22
func_B529(param_00,param_01)
{
func_992F(param_01);
func_DDEA(param_00,param_01);
}
//Function Number: 23
func_DDEA(param_00,param_01)
{
if(isplayer(param_00))
{
param_00 scripts\cp\_merits::func_D9AD("mt_reviver");
param_00 scripts\cp\_persistence::increment_player_career_revives(param_00);
param_00 scripts\cp\_merits::func_D9AD("mt_revives");
param_00 scripts\cp\_persistence::func_666A("revives",1);
param_01 thread scripts\cp\_hud_message::func_10151("revived",undefined,param_00);
if(isdefined(level.var_E4A4))
{
[[ level.var_E4A4 ]](param_00);
}
}
}
//Function Number: 24
func_B2AE(param_00,param_01,param_02,param_03,param_04)
{
var_05 = (0,0,20);
param_01 = scripts\common\utility::func_5D14(param_01 + var_05,32,-64);
var_06 = spawn("script_model",param_01);
var_06 setcursorhint("HINT_NOICON");
var_06 sethintstring(&"PLATFORM_REVIVE");
var_06.var_222 = param_00;
var_06.var_9B04 = 0;
var_06.var_336 = "revive_trigger";
if(isdefined(param_02))
{
var_06 setmodel(param_02);
}
if(isdefined(param_03))
{
var_06 scriptmodelplayanim(param_03);
}
if(param_04)
{
var_06 linkto(param_00,"tag_origin",var_05,(0,0,0));
}
var_06 thread func_4110(param_00);
return var_06;
}
//Function Number: 25
func_B2B0(param_00,param_01)
{
var_02 = (0,0,30);
var_03 = spawn("script_model",param_01.origin + var_02);
var_03 thread func_4110(param_00);
return var_03;
}
//Function Number: 26
func_B4DC(param_00,param_01)
{
if(scripts\cp\_utility::isplayingsolo() || level.only_one_player)
{
return func_10400(param_00,param_01);
}
return func_4628(param_01);
}
//Function Number: 27
func_10400(param_00,param_01)
{
if(param_00 && func_9C2D(param_01))
{
return 0;
}
return 1;
}
//Function Number: 28
func_4628(param_00)
{
if(func_9C2D(param_00))
{
return 0;
}
return 1;
}
//Function Number: 29
func_C553()
{
if(scripts\common\utility::istrue(self.var_9D81))
{
wait(0.5);
}
var_00 = func_7A72();
if(self hasweapon(var_00))
{
self takeweapon(var_00);
}
scripts\cp\_utility::func_12C6(var_00,scripts\cp\_utility::func_7D72(self,var_00),0,1);
var_01 = ["iw7_knife_zm","iw7_knife_zm_hoff","iw7_knife_zm_jock","iw7_knife_zm_vgirl","iw7_knife_zm_rapper","iw7_knife_zm_nerd","iw7_knife_zm_wyler","iw7_knife_zm_schoolgirl","iw7_knife_zm_scientist","iw7_knife_zm_soldier","iw7_knife_zm_rebel","iw7_knife_zm_elvira","iw7_knife_zm_crowbar","iw7_knife_zm_cleaver","iw7_knife_zm_chola","iw7_knife_zm_raver","iw7_knife_zm_grunge","iw7_knife_zm_hiphop","iw7_knife_zm_kevinsmith","iw7_knife_zm_disco"];
var_02 = func_3868(self);
if(var_02)
{
var_01[var_01.size] = var_00;
}
func_1420(var_01);
var_03 = func_7B40();
if(var_02)
{
var_04 = self method_80FB(var_00);
var_05 = weaponclipsize(var_00);
self setweaponammostock(var_00,var_05 * var_03);
self setweaponammoclip(var_00,var_05);
self method_83B6(var_00);
}
}
//Function Number: 30
func_7B40()
{
return 2;
}
//Function Number: 31
func_7A72()
{
if(isdefined(self.var_A913))
{
return self.var_A913;
}
var_00 = self.var_501C;
var_01 = self getweaponslistprimaries()[0];
if(scripts\cp\_utility::func_7DF7(var_00) == scripts\cp\_utility::func_7DF7(var_01))
{
return var_01;
}
return var_00;
}
//Function Number: 32
func_3868(param_00)
{
if(isdefined(level.var_3869))
{
return [[ level.var_3869 ]](param_00);
}
return 1;
}
//Function Number: 33
func_4110(param_00)
{
self endon("death");
param_00 scripts\common\utility::waittill_any_3("death","disconnect","revive");
self delete();
}
//Function Number: 34
func_E026(param_00,param_01)
{
if(!isdefined(param_01))
{
return;
}
param_01.var_E49F = scripts\common\utility::func_22A9(param_01.var_E49F,param_00);
}
//Function Number: 35
func_500D()
{
func_970D(self);
}
//Function Number: 36
func_9730(param_00)
{
self endon("death");
self endon("disconnect");
level endon("game_ended");
wait(5);
var_01 = func_7A71();
}
//Function Number: 37
func_82E0(param_00,param_01)
{
if(!isdefined(param_01))
{
param_01 = 1;
}
var_02 = param_00 func_7A71() + param_01;
func_F44A(param_00,var_02);
}
//Function Number: 38
func_1143C(param_00,param_01)
{
if(!isdefined(param_01))
{
param_01 = 1;
}
var_02 = param_00 func_7A71() - param_01;
func_F44A(param_00,max(var_02,0));
}
//Function Number: 39
func_7682(param_00)
{
if(param_00 self_revive_activated())
{
return 0;
}
if((scripts\cp\_utility::isplayingsolo() || level.only_one_player) && param_00 scripts\cp\_utility::has_zombie_perk("perk_machine_revive") || scripts\common\utility::istrue(level.the_hoff_revive))
{
return 0;
}
if(scripts\cp\_utility::isplayingsolo() || level.only_one_player)
{
return func_103FF(param_00);
}
return func_4624(param_00);
}
//Function Number: 40
func_103FF(param_00)
{
if(player_in_laststand(param_00))
{
return 0;
}
return param_00 func_7A71() == 0;
}
//Function Number: 41
func_4624(param_00)
{
return func_68BE(param_00);
}
//Function Number: 42
func_68BE(param_00)
{
foreach(var_02 in level.players)
{
if(var_02 == param_00)
{
continue;
}
if(!player_in_laststand(var_02))
{
return 0;
}
}
return 1;
}
//Function Number: 43
func_7C12(param_00,param_01,param_02,param_03)
{
var_04 = func_4A2D(param_02);
var_04 thread func_4110(param_00);
var_05 = func_E4A6(param_00,param_01,var_04,param_03);
return var_05;
}
//Function Number: 44
func_4A2D(param_00)
{
var_01 = spawn("script_origin",param_00);
var_01.var_4B30 = 0;
var_01.var_130EE = 0;
var_01.userate = 8000;
var_01.var_9B04 = 0;
return var_01;
}
//Function Number: 45
func_CF17(param_00)
{
self endon("disconnect");
self endon("revive");
level endon("game_ended");
scripts\cp\_utility::func_CF16();
wait(param_00 / 3);
scripts\cp\_utility::func_CF16();
wait(param_00 / 3);
thread scripts\cp\_vo::try_to_play_vo("laststand_bleedout","zmb_comment_vo","low",10,0,0,1,100);
scripts\cp\_utility::func_CF16();
}
//Function Number: 46
func_661D(param_00,param_01,param_02)
{
param_00 endon("disconnect");
level endon("game_ended");
if(isdefined(param_00.var_3AF5))
{
param_00.var_3AF5 destroy();
}
param_00.var_8B69 = 0;
func_660A();
func_37C0(param_00,param_01,param_02);
func_6943();
}
//Function Number: 47
func_37C0(param_00,param_01,param_02)
{
param_02 endon("revive_success");
var_03 = (0,0,30);
var_04 = (0,0,100);
var_05 = (0,0,400);
var_06 = 2;
var_07 = 0.6;
var_08 = 0.6;
var_09 = param_01 + var_03;
var_0A = bullettrace(var_09,var_09 + var_04,0,param_00);
var_0B = var_0A["position"];
var_0A = bullettrace(var_0B,var_0B + var_05,0,param_00);
var_0C = var_0A["position"];
var_0D = spawn("script_model",var_0B);
var_0D setmodel("tag_origin");
var_0D.angles = vectortoangles((0,0,-1));
var_0D thread func_4110(param_00);
param_00 cameralinkto(var_0D,"tag_origin");
var_0D moveto(var_0C,var_06,var_07,var_08);
var_0D waittill("movedone");
var_0D delete();
param_00 func_6609(param_00);
}
//Function Number: 48
func_6609(param_00)
{
func_8E6C(param_00);
if(isdefined(level.var_CF91))
{
param_00 [[ level.var_CF91 ]](param_00);
return;
}
param_00 scripts\cp\_globallogic::func_662C();
}
//Function Number: 49
func_660A()
{
self method_8232();
self freezecontrols(1);
self.zoom_out_camera = 1;
}
//Function Number: 50
func_6943()
{
self cameraunlink();
self freezecontrols(0);
self.zoom_out_camera = undefined;
}
//Function Number: 51
func_E4A6(param_00,param_01,param_02,param_03)
{
if(isdefined(param_01.var_134FD))
{
if(param_00.var_134FD == "p1_" && soundexists(param_01.var_134FD + "reviving_valleygirl"))
{
param_01 thread scripts\cp\_vo::try_to_play_vo("reviving_valleygirl","zmb_comment_vo");
}
else if(param_00.var_134FD == "p1_" && soundexists(param_01.var_134FD + "reviving_sally"))
{
param_01 thread scripts\cp\_vo::try_to_play_vo("reviving_sally","zmb_comment_vo");
}
else
{
param_01 thread scripts\cp\_vo::try_to_play_vo("reviving","zmb_comment_vo");
}
}
func_661A(param_00,param_01,param_02,param_03);
if(!isdefined(level.the_hoff) || isdefined(level.the_hoff) && param_01 != level.the_hoff)
{
func_CDE3(param_01,param_00);
}
thread func_135D1(param_00,param_01,param_02,param_01 scripts\cp\_utility::getvalidtakeweapon());
param_00.var_E4AD = param_01;
var_04 = 0;
var_05 = 0;
func_621E(param_00,param_01);
if(isplayer(param_01))
{
param_00 notify("reviving");
}
while(func_FF85(param_01))
{
if(var_04 >= param_03)
{
var_05 = 1;
break;
}
var_06 = var_04 / param_03;
func_12E15(param_00,param_01,var_06);
var_04 = var_04 + 50;
scripts\common\utility::func_136F7();
}
func_555D(param_00,param_01);
param_02 notify("use_hold_think_complete");
param_02 waittill("exit_use_hold_think_complete");
return var_05;
}
//Function Number: 52
func_CDE3(param_00,param_01)
{
if(scripts\common\utility::istrue(param_00.hasentanglerequipped))
{
return;
}
param_00 giveweapon("iw7_gunless_zm");
param_00 switchtoweapon("iw7_gunless_zm");
param_00 allowmelee(0);
param_00 method_80AB();
param_00 method_846F(get_revive_gesture(param_00),param_01);
}
//Function Number: 53
func_11038(param_00,param_01)
{
if(scripts\common\utility::istrue(param_00.hasentanglerequipped))
{
return;
}
param_00 takeweapon("iw7_gunless_zm");
param_00 enableweaponswitch();
param_00 switchtoweapon(param_01);
param_00 allowmelee(1);
param_00 stopgestureviewmodel(get_revive_gesture(param_00));
}
//Function Number: 54
get_revive_gesture(param_00)
{
if(isdefined(param_00.revive_gesture))
{
return param_00.revive_gesture;
}
return "ges_zombies_revive_nerd";
}
//Function Number: 55
func_12E15(param_00,param_01,param_02)
{
foreach(var_04 in level.players)
{
if(var_04 == param_00 || var_04 == param_01)
{
var_04 setclientomnvar("ui_securing_progress",param_02);
continue;
}
var_04 setclientomnvar("zm_revive_bar_" + param_00.var_E4A3 + "_progress",param_02);
}
}
//Function Number: 56
func_661A(param_00,param_01,param_02,param_03)
{
param_00 setclientomnvar("ui_securing",4);
param_01 setclientomnvar("ui_securing",3);
param_00.var_2A85 = 1;
if(isplayer(param_01))
{
param_01 playerlinkto(param_02);
param_01 playerlinkedoffsetenable();
param_01 scripts\cp\powers\coop_powers::func_D728();
param_01 thread func_CDDC(param_01);
}
param_01.var_9F28 = 1;
}
//Function Number: 57
func_135D1(param_00,param_01,param_02,param_03)
{
scripts\common\utility::func_1372B(param_02,"use_hold_think_complete",param_00,"disconnect",param_00,"revive_success",param_00,"force_bleed_out",param_01,"challenge_complete",param_00,"death");
if(scripts\cp\_utility::func_9F19(param_00))
{
param_00.var_2A85 = 0;
param_00 setclientomnvar("ui_securing",0);
}
param_01.var_9F28 = 0;
if(isplayer(param_01))
{
param_01 func_11038(param_01,param_03);
param_01 setclientomnvar("ui_securing",0);
param_01 scripts\cp\powers\coop_powers::func_D72E();
param_01 unlink();
param_01 notify("stop_revive");
}
param_02 notify("exit_use_hold_think_complete");
}
//Function Number: 58
func_CDDC(param_00)
{
param_00 endon("disconnect");
param_00 endon("stop_playing_revive_anim");
param_00 playanimscriptevent("power_active_cp","gesture015");
}
//Function Number: 59
func_FF85(param_00)
{
if(scripts\common\utility::istrue(param_00.var_3842))
{
return 1;
}
return !level.var_7669 && scripts\cp\_utility::func_9F19(param_00) && param_00 usebuttonpressed() && !player_in_laststand(param_00);
}
//Function Number: 60
func_1420(param_00)
{
var_01 = self getweaponslistall();
foreach(var_03 in var_01)
{
if(scripts\common\utility::func_2286(param_00,var_03))
{
continue;
}
else if(!scripts\cp\_utility::isstrstart(var_03,"alt_"))
{
self takeweapon(var_03);
}
}
}
//Function Number: 61
func_9C2D(param_00)
{
return isdefined(param_00);
}
//Function Number: 62
func_F44A(param_00,param_01)
{
param_01 = int(param_01);
param_00 setplayerdata("cp","alienSession","last_stand_count",param_01);
}
//Function Number: 63
func_F44B(param_00,param_01)
{
param_00 setclientomnvar("zm_ui_laststand_end_milliseconds",gettime() + param_01 * 1000);
}
//Function Number: 64
func_4164(param_00)
{
param_00 setclientomnvar("zm_ui_laststand_end_milliseconds",0);
}
//Function Number: 65
func_992F(param_00)
{
param_00 notify("revive_success");
if(isdefined(param_00.reviveent))
{
param_00.reviveent notify("revive_success");
}
if(func_9B79(param_00))
{
func_555D(param_00,param_00.var_E4AD);
}
func_4164(param_00);
}
//Function Number: 66
func_F579(param_00,param_01)
{
if(isdefined(param_00))
{
level.var_C092 = param_00;
}
if(isdefined(param_01))
{
level.var_1097D = param_01;
}
}
//Function Number: 67
func_7B22()
{
if(isdefined(level.var_C092))
{
return level.var_C092;
}
return 5000;
}
//Function Number: 68
func_7C95()
{
if(isdefined(level.var_1097D))
{
return level.var_1097D;
}
return 6000;
}
//Function Number: 69
func_12ED5()
{
self [[ level.var_BC70 ]]();
}
//Function Number: 70
func_78F8(param_00)
{
if(isdefined(level.var_A9FB))
{
return [[ level.var_A9FB ]](param_00);
}
return 500;
}
//Function Number: 71
func_B2AF(param_00,param_01,param_02,param_03)
{
func_FA27(param_00);
param_00.var_4BA5 = param_02;
param_00 thread func_E4AC(param_00);
var_04 = undefined;
foreach(var_06 in level.players)
{
if(var_06 == param_01)
{
continue;
}
var_04 = func_100F6(param_00,var_06);
func_177C(param_00,var_04);
}
if(isdefined(param_03))
{
param_00 thread func_E49B(param_03);
}
return var_04;
}
//Function Number: 72
func_100F6(param_00,param_01)
{
var_02 = newclienthudelem(param_01);
var_02 setshader("waypoint_alien_revive",8,8);
var_02 setwaypoint(1,1);
var_02 settargetent(param_00);
var_02.alpha = func_7C11(param_01);
var_02.color = param_00.var_4BA5;
func_1774(param_01,var_02);
var_02 thread func_E4AA(param_00,param_01);
return var_02;
}
//Function Number: 73
func_E4AC(param_00)
{
param_00 waittill("death");
func_E02A(param_00);
}
//Function Number: 74
func_E4AA(param_00,param_01)
{
scripts\cp\_utility::func_1372D(param_00,"death",param_01,"disconnect");
func_E026(self,param_01);
if(isdefined(self))
{
self destroy();
}
}
//Function Number: 75
func_E49B(param_00)
{
self endon("death");
level endon("game_ended");
wait(param_00 / 3);
func_F578(self,(1,0.941,0));
wait(param_00 / 3);
func_F578(self,(0.929,0.231,0.141));
}
//Function Number: 76
func_F578(param_00,param_01)
{
param_00.var_4BA5 = param_01;
param_00.var_E49F = scripts\common\utility::func_22BC(param_00.var_E49F);
foreach(var_03 in param_00.var_E49F)
{
var_03.color = param_01;
}
}
//Function Number: 77
func_9654()
{
level.var_E49C = [];
level.var_D407 = [];
level thread func_E49E();
}
//Function Number: 78
func_177D(param_00)
{
level.var_E49C[level.var_E49C.size] = param_00;
}
//Function Number: 79
func_E02A(param_00)
{
level.var_E49C = scripts\common\utility::func_22A9(level.var_E49C,param_00);
level.var_E49C = scripts\common\utility::func_22BC(level.var_E49C);
}
//Function Number: 80
func_E49E()
{
level endon("game_ended");
for(;;)
{
level waittill("connected",var_00);
foreach(var_02 in level.var_E49C)
{
func_100F6(var_02,var_00);
}
foreach(var_05 in level.var_D407)
{
if(isdefined(var_05))
{
var_00 setclientomnvar("zm_revive_bar_" + var_05.var_E4A3 + "_target",var_05);
}
}
}
}
//Function Number: 81
func_FA27(param_00)
{
param_00.var_E49F = [];
func_177D(param_00);
}
//Function Number: 82
func_177C(param_00,param_01)
{
param_00.var_E49F[param_00.var_E49F.size] = param_01;
}
//Function Number: 83
func_970D(param_00)
{
param_00.var_E49F = [];
}
//Function Number: 84
func_1774(param_00,param_01)
{
param_00.var_E49F[param_00.var_E49F.size] = param_01;
}
//Function Number: 85
func_E028(param_00,param_01)
{
param_00.var_E49F = scripts\common\utility::func_22A9(param_00.var_E49F,param_01);
}
//Function Number: 86
func_7C11(param_00)
{
if(isdefined(level.var_E49D))
{
return [[ level.var_E49D ]](param_00);
}
return 1;
}
//Function Number: 87
func_100C2(param_00)
{
foreach(var_02 in param_00.var_E49F)
{
var_02.alpha = 1;
}
}
//Function Number: 88
func_8E6C(param_00)
{
foreach(var_02 in param_00.var_E49F)
{
var_02.alpha = 0;
}
}
//Function Number: 89
func_621E(param_00,param_01)
{
var_02 = func_1775(param_00);
var_03 = "zm_revive_bar_" + var_02 + "_target";
foreach(var_05 in level.players)
{
if(var_05 == param_00 || var_05 == param_01)
{
continue;
}
var_05 setclientomnvar(var_03,param_00);
}
}
//Function Number: 90
func_555D(param_00,param_01)
{
var_02 = "zm_revive_bar_" + param_00.var_E4A3 + "_target";
func_E029(param_00);
foreach(var_04 in level.players)
{
if(var_04 == param_00 || var_04 == param_01)
{
continue;
}
var_04 setclientomnvar(var_02,undefined);
}
}
//Function Number: 91
self_revive_activated()
{
return isdefined(self.var_F1E5) && self.var_F1E5 > 0;
}
//Function Number: 92
func_1775(param_00)
{
var_01 = 0;
while(var_01 < 2)
{
if(!isdefined(level.var_D407[var_01]))
{
level.var_D407[var_01] = param_00;
var_02 = var_01 + 1;
param_00.var_E4A3 = var_02;
return var_02;
}
var_02++;
}
}
//Function Number: 93
func_E029(param_00)
{
for(var_01 = 0;var_01 < 2;var_01++)
{
if(isdefined(level.var_D407[var_01]) && level.var_D407[var_01] == param_00)
{
level.var_D407[var_01] = undefined;
param_00.var_E4A3 = undefined;
return;
}
}
}
//Function Number: 94
func_4F33()
{
return 0;
}
//Function Number: 95
func_8C50()
{
return scripts\common\utility::istrue(self.have_self_revive);
}
//Function Number: 96
func_7A71()
{
return self getplayerdata("cp","alienSession","last_stand_count");
}
//Function Number: 97
func_9B79(param_00)
{
return scripts\common\utility::istrue(param_00.var_2A85);
}
//Function Number: 98
player_in_laststand(param_00)
{
return param_00.inlaststand;
}
//Function Number: 99
func_6235(param_00)
{
if(!isdefined(param_00.var_F1E5))
{
param_00.var_F1E5 = 0;
}
param_00.var_F1E5++;
}
//Function Number: 100
func_557F(param_00)
{
param_00.var_F1E5--;
}
//Function Number: 101
func_F1E5(param_00)
{
param_00 scripts\common\utility::waittill_any_timeout_1(3,"revive_success");
return 1;
}
//Function Number: 102
give_fists_if_no_real_weapon(param_00)
{
if(has_no_real_weapon(param_00))
{
var_01 = get_fists_weapon(param_00);
if(var_01 != "iw7_fists_zm" && param_00 hasweapon("iw7_fists_zm"))
{
param_00 takeweapon("iw7_fists_zm");
}
self giveweapon(var_01);
self method_83B6(var_01);
if(is_valid_spawn_weapon(var_01))
{
self method_833B(var_01,1);
}
}
}
//Function Number: 103
get_fists_weapon(param_00)
{
if(isdefined(level.get_fists_weapon_func))
{
return [[ level.get_fists_weapon_func ]](param_00);
}
return "iw7_fists_zm";
}
//Function Number: 104
is_valid_spawn_weapon(param_00)
{
if(isdefined(level.is_valid_spawn_weapon_func))
{
return [[ level.is_valid_spawn_weapon_func ]](param_00);
}
return 1;
}
//Function Number: 105
has_no_real_weapon(param_00)
{
var_01 = param_00 getweaponslistall();
foreach(var_03 in var_01)
{
if(var_03 == "super_default_zm")
{
continue;
}
if(issubstr(var_03,"knife"))
{
continue;
}
if(var_03 == "iw7_fists_zm")
{
continue;
}
return 0;
}
return 1;
}