mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-07 17:17:50 -05:00
651 lines
15 KiB
Plaintext
651 lines
15 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: 3386.gsc
|
|
* Game: Call of Duty: Infinite Warfare
|
|
* Platform: PC
|
|
* Function Count: 21
|
|
* Decompile Time: 19 ms
|
|
* Timestamp: 10/27/2023 12:26:53 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
func_94F0()
|
|
{
|
|
scripts\common\utility::flag_init("arcade_race_pregame");
|
|
scripts\common\utility::flag_init("afterlife_race_pregame");
|
|
var_00 = scripts\common\utility::getstructarray("game_race","script_noteworthy");
|
|
var_01 = 2;
|
|
var_02 = 3;
|
|
foreach(var_04 in var_00)
|
|
{
|
|
var_04 thread func_9701(var_00);
|
|
}
|
|
|
|
level thread func_5555(var_01,var_02);
|
|
level.var_DBB4 = ["iw7_horseracepistol_zm_blue","iw7_horseracepistol_zm_yellow","iw7_horseracepistol_zm_red","iw7_horseracepistol_zm_green"];
|
|
}
|
|
|
|
//Function Number: 2
|
|
func_9701(param_00)
|
|
{
|
|
var_01 = getentarray(self.target,"targetname");
|
|
foreach(var_03 in var_01)
|
|
{
|
|
if(isdefined(var_03.script_noteworthy) && var_03.script_noteworthy == "horse")
|
|
{
|
|
self.var_9098 = var_03;
|
|
continue;
|
|
}
|
|
|
|
if(var_03.classname == "script_model")
|
|
{
|
|
self.var_870F = var_03;
|
|
continue;
|
|
}
|
|
|
|
if(var_03.classname == "trigger_damage")
|
|
{
|
|
self.var_325F = var_03;
|
|
continue;
|
|
}
|
|
|
|
if(scripts\common\utility::string_starts_with(var_03.classname,"scriptable"))
|
|
{
|
|
self.var_7542 = var_03;
|
|
}
|
|
}
|
|
|
|
self.var_9098.var_C38F = self.var_9098.origin;
|
|
self.var_870F.var_C38F = self.var_870F.origin;
|
|
self.var_870F.var_C378 = self.var_870F.angles;
|
|
if(scripts\cp\_interaction::func_9A3A(self) && !isdefined(level.var_DBB8))
|
|
{
|
|
thread func_DBB7(param_00);
|
|
}
|
|
}
|
|
|
|
//Function Number: 3
|
|
func_DBB7(param_00)
|
|
{
|
|
level.var_DBB8 = 1;
|
|
for(;;)
|
|
{
|
|
var_01 = level scripts\common\utility::waittill_any_return_no_endon_death_3("power_on",self.var_D71C + " power_on","power_off");
|
|
if(var_01 != "power_off")
|
|
{
|
|
setomnvar("zombie_arcade_race_power",1);
|
|
foreach(var_03 in param_00)
|
|
{
|
|
var_03.var_D776 = 1;
|
|
}
|
|
|
|
var_05 = getent("arcade_zz_neon_light","targetname");
|
|
var_05 setmodel("zmb_theater_sign_05");
|
|
continue;
|
|
}
|
|
|
|
setomnvar("zombie_arcade_race_power",0);
|
|
foreach(var_03 in param_00)
|
|
{
|
|
var_03.var_D776 = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 4
|
|
func_13003(param_00,param_01)
|
|
{
|
|
if(param_01 getstance() != "stand")
|
|
{
|
|
param_01 scripts\cp\_interaction::func_9A3C(param_00,&"COOP_INTERACTIONS_MUST_BE_STANDING");
|
|
return;
|
|
}
|
|
|
|
param_01 notify("cancel_sentry");
|
|
param_01 notify("cancel_medusa");
|
|
param_01 notify("cancel_trap");
|
|
param_01 notify("cancel_boombox");
|
|
param_01 notify("cancel_revocator");
|
|
param_01 notify("cancel_ims");
|
|
param_01 notify("cancel_gascan");
|
|
scripts\cp\_interaction::remove_from_current_interaction_list(param_00);
|
|
if(!scripts\common\utility::istrue(param_01.in_afterlife_arcade))
|
|
{
|
|
while(param_01 getcurrentprimaryweapon() == "none" || param_01 method_81C2())
|
|
{
|
|
wait(0.1);
|
|
}
|
|
}
|
|
|
|
param_01 notify("cancel_sentry");
|
|
param_01 notify("cancel_medusa");
|
|
param_01 notify("cancel_trap");
|
|
param_01 notify("cancel_boombox");
|
|
param_01 notify("cancel_revocator");
|
|
param_01 notify("cancel_ims");
|
|
param_01 notify("cancel_gascan");
|
|
level.var_13BD4 = level.wave_num;
|
|
param_01 playlocalsound("arcade_insert_coin_02");
|
|
scripts\common\utility::func_5127(0.2,::scripts\common\utility::play_sound_in_space,"arcade_horserace_gunshot",param_01.origin);
|
|
if(param_00.var_EE04 == "arcade")
|
|
{
|
|
if(!scripts\common\utility::flag("arcade_race_pregame"))
|
|
{
|
|
scripts\common\utility::flag_set("arcade_race_pregame");
|
|
level notify("race_used");
|
|
level thread func_DBB2("arcade",param_00);
|
|
}
|
|
|
|
level thread func_D24B(param_01,param_00,"arcade");
|
|
scripts\cp\zombies\zombie_analytics::func_AF8C("game_race",param_01);
|
|
return;
|
|
}
|
|
|
|
if(param_00.var_EE04 == "afterlife")
|
|
{
|
|
if(!scripts\common\utility::flag("afterlife_race_pregame"))
|
|
{
|
|
scripts\common\utility::flag_set("afterlife_race_pregame");
|
|
level thread func_DBB2("afterlife",param_00);
|
|
}
|
|
|
|
level thread func_D24B(param_01,param_00,"afterlife");
|
|
scripts\cp\zombies\zombie_analytics::func_AF8C("game_race",param_01);
|
|
}
|
|
}
|
|
|
|
//Function Number: 5
|
|
func_E1F4(param_00,param_01)
|
|
{
|
|
var_02 = scripts\common\utility::getstructarray("game_race","script_noteworthy");
|
|
var_03 = [];
|
|
foreach(var_05 in var_02)
|
|
{
|
|
if(var_05.var_EE04 == param_00)
|
|
{
|
|
var_03[var_03.size] = var_05;
|
|
}
|
|
}
|
|
|
|
foreach(var_05 in var_03)
|
|
{
|
|
if(param_00 == "afterlife")
|
|
{
|
|
var_05.var_9098 moveto(var_05.var_9098.var_C38F + (-0.25,0,0),1);
|
|
continue;
|
|
}
|
|
|
|
var_05.var_9098 moveto(var_05.var_9098.var_C38F + (0,0.25,0),1);
|
|
}
|
|
|
|
if(param_01.origin != param_01.var_C38F)
|
|
{
|
|
thread scripts\common\utility::play_sound_in_space("arcade_horserace_reset",param_01.origin);
|
|
}
|
|
|
|
param_01 moveto(param_01.var_C38F,1);
|
|
}
|
|
|
|
//Function Number: 6
|
|
func_DBB2(param_00,param_01)
|
|
{
|
|
var_02 = getentarray("pace_horse","script_noteworthy");
|
|
var_03 = scripts\common\utility::getclosest(param_01.origin,var_02,500);
|
|
if(!isdefined(var_03.var_C38F))
|
|
{
|
|
var_03.var_C38F = var_03.origin;
|
|
}
|
|
|
|
level thread func_E1F4(param_00,var_03);
|
|
wait(1);
|
|
level thread func_E1EE(param_00);
|
|
for(var_04 = 3;var_04 > 0;var_04--)
|
|
{
|
|
setomnvar("zombie_" + param_00 + "_race_countdown",var_04);
|
|
wait(1);
|
|
}
|
|
|
|
setomnvar("zombie_" + param_00 + "_race_countdown",-1);
|
|
var_05 = scripts\common\utility::getstructarray("game_race","script_noteworthy");
|
|
foreach(var_07 in var_05)
|
|
{
|
|
if(var_07.var_EE04 != param_00)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
scripts\cp\_interaction::remove_from_current_interaction_list(var_07);
|
|
}
|
|
|
|
thread func_FBEB(param_01);
|
|
level notify(param_00 + "race_starting");
|
|
switch(var_03.var_EE79)
|
|
{
|
|
case "x":
|
|
var_03 movex(120,10);
|
|
break;
|
|
|
|
case "-x":
|
|
var_03 movex(-120,10);
|
|
break;
|
|
|
|
case "y":
|
|
var_03 movey(120,10);
|
|
break;
|
|
|
|
case "-y":
|
|
var_03 movey(-120,10);
|
|
break;
|
|
}
|
|
|
|
wait(1);
|
|
setomnvar("zombie_" + param_00 + "_race_countdown",0);
|
|
wait(9.1);
|
|
level notify(param_00 + "_pace_horse_finished");
|
|
scripts\common\utility::func_6E2A(param_00 + "_race_pregame");
|
|
thread func_FBEA(param_01);
|
|
wait(3);
|
|
var_05 = scripts\common\utility::getstructarray("game_race","script_noteworthy");
|
|
foreach(var_07 in var_05)
|
|
{
|
|
if(var_07.var_EE04 != param_00)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_07.var_870F show();
|
|
scripts\cp\_interaction::add_to_current_interaction_list(var_07);
|
|
}
|
|
}
|
|
|
|
//Function Number: 7
|
|
func_E1EE(param_00)
|
|
{
|
|
var_01 = scripts\common\utility::getstructarray("game_race","script_noteworthy");
|
|
var_02 = [];
|
|
foreach(var_04 in var_01)
|
|
{
|
|
if(var_04.var_EE04 == param_00)
|
|
{
|
|
var_02[var_02.size] = var_04;
|
|
}
|
|
}
|
|
|
|
foreach(var_04 in var_02)
|
|
{
|
|
var_04.var_7542 setscriptablepartstate("game_light","off");
|
|
var_04.var_7542 setscriptablepartstate("light_fx","off");
|
|
scripts\common\utility::func_136F7();
|
|
}
|
|
}
|
|
|
|
//Function Number: 8
|
|
func_D24B(param_00,param_01,param_02)
|
|
{
|
|
var_03 = undefined;
|
|
param_00.var_D7AB = param_00 scripts\cp\zombies\arcade_game_utility::func_EB76(param_00);
|
|
param_00 setclientomnvar("zombie_arcade_game_time",1);
|
|
param_00 setclientomnvar("zombie_zz_widget",1);
|
|
scripts\common\utility::func_136F7();
|
|
param_01.var_278 = 0;
|
|
param_01.var_870F hide();
|
|
var_04 = strtok(param_01.var_870F.model,"_");
|
|
var_05 = var_04[var_04.size - 1];
|
|
foreach(var_07 in level.var_DBB4)
|
|
{
|
|
var_08 = strtok(var_07,"_");
|
|
if(var_08[var_08.size - 1] == var_05)
|
|
{
|
|
var_03 = var_07;
|
|
break;
|
|
}
|
|
}
|
|
|
|
param_00 scripts\cp\zombies\arcade_game_utility::func_11447();
|
|
param_00 giveweapon(var_03);
|
|
param_00 switchtoweapon(var_03);
|
|
param_00 scripts\common\utility::func_1C76(0);
|
|
param_00 scripts\common\utility::func_1C6E(0);
|
|
param_00 thread func_DBB5(param_00,param_01,var_03,::func_E219);
|
|
param_00 thread func_DBB6(param_00,param_01,var_03,::func_E219);
|
|
param_00 scripts\cp\_utility::func_1C5D(0);
|
|
param_00 thread func_DBB1(param_01,param_00,param_02,var_03);
|
|
param_00 thread func_D2D9(param_01,param_02,var_03);
|
|
param_00 thread func_D047(param_01,param_02,var_03);
|
|
}
|
|
|
|
//Function Number: 9
|
|
func_D2D9(param_00,param_01,param_02)
|
|
{
|
|
self endon("too_far_from_game");
|
|
level waittill(param_01 + "race_starting");
|
|
param_00.var_325F setcandamage(1);
|
|
param_00.var_325F.health = 999999;
|
|
var_03 = gettime();
|
|
self.var_4B87 = param_00;
|
|
level endon(param_01 + "_pace_horse_finished");
|
|
if(isdefined(level.start_zombie_zoom_func))
|
|
{
|
|
param_00 thread [[ level.start_zombie_zoom_func ]](param_00,self);
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
param_00.var_325F waittill("damage",var_04,var_05);
|
|
param_00.var_325F.health = 999999;
|
|
if(var_05 != self)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_06 = var_05 getcurrentweapon();
|
|
if(var_06 != param_02)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
switch(param_00.var_9098.var_EE79)
|
|
{
|
|
case "x":
|
|
param_00.var_9098 movex(2.2,0.1);
|
|
break;
|
|
|
|
case "-x":
|
|
param_00.var_9098 movex(-2.2,0.1);
|
|
break;
|
|
|
|
case "y":
|
|
param_00.var_9098 movey(2.2,0.1);
|
|
break;
|
|
|
|
case "-y":
|
|
param_00.var_9098 movey(-2.2,0.1);
|
|
break;
|
|
}
|
|
|
|
if(distance2d(param_00.var_9098.var_C38F,param_00.var_9098.origin) + 2 >= 120)
|
|
{
|
|
param_00.var_7542 setscriptablepartstate("game_light","on");
|
|
param_00.var_7542 setscriptablepartstate("light_fx","on");
|
|
var_07 = param_01 == "afterlife";
|
|
if(!var_07)
|
|
{
|
|
level notify("update_arcade_game_performance","zombie_zoom",gettime() - var_03);
|
|
}
|
|
|
|
func_830E(self,var_07,100);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 10
|
|
func_D047(param_00,param_01,param_02)
|
|
{
|
|
self endon("arcade_game_over_for_player");
|
|
self endon("last_stand");
|
|
self endon("spawned");
|
|
self endon("disconnect");
|
|
level waittill(param_01 + "_pace_horse_finished");
|
|
if(!scripts\cp\_utility::func_213E())
|
|
{
|
|
scripts\cp\_utility::func_1C5D(1);
|
|
}
|
|
|
|
self setclientomnvar("zombie_arcade_game_time",-1);
|
|
self setclientomnvar("zombie_zz_widget",0);
|
|
self takeweapon(param_02);
|
|
if(!scripts\common\utility::func_9FBE())
|
|
{
|
|
scripts\common\utility::func_1C6E(1);
|
|
}
|
|
|
|
scripts\common\utility::func_1C76(1);
|
|
scripts\cp\zombies\arcade_game_utility::func_82F5(self);
|
|
scripts\cp\zombies\arcade_game_utility::func_E2CB();
|
|
self notify("arcade_game_over_for_player");
|
|
}
|
|
|
|
//Function Number: 11
|
|
func_DBB1(param_00,param_01,param_02,param_03)
|
|
{
|
|
level endon(param_02 + "_pace_horse_finished");
|
|
param_01 endon("arcade_game_over_for_player");
|
|
param_01 endon("disconnect");
|
|
for(;;)
|
|
{
|
|
param_01 setweaponammoclip(param_03,10);
|
|
wait(0.1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 12
|
|
func_E219(param_00,param_01)
|
|
{
|
|
param_01 setclientomnvar("zombie_arcade_game_time",-1);
|
|
param_01 setclientomnvar("zombie_zz_widget",0);
|
|
wait(3);
|
|
if(!param_01 scripts\cp\_utility::func_213E())
|
|
{
|
|
param_01 scripts\cp\_utility::func_1C5D(1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 13
|
|
func_FF2B(param_00,param_01)
|
|
{
|
|
if(param_01 && !scripts\common\utility::istrue(param_00.in_afterlife_arcade))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 14
|
|
func_830E(param_00,param_01,param_02)
|
|
{
|
|
if(param_01)
|
|
{
|
|
if(scripts\common\utility::istrue(param_00.in_afterlife_arcade))
|
|
{
|
|
scripts\cp\zombies\zombie_analytics::func_AF6E(1,param_00,level.var_13BD4,self.var_4B87.name,1,param_02,param_00.pers["timesPerWave"].var_11930[level.var_13BD4][self.var_4B87.name]);
|
|
param_00 scripts\cp\zombies\zombie_afterlife_arcade::func_8334(param_00,param_02);
|
|
return;
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
scripts\cp\zombies\zombie_analytics::func_AF6E(1,param_00,level.var_13BD4,self.var_4B87.name,0,param_02,param_00.pers["timesPerWave"].var_11930[level.var_13BD4][self.var_4B87.name]);
|
|
param_00 scripts\cp\zombies\arcade_game_utility::func_8317(param_00,param_02);
|
|
}
|
|
|
|
//Function Number: 15
|
|
func_7A4F(param_00)
|
|
{
|
|
return "Shoot the center of the target!";
|
|
}
|
|
|
|
//Function Number: 16
|
|
func_DBB3(param_00,param_01)
|
|
{
|
|
if(param_00.var_E1B9 && !param_00.var_D776)
|
|
{
|
|
if(isdefined(level.needspowerstring))
|
|
{
|
|
return level.needspowerstring;
|
|
}
|
|
else
|
|
{
|
|
return &"COOP_INTERACTIONS_REQUIRES_POWER";
|
|
}
|
|
}
|
|
|
|
if(param_00.var_EE04 == "afterlife")
|
|
{
|
|
param_00.cost = 0;
|
|
return &"COOP_INTERACTIONS_PLAY_GAME";
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(param_00.out_of_order))
|
|
{
|
|
return &"CP_ZMB_INTERACTIONS_MACHINE_OUT_OF_ORDER";
|
|
}
|
|
|
|
return level.interaction_hintstrings[param_00.script_noteworthy];
|
|
}
|
|
|
|
//Function Number: 17
|
|
func_FBEB(param_00)
|
|
{
|
|
var_01 = scripts\common\utility::getstructarray("zombiezoom_sound","targetname");
|
|
if(var_01.size > 0)
|
|
{
|
|
var_02 = scripts\common\utility::getclosest(param_00.origin,var_01);
|
|
if(param_00.var_EE04 == "arcade" && !isdefined(level.var_2118))
|
|
{
|
|
level.var_2118 = spawn("script_origin",var_02.origin);
|
|
}
|
|
else if(param_00.var_EE04 != "arcade" && !isdefined(level.var_18E6))
|
|
{
|
|
level.var_18E6 = spawn("script_origin",var_02.origin);
|
|
}
|
|
|
|
playsoundatpos(var_02.origin,"arcade_horserace_bell_start");
|
|
wait(0.2);
|
|
playsoundatpos(var_02.origin,"mus_arcade_horserace_bugle");
|
|
wait(0.1);
|
|
}
|
|
|
|
if(param_00.var_EE04 == "arcade")
|
|
{
|
|
level.var_2118 playloopsound("arcade_horserace_crowd_lp");
|
|
return;
|
|
}
|
|
|
|
level.var_18E6 playloopsound("arcade_horserace_crowd_lp");
|
|
}
|
|
|
|
//Function Number: 18
|
|
func_FBEA(param_00)
|
|
{
|
|
if(param_00.var_EE04 == "arcade")
|
|
{
|
|
level.var_2118 stoploopsound();
|
|
}
|
|
else
|
|
{
|
|
level.var_18E6 stoploopsound();
|
|
}
|
|
|
|
thread scripts\common\utility::play_sound_in_space("arcade_horserace_bell_end",param_00.origin);
|
|
}
|
|
|
|
//Function Number: 19
|
|
func_DBB5(param_00,param_01,param_02,param_03)
|
|
{
|
|
param_00 endon("arcade_game_over_for_player");
|
|
var_04 = param_00 scripts\common\utility::func_13734("disconnect","last_stand","spawned");
|
|
if(var_04 == "disconnect")
|
|
{
|
|
param_01.var_163D = undefined;
|
|
}
|
|
else
|
|
{
|
|
[[ param_03 ]](param_01,param_00);
|
|
param_00 takeweapon(param_02);
|
|
param_00 scripts\common\utility::func_1C76(1);
|
|
if(!param_00 scripts\common\utility::func_9FBE())
|
|
{
|
|
param_00 scripts\common\utility::func_1C6E(1);
|
|
}
|
|
}
|
|
|
|
param_00 notify("arcade_game_over_for_player");
|
|
}
|
|
|
|
//Function Number: 20
|
|
func_DBB6(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
param_00 endon("arcade_game_over_for_player");
|
|
param_00 endon("last_stand");
|
|
param_00 endon("disconnect");
|
|
param_00 endon("spawned");
|
|
var_05 = 576;
|
|
for(;;)
|
|
{
|
|
wait(0.1);
|
|
if(distancesquared(param_00.origin,param_01.origin) > var_05)
|
|
{
|
|
param_00 playlocalsound("purchase_deny");
|
|
wait(1);
|
|
if(distancesquared(param_00.origin,param_01.origin) > var_05)
|
|
{
|
|
if(isdefined(param_02))
|
|
{
|
|
param_00 takeweapon(param_02);
|
|
}
|
|
|
|
[[ param_03 ]](param_01,param_00);
|
|
param_01.var_163D = undefined;
|
|
param_00 scripts\common\utility::func_1C76(1);
|
|
if(!param_00 scripts\common\utility::func_9FBE())
|
|
{
|
|
param_00 scripts\common\utility::func_1C6E(1);
|
|
}
|
|
|
|
param_00 scripts\cp\zombies\arcade_game_utility::func_82F5(param_00);
|
|
param_00 scripts\cp\zombies\arcade_game_utility::func_E2CB();
|
|
param_00 notify("too_far_from_game");
|
|
param_00 notify("arcade_game_over_for_player");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 21
|
|
func_5555(param_00,param_01)
|
|
{
|
|
level.var_2119 = 0;
|
|
var_02 = randomintrange(param_00,param_01);
|
|
for(;;)
|
|
{
|
|
level waittill("race_used");
|
|
level.var_2119++;
|
|
if(level.var_2119 == var_02)
|
|
{
|
|
var_02 = randomintrange(param_00,param_01);
|
|
var_03 = scripts\common\utility::getstructarray("game_race","script_noteworthy");
|
|
foreach(var_05 in var_03)
|
|
{
|
|
if(var_05.var_EE04 != "arcade")
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_05.out_of_order = 1;
|
|
}
|
|
|
|
level scripts\common\utility::waittill_any_3("regular_wave_starting","event_wave_starting");
|
|
level.var_2119 = 0;
|
|
foreach(var_05 in var_03)
|
|
{
|
|
if(var_05.var_EE04 != "arcade")
|
|
{
|
|
continue;
|
|
}
|
|
|
|
foreach(var_09 in level.players)
|
|
{
|
|
if(isdefined(var_09.var_A8D3) && var_09.var_A8D3 == var_05)
|
|
{
|
|
var_09 thread scripts\cp\_interaction::func_DE6E();
|
|
}
|
|
}
|
|
|
|
var_05.out_of_order = 0;
|
|
}
|
|
}
|
|
}
|
|
} |