Added AW, BO2, Ghosts, IW, MWR, WW2 Scripts

This commit is contained in:
InfinityLoader
2023-10-27 03:49:01 -04:00
parent d559c1d414
commit fbfff3c275
5072 changed files with 3221958 additions and 0 deletions

View File

@ -0,0 +1,360 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\_blackholegun.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 20
* Decompile Time: 672 ms
* Timestamp: 10/27/2023 12:23:28 AM
*******************************************************************/
//Function Number: 1
init()
{
level.var_2ABE = [];
}
//Function Number: 2
func_2A7B()
{
return 1;
}
//Function Number: 3
func_1109A()
{
}
//Function Number: 4
func_B8B1(param_00,param_01)
{
self endon("disconnect");
var_02 = scripts\common\trace::func_48BC(0,1,1,1,1,0,0);
var_03 = param_01.origin;
var_04 = anglestoforward(param_01.angles);
var_05 = var_03 + var_04 * 1920;
var_06 = function_0287(var_03,var_05,var_02,param_01,1,"physicsquery_closest");
var_07 = isdefined(var_06) && var_06.size > 0;
if(var_07)
{
var_08 = var_06[0]["position"];
var_09 = distance(var_08,var_03);
var_0A = vectornormalize(var_03 - var_08);
var_0B = var_08 + var_0A * 80;
}
else
{
var_09 = 1920;
var_0A = anglestoforward(var_03.angles);
var_0B = var_06;
var_08 = undefined;
}
var_0C = distance(var_0B,var_03);
if(var_0C < 90)
{
var_0D = 1;
wait(0.3);
if(isdefined(param_01))
{
param_01 delete();
return;
}
return;
}
var_0E = max(var_0C / 980,1.05);
var_0F = spawn("script_model",var_03);
var_0F setmodel("prop_mp_super_blackholegun_projectile");
var_0F method_831F(self);
var_0F moveto(var_0B,var_0E,0.1,0.95);
var_0F.var_222 = param_01.var_222;
var_0F setscriptmoverkillcam("rocket");
var_10 = var_0F.var_222 scripts\cp\_utility::func_1302("blackholegun_indicator_zm",self.origin,(0,0,0));
var_10.var_13C2E = "blackholegun_indicator_zm";
var_10 linkto(var_0F);
var_0F thread func_BA0A(var_0E,self,var_10,var_02);
param_01.var_222 thread lib_0D04::grabclosestzombies(var_0F,1);
var_0F setscriptablepartstate("projectile","on",0);
waittillframeend;
param_01 delete();
}
//Function Number: 5
func_BA0A(param_00,param_01,param_02,param_03)
{
self endon("blackhole_projectile_impact");
self endon("death");
thread func_DA5F(param_01,param_02);
wait(param_00);
self notify("blackhole_projectile_arrive");
thread func_DA5E(param_02,param_03);
}
//Function Number: 6
func_DA5E(param_00,param_01)
{
self endon("death");
self notify("projectile_arrived");
func_410E();
var_02 = function_0287(self.origin,self.origin - (0,0,42),param_01,undefined,1,"physicsquery_closest");
var_03 = isdefined(var_02) && var_02.size > 0;
if(var_03)
{
var_04 = var_02[0]["position"];
self.origin = var_04 + (0,0,42);
}
var_05 = undefined;
var_06 = undefined;
self setscriptablepartstate("singularity","singularity",0);
thread func_13A45(var_05);
thread func_10213();
wait(3);
thread func_10212(self.var_222,var_05,var_06,param_00);
}
//Function Number: 7
func_C836(param_00)
{
self endon("death");
param_00 waittill("disconnect");
self delete();
}
//Function Number: 8
func_B29C(param_00)
{
var_01 = function_02AF(self.var_222,"bhgunfield_mp",self.origin);
var_01 linkto(self);
return var_01;
}
//Function Number: 9
func_10213()
{
self endon("death");
var_00 = 0.6;
var_01 = 0.0466;
for(var_02 = 0;var_02 < 5;var_02++)
{
earthquake(var_02 + 1 * var_01,var_00 * 2,self.origin,800);
wait(var_00);
}
}
//Function Number: 10
func_12896(param_00,param_01,param_02,param_03)
{
var_04 = function_0287(self.origin,param_01,param_03,self,0,"physicsquery_closest");
var_05 = !isdefined(var_04) && var_04.size > 0;
if(var_05)
{
param_00 dodamage(param_02,self.origin,self.var_222,self,"MOD_EXPLOSIVE","iw7_blackholegun_mp");
}
}
//Function Number: 11
func_13A45(param_00)
{
self endon("death");
self endon("blackhole_die");
self.var_222 endon("disconnect");
var_01 = scripts\common\trace::func_48BC(0,1,1,0,1,0);
var_02 = 5898.24;
for(;;)
{
foreach(var_04 in scripts\cp\_agent_utils::func_7DB0("axis"))
{
if(!isdefined(var_04))
{
continue;
}
if(!scripts\cp\_utility::func_9F19(var_04))
{
continue;
}
if(!lib_0D12::func_213D(self,var_04))
{
continue;
}
if(!level.var_740A && var_04 != self.var_222 && var_04.team != self.var_222.team)
{
continue;
}
if(distancesquared(var_04 geteye(),self.origin) > var_02)
{
continue;
}
func_12896(var_04,var_04 geteye(),1200,var_01);
}
wait(0.2);
}
}
//Function Number: 12
func_13A38(param_00,param_01)
{
self endon("death");
self endon("blackhole_projectile_arrive");
self.var_222 endon("disconnect");
wait(0.1);
var_02 = spawn("trigger_radius",self.origin - (0,0,32),0,24,64);
var_02 enablelinkto();
var_02 linkto(self);
var_02 thread func_411E(self);
for(;;)
{
var_02 waittill("trigger",var_03);
if(var_03 == self.var_222)
{
continue;
}
if(!isplayer(var_03) && !isagent(var_03))
{
continue;
}
if(!scripts\cp\_utility::func_9F19(var_03))
{
continue;
}
if(!lib_0D12::func_213D(self,var_03))
{
continue;
}
var_04 = var_03;
if(!level.var_740A && var_04 != self.var_222 && var_04.team != self.var_222.team)
{
continue;
}
self notify("blackhole_projectile_impact");
var_03 dodamage(var_03.maxhealth,self.origin,self.var_222,self,"MOD_EXPLOSIVE","iw7_blackholegun_mp");
self moveto(self.origin,0.05,0,0);
thread func_DA5E(param_00,param_01);
break;
}
}
//Function Number: 13
func_10212(param_00,param_01,param_02,param_03)
{
self setscriptablepartstate("singularity","explosion",0);
self radiusdamage(self.origin,150,2000,500,self.var_222,"MOD_EXPLOSIVE","iw7_blackholegun_mp");
self notify("singularity_explode");
self notify("blackhole_die");
thread func_4118(param_01,param_02,param_03);
}
//Function Number: 14
func_10833(param_00)
{
var_01 = physics_volumecreate(self.origin,384);
var_01 method_852C(1,self.origin,param_00);
var_01 method_8526(1);
var_01.time = gettime();
level.var_2ABE scripts\common\utility::func_22BC(level.var_2ABE);
var_02 = undefined;
var_03 = 0;
for(var_04 = 0;var_04 < 3;var_04++)
{
var_05 = level.var_2ABE[var_04];
if(!isdefined(var_05))
{
var_03 = var_04;
break;
}
else if(!isdefined(var_02) || isdefined(var_02) && var_02.time > var_05.time)
{
var_02 = var_05;
var_03 = var_04;
}
}
if(isdefined(var_02))
{
var_02 delete();
}
level.var_2ABE[var_03] = var_01;
var_01 thread func_2B42();
return var_01;
}
//Function Number: 15
func_2B42()
{
self endon("death");
self method_8529(1);
scripts\common\utility::func_136F7();
self method_8529(0);
}
//Function Number: 16
func_411E(param_00)
{
param_00 scripts\common\utility::waittill_any_3("death","blackhole_projectile_arrive","blackhole_projectile_impact");
self delete();
}
//Function Number: 17
func_4118(param_00,param_01,param_02)
{
if(isdefined(param_01))
{
param_01 delete();
}
if(isdefined(param_00))
{
param_00 delete();
}
if(isdefined(param_02))
{
param_02 delete();
}
self setscriptablepartstate("singularity","off",0);
self delete();
}
//Function Number: 18
func_DA5F(param_00,param_01)
{
self endon("death");
self endon("projectile_arrived");
param_00 waittill("disconnect");
func_410E();
if(isdefined(param_01))
{
param_01 delete();
}
self delete();
}
//Function Number: 19
func_410E()
{
self setscriptablepartstate("projectile","off",0);
}
//Function Number: 20
func_10211(param_00,param_01,param_02,param_03)
{
self endon("death");
param_01 waittill("disconnect");
thread func_4118(param_00,param_02,param_03);
}

View File

@ -0,0 +1,614 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\_challenge.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 32
* Decompile Time: 1076 ms
* Timestamp: 10/27/2023 12:23:29 AM
*******************************************************************/
//Function Number: 1
init_coop_challenge()
{
func_956D();
if(!isdefined(level.challenge_scalar_func))
{
level.challenge_scalar_func = ::func_4FE2;
}
func_97B0();
}
//Function Number: 2
func_C9B9()
{
[[ level.challenge_pause_func ]]();
}
//Function Number: 3
func_956D()
{
scripts\common\utility::flag_init("pause_challenges");
var_00 = getdvar("ui_mapname");
level.var_13F16 = "cp/zombies/" + var_00 + "_challenges.csv";
if(!tableexists(level.var_13F16))
{
level.var_13F16 = undefined;
}
level.var_3C17 = [];
if(isdefined(level.challenge_registration_func))
{
[[ level.challenge_registration_func ]]();
}
level.var_4B4C = -1;
level.var_4B51 = -1;
level.var_4B50 = -1;
level.var_4B4E = -1;
level.var_4B53 = -1;
level.var_4B54 = -1;
level.var_4B52 = -1;
level.var_4B55 = -1;
level.var_4B4F = 0;
level.var_1BE8 = 1;
level.var_D7B7 = 0;
level.var_C1E1 = 0;
level.var_110AC = 0;
}
//Function Number: 4
func_12D9C(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
{
if(!func_4B4D(param_00) || !scripts\cp\_utility::func_462B("challenge"))
{
return;
}
if(level.var_D7B7)
{
return;
}
var_0A = level.var_3C17[level.var_4B4A];
var_0A thread [[ var_0A.var_12E9C ]](param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09);
}
//Function Number: 5
func_62C6()
{
if(func_4B4B() && scripts\cp\_utility::func_462B("challenge"))
{
func_4DAE();
}
}
//Function Number: 6
func_4DAE()
{
if(!func_4B4B())
{
return;
}
var_00 = level.var_3C17[level.var_4B4A];
func_12BF7();
if(var_00 [[ var_00.var_9F82 ]]())
{
func_56AD("challenge_success",0);
var_00 [[ var_00.var_E4C5 ]]();
var_01 = "challenge";
if(isdefined(level.var_3C24))
{
var_01 = level.var_3C24;
}
lib_0A54::func_12E13(var_01,"challenge_complete");
scripts\cp\_persistence::func_12DDB(1);
scripts\cp\_analytics::func_12D9F(var_00.var_DE3F,1);
if(func_9F17(var_00))
{
if(level.var_4B54 - level.var_110AD <= 0.01)
{
scripts\cp\zombies\zombie_analytics::func_AF63(var_00.var_DE3F,level.wave_num,level.var_110AD - level.var_4B54);
}
else
{
scripts\cp\zombies\zombie_analytics::func_AF63(var_00.var_DE3F,level.wave_num,level.var_4B54);
}
foreach(var_03 in level.players)
{
var_03 thread scripts\cp\_vo::try_to_play_vo("challenge_success_generic","zmb_comment_vo");
}
level.var_C1E1++;
}
}
else
{
func_56AD("challenge_failed",0);
if(func_9F17(var_00))
{
if(isdefined(level.var_3C2B[var_00.var_DE3F]) && func_9F17(var_00))
{
level.var_3C2B[var_00.var_DE3F]++;
}
if(var_00.var_DE3F == "no_laststand" || var_00.var_DE3F == "no_bleedout" || var_00.var_DE3F == "protect_player")
{
scripts\cp\zombies\zombie_analytics::func_AF64(var_00.var_DE3F,level.wave_num,0,level.var_3C2B[var_00.var_DE3F]);
}
else
{
scripts\cp\zombies\zombie_analytics::func_AF64(var_00.var_DE3F,level.wave_num,var_00.var_4BA0 / var_00.var_155 * 100,level.var_3C2B[var_00.var_DE3F]);
}
foreach(var_03 in level.players)
{
if(!scripts\cp\_utility::isplayingsolo() && level.players.size > 1)
{
scripts\cp\_vo::try_to_play_vo_on_all_players("challenge_fail_team");
continue;
}
var_03 thread scripts\cp\_vo::try_to_play_vo("challenge_fail_solo","zmb_comment_vo");
}
}
var_00 [[ var_00.var_6AD0 ]]();
level.var_1BE8 = 0;
scripts\cp\_persistence::func_12DDB(0);
scripts\cp\_analytics::func_12D9F(var_00.var_DE3F,0);
}
level notify("challenge_deactivated");
var_00 [[ var_00.var_4DDE ]]();
}
//Function Number: 7
func_9F17(param_00)
{
switch(param_00.var_DE3F)
{
case "challenge_success":
case "challenge_failed":
case "next_challenge":
return 0;
default:
return 1;
}
}
//Function Number: 8
func_15D7(param_00)
{
var_01 = level.var_3C17[param_00];
if(!isdefined(level.var_3C2B[param_00]) && param_00 != "next_challenge")
{
level.var_3C2B[param_00] = 0;
}
if(var_01 [[ var_01.var_386E ]]())
{
var_02 = func_7897(param_00);
if(isdefined(var_02))
{
level.var_3C17[param_00].var_155 = var_02;
level.var_4B52 = var_02;
}
else
{
level.var_4B52 = -1;
}
func_56AD(param_00,1,var_02);
func_F31A(param_00);
level.var_4B4F = 0;
var_01 [[ var_01.var_1609 ]]();
return;
}
var_01 [[ var_01.var_6ACB ]]();
}
//Function Number: 9
func_7897(param_00)
{
return [[ level.challenge_scalar_func ]](param_00);
}
//Function Number: 10
func_3C15()
{
level endon("game_ended");
var_00 = int(gettime() + 5000);
foreach(var_02 in level.players)
{
var_02 setclientomnvar("ui_intel_title",1);
}
level.var_4B55 = 1;
wait(5);
foreach(var_02 in level.players)
{
var_02 setclientomnvar("ui_intel_title",-1);
}
level.var_4B55 = -1;
wait(0.5);
}
//Function Number: 11
func_56AD(param_00,param_01,param_02)
{
var_03 = tablelookup(level.var_13F16,1,param_00,0);
foreach(var_05 in level.players)
{
if(param_01)
{
if(isdefined(param_02))
{
var_05 setclientomnvar("ui_intel_challenge_scalar",param_02);
var_05 setclientomnvar("ui_intel_progress_max",param_02);
}
else
{
var_05 setclientomnvar("ui_intel_challenge_scalar",-1);
}
var_05 setclientomnvar("ui_intel_prechallenge",1);
var_05 setclientomnvar("ui_intel_active_index",int(var_03));
level.var_4B4C = int(var_03);
level.var_4B4F = 1;
if(param_00 == "next_challenge")
{
var_05 playlocalsound("zmb_challenge_config");
}
else
{
var_05 playlocalsound("zmb_challenge_start");
}
var_05 setclientomnvar("zm_show_challenge",4);
level.var_4BD3 = 4;
}
}
if(param_01)
{
return;
}
if(level.var_4BD3 != 2 && level.var_4BD3 != 3 && level.var_4BD3 != 4)
{
level thread func_100CB(param_00,var_03);
}
}
//Function Number: 12
func_100CB(param_00,param_01)
{
level endon("game_ended");
wait(1);
foreach(var_03 in level.players)
{
if(param_00 == "challenge_failed")
{
var_03 playlocalsound("zmb_challenge_fail");
var_03 setclientomnvar("zm_show_challenge",2);
level.var_4BD3 = 2;
continue;
}
var_03 playlocalsound("zmb_challenge_complete");
var_03 setclientomnvar("zm_show_challenge",3);
level.var_4BD3 = 3;
}
wait(3);
foreach(var_03 in level.players)
{
var_03 thread func_E20D();
}
setomnvar("zm_challenge_progress",0);
level.var_4B4C = -1;
level.var_4B51 = -1;
level.var_4B50 = -1;
level.var_4B4E = -1;
level.var_4B53 = -1;
level.var_4B54 = -1;
level.var_4B52 = -1;
level.var_4B4F = 0;
}
//Function Number: 13
func_E20D()
{
wait(0.5);
self setclientomnvar("ui_intel_active_index",-1);
self setclientomnvar("ui_intel_progress_current",-1);
self setclientomnvar("ui_intel_progress_max",-1);
self setclientomnvar("ui_intel_percent",-1);
self setclientomnvar("ui_intel_target_player",-1);
self setclientomnvar("ui_intel_prechallenge",0);
self setclientomnvar("ui_intel_timer",-1);
self setclientomnvar("ui_intel_challenge_scalar",-1);
}
//Function Number: 14
func_DEA1(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A)
{
var_0B = spawnstruct();
var_0B.var_DE3F = param_00;
var_0B.var_155 = param_01;
var_0B.var_5021 = param_02;
var_0B.var_9F82 = ::func_4FFA;
if(isdefined(param_03))
{
var_0B.var_9F82 = param_03;
}
var_0B.var_386E = ::func_4FDD;
if(isdefined(param_04))
{
var_0B.var_386E = param_04;
}
var_0B.var_1609 = param_05;
var_0B.var_4DDE = param_06;
var_0B.var_6ACB = ::func_4FED;
if(isdefined(param_07))
{
var_0B.var_6ACB = param_07;
}
var_0B.var_12E9C = param_08;
var_0B.var_E4C5 = ::func_5011;
if(isdefined(param_09))
{
var_0B.var_E4C5 = param_09;
}
var_0B.var_6AD0 = ::func_4FEE;
if(isdefined(param_0A))
{
var_0B.var_6AD0 = param_0A;
}
level.var_3C17[param_00] = var_0B;
}
//Function Number: 15
func_12D9E(param_00,param_01)
{
if(scripts\common\utility::flag("pause_challenges"))
{
return;
}
foreach(var_03 in level.players)
{
var_03 setclientomnvar("zm_show_challenge",1);
var_03 setclientomnvar("ui_intel_progress_current",param_00);
level.var_4BD3 = 1;
}
setomnvar("zm_challenge_progress",param_00 / param_01);
level.var_4B51 = param_01;
level.var_4B50 = param_00;
}
//Function Number: 16
func_4FDD()
{
return 1;
}
//Function Number: 17
func_4FED()
{
}
//Function Number: 18
func_4FFA()
{
if(isdefined(self.var_111AE))
{
return self.var_111AE;
}
return 0;
}
//Function Number: 19
func_5022()
{
if(isdefined(self.var_111AE))
{
return self.var_111AE;
}
return self.var_5021;
}
//Function Number: 20
func_4FEE()
{
}
//Function Number: 21
func_5010()
{
self.var_111AE = self.var_5021;
}
//Function Number: 22
func_5011()
{
}
//Function Number: 23
func_4B4B()
{
return isdefined(level.var_4B4A);
}
//Function Number: 24
func_4B4D(param_00)
{
return func_4B4B() && level.var_4B4A == param_00;
}
//Function Number: 25
func_12BF7()
{
level.var_4B4A = undefined;
}
//Function Number: 26
func_F31A(param_00)
{
level.var_4B4A = param_00;
scripts\cp\zombies\zombie_analytics::func_AF62(level.var_4B4A,level.wave_num);
level.var_110AC = gettime() / 1000;
}
//Function Number: 27
func_7B31()
{
if(!isdefined(level.var_C1E1))
{
return 0;
}
return level.var_C1E1;
}
//Function Number: 28
func_97B0()
{
if(!isdefined(level.var_13F16))
{
return;
}
var_00 = level.var_13F16;
var_01 = 0;
var_02 = 1;
var_03 = 99;
var_04 = 1;
var_05 = 2;
var_06 = 6;
var_07 = 7;
var_08 = 8;
for(var_09 = var_02;var_09 <= var_03;var_09++)
{
var_0A = tablelookup(var_00,var_01,var_09,var_04);
if(var_0A == "")
{
break;
}
var_0B = tablelookup(var_00,var_01,var_09,var_05);
var_0C = tablelookup(var_00,var_01,var_09,var_08);
if(isdefined(level.var_3C17[var_0A]))
{
level.var_3C17[var_0A].var_1C81 = var_0B;
level.var_3C17[var_0A].var_1C8C = int(tablelookup(var_00,var_01,var_09,var_06));
level.var_3C17[var_0A].var_1649 = strtok(var_0C," ");
}
}
}
//Function Number: 29
func_4FE2(param_00)
{
return 1;
}
//Function Number: 30
func_12DA9(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
{
if(scripts\common\utility::istrue(self.var_54CB))
{
return;
}
if(!isdefined(level.var_4B4A))
{
return;
}
var_09 = level.var_4B4A;
if(isdefined(level.custom_death_challenge_func))
{
var_0A = self [[ level.custom_death_challenge_func ]](param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
if(!scripts\common\utility::istrue(var_0A))
{
return;
}
}
}
//Function Number: 31
func_12DA5(param_00)
{
level endon("stop_challenge_timer");
level endon("game_ended");
level endon("challenge_deactivated");
self endon("success");
var_01 = 0;
var_02 = level.var_4B54;
while(level.var_4B54 > 0)
{
wait(0.1);
if(scripts\common\utility::flag("pause_challenges"))
{
foreach(var_04 in level.players)
{
var_04 setclientomnvar("ui_intel_timer",-1);
var_04 setclientomnvar("zm_show_challenge",10);
}
scripts\common\utility::func_6E5A("pause_challenges");
var_06 = int(gettime() + level.var_4B54 * 1000);
foreach(var_04 in level.players)
{
var_04 setclientomnvar("ui_intel_timer",var_06);
var_04 setclientomnvar("zm_show_challenge",level.var_4BD3);
}
}
level.var_4B54 = level.var_4B54 - 0.1;
if(isdefined(param_00))
{
func_12D9E(int(var_02 - level.var_4B54),int(var_02));
}
}
}
//Function Number: 32
func_5026(param_00)
{
level endon("game_ended");
level endon("challenge_deactivated");
self endon("success");
var_01 = param_00;
while(var_01 > 0)
{
wait(0.1);
if(scripts\common\utility::flag("pause_challenges"))
{
continue;
}
var_01 = var_01 - 0.1;
}
self.var_111AE = self.var_5021;
level thread func_4DAE();
}

View File

@ -0,0 +1,67 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\_createfx.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 4
* Decompile Time: 168 ms
* Timestamp: 10/27/2023 12:23:30 AM
*******************************************************************/
//Function Number: 1
func_49B4()
{
level.var_74CF = ::scripts\common\utility::func_1352A;
level.var_74D0 = ::func_74D0;
level.var_74CC = ::scripts\common\fx::func_B059;
level.var_74CD = ::scripts\common\fx::func_C51A;
level.var_74C5 = ::scripts\common\fx::func_4917;
level.var_74D3 = ::scripts\common\createfx::func_E2AB;
level.var_74D2 = ::scripts\common\createfx::func_D978;
level.var_74CE = ::func_74CE;
level.var_BD5D = 1;
level.var_3768 = ::scripts\common\utility::func_1352A;
level.var_375F = ::scripts\common\utility::func_1352A;
level.var_3761 = ::scripts\common\utility::func_1352A;
level.callbackplayerdamage = ::scripts\common\utility::func_1352A;
level.var_3763 = ::scripts\common\utility::func_1352A;
level.var_375C = ::scripts\common\utility::func_1352A;
level.var_3764 = ::scripts\common\utility::func_1352A;
level.var_375F = ::func_374C;
level.var_3766 = ::scripts\common\utility::func_1352A;
thread scripts\common\createfx::func_74C7();
scripts\common\createfx::func_49B9();
level waittill("eternity");
}
//Function Number: 2
func_74D0(param_00)
{
return level.player.origin;
}
//Function Number: 3
func_374C()
{
self waittill("begin");
if(!isdefined(level.player))
{
var_00 = getentarray("mp_global_intermission","classname");
self spawn(var_00[0].origin,var_00[0].angles);
scripts\cp\_utility::func_12F19("playing","");
self.maxhealth = 10000000;
self.health = 10000000;
level.player = self;
thread scripts\common\createfx::func_49CB();
return;
}
kick(self getentitynumber());
}
//Function Number: 4
func_74CE()
{
var_00 = level.var_11B7.var_D2C7 / 190;
level.player setmovespeedscale(var_00);
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,796 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\_endgame.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 28
* Decompile Time: 1031 ms
* Timestamp: 10/27/2023 12:23:32 AM
*******************************************************************/
//Function Number: 1
init()
{
func_DEB3();
}
//Function Number: 2
endgame(param_00,param_01)
{
if(func_7668())
{
return;
}
function_01BD(1);
level thread kill_all_zombies();
func_B37C();
level notify("game_ended",param_00);
func_7384(1,"cg_fovScale",1);
if(param_01 == 4)
{
wait(4.9);
}
var_02 = 0;
foreach(var_04 in level.players)
{
var_04 stoplocalsound("zmb_laststand_music");
if(var_04 issplitscreenplayer())
{
if(var_04 issplitscreenplayerprimary())
{
if(soundexists("mus_zombies_gameover"))
{
var_04 playlocalsound("mus_zombies_gameover");
}
}
continue;
}
if(soundexists("mus_zombies_gameover"))
{
var_04 playlocalsound("mus_zombies_gameover");
}
}
level.ingraceperiod = 0;
setomnvar("allow_server_pause",0);
scripts\common\utility::func_136F7();
level.var_118DB = get_time_survived();
setomnvar("zm_time_survived",level.var_118DB);
setomnvarforallclients("post_game_state",1);
setdvar("g_deadChat",1);
setdvar("ui_allow_teamchange",0);
setdvar("bg_compassShowEnemies",0);
setdvar("scr_gameended",1);
function_01AF(0);
setomnvar("zm_ui_timer",0);
scripts\cp\_challenge::func_4DAE();
foreach(var_04 in level.players)
{
func_40A5(var_04);
}
level.var_2AAD = 1;
foreach(var_09 in level.var_1900)
{
if(isdefined(var_09.var_9D25) && var_09.var_9D25)
{
var_09.var_180 = 1;
var_09 scripts\cp\_utility::func_61CD();
}
}
setomnvarforallclients("post_game_state",0);
var_0B = func_FF5E(param_01);
if(isdefined(var_0B))
{
if(isdefined(level.var_ADDF))
{
[[ level.var_ADDF ]](param_01);
}
func_ADDE(var_0B);
return;
}
else
{
}
lib_0A54::func_36FD(1);
if(isdefined(level.var_D7BB))
{
[[ level.var_D7BB ]]();
}
if(!scripts\cp\_utility::is_codxp())
{
foreach(var_04 in level.players)
{
var_04 setclientdvar("ui_opensummary",1);
}
}
setomnvarforallclients("post_game_state",2);
func_56DA(param_00,param_01);
setomnvarforallclients("post_game_state",1);
var_0E = ::scripts\cp\_globallogic::func_108DD;
if(isdefined(level.var_4C58))
{
var_0E = level.var_4C58;
}
if(!scripts\cp\_utility::is_codxp())
{
foreach(var_04 in level.players)
{
var_04 thread [[ var_0E ]](param_01);
}
}
var_11 = func_7978(param_01);
var_12 = func_7B85();
scripts\cp\zombies\direct_boss_fight::adjust_wave_num(var_11);
scripts\cp\_analytics::endgame(var_11,var_12);
if(scripts\cp\zombies\direct_boss_fight::should_directly_go_to_boss_fight())
{
if(param_01 == 1)
{
setomnvar("zm_boss_splash",5);
}
else
{
setomnvar("zm_boss_splash",6);
}
}
setomnvarforallclients("post_game_state",4);
wait(11);
setomnvarforallclients("post_game_state",1);
level notify("exitLevel_called");
exitlevel(0);
}
//Function Number: 3
get_time_survived()
{
if(isdefined(level.calculate_time_survived_func))
{
return [[ level.calculate_time_survived_func ]]();
}
return int(gettime() - level.var_10DFF / 1000);
}
//Function Number: 4
kill_all_zombies()
{
wait(1);
var_00 = scripts\cp\_agent_utils::func_7DB0("axis");
foreach(var_02 in var_00)
{
var_02.var_180 = 1;
var_02.var_EF64 = 1;
var_02 method_8286(getclosestpointonnavmesh(var_02.origin));
if(!isdefined(var_02.agent_type))
{
continue;
}
if(var_02.agent_type == "zombie_grey")
{
continue;
}
if(scripts\common\utility::istrue(var_02.entered_playspace))
{
continue;
}
switch(var_02.agent_type)
{
case "zombie_cop":
case "zombie_ghost":
case "zombie_brute":
case "zombie_clown":
break;
case "generic_zombie":
playfx(level._effect["head_loss"],var_02 gettagorigin("j_head"));
var_02 setscriptablepartstate("head","detached",1);
var_02 setscriptablepartstate("eyes","eye_glow_off",1);
break;
}
var_02 dodamage(var_02.health + 100,var_02.origin);
wait(0.25);
}
}
//Function Number: 5
func_72BF()
{
level thread endgame("axis",func_7979("host_end"));
}
//Function Number: 6
func_B37C()
{
game["state"] = "postgame";
level.var_7669 = 1;
}
//Function Number: 7
func_7668()
{
return game["state"] == "postgame" || level.var_7669;
}
//Function Number: 8
func_7384(param_00,param_01,param_02)
{
if(!isdefined(param_00))
{
param_00 = 0;
}
foreach(var_04 in level.players)
{
var_04 thread func_7386(param_00);
var_04 thread func_E760(4);
var_04 func_736F();
var_04 setclientdvars("cg_everyoneHearsEveryone",1,"cg_drawSpectatorMessages",0);
if(isdefined(param_01) && isdefined(param_02))
{
var_04 setclientdvars(param_01,param_02);
}
}
foreach(var_07 in level.var_1900)
{
var_07 scripts\cp\_utility::func_7385(1);
}
}
//Function Number: 9
func_7386(param_00)
{
self endon("disconnect");
scripts\cp\_utility::clearlowermessages();
if(!isdefined(param_00))
{
param_00 = 0.05;
}
wait(param_00);
scripts\cp\_utility::func_7385(1);
}
//Function Number: 10
func_E760(param_00)
{
self setdepthoffield(0,128,512,4000,6,1.8);
}
//Function Number: 11
func_7B85()
{
var_00 = 0;
if(isdefined(level.var_10DFF))
{
var_00 = gettime() - level.var_10DFF;
}
return var_00;
}
//Function Number: 12
func_736F()
{
if(isdefined(self.var_CA52))
{
if(isdefined(self.var_CA52[0]))
{
self.var_CA52[0] scripts\cp\_utility::destroyelem();
self.var_CA53[0] scripts\cp\_utility::destroyelem();
}
if(isdefined(self.var_CA52[1]))
{
self.var_CA52[1] scripts\cp\_utility::destroyelem();
self.var_CA53[1] scripts\cp\_utility::destroyelem();
}
if(isdefined(self.var_CA52[2]))
{
self.var_CA52[2] scripts\cp\_utility::destroyelem();
self.var_CA53[2] scripts\cp\_utility::destroyelem();
}
}
self notify("perks_hidden");
self.lowermessage scripts\cp\_utility::destroyelem();
self.lowertimer scripts\cp\_utility::destroyelem();
if(isdefined(self.var_DAAE))
{
self.var_DAAE scripts\cp\_utility::destroyelem();
}
if(isdefined(self.var_DAAF))
{
self.var_DAAF scripts\cp\_utility::destroyelem();
}
}
//Function Number: 13
func_40A5(param_00)
{
param_00 notify("select_mode");
param_00 notify("reset_outcome");
param_00.pers["stats"] = param_00.var_10E53;
param_00 scripts\cp\_utility::func_1C5C(1);
param_00 setclientomnvar("ui_intel_progress_current",-1);
param_00 setclientomnvar("ui_intel_progress_max",-1);
param_00 setclientomnvar("ui_intel_percent",-1);
param_00 setclientomnvar("ui_intel_target_player",-1);
param_00 setclientomnvar("ui_intel_prechallenge",0);
param_00 setclientomnvar("ui_intel_timer",-1);
param_00 setclientomnvar("ui_intel_challenge_scalar",-1);
param_00 setclientomnvar("zombie_number_of_ticket",0);
param_00 setplayerdata("cp","zombiePlayerLoadout","tutorialOff",1);
param_00 scripts\cp\_utility::clearlowermessages();
if(isdefined(param_00.var_C8A2))
{
param_00.var_C8A2 = [];
}
if(isdefined(param_00.var_D7A0))
{
param_00.var_D7A0 = [];
}
if(isdefined(param_00.var_456D))
{
param_00.var_456D = [];
}
if(isdefined(param_00.var_D782))
{
param_00.var_D782 = [];
}
param_00 func_4172();
}
//Function Number: 14
func_FF5E(param_00)
{
if((param_00 == 1 || param_00 == 2) && getdvar("ui_mapname") == "cp_jackal_ass")
{
return "cp_titan";
}
return undefined;
}
//Function Number: 15
func_ADDE(param_00)
{
func_A5D7();
level scripts\common\utility::waittill_any_timeout_1(15,"intermission_over");
setdvar("ui_mapname",param_00);
setdvar("g_gametype","aliens");
var_01 = "map " + param_00;
}
//Function Number: 16
func_E2AE()
{
func_A5D7();
setomnvar("allow_server_pause",1);
setomnvarforallclients("post_game_state",0);
for(var_00 = 3;var_00 > 0;var_00--)
{
iprintlnbold("RESTARTING IN..." + var_00);
wait(1);
}
map_restart(1);
}
//Function Number: 17
func_A5D7()
{
foreach(var_01 in level.var_3CB5)
{
var_01 dodamage(100000,var_01.origin);
}
var_03 = scripts\cp\_agent_utils::func_7D94("alien");
foreach(var_05 in var_03)
{
var_05 suicide();
}
}
//Function Number: 18
func_D40D(param_00)
{
if(param_00 == 4)
{
level.var_E40B = 0;
level.var_E40C = 0;
foreach(var_02 in level.players)
{
var_02 thread func_56C4();
}
var_04 = level.players.size - level.var_E40B;
while(level.var_E40B < level.players.size)
{
var_05 = var_04;
var_04 = level.players.size - level.var_E40B;
if(var_04 != var_05)
{
iprintlnbold("Waiting for " + var_04 + " player\'s to vote");
}
wait(0.5);
}
if(level.var_E40C == level.players.size)
{
return 1;
}
}
return 0;
}
//Function Number: 19
func_56C4()
{
wait(3);
scripts\cp\_laststand::func_4164(self);
self setclientomnvar("retry_popup",1);
self waittill("luinotifyserver",var_00);
level.var_E40B = level.var_E40B + 1;
if(var_00 == "retry_level")
{
level.var_E40C = level.var_E40C + 1;
}
}
//Function Number: 20
func_4172()
{
if(isdefined(self.var_D782))
{
foreach(var_01 in getarraykeys(self.var_D782))
{
var_02 = self.var_D782[var_01].var_3D23 * -1;
scripts\cp\powers\coop_powers::func_D71A(var_02);
}
}
scripts\cp\powers\coop_powers::func_13F00("secondary");
scripts\cp\powers\coop_powers::func_13F00("primary");
}
//Function Number: 21
func_7978(param_00)
{
switch(param_00)
{
case 1:
return "all_escape";
case 2:
return "some_escape";
case 3:
return "fail_escape";
case 8:
case 5:
case 4:
return "died";
case 6:
return "host_quit";
case 7:
return "gas_fail";
default:
break;
}
}
//Function Number: 22
func_56C5()
{
level endon("game_ended");
self endon("disconnect");
for(;;)
{
self waittill("luinotifyserver",var_00);
if(var_00 == "close_menu")
{
level.var_AE3F = level.var_AE3F + 1;
continue;
}
else
{
switch(var_00)
{
case "dpad_team_ammo_ap":
case "dpad_team_ammo_in":
case "dpad_team_ammo_stun":
case "dpad_team_ammo_reg":
break;
case "dpad_team_boost":
case "dpad_team_armor":
case "dpad_team_adrenaline":
case "dpad_team_explosives":
break;
case "dpad_maaws":
case "dpad_riotshield":
case "dpad_death_machine":
case "dpad_war_machine":
break;
case "perk_bullet_damage":
scripts\common\utility::func_136F7();
scripts\common\utility::func_136F7();
break;
case "perk_health":
scripts\common\utility::func_136F7();
scripts\common\utility::func_136F7();
break;
case "perk_rigger":
scripts\common\utility::func_136F7();
scripts\common\utility::func_136F7();
break;
case "perk_medic":
scripts\common\utility::func_136F7();
scripts\common\utility::func_136F7();
break;
case "perk_robotics":
scripts\common\utility::func_136F7();
scripts\common\utility::func_136F7();
break;
case "perk_demolition":
scripts\common\utility::func_136F7();
scripts\common\utility::func_136F7();
break;
case "perk_gunslinger":
scripts\common\utility::func_136F7();
scripts\common\utility::func_136F7();
break;
case "perk_hybrid":
scripts\common\utility::func_136F7();
scripts\common\utility::func_136F7();
break;
case "perk_pistol_zemc":
case "perk_pistol_zg18":
case "perk_pistol_magnum":
case "perk_pistol_znrg":
break;
case "perk_skill_pet":
case "perk_skill_electric_arc":
case "perk_skill_mortar":
case "perk_skill_drone":
case "perk_skill_heal_ring":
case "perk_skill_stasis":
case "perk_skill_invulnerable":
case "perk_skill_infinite_ammo":
break;
case "iw6_kriss_mp":
case "iw6_cprgm_mp":
case "iw6_cppanzerfaust3_mp":
case "iw6_l115a3_mp+acogsniper":
case "iw6_vks_mp+vksscope":
case "iw6_svu_mp":
case "iw6_g28_mp":
case "iw6_imbel_mp":
case "iw6_microtar_mp":
case "iw6_pdw_mp":
case "iw6_vepr_mp":
case "iw6_pp19_mp":
case "iw6_maul_mp":
case "iw6_cbjms_mp":
case "iw6_mts255_mp":
case "iw6_fp6_mp":
case "iw6_honeybadger_mp":
case "iw6_aliendlc11li_mp":
case "iw6_m27_mp":
case "iw6_lsat_mp":
case "iw6_dlcweap02_mp+dlcweap02scope":
case "iw6_plasmaauto_mp":
case "iw7_erad_mp":
case "iw7_crb_mp":
case "iw7_devastator_mp":
case "iw7_chargeshot_mp":
case "iw7_spas_mp":
case "iw7_forge_mp":
case "iw7_nrg_mp":
case "iw7_ake_mp":
case "iw7_m1_mp":
case "iw7_ar57_mp":
case "iw7_m8_mp+m8scope":
case "iw7_cheytac_mp+cheytacscope":
case "iw7_kbs_mp+kbsscope":
case "iw6_arx160_mp":
case "iw6_kac_mp":
case "iw7_glprox_mp":
case "iw6_panzerfaust3_mp":
case "iw6_mp443_mp":
case "iw6_m9a1_mp":
case "iw6_magnum_mp":
case "iw6_p226_mp":
break;
}
}
}
}
//Function Number: 23
func_56DA(param_00,param_01)
{
foreach(var_03 in level.players)
{
if(isdefined(var_03.var_4530) || var_03.pers["team"] == "spectator")
{
continue;
}
var_03 thread func_C752(param_00,param_01);
var_03 thread scripts\cp\_utility::func_7385(1);
}
level notify("game_win",param_00);
}
//Function Number: 24
func_C752(param_00,param_01)
{
self endon("disconnect");
self notify("reset_outcome");
wait(0.5);
var_02 = self.pers["team"];
if(!isdefined(var_02) || var_02 != "allies" && var_02 != "axis")
{
var_02 = "allies";
}
while(scripts\cp\_hud_message::func_9DC6())
{
wait(0.05);
}
self endon("reset_outcome");
if(isdefined(self.pers["team"]) && param_00 == var_02)
{
var_03 = func_7979("win");
}
else
{
var_03 = func_7979("fail");
}
self setclientomnvar("ui_round_end_title",var_03);
if(isdefined(param_01))
{
self setclientomnvar("ui_round_end_reason",param_01);
}
self setclientomnvar("zm_ui_show_eog_score",1);
}
//Function Number: 25
func_DEB3()
{
if(isdefined(level.var_62D2))
{
[[ level.var_62D2 ]]();
return;
}
func_DEAC();
}
//Function Number: 26
func_DEAC()
{
level.end_game_string_index = [];
level.end_game_string_index["win"] = 1;
level.end_game_string_index["fail"] = 2;
level.end_game_string_index["all_escape"] = 1;
level.end_game_string_index["some_escape"] = 2;
level.end_game_string_index["fail_escape"] = 3;
level.end_game_string_index["kia"] = 4;
level.end_game_string_index["host_end"] = 5;
}
//Function Number: 27
func_7979(param_00)
{
return level.end_game_string_index[param_00];
}
//Function Number: 28
func_E761(param_00,param_01)
{
var_02 = 0;
while(!var_02)
{
var_03 = level.players;
var_02 = 1;
foreach(var_05 in var_03)
{
if(!isdefined(var_05.var_58DD))
{
continue;
}
if(!var_05 scripts\cp\_hud_message::func_9DC6())
{
continue;
}
var_02 = 0;
}
wait(0.5);
}
if(!param_01)
{
wait(param_00);
level notify("round_end_finished");
return;
}
wait(param_00 / 2);
level notify("give_match_bonus");
wait(param_00 / 2);
var_02 = 0;
while(!var_02)
{
var_03 = level.players;
var_02 = 1;
foreach(var_05 in var_03)
{
if(!isdefined(var_05.var_58DD))
{
continue;
}
if(!var_05 scripts\cp\_hud_message::func_9DC6())
{
continue;
}
var_02 = 0;
}
wait(0.5);
}
level notify("round_end_finished");
}

View File

@ -0,0 +1,25 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\_fx.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 2
* Decompile Time: 68 ms
* Timestamp: 10/27/2023 12:23:33 AM
*******************************************************************/
//Function Number: 1
main()
{
func_95F5();
}
//Function Number: 2
func_95F5()
{
level._effect["melee_blood"] = loadfx("vfx/core/impacts/small/impact_alien_flesh_hit_b_fatal");
level._effect["vfx_scrnfx_tocam_slidedust_m"] = loadfx("vfx/core/screen/vfx_scrnfx_tocam_slidedust_m");
level._effect["vfx_melee_blood_spray"] = loadfx("vfx/core/screen/vfx_melee_blood_spray");
level._effect["vfx_blood_hit_left"] = loadfx("vfx/core/screen/vfx_blood_hit_left");
level._effect["vfx_blood_hit_right"] = loadfx("vfx/core/screen/vfx_blood_hit_right");
}

View File

@ -0,0 +1,552 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\_spawn_plasma_projectile.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 21
* Decompile Time: 770 ms
* Timestamp: 10/27/2023 12:23:34 AM
*******************************************************************/
//Function Number: 1
func_10A34()
{
level._effect["base_plasma_smoke"] = loadfx("vfx/iw7/_requests/mp/vfx_plasma_smoke");
}
//Function Number: 2
func_10A35(param_00)
{
param_00.var_85D5 = [];
var_01 = 6;
for(var_02 = 0;var_02 < var_01;var_02++)
{
var_03 = scripts\cp\_utility::func_1302("zmb_globproj_zm",(0,0,0),(0,0,0));
var_03.var_222 = self;
var_03.team = self.team;
var_03.var_13C2E = "zmb_globproj_zm";
var_03 linkto(param_00,"",(0,0,0),(0,0,0));
var_03 hide(1);
param_00.var_85D5[param_00.var_85D5.size] = var_03;
var_03 thread func_85B4();
}
thread func_85CE(param_00);
thread func_85CD(param_00);
param_00 thread func_85B4();
}
//Function Number: 3
func_85CD(param_00,param_01)
{
param_00 notify("grenadeOnExplode");
param_00 endon("grenadeOnExplode");
param_00 thread scripts\cp\_utility::func_C15A("death","end_explode");
param_00 endon("end_explode");
var_02 = param_00.var_222;
var_03 = param_00.var_85D5;
var_04 = param_00.var_D719;
param_00 waittill("explode",var_05);
if(!isdefined(var_02))
{
return;
}
func_85B9(var_05,param_01,var_03,var_04);
}
//Function Number: 4
func_85CE(param_00)
{
param_00 endon("death");
param_00 waittill("missile_stuck",var_01);
if(isdefined(var_01) && isplayer(var_01))
{
return;
}
thread func_85CD(param_00,param_00.angles);
}
//Function Number: 5
func_85B9(param_00,param_01,param_02,param_03)
{
var_04 = 0;
var_05 = 0;
var_06 = undefined;
if(isdefined(param_01))
{
var_06 = anglestoup(param_01);
var_07 = vectordot(var_06,(0,0,1));
var_08 = acos(var_07);
var_04 = var_08 >= 45;
var_05 = var_08 >= 145;
}
var_09 = undefined;
var_0A = [];
if(level.teambased)
{
var_09 = scripts\cp\_utility::func_81A0(scripts\cp\_utility::getotherteam(self.team));
}
else
{
var_09 = level.var_3CB5;
}
var_0B = physics_createcontents(["physicscontents_solid","physicscontents_glass","physicscontents_vehicleclip","physicscontents_missileclip","physicscontents_clipshot"]);
foreach(var_0D in var_09)
{
if(!isdefined(var_0D) || var_0D == self || !scripts\cp\_utility::func_9F19(var_0D))
{
continue;
}
var_0E = distancesquared(param_00,var_0D.origin);
if(var_0E > 13225 || var_0E < 7225)
{
continue;
}
var_0F = function_0287(param_00,var_0D.origin,var_0B,undefined,0,"physicsquery_closest");
if(!isdefined(var_0F) || var_0F.size > 0)
{
continue;
}
var_0A[var_0A.size] = var_0D;
}
if(var_0A.size > 0)
{
var_0A = scripts\common\utility::array_randomize(var_0A);
}
var_11 = 0;
var_12 = 0;
var_13 = 1.5;
var_14 = (0,0,0);
var_15 = (0,0,0);
if(var_04 || var_05)
{
var_14 = var_06 * 115;
var_15 = var_06 * 3;
}
var_16 = randomint(46);
var_17 = 0;
for(var_18 = 0;var_18 < param_02.size;var_18++)
{
var_19 = undefined;
var_1A = randomint(2);
if(var_1A && var_11 < var_0A.size)
{
var_1B = var_0A[var_11].origin - param_00;
var_1B = (var_1B[0],var_1B[1],0);
var_11++;
}
else if(var_17 < 6)
{
var_1C = var_16 + 72 * var_17;
var_1D = 85 + randomint(31);
if(var_17 == 5)
{
var_1D = 0;
}
var_1B = (cos(var_1C),sin(var_1C),0) * var_1D + var_14;
var_17++;
}
else
{
var_1E = randomint(360);
var_1F = 85 + randomint(31);
var_1B = (cos(var_1E),sin(var_1E),0) * var_1F + var_14;
}
if(!var_05)
{
var_1B = var_1B + (0,0,200 + randomint(200));
}
var_1B = var_1B;
var_20 = param_00 + var_15;
var_21 = param_02[var_18];
var_21 show();
var_21 unlink(1);
var_21 = scripts\cp\_utility::func_1302("zmb_globproj_zm",var_20,var_1B,undefined,undefined,var_21);
var_21.var_222 = self;
var_21.team = self.team;
var_21.var_13C2E = "zmb_globproj_zm";
if(var_18 == 0)
{
var_21 setscriptablepartstate("explosion","active");
}
else
{
var_21 setscriptablepartstate("explosion","neutral");
}
var_21 setscriptablepartstate("trail","active");
thread func_B79A(var_21,var_13);
}
}
//Function Number: 6
func_B79A(param_00,param_01)
{
param_00 endon("death");
param_00 waittill("missile_stuck",var_02);
var_03 = 3 + randomfloat(0.15);
param_00 thread func_85B4(param_01 + var_03);
param_00 setscriptablepartstate("trail","neutral");
param_00 setscriptablepartstate("explosion","active");
var_04 = 60;
var_05 = spawn("trigger_rotatable_radius",param_00.origin,0,var_04,60);
var_05.angles = param_00.angles;
var_05.var_222 = self;
var_05 enablelinkto();
var_05 linkto(param_00);
var_05 hide();
var_05.var_B799 = param_00;
var_05 thread func_13B91();
var_06 = vectordot(anglestoup(var_05.angles),(0,0,1));
if(var_06 <= 0)
{
param_00.var_D654 = "poolWall";
param_00 setscriptablepartstate("poolWall","active");
}
else
{
param_00.var_D654 = "poolGround";
param_00 setscriptablepartstate("poolGround","active");
}
wait(param_01);
param_00 notify("extinguish");
param_00 setscriptablepartstate(param_00.var_D654,"activeEnd",0);
}
//Function Number: 7
func_85B4(param_00)
{
self endon("death");
self notify("grenadeCleanup");
self endon("grenadeCleanup");
if(isdefined(param_00))
{
self.var_222 scripts\common\utility::waittill_any_timeout_no_endon_death_2(param_00,"disconnect");
}
else
{
self.var_222 waittill("disconnect");
}
if(isdefined(self))
{
self delete();
}
}
//Function Number: 8
func_B24D(param_00,param_01,param_02)
{
self endon("death");
var_03 = self getentitynumber();
self notify("mainScriptableCleanup" + var_03);
self endon("mainScriptableCleanup" + var_03);
if(isdefined(param_01))
{
wait(param_01);
}
else
{
param_00 waittill("death");
}
if(isdefined(param_02))
{
wait(param_02);
}
if(isdefined(self))
{
self delete();
}
}
//Function Number: 9
func_13B91()
{
self endon("death");
self.var_222 endon("disconnect");
var_00 = self.var_222;
var_01 = var_00.team;
if(!isdefined(self.var_127C0))
{
self.var_127C0 = [];
}
thread func_13B93();
thread func_127B9();
for(;;)
{
self waittill("trigger",var_02);
if(!isplayer(var_02) && !isagent(var_02))
{
continue;
}
if(!scripts\cp\_utility::func_9F19(var_02))
{
continue;
}
if(var_02 != var_00 && level.teambased && var_02.team == var_01)
{
continue;
}
self.var_127C0[var_02 getentitynumber()] = var_02;
var_02 func_17B0(self.var_B799);
}
}
//Function Number: 10
func_13B93()
{
self endon("death");
self.var_222 endon("disconnect");
for(;;)
{
foreach(var_02, var_01 in self.var_127C0)
{
if(!isdefined(var_01))
{
self.var_127C0[var_02] = undefined;
continue;
}
if(!scripts\cp\_utility::func_9F19(var_01) || !var_01 istouching(self))
{
self.var_127C0[var_02] = undefined;
var_01 thread func_E0DC(self.var_B799);
}
}
scripts\common\utility::func_136F7();
}
}
//Function Number: 11
func_127B9()
{
self endon("death");
self.var_B799 endon("death");
self.var_B799 waittill("extinguish");
foreach(var_01 in self.var_127C0)
{
if(isdefined(var_01))
{
var_01 thread func_E0DC(self.var_B799);
}
}
self delete();
}
//Function Number: 12
func_D51E(param_00,param_01)
{
var_02 = spawnfx(scripts\common\utility::getfx("base_plasma_smoke"),param_00);
triggerfx(var_02);
wait(param_01);
var_02 delete();
}
//Function Number: 13
func_10D77()
{
if(isdefined(self.agent_type) && self.agent_type != "zombie_brute" && self.agent_type != "zombie_grey" && self.agent_type != "superslasher" && self.agent_type != "slasher")
{
self setscriptablepartstate("burning","active",1);
}
thread func_139C0();
}
//Function Number: 14
func_6312()
{
self notify("endBurning");
self.var_3291 = undefined;
if(scripts\cp\_utility::func_9D20())
{
if(isdefined(self.agent_type) && self.agent_type != "zombie_brute" && self.agent_type != "zombie_grey")
{
self setscriptablepartstate("burning","inactive",1);
return;
}
return;
}
if(isplayer(self))
{
self setscriptablepartstate("burning","neutral",1);
}
}
//Function Number: 15
func_139C0()
{
self endon("death");
self endon("disconnect");
self endon("endBurning");
thread func_40E8();
var_00 = self.var_3291;
var_01 = 0;
for(;;)
{
if(func_9D76())
{
var_00.var_32A1 = var_00.var_32A1 + 0.05;
var_00.var_32A0 = 0;
if(var_01 <= 0 && var_00.var_32A4.size > 0)
{
var_02 = var_00.var_32A4[0];
var_03 = var_02.var_222;
var_04 = var_02.var_13C2E;
var_05 = func_7E11();
self dodamage(var_05,var_02.origin,var_03,var_02,"MOD_EXPLOSIVE",var_04);
var_01 = 0.25;
}
else
{
var_01 = var_01 - 0.05;
}
}
else
{
var_00.var_32A0 = var_00.var_32A0 + 0.05;
if(var_00.var_32A0 > 0.25)
{
thread func_6312();
}
}
wait(0.05);
}
}
//Function Number: 16
func_40E8()
{
self endon("endBurning");
self endon("disconnect");
self waittill("death");
thread func_6312();
}
//Function Number: 17
func_17B0(param_00)
{
var_01 = self.var_3291;
if(!isdefined(var_01))
{
var_01 = spawnstruct();
var_01.var_32A4 = [];
var_01.var_32A1 = 0;
var_01.var_32A0 = 0;
self.var_3291 = var_01;
}
var_02 = var_01.var_32A4.size;
if(!func_8BD9(param_00))
{
var_01.var_32A4[var_02] = param_00;
}
if(var_02 == 0)
{
func_10D77();
}
}
//Function Number: 18
func_E0DC(param_00)
{
if(isdefined(self.var_3291))
{
var_01 = self.var_3291;
var_02 = [];
for(var_03 = 0;var_03 > var_01.var_32A4.size;var_03++)
{
var_04 = var_01.var_32A4[var_03];
if(!isdefined(var_04))
{
continue;
}
if(var_04 == param_00)
{
continue;
}
var_02[var_02.size] = var_04;
}
if(var_02.size > 0)
{
var_01.var_32A4 = var_02;
return;
}
func_6312();
}
}
//Function Number: 19
func_8BD9(param_00)
{
if(isdefined(self.var_3291))
{
var_01 = self.var_3291;
foreach(var_03 in var_01.var_32A4)
{
if(var_03 == param_00)
{
return 1;
}
}
}
return 0;
}
//Function Number: 20
func_9D76()
{
return isdefined(self.var_3291) && isdefined(self.var_3291.var_32A4) && self.var_3291.var_32A4.size > 0;
}
//Function Number: 21
func_7E11()
{
var_00 = self.var_3291.var_32A1;
var_01 = undefined;
if(var_00 > 1)
{
var_01 = 25;
}
else if(var_00 > 0.5)
{
var_01 = 25;
}
else
{
var_01 = 25;
}
return var_01;
}

View File

@ -0,0 +1,822 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\contractchallenges_coop.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 21
* Decompile Time: 1049 ms
* Timestamp: 10/27/2023 12:09:10 AM
*******************************************************************/
//Function Number: 1
registercontractchallenges()
{
level.contractchallenges = [];
registercontractchallenge("con_test",::contracttestchallenge);
registercontractchallenge("con_kills",::contractkills);
registercontractchallenge("con_kills_AR",::contractkills);
registercontractchallenge("con_kills_LMG",::contractkills);
registercontractchallenge("con_kills_SG",::contractkills);
registercontractchallenge("con_kills_Sniper",::contractkills);
registercontractchallenge("con_kills_SMG",::contractkills);
registercontractchallenge("con_kills_Pistol",::contractkills);
registercontractchallenge("con_kills_explosive",::contractkills);
registercontractchallenge("con_kills_head_zmb",::contractkills);
registercontractchallenge("con_kills_head_rave",::contractkills);
registercontractchallenge("con_kills_head_disco",::contractkills);
registercontractchallenge("con_kills_head_town",::contractkills);
registercontractchallenge("con_cash_earned_zmb",::contractmoneyearned);
registercontractchallenge("con_cash_earned_rave",::contractmoneyearned);
registercontractchallenge("con_cash_earned_disco",::contractmoneyearned);
registercontractchallenge("con_cash_earned_town",::contractmoneyearned);
registercontractchallenge("con_kills_golf_rave",::contractkills);
registercontractchallenge("con_kills_bat_rave",::contractkills);
registercontractchallenge("con_kills_machete_rave",::contractkills);
registercontractchallenge("con_kills_axe_rave",::contractkills);
registercontractchallenge("con_kills_axe_zmb",::contractkills);
registercontractchallenge("con_kills_cleaver_town",::contractkills);
registercontractchallenge("con_kills_crowbar_town",::contractkills);
registercontractchallenge("con_doors",::contractdoors);
registercontractchallenge("con_kills_dragon_disco",::contractkills);
registercontractchallenge("con_kills_tiger_disco",::contractkills);
registercontractchallenge("con_kills_snake_disco",::contractkills);
registercontractchallenge("con_kills_crane_disco",::contractkills);
registercontractchallenge("con_consumables_used",::contractconsumables);
registercontractchallenge("con_reboard_windows",::contractreboard);
registercontractchallenge("con_kills_clowns_zmb",::contractkills);
registercontractchallenge("con_kills_sasquatch_rave",::contractkills);
registercontractchallenge("con_kills_skaters_disco",::contractkills);
registercontractchallenge("con_kills_crogs_town",::contractkills);
registercontractchallenge("con_waves",::contractnewwave);
registercontractchallenge("con_trap_kills_zmb",::contractkills);
registercontractchallenge("con_trap_kills_rave",::contractkills);
registercontractchallenge("con_trap_kills_disco",::contractkills);
registercontractchallenge("con_trap_kills_town",::contractkills);
registercontractchallenge("con_magic_wheel_uses",::contractmagicwheel);
registercontractchallenge("con_hoff_spawn",::contracthoffspawn);
registercontractchallenge("con_elvira_spawn",::contractelviraspawned);
registercontractchallenge("con_cash_spent_zmb",::contractmoneyspent);
registercontractchallenge("con_cash_spent_rave",::contractmoneyspent);
registercontractchallenge("con_cash_spent_disco",::contractmoneyspent);
registercontractchallenge("con_cash_spent_town",::contractmoneyspent);
registercontractchallenge("con_challenge_badge_rave",::contractchallengebadges);
registercontractchallenge("con_crafted_kills_town",::contractkills);
registercontractchallenge("con_coaster_targets_zmb",::contractcoastertargets);
registercontractchallenge("con_shooting_gallery_zmb",::contractshootinggallery);
registercontractchallenge("con_spend_tickets",::contractspendtickets);
registercontractchallenge("con_kills_head_final",::contractkills);
registercontractchallenge("con_trap_kills_final",::contractkills);
registercontractchallenge("con_entangler_kills_final",::contractkills);
registercontractchallenge("con_venomx_kills_final",::contractkills);
registercontractchallenge("con_goon_kills_final",::contractkills);
registercontractchallenge("con_phantom_kills_final",::contractkills);
registercontractchallenge("con_special_kills_final",::contractkills);
registercontractchallenge("con_cash_earned_final",::contractmoneyearned);
registercontractchallenge("con_cash_spent_final",::contractmoneyspent);
}
//Function Number: 2
registercontractchallenge(param_00,param_01)
{
level.contractchallenges[param_00] = param_01;
}
//Function Number: 3
contractempty(param_00)
{
}
//Function Number: 4
contracttestchallenge(param_00)
{
self endon("disconnect");
self endon("game_ended");
for(;;)
{
wait(1);
scripts\cp\contracts_coop::updatecontractprogress(param_00);
}
}
//Function Number: 5
contractkills(param_00)
{
self endon("disconnect");
self endon("game_ended");
for(;;)
{
self waittill("kill_event_buffered",var_01,var_02,var_03,var_04,var_05,var_06,var_07,var_08,var_09);
var_0A = 0;
var_0B = scripts\cp\_utility::func_821F(var_05);
var_0C = getdvar("ui_mapname");
var_0D = scripts\common\utility::func_9D74(var_04);
var_0E = isdefined(var_05) && var_05 == "iw7_dischorddummy_zm" || var_05 == "iw7_facemelterdummy_zm" || var_05 == "iw7_headcutterdummy_zm" || var_05 == "iw7_shredderdummy_zm";
var_0F = issubstr(var_05,"venomx");
var_10 = issubstr(var_05,"longshot");
var_11 = issubstr(var_05,"m8");
var_12 = var_0D && scripts\cp\_utility::func_9E27(var_05,var_07,var_04,var_02) && !var_0F;
if(isdefined(var_01.var_222))
{
var_13 = var_02 scripts\cp\_utility::func_9CEB(var_01,var_05) && var_01.var_222 == var_02;
}
else
{
var_13 = var_02 scripts\cp\_utility::func_9CEB(var_01,var_05);
}
var_14 = function_0107(var_04);
if(var_14)
{
if(issubstr(var_05,"shuriken"))
{
var_14 = 0;
}
else if(scripts\common\utility::istrue(var_02.kung_fu_mode))
{
var_14 = 0;
}
}
switch(param_00.var_DE3F)
{
case "con_kills":
var_0A = 1;
break;
case "con_kills_head_zmb":
if(scripts\common\utility::istrue(var_12) && var_0C == "cp_zmb")
{
var_0A = 1;
}
break;
case "con_kills_head_rave":
if(scripts\common\utility::istrue(var_12) && var_0C == "cp_rave")
{
var_0A = 1;
}
break;
case "con_kills_head_disco":
if(scripts\common\utility::istrue(var_12) && var_0C == "cp_disco")
{
var_0A = 1;
}
break;
case "con_kills_head_town":
if(scripts\common\utility::istrue(var_12) && var_0C == "cp_town")
{
var_0A = 1;
}
break;
case "con_kills_head_final":
if(scripts\common\utility::istrue(var_12) && var_0C == "cp_final")
{
var_0A = 1;
}
break;
case "con_kills_AR":
if(var_04 != "MOD_MELEE" && var_0B == "weapon_assault")
{
var_0A = 1;
}
else if(var_04 != "MOD_MELEE" && var_0B == "weapon_sniper" && var_11 && !lib_0CBC::checkaltmodestatus(var_05))
{
var_0A = 1;
}
break;
case "con_kills_LMG":
if(var_04 != "MOD_MELEE" && var_0B == "weapon_lmg")
{
var_0A = 1;
}
break;
case "con_kills_SG":
if(var_04 != "MOD_MELEE" && var_0B == "weapon_shotgun" && !var_10)
{
var_0A = 1;
}
else if(var_04 != "MOD_MELEE" && var_0B == "weapon_sniper" && var_10 && !lib_0CBC::checkaltmodestatus(var_05))
{
var_0A = 1;
}
break;
case "con_kills_Sniper":
if(var_04 != "MOD_MELEE" && var_0B == "weapon_sniper" && !var_10 && !var_11)
{
var_0A = 1;
}
else if(var_04 != "MOD_MELEE" && var_0B == "weapon_sniper" && var_10 && lib_0CBC::checkaltmodestatus(var_05))
{
var_0A = 1;
}
else if(var_04 != "MOD_MELEE" && var_0B == "weapon_sniper" && var_11 && lib_0CBC::checkaltmodestatus(var_05))
{
var_0A = 1;
}
break;
case "con_kills_SMG":
if(var_04 != "MOD_MELEE" && var_0B == "weapon_smg")
{
var_0A = 1;
}
break;
case "con_kills_Pistol":
if(var_04 != "MOD_MELEE" && var_0B == "weapon_pistol")
{
var_0A = 1;
}
else if(var_0E)
{
var_0A = 1;
}
break;
case "con_kills_explosive":
var_0A = var_14;
break;
case "con_kills_golf_rave":
if(var_0C == "cp_rave")
{
if(var_05 == "iw7_golf_club_mp" || var_05 == "iw7_golf_club_mp_pap1" || var_05 == "iw7_golf_club_mp_pap2")
{
var_0A = 1;
}
}
break;
case "con_kills_bat_rave":
if(var_0C == "cp_rave")
{
if(var_05 == "iw7_spiked_bat_mp" || var_05 == "iw7_spiked_bat_mp_pap1" || var_05 == "iw7_spiked_bat_mp_pap2")
{
var_0A = 1;
}
}
break;
case "con_kills_axe_rave":
if(var_0C == "cp_rave")
{
if(var_05 == "iw7_two_headed_axe_mp" || var_05 == "iw7_two_headed_axe_mp_pap1" || var_05 == "iw7_two_headed_axe_mp_pap2")
{
var_0A = 1;
}
}
break;
case "con_kills_machete_rave":
if(var_0C == "cp_rave")
{
if(var_05 == "iw7_machete_mp" || var_05 == "iw7_machete_mp_pap1" || var_05 == "iw7_machete_mp_pap2")
{
var_0A = 1;
}
}
break;
case "con_kills_cleaver_town":
if(var_0C == "cp_town")
{
if(var_05 == "iw7_knife_zm_cleaver")
{
var_0A = 1;
}
}
break;
case "con_kills_crowbar_town":
if(var_0C == "cp_town")
{
if(var_05 == "iw7_knife_zm_crowbar")
{
var_0A = 1;
}
}
break;
case "con_kills_axe_zmb":
if(var_0C == "cp_zmb")
{
if(var_05 == "iw7_axe_zm" || getweaponbasename(var_05) == "iw7_axe_zm_pap1" || getweaponbasename(var_05) == "iw7_axe_zm_pap2")
{
var_0A = 1;
}
}
break;
case "con_entangler_kills_final":
if(var_0C == "cp_final")
{
if(isdefined(var_05) && var_05 == "iw7_entangler2_zm" || var_05 == "ghost_grenade_launcher")
{
var_0A = 1;
}
}
break;
case "con_venomx_kills_final":
if(var_0C == "cp_final")
{
if(var_0F)
{
var_0A = 1;
}
}
break;
case "con_kills_dragon_disco":
if(var_0C == "cp_disco")
{
if(scripts\common\utility::istrue(var_02.kung_fu_mode) && !scripts\cp\_merits::is_crafted_trap_damage(var_05))
{
if(var_02.kungfu_style == "dragon")
{
var_0A = 1;
}
}
}
break;
case "con_kills_tiger_disco":
if(var_0C == "cp_disco")
{
if(scripts\common\utility::istrue(var_02.kung_fu_mode) && !scripts\cp\_merits::is_crafted_trap_damage(var_05))
{
if(var_02.kungfu_style == "tiger")
{
var_0A = 1;
}
}
}
break;
case "con_kills_snake_disco":
if(var_0C == "cp_disco")
{
if(scripts\common\utility::istrue(var_02.kung_fu_mode) && !scripts\cp\_merits::is_crafted_trap_damage(var_05))
{
if(var_02.kungfu_style == "snake")
{
var_0A = 1;
}
}
}
break;
case "con_kills_crane_disco":
if(var_0C == "cp_disco")
{
if(scripts\common\utility::istrue(var_02.kung_fu_mode) && !scripts\cp\_merits::is_crafted_trap_damage(var_05))
{
if(var_02.kungfu_style == "crane")
{
var_0A = 1;
}
}
}
break;
case "con_kills_clowns_zmb":
if(var_0C == "cp_zmb")
{
if(isdefined(var_09) && var_09 == "zombie_clown")
{
var_0A = 1;
}
}
break;
case "con_kills_sasquatch_rave":
if(var_0C == "cp_rave")
{
if(isdefined(var_09) && var_09 == "zombie_sasquatch")
{
var_0A = 1;
}
}
break;
case "con_kills_skaters_disco":
if(var_0C == "cp_disco")
{
if(isdefined(var_09) && var_09 == "skater")
{
var_0A = 1;
}
}
break;
case "con_kills_crogs_town":
if(var_0C == "cp_town")
{
if(isdefined(var_09) && var_09 == "crab_mini")
{
var_0A = 1;
}
}
break;
case "con_special_kills_final":
if(var_0C == "cp_final")
{
if(isdefined(var_09) && var_09 == "karatemaster" || var_09 == "zombie_clown" || var_09 == "slasher")
{
var_0A = 1;
}
}
break;
case "con_goon_kills_final":
if(var_0C == "cp_final")
{
if(isdefined(var_09) && var_09 == "alien_goon")
{
var_0A = 1;
}
}
break;
case "con_phantom_kills_final":
if(var_0C == "cp_final")
{
if(isdefined(var_09) && var_09 == "alien_phantom")
{
var_0A = 1;
}
}
break;
case "con_trap_kills_zmb":
if(var_0C == "cp_zmb")
{
if(scripts\common\utility::istrue(var_13))
{
var_0A = 1;
}
}
break;
case "con_trap_kills_rave":
if(var_0C == "cp_rave")
{
if(scripts\common\utility::istrue(var_13))
{
var_0A = 1;
}
}
break;
case "con_trap_kills_disco":
if(var_0C == "cp_disco")
{
if(scripts\common\utility::istrue(var_13))
{
var_0A = 1;
}
}
break;
case "con_trap_kills_town":
if(var_0C == "cp_town")
{
if(var_05 == "iw7_electrictrap_zm")
{
var_0A = 1;
}
}
break;
case "con_trap_kills_final":
if(var_0C == "cp_final")
{
if(scripts\common\utility::istrue(var_13))
{
var_0A = 1;
}
}
break;
case "con_crafted_kills_town":
if(var_0C == "cp_town")
{
if(isdefined(var_02.var_20) && var_02.var_20 == "allies")
{
var_0A = 1;
}
if(var_05 == "iw7_fantrap_zm")
{
var_0A = 1;
}
}
break;
}
if(var_0A)
{
scripts\cp\contracts_coop::updatecontractprogress(param_00);
}
}
}
//Function Number: 6
contractmoneyearned(param_00)
{
self endon("disconnect");
self endon("game_ended");
for(;;)
{
self waittill("currency_earned_buffered",var_01);
var_02 = getdvar("ui_mapname");
var_03 = 0;
switch(param_00.var_DE3F)
{
case "con_cash_earned_zmb":
if(var_02 == "cp_zmb")
{
var_03 = 1;
}
break;
case "con_cash_earned_rave":
if(var_02 == "cp_rave")
{
var_03 = 1;
}
break;
case "con_cash_earned_disco":
if(var_02 == "cp_disco")
{
var_03 = 1;
}
break;
case "con_cash_earned_town":
if(var_02 == "cp_town")
{
var_03 = 1;
}
break;
case "con_cash_earned_final":
if(var_02 == "cp_final")
{
var_03 = 1;
}
break;
}
if(var_03)
{
scripts\cp\contracts_coop::updatecontractprogress(param_00,var_01);
}
}
}
//Function Number: 7
contractdoors(param_00)
{
self endon("disconnect");
self endon("game_ended");
for(;;)
{
self waittill("door_opened_notify");
scripts\cp\contracts_coop::updatecontractprogress(param_00);
}
}
//Function Number: 8
contractconsumables(param_00)
{
self endon("disconnect");
self endon("game_ended");
for(;;)
{
self waittill("consumable_selected");
scripts\cp\contracts_coop::updatecontractprogress(param_00);
}
}
//Function Number: 9
contractreboard(param_00)
{
self endon("disconnect");
self endon("game_ended");
for(;;)
{
self waittill("window_reboard_notify");
scripts\cp\contracts_coop::updatecontractprogress(param_00);
}
}
//Function Number: 10
contractnewwave(param_00)
{
self endon("disconnect");
self endon("game_ended");
for(;;)
{
self waittill("next_wave_notify");
scripts\cp\contracts_coop::updatecontractprogress(param_00);
}
}
//Function Number: 11
contractmagicwheel(param_00)
{
self endon("disconnect");
self endon("game_ended");
for(;;)
{
self waittill("magic_wheel_used");
scripts\cp\contracts_coop::updatecontractprogress(param_00);
}
}
//Function Number: 12
contracthoffspawn(param_00)
{
self endon("disconnect");
self endon("game_ended");
for(;;)
{
self waittill("hoff_spawned");
scripts\cp\contracts_coop::updatecontractprogress(param_00);
}
}
//Function Number: 13
contractelviraspawned(param_00)
{
self endon("disconnect");
self endon("game_ended");
for(;;)
{
self waittill("elvira_summoned_notify");
scripts\cp\contracts_coop::updatecontractprogress(param_00);
}
}
//Function Number: 14
contractmoneyspent(param_00)
{
self endon("disconnect");
self endon("game_ended");
for(;;)
{
self waittill("currency_spent_buffered",var_01);
var_02 = getdvar("ui_mapname");
var_03 = 0;
switch(param_00.var_DE3F)
{
case "con_cash_spent_zmb":
if(var_02 == "cp_zmb")
{
var_03 = 1;
}
break;
case "con_cash_spent_rave":
if(var_02 == "cp_rave")
{
var_03 = 1;
}
break;
case "con_cash_spent_disco":
if(var_02 == "cp_disco")
{
var_03 = 1;
}
break;
case "con_cash_spent_town":
if(var_02 == "cp_town")
{
var_03 = 1;
}
break;
case "con_cash_spent_final":
if(var_02 == "cp_final")
{
var_03 = 1;
}
break;
}
if(var_03)
{
scripts\cp\contracts_coop::updatecontractprogress(param_00,var_01);
}
}
}
//Function Number: 15
contractchallengebadges(param_00)
{
self endon("disconnect");
self endon("game_ended");
for(;;)
{
self waittill("rave_challenge_badge_notify");
scripts\cp\contracts_coop::updatecontractprogress(param_00);
}
}
//Function Number: 16
contractcraftedkills(param_00)
{
self endon("disconnect");
self endon("game_ended");
for(;;)
{
self waittill("crafted_kill_town_notify");
scripts\cp\contracts_coop::updatecontractprogress(param_00);
}
}
//Function Number: 17
contractcoastertargets(param_00)
{
self endon("disconnect");
self endon("game_ended");
for(;;)
{
self waittill("coaster_target_hit_notify");
scripts\cp\contracts_coop::updatecontractprogress(param_00);
}
}
//Function Number: 18
contractshootinggallery(param_00)
{
self endon("disconnect");
self endon("game_ended");
for(;;)
{
self waittill("moving_target_hit_notify");
if(scripts\common\utility::istrue(self.in_afterlife_arcade))
{
continue;
}
scripts\cp\contracts_coop::updatecontractprogress(param_00);
}
}
//Function Number: 19
contractspendtickets(param_00)
{
self endon("disconnect");
self endon("game_ended");
for(;;)
{
self waittill("spent_tickets_notify",var_01);
scripts\cp\contracts_coop::updatecontractprogress(param_00,var_01);
}
}
//Function Number: 20
contractkillsrapid(param_00)
{
self endon("disconnect");
self endon("game_ended");
for(;;)
{
self waittill("update_rapid_kill_buffered",var_01);
var_02 = 0;
switch(param_00.var_DE3F)
{
case "con_kills_double":
if(var_01 % 2 == 0)
{
var_02 = 1;
}
break;
}
if(var_02)
{
scripts\cp\contracts_coop::updatecontractprogress(param_00);
}
}
}
//Function Number: 21
contractnotifylistener(param_00,param_01)
{
self waittill(param_00,var_02);
self notify(param_01,var_02);
}

View File

@ -0,0 +1,177 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\contracts_coop.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 10
* Decompile Time: 522 ms
* Timestamp: 10/27/2023 12:09:10 AM
*******************************************************************/
//Function Number: 1
init()
{
if(!mayprocesscontracts())
{
return;
}
var_00 = spawnstruct();
level.contractglobals = var_00;
scripts\cp\contractchallenges_coop::registercontractchallenges();
var_00.numchallenges = 0;
var_01 = 0;
for(;;)
{
var_02 = tablelookupbyrow("cp/contractChallengesZM.csv",var_01,0);
if(!isdefined(var_02) || var_02 == "")
{
break;
}
var_00.numchallenges++;
var_01++;
}
level thread func_C56E();
}
//Function Number: 2
mayprocesscontracts()
{
if(level.onlinegame)
{
return 1;
}
return 0;
}
//Function Number: 3
contractsenabled()
{
if(isai(self))
{
return 0;
}
if(getdvarint("mission_team_contracts_enabled",0) == 0)
{
return 0;
}
return 1;
}
//Function Number: 4
func_C56E()
{
for(;;)
{
level waittill("connected",var_00);
if(!var_00 contractsenabled())
{
continue;
}
var_00.contracts = [];
var_01 = var_00 getchallengeids();
foreach(var_04, var_03 in var_01)
{
var_00 givecontractchallenge(var_03,var_04);
}
}
}
//Function Number: 5
getchallengeids()
{
var_00 = self getplayerdata("cp","contracts","challenges",0,"challengeID");
var_01 = self getplayerdata("cp","contracts","challenges",1,"challengeID");
return [var_00,var_01];
}
//Function Number: 6
givecontractchallenge(param_00,param_01)
{
var_02 = lookupcontractchallengeref(param_00);
if(!isdefined(var_02))
{
return undefined;
}
var_03 = spawnstruct();
var_03.var_10307 = param_01;
var_03.var_DE3F = var_02;
var_03.target = lookupcontractchallengetarget(param_00);
var_03.team = lookupcontractchallengeteam(param_00);
var_03.var_92B8 = param_00;
var_03.var_D9D9 = self getplayerdata("cp","contracts","challenges",var_03.var_10307,"progress");
var_04 = 0;
var_03.completed = var_03.var_D9D9 >= var_03.target;
if(!var_03.completed)
{
self thread [[ level.contractchallenges[var_03.var_DE3F] ]](var_03);
self.contracts[param_01] = var_03;
}
}
//Function Number: 7
lookupcontractchallengeref(param_00)
{
var_01 = tablelookup("cp/contractChallengesZM.csv",0,param_00,1);
if(!isdefined(var_01) || var_01 == "")
{
return undefined;
}
return var_01;
}
//Function Number: 8
lookupcontractchallengetarget(param_00)
{
var_01 = tablelookup("cp/contractChallengesZM.csv",0,param_00,3);
if(!isdefined(var_01) || var_01 == "")
{
return undefined;
}
return int(var_01);
}
//Function Number: 9
lookupcontractchallengeteam(param_00)
{
var_01 = tablelookup("cp/contractChallengesZM.csv",0,param_00,2);
if(!isdefined(var_01) || var_01 == "")
{
return undefined;
}
return int(var_01);
}
//Function Number: 10
updatecontractprogress(param_00,param_01)
{
if(!isdefined(param_01))
{
param_01 = 1;
}
param_00.var_D9D9 = param_00.var_D9D9 + param_01;
param_00.var_D9D9 = int(min(param_00.var_D9D9,param_00.target));
if(!param_00.completed)
{
param_00.completed = param_00.var_D9D9 >= param_00.target;
if(param_00.completed)
{
var_02 = scripts\common\utility::func_116D7(param_00.team == -1,"contract_complete_joint_ops","contract_complete_team_" + param_00.team);
thread scripts\cp\_hud_message::func_10151(var_02);
self setplayerdata("cp","contracts","challenges",param_00.var_10307,"completed",1);
}
}
self setplayerdata("cp","contracts","challenges",param_00.var_10307,"progress",param_00.var_D9D9);
}

View File

@ -0,0 +1,909 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\cp_agent_utils.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 51
* Decompile Time: 2452 ms
* Timestamp: 10/27/2023 12:09:13 AM
*******************************************************************/
//Function Number: 1
func_108E8(param_00,param_01,param_02,param_03,param_04)
{
var_05 = func_7EC5(param_00);
if(isdefined(var_05))
{
var_05.var_4539 = gettime();
var_05 func_F28D(var_05,param_00);
var_05 func_F28F(var_05,param_00);
var_05 func_10971();
if(func_9CB3(param_00))
{
var_05 = func_107CF(var_05,param_00,param_02,param_03);
}
else
{
var_05 = func_107B2(var_05,param_02,param_03);
}
var_05 func_F8A9(param_00);
var_05 func_F290(param_01);
var_05 func_F28E(var_05,param_00);
var_05 func_F291(var_05,param_00);
var_05 func_184B();
var_05 func_1601();
}
return var_05;
}
//Function Number: 2
func_F28D(param_00,param_01)
{
param_00 detachall();
if(isdefined(level.var_13F58) && level.agent_definition[param_01]["traversal_unit_type"] == "zombie")
{
param_00 [[ level.var_13F58 ]](param_01);
}
else
{
param_00 setmodel(level.agent_definition[param_01]["body_model"]);
var_02 = strtok(level.agent_definition[param_01]["other_body_parts"]," ");
foreach(var_04 in var_02)
{
param_00 attach(var_04,"",1);
}
}
param_00 show();
}
//Function Number: 3
func_9CB3(param_00)
{
return level.agent_definition[param_00]["animclass"] != "";
}
//Function Number: 4
func_107CF(param_00,param_01,param_02,param_03)
{
param_00.var_C50F = param_00 func_10972("on_enter_animstate");
param_00.var_9CB3 = 1;
param_00 method_838E(param_02,param_03,level.agent_definition[param_01]["animclass"],15,60);
return param_00;
}
//Function Number: 5
func_107B2(param_00,param_01,param_02)
{
param_00.var_9CB3 = 0;
param_00 method_838E(param_01,param_02);
return param_00;
}
//Function Number: 6
func_9B53(param_00)
{
return param_00.var_9CB3;
}
//Function Number: 7
func_9B5A()
{
return isagent(self) && isdefined(self.var_1096F) && self.var_1096F == "alien";
}
//Function Number: 8
func_F8A9(param_00)
{
var_01 = level.agent_definition[param_00];
if(!isdefined(var_01))
{
return;
}
var_02 = var_01["setup_func"];
if(!isdefined(var_02))
{
return;
}
self [[ var_02 ]]();
}
//Function Number: 9
func_18F3(param_00,param_01,param_02,param_03,param_04)
{
if(func_9B53(self))
{
self method_8286(param_00);
return;
}
self botsetscriptgoal(param_00,param_01,param_02,param_03,param_04);
}
//Function Number: 10
func_F28F(param_00,param_01)
{
if(!isdefined(level.agent_funcs[param_01]))
{
level.agent_funcs[param_01] = [];
}
param_00.var_1096F = level.agent_definition[param_01]["species"];
func_23B2("spawn",::func_5016);
func_23B2("on_damaged",::func_5003);
func_23B2("on_damaged_finished",::func_5004);
func_23B2("on_killed",::func_5006);
}
//Function Number: 11
func_23B2(param_00,param_01)
{
var_02 = self.agent_type;
if(!isdefined(level.agent_funcs[var_02][param_00]))
{
if(!isdefined(level.var_10970[self.var_1096F]) || !isdefined(level.var_10970[self.var_1096F][param_00]))
{
level.agent_funcs[var_02][param_00] = param_01;
return;
}
level.agent_funcs[var_02][param_00] = level.var_10970[self.var_1096F][param_00];
}
}
//Function Number: 12
func_F28E(param_00,param_01)
{
param_00 func_F28C(level.agent_definition[param_01]["health"]);
}
//Function Number: 13
func_F291(param_00,param_01)
{
if(!func_384C(param_00))
{
return;
}
param_00 method_828C(level.agent_definition[param_01]["traversal_unit_type"]);
}
//Function Number: 14
func_384C(param_00)
{
if(func_9B53(param_00))
{
return 1;
}
return 0;
}
//Function Number: 15
func_10971()
{
if(isdefined(level.var_10970[self.var_1096F]) && isdefined(level.var_10970[self.var_1096F]["pre_spawn_init"]))
{
self [[ level.var_10970[self.var_1096F]["pre_spawn_init"] ]]();
}
}
//Function Number: 16
func_7EC5(param_00)
{
var_01 = undefined;
if(isdefined(level.var_1900))
{
foreach(var_03 in level.var_1900)
{
if(!isdefined(var_03.var_9D25) || !var_03.var_9D25)
{
if(isdefined(var_03.var_136FD) && var_03.var_136FD)
{
continue;
}
var_01 = var_03;
var_01.agent_type = param_00;
var_01 func_97C2();
break;
}
}
}
return var_01;
}
//Function Number: 17
func_97C2()
{
self.pers = [];
self.var_8BE2 = 0;
self.var_9D25 = 0;
self.var_10916 = 0;
self.var_6640 = self getentitynumber();
self.var_18F2 = 0;
self detachall();
func_98BB();
}
//Function Number: 18
func_98BB()
{
self.var_4004 = undefined;
self.var_BCF6 = undefined;
self.var_26B9 = undefined;
self.var_86BD = undefined;
self.name = undefined;
self.var_EB6A = undefined;
self.var_CA5B = undefined;
self.var_13CA0 = undefined;
self.var_C2AD = undefined;
self.sessionteam = undefined;
self.sessionstate = undefined;
self.var_55E6 = undefined;
self.disabledweaponswitch = undefined;
self.var_55D9 = undefined;
self.var_55E4 = 1;
self.nocorpse = undefined;
self.ignoreme = 0;
self.var_180 = 0;
self.var_116D4 = undefined;
self.var_441A = undefined;
self.var_4B82 = undefined;
self.do_immediate_ragdoll = undefined;
self.var_37FD = 0;
self.var_24CA = undefined;
self.entered_playspace = 0;
self.var_B36E = undefined;
self.var_126A3 = undefined;
self.var_8C35 = 0;
self.var_54CB = 0;
self.var_9E0C = undefined;
self.flung = undefined;
self.var_28E0 = undefined;
self.var_FF78 = undefined;
self.var_9CDD = undefined;
self.var_9CA2 = undefined;
self.is_coaster_zombie = undefined;
}
//Function Number: 19
func_F290(param_00,param_01)
{
self.team = param_00;
self.var_20 = param_00;
self.pers["team"] = param_00;
self.var_222 = param_01;
self method_831F(param_01);
self method_82DD(param_01);
}
//Function Number: 20
func_184B()
{
for(var_00 = 0;var_00 < level.var_3CB5.size;var_00++)
{
if(level.var_3CB5[var_00] == self)
{
return;
}
}
level.var_3CB5[level.var_3CB5.size] = self;
}
//Function Number: 21
func_1908(param_00)
{
return level.agent_funcs[self.agent_type][param_00];
}
//Function Number: 22
func_10972(param_00)
{
return level.var_10970[self.var_1096F][param_00];
}
//Function Number: 23
func_1313C(param_00)
{
if(isagent(param_00) && !isdefined(param_00.var_9D25) || !param_00.var_9D25)
{
return undefined;
}
if(isagent(param_00) && !isdefined(param_00.classname))
{
return undefined;
}
return param_00;
}
//Function Number: 24
func_F28C(param_00)
{
self.var_1E = param_00;
self.health = param_00;
self.maxhealth = param_00;
}
//Function Number: 25
func_5016(param_00,param_01,param_02)
{
var_03 = func_108E8("soldier","axis",param_00,param_01);
if(!isdefined(var_03))
{
return undefined;
}
var_03 botsetscriptgoal(var_03.origin,0,"hunt");
var_03 botsetstance("stand");
var_03 method_83B7();
if(isdefined(param_02))
{
var_03 giveweapon(param_02);
}
else
{
var_03 giveweapon("iw6_dlcweap02_mp");
}
var_03 method_804D("maxInaccuracy",4.5);
var_03 method_804D("minInaccuracy",2.25);
return var_03;
}
//Function Number: 26
func_5003(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 = self;
if(func_9BEA(var_0C,param_00))
{
return;
}
param_02 = scripts\cp\_damage::func_F29B(param_04,param_05,param_02,param_01,param_03,param_06,param_07,param_08,param_09,param_00);
if(isplayer(param_01) && !scripts\cp\_utility::func_9CEB(param_00,param_05,var_0C))
{
param_02 = scripts\cp\_damage::func_EB9D(param_01,param_02,param_04,param_05);
param_02 = scripts\cp\_damage::func_EB9F(param_01,param_02,param_04,param_05,param_08);
}
param_02 = func_E54A(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,var_0C);
param_02 = scripts\cp\_damage::func_EB9E(param_01,param_02);
param_02 = int(param_02);
func_D96E(param_01,param_02,param_04);
func_D96D(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,var_0C);
func_D96B(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,var_0C);
var_0C [[ level.agent_funcs[var_0C.agent_type]["on_damaged_finished"] ]](param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,0,param_0A,param_0B);
}
//Function Number: 27
func_E54A(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A)
{
param_0A.var_E54C = undefined;
if(param_08 == "shield")
{
param_0A.var_E54C = 1;
param_02 = 0;
}
return param_02;
}
//Function Number: 28
func_D96E(param_00,param_01,param_02)
{
if(isdefined(level.var_12D84))
{
[[ level.var_12D84 ]](param_00,param_01,param_02);
}
}
//Function Number: 29
func_5004(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B,param_0C)
{
self method_80E9(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B,param_0C);
var_0D = scripts\cp\_utility::func_9CEB(param_00,param_05);
if(isdefined(param_01))
{
if(isplayer(param_01) || isdefined(param_01.var_222) && isplayer(param_01.var_222))
{
if(!var_0D)
{
param_01 scripts\cp\_damage::func_3D9D(self,param_05,param_04);
}
}
}
return 1;
}
//Function Number: 30
func_9BEA(param_00,param_01)
{
if(isdefined(param_01))
{
if(isdefined(param_01.team) && param_01.team == param_00.team)
{
return 1;
}
if(isdefined(param_01.var_222) && isdefined(param_01.var_222.team) && param_01.var_222.team == param_00.team)
{
return 1;
}
}
return 0;
}
//Function Number: 31
func_5006(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
{
func_C4B3(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,0);
func_4DDB();
}
//Function Number: 32
func_8008(param_00)
{
if(!isdefined(param_00))
{
param_00 = "all";
}
var_01 = func_7D95(param_00);
return var_01.size;
}
//Function Number: 33
func_7D95(param_00)
{
var_01 = [];
if(!isdefined(level.var_1900))
{
return var_01;
}
foreach(var_03 in level.var_1900)
{
if(isdefined(var_03.var_9D25) && var_03.var_9D25)
{
if(param_00 == "all" || var_03.agent_type == param_00)
{
var_01[var_01.size] = var_03;
}
}
}
return var_01;
}
//Function Number: 34
func_7DB0(param_00)
{
var_01 = [];
foreach(var_03 in level.var_1900)
{
if(isalive(var_03) && isdefined(var_03.team) && var_03.team == param_00)
{
var_01[var_01.size] = var_03;
}
}
return var_01;
}
//Function Number: 35
func_7D94(param_00)
{
var_01 = [];
if(!isdefined(level.var_1900))
{
return var_01;
}
foreach(var_03 in level.var_1900)
{
if(isdefined(var_03.var_9D25) && var_03.var_9D25)
{
if(var_03.var_1096F == param_00)
{
var_01[var_01.size] = var_03;
}
}
}
return var_01;
}
//Function Number: 36
func_7DAF()
{
var_00 = [];
foreach(var_02 in level.var_1900)
{
if(isalive(var_02))
{
var_00[var_00.size] = var_02;
}
}
return var_00;
}
//Function Number: 37
func_1601()
{
self.var_9D25 = 1;
}
//Function Number: 38
func_C4B3(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
{
if(scripts\common\utility::istrue(self.var_8C1F))
{
scripts\cp\_utility::func_AAB5(param_02,param_03);
if(!param_09)
{
var_0A = self method_80B8(self getcurrentweapon());
if(isdefined(var_0A))
{
var_0A thread func_51CC();
var_0A.var_222 = self;
var_0A.var_C83A = param_01;
var_0A makeunusable();
}
}
}
if(isdefined(self.nocorpse))
{
return;
}
var_0B = self;
self.var_2C09 = self method_8084(param_08);
if(func_FF32(self))
{
do_immediate_ragdoll(self.var_2C09);
}
else
{
thread func_5124(self.var_2C09,param_06,param_05,param_04,param_00,param_03);
}
func_D97C(param_01,var_0B,param_06,param_04,param_03);
if(isdefined(level.var_12DC7))
{
[[ level.var_12DC7 ]](param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
}
}
//Function Number: 39
func_FF32(param_00)
{
return scripts\common\utility::istrue(param_00.do_immediate_ragdoll);
}
//Function Number: 40
do_immediate_ragdoll(param_00)
{
if(isdefined(param_00))
{
param_00 method_839A();
}
}
//Function Number: 41
func_5124(param_00,param_01,param_02,param_03,param_04,param_05)
{
if(isdefined(param_00))
{
var_06 = param_00 method_8112();
if(animhasnotetrack(var_06,"ignore_ragdoll"))
{
return;
}
}
if(isdefined(level.var_C08A) && level.var_C08A.size)
{
foreach(var_08 in level.var_C08A)
{
if(distancesquared(param_00.origin,var_08.origin) < 65536)
{
return;
}
}
}
wait(0.2);
if(!isdefined(param_00))
{
return;
}
if(param_00 method_81B7())
{
return;
}
var_06 = param_00 method_8112();
var_0A = 0.35;
if(animhasnotetrack(var_06,"start_ragdoll"))
{
var_0B = getnotetracktimes(var_06,"start_ragdoll");
if(isdefined(var_0B))
{
var_0A = var_0B[0];
}
}
var_0C = var_0A * getanimlength(var_06);
wait(var_0C);
if(isdefined(param_00))
{
param_00 method_839A();
}
}
//Function Number: 42
func_51CC()
{
self endon("death");
wait(60);
if(!isdefined(self))
{
return;
}
self delete();
}
//Function Number: 43
func_179E(param_00,param_01,param_02,param_03,param_04,param_05)
{
var_06 = func_E08D(param_03);
var_07 = func_108E8(var_06,param_00,param_01,param_02);
if(isdefined(var_07))
{
var_07 thread [[ var_07 func_10972("spawn") ]](param_01,param_02,param_03,param_04,param_05);
}
return var_07;
}
//Function Number: 44
func_E08D(param_00)
{
var_01 = strtok(param_00," ");
if(isdefined(var_01) && var_01.size == 2)
{
return var_01[1];
}
return param_00;
}
//Function Number: 45
func_D96D(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A)
{
scripts\cp\_damage::func_12DA8(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09);
}
//Function Number: 46
func_D96B(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A)
{
if(!scripts\common\utility::func_9D74(param_04))
{
if(scripts\cp\_utility::func_9CEB(param_00,param_05))
{
return;
}
var_0B = gettime();
if(isdefined(param_01.var_BF85) && param_01.var_BF85 > var_0B)
{
return;
}
else
{
param_01.var_BF85 = var_0B + 250;
}
}
var_0C = "standard";
var_0D = undefined;
if(param_0A.health <= param_02)
{
var_0D = 1;
}
var_0E = scripts\cp\_utility::func_9E27(param_05,param_08,param_04,param_01);
if(var_0E)
{
var_0C = "hitcritical";
}
var_0F = scripts\common\utility::func_9D74(param_04);
var_10 = var_0E && param_01 scripts\cp\_utility::func_9BA0("sharp_shooter_upgrade");
var_11 = var_0F && param_01 scripts\cp\_utility::func_9BA0("bonus_damage_on_last_bullets");
var_12 = var_0F && param_01 scripts\cp\_utility::func_9BA0("damage_booster_upgrade");
var_13 = scripts\common\utility::istrue(param_01.inlaststand);
var_14 = !var_13 && var_0E && var_0F && param_01 scripts\cp\_utility::func_9BA0("headshot_explosion");
var_15 = !scripts\cp\_utility::func_9F19(param_0A) || isagent(param_0A) && param_02 >= param_0A.health;
var_16 = param_04 == "MOD_EXPLOSIVE_BULLET" || param_04 == "MOD_EXPLOSIVE" || param_04 == "MOD_GRENADE_SPLASH" || param_04 == "MOD_PROJECTILE" || param_04 == "MOD_PROJECTILE_SPLASH";
var_17 = param_04 == "MOD_MELEE";
if(scripts\cp\_damage::func_A010(param_05))
{
var_0C = "special_weapon";
}
else if(var_10 || var_11 || var_12 || var_14)
{
var_0C = "card_boosted";
}
else if(issubstr(param_05,"arkyellow") && param_04 == "MOD_EXPLOSIVE_BULLET" && param_08 == "none")
{
var_0C = "yellow_arcane_cp";
}
else if(isplayer(param_01) && param_01 scripts\cp\_utility::has_zombie_perk("perk_machine_boom") && var_16)
{
var_0C = "high_damage";
}
else if(isplayer(param_01) && param_01 scripts\cp\_utility::has_zombie_perk("perk_machine_smack") && var_17)
{
var_0C = "high_damage";
}
else if(isplayer(param_01) && param_01 scripts\cp\_utility::has_zombie_perk("perk_machine_rat_a_tat") && var_0F)
{
var_0C = "high_damage";
}
else if(isplayer(param_01) && scripts\common\utility::istrue(param_01.deadeye_charge) && var_0F)
{
var_0C = "dewdrops_cp";
}
else if(scripts\common\utility::istrue(level.var_9925))
{
var_0C = "high_damage";
}
else if(param_05 == "incendiary_ammo_mp")
{
var_0C = "red_arcane_cp";
}
else if(param_05 == "stun_ammo_mp")
{
var_0C = "blue_arcane_cp";
}
else if(param_05 == "slayer_ammo_mp")
{
var_0C = "pink_arcane_cp";
}
if(isdefined(param_01))
{
if(isdefined(param_01.var_222))
{
param_01.var_222 thread scripts\cp\_damage::func_12E84(var_0C,var_0D,param_02,param_0A.var_E54C);
return;
}
param_01 thread scripts\cp\_damage::func_12E84(var_0C,var_0D,param_02,param_0A.var_E54C);
}
}
//Function Number: 47
func_D97C(param_00,param_01,param_02,param_03,param_04)
{
scripts\cp\_reward::func_82A2(param_00,param_02);
var_05 = func_77D7(param_01);
var_06 = scripts\cp\_utility::func_7844(param_00);
if(isdefined(var_06))
{
scripts\cp\_persistence::func_DDE9(param_03,param_02,param_04,var_06);
if(isdefined(level.var_B07A) && isdefined(var_05))
{
[[ level.var_B07A ]](var_05,self.origin,param_00);
}
}
}
//Function Number: 48
get_alive_enemies()
{
var_00 = func_7DB0("axis");
var_01 = [];
if(isdefined(level.var_5755))
{
var_01 = [[ level.var_5755 ]]();
}
var_00 = scripts\common\utility::array_combine(var_00,var_01);
return var_00;
}
//Function Number: 49
func_77D7(param_00)
{
return param_00.agent_type;
}
//Function Number: 50
func_110A4(param_00,param_01)
{
param_00 = scripts\cp\_utility::func_7844(param_00);
if(!isdefined(param_00))
{
return;
}
if(!isdefined(self.var_24DA))
{
self.var_24DA = [];
}
foreach(var_03 in self.var_24DA)
{
if(var_03.player == param_00)
{
var_03.var_DA = var_03.var_DA + param_01;
return;
}
}
var_05 = spawnstruct();
var_05.player = param_00;
var_05.var_DA = param_01;
self.var_24DA[self.var_24DA.size] = var_05;
}
//Function Number: 51
func_4DDB()
{
if(scripts\cp\_utility::func_9E0E(self))
{
scripts\cp\_utility::func_E113();
}
scripts\cp\_utility::func_E106();
scripts\cp\_utility::func_E119();
self.var_9D25 = 0;
self.var_8BE2 = 0;
self.var_B36A = undefined;
self.var_BB9C = undefined;
self.var_222 = undefined;
self.var_4539 = undefined;
self.var_136FD = undefined;
self.var_9B81 = undefined;
self.var_9BC9 = undefined;
self.var_1118F = undefined;
self.var_BDF5 = undefined;
foreach(var_01 in level.var_3CB5)
{
if(isdefined(var_01.var_2507))
{
foreach(var_04, var_03 in var_01.var_2507)
{
if(var_03 == self)
{
var_01.var_2507[var_04] = undefined;
}
}
}
}
if(isdefined(self.var_8C98))
{
self.var_8C98 = undefined;
}
scripts\mp\_mp_agent::func_4DDB();
self notify("disconnect");
}

View File

@ -0,0 +1,673 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\cp_analytics.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 44
* Decompile Time: 2093 ms
* Timestamp: 10/27/2023 12:09:16 AM
*******************************************************************/
//Function Number: 1
func_10C5A(param_00,param_01,param_02)
{
init(param_02);
func_9679(param_00,param_01);
}
//Function Number: 2
func_9679(param_00,param_01)
{
setmatchdatadef(param_00);
function_01A9(param_01);
setmatchdata("commonMatchData","map",level.script);
setmatchdata("commonMatchData","gametype",getdvar("ui_gametype"));
setmatchdata("commonMatchData","buildVersion",function_007F());
setmatchdata("commonMatchData","buildNumber",function_007E());
setmatchdata("commonMatchData","utcStartTimeSeconds",function_00D2());
setmatchdata("commonMatchData","isPrivateMatch",getdvarint("xblive_privatematch"));
setmatchdata("commonMatchData","isRankedMatch",1);
setmatchdataid();
level thread func_13663();
}
//Function Number: 3
init(param_00)
{
var_01 = spawnstruct();
var_02 = [];
var_01.var_1020C = var_02;
var_03 = [];
var_01.var_3C1F = var_03;
level.var_13F0B = var_01;
func_94FA(param_00);
level.player_count = 0;
level.player_count_left = 0;
}
//Function Number: 4
func_13663()
{
level endon("gameEnded");
level waittill("prematch_done");
setmatchdata("commonMatchData","playerCountStart",func_13134(level.players.size));
}
//Function Number: 5
func_C4B8()
{
func_D0F6();
set_player_count();
func_F5AC();
func_F443();
setmatchdata("players",self.var_41F0,"playerID","xuid",scripts\cp\_utility::func_81EC());
setmatchdata("players",self.var_41F0,"gamertag",self.name);
setmatchdata("players",self.var_41F0,"waveStart",level.wave_num);
setmatchdata("players",self.var_41F0,"quit",0);
level.player_count = level.player_count + 1;
}
//Function Number: 6
on_player_disconnect(param_00)
{
setmatchdata("players",self.var_41F0,"disconnectReason",param_00);
setmatchdata("players",self.var_41F0,"quit",param_00 == "EXE_DISCONNECTED");
set_custom_stats();
level.player_count_left = level.player_count_left + 1;
}
//Function Number: 7
func_D0F6()
{
var_00 = spawnstruct();
var_01 = [];
var_01["cashSpentOnWeapon"] = func_7C6B(0,"int");
var_01["cashSpentOnAbility"] = func_7C6B(0,"int");
var_01["cashSpentOnTrap"] = func_7C6B(0,"int");
var_00.var_1020C = var_01;
var_02 = [];
var_02["timesDowned"] = [];
var_02["timesRevived"] = [];
var_02["timesBledOut"] = [];
var_00.var_AA03 = var_02;
self.var_13F0B = var_00;
}
//Function Number: 8
set_player_count()
{
if(!isdefined(level.max_concurrent_player_count))
{
level.max_concurrent_player_count = 0;
}
if(level.players.size >= level.max_concurrent_player_count)
{
level.max_concurrent_player_count = level.players.size + 1;
}
}
//Function Number: 9
func_F5AC()
{
setmatchdata("players",self.var_41F0,"isSplitscreen",self issplitscreenplayer());
}
//Function Number: 10
func_F443()
{
if(func_D84A())
{
setmatchdata("players",self.var_41F0,"joinInProgress",1);
}
}
//Function Number: 11
func_D84A()
{
if(scripts\common\utility::func_6E34("introscreen_over") && scripts\common\utility::flag("introscreen_over"))
{
return 1;
}
return 0;
}
//Function Number: 12
func_12D9F(param_00,param_01)
{
if(level.var_13F0B.var_3C1F.size > 25)
{
return;
}
var_02 = spawnstruct();
var_02.var_3C1B = param_00;
var_02.var_264 = param_01;
level.var_13F0B.var_3C1F[level.var_13F0B.var_3C1F.size] = var_02;
}
//Function Number: 13
func_93C1()
{
func_93C4("timesDowned");
}
//Function Number: 14
func_93C7()
{
func_93C4("timesRevived");
}
//Function Number: 15
func_93BE()
{
func_93C4("timesBledOut");
}
//Function Number: 16
func_93C4(param_00)
{
if(!isdefined(self.var_13F0B.var_AA03[param_00][level.wave_num]))
{
self.var_13F0B.var_AA03[param_00][level.wave_num] = 0;
}
self.var_13F0B.var_AA03[param_00][level.wave_num]++;
}
//Function Number: 17
func_12E2E(param_00,param_01)
{
switch(param_01)
{
case "weapon":
self.var_13F0B.var_1020C["cashSpentOnWeapon"].var_13153 = self.var_13F0B.var_1020C["cashSpentOnWeapon"].var_13153 + param_00;
break;
case "ability":
self.var_13F0B.var_1020C["cashSpentOnAbility"].var_13153 = self.var_13F0B.var_1020C["cashSpentOnAbility"].var_13153 + param_00;
break;
case "trap":
self.var_13F0B.var_1020C["cashSpentOnTrap"].var_13153 = self.var_13F0B.var_1020C["cashSpentOnTrap"].var_13153 + param_00;
break;
default:
break;
}
}
//Function Number: 18
endgame(param_00,param_01)
{
func_F3C5(param_00,param_01);
func_13DFF();
log_matchdata_at_game_end();
foreach(var_04, var_03 in level.players)
{
scripts\cp\_persistence::increment_player_career_total_waves(var_03);
scripts\cp\_persistence::increment_player_career_total_score(var_03);
var_03 set_player_data(param_01);
var_03 func_F52B();
var_03 func_13DFD(var_03,var_04);
}
if(isdefined(level.var_1E5F))
{
[[ level.var_1E5F ]]();
}
sendmatchdata();
function_01A3();
}
//Function Number: 19
set_player_data(param_00)
{
var_01 = self getplayerdata("cp","coopCareerStats","totalGameplayTime");
var_02 = self getplayerdata("cp","coopCareerStats","gamesPlayed");
if(!isdefined(var_01))
{
var_01 = 0;
}
if(!isdefined(var_02))
{
var_02 = 0;
}
var_01 = var_01 + param_00 / 1000;
var_02 = var_02 + 1;
self setplayerdata("cp","coopCareerStats","totalGameplayTime",int(var_01));
self setplayerdata("cp","coopCareerStats","gamesPlayed",int(var_02));
}
//Function Number: 20
func_F3C5(param_00,param_01)
{
var_02 = "challengesCompleted";
var_03 = level.var_13F0B;
foreach(var_05 in var_03.var_1020C)
{
var_06 = func_13137(var_05.var_13153,var_05.var_13155);
}
foreach(var_09 in var_03.var_3C1F)
{
}
setmatchdata("commonMatchData","playerCountEnd",level.players.size);
setmatchdata("commonMatchData","utcEndTimeSeconds",function_00D2());
setmatchdata("commonMatchData","playerCount",func_13134(level.player_count));
setmatchdata("commonMatchData","playerCountLeft",func_13134(level.player_count_left));
setmatchdata("playerCountMaxConcurrent",func_13134(level.max_concurrent_player_count));
}
//Function Number: 21
func_F52B()
{
func_4642();
func_F44C();
func_F59E();
set_custom_stats();
}
//Function Number: 22
get_player_matchdata(param_00,param_01)
{
if(isdefined(level.var_B3DF["player"][self.var_41F0]) && isdefined(level.var_B3DF["player"][self.var_41F0][param_00]))
{
return level.var_B3DF["player"][self.var_41F0][param_00];
}
return param_01;
}
//Function Number: 23
set_custom_stats()
{
var_00 = self getplayerdata("cp","coopCareerStats","totalGameplayTime");
var_01 = self getplayerdata("cp","coopCareerStats","gamesPlayed");
var_02 = self getplayerdata("cp","progression","playerLevel","rank");
var_03 = self getplayerdata("cp","progression","playerLevel","prestige");
if(isdefined(self.wave_num_when_joined))
{
setmatchdata("players",self.var_41F0,"waveEnd",level.wave_num - self.wave_num_when_joined);
}
else
{
setmatchdata("players",self.var_41F0,"waveEnd",level.wave_num);
}
setmatchdata("players",self.var_41F0,"doorsOpened",get_player_matchdata("opening_the_doors",0));
setmatchdata("players",self.var_41F0,"moneyEarned",int(get_player_matchdata("currency_earned",0)));
setmatchdata("players",self.var_41F0,"kills",get_player_matchdata("zombie_death",0));
setmatchdata("players",self.var_41F0,"downs",get_player_matchdata("dropped_to_last_stand",0));
setmatchdata("players",self.var_41F0,"revives",get_player_matchdata("revived_another_player",0));
setmatchdata("players",self.var_41F0,"headShots",self.var_11A25);
setmatchdata("players",self.var_41F0,"shots",self.accuracy_shots_fired);
setmatchdata("players",self.var_41F0,"hits",self.var_154B);
setmatchdata("players",self.var_41F0,"rank",func_13134(var_02));
setmatchdata("players",self.var_41F0,"prestige",func_13134(var_03));
setmatchdata("players",self.var_41F0,"totalGameplayTime",func_13135(var_00));
setmatchdata("players",self.var_41F0,"gamesPlayed",func_13135(var_01));
}
//Function Number: 24
func_4642()
{
}
//Function Number: 25
func_F44C()
{
}
//Function Number: 26
func_F59E()
{
}
//Function Number: 27
func_13137(param_00,param_01)
{
switch(param_01)
{
case "byte":
return func_13134(param_00);
case "short":
return func_13136(param_00);
case "int":
return func_13135(param_00);
default:
break;
}
}
//Function Number: 28
func_13134(param_00)
{
return int(min(param_00,127));
}
//Function Number: 29
func_13136(param_00)
{
return int(min(param_00,32767));
}
//Function Number: 30
func_13135(param_00)
{
return int(min(param_00,2147483647));
}
//Function Number: 31
func_7C6B(param_00,param_01)
{
var_02 = spawnstruct();
var_02.var_13153 = param_00;
var_02.var_13155 = param_01;
return var_02;
}
//Function Number: 32
func_94FA(param_00)
{
var_01 = 0;
var_02 = 1;
var_03 = 2;
var_04 = 1;
var_05 = 2;
var_06 = 3;
var_07 = 4;
var_08 = 5;
var_09 = 6;
var_0A = 1;
var_0B = 100;
var_0C = 101;
var_0D = 300;
level.var_2B23 = [];
level.var_B3E2 = [];
level.var_B3E0 = [];
level.var_B3DF = [];
level.var_41F3 = [];
level.var_41F2 = [];
level.var_41F1 = [];
for(var_0E = var_0C;var_0E <= var_0D;var_0E++)
{
var_0F = tablelookup(param_00,var_01,var_0E,var_04);
if(var_0F == "")
{
continue;
}
var_10 = tablelookup(param_00,var_01,var_0E,var_05);
if(var_10 != "")
{
level.var_2B23[var_0F] = var_10;
}
var_11 = tablelookup(param_00,var_01,var_0E,var_06);
if(var_11 != "")
{
level.var_B3E0[var_0F] = var_11;
}
var_12 = tablelookup(param_00,var_01,var_0E,var_07);
if(var_12 != "")
{
level.var_B3E2[var_0F] = [];
level.var_B3DF[var_0F] = [];
}
var_13 = tablelookup(param_00,var_01,var_0E,var_08);
if(var_13 != "")
{
level.var_41F2[var_0F] = var_13;
}
var_14 = tablelookup(param_00,var_01,var_0E,var_09);
if(var_14 != "")
{
level.var_41F3[var_0F] = [];
level.var_41F1[var_0F] = [];
}
}
level.var_1E5C = [];
for(var_0E = var_0A;var_0E <= var_0B;var_0E++)
{
var_15 = tablelookup(param_00,var_01,var_0E,var_02);
if(var_15 == "")
{
break;
}
var_16 = tablelookup(param_00,var_01,var_0E,var_03);
level.var_1E5C[var_15] = var_16;
var_17 = strtok(var_16," ");
foreach(var_19 in var_17)
{
if(isdefined(level.var_B3E2[var_19]))
{
level.var_B3E2[var_19][var_15] = 0;
}
if(isdefined(level.var_41F3[var_19]) && isdefined(level.var_41F2[var_15]))
{
level.var_41F3[var_19][var_15] = 0;
}
}
}
}
//Function Number: 33
func_AF6A(param_00,param_01,param_02,param_03,param_04)
{
var_05 = func_7925(param_00);
func_AF7A(param_00,var_05,param_01,param_03);
func_AF65(param_00,var_05,param_01,param_04);
}
//Function Number: 34
log_matchdata_at_game_end()
{
foreach(var_08, var_01 in level.var_B3DF)
{
foreach(var_07, var_03 in var_01)
{
foreach(var_06, var_05 in var_03)
{
if(var_08 == "match")
{
setmatchdata("matchData",var_06,int(var_05));
continue;
}
setmatchdata("players",int(var_07),var_06,int(var_05));
}
}
}
}
//Function Number: 35
func_AF60(param_00,param_01,param_02)
{
var_03 = func_785B(param_01);
var_04 = "analytics_cp_";
switch(param_02.size)
{
case 1:
bbprint(var_04 + param_00,var_03,param_02[0]);
break;
case 2:
bbprint(var_04 + param_00,var_03,param_02[0],param_02[1]);
break;
case 3:
bbprint(var_04 + param_00,var_03,param_02[0],param_02[1],param_02[2]);
break;
case 4:
bbprint(var_04 + param_00,var_03,param_02[0],param_02[1],param_02[2],param_02[3]);
break;
case 5:
bbprint(var_04 + param_00,var_03,param_02[0],param_02[1],param_02[2],param_02[3],param_02[4]);
break;
case 6:
bbprint(var_04 + param_00,var_03,param_02[0],param_02[1],param_02[2],param_02[3],param_02[4],param_02[5]);
break;
case 7:
bbprint(var_04 + param_00,var_03,param_02[0],param_02[1],param_02[2],param_02[3],param_02[4],param_02[5],param_02[6]);
break;
case 8:
bbprint(var_04 + param_00,var_03,param_02[0],param_02[1],param_02[2],param_02[3],param_02[4],param_02[5],param_02[6],param_02[7]);
break;
case 9:
bbprint(var_04 + param_00,var_03,param_02[0],param_02[1],param_02[2],param_02[3],param_02[4],param_02[5],param_02[6],param_02[7],param_02[8]);
break;
case 10:
bbprint(var_04 + param_00,var_03,param_02[0],param_02[1],param_02[2],param_02[3],param_02[4],param_02[5],param_02[6],param_02[7],param_02[8],param_02[9]);
break;
}
}
//Function Number: 36
func_785B(param_00)
{
var_01 = "";
foreach(var_04, var_03 in param_00)
{
var_01 = var_01 + var_03 + " " + level.var_2B23[var_03];
if(var_04 != param_00.size - 1)
{
var_01 = var_01 + " ";
}
}
return var_01;
}
//Function Number: 37
func_7925(param_00)
{
var_01 = level.var_1E5C[param_00];
return strtok(var_01," ");
}
//Function Number: 38
func_AF7A(param_00,param_01,param_02,param_03)
{
var_04 = 0;
foreach(var_06 in param_01)
{
if(func_9C41(var_06))
{
var_07 = param_03[var_04];
if(!isdefined(level.var_B3DF[var_06][var_07]))
{
level.var_B3DF[var_06][var_07] = level.var_B3E2[var_06];
}
level.var_B3DF[var_06][var_07][param_00] = level.var_B3DF[var_06][var_07][param_00] + param_02;
var_04++;
}
}
}
//Function Number: 39
func_AF65(param_00,param_01,param_02,param_03)
{
if(!isdefined(param_03))
{
return;
}
var_04 = 0;
if(func_9B8E(param_00))
{
foreach(var_06 in param_01)
{
if(func_9B8F(var_06))
{
var_07 = param_03[var_04];
if(!isdefined(level.var_41F1[var_06][var_07]))
{
level.var_41F1[var_06][var_07] = level.var_41F3[var_06];
}
level.var_41F1[var_06][var_07][param_00] = level.var_41F1[var_06][var_07][param_00] + param_02;
var_04++;
}
}
}
}
//Function Number: 40
func_9C41(param_00)
{
return isdefined(level.var_B3E2[param_00]);
}
//Function Number: 41
func_9B8F(param_00)
{
return isdefined(level.var_41F3[param_00]);
}
//Function Number: 42
func_9B8E(param_00)
{
return isdefined(level.var_41F2[param_00]);
}
//Function Number: 43
func_13DFF()
{
setclientmatchdata("waves_survived",level.wave_num);
setclientmatchdata("time_survived",level.var_118DB);
setclientmatchdata("scoreboardPlayerCount",level.players.size);
setclientmatchdata("map",level.script);
if(isdefined(level.write_global_clientmatchdata_func))
{
[[ level.write_global_clientmatchdata_func ]]();
}
}
//Function Number: 44
func_13DFD(param_00,param_01)
{
setclientmatchdata("player",param_01,"username",param_00.name);
setclientmatchdata("player",param_01,"rank",param_00 scripts\cp\_persistence::func_7BAA());
if(!isdefined(param_00.var_CFC3))
{
return;
}
setclientmatchdata("player",param_01,"characterIndex",param_00.var_CFC3);
var_02 = level.var_41F1["player"][param_00.var_41F0];
if(isdefined(var_02))
{
foreach(var_05, var_04 in var_02)
{
setclientmatchdata("player",param_01,var_05,int(var_04));
}
}
if(isdefined(level.var_6324))
{
[[ level.var_6324 ]](param_00,param_01);
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,254 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\cp_hostmigration.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 13
* Decompile Time: 656 ms
* Timestamp: 10/27/2023 12:09:21 AM
*******************************************************************/
//Function Number: 1
func_90AC()
{
level endon("game_ended");
level.ingraceperiod = 25;
thread func_B412("waiting_for_players",20);
func_90AD();
level.ingraceperiod = 10;
thread func_B412("match_resuming_in",5);
wait(5);
level.ingraceperiod = 0;
}
//Function Number: 2
func_90AD()
{
level endon("hostmigration_enoughplayers");
wait(15);
}
//Function Number: 3
func_90A7(param_00)
{
if(!isdefined(param_00))
{
return "<removed_ent>";
}
var_01 = -1;
var_02 = "?";
if(isdefined(param_00.var_6640))
{
var_01 = param_00.var_6640;
}
if(isplayer(param_00) && isdefined(param_00.name))
{
var_02 = param_00.name;
}
if(isplayer(param_00))
{
return "player <" + var_02 + ">";
}
if(isagent(param_00) && scripts\cp\_utility::func_9E0E(param_00))
{
return "participant agent <" + var_01 + ">";
}
if(isagent(param_00))
{
return "non-participant agent <" + var_01 + ">";
}
return "unknown entity <" + var_01 + ">";
}
//Function Number: 4
func_90AB()
{
level endon("host_migration_begin");
level endon("host_migration_end");
while(!scripts\cp\_utility::func_9F19(self))
{
self waittill("spawned");
}
self.var_90A6 = 1;
scripts\cp\_utility::func_7385(1);
level waittill("host_migration_end");
}
//Function Number: 5
func_90AA()
{
self endon("disconnect");
func_90AB();
if(self.var_90A6)
{
if(scripts\cp\_utility::func_766C("prematch_done"))
{
scripts\cp\_utility::func_7385(0);
}
self.var_90A6 = undefined;
}
}
//Function Number: 6
func_13834()
{
if(!isdefined(level.var_90A9))
{
return 0;
}
var_00 = gettime();
level waittill("host_migration_end");
return gettime() - var_00;
}
//Function Number: 7
func_13835(param_00)
{
if(isdefined(level.var_90A9))
{
return;
}
level endon("host_migration_begin");
wait(param_00);
}
//Function Number: 8
func_13708(param_00)
{
if(param_00 == 0)
{
return;
}
var_01 = gettime();
var_02 = gettime() + param_00 * 1000;
while(gettime() < var_02)
{
func_13835(var_02 - gettime() / 1000);
if(isdefined(level.var_90A9))
{
var_03 = func_13834();
var_02 = var_02 + var_03;
}
}
func_13834();
return gettime() - var_01;
}
//Function Number: 9
func_137B8(param_00,param_01)
{
self endon(param_00);
if(param_01 == 0)
{
return;
}
var_02 = gettime();
var_03 = gettime() + param_01 * 1000;
while(gettime() < var_03)
{
func_13835(var_03 - gettime() / 1000);
if(isdefined(level.var_90A9))
{
var_04 = func_13834();
var_03 = var_03 + var_04;
}
}
func_13834();
return gettime() - var_02;
}
//Function Number: 10
func_13707(param_00)
{
if(param_00 == 0)
{
return;
}
var_01 = gettime();
var_02 = gettime() + param_00 * 1000;
while(gettime() < var_02)
{
func_13835(var_02 - gettime() / 1000);
while(isdefined(level.var_90A9))
{
var_02 = var_02 + 1000;
function_01AF(int(var_02));
wait(1);
}
}
while(isdefined(level.var_90A9))
{
var_02 = var_02 + 1000;
function_01AF(int(var_02));
wait(1);
}
return gettime() - var_01;
}
//Function Number: 11
func_B412(param_00,param_01)
{
self notify("matchStartTimer");
self endon("matchStartTimer");
level notify("match_start_timer_beginning");
var_02 = int(param_01);
if(var_02 >= 2)
{
setomnvar("ui_match_start_text",param_00);
func_B413(var_02);
function_0237("",3);
return;
}
func_9B01();
function_0237("",1);
}
//Function Number: 12
func_B413(param_00)
{
waittillframeend;
func_9B01();
level endon("match_start_timer_beginning");
while(param_00 > 0 && !level.var_7669)
{
setomnvar("ui_match_start_countdown",param_00);
if(param_00 == 0)
{
function_0237("",0);
}
param_00--;
wait(1);
}
setomnvar("ui_match_start_countdown",0);
}
//Function Number: 13
func_9B01()
{
if(!isdefined(level.var_9B01))
{
level.var_9B01 = "mpIntro";
}
function_0237(level.var_9B01,0);
}

View File

@ -0,0 +1,486 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\cp_hud_message.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 28
* Decompile Time: 1324 ms
* Timestamp: 10/27/2023 12:09:22 AM
*******************************************************************/
//Function Number: 1
init()
{
level thread func_C56E();
}
//Function Number: 2
func_C56E()
{
for(;;)
{
level waittill("connected",var_00);
var_00 thread func_901D();
var_00 thread func_B0E1();
var_00 thread func_10A40();
}
}
//Function Number: 3
func_10134(param_00,param_01,param_02)
{
if(!isplayer(self))
{
return;
}
var_03 = spawnstruct();
if(isdefined(param_02))
{
param_00 = param_00 + "_" + param_02;
}
func_10151(param_00,param_01);
}
//Function Number: 4
func_10117(param_00,param_01)
{
var_02 = undefined;
if(isdefined(param_01))
{
var_02 = param_01;
}
else
{
var_02 = scripts\cp\_hud_util::func_BD6F(param_00) - 1;
}
var_03 = level.var_B684[param_00]["displayParam"];
if(!isdefined(var_03))
{
var_03 = scripts\cp\_hud_util::func_BD70(param_00,var_02);
if(var_03 == 0)
{
var_03 = 1;
}
var_04 = level.var_B684[param_00]["paramScale"];
if(isdefined(var_04))
{
var_03 = int(var_03 / var_04);
}
}
thread func_10151(param_00,var_03);
}
//Function Number: 5
func_10151(param_00,param_01,param_02)
{
if(isdefined(self.var_DDCD) && self.var_DDCD >= 6)
{
func_DB99(param_00,param_01,param_02);
return;
}
func_10152(param_00,param_01,param_02);
}
//Function Number: 6
func_10152(param_00,param_01,param_02)
{
if(!isplayer(self))
{
return;
}
var_03 = tablelookuprownum(func_814B(),0,param_00);
if(!isdefined(var_03) || var_03 < 0)
{
return;
}
if(!isdefined(self.var_BFAE))
{
self.var_BFAE = 0;
}
if(!isdefined(self.var_10A37))
{
self.var_10A37 = 1;
}
var_04 = var_03;
if(self.var_10A37)
{
var_04 = var_04 | 2048;
}
if(isdefined(param_01))
{
self setclientomnvar("ui_player_splash_param_" + self.var_BFAE,param_01);
}
else
{
self setclientomnvar("ui_player_splash_param_" + self.var_BFAE,-1);
}
if(isdefined(param_02))
{
self setclientomnvar("ui_player_splash_cardClientId_" + self.var_BFAE,param_02 getentitynumber());
}
else
{
self setclientomnvar("ui_player_splash_cardClientId_" + self.var_BFAE,-1);
}
self setclientomnvar("ui_player_splash_id_" + self.var_BFAE,var_04);
if(!isdefined(self.var_DDCD))
{
self.var_DDCD = 1;
}
else
{
self.var_DDCD++;
}
thread func_4103();
self.var_BFAE++;
if(self.var_BFAE >= 6)
{
self.var_BFAE = 0;
self.var_10A37 = !self.var_10A37;
}
}
//Function Number: 7
func_DB99(param_00,param_01,param_02)
{
var_03 = spawnstruct();
var_03.var_DE3F = param_00;
var_03.var_C6BB = param_01;
var_03.var_D390 = param_02;
if(!isdefined(self.var_10A3E))
{
self.var_10A3E = var_03;
self.var_10A3F = var_03;
thread func_89E9();
return;
}
var_04 = self.var_10A3F;
var_04.var_BFAD = var_03;
self.var_10A3F = var_03;
}
//Function Number: 8
func_89E9()
{
level endon("game_ended");
self endon("death");
self endon("disconnect");
while(isdefined(self.var_10A3E))
{
self waittill("splash_list_cleared");
for(var_00 = 0;var_00 < 6;var_00++)
{
var_01 = self.var_10A3E;
func_10152(var_01.var_DE3F,var_01.var_C6BB,var_01.var_D390);
self.var_10A3E = var_01.var_BFAD;
if(!isdefined(self.var_10A3E))
{
break;
}
}
}
self.var_10A3F = undefined;
}
//Function Number: 9
func_B0E1()
{
self endon("disconnect");
self.lowermessages = [];
var_00 = "default";
if(isdefined(level.var_B0DF))
{
var_00 = level.var_B0DF;
}
var_01 = level.var_B0E5;
var_02 = level.var_B0E4;
var_03 = 1.25;
if(level.splitscreen || self issplitscreenplayer() && !isai(self))
{
var_01 = var_01 - 40;
var_02 = level.var_B0E4 * 1.3;
var_03 = var_03 * 1.5;
}
self.lowermessage = scripts\cp\_utility::createfontstring(var_00,var_02);
self.lowermessage settext("");
self.lowermessage.archived = 0;
self.lowermessage.sort = 10;
self.lowermessage.showinkillcam = 0;
self.lowermessage scripts\cp\_utility::setpoint("CENTER",level.var_B0E6,0,var_01);
self.lowertimer = scripts\cp\_utility::createfontstring("default",var_03);
self.lowertimer scripts\cp\_utility::setparent(self.lowermessage);
self.lowertimer scripts\cp\_utility::setpoint("TOP","BOTTOM",0,0);
self.lowertimer settext("");
self.lowertimer.archived = 0;
self.lowertimer.sort = 10;
self.lowertimer.showinkillcam = 0;
}
//Function Number: 10
func_9DC6()
{
return 0;
}
//Function Number: 11
func_814B()
{
return "cp/zombies/zombie_splashtable.csv";
}
//Function Number: 12
func_4103()
{
self endon("disconnect");
self notify("cleanupLocalPlayerSplashList()");
self endon("cleanupLocalPlayerSplashList()");
scripts\common\utility::waittill_notify_or_timeout("death",0.5);
self.var_DDCD = undefined;
self notify("splash_list_cleared");
}
//Function Number: 13
func_10A40()
{
self endon("disconnect");
for(;;)
{
self waittill("luinotifyserver",var_00,var_01);
if(var_00 != "splash_shown")
{
continue;
}
var_02 = tablelookupbyrow(func_814B(),var_01,0);
var_03 = tablelookupbyrow(func_814B(),var_01,5);
switch(var_03)
{
case "killstreak_splash":
break;
}
}
}
//Function Number: 14
func_C549(param_00)
{
}
//Function Number: 15
func_10122(param_00,param_01)
{
var_02 = tablelookuprownum("mp/errorMessages.csv",0,param_00);
if(isdefined(param_01))
{
self setclientomnvar("ui_mp_error_message_param",param_01);
}
else
{
self setclientomnvar("ui_mp_error_message_param",-1);
}
self setclientomnvar("ui_mp_error_message_id",var_02);
if(!isdefined(self.var_66BF))
{
self.var_66BF = 0;
}
self.var_66BF = !self.var_66BF;
self setclientomnvar("ui_mp_error_trigger",scripts\common\utility::func_116D7(self.var_66BF,2,1));
}
//Function Number: 16
func_10123(param_00,param_01)
{
foreach(var_03 in level.players)
{
func_10122(param_00,param_01);
}
}
//Function Number: 17
func_1013D(param_00)
{
var_01 = tablelookuprownum("mp/miscMessages.csv",0,param_00);
var_02 = tablelookupbyrow("mp/miscMessages.csv",var_01,3);
if(isdefined(var_02) && var_02 != "")
{
self playlocalsound(var_02);
}
self setclientomnvar("ui_misc_message_id",var_01);
if(!isdefined(self.var_B7D7))
{
self.var_B7D7 = 0;
}
self.var_B7D7 = !self.var_B7D7;
self setclientomnvar("ui_misc_message_trigger",scripts\common\utility::func_116D7(self.var_B7D7,1,0));
}
//Function Number: 18
func_901D()
{
self endon("disconnect");
for(;;)
{
self waittill("death");
if(isdefined(self.var_901C))
{
self.var_901C scripts\cp\_utility::destroyelem();
}
}
}
//Function Number: 19
func_978F()
{
self setplayerdata("cp","zombiePlayerLoadout","tutorialOff",1);
self.var_8EB0 = 1;
thread check_for_more_players();
}
//Function Number: 20
check_for_more_players()
{
level waittill("multiple_players");
self.var_8EB0 = 0;
if(!isdefined(level.tutorial_interaction_1) || !isdefined(level.tutorial_interaction_2))
{
return;
}
scripts\cp\_interaction::remove_from_current_interaction_list(level.tutorial_interaction_1);
scripts\cp\_interaction::remove_from_current_interaction_list(level.tutorial_interaction_2);
}
//Function Number: 21
tutorial_interaction()
{
level endon("game_ended");
self endon("disconnect");
self endon("death");
self waittill("luinotifyserver",var_00);
if(var_00 == "tutorial_off")
{
self setplayerdata("cp","zombiePlayerLoadout","tutorialOff",1);
self.var_8EB0 = 1;
}
if(var_00 == "tutorial_on")
{
self setplayerdata("cp","zombiePlayerLoadout","tutorialOff",0);
self.var_8EB0 = 0;
}
}
//Function Number: 22
func_12AAE(param_00)
{
if(!scripts\cp\_utility::isplayingsolo() || level.only_one_player)
{
return;
}
var_01 = level.players[0];
if(var_01.var_8EB0 == 1)
{
return;
}
if(!isdefined(level.tutorial_message_table))
{
return;
}
if(!func_1007B(param_00))
{
return;
}
if(var_01 func_79FC(param_00))
{
return;
}
if(param_00 != "null" && !scripts\common\utility::istrue(level.var_12AA3))
{
level.var_12AA3 = 1;
var_02 = int(tablelookup(level.tutorial_message_table,1,param_00,0));
var_01 setclientomnvar("zm_tutorial_num",var_02);
var_01 func_F3F9(param_00,1);
level.var_12AA3 = undefined;
}
}
//Function Number: 23
func_F3F9(param_00,param_01)
{
self setplayerdata("cp","tutorial",param_00,"saw_message",param_01);
}
//Function Number: 24
func_F3F8(param_00,param_01)
{
self setplayerdata("cp","tutorialPerm",param_00,"saw_message",param_01);
}
//Function Number: 25
func_79FC(param_00)
{
var_01 = self getplayerdata("cp","tutorial",param_00,"saw_message");
return var_01;
}
//Function Number: 26
func_1363B()
{
level endon("game_ended");
self endon("disconnect");
self waittill("luinotifyserver",var_00);
if(var_00 == "tutorial_unpause")
{
setslowmotion(1,1,0);
}
}
//Function Number: 27
func_1007B(param_00)
{
if(isdefined(level.should_show_tutorial_func))
{
return [[ level.should_show_tutorial_func ]](param_00);
}
return 1;
}
//Function Number: 28
wait_and_play_tutorial_message(param_00,param_01)
{
level endon("game_ended");
self endon("disconnect");
self endon("death");
self notify("clear_message");
self endon("clear_message");
wait(param_01);
func_12AAE(param_00);
}

View File

@ -0,0 +1,307 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\cp_hud_util.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 16
* Decompile Time: 766 ms
* Timestamp: 10/27/2023 12:09:23 AM
*******************************************************************/
//Function Number: 1
func_BD6E(param_00)
{
return self getplayerdata("cp","meritProgress",param_00);
}
//Function Number: 2
func_BD6F(param_00)
{
return self getplayerdata("cp","meritState",param_00);
}
//Function Number: 3
func_BD75(param_00,param_01)
{
if(param_00 == "mt_highest_round")
{
var_02 = func_BD6F("mt_highest_round");
var_03 = func_BD70("mt_highest_round",var_02);
if(level.wave_num >= var_03)
{
return self setplayerdata("cp","meritProgress",param_00,var_03);
}
return;
}
return self setplayerdata("cp","meritProgress",var_02,var_03);
}
//Function Number: 4
func_BD76(param_00,param_01)
{
return self setplayerdata("cp","meritState",param_00,param_01);
}
//Function Number: 5
func_BD70(param_00,param_01)
{
return int(tablelookup("cp/allMeritsTable.csv",0,param_00,10 + param_01 * 3));
}
//Function Number: 6
func_D4F6(param_00,param_01,param_02)
{
if(scripts\cp\_utility::func_9FC6() && scripts\common\utility::istrue(self.var_13170))
{
return;
}
var_03 = func_7919(param_02);
if(func_9CD1(param_01))
{
func_CE3E(var_03);
return;
}
if(func_9CD0(param_01))
{
func_CE3E("center");
return;
}
if(func_9BCA(param_00))
{
playfxontagforclients(level._effect["vfx_melee_blood_spray"],self,"tag_eye",self);
return;
}
func_CCA5(var_03);
}
//Function Number: 7
func_7919(param_00)
{
var_01 = 0.965;
var_02 = ["left","center","right"];
if(!isdefined(param_00))
{
return var_02[randomint(var_02.size)];
}
param_00 = param_00 * -1;
var_03 = anglestoforward(self.angles);
var_04 = vectordot(param_00,var_03);
if(var_04 > var_01)
{
return "center";
}
var_05 = anglestoright(self.angles);
var_06 = vectordot(param_00,var_05);
if(var_06 > 0)
{
return "right";
}
return "left";
}
//Function Number: 8
func_9CD1(param_00)
{
if(!isdefined(param_00))
{
return 0;
}
return param_00 == "alienspit_mp";
}
//Function Number: 9
func_9CD0(param_00)
{
if(!isdefined(param_00))
{
return 0;
}
return param_00 == "alienspit_gas_mp";
}
//Function Number: 10
func_9BCA(param_00)
{
if(!isdefined(param_00) || !param_00 scripts\cp\_agent_utils::func_9B5A())
{
return 0;
}
return scripts\cp\_agent_utils::func_77D7(param_00) == "elite";
}
//Function Number: 11
func_CE3E(param_00)
{
if(!scripts\cp\_utility::func_8BB1(self.model,"tag_eye"))
{
return;
}
if(param_00 == "left")
{
playfxontagforclients(level._effect["vfx_alien_spitter_hit_left"],self,"tag_eye",self);
return;
}
if(param_00 == "center")
{
playfxontagforclients(level._effect["vfx_alien_spitter_hit_center"],self,"tag_eye",self);
return;
}
if(param_00 == "right")
{
playfxontagforclients(level._effect["vfx_alien_spitter_hit_right"],self,"tag_eye",self);
return;
}
}
//Function Number: 12
func_CCA5(param_00)
{
var_01 = self;
if(!isdefined(self.model) || self.model == "")
{
return;
}
if(!scripts\cp\_utility::func_8BB1(self.model,"tag_eye"))
{
return;
}
if(param_00 == "left")
{
playfxontagforclients(level._effect["vfx_blood_hit_left"],var_01,"tag_eye",self);
return;
}
if(param_00 == "center")
{
playfxontagforclients(level._effect["vfx_melee_blood_spray"],var_01,"tag_eye",self);
return;
}
if(param_00 == "right")
{
playfxontagforclients(level._effect["vfx_blood_hit_right"],var_01,"tag_eye",self);
return;
}
}
//Function Number: 13
func_13F0C()
{
self endon("disconnect");
level endon("game_ended");
self endon("death");
self setclientomnvarbit("player_damaged",1,1);
wait(0.05);
self setclientomnvarbit("player_damaged",1,0);
}
//Function Number: 14
func_13F0D()
{
self endon("disconnect");
level endon("game_ended");
self endon("death");
self setclientomnvarbit("player_damaged",2,0);
var_00 = 0;
var_01 = 1;
for(;;)
{
if(self.health <= 45 && var_00 == 0)
{
if(!self issplitscreenplayer())
{
self method_82C3("painvision_cp",0.02,"mix","reverb","filter");
}
var_00 = 1;
}
if(var_00 && var_01)
{
if(!scripts\cp\_laststand::player_in_laststand(self))
{
self setclientomnvarbit("player_damaged",2,1);
}
var_01 = 0;
}
if(var_00 && self.health > 45)
{
self method_8070(0.3);
var_00 = 0;
self setclientomnvarbit("player_damaged",2,0);
var_01 = 1;
}
wait(0.05);
}
}
//Function Number: 15
introscreen_corner_line(param_00,param_01)
{
if(!isdefined(level.var_9ACA))
{
level.var_9ACA = 0;
}
else
{
level.var_9ACA++;
}
var_02 = func_4666();
var_03 = 1.6;
if(level.splitscreen)
{
var_03 = 2;
}
var_04 = newhudelem();
var_04.x = 20;
var_04.y = var_02;
var_04.alignx = "left";
var_04.aligny = "bottom";
var_04.horzalign = "left";
var_04.vertalign = "bottom";
var_04.sort = 3;
var_04.foreground = 1;
var_04 settext(param_00);
var_04.alpha = 1;
var_04.hidewheninmenu = 1;
var_04.fontscale = var_03;
var_04.color = (0.8,1,0.8);
var_04.font = "default";
var_04.var_154 = (0.3,0.6,0.3);
var_04.var_153 = 1;
return var_04;
}
//Function Number: 16
func_4666()
{
var_00 = -92;
if(level.splitscreen)
{
var_00 = -110;
}
return level.var_9ACA * 20 - 92;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,998 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\cp_merits.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 33
* Decompile Time: 1764 ms
* Timestamp: 10/27/2023 12:09:36 AM
*******************************************************************/
//Function Number: 1
init()
{
precachestring(&"CP_MERIT_COMPLETED");
if(!func_B4E9())
{
return;
}
level.var_B682 = [];
func_DEFE("enemyKilled",::func_BD74);
level thread func_C56E();
}
//Function Number: 2
func_B4E9()
{
if(level.onlinegame && !scripts\cp\zombies\direct_boss_fight::should_directly_go_to_boss_fight())
{
return 1;
}
return 0;
}
//Function Number: 3
func_C56E()
{
for(;;)
{
level waittill("connected",var_00);
if(!isdefined(var_00.pers["postGameMerits"]))
{
var_00.pers["postGameMerits"] = 0;
}
var_00 thread func_989A();
if(isai(var_00))
{
continue;
}
var_00 thread func_B9B2();
}
}
//Function Number: 4
func_989A()
{
self.pers["lastBulletKillTime"] = 0;
self.pers["bulletStreak"] = 0;
self.var_6A00 = [];
}
//Function Number: 5
func_DEFE(param_00,param_01)
{
if(!isdefined(level.var_B682[param_00]))
{
level.var_B682[param_00] = [];
}
level.var_B682[param_00][level.var_B682[param_00].size] = param_01;
}
//Function Number: 6
func_7FB3(param_00)
{
if(isdefined(self.var_B683[param_00]))
{
return self.var_B683[param_00];
}
return 0;
}
//Function Number: 7
func_BD74(param_00,param_01)
{
var_02 = param_00.var_4F;
var_03 = param_00.var_13372;
if(!isdefined(var_02) || !isplayer(var_02))
{
return;
}
var_02 func_D9AD("mt_kills");
}
//Function Number: 8
func_6563(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
{
self endon("disconnect");
var_08 = spawnstruct();
var_08.var_13372 = self;
var_08.var_6000 = param_00;
var_08.var_4F = param_01;
var_08.var_92BA = param_02;
var_08.var_10367 = param_03;
var_08.var_11329 = param_04;
var_08.var_10AA6 = param_05;
var_08.var_FE38 = param_06;
var_08.time = gettime();
var_08.var_B930 = param_07;
var_08.var_1337E = var_08.var_13372 isonground();
func_5905("enemyKilled",var_08);
var_08.var_4F notify("playerKilledMeritsProcessed");
}
//Function Number: 9
func_5905(param_00,param_01)
{
if(!func_B4E9())
{
return;
}
if(isdefined(param_01))
{
var_02 = param_01.player;
if(!isdefined(var_02))
{
var_02 = param_01.var_4F;
}
if(isdefined(var_02) && isai(var_02))
{
return;
}
}
if(getdvarint("disable_merits") > 0)
{
return;
}
if(!isdefined(level.var_B682[param_00]))
{
return;
}
if(isdefined(param_01))
{
for(var_03 = 0;var_03 < level.var_B682[param_00].size;var_03++)
{
thread [[ level.var_B682[param_00][var_03] ]](param_01);
}
return;
}
for(var_03 = 0;var_03 < level.var_B682[param_00].size;var_03++)
{
thread [[ level.var_B682[param_00][var_03] ]]();
}
}
//Function Number: 10
func_D95D(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
{
if(!isdefined(param_01))
{
return;
}
if(!isplayer(param_01))
{
if(isdefined(param_01.var_222) && isplayer(param_01.var_222))
{
param_01 = param_01.var_222;
}
else
{
return;
}
}
var_09 = scripts\cp\_utility::func_821F(param_04);
var_0A = scripts\common\utility::istrue(param_01.inlaststand);
var_0B = scripts\common\utility::func_9D74(param_03);
var_0C = param_01 getstance();
var_0D = self.var_1096F;
var_0E = var_0C == "crouch";
var_0F = var_0C == "prone" && !var_0A;
var_10 = function_0107(param_03);
var_11 = param_03 == "MOD_MELEE";
var_12 = (scripts\common\utility::istrue(self.var_9B81) || scripts\common\utility::istrue(self.var_9B8A)) && !var_0B || param_04 == "incendiary_ammo_mp";
var_13 = scripts\common\utility::istrue(self.var_565C);
var_14 = scripts\common\utility::istrue(self.shockmelee);
var_15 = param_01 method_81BE();
var_16 = scripts\common\utility::istrue(self.faf_burned_out);
if(isdefined(param_00.var_222))
{
var_17 = param_01 scripts\cp\_utility::func_9CEB(param_00,param_04) && param_00.var_222 == param_01;
}
else
{
var_17 = param_02 scripts\cp\_utility::func_9CEB(param_01,param_05);
}
var_18 = 0;
foreach(var_1A in getarraykeys(level.var_1BED))
{
if(scripts\cp\_utility::func_80D8(param_04) == var_1A)
{
if(getdvar("ui_mapname") == "cp_final" && var_1A == "arclassic")
{
var_18 = 0;
}
else
{
var_18 = 1;
}
break;
}
}
var_1C = isdefined(param_04) && param_04 == "iw7_dischorddummy_zm" || param_04 == "iw7_facemelterdummy_zm" || param_04 == "iw7_headcutterdummy_zm" || param_04 == "iw7_shredderdummy_zm";
var_1D = isdefined(param_04) && issubstr(param_04,"venomx");
var_1E = isdefined(param_04) && param_04 == "iw7_entangler2_zm" || param_04 == "ghost_grenade_launcher";
var_1F = undefined;
if(isdefined(param_04))
{
var_1F = scripts\cp\_utility::func_80D8(param_04);
}
var_20 = isdefined(var_1F) && var_1F == "harpoon1" || var_1F == "harpoon2" || var_1F == "harpoon3" || var_1F == "harpoon4";
if(var_18)
{
if(issubstr(param_04,"g18_"))
{
var_18 = isdefined(param_01.var_8BA0);
}
if(isdefined(param_01.pap2_card_weapon) && param_04 == param_01.pap2_card_weapon)
{
var_18 = 0;
}
}
if(var_10)
{
if(issubstr(param_04,"shuriken"))
{
var_10 = 0;
}
else if(scripts\common\utility::istrue(param_01.kung_fu_mode))
{
var_10 = 0;
}
}
var_21 = issubstr(param_04,"longshot");
var_22 = param_01 scripts\cp\_utility::func_4626(param_04) == "weapon_sniper" && var_0B;
var_23 = var_0B && scripts\cp\_utility::func_9E27(param_04,param_06,param_03,param_01) && !var_1D;
var_24 = issubstr(param_04,"m8");
if(!var_11)
{
switch(var_09)
{
case "weapon_assault":
param_01 func_D9AD("mt_ar_kills");
break;
case "weapon_smg":
param_01 func_D9AD("mt_smg_kills");
break;
case "weapon_lmg":
param_01 func_D9AD("mt_lmg_kills");
break;
case "weapon_shotgun":
param_01 func_D9AD("mt_shotgun_kills");
break;
case "weapon_sniper":
if(!var_21 && !var_24)
{
param_01 func_D9AD("mt_sniper_kills");
}
else if(var_21 && !lib_0CBC::checkaltmodestatus(param_04))
{
param_01 func_D9AD("mt_shotgun_kills");
}
else if(var_21 && lib_0CBC::checkaltmodestatus(param_04))
{
param_01 func_D9AD("mt_sniper_kills");
}
else if(var_24 && !lib_0CBC::checkaltmodestatus(param_04))
{
param_01 func_D9AD("mt_ar_kills");
}
else if(var_24 && lib_0CBC::checkaltmodestatus(param_04))
{
param_01 func_D9AD("mt_sniper_kills");
}
break;
case "weapon_pistol":
param_01 func_D9AD("mt_pistol_kills");
break;
case "other":
if(var_1C)
{
param_01 func_D9AD("mt_pistol_kills");
}
break;
default:
break;
}
}
switch(var_0D)
{
case "zombie":
if(self.agent_type != "alien_rhino" && self.agent_type != "alien_phantom" && self.agent_type != "alien_goon")
{
param_01 func_D9AD("mt_zombie_kills");
}
break;
default:
break;
}
if(var_10)
{
param_01 func_D9AD("mt_explosive_kills");
}
if(var_11)
{
param_01 func_D9AD("mt_melee_kills");
}
if(var_12)
{
param_01 func_D9AD("mt_fire_kills");
}
if(var_17)
{
param_01 func_D9AD("mt_trap_kills");
}
if(var_18)
{
param_01 func_D9AD("mt_magic_weapon_kills");
}
if(var_23)
{
param_01 func_D9AD("mt_headshot_kills");
}
if(var_13)
{
param_01 func_D9AD("mt_crawler_kills");
}
if(var_14)
{
param_01 func_D9AD("mt_faf_shock_melee_kills");
}
if(var_15)
{
param_01 func_D9AD("mt_sliding_kills");
}
if(var_1C || var_20)
{
param_01 func_D9AD("mt_quest_weapon_kills");
}
if(var_16 && var_12)
{
param_01 func_D9AD("mt_faf_burned_out_kills");
}
if(getdvar("ui_mapname") == "cp_rave")
{
if(isdefined(self.agent_type) && self.agent_type == "zombie_sasquatch")
{
param_01 func_D9AD("mt_dlc1_sasquatch_kills");
}
if(var_11)
{
if(param_04 == "iw7_golf_club_mp" || param_04 == "iw7_golf_club_mp_pap1" || param_04 == "iw7_golf_club_mp_pap2")
{
param_01 func_D9AD("mt_dlc1_golf_kills");
}
else if(param_04 == "iw7_spiked_bat_mp" || param_04 == "iw7_spiked_bat_mp_pap1" || param_04 == "iw7_spiked_bat_mp_pap2")
{
param_01 func_D9AD("mt_dlc1_bat_kills");
}
else if(param_04 == "iw7_machete_mp" || param_04 == "iw7_machete_mp_pap1" || param_04 == "iw7_machete_mp_pap2")
{
param_01 func_D9AD("mt_dlc1_machete_kills");
}
else if(param_04 == "iw7_two_headed_axe_mp" || param_04 == "iw7_two_headed_axe_mp_pap1" || param_04 == "iw7_two_headed_axe_mp_pap2")
{
param_01 func_D9AD("mt_dlc1_axe_kills");
}
else if(param_04 == "iw7_lawnmower_zm")
{
param_01 func_D9AD("mt_dlc1_lawnmower_kills");
}
}
if(issubstr(param_04,"harpoon"))
{
param_01 func_D9AD("mt_dlc1_harpoon_kills");
}
if(scripts\common\utility::istrue(param_01.var_DCEB))
{
param_01 func_D9AD("mt_dlc1_kills_in_rave");
}
}
if(getdvar("ui_mapname") == "cp_disco")
{
if(param_04 == "iw7_katana_zm_pap2+camo222" || param_04 == "iw7_katana_windforce_zm")
{
param_01 func_D9AD("mt_dlc2_pap2_katana");
}
else if(param_04 == "iw7_nunchucks_zm_pap2+camo222")
{
param_01 func_D9AD("mt_dlc2_pap2_nunchucks");
}
else if(param_04 == "heart_cp")
{
param_01 func_D9AD("mt_dlc2_heart_kills");
}
if(isdefined(self.agent_type) && self.agent_type == "skater")
{
param_01 func_D9AD("mt_dlc2_roller_skaters");
}
if(var_17)
{
param_01 func_D9AD("mt_dlc2_trap_kills");
}
else if(scripts\common\utility::istrue(param_01.kung_fu_mode) && !is_crafted_trap_damage(param_04))
{
if(param_01.kungfu_style == "dragon")
{
param_01 func_D9AD("mt_dlc2_dragon_kills");
}
else if(param_01.kungfu_style == "crane")
{
param_01 func_D9AD("mt_dlc2_crane_kills");
}
else if(param_01.kungfu_style == "snake")
{
param_01 func_D9AD("mt_dlc2_snake_kills");
}
else if(param_01.kungfu_style == "tiger")
{
param_01 func_D9AD("mt_dlc2_tiger_kills");
}
}
}
if(getdvar("ui_mapname") == "cp_town")
{
if(var_11)
{
if(param_04 == "iw7_knife_zm_cleaver")
{
param_01 func_D9AD("mt_dlc3_cleaver_kills");
}
else if(param_04 == "iw7_knife_zm_crowbar")
{
param_01 func_D9AD("mt_dlc3_crowbar_kills");
}
}
else if(issubstr(param_04,"cutie"))
{
param_01 func_D9AD("mt_dlc3_mad_kills");
}
if(isdefined(self.agent_type) && self.agent_type == "crab_mini")
{
param_01 func_D9AD("mt_dlc3_crab_mini");
}
if(isdefined(param_01.sub_perks) && isdefined(param_01.sub_perks["perk_machine_change"]))
{
if(param_01.sub_perks["perk_machine_change"] == "perk_machine_change1")
{
param_01.change_chew_1_merit = 1;
}
else if(param_01.sub_perks["perk_machine_change"] == "perk_machine_change2")
{
param_01.change_chew_2_merit = 1;
}
else if(param_01.sub_perks["perk_machine_change"] == "perk_machine_change3")
{
param_01.change_chew_3_merit = 1;
}
else if(param_01.sub_perks["perk_machine_change"] == "perk_machine_change4")
{
param_01.change_chew_4_merit = 1;
}
if(scripts\common\utility::istrue(param_01.change_chew_1_merit) && scripts\common\utility::istrue(param_01.change_chew_2_merit) && scripts\common\utility::istrue(param_01.change_chew_3_merit) && scripts\common\utility::istrue(param_01.change_chew_4_merit))
{
if(!isdefined(param_01.change_chew_merit_progress))
{
param_01 func_D9AD("mt_dlc3_change_chew");
param_01.change_chew_merit_progress = 1;
}
}
}
}
if(getdvar("ui_mapname") == "cp_final")
{
if(var_1D)
{
param_01 func_D9AD("mt_dlc4_venomx_kills");
}
if(var_1E)
{
param_01 func_D9AD("mt_dlc4_entangler_kills");
}
if(isdefined(self.agent_type))
{
if(self.agent_type == "alien_rhino")
{
param_01 func_D9AD("mt_dlc4_rhino_kills");
}
else if(self.agent_type == "alien_phantom")
{
param_01 func_D9AD("mt_dlc4_phantom_kills");
}
else if(self.agent_type == "alien_goon")
{
param_01 func_D9AD("mt_dlc4_goon_kills");
}
else if(self.agent_type == "karatemaster" || self.agent_type == "zombie_clown")
{
param_01 func_D9AD("mt_dlc4_special_wave_kills");
}
}
if(var_17)
{
param_01 func_D9AD("mt_dlc4_trap_kills");
}
}
}
//Function Number: 11
is_crafted_trap_damage(param_00)
{
if(!isdefined(param_00))
{
return 0;
}
switch(param_00)
{
case "iw7_robotzap_zm":
case "zmb_robotprojectile_mp":
case "incendiary_ammo_mp":
case "alien_sentry_minigun_4_mp":
case "iw7_electrictrap_zm":
return 1;
}
return 0;
}
//Function Number: 12
func_D9AD(param_00,param_01,param_02)
{
if(!func_B4E9())
{
return;
}
if(!isplayer(self) || isai(self))
{
return;
}
if(!isdefined(param_01))
{
param_01 = 1;
}
if(!func_8C4A(param_00))
{
return;
}
var_03 = func_7FB3(param_00);
if(var_03 == 5)
{
return;
}
var_04 = isdefined(level.var_B684[param_00]["operation"]);
if(var_03 > level.var_B684[param_00]["targetval"].size)
{
var_05 = var_03 == level.var_B684[param_00]["targetval"].size + 1;
var_06 = isdefined(self.var_C637) && isdefined(self.var_C637[param_00]);
if(var_05 && !var_06)
{
var_03 = level.var_B684[param_00]["targetval"].size;
}
else
{
return;
}
}
var_07 = scripts\cp\_hud_util::func_BD6E(param_00);
var_08 = level.var_B684[param_00]["targetval"][var_03];
if(!isdefined(var_08))
{
return;
}
if(isdefined(param_02) && param_02)
{
var_09 = param_01;
}
else
{
var_09 = var_08 + param_02;
}
var_0A = 0;
if(var_09 >= var_08)
{
var_0B = 1;
var_0A = var_09 - var_08;
var_09 = var_08;
}
else
{
var_0B = 0;
}
if(var_07 < var_09)
{
scripts\cp\_hud_util::func_BD75(param_00,var_09);
}
if(var_0B)
{
thread func_839C(param_00,var_03);
func_110AF(param_00);
func_837F(level.var_B684[param_00]["score"][var_03]);
var_03++;
scripts\cp\_hud_util::func_BD76(param_00,var_03);
self.var_B683[param_00] = var_03;
if(param_00 != "mt_dlc4_troll2")
{
thread scripts\cp\_hud_message::func_10117(param_00);
}
if(areallmerittierscomplete(param_00))
{
processmastermerit(param_00);
}
}
}
//Function Number: 13
areallmerittierscomplete(param_00)
{
if(self.var_B683[param_00] >= level.var_B684[param_00]["targetval"].size)
{
return 1;
}
return 0;
}
//Function Number: 14
func_7CCB()
{
return "cp/zombies/zombie_splashtable.csv";
}
//Function Number: 15
func_110AF(param_00)
{
if(!isdefined(self.var_B685))
{
self.var_B685 = [];
}
var_01 = 0;
foreach(var_03 in self.var_B685)
{
if(var_03 == param_00)
{
var_01 = 1;
}
}
if(!var_01)
{
self.var_B685[self.var_B685.size] = param_00;
}
}
//Function Number: 16
func_110B0(param_00)
{
if(!isdefined(self.var_C636))
{
self.var_C636 = [];
}
var_01 = 0;
foreach(var_03 in self.var_C636)
{
if(var_03 == param_00)
{
var_01 = 1;
break;
}
}
if(!var_01)
{
self.var_C636[self.var_C636.size] = param_00;
}
}
//Function Number: 17
func_839C(param_00,param_01)
{
self endon("disconnect");
wait(0.25);
scripts\cp\_persistence::give_player_xp(int(level.var_B684[param_00]["reward"][param_01]));
}
//Function Number: 18
func_837F(param_00)
{
var_01 = self getplayerdata("cp","challengeScore");
self setplayerdata("cp","challengeScore",var_01 + param_00);
}
//Function Number: 19
func_12ED0()
{
self.var_B683 = [];
self endon("disconnect");
if(!func_B4E9())
{
return;
}
var_00 = 0;
foreach(var_05, var_02 in level.var_B684)
{
var_00++;
if(var_00 % 20 == 0)
{
wait(0.05);
}
self.var_B683[var_05] = 0;
var_03 = var_02["index"];
var_04 = scripts\cp\_hud_util::func_BD6F(var_05);
self.var_B683[var_05] = var_04;
}
}
//Function Number: 20
func_7FB2(param_00)
{
return tablelookup("cp/allMeritsTable.csv",0,param_00,5);
}
//Function Number: 21
func_A003(param_00)
{
if(!isdefined(param_00))
{
return 0;
}
var_01 = func_7FB2(param_00);
if(isdefined(var_01))
{
return 1;
}
return 0;
}
//Function Number: 22
func_8223(param_00)
{
return func_7FB2(param_00);
}
//Function Number: 23
func_9ECC(param_00)
{
if(!isdefined(param_00))
{
return 0;
}
var_01 = func_7FB2(param_00);
if(isdefined(var_01))
{
if(var_01 == "perk_slot_0" || var_01 == "perk_slot_1" || var_01 == "perk_slot_2" || var_01 == "proficiency" || var_01 == "equipment" || var_01 == "special_equipment" || var_01 == "attachment" || var_01 == "prestige" || var_01 == "final_killcam" || var_01 == "basic" || var_01 == "humiliation" || var_01 == "precision" || var_01 == "revenge" || var_01 == "elite" || var_01 == "intimidation" || var_01 == "operations" || scripts\cp\_utility::isstrstart(var_01,"killstreaks_"))
{
return 1;
}
}
if(func_A003(param_00))
{
return 1;
}
return 0;
}
//Function Number: 24
func_B681(param_00,param_01,param_02)
{
var_03 = tablelookup(param_00,0,param_01,10 + param_02 * 3);
return int(var_03);
}
//Function Number: 25
func_B67E(param_00,param_01,param_02)
{
var_03 = tablelookup(param_00,0,param_01,11 + param_02 * 3);
return int(var_03);
}
//Function Number: 26
func_B67F(param_00,param_01,param_02)
{
var_03 = tablelookup(param_00,0,param_01,12 + param_02 * 3);
return int(var_03);
}
//Function Number: 27
func_3215(param_00,param_01)
{
var_02 = 0;
var_03 = 0;
var_02 = 0;
for(;;)
{
var_04 = tablelookupbyrow(param_00,var_02,0);
if(var_04 == "")
{
break;
}
var_05 = getmeritmasterchallenge(var_04);
level.var_B684[var_04] = [];
level.var_B684[var_04]["index"] = var_02;
level.var_B684[var_04]["type"] = param_01;
level.var_B684[var_04]["targetval"] = [];
level.var_B684[var_04]["reward"] = [];
level.var_B684[var_04]["score"] = [];
level.var_B684[var_04]["filter"] = func_7FB2(var_04);
level.var_B684[var_04]["master"] = var_05;
if(func_9ECC(var_04))
{
level.var_B684[var_04]["operation"] = 1;
level.var_B684[var_04]["spReward"] = [];
if(func_A003(var_04))
{
var_06 = func_8223(var_04);
if(isdefined(var_06))
{
level.var_B684[var_04]["weapon"] = var_06;
}
}
}
for(var_07 = 0;var_07 < 5;var_07++)
{
var_08 = func_B681(param_00,var_04,var_07);
var_09 = func_B67E(param_00,var_04,var_07);
var_0A = func_B67F(param_00,var_04,var_07);
if(var_08 == 0)
{
break;
}
level.var_B684[var_04]["targetval"][var_07] = var_08;
level.var_B684[var_04]["reward"][var_07] = var_09;
level.var_B684[var_04]["score"][var_07] = var_0A;
var_03 = var_03 + var_09;
}
var_04 = tablelookupbyrow(param_00,var_02,0);
var_02++;
}
return int(var_03);
}
//Function Number: 28
func_3214()
{
level.var_B684 = [];
var_00 = 0;
var_00 = var_00 + func_3215("cp/allMeritsTable.csv",0);
}
//Function Number: 29
func_9E9C(param_00)
{
var_01 = level.var_B684[param_00]["filter"];
if(!isdefined(var_01))
{
return 1;
}
return self isitemunlocked(var_01,"challenge");
}
//Function Number: 30
func_8C4A(param_00)
{
return isdefined(level.var_B684) && isdefined(level.var_B684[param_00]);
}
//Function Number: 31
getmeritmasterchallenge(param_00)
{
var_01 = tablelookup("cp/allMeritsTable.csv",0,param_00,7);
if(isdefined(var_01) && var_01 == "")
{
return undefined;
}
return var_01;
}
//Function Number: 32
processmastermerit(param_00)
{
var_01 = level.var_B684[param_00]["master"];
if(isdefined(var_01))
{
thread func_D9AD(var_01);
}
}
//Function Number: 33
func_B9B2()
{
self endon("disconnect");
self.var_18C1 = 0;
for(;;)
{
if(self method_822E() == 1)
{
self.var_18C1 = self.var_18C1 + 0.05;
}
else
{
self.var_18C1 = 0;
}
wait(0.05);
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,616 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\cp_music_and_dialog.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 28
* Decompile Time: 1423 ms
* Timestamp: 10/27/2023 12:09:41 AM
*******************************************************************/
//Function Number: 1
init()
{
scripts\common\utility::flag_init("vo_system_setup_done");
scripts\common\utility::flag_init("dialogue_done");
scripts\cp\_vo::func_98EA();
level thread func_C56E();
level thread func_EF35();
if(!isdefined(level.var_134DC))
{
level.var_134DC = [];
}
if(isdefined(level.var_ABE9))
{
level.var_134DC = [[ level.var_ABE9 ]](level.var_134DC);
}
level.var_18E8 = ::func_9D12;
}
//Function Number: 2
func_2B53()
{
}
//Function Number: 3
func_3837()
{
if(level.players.size != 4)
{
return 0;
}
if(scripts\cp\_vo::func_9D13())
{
return 0;
}
foreach(var_01 in level.players)
{
if(var_01.var_134FD == "p5_")
{
return 0;
}
if(var_01.var_134FD == "p6_")
{
return 0;
}
}
return 1;
}
//Function Number: 4
func_134DF()
{
if(level.var_2001 || scripts\common\utility::istrue(level.elvira_playing))
{
return 1;
}
else if(level.var_D336)
{
return 1;
}
else
{
foreach(var_01 in level.players)
{
if(scripts\common\utility::istrue(var_01.var_13518))
{
return 1;
}
}
}
return 0;
}
//Function Number: 5
func_7F65(param_00)
{
var_01 = 0;
for(var_02 = 0;var_02 < param_00.size;var_02++)
{
var_03 = level.var_134CA[param_00[var_02]];
var_01 = var_01 + scripts\cp\_vo::func_7C76(var_03 + param_00[var_02]);
}
return var_01;
}
//Function Number: 6
func_7DD2(param_00,param_01)
{
var_02 = [param_00];
var_03 = param_00;
for(;;)
{
if(param_01 && isdefined(level.var_134B4[var_03].var_BF7B))
{
var_02[var_02.size] = level.var_134B4[var_03].var_BF7B;
var_03 = level.var_134B4[var_03].var_BF7B;
continue;
}
break;
}
return var_02;
}
//Function Number: 7
func_C56E()
{
for(;;)
{
level waittill("connected",var_00);
var_00 thread func_C57B();
}
}
//Function Number: 8
func_9D12(param_00)
{
if(isdefined(level.var_134B4[param_00].var_18E3))
{
if(int(level.var_134B4[param_00].var_18E3) == 1)
{
return 1;
}
return 0;
}
}
//Function Number: 9
func_C57B()
{
self endon("disconnect");
self waittill("spawned_player");
if(!level.splitscreen || level.splitscreen && !isdefined(level.var_CF34))
{
if(level.splitscreen)
{
level.var_CF34 = 1;
}
}
if(!scripts\common\utility::flag("vo_system_setup_done"))
{
scripts\common\utility::flag_set("vo_system_setup_done");
}
}
//Function Number: 10
func_D58B(param_00,param_01)
{
if(scripts\cp\_utility::isplayingsolo() || level.only_one_player)
{
return;
}
var_02 = param_00.var_134FD + "laststand";
param_00 thread scripts\cp\_vo::func_CE8A(var_02);
}
//Function Number: 11
func_D5BB(param_00,param_01)
{
var_02 = param_00.var_134FD + "reviving";
param_00 thread scripts\cp\_vo::func_CE8A(var_02);
}
//Function Number: 12
func_D5BD(param_00)
{
var_01 = -20536;
var_02 = gettime();
if(!isdefined(level.var_BF59) || level.var_BF59 < var_02)
{
if(isdefined(level.var_BF59))
{
if(randomint(100) < 60)
{
return;
}
}
level.var_BF59 = var_02 + randomintrange(var_01,var_01 + 5000);
var_03 = scripts\cp\_utility::func_7833();
var_04 = scripts\common\utility::random(var_03);
if(!isdefined(var_04))
{
return;
}
switch(param_00)
{
case "scriptable_alien_lynx_jump":
case "scriptable_alien_tatra_t815_jump":
var_05 = var_04.var_134FD + "alien_approach_truck";
var_04 scripts\cp\_vo::func_CE8A(var_05);
break;
}
}
}
//Function Number: 13
func_EF35()
{
level endon("game_ended");
level.var_EF36 = [];
for(;;)
{
level waittill("scriptable",var_00);
level thread func_D5BD(var_00);
}
}
//Function Number: 14
func_6A20(param_00)
{
param_00 playlocalsound("mantle_cloth_plr_24_up");
wait(0.65);
if(param_00.var_134FD == "p1_")
{
param_00 playlocalsound("p1_breathing_better");
return;
}
if(param_00.var_134FD == "p2_")
{
param_00 playlocalsound("p2_breathing_better");
return;
}
if(param_00.var_134FD == "p3_")
{
param_00 playlocalsound("p3_breathing_better");
return;
}
if(param_00.var_134FD == "p4_")
{
param_00 playlocalsound("p4_breathing_better");
return;
}
if(param_00.var_134FD == "p5_")
{
param_00 playlocalsound("p5_breathing_better");
return;
}
if(param_00.var_134FD == "p6_")
{
param_00 playlocalsound("p5_breathing_better");
return;
}
param_00 playlocalsound("p3_breathing_better");
}
//Function Number: 15
func_CE1D(param_00,param_01,param_02,param_03,param_04,param_05)
{
var_06 = param_00 + "_solo";
if(soundexists(var_06))
{
scripts\cp\_vo::func_CE8A(var_06);
}
}
//Function Number: 16
playsoundonplayers(param_00,param_01,param_02)
{
if(level.splitscreen)
{
if(isdefined(level.players[0]))
{
level.players[0] playlocalsound(param_00);
return;
}
return;
}
if(isdefined(param_01))
{
if(isdefined(param_02))
{
for(var_03 = 0;var_03 < level.players.size;var_03++)
{
var_04 = level.players[var_03];
if(var_04 issplitscreenplayer() && !var_04 issplitscreenplayerprimary())
{
continue;
}
if(isdefined(var_04.pers["team"]) && var_04.pers["team"] == param_01 && !func_9DE5(var_04,param_02))
{
var_04 playlocalsound(param_00);
}
}
return;
}
for(var_03 = 0;var_03 < level.players.size;var_03++)
{
var_04 = level.players[var_03];
if(var_04 issplitscreenplayer() && !var_04 issplitscreenplayerprimary())
{
continue;
}
if(isdefined(var_04.pers["team"]) && var_04.pers["team"] == param_01)
{
var_04 playlocalsound(param_00);
}
}
return;
}
if(isdefined(var_03))
{
for(var_03 = 0;var_03 < level.players.size;var_03++)
{
if(level.players[var_03] issplitscreenplayer() && !level.players[var_03] issplitscreenplayerprimary())
{
continue;
}
if(!func_9DE5(level.players[var_03],param_02))
{
level.players[var_03] playlocalsound(param_00);
}
}
return;
}
for(var_03 = 0;var_03 < level.players.size;var_03++)
{
if(level.players[var_03] issplitscreenplayer() && !level.players[var_03] issplitscreenplayerprimary())
{
continue;
}
level.players[var_03] playlocalsound(param_00);
}
}
//Function Number: 17
func_9DE5(param_00,param_01)
{
for(var_02 = 0;var_02 < param_01.size;var_02++)
{
if(param_00 == param_01[var_02])
{
return 1;
}
}
return 0;
}
//Function Number: 18
func_D468(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
var_07 = scripts\cp\_utility::func_7833();
if(var_07.size < 1)
{
return;
}
var_08 = scripts\common\utility::random(var_07);
var_09 = var_08.var_134FD + param_00;
var_08 scripts\cp\_vo::func_CE8A(var_09);
}
//Function Number: 19
func_CE7F(param_00,param_01)
{
var_02 = param_00.var_134FD + param_01;
param_00 thread scripts\cp\_vo::func_CE8A(var_02,undefined,2);
}
//Function Number: 20
func_D5A5(param_00,param_01)
{
if(scripts\cp\_utility::isplayingsolo() || level.only_one_player)
{
return;
}
var_02 = param_00.var_134FD + "last_stand";
param_00 thread scripts\cp\_vo::func_CE8A(var_02,undefined,1);
}
//Function Number: 21
func_3D8A()
{
self endon("disconnect");
self endon("death");
for(;;)
{
self waittill("last_stand");
func_5AF8();
}
}
//Function Number: 22
func_3D80()
{
for(;;)
{
level waittill("drill_planted",var_00);
level notify("vo_notify","drill_planted","drill_planted",var_00);
}
}
//Function Number: 23
func_5AF8()
{
self endon("disconnect");
self endon("death");
self endon("revive");
wait(4);
level notify("vo_notify","reaction_casualty_generic","reaction_casualty_generic",self);
wait(10);
while(self.var_2A85)
{
wait(0.1);
}
self notify("vo_notify","bleeding_out","bleeding_out",self);
wait(8);
while(self.var_2A85)
{
wait(0.1);
}
self notify("vo_notify","bleeding_out","bleeding_out",self);
}
//Function Number: 24
func_CFBC(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
if(!isplayer(self))
{
return;
}
var_07 = scripts\cp\_utility::func_7833();
var_07 = scripts\common\utility::func_22A9(var_07,self);
if(var_07.size < 1)
{
return;
}
var_08 = var_07[0];
var_09 = var_08.var_134FD + "reaction_casualty_generic";
var_08 scripts\cp\_vo::func_CE8A(var_09,undefined,1);
}
//Function Number: 25
func_9C13(param_00,param_01)
{
for(var_02 = 0;var_02 < param_00.size;var_02++)
{
if(param_00[var_02] == param_01)
{
return 1;
}
}
return 0;
}
//Function Number: 26
func_4EBA()
{
self endon("disconnect");
level endon("game_ended");
for(;;)
{
var_00 = getdvarint("scr_player_vo_prefix",0);
if(var_00 != 0)
{
switch(var_00)
{
case 1:
self.var_134FD = "p1_";
break;
case 2:
self.var_134FD = "p2_";
break;
case 3:
self.var_134FD = "p3_";
break;
case 4:
self.var_134FD = "p4_";
break;
case 5:
self.var_134FD = "p5_";
break;
case 6:
self.var_134FD = "p6_";
break;
default:
break;
}
setdvar("scr_player_vo_prefix",0);
}
wait(1);
}
}
//Function Number: 27
func_1752(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
if(!isdefined(level.var_1DF4))
{
level.var_1DF4 = [];
level thread func_1DF4();
}
var_07 = spawnstruct();
var_07.var_1B46 = param_00;
var_07.var_CDB8 = param_01;
var_07.var_B73E = param_02;
var_07.var_B42B = param_03;
var_07.var_BF53 = 0;
var_07.var_3C39 = param_05;
var_07.var_B44D = param_04;
if(isdefined(param_06))
{
var_07.var_BF53 = gettime() + param_06 * 1000;
}
level.var_1DF4 = scripts\common\utility::array_add_safe(level.var_1DF4,var_07);
}
//Function Number: 28
func_1DF4()
{
for(;;)
{
while(level.var_1DF4.size == 0)
{
wait(1);
}
var_00 = scripts\common\utility::array_randomize(level.var_1DF4);
foreach(var_02 in var_00)
{
if(gettime() < var_02.var_BF53 || isdefined(level.var_572E))
{
continue;
}
var_03 = randomintrange(var_02.var_B73E,var_02.var_B42B + 1);
var_04 = var_02.var_3C39;
if(scripts\cp\_utility::func_203D(var_02.var_CDB8,4096))
{
wait(1);
continue;
}
var_05 = scripts\cp\_utility::func_203D(var_02.var_CDB8,var_02.var_B44D);
if(!var_05 || randomint(100) > var_04)
{
wait(1);
continue;
}
var_06 = var_02.var_1B46;
if(isarray(var_02.var_1B46))
{
var_06 = scripts\common\utility::random(var_02.var_1B46);
}
if(soundexists(var_06))
{
playsoundatpos(var_02.var_CDB8,var_06);
}
var_02.var_BF53 = gettime() + var_03 * 1000;
wait(1);
}
wait(1);
}
}

View File

@ -0,0 +1,399 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\cp_outline.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 20
* Decompile Time: 1092 ms
* Timestamp: 10/27/2023 12:09:42 AM
*******************************************************************/
//Function Number: 1
func_C77A()
{
self endon("disconnect");
level endon("game_ended");
wait(2);
for(;;)
{
func_A02C();
scripts\common\utility::func_136F7();
}
}
//Function Number: 2
func_C776()
{
level.var_C785 = [];
}
//Function Number: 3
func_A02C()
{
self endon("refresh_outline");
foreach(var_04, var_01 in level.var_C785)
{
if(!isdefined(var_01))
{
continue;
}
if(!isdefined(var_01.cost))
{
continue;
}
var_02 = 1;
var_03 = func_7D69(var_01);
if(var_03 == 3)
{
func_6220(var_01,self,func_78CF(var_01,var_02),1,0,"high");
}
else if(var_03 == 1)
{
func_6220(var_01,self,4,1,0,"high");
}
else
{
func_5561(var_01,self);
}
if(var_04 & 0)
{
scripts\common\utility::func_136F7();
}
}
}
//Function Number: 4
func_78CF(param_00,param_01)
{
var_02 = param_00.cost;
if(isdefined(param_00.struct.var_394) && scripts\cp\_weapon::func_8BBB(param_00.struct.var_394))
{
if(isdefined(level.var_7D63))
{
var_03 = self [[ level.var_7D63 ]](param_00.struct.var_394);
if(var_03 > 1)
{
var_02 = 4500;
}
else
{
var_02 = param_00.cost * 0.5;
}
}
else
{
var_02 = param_00.cost * 0.5;
}
}
if(scripts\cp\_persistence::func_D0BB(var_02) || scripts\common\utility::istrue(param_00.var_6261))
{
return 3;
}
return 1;
}
//Function Number: 5
func_7D69(param_00)
{
var_01 = distancesquared(self.origin,param_00.origin) < 1000000;
if(!var_01)
{
return 0;
}
if(scripts\cp\_utility::func_9C03())
{
return 1;
}
if(scripts\cp\_utility::func_8BAE())
{
return 1;
}
return 3;
}
//Function Number: 6
func_D3DF()
{
self endon("disconnect");
for(;;)
{
foreach(var_01 in level.players)
{
if(self == var_01)
{
continue;
}
if(func_FF7F(var_01))
{
func_6220(var_01,self,func_78D0(var_01),0,0,"high");
continue;
}
func_5561(var_01,self);
}
wait(0.2);
}
}
//Function Number: 7
func_FF7F(param_00)
{
if(self.var_C016)
{
return 0;
}
if(!isalive(param_00) || !isdefined(param_00.maxhealth) || !param_00.maxhealth || param_00.var_C004)
{
return 0;
}
if(isdefined(level.shouldplayeroutline))
{
if(![[ level.shouldplayeroutline ]](self,param_00))
{
return 0;
}
}
var_01 = distancesquared(self.origin,param_00.origin) > 2250000;
if(var_01)
{
return 1;
}
var_02 = !bullettracepassed(self geteye(),param_00 geteye(),0,self);
return var_02;
}
//Function Number: 8
func_78D0(param_00)
{
var_01 = param_00.health / 100;
if(var_01 <= 0.33 || scripts\cp\_laststand::player_in_laststand(param_00))
{
return 4;
}
if(var_01 <= 0.66)
{
return 5;
}
if(var_01 <= 1)
{
return 3;
}
return 0;
}
//Function Number: 9
func_6221(param_00,param_01,param_02,param_03,param_04,param_05)
{
param_00 method_8190(param_01,param_02,param_03,param_04);
}
//Function Number: 10
func_6220(param_00,param_01,param_02,param_03,param_04,param_05)
{
param_00 hudoutlineenableforclient(param_01,param_02,param_03,param_04);
}
//Function Number: 11
func_5562(param_00,param_01)
{
param_00 method_818D(param_01);
}
//Function Number: 12
func_5561(param_00,param_01)
{
param_00 hudoutlinedisableforclient(param_01);
}
//Function Number: 13
func_5560(param_00)
{
param_00 method_818B();
}
//Function Number: 14
func_621F(param_00,param_01,param_02,param_03)
{
param_00 method_818E(param_01,param_02,param_03);
}
//Function Number: 15
func_F4AE(param_00,param_01,param_02)
{
level endon("game_ended");
level endon("outline_disabled");
if(!isdefined(param_00))
{
param_00 = 4;
}
if(!isdefined(param_01))
{
param_01 = 0;
}
if(!isdefined(param_02))
{
param_02 = 0;
}
for(;;)
{
foreach(var_04 in scripts\cp\_agent_utils::get_alive_enemies())
{
if(isdefined(var_04.var_4D32))
{
continue;
}
if(isdefined(var_04.var_B36D))
{
continue;
}
if(isdefined(var_04.var_6BD4))
{
func_6221(var_04,level.players,param_00,1,param_02,"high");
continue;
}
func_6221(var_04,level.players,param_00,param_01,param_02,"high");
}
wait(0.5);
}
}
//Function Number: 16
func_F4AF(param_00,param_01,param_02)
{
level endon("game_ended");
self endon("outline_disabled");
if(!isdefined(param_00))
{
param_00 = 4;
}
if(!isdefined(param_01))
{
param_01 = 0;
}
if(!isdefined(param_02))
{
param_02 = 0;
}
for(;;)
{
foreach(var_04 in scripts\cp\_agent_utils::get_alive_enemies())
{
if(isdefined(var_04.var_4D32))
{
continue;
}
if(isdefined(var_04.var_B36D))
{
continue;
}
if(isdefined(var_04.var_6BD4))
{
func_6220(var_04,self,param_00,1,param_02,"high");
continue;
}
func_6220(var_04,self,param_00,param_01,param_02,"high");
}
wait(0.5);
}
}
//Function Number: 17
func_12C01()
{
foreach(var_01 in scripts\cp\_agent_utils::get_alive_enemies())
{
if(isdefined(var_01.var_4D32))
{
continue;
}
if(isdefined(var_01.var_B36D))
{
continue;
}
func_5562(var_01,level.players);
level notify("outline_disabled");
}
}
//Function Number: 18
func_12C02()
{
foreach(var_01 in scripts\cp\_agent_utils::get_alive_enemies())
{
if(isdefined(var_01.var_4D32))
{
continue;
}
if(isdefined(var_01.var_B36D))
{
continue;
}
func_5561(var_01,self);
self notify("outline_disabled");
}
}
//Function Number: 19
func_EB64()
{
var_00 = ["r_hudoutlineFillColor0","r_hudoutlineFillColor1","r_hudoutlinewidth","r_hudoutlineOccludedOutlineColor","r_hudoutlineOccludedInlineColor","r_hudoutlineOccludedInteriorColor","r_hudOutlineOccludedColorFromFill","cg_hud_outline_colors_0","cg_hud_outline_colors_1","cg_hud_outline_colors_2","cg_hud_outline_colors_3","cg_hud_outline_colors_4","cg_hud_outline_colors_5","cg_hud_outline_colors_6"];
if(!isdefined(level.var_91AD))
{
level.var_91AD = [];
}
foreach(var_02 in var_00)
{
level.var_91AD[var_02] = getdvar(var_02);
}
}
//Function Number: 20
func_E2CA()
{
var_00 = ["r_hudoutlineFillColor0","r_hudoutlineFillColor1","r_hudoutlinewidth","r_hudoutlineOccludedOutlineColor","r_hudoutlineOccludedInlineColor","r_hudoutlineOccludedInteriorColor","r_hudOutlineOccludedColorFromFill","cg_hud_outline_colors_0","cg_hud_outline_colors_1","cg_hud_outline_colors_2","cg_hud_outline_colors_3","cg_hud_outline_colors_4","cg_hud_outline_colors_5","cg_hud_outline_colors_6"];
if(!isdefined(level.var_91AD))
{
return;
}
foreach(var_02 in var_00)
{
setdvar(var_02,level.var_91AD[var_02]);
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,145 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\cp_reward.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 4
* Decompile Time: 252 ms
* Timestamp: 10/27/2023 12:09:59 AM
*******************************************************************/
//Function Number: 1
func_82A2(param_00,param_01)
{
if(self.team == "allies")
{
return;
}
if(scripts\common\utility::istrue(self.var_54CB))
{
return;
}
if(scripts\cp\_agent_utils::func_77D7(self) == "elite" || scripts\cp\_agent_utils::func_77D7(self) == "mammoth")
{
var_02 = func_7C13();
foreach(var_04 in level.players)
{
func_8373(var_04,var_02,"large");
}
return;
}
if(isdefined(self.var_24DA) || isdefined(self.var_B36A))
{
if(isdefined(self.var_B36A))
{
foreach(var_06 in level.players)
{
if(isdefined(self.var_D354) && self.var_D354 == var_06 && var_06 != var_03)
{
var_07 = func_7DDB();
if(isdefined(level.var_3B0F))
{
var_07 = var_07 * level.var_3B0F;
}
func_8373(var_06,var_07 * 2);
var_06 scripts\cp\_persistence::func_666A("assists",1);
self.var_926B = 1;
}
}
}
if(!isdefined(self.var_926B))
{
var_09 = 0.1;
var_0A = self.maxhealth * var_09;
var_07 = func_7DDB();
if(isdefined(level.var_3B0F))
{
var_07 = var_07 * level.var_3B0F;
}
foreach(var_0C in self.var_24DA)
{
if(var_0C.player == var_04 || isdefined(var_04.var_222) && var_0C.player == var_04.var_222)
{
continue;
}
if(var_0C.var_DA >= var_0A)
{
if(isdefined(var_0C.player) && var_0C.player != var_04)
{
var_0C.player scripts\cp\_persistence::func_666A("assists",1);
func_8373(var_0C.player,var_07);
}
}
}
}
}
if(!isdefined(var_04))
{
return;
}
if(!isplayer(var_04) && !isdefined(var_04.var_222) || !isplayer(var_04.var_222))
{
return;
}
var_0E = 0;
if(isdefined(var_04.var_222))
{
var_04 = var_04.var_222;
var_0E = 1;
}
var_02 = func_7C13();
if(isdefined(var_04) && var_04 == "soft" && !var_05)
{
var_0E = int(var_0E * 1.5);
}
func_8373(var_03,var_0E,"large",var_04);
}
//Function Number: 2
func_7DDB()
{
return level.agent_definition[scripts\cp\_agent_utils::func_77D7(self)]["reward"] * 0.5;
}
//Function Number: 3
func_7C13()
{
return level.agent_definition[scripts\cp\_agent_utils::func_77D7(self)]["reward"];
}
//Function Number: 4
func_8373(param_00,param_01,param_02,param_03)
{
var_04 = param_01 * level.var_4CC4;
if(isdefined(level.var_3B0F))
{
var_04 = var_04 * level.var_3B0F;
}
param_00 scripts\cp\_persistence::func_82F9(var_04,param_02,param_03);
if(isdefined(level.var_13F56))
{
param_00 scripts\cp\_persistence::give_player_xp(int(var_04));
}
if(scripts\common\utility::func_6E34("cortex_started") && scripts\common\utility::flag("cortex_started"))
{
if(isdefined(level.var_16B4))
{
[[ level.var_16B4 ]](param_01);
}
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,749 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\cp_weapon_autosentry.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 35
* Decompile Time: 1807 ms
* Timestamp: 10/27/2023 12:10:15 AM
*******************************************************************/
//Function Number: 1
init()
{
level._effect["sentry_overheat_mp"] = loadfx("vfx/core/mp/killstreaks/vfx_sg_overheat_smoke");
level._effect["sentry_explode_mp"] = loadfx("vfx/core/mp/killstreaks/vfx_ims_explosion");
level._effect["sentry_smoke_mp"] = loadfx("vfx/core/mp/killstreaks/vfx_sg_damage_blacksmoke");
level.var_F26B = [];
level.var_F26B["crafted_autosentry"] = spawnstruct();
level.var_F26B["crafted_autosentry"].health = 999999;
level.var_F26B["crafted_autosentry"].maxhealth = 300;
level.var_F26B["crafted_autosentry"].var_32C1 = 20;
level.var_F26B["crafted_autosentry"].var_32C0 = 40;
level.var_F26B["crafted_autosentry"].var_C9D3 = 0.15;
level.var_F26B["crafted_autosentry"].var_C9D1 = 0.25;
level.var_F26B["crafted_autosentry"].var_F269 = "sentry";
level.var_F26B["crafted_autosentry"].var_F268 = "sentry_offline";
level.var_F26B["crafted_autosentry"].var_11901 = 90;
level.var_F26B["crafted_autosentry"].var_10A13 = 1;
level.var_F26B["crafted_autosentry"].var_C7FB = 15;
level.var_F26B["crafted_autosentry"].var_461D = 0.2;
level.var_F26B["crafted_autosentry"].var_7645 = 0.3;
level.var_F26B["crafted_autosentry"].var_39B = "alien_sentry_minigun_4_mp";
level.var_F26B["crafted_autosentry"].var_B91A = "weapon_sentry_chaingun";
level.var_F26B["crafted_autosentry"].var_B924 = "weapon_sentry_chaingun";
level.var_F26B["crafted_autosentry"].var_B925 = "weapon_sentry_chaingun_obj_red";
level.var_F26B["crafted_autosentry"].var_B91D = "weapon_sentry_chaingun_destroyed";
level.var_F26B["crafted_autosentry"].var_17B = &"COOP_CRAFTABLES_PICKUP";
level.var_F26B["crafted_autosentry"].var_16F = 1;
level.var_F26B["crafted_autosentry"].var_13523 = "sentry_destroyed";
level.var_F26B["crafted_autosentry"].var_9F43 = 0;
}
//Function Number: 2
func_82BA(param_00,param_01)
{
param_01 thread func_13932();
param_01 notify("new_power","crafted_autosentry");
param_01 setclientomnvar("zom_crafted_weapon",1);
param_01 thread scripts\cp\_utility::func_1308C(param_01,"iw7_pickup_zm");
scripts\cp\_utility::func_F313("crafted_autosentry",::func_82BA,param_01);
}
//Function Number: 3
func_13932()
{
self endon("disconnect");
self endon("death");
self notify("craft_dpad_watcher");
self endon("craft_dpad_watcher");
self notifyonplayercommand("pullout_sentry","+actionslot 3");
for(;;)
{
self waittill("pullout_sentry");
if(scripts\common\utility::istrue(self.var_9D81))
{
continue;
}
if(scripts\common\utility::istrue(self.var_AD2C))
{
continue;
}
if(isdefined(self.allow_carry) && self.allow_carry == 0)
{
continue;
}
if(scripts\cp\_utility::is_valid_player())
{
break;
}
}
thread func_83A3("crafted_autosentry");
}
//Function Number: 4
func_83A3(param_00)
{
self endon("disconnect");
self.var_A904 = param_00;
scripts\cp\_utility::clearlowermessage("msg_power_hint");
var_01 = func_4A11(param_00,self);
self.var_A039 = param_00;
scripts\cp\_utility::func_E077();
self.var_3AA5 = var_01;
var_02 = func_F688(var_01,1);
self.var_3AA5 = undefined;
thread scripts\cp\_utility::func_1365D();
self.var_9D81 = 0;
if(isdefined(var_01))
{
return 1;
}
return 0;
}
//Function Number: 5
func_F688(param_00,param_01)
{
self endon("disconnect");
if(isdefined(level.forceturretplacement))
{
param_01 = 0;
}
param_00 func_F255(self,param_01);
scripts\common\utility::allow_weapon(0);
self notifyonplayercommand("place_sentry","+attack");
self notifyonplayercommand("place_sentry","+attack_akimbo_accessible");
self notifyonplayercommand("cancel_sentry","+actionslot 3");
if(!level.console)
{
self notifyonplayercommand("cancel_sentry","+actionslot 5");
self notifyonplayercommand("cancel_sentry","+actionslot 6");
self notifyonplayercommand("cancel_sentry","+actionslot 7");
}
for(;;)
{
var_02 = scripts\common\utility::func_13734("place_sentry","cancel_sentry","force_cancel_placement");
if(!isdefined(param_00))
{
scripts\common\utility::allow_weapon(1);
return 1;
}
if(!isdefined(var_02))
{
var_02 = "force_cancel_placement";
}
if(var_02 == "cancel_sentry" || var_02 == "force_cancel_placement")
{
if(!param_01 && var_02 == "cancel_sentry")
{
continue;
}
scripts\common\utility::allow_weapon(1);
param_00 func_F253();
if(var_02 != "force_cancel_placement")
{
thread func_13932();
}
else if(param_01)
{
scripts\cp\_utility::func_DFE0(self);
}
return 0;
}
if(!param_00.var_3872)
{
continue;
}
if(param_01)
{
scripts\cp\_utility::func_DFE0(self);
}
param_00 func_F259();
scripts\common\utility::allow_weapon(1);
return 1;
}
}
//Function Number: 6
func_4A11(param_00,param_01)
{
var_02 = spawnturret("misc_turret",param_01.origin,level.var_F26B[param_00].var_39B);
var_02.angles = param_01.angles;
var_02.name = "crafted_autosentry";
var_02 func_F246(param_00,param_01);
return var_02;
}
//Function Number: 7
func_F246(param_00,param_01)
{
self.var_F26E = param_00;
self.var_3872 = 1;
self setmodel(level.var_F26B[self.var_F26E].var_B91A);
self.var_10085 = 1;
self setcandamage(1);
switch(param_00)
{
case "crafted_autosentry":
default:
self method_81F5();
self method_82FB(100);
self method_8330(100);
self method_82B6(90);
self method_8353(60);
self method_82C9(0.3,"pitch");
self method_82C9(0.3,"yaw");
self method_82C8(0.65);
self method_82D1(-89);
break;
}
self method_835B(1);
func_F257();
func_F258(param_01);
thread func_F242(param_01);
thread scripts\cp\_utility::func_A030(undefined,level.var_F26B[self.var_F26E].var_11901);
thread func_F244();
thread func_F239();
thread func_F23A();
}
//Function Number: 8
func_F242(param_00)
{
self waittill("death");
if(!isdefined(self))
{
return;
}
self setmodel(level.var_F26B[self.var_F26E].var_B91D);
func_F257();
self method_82D1(40);
if(isdefined(self.var_3A9D))
{
self method_8335(undefined);
}
self method_8336(undefined);
self playsound("sentry_explode");
if(isdefined(self))
{
thread func_F23F();
}
}
//Function Number: 9
func_F23F()
{
self notify("sentry_delete_turret");
self endon("sentry_delete_turret");
if(isdefined(self.var_9B05))
{
playfxontag(scripts\common\utility::getfx("sentry_explode_mp"),self,"tag_origin");
playfxontag(scripts\common\utility::getfx("sentry_smoke_mp"),self,"tag_aim");
self.var_9B05 scripts\cp\_utility::func_E2CC();
self notify("deleting");
self useby(self.var_9B05);
wait(1);
}
else
{
wait(1.5);
playfxontag(scripts\common\utility::getfx("sentry_explode_mp"),self,"tag_aim");
playfxontag(scripts\common\utility::getfx("sentry_smoke_mp"),self,"tag_aim");
self playsound("sentry_explode_smoke");
wait(0.1);
self notify("deleting");
}
if(isdefined(self.var_A63A))
{
self.var_A63A delete();
}
if(isdefined(self))
{
self delete();
}
}
//Function Number: 10
func_F244()
{
self endon("death");
level endon("game_ended");
for(;;)
{
self waittill("trigger",var_00);
if(!var_00 scripts\cp\_utility::is_valid_player())
{
continue;
}
if(scripts\common\utility::istrue(var_00.var_9D81))
{
continue;
}
if(scripts\common\utility::istrue(var_00.kung_fu_mode))
{
continue;
}
var_00 func_F688(self,0);
}
}
//Function Number: 11
func_F258(param_00)
{
param_00.var_4BAE = self;
self.var_222 = param_00;
self method_8336(self.var_222);
self.team = self.var_222.team;
self method_835E(self.team);
thread scripts\cp\_utility::func_A021("sentry_handleOwner");
}
//Function Number: 12
func_F259()
{
self setmodel(level.var_F26B[self.var_F26E].var_B91A);
if(self method_813D() == "manual")
{
self method_830F(level.var_F26B[self.var_F26E].var_F268);
}
self method_8335(undefined);
func_F24A();
self.var_3A9D method_80F3();
self.var_3A9D = undefined;
if(isdefined(self.var_222))
{
self.var_222.var_9D81 = 0;
if(level.var_F26B[self.var_F26E].var_9F43)
{
scripts\cp\_utility::func_B268(self.var_222.team);
}
self.var_222 notify("new_sentry",self);
}
func_F252();
self playsound("sentry_gun_plant");
self method_81D9();
self notify("placed");
}
//Function Number: 13
func_F253()
{
self.var_3A9D method_80F3();
if(isdefined(self.var_222))
{
self.var_222.var_9D81 = 0;
}
self delete();
}
//Function Number: 14
func_F255(param_00,param_01)
{
self setmodel(level.var_F26B[self.var_F26E].var_B924);
self method_8335(param_00);
self setcandamage(0);
self method_81D8();
func_F249();
self.var_3A9D = param_00;
param_00.var_9D81 = 1;
param_00 thread func_12F16(self,param_01);
thread scripts\cp\_utility::func_A025(param_00);
thread scripts\cp\_utility::func_A026(param_00);
thread scripts\cp\_utility::func_A027(param_00);
self method_80F7();
self method_82D1(-89);
func_F257();
self notify("carried");
}
//Function Number: 15
func_12F16(param_00,param_01)
{
self endon("death");
self endon("disconnect");
level endon("game_ended");
param_00 endon("placed");
param_00 endon("death");
param_00.var_3872 = 1;
var_02 = -1;
for(;;)
{
param_00.var_3872 = func_3834(param_00);
if(param_00.var_3872 != var_02)
{
if(param_00.var_3872)
{
param_00 setmodel(level.var_F26B[param_00.var_F26E].var_B924);
if(!param_01)
{
self method_80F4(&"COOP_CRAFTABLES_PLACE");
}
else
{
self method_80F4(&"COOP_CRAFTABLES_PLACE_CANCELABLE");
}
}
else
{
param_00 setmodel(level.var_F26B[param_00.var_F26E].var_B925);
self method_80F4(&"COOP_CRAFTABLES_CANNOT_PLACE");
}
}
var_02 = param_00.var_3872;
wait(0.05);
}
}
//Function Number: 16
func_3834(param_00)
{
var_01 = self canplayerplacesentry();
param_00.origin = var_01["origin"];
param_00.angles = var_01["angles"];
if(scripts\cp\_utility::func_65F0(param_00))
{
return 0;
}
return self isonground() && var_01["result"] && abs(param_00.origin[2] - self.origin[2]) < 10;
}
//Function Number: 17
func_F252()
{
self method_830F(level.var_F26B[self.var_F26E].var_F269);
self setcursorhint("HINT_NOICON");
self sethintstring(level.var_F26B[self.var_F26E].var_17B);
self makeusable();
self method_84A5(120);
self method_84A2(96);
foreach(var_01 in level.players)
{
switch(self.var_F26E)
{
case "crafted_autosentry":
var_02 = self getentitynumber();
func_1862(var_02,var_01);
break;
}
}
}
//Function Number: 18
func_F257()
{
self method_830F(level.var_F26B[self.var_F26E].var_F268);
self makeunusable();
var_00 = self getentitynumber();
func_E11F(var_00);
}
//Function Number: 19
func_F24A()
{
self method_81F7();
}
//Function Number: 20
func_F249()
{
self method_82C7(0);
}
//Function Number: 21
func_1862(param_00,param_01)
{
level.var_12A83 = scripts\common\utility::array_add_safe(level.var_12A83,self);
if(level.var_12A83.size > 4)
{
if(isdefined(level.var_12A83[0]))
{
level.var_12A83[0] notify("death");
param_01 playlocalsound("ww_magicbox_laughter");
}
}
}
//Function Number: 22
func_E11F(param_00)
{
level.var_12A83 = scripts\common\utility::func_22A9(level.var_12A83,self);
}
//Function Number: 23
func_F239()
{
self endon("death");
level endon("game_ended");
self.var_B941 = 0;
self.var_8CDE = 0;
self.var_C7F9 = 0;
thread func_F245();
for(;;)
{
scripts\common\utility::waittill_either("turretstatechange","cooled");
if(self method_81A0())
{
thread func_F23B();
continue;
}
func_F25B();
thread func_F23C();
}
}
//Function Number: 24
func_F260()
{
self endon("death");
self playsound("sentry_gun_target_lock_beep");
wait(0.19);
self playsound("sentry_gun_target_lock_beep");
wait(0.19);
self playsound("sentry_gun_target_lock_beep");
}
//Function Number: 25
func_F25C()
{
thread func_F260();
while(self.var_B941 < level.var_F26B[self.var_F26E].var_10A13)
{
self.var_B941 = self.var_B941 + 0.1;
wait(0.1);
}
}
//Function Number: 26
func_F25B()
{
self.var_B941 = 0;
}
//Function Number: 27
func_F23B()
{
self endon("death");
self endon("stop_shooting");
level endon("game_ended");
func_F25C();
var_00 = function_0240(level.var_F26B[self.var_F26E].var_39B);
var_01 = level.var_F26B[self.var_F26E].var_32C1;
var_02 = level.var_F26B[self.var_F26E].var_32C0;
var_03 = level.var_F26B[self.var_F26E].var_C9D3;
var_04 = level.var_F26B[self.var_F26E].var_C9D1;
for(;;)
{
var_05 = randomintrange(var_01,var_02 + 1);
for(var_06 = 0;var_06 < var_05 && !self.var_C7F9;var_06++)
{
self method_837E();
self notify("bullet_fired");
self.var_8CDE = self.var_8CDE + var_00;
wait(var_00);
}
wait(randomfloatrange(var_03,var_04));
}
}
//Function Number: 28
func_F23C()
{
self notify("stop_shooting");
}
//Function Number: 29
func_12A31(param_00)
{
self endon("death");
self endon("disconnect");
level endon("game_ended");
param_00 endon("death");
param_00 endon("player_dismount");
var_01 = function_0240(level.var_F26B[param_00.var_F26E].var_39B);
for(;;)
{
param_00 waittill("turret_fire");
param_00 method_8165() notify("turret_fire");
param_00.var_8CDE = param_00.var_8CDE + var_01;
param_00.var_4621 = var_01;
}
}
//Function Number: 30
func_F245()
{
self endon("death");
var_00 = function_0240(level.var_F26B[self.var_F26E].var_39B);
var_01 = 0;
var_02 = 0;
var_03 = level.var_F26B[self.var_F26E].var_C7FB;
var_04 = level.var_F26B[self.var_F26E].var_461D;
for(;;)
{
if(self.var_8CDE != var_01)
{
wait(var_00);
}
else
{
self.var_8CDE = max(0,self.var_8CDE - 0.05);
}
if(self.var_8CDE > var_03)
{
self.var_C7F9 = 1;
thread func_D497();
switch(self.var_F26E)
{
case "crafted_autosentry":
playfxontag(scripts\common\utility::getfx("sentry_smoke_mp"),self,"tag_aim");
break;
default:
break;
}
while(self.var_8CDE)
{
self.var_8CDE = max(0,self.var_8CDE - 0.1);
wait(0.1);
}
self.var_C7F9 = 0;
self notify("not_overheated");
}
var_01 = self.var_8CDE;
wait(0.05);
}
}
//Function Number: 31
func_12A00()
{
self endon("death");
var_00 = level.var_F26B[self.var_F26E].var_C7FB;
for(;;)
{
if(self.var_8CDE > var_00)
{
self.var_C7F9 = 1;
thread func_D497();
switch(self.var_F26E)
{
case "gl_turret":
playfxontag(scripts\common\utility::getfx("sentry_smoke_mp"),self,"tag_aim");
break;
default:
break;
}
while(self.var_8CDE)
{
wait(0.1);
}
self.var_C7F9 = 0;
self notify("not_overheated");
}
wait(0.05);
}
}
//Function Number: 32
func_129D7()
{
self endon("death");
for(;;)
{
if(self.var_8CDE > 0)
{
if(self.var_4621 <= 0)
{
self.var_8CDE = max(0,self.var_8CDE - 0.05);
}
else
{
self.var_4621 = max(0,self.var_4621 - 0.05);
}
}
wait(0.05);
}
}
//Function Number: 33
func_D497()
{
self endon("death");
self endon("not_overheated");
level endon("game_ended");
self notify("playing_heat_fx");
self endon("playing_heat_fx");
for(;;)
{
playfxontag(scripts\common\utility::getfx("sentry_overheat_mp"),self,"tag_flash");
wait(level.var_F26B[self.var_F26E].var_7645);
}
}
//Function Number: 34
func_D51F()
{
self endon("death");
self endon("not_overheated");
level endon("game_ended");
for(;;)
{
playfxontag(scripts\common\utility::getfx("sentry_smoke_mp"),self,"tag_aim");
wait(0.4);
}
}
//Function Number: 35
func_F23A()
{
self endon("death");
level endon("game_ended");
for(;;)
{
wait(3);
if(!isdefined(self.var_3A9D))
{
self playsound("sentry_gun_beep");
}
}
}

View File

@ -0,0 +1,305 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\cp_weaponrank.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 22
* Decompile Time: 1096 ms
* Timestamp: 10/27/2023 12:10:16 AM
*******************************************************************/
//Function Number: 1
init()
{
level.var_13CBD = spawnstruct();
level.var_13CBD.var_DCD4 = [];
var_00 = 0;
for(;;)
{
var_01 = int(tablelookuprownum("mp/weaponRankTable.csv",0,var_00));
if(!isdefined(var_01) || var_01 < 0)
{
break;
}
var_02 = spawnstruct();
level.var_13CBD.var_DCD4[var_00] = var_02;
var_02.var_B7CF = int(tablelookupbyrow("mp/weaponRankTable.csv",var_00,1));
var_02.var_13E29 = int(tablelookupbyrow("mp/weaponRankTable.csv",var_00,2));
var_02.var_B4D6 = int(tablelookupbyrow("mp/weaponRankTable.csv",var_00,3));
var_00++;
}
level.var_13CBD.var_B4C0 = var_00 - 1;
level.var_13CBD.var_B4D4 = [];
var_03 = 1;
for(;;)
{
var_01 = int(tablelookuprownum("mp/statstable.csv",0,var_03));
if(!isdefined(var_01) || var_01 < 0)
{
break;
}
var_04 = tablelookupbyrow("mp/statstable.csv",var_01,4);
var_05 = tablelookupbyrow("mp/statstable.csv",var_01,42);
if(!isdefined(var_04) || var_04 == "" || !isdefined(var_05) || var_05 == "")
{
}
else
{
var_05 = int(var_05);
level.var_13CBD.var_B4D4[var_04] = var_05;
}
var_03++;
}
init_weapon_rank_events();
}
//Function Number: 2
init_weapon_rank_events()
{
var_00 = "scripts/cp/maps/cp_zmb/cp_zmb_weaponrank_event.csv";
if(isdefined(level.weapon_rank_event_table))
{
var_00 = level.weapon_rank_event_table;
}
level.weapon_rank_event = [];
var_01 = 1;
for(;;)
{
var_02 = tablelookup(var_00,0,var_01,1);
if(!isdefined(var_02) || var_02 == "")
{
break;
}
var_03 = int(tablelookup(var_00,0,var_01,2));
level.weapon_rank_event[var_02] = var_03;
var_01++;
}
}
//Function Number: 3
func_1285E(param_00,param_01,param_02,param_03)
{
if(!level.onlinegame)
{
return;
}
if(isai(param_00) || !isplayer(param_00) || !func_13C3E() || !func_9D1B(param_00,param_01))
{
return;
}
var_04 = scripts\cp\_utility::func_7DF7(param_01);
if(!func_13C48(var_04))
{
return;
}
func_831B(param_00,var_04,func_7D83(param_00,param_02,param_03));
}
//Function Number: 4
func_831B(param_00,param_01,param_02)
{
var_03 = get_player_weapon_rank_cp_xp(param_00,param_01);
var_04 = get_player_weapon_rank_mp_xp(param_00,param_01);
var_05 = var_03 + var_04;
var_06 = get_weapon_rank_for_xp(var_05);
var_07 = func_7ACF(param_01);
var_08 = func_7D65(param_01);
var_09 = var_08 - var_04;
var_0A = var_03 + param_02;
if(var_0A > var_09)
{
var_0A = var_09;
}
var_0B = var_0A + var_04;
var_0C = param_00 getplayerdata("common","sharedProgression","weaponLevel",param_01,"prestige");
var_0D = int(min(get_weapon_rank_for_xp(var_0B),var_07));
param_00 setplayerdata("common","sharedProgression","weaponLevel",param_01,"cpXP",var_0A);
if(var_06 < var_0D)
{
param_00 scripts\cp\_hud_message::func_10151("ranked_up_weapon_" + param_01,var_0D + 1);
}
}
//Function Number: 5
func_13C3E()
{
if(scripts\common\utility::istrue(level.var_55A5))
{
return 0;
}
return 1;
}
//Function Number: 6
func_9D1B(param_00,param_01)
{
var_02 = param_00 scripts\cp\_persistence::func_7BAA();
var_03 = scripts\cp\_utility::func_7DF7(param_01);
var_04 = int(tablelookup("mp/unlocks/CPWeaponUnlocks.csv",0,var_03,7));
if(var_02 >= var_04)
{
return 1;
}
return 0;
}
//Function Number: 7
get_player_weapon_rank_cp_xp(param_00,param_01)
{
var_02 = param_00 getplayerdata("common","sharedProgression","weaponLevel",param_01,"cpXP");
return var_02;
}
//Function Number: 8
get_player_weapon_rank_mp_xp(param_00,param_01)
{
var_02 = param_00 getplayerdata("common","sharedProgression","weaponLevel",param_01,"mpXP");
return var_02;
}
//Function Number: 9
func_13C48(param_00)
{
return func_13C19(param_00);
}
//Function Number: 10
func_13C19(param_00)
{
if(!isdefined(level.var_13CBD.var_B4D4[param_00]))
{
return 0;
}
return 1;
}
//Function Number: 11
get_weapon_rank_for_xp(param_00)
{
if(param_00 == 0)
{
return 0;
}
for(var_01 = get_max_weapon_rank() - 1;var_01 >= 0;var_01--)
{
if(param_00 >= get_weapon_rank_info_min_xp(var_01))
{
return var_01;
}
}
return var_01;
}
//Function Number: 12
get_max_weapon_rank()
{
return level.var_13CBD.var_B4C0;
}
//Function Number: 13
get_weapon_rank_info_min_xp(param_00)
{
return level.var_13CBD.var_DCD4[param_00].var_B7CF;
}
//Function Number: 14
func_7D65(param_00)
{
var_01 = func_7ACF(param_00);
return func_7D6E(var_01);
}
//Function Number: 15
func_7ACF(param_00)
{
return level.var_13CBD.var_B4D4[param_00];
}
//Function Number: 16
func_7D6E(param_00)
{
return level.var_13CBD.var_DCD4[param_00].var_B4D6;
}
//Function Number: 17
func_7D83(param_00,param_01,param_02)
{
var_03 = func_79A2(param_01);
var_04 = func_79A3(param_02);
var_05 = get_player_weapon_xp_scalar(param_00);
var_06 = int(var_03 * var_04 * var_05);
return var_06;
}
//Function Number: 18
func_12861(param_00,param_01,param_02,param_03,param_04)
{
func_1285E(param_00,param_01,param_04,func_7D88(param_01,param_02,param_03,param_00));
}
//Function Number: 19
func_7D88(param_00,param_01,param_02,param_03)
{
if(scripts\cp\_utility::func_9E27(param_00,param_01,param_02,param_03))
{
return "headshot";
}
return undefined;
}
//Function Number: 20
get_player_weapon_xp_scalar(param_00)
{
if(isdefined(param_00.weaponxpscale))
{
return param_00.weaponxpscale;
}
return 1;
}
//Function Number: 21
func_79A2(param_00)
{
if(!isdefined(level.weapon_rank_event[param_00]))
{
return 0;
}
return level.weapon_rank_event[param_00];
}
//Function Number: 22
func_79A3(param_00)
{
if(!isdefined(param_00))
{
return 1;
}
switch(param_00)
{
case "headshot":
return 1.5;
default:
break;
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,508 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\crafted_trap_balloons.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 24
* Decompile Time: 1244 ms
* Timestamp: 10/27/2023 12:10:19 AM
*******************************************************************/
//Function Number: 1
init()
{
level._effect["balloon_death"] = loadfx("vfx/iw7/_requests/coop/vfx_clown_exp.vfx");
var_00 = spawnstruct();
var_00.var_11901 = 60;
var_00.var_B91A = "equipment_tank_nitrogen_zmb";
var_00.var_B924 = "equipment_tank_nitrogen_zmb";
var_00.var_B925 = "equipment_tank_nitrogen_zmb";
var_00.var_17B = &"COOP_CRAFTABLES_PICKUP";
var_00.var_9F43 = 0;
var_00.var_17B = &"COOP_CRAFTABLES_PICKUP";
var_00.var_CC28 = &"COOP_CRAFTABLES_PLACE";
var_00.var_38E3 = &"COOP_CRAFTABLES_CANNOT_PLACE";
var_00.var_CC0A = &"COOP_CRAFTABLES_PLACE_CANCELABLE";
var_00.var_CC22 = 48;
var_00.var_CC25 = 32;
var_00.var_3AA7 = (0,0,10);
var_00.var_3AA6 = (0,0,0);
if(!isdefined(level.var_47B3))
{
level.var_47B3 = [];
}
level.var_47B3["crafted_trap_balloon"] = var_00;
}
//Function Number: 2
func_82BB(param_00,param_01)
{
param_01 thread func_13932();
param_01 notify("new_power","crafted_trap_balloon");
param_01 setclientomnvar("zom_crafted_weapon",9);
param_01 thread scripts\cp\_utility::func_1308C(param_01,"iw7_pickup_zm");
scripts\cp\_utility::func_F313("crafted_trap_balloon",::func_82BB,param_01);
}
//Function Number: 3
func_13932()
{
self endon("disconnect");
self endon("death");
self notify("craft_dpad_watcher");
self endon("craft_dpad_watcher");
self notifyonplayercommand("pullout_trap","+actionslot 3");
for(;;)
{
self waittill("pullout_trap");
if(scripts\common\utility::istrue(self.var_9D81))
{
continue;
}
if(scripts\common\utility::istrue(self.var_AD2C))
{
continue;
}
if(isdefined(self.allow_carry) && self.allow_carry == 0)
{
continue;
}
if(scripts\cp\_utility::is_valid_player())
{
break;
}
}
thread func_8342(1);
}
//Function Number: 4
func_8342(param_00,param_01)
{
self endon("disconnect");
scripts\cp\_utility::clearlowermessage("msg_power_hint");
var_02 = func_4A2A(self);
self.var_A039 = var_02.name;
func_E152();
self.var_3AA5 = var_02;
if(param_00)
{
var_02.var_6DEC = 1;
}
if(!isdefined(param_01))
{
param_01 = level.var_47B3["crafted_trap_balloon"].var_11901;
}
var_03 = func_F68A(var_02,param_00,param_01);
self.var_3AA5 = undefined;
thread func_1370F();
self.var_9D81 = 0;
if(isdefined(var_02))
{
return 1;
}
return 0;
}
//Function Number: 5
func_F68A(param_00,param_01,param_02)
{
self endon("disconnect");
param_00 func_126A8(self,param_01,param_02);
scripts\common\utility::allow_weapon(0);
self notifyonplayercommand("place_trap","+attack");
self notifyonplayercommand("place_trap","+attack_akimbo_accessible");
self notifyonplayercommand("cancel_trap","+actionslot 3");
if(!level.console)
{
self notifyonplayercommand("cancel_trap","+actionslot 5");
self notifyonplayercommand("cancel_trap","+actionslot 6");
self notifyonplayercommand("cancel_trap","+actionslot 7");
}
for(;;)
{
var_03 = scripts\common\utility::func_13734("place_trap","cancel_trap","force_cancel_placement");
if(!isdefined(param_00))
{
scripts\common\utility::allow_weapon(1);
return 1;
}
if(!isdefined(var_03))
{
var_03 = "force_cancel_placement";
}
if(var_03 == "cancel_trap" || var_03 == "force_cancel_placement")
{
if(!param_01 && var_03 == "cancel_trap")
{
continue;
}
scripts\common\utility::allow_weapon(1);
param_00 func_126A7();
if(var_03 != "force_cancel_placement")
{
thread func_13932();
}
else if(param_01)
{
scripts\cp\_utility::func_DFE0(self);
}
return 0;
}
if(!param_00.var_3872)
{
continue;
}
if(param_01)
{
scripts\cp\_utility::func_DFE0(self);
}
param_00 func_126AA(param_02,self);
scripts\common\utility::allow_weapon(1);
return 1;
}
}
//Function Number: 6
func_E18E()
{
if(self.var_8C1E)
{
var_00 = scripts\cp\_utility::func_E55C();
self.var_E2E6 = var_00;
self.var_E556 = self method_80FB(var_00);
self takeweapon(var_00);
}
}
//Function Number: 7
func_E152()
{
if(scripts\cp\_utility::_hasperk("specialty_explosivebullets"))
{
self.var_E2DF = "specialty_explosivebullets";
scripts\cp\_utility::func_1430("specialty_explosivebullets");
}
}
//Function Number: 8
func_E2E8()
{
if(isdefined(self.var_E2E6))
{
scripts\cp\_utility::func_12C6(self.var_E2E6);
if(self.var_8C1E)
{
var_00 = scripts\cp\_utility::func_E55C();
self setweaponammoclip(var_00,self.var_E556);
}
}
self.var_E2E6 = undefined;
}
//Function Number: 9
func_E2E0()
{
if(isdefined(self.var_E2DF))
{
scripts\cp\_utility::func_8387(self.var_E2DF);
self.var_E2DF = undefined;
}
}
//Function Number: 10
func_1370F()
{
self endon("death");
self endon("disconnect");
level endon("game_ended");
wait(0.05);
func_E2E0();
}
//Function Number: 11
func_4A2A(param_00)
{
var_01 = spawnturret("misc_turret",param_00.origin + (0,0,40),"sentry_minigun_mp");
var_01.angles = param_00.angles;
var_01.var_222 = param_00;
var_01.name = "crafted_trap_balloon";
var_01.var_3A9B = spawn("script_model",var_01.origin);
var_01.var_3A9B.angles = param_00.angles;
var_01.var_3A9B method_82C7(0);
var_01 method_81F5();
var_01 method_835B(1);
var_01 method_830F("sentry_offline");
var_01 makeunusable();
var_01 method_8336(param_00);
var_01 func_126A2(param_00);
return var_01;
}
//Function Number: 12
func_126A2(param_00)
{
self.var_3872 = 1;
}
//Function Number: 13
func_126A0(param_00)
{
self waittill("death");
if(!isdefined(self))
{
return;
}
func_126A9();
self.balloons delete();
self playsound("sentry_explode");
scripts\cp\_utility::func_E11E();
if(isdefined(self))
{
playfxontag(scripts\common\utility::getfx("sentry_explode_mp"),self,"tag_origin");
self playsound("sentry_explode_smoke");
wait(0.1);
if(isdefined(self))
{
if(isdefined(self.var_3A9B))
{
self.var_3A9B delete();
}
self delete();
}
}
}
//Function Number: 14
func_126A1()
{
self endon("death");
level endon("game_ended");
for(;;)
{
self waittill("trigger",var_00);
if(!var_00 scripts\cp\_utility::is_valid_player())
{
continue;
}
if(scripts\common\utility::istrue(var_00.var_9D81))
{
continue;
}
var_00 thread func_8342(0,self.var_AC71);
if(isdefined(self.var_3CBF))
{
self.var_3CBF delete();
}
self.balloons delete();
scripts\cp\_utility::func_E11E();
self delete();
}
}
//Function Number: 15
func_126AA(param_00,param_01)
{
var_02 = spawn("script_model",self.origin + (0,0,1));
var_02 setmodel(level.var_47B3["crafted_trap_balloon"].var_B91A);
var_02 notsolid();
var_03 = (0,0,60);
var_04 = (0,0,350) - var_03;
var_05 = var_02.origin;
var_06 = var_02.origin + var_03;
var_07 = bullettrace(var_06,var_06 + var_04,0,var_02);
var_08 = var_07;
var_02.detonate_height = var_08["position"] - (0,0,60) - self.origin;
var_02.balloons = spawn("script_model",var_02.origin + (0,0,62));
var_02.balloons setmodel("decor_balloon_bunch_01");
self.var_3A9D method_80F3();
self.var_3A9D = undefined;
var_02.repulsor = function_0277("mower_repulsor",0,var_02.origin,8,1);
param_01.var_9D81 = 0;
var_02.var_222 = param_01;
var_02.name = "crafted_trap_balloon";
var_02 thread func_126A6(param_00);
self notify("placed");
self.var_3A9B delete();
self delete();
}
//Function Number: 16
func_126A7()
{
self.var_3A9D method_80F3();
if(isdefined(self.var_222))
{
self.var_222.var_9D81 = 0;
}
if(isdefined(self.repulsor))
{
function_0278(self.repulsor);
}
self.var_3A9B delete();
self delete();
}
//Function Number: 17
func_126A8(param_00,param_01,param_02)
{
self method_8335(param_00);
self setcandamage(0);
self stoploopsound();
self.var_3A9D = param_00;
param_00.var_9D81 = 1;
param_00 thread scripts\cp\_utility::func_12E3F(self,self.var_3A9B,level.var_47B3["crafted_trap_balloon"]);
thread scripts\cp\_utility::func_A025(param_00);
thread scripts\cp\_utility::func_A026(param_00);
thread scripts\cp\_utility::func_A027(param_00);
func_126A9();
self notify("carried");
}
//Function Number: 18
func_126A6(param_00)
{
self setcursorhint("HINT_NOICON");
self sethintstring(level.var_47B3["crafted_trap_balloon"].var_17B);
self makeusable();
self method_84A7("tag_fx");
self method_84A5(120);
self method_84A2(96);
thread func_126A0(self.var_222);
thread scripts\cp\_utility::func_A021("electrap_handleOwner");
thread scripts\cp\_utility::func_A030(param_00,level.var_47B3["crafted_trap_balloon"].var_11901);
thread func_126A1();
thread trap_wait_for_enemies();
scripts\cp\_utility::func_1861();
}
//Function Number: 19
func_126A9()
{
self makeunusable();
if(isdefined(self.repulsor))
{
function_0278(self.repulsor);
}
if(isdefined(self.dmg_trigger))
{
self.dmg_trigger notify("stop_dmg");
self.dmg_trigger delete();
}
if(isdefined(self.var_FB2F))
{
self.var_FB2F stoploopsound();
self.var_FB2F delete();
}
scripts\cp\_utility::func_E11E();
}
//Function Number: 20
trap_wait_for_enemies()
{
self endon("death");
func_A631();
}
//Function Number: 21
func_A631()
{
self.dmg_trigger = spawn("trigger_radius",self.origin + (0,0,-20),0,256,128);
for(;;)
{
self.dmg_trigger waittill("trigger",var_00);
if(isplayer(var_00))
{
continue;
}
if(!scripts\cp\_utility::func_FF18(var_00) || var_00.var_152C || var_00.var_EF64)
{
continue;
}
if(var_00.agent_type == "slasher" || var_00.agent_type == "superslasher" || var_00.agent_type == "lumberjack" || var_00.agent_type == "zombie_sasquatch")
{
continue;
}
if(isdefined(var_00.is_skeleton))
{
continue;
}
var_00 thread go_to_balloons(self);
var_00 thread release_zombie_on_trap_death(self);
}
}
//Function Number: 22
go_to_balloons(param_00)
{
param_00 endon("death");
self endon("death");
self endon("turned");
self.var_55B0 = 1;
self.var_EF64 = 1;
self.var_C37F = 4;
self method_8286(param_00.origin);
self method_8287(60);
var_01 = param_00.detonate_height[2];
scripts\common\utility::waittill_any_3("goal","goal_reached");
thread balloon_death(var_01);
}
//Function Number: 23
balloon_death(param_00)
{
self.detonate_height = param_00;
self.shared_damage_points = 1;
self.var_55CF = 1;
scripts\mp\agents\_scriptedagents::func_F85E(1,"balloon_trap");
lib_0A1A::func_237C("balloon_grab");
self playsoundonmovingent("craftable_balloon_zmb_grab");
self waittill("reached_end");
self method_83AD();
}
//Function Number: 24
release_zombie_on_trap_death(param_00)
{
self endon("death");
param_00 waittill("death");
if(isdefined(self.var_C37F))
{
self.var_15C = self.var_C37F;
}
self.var_C37F = undefined;
self.var_152C = 0;
self.var_EF64 = 0;
self.var_55B0 = 0;
}

View File

@ -0,0 +1,578 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\crafted_trap_hypnosis.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 27
* Decompile Time: 1357 ms
* Timestamp: 10/27/2023 12:10:21 AM
*******************************************************************/
//Function Number: 1
init()
{
level._effect["boombox_explode"] = loadfx("vfx/iw7/_requests/coop/vfx_ghetto_blast.vfx");
var_00 = spawnstruct();
var_00.var_11901 = 18;
var_00.var_B924 = "cp_town_hypnosis_device_good";
var_00.var_B925 = "cp_town_hypnosis_device_bad";
var_00.var_CC12 = "cp_town_hypnosis_device";
var_00.var_CC28 = &"COOP_CRAFTABLES_PLACE";
var_00.var_38E3 = &"COOP_CRAFTABLES_CANNOT_PLACE";
var_00.var_CC0A = &"COOP_CRAFTABLES_PLACE_CANCELABLE";
var_00.var_CC22 = 30;
var_00.var_CC25 = 16;
var_00.var_3AA7 = (0,0,35);
var_00.var_3AA6 = (0,-90,0);
level.crafted_hypnosis_settings = [];
level.crafted_hypnosis_settings["crafted_hypnosis"] = var_00;
}
//Function Number: 2
give_crafted_hypnosis(param_00,param_01)
{
param_01 thread func_13932();
param_01 notify("new_power","crafted_hypnosis");
param_01 setclientomnvar("zom_crafted_weapon",14);
scripts\cp\_utility::func_F313("crafted_hypnosis",::give_crafted_hypnosis,param_01);
}
//Function Number: 3
func_13932()
{
self endon("disconnect");
self endon("death");
self notify("craft_dpad_watcher");
self endon("craft_dpad_watcher");
self notifyonplayercommand("pullout_hypnosis","+actionslot 3");
for(;;)
{
self waittill("pullout_hypnosis");
if(scripts\common\utility::istrue(self.var_9D81))
{
continue;
}
if(scripts\common\utility::istrue(self.var_AD2C))
{
continue;
}
if(isdefined(self.allow_carry) && self.allow_carry == 0)
{
continue;
}
if(scripts\cp\_utility::is_valid_player())
{
break;
}
}
thread give_hypnosis(1);
}
//Function Number: 4
give_hypnosis(param_00,param_01)
{
self endon("disconnect");
scripts\cp\_utility::clearlowermessage("msg_power_hint");
var_02 = createhypnosisforplayer(self);
self.var_A039 = var_02.name;
func_E152();
var_02 = createhypnosisforplayer(self);
self.var_3AA5 = var_02;
var_02.var_6DEC = 1;
var_03 = setcarryinghypnosis(var_02,param_00,param_01);
self.var_3AA5 = undefined;
thread func_1370F();
self.var_9D81 = 0;
if(isdefined(var_02))
{
return 1;
}
return 0;
}
//Function Number: 5
setcarryinghypnosis(param_00,param_01,param_02)
{
self endon("disconnect");
param_00 hypnosis_setcarried(self,param_01);
scripts\common\utility::allow_weapon(0);
self notifyonplayercommand("place_hypnosis","+attack");
self notifyonplayercommand("place_hypnosis","+attack_akimbo_accessible");
self notifyonplayercommand("cancel_hypnosis","+actionslot 3");
if(!level.console)
{
self notifyonplayercommand("cancel_hypnosis","+actionslot 5");
self notifyonplayercommand("cancel_hypnosis","+actionslot 6");
self notifyonplayercommand("cancel_hypnosis","+actionslot 7");
}
for(;;)
{
var_03 = scripts\common\utility::func_13734("place_hypnosis","cancel_hypnosis","force_cancel_placement");
if(!isdefined(param_00))
{
scripts\common\utility::allow_weapon(1);
return 1;
}
if(!isdefined(var_03))
{
var_03 = "force_cancel_placement";
}
if(var_03 == "cancel_hypnosis" || var_03 == "force_cancel_placement")
{
if(!param_01 && var_03 == "cancel_hypnosis")
{
continue;
}
scripts\common\utility::allow_weapon(1);
param_00 hypnosis_setcancelled();
if(var_03 != "force_cancel_placement")
{
thread func_13932();
}
else if(param_01)
{
scripts\cp\_utility::func_DFE0(self);
}
return 0;
}
if(!param_00.var_3872)
{
continue;
}
if(param_01)
{
scripts\cp\_utility::func_DFE0(self);
}
param_00 hypnosis_setplaced(param_02,self);
scripts\common\utility::allow_weapon(1);
return 1;
}
}
//Function Number: 6
func_E18E()
{
if(self.var_8C1E)
{
var_00 = scripts\cp\_utility::func_E55C();
self.var_E2E6 = var_00;
self.var_E556 = self method_80FB(var_00);
self takeweapon(var_00);
}
}
//Function Number: 7
func_E152()
{
if(scripts\cp\_utility::_hasperk("specialty_explosivebullets"))
{
self.var_E2DF = "specialty_explosivebullets";
scripts\cp\_utility::func_1430("specialty_explosivebullets");
}
}
//Function Number: 8
func_E2E8()
{
if(isdefined(self.var_E2E6))
{
scripts\cp\_utility::func_12C6(self.var_E2E6);
if(self.var_8C1E)
{
var_00 = scripts\cp\_utility::func_E55C();
self setweaponammoclip(var_00,self.var_E556);
}
}
self.var_E2E6 = undefined;
}
//Function Number: 9
func_E2E0()
{
if(isdefined(self.var_E2DF))
{
scripts\cp\_utility::func_8387(self.var_E2DF);
self.var_E2DF = undefined;
}
}
//Function Number: 10
func_1370F()
{
self endon("death");
self endon("disconnect");
level endon("game_ended");
wait(0.05);
func_E2E0();
}
//Function Number: 11
createhypnosisforplayer(param_00)
{
var_01 = spawnturret("misc_turret",param_00.origin + (0,0,25),"sentry_minigun_mp");
var_01.angles = param_00.angles;
var_01.var_222 = param_00;
var_01.name = "crafted_hypnosis";
var_01.carriedhypnosis = spawn("script_model",var_01.origin);
var_01.carriedhypnosis.angles = param_00.angles;
var_01 method_81F5();
var_01 method_835B(1);
var_01 method_830F("sentry_offline");
var_01 makeunusable();
var_01 method_8336(param_00);
var_01 hypnosis_inithypnosis(param_00);
return var_01;
}
//Function Number: 12
hypnosis_inithypnosis(param_00)
{
self.var_3872 = 1;
hypnosis_setinactive();
}
//Function Number: 13
hypnosis_handledeath(param_00)
{
self waittill("death");
if(!isdefined(self))
{
return;
}
hypnosis_setinactive();
self playsound("sentry_explode");
if(isdefined(self.var_3CBF))
{
self.var_3CBF delete();
}
if(isdefined(self.var_13E61))
{
self.var_13E61 delete();
}
scripts\cp\_utility::func_E11E();
if(isdefined(self))
{
self delete();
}
}
//Function Number: 14
hypnosis_setplaced(param_00,param_01)
{
var_02 = self.carriedhypnosis.origin - (0,0,35);
var_03 = self.carriedhypnosis.angles;
self.var_3A9D method_80F3();
self.var_3A9D = undefined;
param_01.var_9D81 = 0;
self.carriedhypnosis delete();
self delete();
var_04 = spawn("script_model",var_02);
var_04.angles = var_03;
var_04.var_222 = param_01;
var_04.team = "allies";
var_04 setmodel(level.crafted_hypnosis_settings["crafted_hypnosis"].var_CC12);
var_04.name = "crafted_hypnosis";
var_04.lastkilltime = gettime();
var_04.lastmultikilltime = gettime();
var_04 thread hypnosis_setactive(param_00);
var_04 playsound("trap_boom_box_drop");
self notify("placed");
}
//Function Number: 15
hypnosis_setcancelled()
{
self.var_3A9D method_80F3();
if(isdefined(self.var_222))
{
self.var_222.var_9D81 = 0;
}
self.carriedhypnosis delete();
self delete();
}
//Function Number: 16
hypnosis_setcarried(param_00,param_01)
{
if(isdefined(self.var_C731))
{
}
else
{
}
self setmodel(level.crafted_hypnosis_settings["crafted_hypnosis"].var_B924);
self hide();
self method_8335(param_00);
self setcandamage(0);
self.var_3A9D = param_00;
param_00.var_9D81 = 1;
param_00 thread scripts\cp\_utility::func_12E3F(self,self.carriedhypnosis,level.crafted_hypnosis_settings["crafted_hypnosis"],1);
thread scripts\cp\_utility::func_A025(param_00);
thread scripts\cp\_utility::func_A026(param_00);
thread scripts\cp\_utility::func_A027(param_00);
hypnosis_setinactive();
self notify("carried");
}
//Function Number: 17
hypnosis_setactive(param_00)
{
wait(0.5);
playfxontag(level._effect["hypnosis_active"],self,"tag_origin");
func_48A7((1,1,0),0,15,36);
thread hypnosis_handledeath(self.var_222);
thread scripts\cp\_utility::func_A021("elechypnosis_handleOwner");
thread scripts\cp\_utility::func_A030(param_00,level.crafted_hypnosis_settings["crafted_hypnosis"].var_11901,"explode");
thread hypnosis_trap_enemies();
thread hypnosis_sfx();
thread hypnosis_explode();
scripts\cp\_utility::func_1861();
}
//Function Number: 18
hypnosis_setinactive()
{
self stoploopsound("trap_medusa_charging_lp");
scripts\cp\_utility::func_E11E();
}
//Function Number: 19
hypnosis_trap_enemies()
{
self endon("death");
self endon("explode");
self.var_4D7E = [];
var_00 = 262144;
for(;;)
{
var_01 = scripts\cp\_agent_utils::func_7DB0("axis");
var_01 = scripts\common\utility::func_782F(self.origin,var_01);
foreach(var_03 in var_01)
{
if(!scripts\cp\_utility::func_FF18(var_03) || scripts\common\utility::istrue(var_03.var_152C) || scripts\common\utility::istrue(var_03.controlled))
{
continue;
}
if(var_03.agent_type == "crab_mini" || var_03.agent_type == "crab_brute")
{
continue;
}
if(distancesquared(self.origin,var_03.origin) < var_00)
{
var_04 = func_78AD(self,var_03);
var_03 thread func_841C(self,var_04);
var_03 thread func_DF44(self);
scripts\common\utility::func_136F7();
}
}
wait(0.1);
}
}
//Function Number: 20
hypnosis_sfx()
{
self playloopsound("town_hypnosis_tone_lp");
self waittill("explode");
self playsound("town_hypnosis_build_up_to_explode");
wait(0.25);
self playloopsound("town_hypnosis_tone_head_crush_lp");
wait(1.15);
if(isdefined(self))
{
self stoploopsound();
}
thread func_66A7();
}
//Function Number: 21
func_841C(param_00,param_01)
{
param_00 endon("death");
self endon("death");
self endon("turned");
param_00 endon("explode");
self.var_152C = 1;
self.var_EF64 = 1;
self.var_C37F = self.var_15C;
self.var_15C = 32;
self.og_movemode = self.var_1F5;
self.var_1F5 = "sprint";
var_02 = param_00.origin - param_01.origin;
var_03 = vectortoangles(var_02);
self.var_5273 = (0,var_03[1],0);
self method_82EF(param_01.origin);
scripts\common\utility::waittill_any_3("goal","goal_reached");
self setscriptablepartstate("eyes","hypnotized");
self.var_CF80 = param_00.var_222;
self.var_9BB0 = 1;
param_00.var_4D7E[param_00.var_4D7E.size] = self;
}
//Function Number: 22
func_DF44(param_00)
{
self endon("death");
param_00 scripts\common\utility::waittill_any_3("death","explode");
if(isdefined(self.var_C37F))
{
self.var_15C = self.var_C37F;
}
self.var_1F5 = self.og_movemode;
self.var_C37F = undefined;
self.var_152C = 0;
self.var_EF64 = 0;
}
//Function Number: 23
hypnosis_explode()
{
self waittill("explode");
var_00 = self.var_4D7E;
foreach(var_03, var_02 in var_00)
{
var_02 thread hypnosis_delayed_death(var_03,self);
if(isdefined(self.var_222))
{
self.var_222 scripts\cp\_merits::func_D9AD("mt_dlc3_crafted_kills");
}
}
}
//Function Number: 24
func_66A7()
{
self playsound("trap_boom_box_explode");
playfx(level._effect["violet_light_explode"],self.origin);
wait(0.1);
radiusdamage(self.origin + (0,0,40),200,500,250,self,"MOD_EXPLOSIVE","zmb_imsprojectile_mp");
self hide();
wait(0.65);
physicsexplosionsphere(self.origin,256,256,2);
wait(0.1);
self delete();
}
//Function Number: 25
hypnosis_delayed_death(param_00,param_01)
{
self endon("death");
wait(param_00 * 0.05);
self.deathmethod = "hypnosis";
if(!scripts\common\utility::istrue(self.var_9BAC))
{
lib_0A1A::func_237C("hypnosisdeath");
return;
}
lib_0A1A::func_237C("hypnosisdeathcrawling");
}
//Function Number: 26
func_78AD(param_00,param_01)
{
var_02 = sortbydistance(param_00.var_254B,param_01.origin);
foreach(var_04 in var_02)
{
if(!var_04.var_C2CF)
{
var_04.var_C2CF = 1;
return var_04;
}
}
return var_02[0];
}
//Function Number: 27
func_48A7(param_00,param_01,param_02,param_03)
{
self endon("death");
var_04 = -27120;
var_05 = 0;
var_06 = 360 / param_02;
self.var_254B = [];
for(var_07 = param_01;var_07 < 360 + param_01;var_07 = var_07 + var_06)
{
var_08 = param_00 * param_03;
var_09 = (cos(var_07) * var_08[0] - sin(var_07) * var_08[1],sin(var_07) * var_08[0] + cos(var_07) * var_08[1],var_08[2]);
var_0A = getclosestpointonnavmesh(self.origin + var_09 + (0,0,10));
if(!scripts\cp\zombies\_powerups::is_in_active_volume(var_0A))
{
continue;
}
if(isdefined(var_0A) && distancesquared(var_0A,self.origin) > var_04)
{
continue;
}
else
{
if(abs(var_0A[2] - self.origin[2]) < 60)
{
var_0B = spawnstruct();
var_0B.origin = var_0A;
var_0B.var_C2CF = 0;
self.var_254B[self.var_254B.size] = var_0B;
continue;
}
var_05++;
}
}
for(var_07 = param_01;var_07 < 360 + param_01;var_07 = var_07 + var_06)
{
var_08 = param_00 * param_03 + 56;
var_09 = (cos(var_07) * var_08[0] - sin(var_07) * var_08[1],sin(var_07) * var_08[0] + cos(var_07) * var_08[1],var_08[2]);
var_0A = getclosestpointonnavmesh(self.origin + var_09 + (0,0,10));
if(!scripts\cp\zombies\_powerups::is_in_active_volume(var_0A))
{
continue;
}
if(isdefined(var_0A) && distancesquared(var_0A,self.origin) > var_04)
{
continue;
}
else
{
if(abs(var_0A[2] - self.origin[2]) < 60)
{
var_0B = spawnstruct();
var_0B.origin = var_0A;
var_0B.var_C2CF = 0;
self.var_254B[self.var_254B.size] = var_0B;
continue;
}
var_05++;
}
}
return var_05;
}

View File

@ -0,0 +1,478 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\crafted_trap_lavalamp.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 20
* Decompile Time: 1021 ms
* Timestamp: 10/27/2023 12:10:22 AM
*******************************************************************/
//Function Number: 1
init()
{
level.lavalamp_trap_settings = [];
var_00 = spawnstruct();
var_00.var_B91A = "cp_disco_lava_lamp_bomb";
var_00.var_B924 = "cp_disco_lava_lamp_bomb";
var_00.var_B925 = "cp_disco_lava_lamp_bomb_bad";
var_00.var_17B = &"COOP_CRAFTABLES_PICKUP";
var_00.var_CC28 = &"COOP_CRAFTABLES_PLACE";
var_00.var_38E3 = &"COOP_CRAFTABLES_CANNOT_PLACE";
var_00.var_CC0A = &"COOP_CRAFTABLES_PLACE_CANCELABLE";
var_00.var_AC71 = 120;
var_00.var_DDAC = 2;
var_00.var_8487 = 0.4;
var_00.var_C228 = 12;
var_00.var_CC22 = 30;
var_00.var_CC25 = 16;
var_00.var_3AA7 = (0,0,35);
var_00.var_3AA6 = (0,-90,0);
level.lavalamp_trap_settings["crafted_lavalamp"] = var_00;
}
//Function Number: 2
give_crafted_lavalamp_trap(param_00,param_01)
{
param_01 thread func_13932();
param_01 notify("new_power","crafted_lavalamp");
param_01 setclientomnvar("zom_crafted_weapon",11);
param_01 thread scripts\cp\_utility::func_1308C(param_01,"iw7_pickup_zm");
scripts\cp\_utility::func_F313("crafted_lavalamp",::give_crafted_lavalamp_trap,param_01);
}
//Function Number: 3
func_13932()
{
self endon("death");
self endon("disconnect");
self notify("craft_dpad_watcher");
self endon("craft_dpad_watcher");
self notifyonplayercommand("pullout_ims","+actionslot 3");
for(;;)
{
self waittill("pullout_ims");
if(scripts\common\utility::istrue(self.var_9D81))
{
continue;
}
if(scripts\common\utility::istrue(self.var_AD2C))
{
continue;
}
if(isdefined(self.allow_carry) && self.allow_carry == 0)
{
continue;
}
if(scripts\cp\_utility::is_valid_player())
{
break;
}
}
thread give_lavalamp_trap("crafted_lavalamp");
}
//Function Number: 4
give_lavalamp_trap(param_00)
{
self endon("disconnect");
scripts\cp\_utility::clearlowermessage("msg_power_hint");
var_01 = create_lavalamp_trap_for_player(param_00,self);
self.var_A039 = var_01.name;
scripts\cp\_utility::func_E077();
self.carried_lavalamp_trap = var_01;
var_01.var_6DEC = 1;
var_02 = func_F684(var_01,1);
self.carried_lavalamp_trap = undefined;
thread scripts\cp\_utility::func_E2CC();
return var_02;
}
//Function Number: 5
func_F684(param_00,param_01,param_02)
{
self endon("disconnect");
param_00 thread lavalamp_trap_setcarried(self);
scripts\common\utility::allow_weapon(0);
self notifyonplayercommand("place_ims","+attack");
self notifyonplayercommand("place_ims","+attack_akimbo_accessible");
self notifyonplayercommand("cancel_ims","+actionslot 3");
if(!level.console)
{
self notifyonplayercommand("cancel_ims","+actionslot 5");
self notifyonplayercommand("cancel_ims","+actionslot 6");
self notifyonplayercommand("cancel_ims","+actionslot 7");
}
for(;;)
{
var_03 = scripts\common\utility::func_13734("place_ims","cancel_ims","force_cancel_placement","player_action_slot_restart");
if(!isdefined(var_03))
{
var_03 = "force_cancel_placement";
}
if(var_03 == "cancel_ims" || var_03 == "force_cancel_placement" || var_03 == "player_action_slot_restart")
{
if(!param_01 && var_03 == "cancel_ims")
{
continue;
}
param_00 lavalamp_trap_setcancelled(var_03 == "force_cancel_placement" && !isdefined(param_00.var_6DEC));
if(var_03 != "force_cancel_placement")
{
thread func_13932();
}
else if(param_01)
{
scripts\cp\_utility::func_DFE0(self);
}
return 0;
}
if(!param_00.var_3872)
{
continue;
}
if(param_01)
{
scripts\cp\_utility::func_DFE0(self);
}
param_00 thread lavalamp_trap_setplaced(param_02);
self notify("IMS_placed");
scripts\common\utility::allow_weapon(1);
return 1;
}
}
//Function Number: 6
create_lavalamp_trap_for_player(param_00,param_01)
{
if(isdefined(param_01.var_9D81) && param_01.var_9D81)
{
return;
}
var_02 = spawnturret("misc_turret",param_01.origin + (0,0,25),"sentry_minigun_mp");
var_02.angles = param_01.angles;
var_02.lavalamp_trap_type = param_00;
var_02.var_222 = param_01;
var_02.name = "crafted_lavalamp";
var_02.carried_lavalamp_trap = spawn("script_model",var_02.origin);
var_02.carried_lavalamp_trap.angles = param_01.angles;
var_02 method_81F5();
var_02 method_835B(1);
var_02 method_830F("sentry_offline");
var_02 makeunusable();
var_02 method_8336(param_01);
return var_02;
}
//Function Number: 7
create_lavalamp_trap(param_00,param_01)
{
var_02 = param_00.var_222;
var_03 = param_00.lavalamp_trap_type;
var_04 = spawn("script_model",param_00.origin + (0,0,1));
var_04 setmodel(level.lavalamp_trap_settings[var_03].var_B91A);
var_04.var_EB9C = 3;
var_04.angles = param_00.angles + (0,-90,0);
var_04.lavalamp_trap_type = var_03;
var_04.var_222 = var_02;
var_04 method_831F(var_02);
var_04.team = var_02.team;
var_04.name = "crafted_lavalamp";
var_04.var_10085 = 0;
var_04.hidden = 0;
var_04.var_252E = 1;
var_04.var_8BF0 = [];
var_04.var_451C = level.lavalamp_trap_settings[var_03];
var_04 thread lavalamp_trap_handleuse();
if(isdefined(param_01))
{
var_04 thread scripts\cp\_utility::func_A030(param_01);
}
else
{
var_04 thread scripts\cp\_utility::func_A030(undefined,level.lavalamp_trap_settings[self.lavalamp_trap_type].var_AC71);
}
return var_04;
}
//Function Number: 8
func_936D(param_00)
{
self.var_933C = 1;
self notify("death");
}
//Function Number: 9
func_9367(param_00)
{
self endon("carried");
self waittill("death");
if(!isdefined(self))
{
return;
}
lavalamp_trap_setinactive();
if(isdefined(self.var_9B05))
{
self.var_9B05 scripts\cp\_utility::func_E2CC();
self notify("deleting");
wait(1);
}
func_66A7();
self delete();
}
//Function Number: 10
func_66A7()
{
self setscriptablepartstate("base","explode");
wait(0.5);
radiusdamage(self.origin + (0,0,40),200,500,250,self,"MOD_EXPLOSIVE","zmb_imsprojectile_mp");
wait(0.65);
}
//Function Number: 11
lavalamp_trap_handleuse()
{
self endon("death");
level endon("game_ended");
for(;;)
{
self waittill("trigger",var_00);
if(!var_00 scripts\cp\_utility::is_valid_player())
{
continue;
}
if(scripts\common\utility::istrue(var_00.var_9D81))
{
continue;
}
var_01 = create_lavalamp_trap_for_player(self.lavalamp_trap_type,var_00);
if(!isdefined(var_01))
{
continue;
}
lavalamp_trap_setinactive();
if(isdefined(self getlinkedparent()))
{
self unlink();
}
var_00 thread func_F684(var_01,0,self.var_AC71);
self delete();
break;
}
}
//Function Number: 12
lavalamp_trap_setplaced(param_00)
{
self endon("death");
level endon("game_ended");
if(isdefined(self.var_3A9D))
{
self.var_3A9D method_80F3();
}
self.var_3A9D = undefined;
if(isdefined(self.var_222))
{
self.var_222.var_9D81 = 0;
}
self.var_6DEC = undefined;
var_01 = create_lavalamp_trap(self,param_00);
var_01.var_9EE4 = 1;
var_01 thread func_9367(self.var_222);
self notify("placed");
var_01 thread lavalamp_trap_setactive();
var_02 = spawnstruct();
if(isdefined(self.var_BD3B))
{
var_02.var_AD39 = self.var_BD3B;
}
var_02.var_6371 = "carried";
var_02.var_4E53 = ::func_936D;
var_01 thread scripts\cp\_movers::func_892F(var_02);
self.carried_lavalamp_trap delete();
self delete();
}
//Function Number: 13
lavalamp_trap_setcancelled(param_00)
{
if(isdefined(self.var_3A9D))
{
var_01 = self.var_3A9D;
var_01 method_80F3();
var_01.var_9D81 = undefined;
var_01.var_3AA0 = undefined;
var_01 scripts\common\utility::allow_weapon(1);
}
if(isdefined(param_00) && param_00)
{
func_66A7();
}
self.carried_lavalamp_trap delete();
self delete();
}
//Function Number: 14
lavalamp_trap_setcarried(param_00)
{
self method_8335(param_00);
self method_82C7(0);
self setcandamage(0);
self.var_3A9D = param_00;
param_00.var_9D81 = 1;
param_00 thread scripts\cp\_utility::func_12E3F(self,self.carried_lavalamp_trap,level.lavalamp_trap_settings["crafted_lavalamp"]);
thread scripts\cp\_utility::func_A025(param_00);
thread func_936F(param_00);
thread func_9371(param_00);
self notify("carried");
}
//Function Number: 15
func_936F(param_00)
{
self endon("placed");
self endon("death");
param_00 endon("last_stand");
param_00 waittill("disconnect");
lavalamp_trap_setcancelled();
}
//Function Number: 16
func_9371(param_00)
{
self endon("placed");
self endon("death");
param_00 endon("last_stand");
level waittill("game_ended");
lavalamp_trap_setcancelled();
}
//Function Number: 17
lavalamp_trap_setactive()
{
self endon("death");
self setcursorhint("HINT_NOICON");
self makeunusable();
scripts\cp\_utility::func_1861();
var_00 = self.var_222;
var_00 method_80F3();
self.var_2536 = spawn("trigger_radius",self.origin,0,96,96);
thread scripts\cp\_utility::func_A021("fireworks_disconnect");
earthquake(0.25,5,self.origin,128);
self playsound("trap_lavalamp_place_tick");
wait(3);
self setmodel("tag_origin_lavalamp");
thread lavalamp_trap_attackzombies();
wait(25);
self playsound("trap_lavalamp_ground_bubble_end");
wait(0.35);
self stoploopsound();
wait(1.65);
self delete();
}
//Function Number: 18
lavalamp_trap_setinactive()
{
self makeunusable();
if(isdefined(self.var_2536))
{
self.var_2536 delete();
}
if(isdefined(self.var_69F6))
{
self.var_69F6 delete();
self.var_69F6 = undefined;
}
scripts\cp\_utility::func_E11E();
}
//Function Number: 19
lavalamp_trap_attackzombies()
{
self endon("death");
level endon("game_ended");
for(;;)
{
if(!isdefined(self.var_2536))
{
break;
}
self.var_2536 waittill("trigger",var_00);
if(isplayer(var_00) && isalive(var_00) && !scripts\cp\_laststand::player_in_laststand(var_00) && !isdefined(var_00.var_C85F))
{
var_00.var_C85F = 1;
var_00 dodamage(20,var_00.origin);
var_00 thread func_E069();
continue;
}
if(!scripts\cp\_utility::func_FF18(var_00,0,1))
{
continue;
}
if(!isdefined(self.var_222))
{
break;
}
if(isdefined(var_00.var_CA80) || isdefined(var_00.team) && var_00.team == "allies")
{
continue;
}
if(isdefined(var_00.var_B36E))
{
continue;
}
var_00.var_B36E = 1;
var_00.dontmutilate = 1;
var_00 thread scripts\cp\_utility::func_4D0D(var_00,self,3,int(var_00.health + 1000),"MOD_EXPLOSIVE","incendiary_ammo_mp",undefined,"burning");
}
if(isdefined(self.var_3A9D) && isdefined(self.var_222) && self.var_3A9D == self.var_222)
{
return;
}
self notify("death");
}
//Function Number: 20
func_E069()
{
self endon("disconnect");
wait(0.5);
self.var_C85F = undefined;
}

View File

@ -0,0 +1,545 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\crafted_trap_mindcontrol.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 21
* Decompile Time: 1039 ms
* Timestamp: 10/27/2023 12:10:23 AM
*******************************************************************/
//Function Number: 1
init()
{
level.mindcontrol_trap_settings = [];
var_00 = spawnstruct();
var_00.var_39B = "zmb_robotprojectile_mp";
var_00.var_B91A = "cp_town_mind_control_device";
var_00.var_B924 = "cp_town_mind_control_device_good";
var_00.var_B925 = "cp_town_mind_control_device_bad";
var_00.var_17B = &"COOP_CRAFTABLES_PICKUP";
var_00.var_CC28 = &"COOP_CRAFTABLES_PLACE";
var_00.var_38E3 = &"COOP_CRAFTABLES_CANNOT_PLACE";
var_00.var_CC0A = &"COOP_CRAFTABLES_PLACE_CANCELABLE";
var_00.var_AC71 = 45;
var_00.var_CC22 = 30;
var_00.var_CC25 = 24;
var_00.var_3AA7 = (0,0,0);
var_00.var_3AA6 = (0,0,0);
level.mindcontrol_trap_settings["crafted_mindcontrol"] = var_00;
}
//Function Number: 2
give_crafted_mindcontrol_trap(param_00,param_01)
{
param_01 thread func_13932();
param_01 notify("new_power","crafted_mindcontrol");
param_01 setclientomnvar("zom_crafted_weapon",15);
scripts\cp\_utility::func_F313("crafted_mindcontrol",::give_crafted_mindcontrol_trap,param_01);
}
//Function Number: 3
func_13932()
{
self endon("death");
self endon("disconnect");
self notify("craft_dpad_watcher");
self endon("craft_dpad_watcher");
self notifyonplayercommand("pullout_ims","+actionslot 3");
for(;;)
{
self waittill("pullout_ims");
if(scripts\common\utility::istrue(self.var_9D81))
{
continue;
}
if(scripts\common\utility::istrue(self.var_AD2C))
{
continue;
}
if(isdefined(self.allow_carry) && self.allow_carry == 0)
{
continue;
}
if(scripts\cp\_utility::is_valid_player())
{
break;
}
}
thread give_mindcontrol_trap("crafted_mindcontrol");
}
//Function Number: 4
give_mindcontrol_trap(param_00)
{
self endon("disconnect");
scripts\cp\_utility::clearlowermessage("msg_power_hint");
var_01 = create_mindcontrol_trap_for_player(param_00,self);
self.var_A039 = var_01.name;
scripts\cp\_utility::func_E077();
self.carried_mindcontrol_trap = var_01;
var_01.var_6DEC = 1;
var_02 = set_carrying_mindcontrol(var_01,1);
self.carried_mindcontrol_trap = undefined;
thread scripts\cp\_utility::func_E2CC();
return var_02;
}
//Function Number: 5
set_carrying_mindcontrol(param_00,param_01,param_02)
{
self endon("disconnect");
param_00 thread mindcontrol_trap_setcarried(self);
scripts\common\utility::allow_weapon(0);
self notifyonplayercommand("place_ims","+attack");
self notifyonplayercommand("place_ims","+attack_akimbo_accessible");
self notifyonplayercommand("cancel_ims","+actionslot 3");
if(!level.console)
{
self notifyonplayercommand("cancel_ims","+actionslot 5");
self notifyonplayercommand("cancel_ims","+actionslot 6");
self notifyonplayercommand("cancel_ims","+actionslot 7");
}
for(;;)
{
var_03 = scripts\common\utility::func_13734("place_ims","cancel_ims","force_cancel_placement","player_action_slot_restart");
if(!isdefined(var_03))
{
var_03 = "force_cancel_placement";
}
if(var_03 == "cancel_ims" || var_03 == "force_cancel_placement" || var_03 == "player_action_slot_restart")
{
if(!param_01 && var_03 == "cancel_ims")
{
continue;
}
param_00 mindcontrol_trap_setcancelled(var_03 == "force_cancel_placement" && !isdefined(param_00.var_6DEC));
if(var_03 != "force_cancel_placement")
{
thread func_13932();
}
else if(param_01)
{
scripts\cp\_utility::func_DFE0(self);
}
return 0;
}
if(!param_00.var_3872)
{
continue;
}
if(param_01)
{
scripts\cp\_utility::func_DFE0(self);
}
param_00 thread mindcontrol_trap_setplaced(param_02);
self notify("IMS_placed");
scripts\common\utility::func_5127(0.5,::scripts\common\utility::allow_weapon,1);
return 1;
}
}
//Function Number: 6
create_mindcontrol_trap_for_player(param_00,param_01)
{
if(isdefined(param_01.var_9D81) && param_01.var_9D81)
{
return;
}
var_02 = spawnturret("misc_turret",param_01.origin + (0,0,25),"sentry_minigun_mp");
var_02.angles = param_01.angles;
var_02.mindcontrol_trap_type = param_00;
var_02.var_222 = param_01;
var_02.name = "crafted_mindcontrol";
var_02.carried_mindcontrol_trap = spawn("script_model",var_02.origin);
var_02.carried_mindcontrol_trap.angles = param_01.angles;
var_02 method_81F5();
var_02 method_835B(1);
var_02 method_830F("sentry_offline");
var_02 makeunusable();
var_02 method_8336(param_01);
return var_02;
}
//Function Number: 7
create_mindcontrol_trap(param_00,param_01)
{
var_02 = param_00.var_222;
var_03 = param_00.mindcontrol_trap_type;
var_04 = spawn("script_model",param_00.origin + (0,0,2));
var_04 setmodel(level.mindcontrol_trap_settings[var_03].var_B91A);
var_04.var_EB9C = 3;
var_04.angles = (0,param_00.carried_mindcontrol_trap.angles[1],0);
var_04.mindcontrol_trap_type = var_03;
var_04.var_222 = var_02;
var_04 method_831F(var_02);
var_04.team = var_02.team;
var_04.name = "crafted_mindcontrol";
var_04.var_10085 = 0;
var_04.hidden = 0;
var_04.var_451C = level.mindcontrol_trap_settings[var_03];
var_04 thread mindcontrol_trap_handleuse();
if(isdefined(param_01))
{
var_04 thread scripts\cp\_utility::func_A030(param_01);
}
else
{
var_04 thread scripts\cp\_utility::func_A030(undefined,level.mindcontrol_trap_settings[self.mindcontrol_trap_type].var_AC71);
}
return var_04;
}
//Function Number: 8
func_936D(param_00)
{
self.var_933C = 1;
self notify("death");
}
//Function Number: 9
func_9367(param_00)
{
self endon("carried");
self waittill("death");
if(!isdefined(self))
{
return;
}
mindcontrol_trap_setinactive();
if(isdefined(self.var_9B05))
{
self.var_9B05 scripts\cp\_utility::func_E2CC();
self notify("deleting");
wait(1);
}
func_66A7();
self delete();
}
//Function Number: 10
func_66A7()
{
self playsound("trap_boom_box_explode");
playfx(level._effect["violet_light_explode"],self.origin);
wait(0.1);
radiusdamage(self.origin + (0,0,40),200,500,250,self,"MOD_EXPLOSIVE","iw7_electrictrap_zm");
self hide();
wait(0.65);
physicsexplosionsphere(self.origin,256,256,2);
}
//Function Number: 11
mindcontrol_trap_handleuse()
{
self endon("death");
level endon("game_ended");
for(;;)
{
self waittill("trigger",var_00);
if(!var_00 scripts\cp\_utility::is_valid_player())
{
continue;
}
if(scripts\common\utility::istrue(var_00.var_9D81))
{
continue;
}
if(scripts\common\utility::istrue(var_00.kung_fu_mode))
{
continue;
}
var_01 = create_mindcontrol_trap_for_player(self.mindcontrol_trap_type,var_00);
if(!isdefined(var_01))
{
continue;
}
mindcontrol_trap_setinactive();
if(isdefined(self getlinkedparent()))
{
self unlink();
}
var_00 thread set_carrying_mindcontrol(var_01,0,self.var_AC71);
self delete();
break;
}
}
//Function Number: 12
mindcontrol_trap_setplaced(param_00)
{
self endon("death");
level endon("game_ended");
if(isdefined(self.var_3A9D))
{
self.var_3A9D method_80F3();
}
self.var_3A9D = undefined;
if(isdefined(self.var_222))
{
self.var_222.var_9D81 = 0;
}
self.var_6DEC = undefined;
var_01 = create_mindcontrol_trap(self,param_00);
var_01.var_9EE4 = 1;
var_01 thread func_9367(self.var_222);
self playsound("trap_boom_box_drop");
self notify("placed");
var_01 thread mindcontrol_trap_setactive();
var_02 = spawnstruct();
if(isdefined(self.var_BD3B))
{
var_02.var_AD39 = self.var_BD3B;
}
var_02.var_6371 = "carried";
var_02.var_4E53 = ::func_936D;
var_01 thread scripts\cp\_movers::func_892F(var_02);
self.carried_mindcontrol_trap delete();
self delete();
}
//Function Number: 13
mindcontrol_trap_setcancelled(param_00)
{
if(isdefined(self.var_3A9D))
{
var_01 = self.var_3A9D;
var_01 method_80F3();
var_01.var_9D81 = undefined;
var_01.var_3AA0 = undefined;
var_01 scripts\common\utility::allow_weapon(1);
}
if(isdefined(param_00) && param_00)
{
func_66A7();
}
self.carried_mindcontrol_trap delete();
self delete();
}
//Function Number: 14
mindcontrol_trap_setcarried(param_00)
{
self method_8335(param_00);
self method_82C7(0);
self setcandamage(0);
self.var_3A9D = param_00;
param_00.var_9D81 = 1;
param_00 thread scripts\cp\_utility::func_12E3F(self,self.carried_mindcontrol_trap,level.mindcontrol_trap_settings["crafted_mindcontrol"]);
thread scripts\cp\_utility::func_A025(param_00);
thread func_936F(param_00);
thread func_9371(param_00);
if(isdefined(level.var_5CF2))
{
self thread [[ level.var_5CF2 ]](param_00);
}
self notify("carried");
}
//Function Number: 15
func_936F(param_00)
{
self endon("placed");
self endon("death");
param_00 endon("last_stand");
param_00 waittill("disconnect");
mindcontrol_trap_setcancelled();
}
//Function Number: 16
func_9371(param_00)
{
self endon("placed");
self endon("death");
param_00 endon("last_stand");
level waittill("game_ended");
mindcontrol_trap_setcancelled();
}
//Function Number: 17
mindcontrol_trap_setactive()
{
self endon("death");
self setcursorhint("HINT_NOICON");
self sethintstring(level.mindcontrol_trap_settings[self.mindcontrol_trap_type].var_17B);
scripts\cp\_utility::func_1861();
var_00 = self.var_222;
var_00 method_80F3();
scripts\cp\_utility::func_F838(var_00);
self method_84A5(120);
self method_84A2(96);
thread mindcontrol_trap_kill_zombies();
thread scripts\cp\_utility::func_A021("mindcontrol_disconnect");
if(!isdefined(var_00.next_trap_time))
{
var_00.next_trap_time = gettime();
}
wait(1);
if(isdefined(var_00))
{
if(gettime() >= var_00.next_trap_time)
{
self setscriptablepartstate("mindcontrol","on");
}
else
{
while(gettime() <= var_00.next_trap_time)
{
wait(0.05);
}
self setscriptablepartstate("mindcontrol","on");
}
if(isdefined(var_00))
{
var_00.next_trap_time = gettime() + 3000;
return;
}
return;
}
self notify("death");
}
//Function Number: 18
mindcontrol_trap_setinactive()
{
self makeunusable();
self stoploopsound();
self setscriptablepartstate("mindcontrol","off");
if(isdefined(self.var_5761))
{
self.var_5761 delete();
}
scripts\cp\_utility::func_E11E();
}
//Function Number: 19
mindcontrol_trap_kill_zombies()
{
self endon("death");
self.var_5761 = spawn("trigger_radius",self.origin,0,200,64);
for(;;)
{
var_00 = 0;
self waittill("scriptableNotification");
var_01 = scripts\cp\_agent_utils::func_7DB0("axis");
foreach(var_03 in var_01)
{
if(!var_03 istouching(self.var_5761))
{
continue;
}
if(!scripts\cp\_utility::func_FF18(var_03) || scripts\common\utility::istrue(var_03.controlled) || scripts\common\utility::istrue(var_03.var_152C) || scripts\common\utility::istrue(var_03.var_9BB0))
{
continue;
}
if(var_03.agent_type == "crab_mini" || var_03.agent_type == "crab_brute")
{
continue;
}
if(var_00 >= 3)
{
continue;
}
var_03 thread control_zombie(self);
var_00++;
}
}
}
//Function Number: 20
control_zombie(param_00)
{
self endon("death");
self.controlled = 1;
self.var_222 = param_00.var_222;
self.var_C384 = self.health;
self.og_maxhealth = self.maxhealth;
self.og_movemode = self.var_1F5;
self.goalradius_old = self.var_15C;
self.var_9CEF = 1;
self.var_B57A = int(scripts\cp\zombies\zombies_spawning::func_3728("generic_zombie") * 0.5);
self.var_1F5 = "sprint";
self setscriptablepartstate("eyes","turned_eyes");
self.team = "allies";
self.maxhealth = 1500;
self.health = 1500;
thread kill_intersecting_zombies(param_00);
wait(60);
self notify("end_control");
self.maxhealth = self.og_maxhealth;
self.health = self.var_C384;
self.var_9CEF = undefined;
self.var_B57A = undefined;
self.controlled = 0;
self.team = "axis";
self.var_1F5 = self.og_movemode;
self.var_15C = self.goalradius_old;
self setscriptablepartstate("eyes","yellow_eyes");
}
//Function Number: 21
kill_intersecting_zombies(param_00)
{
self endon("death");
self endon("end_control");
var_01 = 576;
for(;;)
{
var_02 = scripts\cp\_agent_utils::func_7DB0("axis");
if(var_02.size == 0)
{
wait(0.05);
continue;
}
var_03 = scripts\common\utility::getclosest(self.origin,var_02);
if(distancesquared(var_03.origin,self.origin) < var_01)
{
var_03.full_gib = 1;
var_03.var_4C87 = 1;
var_03 dodamage(var_03.health + 100,var_03.origin,self,self,"MOD_MELEE","none");
if(isdefined(param_00.var_222))
{
param_00.var_222 scripts\cp\_merits::func_D9AD("mt_dlc3_crafted_kills");
}
}
wait(0.05);
}
}

View File

@ -0,0 +1,728 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\crafted_trap_mower.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 26
* Decompile Time: 1392 ms
* Timestamp: 10/27/2023 12:10:25 AM
*******************************************************************/
//Function Number: 1
init()
{
level._effect["electric_trap_idle"] = loadfx("vfx/iw7/_requests/coop/generator_idle.vfx");
level._effect["electric_trap_attack"] = loadfx("vfx/iw7/core/zombie/vfx_electrap_shock_beam.vfx");
level._effect["electric_trap_shock"] = loadfx("vfx/iw7/core/zombie/traps/electric_trap/vfx_zmb_hit_shock.vfx");
level._effect["mower_spray"] = loadfx("vfx/iw7/core/zombie/rave/mower_spray.vfx");
level._effect["mower_blade"] = loadfx("vfx/iw7/core/zombie/rave/mower_blade.vfx");
var_00 = spawnstruct();
var_00.var_11901 = 90;
var_00.var_B91A = "cp_rave_equipment_lawnmower_01";
var_00.var_B924 = "tag_origin";
var_00.var_B925 = "tag_origin";
var_00.var_17B = &"COOP_CRAFTABLES_PICKUP";
var_00.var_9F43 = 0;
var_00.var_17B = &"COOP_CRAFTABLES_PICKUP";
var_00.var_CC28 = &"CP_RAVE_MOWER_PLACEMENT";
var_00.var_38E3 = &"COOP_CRAFTABLES_CANNOT_PLACE";
var_00.var_CC0A = &"CP_RAVE_PLACE_CANCELABLE";
var_00.var_CC22 = 48;
var_00.var_CC25 = 32;
var_00.var_3AA7 = (0,0,35);
var_00.var_3AA6 = (90,270,90);
if(!isdefined(level.var_47B3))
{
level.var_47B3 = [];
}
level.var_47B3["crafted_trap_mower"] = var_00;
}
//Function Number: 2
func_82BB(param_00,param_01)
{
param_01 thread func_13932();
param_01 notify("new_power","crafted_trap_mower");
param_01 setclientomnvar("zom_crafted_weapon",10);
param_01 thread scripts\cp\_utility::func_1308C(param_01,"iw7_pickup_zm");
scripts\cp\_utility::func_F313("crafted_trap_mower",::func_82BB,param_01);
}
//Function Number: 3
func_13932()
{
self endon("disconnect");
self endon("death");
self notify("craft_dpad_watcher");
self endon("craft_dpad_watcher");
self notifyonplayercommand("pullout_trap","+actionslot 3");
for(;;)
{
self waittill("pullout_trap");
if(scripts\common\utility::istrue(self.var_9D81))
{
continue;
}
if(scripts\common\utility::istrue(self.var_AD2C))
{
continue;
}
if(isdefined(self.allow_carry) && self.allow_carry == 0)
{
continue;
}
if(scripts\cp\_utility::is_valid_player())
{
break;
}
}
thread func_8342(1);
}
//Function Number: 4
func_8342(param_00,param_01)
{
self endon("disconnect");
scripts\cp\_utility::clearlowermessage("msg_power_hint");
var_02 = func_4A2A(self);
self.var_A039 = var_02.name;
func_E152();
self.var_3AA5 = var_02;
if(param_00)
{
var_02.var_6DEC = 1;
}
if(!isdefined(param_01))
{
param_01 = level.var_47B3["crafted_trap_mower"].var_11901;
}
var_03 = func_F68A(var_02,param_00,param_01);
self.var_3AA5 = undefined;
thread func_1370F();
self.var_9D81 = 0;
if(isdefined(var_02))
{
return 1;
}
return 0;
}
//Function Number: 5
func_F68A(param_00,param_01,param_02)
{
self endon("disconnect");
param_00 func_126A8(self,param_01,param_02);
self.switch_to_weapon_after_mower = scripts\cp\_utility::getvalidtakeweapon();
self giveweapon("iw7_lawnmower_zm");
self switchtoweapon("iw7_lawnmower_zm");
scripts\common\utility::func_1C76(0);
self notifyonplayercommand("place_trap","+attack");
self notifyonplayercommand("place_trap","+attack_akimbo_accessible");
self notifyonplayercommand("cancel_trap","+actionslot 3");
if(!level.console)
{
self notifyonplayercommand("cancel_trap","+actionslot 5");
self notifyonplayercommand("cancel_trap","+actionslot 6");
self notifyonplayercommand("cancel_trap","+actionslot 7");
}
for(;;)
{
var_03 = scripts\common\utility::func_13734("place_trap","cancel_trap","force_cancel_placement");
if(!isdefined(param_00))
{
scripts\common\utility::func_1C76(1);
self takeweapon("iw7_lawnmower_zm");
self switchtoweapon(self.switch_to_weapon_after_mower);
return 1;
}
if(!isdefined(var_03))
{
var_03 = "force_cancel_placement";
}
if(var_03 == "cancel_trap" || var_03 == "force_cancel_placement")
{
if(!param_01 && var_03 == "cancel_trap")
{
continue;
}
self takeweapon("iw7_lawnmower_zm");
self.var_3AA5.var_3A9B playsound("craftable_lawn_mower_end");
scripts\common\utility::func_1C76(1);
if(!scripts\cp\_laststand::player_in_laststand(self))
{
self switchtoweapon(self.switch_to_weapon_after_mower);
}
if(scripts\common\utility::istrue(self.var_55E1))
{
scripts\common\utility::func_1C67(1);
}
self.customweaponspeedscalar = 1;
scripts\cp\maps\cp_rave\cp_rave::cp_rave_updatemovespeedscale();
param_00 func_126A7();
if(var_03 != "force_cancel_placement")
{
thread func_13932();
}
else if(param_01)
{
scripts\cp\_utility::func_DFE0(self);
}
return 0;
}
if(!param_00.var_3872)
{
continue;
}
if(param_01)
{
scripts\cp\_utility::func_DFE0(self);
}
param_00 func_126AA(param_02,self);
if(scripts\common\utility::istrue(self.var_55E1))
{
scripts\common\utility::func_1C67(1);
}
self.customweaponspeedscalar = 1;
scripts\cp\maps\cp_rave\cp_rave::cp_rave_updatemovespeedscale();
self takeweapon("iw7_lawnmower_zm");
scripts\common\utility::func_1C76(1);
self switchtoweapon(self.switch_to_weapon_after_mower);
return 1;
}
}
//Function Number: 6
func_E18E()
{
if(self.var_8C1E)
{
var_00 = scripts\cp\_utility::func_E55C();
self.var_E2E6 = var_00;
self.var_E556 = self method_80FB(var_00);
self takeweapon(var_00);
}
}
//Function Number: 7
func_E152()
{
if(scripts\cp\_utility::_hasperk("specialty_explosivebullets"))
{
self.var_E2DF = "specialty_explosivebullets";
scripts\cp\_utility::func_1430("specialty_explosivebullets");
}
}
//Function Number: 8
func_E2E8()
{
if(isdefined(self.var_E2E6))
{
scripts\cp\_utility::func_12C6(self.var_E2E6);
if(self.var_8C1E)
{
var_00 = scripts\cp\_utility::func_E55C();
self setweaponammoclip(var_00,self.var_E556);
}
}
self.var_E2E6 = undefined;
}
//Function Number: 9
func_E2E0()
{
if(isdefined(self.var_E2DF))
{
scripts\cp\_utility::func_8387(self.var_E2DF);
self.var_E2DF = undefined;
}
}
//Function Number: 10
func_1370F()
{
self endon("death");
self endon("disconnect");
level endon("game_ended");
wait(0.05);
func_E2E0();
}
//Function Number: 11
func_4A2A(param_00)
{
var_01 = spawnturret("misc_turret",param_00.origin + (0,0,40),"sentry_minigun_mp");
var_01.angles = param_00.angles;
var_01.var_222 = param_00;
var_01.name = "crafted_trap_mower";
var_01.var_3A9B = spawn("script_model",var_01.origin);
var_01.var_3A9B.angles = param_00.angles;
var_01 method_81F5();
var_01 method_835B(1);
var_01 method_830F("sentry_offline");
var_01 makeunusable();
var_01 method_8336(param_00);
var_01 func_126A2(param_00);
return var_01;
}
//Function Number: 12
func_126A2(param_00)
{
self.var_3872 = 1;
}
//Function Number: 13
func_126A0(param_00)
{
self waittill("death");
if(!isdefined(self))
{
return;
}
func_126A9();
self playsound("sentry_explode");
scripts\cp\_utility::func_E11E();
if(isdefined(self))
{
playfx(scripts\common\utility::getfx("sentry_explode_mp"),self.origin);
self playsound("sentry_explode_smoke");
wait(0.1);
if(isdefined(self))
{
if(isdefined(self.var_3A9B))
{
self.var_3A9B delete();
}
self delete();
}
}
}
//Function Number: 14
func_126A1()
{
self endon("death");
level endon("game_ended");
for(;;)
{
self waittill("trigger",var_00);
if(!var_00 scripts\cp\_utility::is_valid_player())
{
continue;
}
if(scripts\common\utility::istrue(var_00.var_9D81))
{
continue;
}
var_00 thread func_8342(0,self.var_AC71);
if(isdefined(self.var_3CBF))
{
self.var_3CBF delete();
}
playsoundatpos(self.origin,"craftable_lawn_mower_end");
scripts\cp\_utility::func_E11E();
self delete();
}
}
//Function Number: 15
delayfx()
{
self endon("death");
wait(1);
playfxontag(level._effect["mower_blade"],self,"tag_fx");
}
//Function Number: 16
func_126AA(param_00,param_01)
{
var_02 = spawn("script_model",self.origin + (0,0,10));
var_02.angles = self.angles + (0,0,-15);
var_02 solid();
var_02 setmodel(level.var_47B3["crafted_trap_mower"].var_B91A);
self.var_3A9D method_80F3();
self.var_3A9D = undefined;
var_02.repulsor = function_0277("mower_repulsor",0,var_02.origin,32,1);
param_01.var_9D81 = 0;
var_02.var_222 = param_01;
var_02.name = "crafted_trap_mower";
var_02 thread delayfx();
if(isdefined(self.var_3A9B.timeused))
{
if(isdefined(param_00))
{
param_00 = param_00 - self.var_3A9B.timeused;
if(param_00 < 1)
{
param_00 = 1;
}
}
}
var_02 thread func_126A6(param_00);
self notify("placed");
self.var_3A9B delete();
self delete();
}
//Function Number: 17
func_126A7()
{
self.var_3A9D method_80F3();
if(isdefined(self.var_222))
{
self.var_222.var_9D81 = 0;
}
if(isdefined(self.repulsor))
{
function_0278(self.repulsor);
}
self.var_3A9B delete();
self delete();
}
//Function Number: 18
func_126A8(param_00,param_01,param_02)
{
self method_8335(param_00);
self setcandamage(0);
self stoploopsound();
self.var_3A9D = param_00;
param_00.var_9D81 = 1;
param_00 thread scripts\cp\_utility::func_12E3F(self,self.var_3A9B,level.var_47B3["crafted_trap_mower"]);
thread scripts\cp\_utility::func_A025(param_00);
thread scripts\cp\_utility::func_A026(param_00);
thread scripts\cp\_utility::func_A027(param_00);
param_00 thread adswatcher(self.var_3A9B,param_02,param_01);
func_126A9();
self notify("carried");
}
//Function Number: 19
adswatcher(param_00,param_01,param_02)
{
self endon("death");
self endon("disconnect");
level endon("game_ended");
param_00 endon("placed");
param_00 endon("death");
var_03 = gettime();
param_00.timeused = 0;
var_04 = 0;
if(scripts\common\utility::istrue(param_02))
{
param_00 playsound("craftable_lawn_mower_start");
}
param_00 playloopsound("craftable_lawn_mower_lp");
var_05 = gettime();
for(;;)
{
wait(0.05);
param_00.timeused = param_00.timeused + 0.05;
if(self adsbuttonpressed(1))
{
if(var_03 <= gettime())
{
param_00 stoploopsound();
self earthquakeforplayer(0.23,1,self.origin,128);
self playrumbleonentity("heavy_3s");
param_00 playsound("craftable_lawn_mower_high_start");
param_00 playloopsound("craftable_lawn_mower_high_lp");
var_03 = gettime() + 30000;
param_00.timeused = param_00.timeused + 0.05;
if(isdefined(param_01))
{
if(param_01 - param_00.timeused <= 0)
{
param_00 method_83AD();
playfx(scripts\common\utility::getfx("sentry_explode_mp"),param_00.origin);
param_00 playsound("sentry_explode_smoke");
wait(0.5);
self notify("force_cancel_placement");
return;
}
}
}
else
{
self earthquakeforplayer(0.23,0.25,self.origin,128);
if(isdefined(param_01))
{
param_00.timeused = param_00.timeused + 0.05;
if(param_01 - param_00.timeused <= 0)
{
param_00 method_83AD();
playfx(scripts\common\utility::getfx("sentry_explode_mp"),param_00.origin);
param_00 playsound("sentry_explode_smoke");
wait(0.5);
self notify("force_cancel_placement");
return;
}
}
}
if(!var_04)
{
if(scripts\common\utility::istrue(self.var_55E1))
{
scripts\common\utility::func_1C67(0);
}
self.customweaponspeedscalar = 0.5;
scripts\cp\maps\cp_rave\cp_rave::cp_rave_updatemovespeedscale();
var_04 = 1;
}
var_06 = scripts\common\utility::getclosest(self.origin,level.spawned_enemies,64);
if(!isdefined(var_06))
{
continue;
}
if(scripts\common\utility::func_13D90(self.origin,self.angles,var_06.origin,cos(75)))
{
var_06.nocorpse = 1;
var_06.var_180 = 1;
var_06.full_gib = 1;
if(gettime() > var_05)
{
self earthquakeforplayer(0.35,1.5,var_06.origin,128);
self playrumbleonentity("heavy_1s");
self setscriptablepartstate("mower_death","on");
var_05 = gettime() + 1000;
}
var_06.disable_armor = 1;
var_07 = var_06.health + 100;
if(isdefined(var_06.is_skeleton))
{
param_00.timeused = param_00.timeused + 15;
}
else if(isdefined(var_06.agent_type))
{
if(var_06.agent_type == "zombie_sasquatch")
{
param_00.timeused = param_00.timeused + 15;
}
else if(var_06.agent_type == "lumberjack")
{
param_00.timeused = param_00.timeused + 20;
}
else if(var_06.agent_type == "slasher" || var_06.agent_type == "superslasher")
{
var_07 = 0;
}
}
if(var_07 > 0)
{
var_06.shared_damage_points = 1;
var_06 dodamage(var_06.health + 100,param_00.origin,self,self,"MOD_MELEE","iw7_lawnmower_zm");
}
}
continue;
}
if(!isdefined(param_01))
{
param_01 = level.var_47B3["crafted_trap_mower"].var_AC71;
}
if(param_01 - param_00.timeused <= 0)
{
param_00 method_83AD();
playfx(scripts\common\utility::getfx("sentry_explode_mp"),param_00.origin);
param_00 playsound("sentry_explode_smoke");
self notify("force_cancel_placement");
wait(0.5);
return;
}
var_03 = 0;
if(var_04)
{
if(scripts\common\utility::istrue(self.var_55E1))
{
scripts\common\utility::func_1C67(1);
}
self.customweaponspeedscalar = 1;
scripts\cp\maps\cp_rave\cp_rave::cp_rave_updatemovespeedscale();
var_04 = 0;
param_00 playsound("craftable_lawn_mower_high_end");
param_00 stoploopsound();
param_00 playloopsound("craftable_lawn_mower_lp");
}
}
}
//Function Number: 20
func_126A6(param_00)
{
self setcursorhint("HINT_NOICON");
self sethintstring(level.var_47B3["crafted_trap_mower"].var_17B);
self makeusable();
self method_84A7("tag_fx");
self method_84A5(120);
self method_84A2(96);
thread func_126A0(self.var_222);
thread scripts\cp\_utility::func_A021("electrap_handleOwner");
thread scripts\cp\_utility::func_A030(param_00,level.var_47B3["crafted_trap_mower"].var_11901);
thread func_126A1();
thread trap_grind_enemies();
scripts\cp\_utility::func_1861();
}
//Function Number: 21
func_126A9()
{
self makeunusable();
if(isdefined(self.repulsor))
{
function_0278(self.repulsor);
}
if(isdefined(self.dmg_trigger))
{
self.dmg_trigger notify("stop_dmg");
self.dmg_trigger delete();
}
if(isdefined(self.var_FB2F))
{
self.var_FB2F stoploopsound();
self.var_FB2F delete();
}
scripts\cp\_utility::func_E11E();
}
//Function Number: 22
trap_grind_enemies()
{
self endon("death");
wait(1);
var_00 = anglestoup(self.angles) * -1;
self.dmg_trigger = spawn("trigger_radius",self.origin + var_00 * 35,0,35,45);
self.dmg_trigger.angles = var_00;
self.dmg_trigger thread func_A631(self.var_222,self);
}
//Function Number: 23
func_A631(param_00,param_01)
{
self endon("stop_dmg");
self endon("death");
param_01 endon("death");
for(;;)
{
self waittill("trigger",var_02);
if(!scripts\cp\_utility::func_FF18(var_02) || isdefined(var_02.flung))
{
continue;
}
if(var_02.agent_type == "slasher" || var_02.agent_type == "superslasher" || var_02.agent_type == "zombie_sasquatch" || var_02.agent_type == "zombie_lumberjack")
{
continue;
}
if(isdefined(var_02.is_skeleton))
{
continue;
}
var_02.flung = 1;
var_02 thread release_zombie_on_trap_death(param_01);
level thread func_111B0(var_02,param_00,param_01);
}
}
//Function Number: 24
release_zombie_on_trap_death(param_00)
{
self endon("death");
param_00 waittill("death");
self.var_EF64 = 0;
self.nocorpse = undefined;
self.flung = undefined;
self.var_180 = 0;
if(isdefined(self.anchor))
{
self.anchor delete();
}
}
//Function Number: 25
func_111B0(param_00,param_01,param_02)
{
param_00 endon("death");
param_02 endon("death");
param_00.var_EF64 = 1;
param_00.nocorpse = 1;
param_00.var_180 = 1;
param_00.anchor = spawn("script_origin",param_00.origin);
param_00.anchor.angles = param_00.angles;
param_00 linkto(param_00.anchor);
param_00.anchor moveto(param_02.origin + (0,0,-10),0.15);
wait(0.15);
playfx(level._effect["woodchipper_entry"],param_00.origin,anglestoforward((0,0,0)),anglestoup((0,0,0)));
param_00.anchor delete();
param_00.disable_armor = 1;
level thread woodchipper_spray(param_02);
if(isdefined(param_01))
{
param_00 dodamage(param_00.health + 100,param_02.origin,param_01,param_01,"MOD_UNKNOWN","iw7_lawnmower_zm");
return;
}
param_00 dodamage(param_00.health + 100,param_02.origin,undefined,undefined,"MOD_UNKNOWN","iw7_lawnmower_zm");
}
//Function Number: 26
woodchipper_spray(param_00)
{
param_00 endon("death");
if(scripts\common\utility::istrue(param_00.spraying))
{
return;
}
param_00.spraying = 1;
param_00 setscriptablepartstate("guts","grind");
wait(3);
if(isdefined(param_00))
{
param_00.spraying = 0;
}
}

View File

@ -0,0 +1,460 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\crafted_trap_portal.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 20
* Decompile Time: 997 ms
* Timestamp: 10/27/2023 12:10:26 AM
*******************************************************************/
//Function Number: 1
init()
{
var_00 = spawnstruct();
var_00.var_11901 = 300;
var_00.var_B91A = "cp_town_teleporter_device";
var_00.var_B924 = "cp_town_teleporter_device_good";
var_00.var_B925 = "cp_town_teleporter_device_bad";
var_00.var_CC12 = "cp_town_teleporter_device";
var_00.var_17B = &"COOP_CRAFTABLES_PICKUP";
var_00.var_CC28 = &"COOP_CRAFTABLES_PLACE";
var_00.var_38E3 = &"COOP_CRAFTABLES_CANNOT_PLACE";
var_00.var_CC0A = &"COOP_CRAFTABLES_PLACE_CANCELABLE";
var_00.var_CC22 = 30;
var_00.var_CC25 = 24;
var_00.var_3AA7 = (0,0,25);
var_00.var_3AA6 = (0,0,0);
level.crafted_portal_settings = [];
level.crafted_portal_settings["crafted_portal"] = var_00;
}
//Function Number: 2
give_crafted_portal(param_00,param_01)
{
param_01 thread func_13932();
param_01 notify("new_power","crafted_portal");
param_01 setclientomnvar("zom_crafted_weapon",6);
scripts\cp\_utility::func_F313("crafted_portal",::give_crafted_portal,param_01);
if(isdefined(param_01.placed_portals) && param_01.placed_portals.size == 2)
{
foreach(var_03 in param_01.placed_portals)
{
var_03 notify("death");
}
}
}
//Function Number: 3
func_13932()
{
self endon("disconnect");
self endon("death");
self notify("craft_dpad_watcher");
self endon("craft_dpad_watcher");
self notifyonplayercommand("pullout_portal","+actionslot 3");
for(;;)
{
self waittill("pullout_portal");
if(scripts\common\utility::istrue(self.var_9D81))
{
continue;
}
if(scripts\common\utility::istrue(self.var_AD2C))
{
continue;
}
if(isdefined(self.allow_carry) && self.allow_carry == 0)
{
continue;
}
if(scripts\cp\_utility::is_valid_player())
{
break;
}
}
thread give_portal(1);
}
//Function Number: 4
give_portal(param_00,param_01,param_02)
{
self endon("disconnect");
scripts\cp\_utility::clearlowermessage("msg_power_hint");
var_03 = createportalforplayer(self,param_02);
self.var_A039 = var_03.name;
func_E152();
self.var_3AA5 = var_03;
if(param_00)
{
var_03.var_6DEC = 1;
}
var_04 = setcarryingportal(var_03,param_00,param_01);
self.var_3AA5 = undefined;
thread func_1370F();
self.var_9D81 = 0;
if(isdefined(var_03))
{
return 1;
}
return 0;
}
//Function Number: 5
setcarryingportal(param_00,param_01,param_02)
{
self endon("disconnect");
param_00 portal_setcarried(self,param_01);
scripts\common\utility::allow_weapon(0);
self notifyonplayercommand("place_portal","+attack");
self notifyonplayercommand("place_portal","+attack_akimbo_accessible");
self notifyonplayercommand("cancel_portal","+actionslot 3");
if(!level.console)
{
self notifyonplayercommand("cancel_portal","+actionslot 5");
self notifyonplayercommand("cancel_portal","+actionslot 6");
self notifyonplayercommand("cancel_portal","+actionslot 7");
}
for(;;)
{
var_03 = scripts\common\utility::func_13734("place_portal","cancel_portal","force_cancel_placement");
if(!isdefined(param_00))
{
scripts\common\utility::allow_weapon(1);
return 1;
}
if(!isdefined(var_03))
{
var_03 = "force_cancel_placement";
}
if(var_03 == "cancel_portal" || var_03 == "force_cancel_placement")
{
if(!param_01 && var_03 == "cancel_portal")
{
continue;
}
scripts\common\utility::allow_weapon(1);
param_00 portal_setcancelled();
if(var_03 != "force_cancel_placement")
{
thread func_13932();
}
else if(param_01)
{
scripts\cp\_utility::func_DFE0(self);
}
return 0;
}
if(!param_00.var_3872)
{
continue;
}
if(param_01)
{
scripts\cp\_utility::func_DFE0(self);
}
param_00 portal_setplaced(param_02,self);
scripts\common\utility::allow_weapon(1);
return 1;
}
}
//Function Number: 6
func_E152()
{
if(scripts\cp\_utility::_hasperk("specialty_explosivebullets"))
{
self.var_E2DF = "specialty_explosivebullets";
scripts\cp\_utility::func_1430("specialty_explosivebullets");
}
}
//Function Number: 7
func_E2E0()
{
if(isdefined(self.var_E2DF))
{
scripts\cp\_utility::func_8387(self.var_E2DF);
self.var_E2DF = undefined;
}
}
//Function Number: 8
func_1370F()
{
self endon("death");
self endon("disconnect");
level endon("game_ended");
wait(0.05);
func_E2E0();
}
//Function Number: 9
createportalforplayer(param_00,param_01)
{
var_02 = spawnturret("misc_turret",param_00.origin + (0,0,25),"sentry_minigun_mp");
var_02.angles = param_00.angles;
var_02.var_222 = param_00;
var_02.name = "crafted_portal";
var_02.carriedportal = spawn("script_model",var_02.origin);
var_02.carriedportal.angles = param_00.angles;
var_02 method_81F5();
var_02 method_835B(1);
var_02 method_830F("sentry_offline");
var_02 makeunusable();
var_02 method_8336(param_00);
if(!isdefined(param_01))
{
var_02.var_130D2 = 1;
}
else
{
var_02.var_130D2 = param_01;
}
var_02 portal_initportal(param_00);
return var_02;
}
//Function Number: 10
portal_initportal(param_00)
{
self.var_3872 = 1;
portal_setinactive();
}
//Function Number: 11
portal_handledeath(param_00)
{
self waittill("death");
if(!isdefined(self))
{
return;
}
portal_setinactive();
param_00.placed_portals = scripts\common\utility::func_22A9(param_00.placed_portals,self);
scripts\cp\_utility::func_E11E();
if(isdefined(self))
{
self delete();
}
}
//Function Number: 12
portal_setplaced(param_00,param_01)
{
var_02 = spawn("script_model",self.origin + (0,0,1));
var_02.angles = self.angles;
if(isdefined(level.secretpapstructs) && level.secretpapstructs.size > 0 && !isdefined(level.portal_opened))
{
var_03 = scripts\common\utility::getclosest(self.origin,level.secretpapstructs);
if(distance(var_03.origin,self.origin) <= 128)
{
var_02.papredirect = 1;
}
}
var_02 solid();
var_02 setmodel(level.crafted_portal_settings["crafted_portal"].var_CC12);
self.var_3A9D method_80F3();
self.var_3A9D = undefined;
param_01.var_9D81 = 0;
var_02.var_222 = param_01;
var_02.var_130D2 = self.var_130D2;
var_02.name = "crafted_portal";
var_02 thread portal_setactive(param_00);
var_02 thread portal_wait_for_player();
self notify("placed");
self.carriedportal delete();
self delete();
var_02 hudoutlineenableforclient(param_01,2,0,1,0);
if(!isdefined(param_01.placed_portals))
{
param_01.placed_portals = [];
}
param_01.placed_portals[param_01.placed_portals.size] = var_02;
if(param_01.placed_portals.size == 1)
{
param_01 thread func_13932();
param_01 setclientomnvar("zom_crafted_weapon",6);
scripts\cp\_utility::func_F313("crafted_portal",::give_crafted_portal,param_01);
}
if(param_01.placed_portals.size == 3)
{
param_01.placed_portals[param_01.placed_portals.size - 1] notify("death");
}
}
//Function Number: 13
portal_setcancelled()
{
self.var_3A9D method_80F3();
if(isdefined(self.var_222))
{
self.var_222.var_9D81 = 0;
}
self.carriedportal delete();
self delete();
}
//Function Number: 14
portal_setcarried(param_00,param_01)
{
self setmodel(level.crafted_portal_settings["crafted_portal"].var_B924);
self hide();
self method_8335(param_00);
self setcandamage(0);
self.var_3A9D = param_00;
param_00.var_9D81 = 1;
param_00 thread scripts\cp\_utility::func_12E3F(self,self.carriedportal,level.crafted_portal_settings["crafted_portal"]);
thread scripts\cp\_utility::func_A025(param_00);
thread scripts\cp\_utility::func_A026(param_00);
thread scripts\cp\_utility::func_A027(param_00);
portal_setinactive();
self notify("carried");
}
//Function Number: 15
portal_setactive(param_00)
{
self endon("death");
self setcursorhint("HINT_NOICON");
self sethintstring(level.crafted_portal_settings["crafted_portal"].var_17B);
self makeusable();
self method_84A7("tag_fx");
self method_84A5(120);
self method_84A2(96);
thread portal_handledeath(self.var_222);
thread scripts\cp\_utility::func_A021("elecportal_handleOwner");
thread scripts\cp\_utility::func_A030(param_00,level.crafted_portal_settings["crafted_portal"].var_11901);
thread portal_handleuse();
scripts\cp\_utility::func_1861();
wait(1);
if(!scripts\common\utility::istrue(self.papredirect))
{
self setscriptablepartstate("portal","on");
return;
}
iprintlnbold("PAP PORTAL ACTIVE");
self.var_222 notify("craft_dpad_watcher");
self.var_222 setclientomnvar("zom_crafted_weapon",0);
self.var_222.var_4B5C = undefined;
level.portal_opened = 1;
activate_pap_portals(self.origin);
foreach(var_02 in self.var_222.placed_portals)
{
var_02 notify("death");
}
}
//Function Number: 16
activate_pap_portals(param_00)
{
var_01 = scripts\common\utility::getclosest(param_00,level.secretpapstructs);
var_01.model setscriptablepartstate("portal","on");
var_01.var_19 = 1;
var_01.revealed = 1;
level.active_pap_portal = var_01;
}
//Function Number: 17
portal_handleuse()
{
self endon("death");
level endon("game_ended");
for(;;)
{
self waittill("trigger",var_00);
if(!var_00 scripts\cp\_utility::is_valid_player())
{
continue;
}
if(scripts\common\utility::istrue(var_00.var_9D81))
{
continue;
}
self playsound("zmb_item_pickup");
var_00 thread give_portal(0,self.var_AC71,self.var_130D2);
var_00.placed_portals = scripts\common\utility::func_22A9(var_00.placed_portals,self);
scripts\cp\_utility::func_E11E();
self delete();
}
}
//Function Number: 18
portal_setinactive()
{
self makeunusable();
scripts\cp\_utility::func_E11E();
}
//Function Number: 19
portal_wait_for_player()
{
self.var_222 endon("death");
self.var_222 endon("disconnect");
self endon("death");
for(;;)
{
if(scripts\common\utility::istrue(self.var_222.var_1165E))
{
while(distancesquared(self.var_222.origin,self.origin) < 576)
{
wait(0.1);
}
self.var_222.var_1165E = undefined;
}
if(distancesquared(self.var_222.origin,self.origin) < 576)
{
self.var_222.var_1165E = 1;
self.var_222 thread teleport_owner(self);
wait(5);
}
wait(0.1);
}
}
//Function Number: 20
teleport_owner(param_00)
{
var_01 = self.placed_portals;
foreach(var_03 in self.placed_portals)
{
if(var_03 == param_00)
{
continue;
}
else
{
self playlocalsound("zmb_portal_travel_lr");
scripts\cp\zombies\zombie_afterlife_arcade::func_1794();
thread scripts\cp\zombies\zombie_afterlife_arcade::func_E0AE(0.5);
playfx(level._effect["portal_player_world"],param_00.origin + (0,0,10));
self setorigin(var_03.origin + (0,0,1));
}
}
}

View File

@ -0,0 +1,713 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\crafted_trap_robot.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 26
* Decompile Time: 1263 ms
* Timestamp: 10/27/2023 12:10:28 AM
*******************************************************************/
//Function Number: 1
init()
{
level.robot_trap_settings = [];
var_00 = spawnstruct();
var_00.var_39B = "zmb_robotprojectile_mp";
var_00.var_B91A = "cp_disco_rocket_robot";
var_00.var_B924 = "cp_disco_rocket_robot";
var_00.var_B925 = "cp_disco_rocket_robot_bad";
var_00.var_17B = &"COOP_CRAFTABLES_PICKUP";
var_00.var_CC28 = &"COOP_CRAFTABLES_PLACE";
var_00.var_38E3 = &"COOP_CRAFTABLES_CANNOT_PLACE";
var_00.var_CC0A = &"COOP_CRAFTABLES_PLACE_CANCELABLE";
var_00.var_AC71 = 120;
var_00.var_DDAC = 2;
var_00.var_C228 = 12;
var_00.var_6A03 = "cp_disco_rocket_ammo_tag";
var_00.var_CC22 = 30;
var_00.var_CC25 = 16;
var_00.var_3AA7 = (0,0,15);
var_00.var_3AA6 = (0,90,0);
level.robot_trap_settings["crafted_ims"] = var_00;
}
//Function Number: 2
give_crafted_robot_trap(param_00,param_01)
{
param_01 thread func_13932();
param_01 notify("new_power","crafted_robot");
param_01 setclientomnvar("zom_crafted_weapon",12);
param_01 thread scripts\cp\_utility::func_1308C(param_01,"iw7_pickup_zm");
scripts\cp\_utility::func_F313("crafted_ims",::give_crafted_robot_trap,param_01);
}
//Function Number: 3
func_13932()
{
self endon("death");
self endon("disconnect");
self notify("craft_dpad_watcher");
self endon("craft_dpad_watcher");
self notifyonplayercommand("pullout_ims","+actionslot 3");
for(;;)
{
self waittill("pullout_ims");
if(scripts\common\utility::istrue(self.var_9D81))
{
continue;
}
if(scripts\common\utility::istrue(self.var_AD2C))
{
continue;
}
if(isdefined(self.allow_carry) && self.allow_carry == 0)
{
continue;
}
if(scripts\cp\_utility::is_valid_player())
{
break;
}
}
thread give_robot_trap("crafted_ims");
}
//Function Number: 4
give_robot_trap(param_00)
{
self endon("disconnect");
scripts\cp\_utility::clearlowermessage("msg_power_hint");
var_01 = create_robot_trap_for_player(param_00,self);
self.var_A039 = var_01.name;
scripts\cp\_utility::func_E077();
self.carried_robot_trap = var_01;
var_01.var_6DEC = 1;
var_02 = func_F684(var_01,1);
self.carried_robot_trap = undefined;
thread scripts\cp\_utility::func_E2CC();
return var_02;
}
//Function Number: 5
func_F684(param_00,param_01,param_02)
{
self endon("disconnect");
param_00 thread robot_trap_setcarried(self);
scripts\common\utility::allow_weapon(0);
self notifyonplayercommand("place_ims","+attack");
self notifyonplayercommand("place_ims","+attack_akimbo_accessible");
self notifyonplayercommand("cancel_ims","+actionslot 3");
if(!level.console)
{
self notifyonplayercommand("cancel_ims","+actionslot 5");
self notifyonplayercommand("cancel_ims","+actionslot 6");
self notifyonplayercommand("cancel_ims","+actionslot 7");
}
for(;;)
{
var_03 = scripts\common\utility::func_13734("place_ims","cancel_ims","force_cancel_placement","player_action_slot_restart");
if(!isdefined(var_03))
{
var_03 = "force_cancel_placement";
}
if(var_03 == "cancel_ims" || var_03 == "force_cancel_placement" || var_03 == "player_action_slot_restart")
{
if(!param_01 && var_03 == "cancel_ims")
{
continue;
}
param_00 robot_trap_setcancelled(var_03 == "force_cancel_placement" && !isdefined(param_00.var_6DEC));
if(var_03 != "force_cancel_placement")
{
thread func_13932();
}
else if(param_01)
{
scripts\cp\_utility::func_DFE0(self);
}
return 0;
}
if(!param_00.var_3872)
{
continue;
}
if(param_01)
{
scripts\cp\_utility::func_DFE0(self);
}
param_00 thread robot_trap_setplaced(param_02);
self notify("IMS_placed");
scripts\common\utility::func_5127(0.5,::scripts\common\utility::allow_weapon,1);
return 1;
}
}
//Function Number: 6
create_robot_trap_for_player(param_00,param_01)
{
if(isdefined(param_01.var_9D81) && param_01.var_9D81)
{
return;
}
var_02 = spawnturret("misc_turret",param_01.origin + (0,0,25),"sentry_minigun_mp");
var_02.angles = param_01.angles;
var_02.robot_trap_type = param_00;
var_02.var_222 = param_01;
var_02.name = "crafted_ims";
var_02.carried_robot_trap = spawn("script_model",var_02.origin);
var_02.carried_robot_trap.angles = param_01.angles;
var_02 method_81F5();
var_02 method_835B(1);
var_02 method_830F("sentry_offline");
var_02 makeunusable();
var_02 method_8336(param_01);
return var_02;
}
//Function Number: 7
create_robot_trap(param_00,param_01)
{
var_02 = param_00.var_222;
var_03 = param_00.robot_trap_type;
var_04 = spawn("script_model",param_00.origin + (0,0,2));
var_04 setmodel(level.robot_trap_settings[var_03].var_B91A);
var_04.var_EB9C = 3;
var_04.angles = (0,param_00.carried_robot_trap.angles[1],0);
var_04.robot_trap_type = var_03;
var_04.var_222 = var_02;
var_04 method_831F(var_02);
var_04.team = var_02.team;
var_04.name = "crafted_ims";
var_04.var_10085 = 0;
var_04.hidden = 0;
var_04.var_252E = 1;
var_04.var_8BF0 = [];
var_04.var_451C = level.robot_trap_settings[var_03];
var_04 thread robot_trap_handleuse();
if(isdefined(param_01))
{
var_04 thread scripts\cp\_utility::func_A030(param_01);
}
else
{
var_04 thread scripts\cp\_utility::func_A030(undefined,level.robot_trap_settings[self.robot_trap_type].var_AC71);
}
return var_04;
}
//Function Number: 8
func_936D(param_00)
{
self.var_933C = 1;
self notify("death");
}
//Function Number: 9
func_9367(param_00)
{
self endon("carried");
self waittill("death");
if(!isdefined(self))
{
return;
}
robot_trap_setinactive();
if(isdefined(self.var_9B05))
{
self.var_9B05 scripts\cp\_utility::func_E2CC();
self notify("deleting");
wait(1);
}
func_66A7();
self delete();
}
//Function Number: 10
func_66A7()
{
self setscriptablepartstate("main","anim_death");
wait(3);
playsoundatpos(self.origin + (0,0,60),"disco_toy_robot_explo");
wait(0.1);
radiusdamage(self.origin + (0,0,40),200,500,250,self,"MOD_EXPLOSIVE","zmb_imsprojectile_mp");
self hide();
wait(0.65);
physicsexplosionsphere(self.origin,256,256,2);
}
//Function Number: 11
robot_trap_handleuse()
{
self endon("death");
level endon("game_ended");
for(;;)
{
self waittill("trigger",var_00);
if(!var_00 scripts\cp\_utility::is_valid_player())
{
continue;
}
if(scripts\common\utility::istrue(var_00.var_9D81))
{
continue;
}
if(scripts\common\utility::istrue(var_00.kung_fu_mode))
{
continue;
}
var_01 = create_robot_trap_for_player(self.robot_trap_type,var_00);
if(!isdefined(var_01))
{
continue;
}
robot_trap_setinactive();
if(isdefined(self getlinkedparent()))
{
self unlink();
}
var_00 thread func_F684(var_01,0,self.var_AC71);
self delete();
break;
}
}
//Function Number: 12
robot_trap_setplaced(param_00)
{
self endon("death");
level endon("game_ended");
if(isdefined(self.var_3A9D))
{
self.var_3A9D method_80F3();
}
self.var_3A9D = undefined;
if(isdefined(self.var_222))
{
self.var_222.var_9D81 = 0;
}
self.var_6DEC = undefined;
var_01 = create_robot_trap(self,param_00);
var_01.var_9EE4 = 1;
var_01 thread func_9367(self.var_222);
self playsound("trap_boom_box_drop");
self notify("placed");
var_01 thread robot_trap_setactive();
var_02 = spawnstruct();
if(isdefined(self.var_BD3B))
{
var_02.var_AD39 = self.var_BD3B;
}
var_02.var_6371 = "carried";
var_02.var_4E53 = ::func_936D;
var_01 thread scripts\cp\_movers::func_892F(var_02);
self.carried_robot_trap delete();
self delete();
}
//Function Number: 13
robot_trap_setcancelled(param_00)
{
if(isdefined(self.var_3A9D))
{
var_01 = self.var_3A9D;
var_01 method_80F3();
var_01.var_9D81 = undefined;
var_01.var_3AA0 = undefined;
var_01 scripts\common\utility::allow_weapon(1);
}
if(isdefined(param_00) && param_00)
{
func_66A7();
}
self.carried_robot_trap delete();
self delete();
}
//Function Number: 14
robot_trap_setcarried(param_00)
{
self method_8335(param_00);
self method_82C7(0);
self setcandamage(0);
self.var_3A9D = param_00;
param_00.var_9D81 = 1;
param_00 thread scripts\cp\_utility::func_12E3F(self,self.carried_robot_trap,level.robot_trap_settings["crafted_ims"]);
thread scripts\cp\_utility::func_A025(param_00);
thread func_936F(param_00);
thread func_9371(param_00);
if(isdefined(level.var_5CF2))
{
self thread [[ level.var_5CF2 ]](param_00);
}
self notify("carried");
}
//Function Number: 15
func_936F(param_00)
{
self endon("placed");
self endon("death");
param_00 endon("last_stand");
param_00 waittill("disconnect");
robot_trap_setcancelled();
}
//Function Number: 16
func_9371(param_00)
{
self endon("placed");
self endon("death");
param_00 endon("last_stand");
level waittill("game_ended");
robot_trap_setcancelled();
}
//Function Number: 17
robot_trap_setactive()
{
self endon("death");
self setcursorhint("HINT_NOICON");
self sethintstring(level.robot_trap_settings[self.robot_trap_type].var_17B);
scripts\cp\_utility::func_1861();
var_00 = self.var_222;
var_00 method_80F3();
self method_84A5(120);
self method_84A2(96);
wait(0.05);
self.var_2514 = self gettagorigin("tag_rocket_tube_01") + (0,0,72);
self.alt_attackheightpos = self.var_2514;
var_01 = bullettrace(self.var_2514,self.var_2514 + (0,0,500),0,self);
var_02 = var_01["position"] - (0,0,20) - self.origin;
if(var_02[2] > 250)
{
self.var_2514 = self gettagorigin("tag_rocket_tube_01") + (0,0,250);
}
self.attacklaunchpos = [];
self.attacklaunchpos[0] = self gettagorigin("tag_rocket_tube_01") + (0,0,-10);
self.attacklaunchpos[1] = self gettagorigin("tag_rocket_tube_02") + (0,0,-10);
var_03 = spawn("trigger_radius",self.origin,0,300,100);
self.var_2536 = var_03;
self.var_2536 enablelinkto();
self.var_2536 linkto(self);
self.var_2528 = 0.72;
wait(0.75);
self setscriptablepartstate("main","anim_idle");
self setscriptablepartstate("head_coils","on");
self setscriptablepartstate("LED_Panel","Idle");
thread rotate_robot();
if(isdefined(self.var_222))
{
thread robot_usability_monitor(self.var_222);
}
thread robot_trap_attackzombies();
thread scripts\cp\_utility::func_A021("robot_disconnect");
}
//Function Number: 18
rotate_robot()
{
self endon("death");
self playloopsound("disco_toy_robot_mvmt_lp");
for(;;)
{
self rotateyaw(15,2);
wait(2);
}
}
//Function Number: 19
robot_trap_setinactive()
{
self makeunusable();
self stoploopsound();
if(isdefined(self.var_2536))
{
self.var_2536 delete();
}
if(isdefined(self.var_69F6))
{
self.var_69F6 delete();
self.var_69F6 = undefined;
}
scripts\cp\_utility::func_E11E();
}
//Function Number: 20
robot_usability_monitor(param_00)
{
self endon("death");
param_00 endon("disconnect");
for(;;)
{
foreach(var_02 in level.players)
{
if(var_02 == param_00)
{
if(scripts\common\utility::istrue(param_00.kung_fu_mode))
{
self makeunusable();
self disableplayeruse(param_00);
}
else
{
self sethintstring(level.robot_trap_settings[self.robot_trap_type].var_17B);
self method_84A5(120);
self method_84A2(112);
self makeusable();
self enableplayeruse(param_00);
}
continue;
}
self disableplayeruse(var_02);
}
wait(1);
}
}
//Function Number: 21
robot_trap_attackzombies()
{
self endon("death");
level endon("game_ended");
self setscriptablepartstate("LED_Face","Smile");
for(;;)
{
if(!isdefined(self.var_2536))
{
break;
}
self.var_2536 waittill("trigger",var_00);
if(isplayer(var_00))
{
continue;
}
if(!scripts\cp\_utility::func_FF18(var_00,0,1))
{
continue;
}
if(var_00.agent_type == "ratking")
{
continue;
}
if(isdefined(var_00.robot_target))
{
continue;
}
if(distancesquared(var_00.origin,self.origin) < 9216)
{
var_00.robot_target = 1;
self setscriptablepartstate("LED_Face","Sad");
self setscriptablepartstate("LED_Panel","ZAP");
thread robot_zap(var_00);
wait(0.5);
self setscriptablepartstate("LED_Face","Smile");
self setscriptablepartstate("LED_Panel","Idle");
continue;
}
var_01 = var_00.origin + (0,0,50);
var_02 = 0;
if(!sighttracepassed(self.var_2514,var_01,0,self))
{
if(!sighttracepassed(self.alt_attackheightpos,var_01,0,self))
{
continue;
}
var_02 = 1;
}
if(!isdefined(self.var_2536))
{
break;
}
if(!isdefined(self.var_8BF0[self.var_252E]))
{
var_00.robot_target = 1;
self.var_8BF0[self.var_252E] = 1;
self.var_252E++;
thread launch_rocket(var_00,self.var_252E,var_02);
}
if(self.var_252E % 2)
{
self waittill("firework_exploded");
}
wait(self.var_451C.var_DDAC);
if(!isdefined(self.var_222))
{
break;
}
if(self.var_252E >= level.robot_trap_settings["crafted_ims"].var_C228)
{
break;
}
}
if(isdefined(self.var_3A9D) && isdefined(self.var_222) && self.var_3A9D == self.var_222)
{
return;
}
self notify("death");
}
//Function Number: 22
robot_zap(param_00)
{
param_00.dontmutilate = 1;
param_00.electrocuted = 1;
thread func_601A(param_00);
param_00 setscriptablepartstate("electrocuted","on");
if(isdefined(self.var_222))
{
var_01 = self.var_222;
}
else
{
var_01 = undefined;
}
param_00 dodamage(param_00.health + 100,self.origin,var_01,self,"MOD_UNKNOWN","iw7_robotzap_zm");
}
//Function Number: 23
func_601A(param_00)
{
param_00 endon("death");
var_01 = ["J_SpineLower","J_Chest","J_Head","J_Neck","J_Crotch"];
var_02 = self gettagorigin("tag_fx_laser_dish");
var_03 = scripts\common\utility::random(var_01);
var_04 = param_00 gettagorigin(var_03);
playsoundatpos(self.origin,"trap_electric_shock");
function_02E0(level._effect["robot_zap"],var_02,vectortoangles(var_04 - var_02),var_04);
}
//Function Number: 24
launch_rocket(param_00,param_01,param_02)
{
if(!isdefined(self.last_launch_tube))
{
self.last_launch_tube = 0;
}
if(self.last_launch_tube == 0)
{
var_03 = self.attacklaunchpos[1];
self setscriptablepartstate("right_launch","launch");
}
else
{
self setscriptablepartstate("left_launch","launch");
var_03 = self.attacklaunchpos[0];
}
thread launch_anim();
if(self.last_launch_tube == 0)
{
self.last_launch_tube = 1;
}
else
{
self.last_launch_tube = 0;
}
var_04 = spawn("script_model",var_03);
var_04 setmodel(self.var_451C.var_6A03);
var_04.angles = self.angles;
var_05 = self.var_451C.var_39B;
var_06 = self.var_222;
var_07 = self.var_2514;
if(param_02)
{
var_07 = self.alt_attackheightpos;
}
var_04 moveto(var_07,self.var_2528,self.var_2528 * 0.5,0);
wait(self.var_2528);
var_04 setscriptablepartstate("rocket","explode");
if(isdefined(var_06))
{
var_08 = magicbullet(var_05,var_04.origin,(param_00.origin[0],param_00.origin[1],var_04.origin[2] - 5),var_06);
}
else
{
var_08 = magicbullet(var_06,var_05.origin,param_01.origin,level.players[0]);
}
var_08 thread watch_for_death();
wait(0.1);
var_04 delete();
var_08 missile_settargetent(param_00);
wait(1.5);
self notify("firework_exploded");
}
//Function Number: 25
launch_anim()
{
self endon("death");
self setscriptablepartstate("main","anim_launch");
self setscriptablepartstate("LED_Panel","Boom");
self setscriptablepartstate("LED_Face","Sad");
wait(1);
if(self.var_252E % 2)
{
self setscriptablepartstate("main","anim_headspin");
wait(1);
}
self setscriptablepartstate("LED_Panel","Idle");
self setscriptablepartstate("LED_Face","Smile");
self setscriptablepartstate("main","anim_idle");
}
//Function Number: 26
watch_for_death()
{
self waittill("death");
earthquake(0.35,1,self.origin,196);
playrumbleonposition("artillery_rumble",self.origin);
}

View File

@ -0,0 +1,516 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\crafted_trap_seismic.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 20
* Decompile Time: 989 ms
* Timestamp: 10/27/2023 12:10:29 AM
*******************************************************************/
//Function Number: 1
init()
{
level.seismic_trap_settings = [];
var_00 = spawnstruct();
var_00.var_39B = "zmb_robotprojectile_mp";
var_00.var_B91A = "cp_town_seismic_wave_device";
var_00.var_B924 = "cp_town_seismic_wave_device_good";
var_00.var_B925 = "cp_town_seismic_wave_device_bad";
var_00.var_17B = &"COOP_CRAFTABLES_PICKUP";
var_00.var_CC28 = &"COOP_CRAFTABLES_PLACE";
var_00.var_38E3 = &"COOP_CRAFTABLES_CANNOT_PLACE";
var_00.var_CC0A = &"COOP_CRAFTABLES_PLACE_CANCELABLE";
var_00.var_AC71 = 45;
var_00.var_CC22 = 30;
var_00.var_CC25 = 24;
var_00.var_3AA7 = (0,0,0);
var_00.var_3AA6 = (0,0,0);
level.seismic_trap_settings["crafted_seismic"] = var_00;
}
//Function Number: 2
give_crafted_seismic_trap(param_00,param_01)
{
param_01 thread func_13932();
param_01 notify("new_power","crafted_seismic");
param_01 setclientomnvar("zom_crafted_weapon",17);
scripts\cp\_utility::func_F313("crafted_seismic",::give_crafted_seismic_trap,param_01);
}
//Function Number: 3
func_13932()
{
self endon("death");
self endon("disconnect");
self notify("craft_dpad_watcher");
self endon("craft_dpad_watcher");
self notifyonplayercommand("pullout_ims","+actionslot 3");
for(;;)
{
self waittill("pullout_ims");
if(scripts\common\utility::istrue(self.var_9D81))
{
continue;
}
if(scripts\common\utility::istrue(self.var_AD2C))
{
continue;
}
if(isdefined(self.allow_carry) && self.allow_carry == 0)
{
continue;
}
if(scripts\cp\_utility::is_valid_player())
{
break;
}
}
thread give_seismic_trap("crafted_seismic");
}
//Function Number: 4
give_seismic_trap(param_00)
{
self endon("disconnect");
scripts\cp\_utility::clearlowermessage("msg_power_hint");
var_01 = create_seismic_trap_for_player(param_00,self);
self.var_A039 = var_01.name;
scripts\cp\_utility::func_E077();
self.carried_seismic_trap = var_01;
var_01.var_6DEC = 1;
var_02 = set_carrying_seismic(var_01,1);
self.carried_seismic_trap = undefined;
thread scripts\cp\_utility::func_E2CC();
return var_02;
}
//Function Number: 5
set_carrying_seismic(param_00,param_01,param_02)
{
self endon("disconnect");
param_00 thread seismic_trap_setcarried(self);
scripts\common\utility::allow_weapon(0);
self notifyonplayercommand("place_ims","+attack");
self notifyonplayercommand("place_ims","+attack_akimbo_accessible");
self notifyonplayercommand("cancel_ims","+actionslot 3");
if(!level.console)
{
self notifyonplayercommand("cancel_ims","+actionslot 5");
self notifyonplayercommand("cancel_ims","+actionslot 6");
self notifyonplayercommand("cancel_ims","+actionslot 7");
}
for(;;)
{
var_03 = scripts\common\utility::func_13734("place_ims","cancel_ims","force_cancel_placement","player_action_slot_restart");
if(!isdefined(var_03))
{
var_03 = "force_cancel_placement";
}
if(var_03 == "cancel_ims" || var_03 == "force_cancel_placement" || var_03 == "player_action_slot_restart")
{
if(!param_01 && var_03 == "cancel_ims")
{
continue;
}
param_00 seismic_trap_setcancelled(var_03 == "force_cancel_placement" && !isdefined(param_00.var_6DEC));
if(var_03 != "force_cancel_placement")
{
thread func_13932();
}
else if(param_01)
{
scripts\cp\_utility::func_DFE0(self);
}
return 0;
}
if(!param_00.var_3872)
{
continue;
}
if(param_01)
{
scripts\cp\_utility::func_DFE0(self);
}
param_00 thread seismic_trap_setplaced(param_02);
self notify("IMS_placed");
scripts\common\utility::func_5127(0.5,::scripts\common\utility::allow_weapon,1);
return 1;
}
}
//Function Number: 6
create_seismic_trap_for_player(param_00,param_01)
{
if(isdefined(param_01.var_9D81) && param_01.var_9D81)
{
return;
}
var_02 = spawnturret("misc_turret",param_01.origin + (0,0,25),"sentry_minigun_mp");
var_02.angles = param_01.angles;
var_02.seismic_trap_type = param_00;
var_02.var_222 = param_01;
var_02.name = "crafted_seismic";
var_02.carried_seismic_trap = spawn("script_model",var_02.origin);
var_02.carried_seismic_trap.angles = param_01.angles;
var_02 method_81F5();
var_02 method_835B(1);
var_02 method_830F("sentry_offline");
var_02 makeunusable();
var_02 method_8336(param_01);
return var_02;
}
//Function Number: 7
create_seismic_trap(param_00,param_01)
{
var_02 = param_00.var_222;
var_03 = param_00.seismic_trap_type;
var_04 = spawn("script_model",param_00.origin + (0,0,2));
var_04 setmodel(level.seismic_trap_settings[var_03].var_B91A);
var_04.var_EB9C = 3;
var_04.angles = (0,param_00.carried_seismic_trap.angles[1],0);
var_04.seismic_trap_type = var_03;
var_04.var_222 = var_02;
var_04 method_831F(var_02);
var_04.team = var_02.team;
var_04.name = "crafted_seismic";
var_04.var_10085 = 0;
var_04.hidden = 0;
var_04.var_451C = level.seismic_trap_settings[var_03];
var_04 thread seismic_trap_handleuse();
if(isdefined(param_01))
{
var_04 thread scripts\cp\_utility::func_A030(param_01);
}
else
{
var_04 thread scripts\cp\_utility::func_A030(undefined,level.seismic_trap_settings[self.seismic_trap_type].var_AC71);
}
return var_04;
}
//Function Number: 8
func_936D(param_00)
{
self.var_933C = 1;
self notify("death");
}
//Function Number: 9
func_9367(param_00)
{
self endon("carried");
self waittill("death");
if(!isdefined(self))
{
return;
}
seismic_trap_setinactive();
if(isdefined(self.var_9B05))
{
self.var_9B05 scripts\cp\_utility::func_E2CC();
self notify("deleting");
wait(1);
}
func_66A7();
self delete();
}
//Function Number: 10
func_66A7()
{
self playsound("trap_boom_box_explode");
playfx(level._effect["violet_light_explode"],self.origin);
wait(0.1);
radiusdamage(self.origin + (0,0,40),200,500,250,self,"MOD_EXPLOSIVE","zmb_imsprojectile_mp");
self hide();
wait(0.65);
physicsexplosionsphere(self.origin,256,256,2);
}
//Function Number: 11
seismic_trap_handleuse()
{
self endon("death");
level endon("game_ended");
for(;;)
{
self waittill("trigger",var_00);
if(!var_00 scripts\cp\_utility::is_valid_player())
{
continue;
}
if(scripts\common\utility::istrue(var_00.var_9D81))
{
continue;
}
if(scripts\common\utility::istrue(var_00.kung_fu_mode))
{
continue;
}
var_01 = create_seismic_trap_for_player(self.seismic_trap_type,var_00);
if(!isdefined(var_01))
{
continue;
}
seismic_trap_setinactive();
if(isdefined(self getlinkedparent()))
{
self unlink();
}
var_00 thread set_carrying_seismic(var_01,0,self.var_AC71);
self delete();
break;
}
}
//Function Number: 12
seismic_trap_setplaced(param_00)
{
self endon("death");
level endon("game_ended");
if(isdefined(self.var_3A9D))
{
self.var_3A9D method_80F3();
}
self.var_3A9D = undefined;
if(isdefined(self.var_222))
{
self.var_222.var_9D81 = 0;
}
self.var_6DEC = undefined;
var_01 = create_seismic_trap(self,param_00);
var_01.var_9EE4 = 1;
var_01 thread func_9367(self.var_222);
self playsound("trap_boom_box_drop");
self notify("placed");
var_01 thread seismic_trap_setactive();
var_02 = spawnstruct();
if(isdefined(self.var_BD3B))
{
var_02.var_AD39 = self.var_BD3B;
}
var_02.var_6371 = "carried";
var_02.var_4E53 = ::func_936D;
var_01 thread scripts\cp\_movers::func_892F(var_02);
self.carried_seismic_trap delete();
self delete();
}
//Function Number: 13
seismic_trap_setcancelled(param_00)
{
if(isdefined(self.var_3A9D))
{
var_01 = self.var_3A9D;
var_01 method_80F3();
var_01.var_9D81 = undefined;
var_01.var_3AA0 = undefined;
var_01 scripts\common\utility::allow_weapon(1);
}
if(isdefined(param_00) && param_00)
{
func_66A7();
}
self.carried_seismic_trap delete();
self delete();
}
//Function Number: 14
seismic_trap_setcarried(param_00)
{
self method_8335(param_00);
self method_82C7(0);
self setcandamage(0);
self.var_3A9D = param_00;
param_00.var_9D81 = 1;
param_00 thread scripts\cp\_utility::func_12E3F(self,self.carried_seismic_trap,level.seismic_trap_settings["crafted_seismic"]);
thread scripts\cp\_utility::func_A025(param_00);
thread func_936F(param_00);
thread func_9371(param_00);
if(isdefined(level.var_5CF2))
{
self thread [[ level.var_5CF2 ]](param_00);
}
self notify("carried");
}
//Function Number: 15
func_936F(param_00)
{
self endon("placed");
self endon("death");
param_00 endon("last_stand");
param_00 waittill("disconnect");
seismic_trap_setcancelled();
}
//Function Number: 16
func_9371(param_00)
{
self endon("placed");
self endon("death");
param_00 endon("last_stand");
level waittill("game_ended");
seismic_trap_setcancelled();
}
//Function Number: 17
seismic_trap_setactive()
{
self endon("death");
self setcursorhint("HINT_NOICON");
self sethintstring(level.seismic_trap_settings[self.seismic_trap_type].var_17B);
scripts\cp\_utility::func_1861();
var_00 = self.var_222;
var_00 method_80F3();
scripts\cp\_utility::func_F838(var_00);
self method_84A5(120);
self method_84A2(96);
if(isdefined(level.mpq_arm_func))
{
self thread [[ level.mpq_arm_func ]]();
}
thread seismic_trap_kill_zombies();
thread scripts\cp\_utility::func_A021("seismic_disconnect");
if(!isdefined(var_00.next_trap_time))
{
var_00.next_trap_time = gettime();
}
wait(1);
if(isdefined(var_00))
{
if(gettime() >= var_00.next_trap_time)
{
self setscriptablepartstate("seismic","on");
}
else
{
while(gettime() <= var_00.next_trap_time)
{
wait(0.05);
}
self setscriptablepartstate("seismic","on");
}
if(isdefined(var_00))
{
var_00.next_trap_time = gettime() + 3000;
return;
}
return;
}
self notify("death");
}
//Function Number: 18
seismic_trap_setinactive()
{
self makeunusable();
self stoploopsound();
self setscriptablepartstate("seismic","off");
if(isdefined(self.var_5761))
{
self.var_5761 delete();
}
scripts\cp\_utility::func_E11E();
}
//Function Number: 19
seismic_trap_kill_zombies()
{
self endon("death");
self.var_5761 = spawn("trigger_radius",self.origin,0,250,64);
for(;;)
{
self waittill("scriptableNotification");
var_00 = scripts\cp\_agent_utils::func_7DB0("axis");
foreach(var_02 in var_00)
{
if(!var_02 istouching(self.var_5761))
{
continue;
}
if(!scripts\cp\_utility::func_FF18(var_02))
{
continue;
}
if(var_02.agent_type == "crab_mini" || var_02.agent_type == "crab_brute")
{
continue;
}
level thread func_6F32(self,var_02);
if(isdefined(self.var_222))
{
self.var_222 scripts\cp\_merits::func_D9AD("mt_dlc3_crafted_kills");
}
}
foreach(var_05 in level.players)
{
if(var_05 istouching(self.var_5761))
{
var_05 shellshock("seismic",0.5);
}
}
wait(0.1);
physicsexplosionsphere(self.origin + (0,0,-20),200,150,250);
}
}
//Function Number: 20
func_6F32(param_00,param_01)
{
param_01 endon("death");
param_01.dontmutilate = 1;
param_01.do_immediate_ragdoll = 1;
param_01.var_4C87 = 1;
param_01.ragdollhitloc = "torso_lower";
var_02 = param_00.origin - param_01.origin;
var_02 = vectornormalize((var_02[0],var_02[1],0));
param_01.ragdollimpactvector = var_02 * 3500;
var_03 = undefined;
if(isdefined(param_00.var_222) && param_00.var_222 scripts\cp\_utility::is_valid_player())
{
var_03 = param_00.var_222;
}
param_01 dodamage(param_01.health + 100,param_00.origin + (0,0,-50),var_03,var_03,"MOD_UNKNOWN","iw7_fantrap_zm");
}

View File

@ -0,0 +1,480 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\crafted_trap_violetray.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 19
* Decompile Time: 916 ms
* Timestamp: 10/27/2023 12:10:30 AM
*******************************************************************/
//Function Number: 1
init()
{
level.violetray_trap_settings = [];
var_00 = spawnstruct();
var_00.var_39B = "zmb_robotprojectile_mp";
var_00.var_B91A = "cp_town_violet_xray_device";
var_00.var_B924 = "cp_town_violet_xray_device_good";
var_00.var_B925 = "cp_town_violet_xray_device_bad";
var_00.var_17B = &"COOP_CRAFTABLES_PICKUP";
var_00.var_CC28 = &"COOP_CRAFTABLES_PLACE";
var_00.var_38E3 = &"COOP_CRAFTABLES_CANNOT_PLACE";
var_00.var_CC0A = &"COOP_CRAFTABLES_PLACE_CANCELABLE";
var_00.var_AC71 = 30;
var_00.var_CC22 = 30;
var_00.var_CC25 = 24;
var_00.var_3AA7 = (0,0,0);
var_00.var_3AA6 = (0,0,0);
level.violetray_trap_settings["crafted_violetray"] = var_00;
}
//Function Number: 2
give_crafted_violetray_trap(param_00,param_01)
{
param_01 thread func_13932();
param_01 notify("new_power","crafted_violetray");
param_01 setclientomnvar("zom_crafted_weapon",18);
scripts\cp\_utility::func_F313("crafted_violetray",::give_crafted_violetray_trap,param_01);
}
//Function Number: 3
func_13932()
{
self endon("death");
self endon("disconnect");
self notify("craft_dpad_watcher");
self endon("craft_dpad_watcher");
self notifyonplayercommand("pullout_ims","+actionslot 3");
for(;;)
{
self waittill("pullout_ims");
if(scripts\common\utility::istrue(self.var_9D81))
{
continue;
}
if(scripts\common\utility::istrue(self.var_AD2C))
{
continue;
}
if(isdefined(self.allow_carry) && self.allow_carry == 0)
{
continue;
}
if(scripts\cp\_utility::is_valid_player())
{
break;
}
}
thread give_violetray_trap("crafted_violetray");
}
//Function Number: 4
give_violetray_trap(param_00)
{
self endon("disconnect");
scripts\cp\_utility::clearlowermessage("msg_power_hint");
var_01 = create_violetray_trap_for_player(param_00,self);
self.var_A039 = var_01.name;
scripts\cp\_utility::func_E077();
self.carried_violetray_trap = var_01;
var_01.var_6DEC = 1;
var_02 = set_carrying_violetray(var_01,1);
self.carried_violetray_trap = undefined;
thread scripts\cp\_utility::func_E2CC();
return var_02;
}
//Function Number: 5
set_carrying_violetray(param_00,param_01,param_02)
{
self endon("disconnect");
param_00 thread violetray_trap_setcarried(self);
scripts\common\utility::allow_weapon(0);
self notifyonplayercommand("place_ims","+attack");
self notifyonplayercommand("place_ims","+attack_akimbo_accessible");
self notifyonplayercommand("cancel_ims","+actionslot 3");
if(!level.console)
{
self notifyonplayercommand("cancel_ims","+actionslot 5");
self notifyonplayercommand("cancel_ims","+actionslot 6");
self notifyonplayercommand("cancel_ims","+actionslot 7");
}
for(;;)
{
var_03 = scripts\common\utility::func_13734("place_ims","cancel_ims","force_cancel_placement","player_action_slot_restart");
if(!isdefined(var_03))
{
var_03 = "force_cancel_placement";
}
if(var_03 == "cancel_ims" || var_03 == "force_cancel_placement" || var_03 == "player_action_slot_restart")
{
if(!param_01 && var_03 == "cancel_ims")
{
continue;
}
param_00 violetray_trap_setcancelled(var_03 == "force_cancel_placement" && !isdefined(param_00.var_6DEC));
if(var_03 != "force_cancel_placement")
{
thread func_13932();
}
else if(param_01)
{
scripts\cp\_utility::func_DFE0(self);
}
return 0;
}
if(!param_00.var_3872)
{
continue;
}
if(param_01)
{
scripts\cp\_utility::func_DFE0(self);
}
param_00 thread violetray_trap_setplaced(param_02);
self notify("IMS_placed");
scripts\common\utility::func_5127(0.5,::scripts\common\utility::allow_weapon,1);
return 1;
}
}
//Function Number: 6
create_violetray_trap_for_player(param_00,param_01)
{
if(isdefined(param_01.var_9D81) && param_01.var_9D81)
{
return;
}
var_02 = spawnturret("misc_turret",param_01.origin + (0,0,25),"sentry_minigun_mp");
var_02.angles = param_01.angles;
var_02.violetray_trap_type = param_00;
var_02.var_222 = param_01;
var_02.name = "crafted_violetray";
var_02.carried_violetray_trap = spawn("script_model",var_02.origin);
var_02.carried_violetray_trap.angles = param_01.angles;
var_02 method_81F5();
var_02 method_835B(1);
var_02 method_830F("sentry_offline");
var_02 makeunusable();
var_02 method_8336(param_01);
return var_02;
}
//Function Number: 7
create_violetray_trap(param_00,param_01)
{
var_02 = param_00.var_222;
var_03 = param_00.violetray_trap_type;
var_04 = spawn("script_model",param_00.origin + (0,0,2));
var_04 setmodel(level.violetray_trap_settings[var_03].var_B91A);
var_04.var_EB9C = 3;
var_04.angles = (0,param_00.carried_violetray_trap.angles[1],0);
var_04.violetray_trap_type = var_03;
var_04.var_222 = var_02;
var_04 method_831F(var_02);
var_04.team = var_02.team;
var_04.name = "crafted_violetray";
var_04.var_10085 = 0;
var_04.hidden = 0;
var_04.var_252E = 1;
var_04.var_8BF0 = [];
var_04.var_451C = level.violetray_trap_settings[var_03];
var_04 thread violetray_trap_handleuse();
if(isdefined(param_01))
{
var_04 thread scripts\cp\_utility::func_A030(param_01);
}
else
{
var_04 thread scripts\cp\_utility::func_A030(undefined,level.violetray_trap_settings[self.violetray_trap_type].var_AC71);
}
return var_04;
}
//Function Number: 8
func_936D(param_00)
{
self.var_933C = 1;
self notify("death");
}
//Function Number: 9
func_9367(param_00)
{
self endon("carried");
self waittill("death");
if(!isdefined(self))
{
return;
}
violetray_trap_setinactive();
if(isdefined(self.var_9B05))
{
self.var_9B05 scripts\cp\_utility::func_E2CC();
self notify("deleting");
wait(1);
}
func_66A7();
self delete();
}
//Function Number: 10
func_66A7()
{
self playsound("town_xray_explode_away");
self playsound("town_xray_deactivate");
playfx(level._effect["violet_light_explode"],self.origin);
}
//Function Number: 11
violetray_trap_handleuse()
{
self endon("death");
level endon("game_ended");
for(;;)
{
self waittill("trigger",var_00);
if(!var_00 scripts\cp\_utility::is_valid_player())
{
continue;
}
if(scripts\common\utility::istrue(var_00.var_9D81))
{
continue;
}
if(scripts\common\utility::istrue(var_00.kung_fu_mode))
{
continue;
}
var_01 = create_violetray_trap_for_player(self.violetray_trap_type,var_00);
if(!isdefined(var_01))
{
continue;
}
violetray_trap_setinactive();
if(isdefined(self getlinkedparent()))
{
self unlink();
}
var_00 thread set_carrying_violetray(var_01,0,self.var_AC71);
self delete();
break;
}
}
//Function Number: 12
violetray_trap_setplaced(param_00)
{
self endon("death");
level endon("game_ended");
if(isdefined(self.var_3A9D))
{
self.var_3A9D method_80F3();
}
self.var_3A9D = undefined;
if(isdefined(self.var_222))
{
self.var_222.var_9D81 = 0;
}
self.var_6DEC = undefined;
var_01 = create_violetray_trap(self,param_00);
var_01.var_9EE4 = 1;
var_01 thread func_9367(self.var_222);
self playsound("trap_boom_box_drop");
self playsound("town_xray_activate");
self notify("placed");
var_01 thread violetray_trap_setactive();
var_02 = spawnstruct();
if(isdefined(self.var_BD3B))
{
var_02.var_AD39 = self.var_BD3B;
}
var_02.var_6371 = "carried";
var_02.var_4E53 = ::func_936D;
var_01 thread scripts\cp\_movers::func_892F(var_02);
self.carried_violetray_trap delete();
self delete();
}
//Function Number: 13
violetray_trap_setcancelled(param_00)
{
if(isdefined(self.var_3A9D))
{
var_01 = self.var_3A9D;
var_01 method_80F3();
var_01.var_9D81 = undefined;
var_01.var_3AA0 = undefined;
var_01 scripts\common\utility::allow_weapon(1);
}
if(isdefined(param_00) && param_00)
{
func_66A7();
}
self.carried_violetray_trap delete();
self delete();
}
//Function Number: 14
violetray_trap_setcarried(param_00)
{
self method_8335(param_00);
self method_82C7(0);
self setcandamage(0);
self.var_3A9D = param_00;
param_00.var_9D81 = 1;
param_00 thread scripts\cp\_utility::func_12E3F(self,self.carried_violetray_trap,level.violetray_trap_settings["crafted_violetray"]);
thread scripts\cp\_utility::func_A025(param_00);
thread func_936F(param_00);
thread func_9371(param_00);
if(isdefined(level.var_5CF2))
{
self thread [[ level.var_5CF2 ]](param_00);
}
self notify("carried");
}
//Function Number: 15
func_936F(param_00)
{
self endon("placed");
self endon("death");
param_00 endon("last_stand");
param_00 waittill("disconnect");
violetray_trap_setcancelled();
}
//Function Number: 16
func_9371(param_00)
{
self endon("placed");
self endon("death");
param_00 endon("last_stand");
level waittill("game_ended");
violetray_trap_setcancelled();
}
//Function Number: 17
violetray_trap_setactive()
{
self endon("death");
self setcursorhint("HINT_NOICON");
self sethintstring(level.violetray_trap_settings[self.violetray_trap_type].var_17B);
scripts\cp\_utility::func_1861();
var_00 = self.var_222;
var_00 method_80F3();
scripts\cp\_utility::func_F838(var_00);
self method_84A5(120);
self method_84A2(96);
self setscriptablepartstate("violetray","on");
thread violetray_trap_attack_zombies();
thread scripts\cp\_utility::func_A021("violetray_disconnect");
}
//Function Number: 18
violetray_trap_setinactive()
{
self makeunusable();
self stoploopsound();
self setscriptablepartstate("violetray","off");
if(isdefined(self.var_2536))
{
self.var_2536 delete();
}
if(isdefined(self.var_69F6))
{
self.var_69F6 delete();
self.var_69F6 = undefined;
}
scripts\cp\_utility::func_E11E();
}
//Function Number: 19
violetray_trap_attack_zombies()
{
self endon("death");
for(;;)
{
var_00 = scripts\cp\_agent_utils::func_7DB0("axis");
foreach(var_02 in var_00)
{
if(!scripts\cp\_utility::func_FF18(var_02,0,1))
{
continue;
}
if(var_02.agent_type == "crab_mini" || var_02.agent_type == "crab_brute")
{
continue;
}
if(!bullettracepassed(self.origin + (0,0,40),var_02.origin + (0,0,40),0,self))
{
continue;
}
if(isdefined(var_02.desired_death_angles))
{
continue;
}
if(distancesquared(self.origin,var_02.origin) > 75625)
{
continue;
}
else if(scripts\common\utility::func_13D90(self.origin + (0,0,40),self.angles,var_02.origin + (0,0,40),level.var_46A1["15"]))
{
var_03 = self.origin - var_02.origin;
var_04 = vectortoangles(var_03);
var_02.desired_death_angles = (0,var_04[1],0);
if(isdefined(self.var_222))
{
var_02.var_CF80 = self.var_222;
}
else
{
var_02.var_CF80 = undefined;
}
var_02 lib_0A1A::func_237C("violetraydeath");
thread scripts\common\utility::play_sound_in_space("town_xray_burn_zombie",var_02.origin);
wait(0.05);
if(isdefined(self.var_222))
{
self.var_222 scripts\cp\_merits::func_D9AD("mt_dlc3_crafted_kills");
}
}
}
wait(0.05);
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,15 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\gametypes\none.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 100 ms
* Timestamp: 10/27/2023 12:03:29 AM
*******************************************************************/
//Function Number: 1
main()
{
scripts\cp\_globallogic::init();
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,331 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\maps\cp_disco\cp_disco_challenges.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 11
* Decompile Time: 573 ms
* Timestamp: 10/27/2023 12:03:47 AM
*******************************************************************/
//Function Number: 1
register_default_challenges()
{
scripts\common\utility::flag_init("pause_challenges");
scripts\cp\zombies\solo_challenges::func_DEA1("tiger_1_challenge",undefined,0,::challenge_success,undefined,::activate_challenge,::func_0104,undefined,::update_disco_challenge);
scripts\cp\zombies\solo_challenges::func_DEA1("crane_1_challenge",undefined,0,::challenge_success,undefined,::activate_challenge,::func_0104,undefined,::update_disco_challenge);
scripts\cp\zombies\solo_challenges::func_DEA1("snake_1_challenge",undefined,0,::challenge_success,undefined,::activate_challenge,::func_0104,undefined,::update_disco_challenge);
scripts\cp\zombies\solo_challenges::func_DEA1("dragon_1_challenge",undefined,0,::challenge_success,undefined,::activate_challenge,::func_0104,undefined,::update_disco_challenge);
scripts\cp\zombies\solo_challenges::func_DEA1("tiger_2_challenge",undefined,0,::challenge_success,undefined,::activate_challenge,::func_0104,undefined,::update_disco_challenge);
scripts\cp\zombies\solo_challenges::func_DEA1("crane_2_challenge",undefined,0,::challenge_success,undefined,::activate_challenge,::func_0104,undefined,::update_disco_challenge);
scripts\cp\zombies\solo_challenges::func_DEA1("snake_2_challenge",undefined,0,::challenge_success,undefined,::activate_challenge,::func_0104,undefined,::update_disco_challenge);
scripts\cp\zombies\solo_challenges::func_DEA1("dragon_2_challenge",undefined,0,::challenge_success,undefined,::activate_challenge,::func_0104,undefined,::update_disco_challenge);
scripts\cp\zombies\solo_challenges::func_DEA1("tiger_3_challenge",undefined,0,::challenge_success,undefined,::activate_challenge,::func_0104,undefined,::update_disco_challenge);
scripts\cp\zombies\solo_challenges::func_DEA1("crane_3_challenge",undefined,0,::challenge_success,undefined,::activate_challenge,::func_0104,undefined,::update_disco_challenge);
scripts\cp\zombies\solo_challenges::func_DEA1("snake_3_challenge",undefined,0,::challenge_success,undefined,::activate_challenge,::func_0104,undefined,::update_disco_challenge);
scripts\cp\zombies\solo_challenges::func_DEA1("dragon_3_challenge",undefined,0,::challenge_success,undefined,::activate_challenge,::func_0104,undefined,::update_disco_challenge);
scripts\cp\zombies\solo_challenges::func_DEA1("challenge_failed",undefined,0,undefined,undefined,::scripts\cp\zombies\solo_challenges::func_5010,::scripts\cp\zombies\solo_challenges::func_5010,undefined,undefined);
scripts\cp\zombies\solo_challenges::func_DEA1("challenge_success",undefined,0,undefined,undefined,::scripts\cp\zombies\solo_challenges::func_5010,::scripts\cp\zombies\solo_challenges::func_5010,undefined,undefined);
}
//Function Number: 2
activate_challenge(param_00)
{
param_00 scripts\cp\zombies\solo_challenges::func_5010();
param_00.var_4B4A.var_4BA0 = param_00.kung_fu_progression.challenge_progress[param_00.kung_fu_progression.active_discipline];
param_00 scripts\cp\zombies\solo_challenges::func_12D9E(param_00.var_4B4A.var_4BA0,param_00.var_4B4A.var_155);
}
//Function Number: 3
update_disco_challenge(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
{
if(scripts\common\utility::flag("pause_challenges"))
{
return;
}
self.var_4B4A.var_4BA0 = self.var_4B4A.var_4BA0 + param_00;
if(self.var_4B4A.var_4BA0 >= self.var_4B4A.var_155)
{
self.var_4B4A.var_111AE = 1;
}
scripts\cp\zombies\solo_challenges::func_12D9E(self.var_4B4A.var_4BA0,self.var_4B4A.var_155);
if(self.var_4B4A.var_111AE)
{
self notify("current_challenge_ended");
scripts\cp\zombies\solo_challenges::func_4DAE(self);
self.current_player_challenge = undefined;
return;
}
if(scripts\common\utility::istrue(param_01))
{
self notify("current_challenge_ended");
self.var_4B4A.var_111AE = 0;
scripts\cp\zombies\solo_challenges::func_4DAE(self);
self.current_player_challenge = undefined;
}
}
//Function Number: 4
chi_challenge_activate(param_00)
{
param_00 endon("disconnect");
wait(0.1);
var_01 = param_00.kung_fu_progression.active_discipline;
var_02 = param_00.kung_fu_progression.disciplines_levels[param_00.kung_fu_progression.active_discipline];
if(isdefined(param_00.current_player_challenge))
{
if(issubstr(param_00.current_player_challenge,var_01))
{
return;
}
}
if(var_02 < 3)
{
param_00 thread chi_challenge_start(var_01 + "_" + var_02 + 1 + "_challenge");
}
}
//Function Number: 5
chi_challenge_start(param_00)
{
scripts\cp\zombies\solo_challenges::func_15D7(param_00,self);
}
//Function Number: 6
challenge_success(param_00)
{
scripts\cp\maps\cp_disco\kung_fu_mode::update_player_abilities(param_00,param_00.kung_fu_progression.active_discipline);
var_01 = 0;
param_00 thread scripts\cp\_vo::try_to_play_vo("challenge_success_chi","zmb_comment_vo","low",10,0,0,1,100);
var_02 = param_00.kung_fu_progression.disciplines_levels[param_00.kung_fu_progression.active_discipline];
switch(param_00.kung_fu_progression.active_discipline)
{
case "snake":
if(var_02 == 1)
{
var_01 = 1;
param_00 thread scripts\cp\_vo::try_to_play_vo("pam_rank_snake_1","pam_dialogue_vo");
}
else if(var_02 == 2)
{
var_01 = 2;
param_00 thread scripts\cp\_vo::try_to_play_vo("pam_rank_snake_2","pam_dialogue_vo");
}
else if(var_02 == 3)
{
var_01 = 3;
param_00.chi_master_snake = 1;
param_00 thread scripts\cp\_vo::try_to_play_vo("pam_rank_snake_3","pam_dialogue_vo");
param_00 scripts\cp\_merits::func_D9AD("mt_dlc2_chi_master");
}
break;
case "dragon":
if(var_02 == 1)
{
var_01 = 10;
param_00 thread scripts\cp\_vo::try_to_play_vo("pam_rank_dragon_1","pam_dialogue_vo");
}
else if(var_02 == 2)
{
var_01 = 11;
param_00 thread scripts\cp\_vo::try_to_play_vo("pam_rank_dragon_2","pam_dialogue_vo");
}
else if(var_02 == 3)
{
var_01 = 12;
param_00 thread scripts\cp\_vo::try_to_play_vo("pam_rank_dragon_3","pam_dialogue_vo");
param_00.chi_master_dragon = 1;
param_00 scripts\cp\_merits::func_D9AD("mt_dlc2_chi_master");
}
break;
case "crane":
if(var_02 == 1)
{
var_01 = 7;
param_00 thread scripts\cp\_vo::try_to_play_vo("pam_rank_crane_1","pam_dialogue_vo");
}
else if(var_02 == 2)
{
var_01 = 8;
param_00 thread scripts\cp\_vo::try_to_play_vo("pam_rank_crane_2","pam_dialogue_vo");
}
else if(var_02 == 3)
{
var_01 = 9;
param_00 thread scripts\cp\_vo::try_to_play_vo("pam_rank_crane_3","pam_dialogue_vo");
param_00.chi_master_crane = 1;
param_00 scripts\cp\_merits::func_D9AD("mt_dlc2_chi_master");
}
break;
case "tiger":
if(var_02 == 1)
{
var_01 = 4;
param_00 thread scripts\cp\_vo::try_to_play_vo("pam_rank_tiger_1","pam_dialogue_vo");
}
else if(var_02 == 2)
{
var_01 = 5;
param_00 thread scripts\cp\_vo::try_to_play_vo("pam_rank_tiger_2","pam_dialogue_vo");
}
else if(var_02 == 3)
{
var_01 = 6;
param_00 thread scripts\cp\_vo::try_to_play_vo("pam_rank_tiger_3","pam_dialogue_vo");
param_00.chi_master_tiger = 1;
param_00 scripts\cp\_merits::func_D9AD("mt_dlc2_chi_master");
}
break;
}
param_00 setclientomnvarbit("zm_challenges_completed",var_01,1);
if(scripts\common\utility::istrue(param_00.chi_master_tiger) && scripts\common\utility::istrue(param_00.chi_master_dragon) && scripts\common\utility::istrue(param_00.chi_master_snake) && scripts\common\utility::istrue(param_00.chi_master_crane))
{
param_00 lib_0D2A::func_12D7C("SHAOLIN_SKILLS",1);
param_00 thread scripts\cp\_vo::try_to_play_vo("pam_rank_all_max","pam_dialogue_vo");
}
param_00.kung_fu_progression.challenge_progress[param_00.kung_fu_progression.active_discipline] = 0;
if(isdefined(self.var_111AE))
{
return self.var_111AE;
}
return self.var_5021;
}
//Function Number: 7
func_0104(param_00)
{
}
//Function Number: 8
challenge_scalar_func(param_00)
{
var_01 = func_7C28(param_00);
return var_01;
}
//Function Number: 9
func_7C28(param_00)
{
var_01 = level.var_13F16;
var_02 = 0;
var_03 = 1;
var_04 = 99;
var_05 = 1;
var_06 = 9;
for(var_07 = var_03;var_07 <= var_04;var_07++)
{
var_08 = tablelookup(var_01,var_02,var_07,var_05);
if(var_08 == "")
{
return undefined;
}
if(var_08 != param_00)
{
continue;
}
var_09 = tablelookup(var_01,var_02,var_07,var_06);
if(isdefined(var_09))
{
var_09 = strtok(var_09," ");
if(var_09.size > 0)
{
return int(var_09[0]);
}
}
}
}
//Function Number: 10
default_playerdamage_challenge_func(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
{
if(!isdefined(level.var_4B4A))
{
return 0;
}
if(scripts\common\utility::flag("pause_challenges"))
{
return 0;
}
return 1;
}
//Function Number: 11
default_death_challenge_func(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
{
var_09 = param_01;
if(isdefined(param_01.playerowner) && param_01.playerowner scripts\cp\_utility::is_valid_player(1))
{
var_09 = param_01.playerowner;
}
if(!isdefined(var_09.current_player_challenge) || !isdefined(var_09.kung_fu_progression.active_discipline))
{
return 0;
}
if(!isdefined(param_04))
{
return 0;
}
var_0A = var_09.kung_fu_progression.active_discipline;
var_0B = var_09.kung_fu_progression.disciplines_levels[var_09.kung_fu_progression.active_discipline];
switch(var_0B)
{
case 0:
if(!issubstr(param_04,"fists_zm_"))
{
return 0;
}
break;
case 1:
if(param_04 != "iw7_shuriken_" + var_0A + "_proj" && param_04 != "iw7_shuriken_zm_" + var_0A)
{
return 0;
}
break;
case 2:
if(param_04 == "none" && !isplayer(param_01))
{
break;
}
if(var_0A == "tiger" && param_03 == "MOD_EXPLOSIVE" && param_04 == "none")
{
break;
}
if(!issubstr(param_04,"fists_zm_") || param_03 != "MOD_UNKNOWN")
{
return 0;
}
break;
case 3:
if(param_04 != "power_repulsor")
{
return 0;
}
break;
}
var_09.kung_fu_progression.challenge_progress[var_09.kung_fu_progression.active_discipline]++;
var_09 thread scripts\cp\zombies\solo_challenges::func_12D9C(var_0A + "_" + var_0B + 1 + "_challenge",1);
return 0;
}

View File

@ -0,0 +1,390 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\maps\cp_disco\cp_disco_crafting.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 14
* Decompile Time: 777 ms
* Timestamp: 10/27/2023 12:03:48 AM
*******************************************************************/
//Function Number: 1
init_crafting()
{
level.var_CC0C = [];
level.crafting_icon_create_func = ::func_4939;
func_9596("craft_lavalamp",(1,1,1));
func_9596("craft_boombox",(1,0,0));
func_9596("craft_turret",(0,1,0));
func_9596("craft_robot",(0,0,1));
func_9596("craft_zombgone",(1,1,0));
var_00 = scripts\common\utility::getstructarray("puzzle","script_noteworthy");
foreach(var_02 in var_00)
{
var_02.var_4C72 = 96;
var_02.disable_guided_interactions = 1;
}
}
//Function Number: 2
is_valid_tile_spot()
{
var_00 = [(-1803,2629,937),(-1138,3784,782),(-2407.5,3456,494.5),(-1928.5,3815.5,750.5),(-1911,4188.5,742)];
foreach(var_02 in var_00)
{
if(self.origin == var_02)
{
return 0;
}
}
return 1;
}
//Function Number: 3
func_9596(param_00,param_01)
{
var_02 = scripts\common\utility::getstruct(param_00,"script_noteworthy");
var_02.var_1157E = getentarray(var_02.target,"targetname");
foreach(var_04 in var_02.var_1157E)
{
if(issubstr(var_04.model,"tile"))
{
var_04.ispuzzlepiece = 1;
var_04.table_pos = var_04.origin;
var_05 = get_puzzle_piece_location(param_00);
var_04.origin = var_05.origin;
var_05.var_195 = var_04;
if(isdefined(var_05.angles))
{
var_04.angles = var_05.angles;
}
continue;
}
var_02.crafted_item = var_04;
}
var_07 = scripts\common\utility::getstructarray("puzzle","script_noteworthy");
foreach(var_09 in var_07)
{
if(var_09.name == param_00 && !scripts\common\utility::istrue(var_09.var_1305B))
{
scripts\cp\_interaction::remove_from_current_interaction_list(var_09);
}
}
var_02.remaining_pieces = 3;
var_02.puzzle_complete = 0;
level.interactions[param_00].disable_guided_interactions = 1;
}
//Function Number: 4
func_12FBE(param_00,param_01)
{
if(scripts\common\utility::istrue(param_01.kung_fu_mode))
{
param_01 playlocalsound("perk_machine_deny");
return;
}
if(!scripts\common\utility::func_2286(level.current_interaction_structs,param_00))
{
return;
}
if(param_00.remaining_pieces > 0)
{
if(!isdefined(param_01.puzzle_piece))
{
param_01 thread scripts\cp\_vo::try_to_play_vo("missing_item_misc","disco_comment_vo");
return;
}
if(param_01.puzzle_piece != param_00.script_noteworthy)
{
param_01 playlocalsound("perk_machine_deny");
return;
}
param_01 playlocalsound("zmb_coin_sounvenir_place");
param_01 thread scripts\cp\_vo::try_to_play_vo("place_puzzle","disco_comment_vo");
show_next_piece(param_00);
param_01 setclientomnvar("zombie_souvenir_piece_index",0);
param_01.puzzle_piece = undefined;
param_01.var_A8D3 = undefined;
param_00.remaining_pieces--;
param_01 scripts\cp\_merits::func_D9AD("mt_used_crafting");
if(param_00.remaining_pieces > 0)
{
param_01 scripts\cp\_utility::play_interaction_gesture("iw7_souvenircoin_zm");
return;
}
scripts\cp\_interaction::remove_from_current_interaction_list(param_00);
playfx(level._effect["crafting_souvenir"],param_00.crafted_item.origin);
wait(2);
param_00.crafted_item show();
param_00.scriptable_part_name = param_00.script_noteworthy;
param_00.crafted_item setscriptablepartstate("active",param_00.scriptable_part_name);
param_00.puzzle_complete = 1;
param_00.crafted_item playsound("zmb_coin_appear");
if(param_01 scripts\cp\_utility::is_valid_player())
{
param_01 thread scripts\cp\_vo::try_to_play_vo("puzzle_craft_success","zmb_comment_vo","low",10,0,0,0,50);
}
scripts\cp\_vo::func_E01F("nag_puzzle");
switch(param_00.script_noteworthy)
{
case "craft_zombgone":
param_00.script_noteworthy = "purchase_zombgone";
break;
case "craft_turret":
param_00.script_noteworthy = "purchase_turret";
break;
case "craft_boombox":
param_00.script_noteworthy = "purchase_boombox";
break;
case "craft_lavalamp":
param_00.script_noteworthy = "purchase_lavalamp";
break;
case "craft_robot":
param_00.script_noteworthy = "purchase_robot";
break;
}
scripts\cp\_interaction::add_to_current_interaction_list(param_00);
level.interactions[param_00.script_noteworthy].disable_guided_interactions = 0;
return;
}
param_01 scripts\cp\_utility::play_interaction_gesture();
param_01.craftables = scripts\common\utility::func_22A9(param_01.craftables,param_00.script_noteworthy);
param_01 playlocalsound("part_pickup");
switch(param_00.script_noteworthy)
{
case "purchase_zombgone":
var_02 = ["collect_craft_misc","collect_craft_zombgone"];
param_01 thread scripts\cp\_vo::try_to_play_vo(scripts\common\utility::random(var_02),"disco_comment_vo");
param_01 thread scripts\cp\powers\coop_powers::func_8397("power_holyWater","secondary",undefined,undefined,undefined,0,0);
param_00.crafted_item setscriptablepartstate("active","pickup_zbc");
param_01 notify("new_power","crafted_zombgone");
break;
case "purchase_turret":
param_01 thread scripts\cp\_vo::try_to_play_vo("collect_craft_misc","disco_comment_vo");
scripts\cp\_weapon_autosentry::func_82BA(param_00,param_01);
param_00.crafted_item setscriptablepartstate("active","pickup_turret");
break;
case "purchase_boombox":
param_01 thread scripts\cp\_vo::try_to_play_vo("collect_craft_misc","disco_comment_vo");
scripts\cp\zombies\craftables\_boombox::func_82B4(param_00,param_01);
param_00.crafted_item setscriptablepartstate("active","pickup_boombox");
break;
case "purchase_lavalamp":
var_02 = ["collect_craft_misc","collect_craft_lava"];
param_01 thread scripts\cp\_vo::try_to_play_vo(scripts\common\utility::random(var_02),"disco_comment_vo");
scripts\cp\crafted_trap_lavalamp::give_crafted_lavalamp_trap(param_00,param_01);
param_00.crafted_item setscriptablepartstate("active","pickup_lavalamp");
break;
case "purchase_robot":
param_01 thread scripts\cp\_vo::try_to_play_vo("collect_craft_misc","disco_comment_vo");
scripts\cp\crafted_trap_robot::give_crafted_robot_trap(param_00,param_01);
param_00.crafted_item setscriptablepartstate("active","pickup_robot");
break;
default:
break;
}
crafting_cooldown(param_00);
param_00.crafted_item setscriptablepartstate("active","default");
wait(1);
param_00.crafted_item setscriptablepartstate("active",param_00.scriptable_part_name);
}
//Function Number: 5
crafting_cooldown(param_00,param_01)
{
param_00.var_4622 = 1;
level scripts\common\utility::func_13734("regular_wave_starting","event_wave_starting");
wait(1);
level scripts\common\utility::func_13734("regular_wave_starting","event_wave_starting");
param_00.var_4622 = undefined;
var_02 = 5184;
foreach(var_04 in level.players)
{
if(distancesquared(var_04.origin,param_00.origin) >= var_02)
{
continue;
}
var_04 scripts\cp\_interaction::func_DE6E();
}
}
//Function Number: 6
show_next_piece(param_00)
{
foreach(var_02 in param_00.var_1157E)
{
if(scripts\common\utility::istrue(var_02.ispuzzlepiece) && scripts\common\utility::istrue(var_02.hidden))
{
var_02.origin = var_02.table_pos;
var_02 show();
var_02.hidden = undefined;
switch(param_00.script_noteworthy)
{
case "craft_zombgone":
playfx(level._effect["zbc_tile_pup"],var_02.origin + (0,0,5));
break;
case "craft_turret":
playfx(level._effect["turret_tile_pup"],var_02.origin + (0,0,5));
break;
case "craft_boombox":
playfx(level._effect["boombox_tile_pup"],var_02.origin + (0,0,5));
break;
case "craft_lavalamp":
playfx(level._effect["lavalamp_tile_pup"],var_02.origin + (0,0,5));
break;
case "craft_robot":
playfx(level._effect["robot_tile_pup"],var_02.origin + (0,0,5));
break;
}
return;
}
}
}
//Function Number: 7
func_4939()
{
self setclientomnvar("zombie_souvenir_piece_index",1);
}
//Function Number: 8
func_47A5(param_00,param_01)
{
}
//Function Number: 9
func_113C5(param_00,param_01,param_02)
{
return tablelookup(param_00,0,param_01,param_02);
}
//Function Number: 10
func_7A27(param_00)
{
return tablelookup("scripts/cp/maps/cp_zmb/cp_zmb_crafting.csv",1,param_00,0);
}
//Function Number: 11
get_puzzle_piece_location(param_00)
{
var_01 = scripts\common\utility::getstructarray("puzzle","script_noteworthy");
var_02 = [];
foreach(var_04 in var_01)
{
if(!var_04 is_valid_tile_spot())
{
continue;
}
if(var_04.name == param_00 && !scripts\common\utility::istrue(var_04.var_1305B))
{
var_02[var_02.size] = var_04;
}
}
var_02 = scripts\common\utility::array_randomize(var_02);
var_02[0].var_1305B = 1;
return var_02[0];
}
//Function Number: 12
repopulate_puzzle_piece()
{
self.puzzle_interaction.var_195 show();
self.puzzle_interaction.var_195.hidden = undefined;
scripts\cp\_interaction::add_to_current_interaction_list(self.puzzle_interaction);
self.puzzle_piece = undefined;
self.puzzle_interaction = undefined;
}
//Function Number: 13
pickup_puzzle(param_00,param_01)
{
if(isdefined(param_01.puzzle_piece) || scripts\common\utility::istrue(param_01.kung_fu_mode))
{
param_01 playlocalsound("perk_machine_deny");
return;
}
param_01 playlocalsound("zmb_coin_pickup");
param_01 thread scripts\cp\_vo::try_to_play_vo("collect_puzzle","disco_comment_vo");
param_01 scripts\cp\_vo::func_1769("nag_puzzle","disco_comment_vo",120,120,4,1);
param_01.puzzle_piece = param_00.name;
param_01.puzzle_interaction = param_00;
param_00.var_195 hide();
param_00.var_195.hidden = 1;
var_02 = 1;
switch(param_00.name)
{
case "craft_boombox":
var_02 = 1;
playfx(level._effect["boombox_tile_pup"],param_00.var_195.origin + (0,0,5));
break;
case "craft_zombgone":
var_02 = 2;
playfx(level._effect["zbc_tile_pup"],param_00.var_195.origin + (0,0,5));
break;
case "craft_turret":
var_02 = 3;
playfx(level._effect["turret_tile_pup"],param_00.var_195.origin + (0,0,5));
break;
case "craft_lavalamp":
var_02 = 4;
playfx(level._effect["lavalamp_tile_pup"],param_00.var_195.origin + (0,0,5));
break;
case "craft_robot":
var_02 = 5;
playfx(level._effect["robot_tile_pup"],param_00.var_195.origin + (0,0,5));
break;
}
scripts\cp\_interaction::remove_from_current_interaction_list(param_00);
param_01 setclientomnvar("zombie_souvenir_piece_index",var_02);
param_01 thread reset_puzzle_piece_on_disconnect();
}
//Function Number: 14
reset_puzzle_piece_on_disconnect()
{
self notify("reset_puzzle_piece_on_disconnect");
self endon("reset_puzzle_piece_on_disconnect");
self endon("death");
var_00 = self.puzzle_interaction;
self waittill("disconnect");
var_00.var_195 show();
var_00.var_195.hidden = undefined;
scripts\cp\_interaction::add_to_current_interaction_list(var_00);
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,420 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\maps\cp_disco\cp_disco_fast_travel.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 13
* Decompile Time: 767 ms
* Timestamp: 10/27/2023 12:03:50 AM
*******************************************************************/
//Function Number: 1
init_teleport_portals()
{
wait(5);
var_00 = scripts\common\utility::getstructarray("fast_travel_portal","targetname");
foreach(var_02 in var_00)
{
var_02 thread trigger_when_player_close_by();
wait(0.1);
}
}
//Function Number: 2
trigger_when_player_close_by()
{
var_00 = getentarray("chi_door_fast_travel_portal_trigger","targetname");
self.trigger = scripts\common\utility::getclosest(self.origin,var_00,500);
self.start_point_name = self.script_noteworthy;
self.end_point_name = self.var_EE79;
self.end_point = scripts\common\utility::getstruct(self.var_EE79,"script_noteworthy");
self.teleport_door = scripts\common\utility::getclosest(self.origin,getentarray("chi_door_fast_travel","targetname"));
var_01 = getentarray("chi_door_fast_travel_symbol","targetname");
if(isdefined(var_01))
{
self.teleport_door_symbol = scripts\common\utility::getclosest(self.origin,var_01);
}
self.var_DDC4 = [];
self.var_4613 = 0;
self.var_C626 = 0;
if(!isdefined(self.angles))
{
self.angles = (0,0,0);
}
self.teleport_spots = scripts\common\utility::getstructarray(self.end_point.target,"targetname");
script_add_teleport_spots();
foreach(var_03 in self.teleport_spots)
{
if(!isdefined(var_03.angles))
{
var_03.angles = (0,0,0);
}
}
self.teleport_door setcandamage(1);
self.teleport_door setcanradiusdamage(1);
self.teleport_door.health = 10000000;
for(;;)
{
self.teleport_door waittill("damage",var_05,var_06,var_07,var_08,var_09,var_0A,var_0B,var_0C,var_0D,var_0E);
if(is_shuriken(var_0E))
{
break;
}
if(isplayer(var_06) && scripts\common\utility::istrue(var_06.kung_fu_mode))
{
break;
}
wait(0.1);
}
self.var_C626 = 1;
self.teleport_door hide();
if(isdefined(self.teleport_door_symbol))
{
self.teleport_door_symbol hide();
}
var_0F = scripts\common\utility::getstructarray("chi_door_fast_travel_portal_spot","targetname");
self.portal_spot = scripts\common\utility::getclosest(self.origin,var_0F,500);
self.portal_scriptable = spawn("script_model",self.portal_spot.origin + (0,0,53));
self.portal_scriptable setmodel("tag_origin_chi_portal");
self.portal_scriptable.angles = self.angles;
playsoundatpos(self.portal_spot.origin,"cp_disco_doorbuy_wood_break");
self.portal_scriptable setscriptablepartstate("portal","door_break");
var_06 thread scripts\cp\_vo::try_to_play_vo("door_wooden_sucess","disco_comment_vo");
thread portal_cooldown_monitor();
wait(1);
for(;;)
{
self.trigger waittill("trigger",var_10);
if(scripts\common\utility::istrue(var_10.isrewinding))
{
scripts\common\utility::func_136F7();
var_10 thread scripts\cp\maps\cp_disco\cp_disco::update_special_mode_for_player(var_10);
continue;
}
if(scripts\common\utility::istrue(var_10.inlaststand))
{
scripts\common\utility::func_136F7();
continue;
}
if(!isplayer(var_10))
{
scripts\common\utility::func_136F7();
continue;
}
if(self.end_point.var_C626 && self.var_4613 <= 0)
{
if(isdefined(level.clock_interaction_q2))
{
if(scripts\common\utility::istrue(level.clock_interaction_q2.clock_active))
{
self.end_point.var_4613 = 0;
var_10.travelled_thru_portal = 1;
var_10.portal_start_origin = var_10.origin;
}
else
{
self.end_point.var_4613 = self.end_point.var_4613 + 30;
}
}
else if(isdefined(level.clock_interaction_q3))
{
if(scripts\common\utility::istrue(level.clock_interaction_q3.clock_active))
{
self.end_point.var_4613 = 0;
var_10.travelled_thru_portal = 1;
var_10.portal_start_origin = var_10.origin;
}
else
{
self.end_point.var_4613 = self.end_point.var_4613 + 30;
}
}
else
{
self.end_point.var_4613 = self.end_point.var_4613 + 30;
}
move_player_through_portal_tube(var_10);
}
wait(0.1);
}
}
//Function Number: 3
is_shuriken(param_00)
{
if(isdefined(param_00))
{
if(issubstr(param_00,"shuriken"))
{
return 1;
}
}
return 0;
}
//Function Number: 4
script_add_teleport_spots()
{
var_00 = [];
if(self.teleport_spots[0].origin == (-758,1902,800))
{
var_00 = [(-758,1928,800),(-730,1902,800),(-758,1878,800)];
}
else if(self.teleport_spots[0].origin == (-2332,3146,266))
{
var_00 = [(-2308,3146,266),(-2332,3122,266),(-2356,3146,266)];
}
else if(self.teleport_spots[0].origin == (-970,514,944))
{
var_00 = [(-1004,514,944),(-970,542,944),(-938,514,944)];
}
else if(self.teleport_spots[0].origin == (-2288,4728,784))
{
var_00 = [(-2314,4728,784),(-2288,4700,784),(-2264,4728,784)];
}
var_01 = self.teleport_spots[0].angles;
foreach(var_03 in var_00)
{
var_04 = spawnstruct();
var_04.origin = var_03;
var_04.angles = var_01;
var_04.var_336 = self.teleport_spots[0].var_336;
self.teleport_spots[self.teleport_spots.size] = var_04;
}
}
//Function Number: 5
turn_on_portal()
{
self.portal_scriptable setscriptablepartstate("portal","active");
}
//Function Number: 6
watch_for_rewind_quest()
{
self endon("disconnect");
for(;;)
{
if(!scripts\common\utility::istrue(self.isrewinding))
{
scripts\common\utility::func_136F7();
continue;
}
if(!isdefined(self.rewindmover))
{
if(isdefined(self.quest_num))
{
self.quest_num = int(self.quest_num);
scripts\cp\zombies\zombie_afterlife_arcade::func_1794();
thread scripts\cp\zombies\zombie_afterlife_arcade::func_E0AE(0.05);
thread scripts\cp\maps\cp_disco\cp_disco_interactions::play_fx_rewind(0.05);
var_00 = level.clock[self.quest_num - 1].origin;
var_01 = level.clock[self.quest_num - 1].angles;
var_02 = getclosestpointonnavmesh(var_00);
self setorigin(var_02,0);
self setvelocity((0,0,0));
self setstance("stand");
}
break;
}
scripts\common\utility::func_136F7();
}
}
//Function Number: 7
move_player_through_portal_tube(param_00)
{
param_00 endon("disconnect");
param_00 thread watch_for_rewind_quest();
param_00 scripts\cp\powers\coop_powers::func_D728();
param_00.disable_consumables = 1;
param_00.isfasttravelling = 1;
param_00 method_80F3();
param_00 notify("delete_equipment");
param_00 scripts\cp\zombies\zombie_afterlife_arcade::func_1794();
var_01 = scripts\cp\maps\cp_disco\cp_disco::func_BC83(param_00,"fast_travel_tube_start","fast_travel_tube_end",1);
self.var_4613 = self.var_4613 + 30;
teleport_to_portal_safe_spot(param_00);
param_00 thread scripts\cp\zombies\zombie_afterlife_arcade::func_E0AE(0.1);
wait(0.1);
var_01 delete();
if(scripts\common\utility::istrue(param_00.travelled_thru_portal))
{
if(isdefined(level.clock_interaction_q2))
{
if(!scripts\common\utility::istrue(level.clock_interaction_q2.clock_active))
{
param_00.travelled_thru_portal = undefined;
}
}
}
else if(scripts\common\utility::istrue(param_00.travelled_thru_portal))
{
if(isdefined(level.clock_interaction_q3))
{
if(!scripts\common\utility::istrue(level.clock_interaction_q3.clock_active))
{
param_00.travelled_thru_portal = undefined;
}
}
}
if(scripts\common\utility::istrue(param_00.var_13DB4))
{
param_00 lib_0D12::func_6978(1);
param_00.var_13DB4 = 0;
}
param_00 scripts\cp\_utility::func_E0E6("papRoom",0);
param_00.var_9C54 = undefined;
param_00.kicked_out = undefined;
param_00.isfasttravelling = undefined;
param_00 notify("fast_travel_complete");
param_00.disable_consumables = undefined;
param_00 scripts\cp\powers\coop_powers::func_D72E();
param_00 thread update_personal_ents_after_delay();
if(param_00.var_134FD == "p5_")
{
param_00 thread scripts\cp\_vo::try_to_play_vo("fasttravel_exit","disco_comment_vo");
}
}
//Function Number: 8
move_zombie_through_portal_tube(param_00)
{
param_00.isfasttravelling = 1;
var_01 = scripts\cp\maps\cp_disco\cp_disco::func_BC83(param_00,"fast_travel_tube_start","fast_travel_tube_end",1);
teleport_to_portal_safe_spot(param_00);
wait(0.1);
var_01 delete();
param_00.isfasttravelling = undefined;
}
//Function Number: 9
update_personal_ents_after_delay()
{
self endon("disconnect");
scripts\common\utility::func_136F7();
scripts\cp\_interaction::func_DE6E();
thread scripts\cp\maps\cp_disco\cp_disco::update_special_mode_for_player(self);
}
//Function Number: 10
unlinkplayerafterduration()
{
while(scripts\common\utility::istrue(self.isrewinding) || isdefined(self.rewindmover))
{
wait(0.1);
}
self unlink();
}
//Function Number: 11
teleport_to_portal_safe_spot(param_00)
{
var_01 = self.teleport_spots;
var_02 = undefined;
while(!isdefined(var_02))
{
foreach(var_04 in var_01)
{
if(!positionwouldtelefrag(var_04.origin))
{
var_02 = var_04;
}
}
if(!isdefined(var_02))
{
if(!isdefined(var_01[0].angles))
{
var_01[0].angles = (0,0,0);
}
var_06 = scripts\cp\_utility::func_13192(anglestoforward(var_01[0].angles),64);
var_02 = spawnstruct();
var_02.origin = var_01[0].origin + var_06;
var_02.angles = var_01[0].angles;
}
wait(0.1);
}
param_00 method_8447();
if(scripts\common\utility::istrue(param_00.isrewinding) || isdefined(self.rewindmover))
{
param_00 thread unlinkplayerafterduration();
}
else
{
param_00 unlink();
}
param_00 dontinterpolate();
param_00 setorigin(var_02.origin);
param_00 setplayerangles(var_02.angles);
param_00.disable_consumables = undefined;
param_00 scripts\cp\powers\coop_powers::func_D72E();
param_00.portal_end_origin = var_02.origin;
}
//Function Number: 12
delay_portal_trigger_on_player(param_00,param_01)
{
wait(param_01);
param_00.recently_used_portal = undefined;
wait(param_01 * 2);
self.var_DDC4 = scripts\common\utility::func_22A9(self.var_DDC4,param_00);
}
//Function Number: 13
portal_cooldown_monitor()
{
self.portal_scriptable setscriptablepartstate("portal","cooldown");
while(!self.end_point.var_C626)
{
wait(0.1);
}
var_00 = 0.1;
for(;;)
{
if(self.var_4613 > 0)
{
self.var_4613 = self.var_4613 - var_00;
if(self.portal_scriptable method_8551("portal") != "cooldown")
{
self.portal_scriptable setscriptablepartstate("portal","cooldown");
}
}
else
{
self.portal_scriptable setscriptablepartstate("portal",self.end_point_name);
}
if(self.var_4613 < 0)
{
self.var_4613 = 0;
}
wait(var_00);
}
}

View File

@ -0,0 +1,220 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\maps\cp_disco\cp_disco_fx.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 116 ms
* Timestamp: 10/27/2023 12:03:50 AM
*******************************************************************/
//Function Number: 1
main()
{
level._effect["vfx_elec_speakers"] = loadfx("vfx/iw7/levels/cp_disco/traps/vfx_elec_speakers.vfx");
level._effect["vfx_park_lensflares"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_park_lensflares.vfx");
level._effect["vfx_traffic_light_flash"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_traffic_light_flash.vfx");
level._effect["vfx_streetlight_cone"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_streetlight_cone.vfx");
level._effect["vfx_dojo_incense"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_dojo_incense.vfx");
level._effect["vfx_candle_flame_nl"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_candle_flame_nl.vfx");
level._effect["vfx_car_tail_light_nl"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_car_tail_light_nl.vfx");
level._effect["vfx_zmb_b_light_f"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_zmb_b_light_f.vfx");
level._effect["vfx_hydrant_broken"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_hydrant_broken.vfx");
level._effect["vfx_bus_tail_light"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_bus_tail_light.vfx");
level._effect["vfx_bus_lensflare"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_bus_lensflare.vfx");
level._effect["vfx_pipe_smoke"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_pipe_smoke.vfx");
level._effect["vfx_disco_police_lights2"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_disco_police_lights2.vfx");
level._effect["vfx_car_tail_light"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_car_tail_light.vfx");
level._effect["vfx_amb_motes_bright"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_amb_motes_bright.vfx");
level._effect["vfx_elec_fence"] = loadfx("vfx/iw7/levels/cp_disco/traps/vfx_elec_fence.vfx");
level._effect["vfx_disco_sewage_start"] = loadfx("vfx/iw7/levels/cp_disco/vfx_disco_sewage_start.vfx");
level._effect["vfx_signal_flare_red"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_signal_flare_red.vfx");
level._effect["vfx_hole_billow"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_hole_billow.vfx");
level._effect["vfx_win_fire_dist"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_win_fire_dist.vfx");
level._effect["vfx_cbgb_lf_01"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_cbgb_lf_01.vfx");
level._effect["vfx_candle_flame"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_candle_flame.vfx");
level._effect["vfx_board_fire"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_board_fire.vfx");
level._effect["vfx_pallet_fire"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_pallet_fire.vfx");
level._effect["vfx_disco_police_lights"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_disco_police_lights.vfx");
level._effect["vfx_stud69_lf_01"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_stud69_lf_01.vfx");
level._effect["vfx_amb_motes"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_amb_motes.vfx");
level._effect["vfx_oasis_gnat_swarm"] = loadfx("vfx/iw7/levels/mp_marsoasis/vfx_oasis_gnat_swarm.vfx");
level._effect["vfx_sewer_grate_steam"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_sewer_grate_steam.vfx");
level._effect["vfx_incandescent_lf_02"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_incandescent_lf_02.vfx");
level._effect["vfx_car_headlight"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_car_headlight.vfx");
level._effect["vfx_ftn_stream_01"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_ftn_stream_01.vfx");
level._effect["vfx_trash_drift_01"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_trash_drift_01.vfx");
level._effect["vfx_debris_swirl_01"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_debris_swirl_01.vfx");
level._effect["vfx_incandescent_lf"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_incandescent_lf.vfx");
level._effect["vfx_tunnel_lensflare"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_tunnel_lensflare.vfx");
level._effect["vfx_grate_steam_01"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_grate_steam_01.vfx");
level._effect["vfx_light_mist"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_light_mist.vfx");
level._effect["vfx_water_drips_line"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_water_drips_line.vfx");
level._effect["vfx_water_drips_circle"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_water_drips_circle.vfx");
level._effect["vfx_broken_pipe_steam"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_broken_pipe_steam.vfx");
level._effect["vfx_dust_fall_tunnel"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_dust_fall_tunnel.vfx");
level._effect["vfx_dust_fall_platform"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_dust_fall_platform.vfx");
level._effect["vfx_trash_flies"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_trash_flies.vfx");
level._effect["vfx_amb_moth_b"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_amb_moth_b.vfx");
level._effect["vfx_amb_moth_a"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_amb_moth_a.vfx");
level._effect["vfx_door_buy_sml"] = loadfx("vfx/iw7/levels/cp_disco/vfx_door_buy_sml.vfx");
level._effect["vfx_door_buy_lrg"] = loadfx("vfx/iw7/levels/cp_disco/vfx_door_buy_lrg.vfx");
level._effect["vfx_zmb_orange_blink"] = loadfx("vfx/iw7/levels/cp_disco/vfx_zmb_orange_blink.vfx");
level._effect["vfx_shock_barrier_water2"] = loadfx("vfx/iw7/levels/cp_disco/traps/vfx_shock_barrier_water2.vfx");
level._effect["vfx_shock_barrier_water"] = loadfx("vfx/iw7/levels/cp_disco/traps/vfx_shock_barrier_water.vfx");
level._effect["vfx_disco_shock_barrier"] = loadfx("vfx/iw7/levels/cp_disco/traps/vfx_disco_shock_barrier.vfx");
level._effect["vfx_sewer_trap_dust"] = loadfx("vfx/iw7/_requests/coop/vfx_sewer_trap_dust.vfx");
level._effect["vfx_ratking_generate"] = loadfx("vfx/iw7/levels/cp_disco/rat_king/vfx_ratking_generate.vfx");
level._effect["vfx_zb_spark_b"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_zb_spark_b.vfx");
level._effect["vfx_zb_spark_a"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_zb_spark_a.vfx");
level._effect["vfx_zb_carfire_b"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_zb_cf_b.vfx");
level._effect["vfx_zb_carfire_a"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_zb_cf_a.vfx");
level._effect["vfx_zb_carfire_c"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_zb_cf_c.vfx");
level._effect["vfx_smoke_dist"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_smoke_dist.vfx");
level._effect["vfx_rat_p2p"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_rat_p2p.vfx");
level._effect["vfx_zb_pack_grd_d"] = loadfx("vfx/iw7/core/zombie/pack_a_punch/vfx_zb_pack_grd_d.vfx");
level._effect["vfx_zb_pack_grd_e"] = loadfx("vfx/iw7/core/zombie/pack_a_punch/vfx_zb_pack_grd_e.vfx");
level._effect["vfx_zb_pack_grd_c"] = loadfx("vfx/iw7/core/zombie/pack_a_punch/vfx_zb_pack_grd_c.vfx");
level._effect["vfx_zb_pack_grd_b"] = loadfx("vfx/iw7/core/zombie/pack_a_punch/vfx_zb_pack_grd_b.vfx");
level._effect["vfx_zb_pack_grd_a"] = loadfx("vfx/iw7/core/zombie/pack_a_punch/vfx_zb_pack_grd_a.vfx");
level._effect["vfx_zb_sj_smk"] = loadfx("vfx/iw7/core/zombie/pack_a_punch/vfx_zb_sj_smk.vfx");
level._effect["vfx_zb_pack_glow_ground_b"] = loadfx("vfx/iw7/core/zombie/pack_a_punch/vfx_zb_pack_glow_ground_b.vfx");
level._effect["vfx_zb_pack_glow"] = loadfx("vfx/iw7/core/zombie/pack_a_punch/vfx_zb_pack_glow.vfx");
level._effect["vfx_zmb_candle_flame"] = loadfx("vfx/iw7/core/zombie/pack_a_punch/vfx_zmb_candle_flame.vfx");
level._effect["vfx_zb_pack_grd_small_a"] = loadfx("vfx/iw7/core/zombie/frontend/vfx_zb_a.vfx");
level._effect["vfx_zb_pack_grd_small_b"] = loadfx("vfx/iw7/core/zombie/frontend/vfx_zb_b.vfx");
level._effect["melee_impact"] = loadfx("vfx/iw7/core/zombie/vfx_zmb_gore_melee_imp.vfx");
level._effect["vfx_magicwheel_fire"] = loadfx("vfx/iw7/_requests/coop/vfx_magicwheel_fire.vfx");
level._effect["vfx_zmb_portal_centhub"] = loadfx("vfx/iw7/core/zombie/vfx_zmb_portal_centhub.vfx");
level._effect["cone_expl_fx"] = loadfx("vfx/iw7/core/muzflash/rvn/vfx_rvn_defib_legend_cone.vfx");
level._effect["pillage_box"] = loadfx("vfx/iw7/levels/cp_disco/collect/vfx_zmb_disco_pillage_box.vfx");
level._effect["exp_touch"] = loadfx("vfx/iw7/levels/cp_rave/vfx_explosive_touch.vfx");
level._effect["lava_torrent"] = loadfx("vfx/iw7/levels/cp_rave/vfx_lava_erupt_fnf.vfx");
level._effect["fire_chains"] = loadfx("vfx/iw7/core/zombie/cards/vfx_zmb_fcb.vfx");
level._effect["fire_chains_target"] = loadfx("vfx/iw7/core/zombie/cards/vfx_zmb_fcb_imp.vfx");
level._effect["rat_swarm"] = loadfx("vfx/iw7/levels/cp_jac/rat/vfx_rat_heat.vfx");
level._effect["rat_swarm_cheap"] = loadfx("vfx/iw7/levels/cp_disco/rat_king/vfx_rat_heat_body.vfx");
level._effect["zombie_freeze_shatter"] = loadfx("vfx/iw7/core/zombie/zombie_ice_chunks.vfx");
level._effect["twister"] = loadfx("vfx/iw7/core/zombie/vfx_fnf_twister.vfx");
level._effect["radar_ping"] = loadfx("vfx/iw7/_requests/mp/vfx_pulse_ping.vfx");
level._effect["life_link"] = loadfx("vfx/iw7/core/zombie/vfx_zmb_life_link_beam.vfx");
level._effect["life_link_target"] = loadfx("vfx/iw7/core/zombie/cards/vfx_zmb_life_link_beam_send.vfx");
level._effect["rat_eye_rats"] = loadfx("vfx/iw7/levels/cp_disco/rat_king/vfx_rk_zb_scan_player.vfx");
level._effect["rat_eye"] = loadfx("vfx/iw7/levels/cp_disco/rat_king/vfx_rk_zb_scan_player_b.vfx");
level._effect["nunchuck_pap1"] = loadfx("vfx/iw7/levels/cp_disco/vfx_nunch_pap1.vfx");
level._effect["nunchuck_pap2"] = loadfx("vfx/iw7/levels/cp_disco/vfx_nunch_pap2.vfx");
level._effect["katana_windforce"] = loadfx("vfx/iw7/core/zombie/weapon/katana/vfx_zmb_katana_pap2_atk_main.vfx");
level._effect["katana_pap1_earth"] = loadfx("vfx/iw7/core/zombie/weapon/katana/vfx_zmb_katana_pap1_atk_main.vfx");
level._effect["katana_pap1_tell"] = loadfx("vfx/iw7/core/zombie/katana_pap1/katanapap1_tell.vfx");
level._effect["katana_pap1_subside"] = loadfx("vfx/iw7/core/zombie/weapon/katana/vfx_zmb_katana_pap1_atk_exit.vfx");
level._effect["tiger_slam_ring"] = loadfx("vfx/iw7/_requests/mp/vfx_groundpound_aerial_ring.vfx");
level._effect["tiger_slam_dust"] = loadfx("vfx/iw7/core/mp/powers/thrust_blast/vfx_htdk.vfx");
level._effect["blue_ark_beam"] = loadfx("vfx/iw7/core/zombie/vfx_zmb_shock_beam_blue.vfx");
level._effect["buffer_smoke"] = loadfx("vfx/iw7/levels/cp_disco/traps/vfx_disco_floorbuffer_smoke.vfx");
level._effect["boombox_tile_pup"] = loadfx("vfx/iw7/levels/cp_disco/vfx_crft_bbox_pup.vfx");
level._effect["zbc_tile_pup"] = loadfx("vfx/iw7/levels/cp_disco/vfx_crft_zclean_pup.vfx");
level._effect["turret_tile_pup"] = loadfx("vfx/iw7/levels/cp_disco/vfx_crft_turret_pup.vfx");
level._effect["lavalamp_tile_pup"] = loadfx("vfx/iw7/levels/cp_disco/vfx_crft_lava_pup.vfx");
level._effect["robot_tile_pup"] = loadfx("vfx/iw7/levels/cp_disco/vfx_crft_robot_pup.vfx");
level._effect["crafting_souvenir"] = loadfx("vfx/iw7/_requests/coop/zmb_souvenir_craft.vfx");
level._effect["crafting_pickup"] = loadfx("vfx/iw7/core/zombie/vfx_zom_souvenir_pickup.vfx");
level._effect["robot_zap"] = loadfx("vfx/iw7/levels/cp_disco/traps/vfx_robot_laser.vfx");
level._effect["projector_light"] = loadfx("vfx/iw7/levels/cp_rave/vfx_pap_proj_light.vfx");
level._effect["vfx_pap_portal"] = loadfx("vfx/iw7/levels/cp_rave/vfx_rave_portal_02.vfx");
level._effect["vfx_pap_return_portal"] = loadfx("vfx/iw7/levels/cp_disco/vfx_paproom_portal.vfx");
level._effect["vfx_pap_portal_cooldown"] = loadfx("vfx/iw7/levels/cp_disco/vfx_paproom_portal_cooldown.vfx");
level._effect["fuse_sparks"] = loadfx("vfx/iw7/core/zombie/vfx_disco_fuse_sparks.vfx");
level._effect["fuse_charged"] = loadfx("vfx/iw7/core/zombie/vfx_disco_fuse_charged.vfx");
level._effect["shock_melee_impact"] = loadfx("vfx/iw7/core/zombie/vfx_zmb_elec_knife_impact.vfx");
level._effect["atomize_body"] = loadfx("vfx/iw7/_requests/mp/vfx_atomize_body.vfx");
level._effect["challenge_ring"] = loadfx("vfx/iw7/levels/cp_disco/vfx_pgq_melee_radius.vfx");
level._effect["test_glyph_mpq"] = loadfx("vfx/iw7/levels/cp_disco/Requests/vfx_symbol_hunt_glyph.vfx");
level._effect["disco_fever"] = loadfx("vfx/iw7/levels/cp_disco/Requests/vfx_disco_fever.vfx");
level._effect["locker_key"] = loadfx("vfx/iw7/levels/cp_disco/Requests/vfx_locker_key.vfx");
level._effect["turnstile_arm"] = loadfx("vfx/iw7/levels/cp_disco/Requests/vfx_turnstile_arm.vfx");
level._effect["rat_cage_poof"] = loadfx("vfx/iw7/levels/cp_disco/karate_master/vfx_km_spawn_in.vfx");
level._effect["trolltastic"] = loadfx("vfx/iw7/levels/cp_disco/Requests/vfx_trolltastic_photo.vfx");
level._effect["spotlight_flare"] = loadfx("vfx/iw7/levels/cp_disco/vfx_spotlight_flare.vfx");
level._effect["spotlight_x"] = loadfx("vfx/iw7/levels/cp_disco/vfx_spotlight_marker.vfx");
level._effect["electric_trap"] = loadfx("vfx/iw7/core/zombie/vfx_disco_trap_electric.vfx");
level._effect["electric_trap_attack"] = loadfx("vfx/iw7/core/zombie/vfx_disco_trap_beam.vfx");
level._effect["electric_trap_shock"] = loadfx("vfx/iw7/core/zombie/traps/electric_trap/vfx_zmb_hit_shock.vfx");
level._effect["electric_shock_plyr"] = loadfx("vfx/iw7/_requests/mp/vfx_arc_gren_scrn_dmg.vfx");
level._effect["templeton"] = loadfx("vfx/iw7/levels/cp_disco/rat_king/ratking_ch/vfx_zmb_rat_cage");
level._effect["cipher_alphabet_a"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_glyph_green_a");
level._effect["cipher_alphabet_b"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_glyph_green_b");
level._effect["cipher_alphabet_c"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_glyph_green_c");
level._effect["cipher_alphabet_d"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_glyph_green_d");
level._effect["cipher_alphabet_e"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_glyph_green_e");
level._effect["cipher_alphabet_f"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_glyph_green_f");
level._effect["cipher_alphabet_g"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_glyph_green_g");
level._effect["cipher_alphabet_h"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_glyph_green_h");
level._effect["cipher_alphabet_i"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_glyph_green_i");
level._effect["cipher_alphabet_j"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_glyph_green_j");
level._effect["cipher_alphabet_k"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_glyph_green_k");
level._effect["cipher_alphabet_l"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_glyph_green_l");
level._effect["cipher_alphabet_m"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_glyph_green_m");
level._effect["cipher_alphabet_n"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_glyph_green_n");
level._effect["cipher_alphabet_o"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_glyph_green_o");
level._effect["cipher_alphabet_p"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_glyph_green_p");
level._effect["cipher_alphabet_q"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_glyph_green_q");
level._effect["cipher_alphabet_r"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_glyph_green_r");
level._effect["cipher_alphabet_s"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_glyph_green_s");
level._effect["cipher_alphabet_t"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_glyph_green_t");
level._effect["cipher_alphabet_u"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_glyph_green_u");
level._effect["cipher_alphabet_v"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_glyph_green_v");
level._effect["cipher_alphabet_w"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_glyph_green_w");
level._effect["cipher_alphabet_x"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_glyph_green_x");
level._effect["cipher_alphabet_y"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_glyph_green_y");
level._effect["cipher_alphabet_z"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_glyph_green_z");
level._effect["magnet_alphabet_a"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_magnet_letter_a");
level._effect["magnet_alphabet_b"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_magnet_letter_b");
level._effect["magnet_alphabet_c"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_magnet_letter_c");
level._effect["magnet_alphabet_d"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_magnet_letter_d");
level._effect["magnet_alphabet_e"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_magnet_letter_e");
level._effect["magnet_alphabet_f"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_magnet_letter_f");
level._effect["magnet_alphabet_g"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_magnet_letter_g");
level._effect["magnet_alphabet_h"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_magnet_letter_h");
level._effect["magnet_alphabet_i"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_magnet_letter_i");
level._effect["magnet_alphabet_j"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_magnet_letter_j");
level._effect["magnet_alphabet_k"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_magnet_letter_k");
level._effect["magnet_alphabet_l"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_magnet_letter_l");
level._effect["magnet_alphabet_m"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_magnet_letter_m");
level._effect["magnet_alphabet_n"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_magnet_letter_n");
level._effect["magnet_alphabet_o"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_magnet_letter_o");
level._effect["magnet_alphabet_p"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_magnet_letter_p");
level._effect["magnet_alphabet_q"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_magnet_letter_q");
level._effect["magnet_alphabet_r"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_magnet_letter_r");
level._effect["magnet_alphabet_s"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_magnet_letter_s");
level._effect["magnet_alphabet_t"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_magnet_letter_t");
level._effect["magnet_alphabet_u"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_magnet_letter_u");
level._effect["magnet_alphabet_v"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_magnet_letter_v");
level._effect["magnet_alphabet_w"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_magnet_letter_w");
level._effect["magnet_alphabet_x"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_magnet_letter_x");
level._effect["magnet_alphabet_y"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_magnet_letter_y");
level._effect["magnet_alphabet_z"] = loadfx("vfx/iw7/levels/cp_disco/alphabet/vfx_quest_magnet_letter_z");
level._effect["powerup_additive_fx"] = loadfx("vfx/iw7/core/zombie/powerups/vfx_pwrup_additive.vfx");
level._effect["bloody_death"] = loadfx("vfx/iw7/core/zombie/cards/vfx_zmb_card_headshot_exp.vfx");
level._effect["extra_cash_kill"] = loadfx("vfx/iw7/core/zombie/vfx_zmb_money_cash_imp_exp.vfx");
level._effect["vfx_magicwheel_toy_pop"] = loadfx("vfx/iw7/core/zombie/magicwheel/vfx_magicwheel_toy_pop.vfx");
level._effect["relic_idle"] = loadfx("vfx/iw7/levels/cp_disco/rat_king/vfx_disco_relic_idle.vfx");
level._effect["relic_active"] = loadfx("vfx/iw7/levels/cp_disco/rat_king/vfx_disco_relic_active.vfx");
level._effect["relic_center"] = loadfx("vfx/iw7/levels/cp_disco/rat_king/vfx_disco_relic_center.vfx");
level._effect["rk_tele_spot"] = loadfx("vfx/iw7/levels/cp_disco/rat_king/vfx_ratking_tele_spot.vfx");
level._effect["rk_blocking"] = loadfx("vfx/iw7/levels/cp_disco/rat_king/vfx_rk_blocking.vfx");
level._effect["glyph_death"] = loadfx("vfx/iw7/levels/cp_disco/rat_king/vfx_disco_relic_des.vfx");
level._effect["dodge_ground_spark_fx"] = loadfx("vfx/core/mp/killstreaks/vfx_ims_sparks");
level._effect["dodge_fwd_screen"] = loadfx("vfx/iw7/levels/cp_town/dodge/vfx_zb_fwd.vfx");
level._effect["dodge_back_screen"] = loadfx("vfx/iw7/levels/cp_town/dodge/vfx_zb_back.vfx");
level._effect["dodge_left_screen"] = loadfx("vfx/iw7/levels/cp_town/dodge/vfx_zb_left.vfx");
level._effect["dodge_right_screen"] = loadfx("vfx/iw7/levels/cp_town/dodge/vfx_zb_right.vfx");
level._effect["dodge_fwd_left_screen"] = loadfx("vfx/iw7/levels/cp_town/dodge/vfx_zb_fwd_left.vfx");
level._effect["dodge_fwd_right_screen"] = loadfx("vfx/iw7/levels/cp_town/dodge/vfx_zb_fwd_right.vfx");
level._effect["dodge_back_left_screen"] = loadfx("vfx/iw7/levels/cp_town/dodge/vfx_zb_back_left.vfx");
level._effect["dodge_back_right_screen"] = loadfx("vfx/iw7/levels/cp_town/dodge/vfx_back_right.vfx");
level._effect["dodge_touch"] = loadfx("vfx/iw7/levels/cp_town/dodge/vfx_zb_dodge_touch.vfx");
level._effect["stimulus_shield"] = loadfx("vfx/iw7/levels/cp_town/fnf/vfx_stimulus_heal_scrn.vfx");
level._effect["stimulus_glow_burst"] = loadfx("vfx/iw7/levels/cp_town/fnf/vfx_stimulus_burst.vfx");
level._effect["ammo_crate_fx"] = loadfx("vfx/iw7/levels/cp_town/craft/vfx_cp_town_ammo_idle.vfx");
level._effect["ammo_crate_ping"] = loadfx("vfx/iw7/levels/cp_town/vfx_cp_town_ammo_flash.vfx");
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,56 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\maps\cp_disco\cp_disco_player_character_setup.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 2
* Decompile Time: 151 ms
* Timestamp: 10/27/2023 12:04:06 AM
*******************************************************************/
//Function Number: 1
init_player_characters()
{
lib_0D5B::register_player_character(1,"yes","zmb_body_hero_disco_chick","viewmodel_zmb_hero_disco_chick","zmb_head_hero_disco_chick",undefined,"p1_","_p1","iw7_pap_zm_jock","ges_zombies_revive_hoff",0,"iw7_valleygirlcard_zm","mus_zombies_valley_girl","iw7_loadout_zm_disco_chick","iw7_knife_zm_disco",undefined);
lib_0D5B::register_player_character(2,"yes","body_zmb_hero_punk","viewmodel_zmb_hero_punk","head_zmb_hero_punk",undefined,"p2_","_p2","iw7_pap_zm_jock","ges_zombies_revive_hoff",1,"iw7_nerdcard_zm","mus_zombies_nerd","iw7_loadout_zm_punk","iw7_knife_zm_disco",undefined);
lib_0D5B::register_player_character(3,"yes","body_zmb_hero_political_activist","zmb_hero_political_activist_viewmodel_arms","head_zmb_hero_political_activist",undefined,"p3_","_p3","iw7_pap_zm_jock","ges_zombies_revive_hoff",2,"iw7_rappercard_zm","mus_zombies_rapper","iw7_loadout_zm_panther","iw7_knife_zm_disco",undefined);
lib_0D5B::register_player_character(4,"yes","body_zmb_hero_sleaze_bag","cp_disco_male_hero_pusher_viewmodel_arms","head_zmb_hero_sleaze_bag",undefined,"p4_","_p4","iw7_pap_zm_jock","ges_zombies_revive_hoff",3,"iw7_jockcard_zm","mus_zombies_jock","iw7_loadout_zm_pusher","iw7_knife_zm_disco",undefined);
var_00 = "iw7_loadout_zm_pam";
var_01 = randomintrange(1,5);
switch(var_01)
{
case 1:
var_00 = "iw7_loadout_zm_pam_crane";
break;
case 2:
var_00 = "iw7_loadout_zm_pam_snake";
break;
case 3:
var_00 = "iw7_loadout_zm_pam_tiger";
break;
case 4:
var_00 = "iw7_loadout_zm_pam_dragon";
break;
default:
var_00 = "iw7_loadout_zm_pam";
break;
}
lib_0D5B::register_player_character(5,"no","cp_disco_female_boss_pam_grier_hero","cp_disco_female_boss_pam_grier_viewmodel_arms",undefined,undefined,"p5_","_p5","iw7_pap_zm_jock","ges_zombies_revive_hoff",4,"iw7_hoffcard_zm","mus_zombies_pam_grier",var_00,"iw7_knife_zm_disco",::post_pam_setup_func);
}
//Function Number: 2
post_pam_setup_func(param_00)
{
if(!isdefined(level.special_character_count))
{
level.special_character_count = 1;
return;
}
level.special_character_count++;
}

View File

@ -0,0 +1,14 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\maps\cp_disco\cp_disco_precache.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 91 ms
* Timestamp: 10/27/2023 12:04:06 AM
*******************************************************************/
//Function Number: 1
main()
{
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,637 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\maps\cp_disco\cp_disco_traps.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 25
* Decompile Time: 1399 ms
* Timestamp: 10/27/2023 12:04:10 AM
*******************************************************************/
//Function Number: 1
init_buffer_trap()
{
scripts\common\utility::array_thread(scripts\common\utility::getstructarray("trap_buffer","script_noteworthy"),::power_on_buffer);
}
//Function Number: 2
power_on_buffer()
{
var_00 = getent(self.target,"targetname");
var_00 method_8318(1);
if(scripts\common\utility::istrue(self.var_E1B9))
{
var_01 = undefined;
if(isdefined(self.script_area))
{
var_01 = self.script_area;
}
else
{
var_01 = scripts\cp\_interaction::func_7829(self);
}
if(isdefined(var_01))
{
level scripts\common\utility::waittill_any_3("power_on",var_01 + " power_on");
}
}
self.var_D776 = 1;
}
//Function Number: 3
use_buffer_trap(param_00,param_01)
{
scripts\cp\_interaction::remove_from_current_interaction_list(param_00);
param_01 thread scripts\cp\_vo::try_to_play_vo("activate_trap_generic","zmb_comment_vo","low",10,0,1,0,40);
var_02 = getent(param_00.target,"targetname");
if(!isdefined(var_02.var_127C9))
{
var_03 = [];
foreach(var_05 in scripts\common\utility::getstructarray(param_00.target,"targetname"))
{
var_03[var_03.size] = spawn("trigger_radius",var_05.origin,0,var_05.var_257,var_05.height);
}
foreach(var_08 in var_03)
{
var_08 enablelinkto();
var_08 linkto(var_02);
}
var_02.var_127C9 = var_03;
}
playfxontag(level._effect["buffer_smoke"],var_02,"tag_origin");
param_01 playlocalsound("purchase_generic");
var_02 buffer_trap_sfx();
param_00.var_126A4 = 0;
if(!isdefined(param_00.offset_vector))
{
param_00.offset_forward = distance2d(var_02.origin,param_00.origin) * -1;
}
param_00.offset_up = distance2d(var_02.origin,param_00.origin);
var_0A = var_02.origin;
var_0B = 0;
while(var_0B < 2)
{
var_02 moveto(var_02.origin + (0,0,5),0.1);
foreach(param_01 in level.players)
{
var_0D = param_01.origin[2] - var_02.origin[2];
if(distance(var_02.origin,param_01.origin) < 72 && param_01.origin[2] > var_02.origin[2] && var_0D < 72)
{
param_01 setvelocity((randomintrange(220,250),randomintrange(220,250),0));
}
}
wait(0.1);
var_02 moveto(var_0A,0.1);
wait(0.2);
var_0B = var_0B + 0.3;
}
foreach(var_08 in var_02.var_127C9)
{
var_02 thread func_A631(var_08,param_01,param_00);
}
var_02 thread buffer_move();
wait(16);
var_02 notify("stop_buffer");
var_02 rotateyaw(30,1,0,0);
var_02 rotateyaw(-30,1,0,1);
stopfxontag(level._effect["buffer_smoke"],var_02,"tag_origin");
var_02 moveto(var_02.origin + anglestoforward(var_02.var_A912.angles) * 2,0.25,0,0.25);
var_02 playsoundonmovingent("trap_buffer_stop");
wait(1);
var_02 stoploopsound("trap_buffer_spin_lp");
wait(1);
var_02 method_83AD();
var_02.var_A912 = undefined;
var_02.last_yaw = undefined;
level notify("buffer_trap_kills",param_00.var_126A4);
param_00.origin = var_02.origin + anglestoforward(var_02.angles) * param_00.offset_forward + (0,0,param_00.offset_up);
scripts\cp\_interaction::add_to_current_interaction_list(param_00);
scripts\cp\_interaction::func_9A0D(param_00,90);
}
//Function Number: 4
buffer_move()
{
self endon("stop_buffer");
var_00 = 1;
var_01 = scripts\common\utility::getstructarray(self.target,"targetname");
var_02 = squared(192);
for(;;)
{
var_03 = [];
var_04 = [];
foreach(var_06 in var_01)
{
var_07 = distance2dsquared(var_06.origin,self.origin);
if(var_07 > var_02)
{
if(isdefined(self.var_A912) && var_06.angles == self.var_A912.angles)
{
continue;
}
var_04[var_03.size] = var_07;
var_03[var_03.size] = var_06;
}
}
var_09 = randomintrange(0,var_03.size - 1);
if(!isdefined(var_09))
{
break;
}
var_0A = undefined;
if(!isdefined(self.var_A912))
{
var_0B = var_03[var_09];
var_0A = sqrt(var_04[var_09]) / 180;
self moveto(var_0B.origin,var_0A,1,0);
}
else
{
var_0B = var_03[var_09];
var_0A = sqrt(var_04[var_09]) / 180;
self playsoundonmovingent("trap_buffer_bump_edge");
self moveto(var_0B.origin,var_0A,0,0);
self rotateyaw(randomintrange(500,1080) * var_00,var_0A,randomfloatrange(0,var_0A * 0.5),0);
var_00 = var_00 * -1;
}
wait(var_0A);
self.var_A912 = var_0B;
}
}
//Function Number: 5
buffer_trap_sfx()
{
self endon("stop_buffer");
self playsoundonmovingent("trap_buffer_startup");
wait(3.1);
self playloopsound("trap_buffer_spin_lp");
}
//Function Number: 6
func_A631(param_00,param_01,param_02)
{
self endon("stop_buffer");
for(;;)
{
param_00 waittill("trigger",var_03);
if(isplayer(var_03) && !scripts\cp\_laststand::player_in_laststand(var_03))
{
if(scripts\common\utility::istrue(var_03.flung))
{
continue;
}
var_03.flung = 1;
var_03 thread throwandkillplayer();
continue;
}
if(isdefined(var_03.flung))
{
continue;
}
if(isdefined(var_03.agent_type) && var_03.agent_type == "slasher")
{
continue;
}
var_03.flung = 1;
param_02.var_126A4++;
level thread func_6F32(var_03,self,param_01);
}
}
//Function Number: 7
throwandkillplayer()
{
self endon("disconnect");
self endon("last_stand");
self dodamage(35,self.origin);
self setvelocity((randomintrange(220,250),randomintrange(220,250),0));
wait(0.5);
self.flung = undefined;
}
//Function Number: 8
func_6F32(param_00,param_01,param_02)
{
param_00 endon("death");
param_00.do_immediate_ragdoll = 1;
param_00.var_4C87 = 1;
param_00.disable_armor = 1;
param_00.nocorpse = 1;
param_00.full_gib = 1;
var_03 = ["kill_trap_generic","trap_kill_buffer"];
if(param_02 scripts\cp\_utility::is_valid_player())
{
var_04 = param_02;
var_04 thread scripts\cp\_vo::try_to_play_vo(scripts\common\utility::random(var_03),"zmb_comment_vo","highest",10,0,0,1,25);
}
else
{
var_04 = undefined;
}
param_00 dodamage(param_00.health + 1000,param_00.origin,var_04,var_04,"MOD_UNKNOWN","iw7_buffertrap_zm");
}
//Function Number: 9
init_hydrant_trap()
{
level._effect["trap_hydrant_spray"] = loadfx("vfx/iw7/levels/cp_disco/vfx_trap_hydrant_spray.vfx");
level._effect["trap_hydrant_spray2"] = loadfx("vfx/iw7/levels/cp_disco/vfx_trap_hydrant_spray_2.vfx");
level._effect["trap_hydrant_pool"] = loadfx("vfx/iw7/levels/cp_disco/vfx_trap_hydrant_pool.vfx");
}
//Function Number: 10
use_hydrant_trap(param_00,param_01)
{
var_02 = getent(param_00.target,"targetname");
var_03 = [];
foreach(var_05 in scripts\common\utility::getstructarray(param_00.target,"targetname"))
{
var_05.pool_spot = scripts\common\utility::getstruct(var_05.target,"targetname");
foreach(var_07 in getentarray(var_05.target,"targetname"))
{
if(issubstr(var_07.classname,"phys"))
{
var_05.physvolume = var_07;
continue;
}
if(issubstr(var_07.classname,"trigger"))
{
var_05.trigger = var_07;
}
}
var_05.player = param_01;
var_05.var_9A09 = param_00;
var_05.valve = var_02;
var_03[var_03.size] = var_05;
}
param_01 thread scripts\cp\_vo::try_to_play_vo("activate_trap_generic","zmb_comment_vo","low",10,0,1,0,40);
param_00.var_126A4 = 0;
param_01 playlocalsound("purchase_generic");
scripts\cp\_interaction::func_554F(param_00);
wait(0.5);
var_02 rotateyaw(360,1);
playsoundatpos(var_02.origin,"trap_hydrant_valve");
wait(0.5);
playrumbleonposition("light_3s",var_02.origin);
earthquake(0.2,2,var_02.origin,500);
wait(0.5);
scripts\common\utility::array_thread(var_03,::shoot_water);
wait(15);
level notify("hydrant_trap_kills",param_00.var_126A4);
var_02 notify("stop_hydrant_trap");
playsoundatpos(var_02.origin,"trap_hydrant_valve");
scripts\cp\_interaction::add_to_current_interaction_list(param_00);
scripts\cp\_interaction::func_9A0D(param_00,90);
}
//Function Number: 11
shoot_water()
{
if(isdefined(self.script_noteworthy) && self.script_noteworthy == "2")
{
playfx(scripts\common\utility::getfx("trap_hydrant_spray2"),self.origin,anglestoforward(self.angles),anglestoup(self.angles));
}
else
{
playfx(scripts\common\utility::getfx("trap_hydrant_spray"),self.origin,anglestoforward(self.angles),anglestoup(self.angles));
}
playsoundatpos(self.origin,"trap_hydrant_spray");
var_00 = anglestoforward(self.angles);
self.physvolume method_852B(1,var_00,5000);
self.physvolume method_8529(1);
self.physvolume method_8526(1);
thread kill_zombies_hydrant(var_00);
self.valve waittill("stop_hydrant_trap");
self.physvolume method_8526(0);
self.physvolume method_8529(0);
}
//Function Number: 12
kill_zombies_hydrant(param_00)
{
self.valve endon("stop_hydrant_trap");
for(;;)
{
self.trigger waittill("trigger",var_01);
if(isplayer(var_01))
{
var_02 = var_01 getvelocity();
var_01 setvelocity(var_02 + param_00 * 35);
continue;
}
if(!scripts\cp\_utility::func_FF18(var_01,undefined,1))
{
continue;
}
self.var_9A09.var_126A4++;
var_01 thread fling_zombie_hydrant(self.var_9A09,self.player);
}
}
//Function Number: 13
fling_zombie_hydrant(param_00,param_01)
{
self endon("death");
self.flung = 1;
self.var_B36E = 1;
self.do_immediate_ragdoll = 1;
self.var_4C87 = 1;
self.disable_armor = 1;
wait(randomfloatrange(0.5,1.5));
if(param_01 scripts\cp\_utility::is_valid_player())
{
var_02 = param_01;
var_03 = ["kill_trap_generic","trap_kill_firehydrant"];
var_02 thread scripts\cp\_vo::try_to_play_vo(scripts\common\utility::random(var_03),"zmb_comment_vo","high",10,0,0,1,25);
}
else
{
var_02 = undefined;
}
self dodamage(self.health + 100,self.origin,var_02,var_02,"MOD_UNKNOWN","iw7_hydranttrap_zm");
}
//Function Number: 14
init_mosh_trap()
{
scripts\common\utility::flag_init("flag_moshing_allowed");
scripts\common\utility::array_thread(scripts\common\utility::getstructarray("trap_mosh","script_noteworthy"),::power_on_mosh);
}
//Function Number: 15
power_on_mosh()
{
level.punk_rockspots = [];
level.punk_speakers = [];
self.aoe = undefined;
foreach(var_01 in scripts\common\utility::getstructarray(self.target,"targetname"))
{
if(var_01.script_area == "rockout")
{
level.punk_rockspots[level.punk_rockspots.size] = var_01;
continue;
}
if(var_01.script_area == "radius")
{
self.aoe = var_01;
continue;
}
if(var_01.script_area == "speaker")
{
level.punk_speakers[level.punk_speakers.size] = var_01;
}
}
self.aoe_trigger = spawn("trigger_radius",self.aoe.origin + (0,0,16),0,600,64);
self.var_D776 = 1;
}
//Function Number: 16
use_mosh_trap(param_00,param_01)
{
scripts\common\utility::func_6E2A("flag_moshing_allowed");
param_00.var_126A4 = 0;
param_01 playlocalsound("purchase_generic");
scripts\cp\_interaction::remove_from_current_interaction_list(param_00);
param_01 thread scripts\cp\_vo::try_to_play_vo("activate_trap_generic","zmb_comment_vo","low",10,0,1,0,40);
level.punk_rockers = [];
level.punk_moshers = [];
wait(0.5);
level thread scripts\cp\maps\cp_disco\cp_disco::start_mosh_trap_music();
level thread mosh_trap_trigger(param_00,param_01);
wait(1.1);
scripts\common\utility::exploder(50);
wait(28);
level notify("stop_mosh_trap");
level notify("mosh_trap_kills",param_00.var_126A4);
kill_mosh_stragglers(param_01);
scripts\cp\_interaction::add_to_current_interaction_list(param_00);
scripts\cp\_interaction::func_9A0D(param_00,90);
}
//Function Number: 17
mosh_trap_trigger(param_00,param_01)
{
level endon("stop_mosh_trap");
for(;;)
{
param_00.aoe_trigger waittill("trigger",var_02);
if(var_02 scripts\cp\_utility::is_valid_player())
{
continue;
}
if(scripts\common\utility::istrue(var_02.var_9CEF) || scripts\common\utility::istrue(var_02.mosh_trap) || scripts\common\utility::istrue(var_02.var_9CEC))
{
continue;
}
if(scripts\common\utility::istrue(var_02.is_skeleton))
{
continue;
}
if(!scripts\cp\_utility::func_FF18(var_02) || var_02.var_152C || var_02.var_EF64)
{
continue;
}
if(var_02.agent_type == "ratking" || var_02.agent_type == "karatemaster" || var_02.agent_type == "cop_dlc2" || var_02.agent_type == "skater")
{
continue;
}
var_02 thread func_DF45(param_01);
var_02 thread rockmode(param_00,param_01);
}
}
//Function Number: 18
clean_array(param_00)
{
var_01 = [];
foreach(var_03 in param_00)
{
if(isdefined(var_03) && isalive(var_03))
{
var_01[var_01.size] = var_03;
}
}
return var_01;
}
//Function Number: 19
rockmode(param_00,param_01)
{
level endon("stop_mosh_trap");
self endon("death");
self.mosh_trap = 1;
self.og_movemode = self.var_1F5;
self.var_1F5 = "sprint";
self.goalradius_old = self.var_15C;
self.is_rocking = 1;
self.var_152C = 1;
self.var_EF64 = 1;
self method_8287(32);
var_02 = get_rock_spot(param_00);
thread release_rockspot_on_death();
self.var_5273 = (0,var_02.angles[1],0);
self.var_180 = 1;
self method_8286(var_02.origin);
scripts\common\utility::waittill_any_3("goal","goal_reached");
self notify("rockmode");
self.do_immediate_ragdoll = 1;
self.var_9BB0 = 1;
level.punk_rockers[level.punk_rockers.size] = self;
}
//Function Number: 20
moshdeath(param_00,param_01)
{
if(scripts\common\utility::istrue(param_01))
{
self.electrocuted = 1;
self.dontmutilate = 1;
self playsound("trap_electric_shock");
}
var_02 = ["kill_trap_generic","trap_kill_moshpit"];
if(param_00 scripts\cp\_utility::is_valid_player())
{
var_03 = param_00;
var_03 thread scripts\cp\_vo::try_to_play_vo(scripts\common\utility::random(var_02),"zmb_comment_vo","high",10,0,0,1,25);
}
else
{
var_03 = undefined;
}
if(scripts\common\utility::istrue(self.is_moshing))
{
self.team = "axis";
}
self setscriptablepartstate("eyes","yellow_eyes");
self dodamage(self.health + 1000,self.origin,var_03,var_03,"MOD_UNKNOWN","iw7_moshtrap_zm");
}
//Function Number: 21
get_rock_spot(param_00)
{
if(isdefined(self.rockspot))
{
self.rockspot.var_222 = undefined;
self.rockspot = undefined;
}
var_01 = sortbydistance(level.punk_rockspots,param_00.origin);
foreach(var_03 in var_01)
{
if(!isdefined(var_03.var_222))
{
var_03.var_222 = self;
self.rockspot = var_03;
return var_03;
}
}
return scripts\common\utility::random(var_01);
}
//Function Number: 22
get_mosh_spot(param_00)
{
var_01 = sortbydistance(level.punk_rockspots,param_00.origin);
return var_01[0];
}
//Function Number: 23
kill_mosh_stragglers(param_00)
{
foreach(var_02 in level.punk_rockers)
{
if(!isdefined(var_02) || !isalive(var_02))
{
continue;
}
var_03 = scripts\common\utility::random(level.punk_speakers);
var_04 = var_02 gettagorigin("J_HEAD");
function_02E0(level._effect["blue_ark_beam"],var_03.origin,vectortoangles(var_03.origin - var_04),var_04);
var_02 moshdeath(param_00,1);
wait(randomfloatrange(0.1,0.2));
}
}
//Function Number: 24
func_DF45(param_00)
{
self endon("death");
self endon("moshmode");
self endon("rockmode");
level waittill("stop_mosh_trap");
if(isdefined(self.var_C37F))
{
self.var_15C = self.var_C37F;
}
self method_8287(self.var_15C);
self.var_C37F = undefined;
self.var_EF64 = 0;
if(isdefined(self.og_movemode))
{
self.var_1F5 = self.og_movemode;
}
self.og_movemode = undefined;
self.var_180 = 0;
self.var_152C = 0;
self.mosh_trap = undefined;
self.is_rocking = undefined;
self.do_immediate_ragdoll = 0;
if(isdefined(self.rockspot))
{
self.rockspot.var_222 = undefined;
}
self.rockspot = undefined;
}
//Function Number: 25
release_rockspot_on_death()
{
self waittill("death");
if(isdefined(self.rockspot))
{
self.rockspot.var_222 = undefined;
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,898 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\maps\cp_disco\cp_disco_weapon_upgrade.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 24
* Decompile Time: 1197 ms
* Timestamp: 10/27/2023 12:04:14 AM
*******************************************************************/
//Function Number: 1
init_weapon_upgrade()
{
level.pap_room_func = ::cp_disco_pap_machine_func;
level.max_pap_func = ::func_385F;
}
//Function Number: 2
func_13C62(param_00,param_01)
{
if(scripts\common\utility::istrue(level.has_picked_up_fuses) && !isdefined(level.placed_alien_fuses))
{
level.placed_alien_fuses = 1;
level thread place_fuses_in_machine(param_00,param_01);
foreach(param_01 in level.players)
{
param_01 setclientomnvar("zm_special_item",0);
}
level thread scripts\cp\maps\cp_disco\cp_disco::set_fuse_icon_on_hotjoin(0);
return;
}
var_04 = var_03 getcurrentweapon();
var_05 = scripts\cp\_utility::func_80D8(var_04);
var_06 = var_03 scripts\cp\_weapon::func_7D62(var_05);
var_07 = undefined;
var_08 = get_player_fists_weapon(var_03);
var_09 = "none";
var_0A = undefined;
var_0B = 0;
if(!can_use_pap_machine(var_05,var_03))
{
return;
}
if(var_03 func_385F(var_04))
{
scripts\cp\_interaction::remove_from_current_interaction_list(var_02);
var_0C = scripts\common\utility::getstruct(var_02.target,"targetname");
var_0D = vectornormalize(anglestoforward(var_03.angles)) * 16;
var_06 = int(var_06);
var_06++;
var_0E = var_04;
var_0F = validate_current_weapon(var_06,var_05,var_04);
var_07 = get_pap_offhand_weapon(var_03,var_04);
var_0A = get_pap_camo(var_06,var_05,var_04);
var_0B = should_use_old_model(var_06,var_05,var_04);
process_pap_stat_logging(var_05,var_03);
thread play_pap_vo(var_03);
var_09 = return_pap_attachment(var_03,var_06,var_05,var_04);
if(isdefined(var_09) && var_09 == "replace_me")
{
var_09 = undefined;
}
var_10 = filter_current_weapon_attachments(var_04);
var_11 = remove_invalid_wm_attachments(var_10);
var_04 = var_03 scripts\cp\_weapon::func_E469(var_0F,undefined,var_11);
var_12 = var_03 scripts\cp\_weapon::func_E469(var_0F,var_09,var_11,undefined,var_0A);
var_13 = var_03 scripts\cp\_weapon::func_E469(var_0F,var_09,var_10,undefined,var_0A);
if(var_0B)
{
var_14 = spawn("script_weapon",var_03 geteye() + var_0D,0,0,var_0E);
}
else
{
var_14 = spawn("script_weapon",var_04 geteye() + var_0E,0,0,var_05);
}
var_14.angles = var_02.angles;
if(var_0B)
{
var_15 = disco_getoffsetfrombaseweaponname(var_0E);
}
else
{
var_15 = disco_getoffsetfrombaseweaponname(var_14);
}
level thread func_DF48(var_03,var_14,var_02);
level notify("pap_used",var_03,var_06,var_13);
var_14 makeunusable();
var_03 thread disco_playpapgesture(var_03,var_03.pap_gesture,var_07,var_04,var_0E);
var_03.var_C8AB = var_04;
if(var_0B)
{
var_16 = getangleoffset(var_0E,var_0C);
}
else
{
var_16 = getangleoffset(var_14,var_0D);
}
var_17 = lib_0D41::func_8087(var_05);
var_14 moveto(var_0C.origin + var_17,0.75);
var_14 rotateto(var_16,0.75);
var_14 waittill("movedone");
var_14 moveto(var_0C.origin + var_15,0.25);
var_14 waittill("movedone");
update_level_pap_machines("door","close",undefined,undefined,"zmb_packapunch_machine_on");
wait(0.75);
if(!scripts\common\utility::flag("fuses_inserted"))
{
update_level_pap_machines("papfx","normal","papfx","upgraded");
}
wait(3.5);
update_level_pap_machines("door","decomp");
wait(0.8);
var_14 method_8536(var_12);
wait(0.4);
update_level_pap_machines("door","open_idle");
update_level_pap_machines("papfx","idle");
wait(0.5);
var_14 makeusable();
var_14 method_84A2(100);
if(var_03 scripts\cp\_utility::is_valid_player())
{
foreach(var_19 in level.players)
{
if(var_19 == var_03)
{
var_14 enableplayeruse(var_19);
continue;
}
var_14 disableplayeruse(var_19);
}
if(var_0F == "iw7_katana_zm_pap1")
{
var_03 lib_0D2A::func_12D7C("SLICED_AND_DICED",1);
var_03 thread scripts\cp\_vo::try_to_play_vo("weapon_pap_katana_1","zmb_pap_vo","high",undefined,undefined,undefined,1);
}
else if(var_0F == "iw7_katana_zm_pap2")
{
var_03 thread scripts\cp\_vo::try_to_play_vo("weapon_pap_katana_2","zmb_pap_vo","high",undefined,undefined,undefined,1);
}
else if(var_0F == "iw7_nunchucks_zm_pap1")
{
var_03 thread scripts\cp\_vo::try_to_play_vo("weapon_pap_nunchucks_1","zmb_pap_vo","high",undefined,undefined,undefined,1);
}
else if(var_0F == "iw7_nunchucks_zm_pap2")
{
var_03 thread scripts\cp\_vo::try_to_play_vo("weapon_pap_nunchucks_2","zmb_pap_vo","high",undefined,undefined,undefined,1);
}
var_03 scripts\cp\_merits::func_D9AD("mt_upgrade_weapons");
}
var_14 thread func_1360B(var_13,var_08,var_06);
var_14 scripts\common\utility::waittill_any_timeout_1(30,"weapon_taken");
if(var_03 scripts\cp\_utility::is_valid_player())
{
var_03 notify("weapon_purchased");
var_03.var_C8AB = undefined;
var_03 scripts\cp\_interaction::func_DE6E();
var_03 scripts\cp\_merits::func_D9AD("mt_dlc2_upgrade_weapons");
}
var_14 delete();
wait(1);
scripts\cp\_interaction::add_to_current_interaction_list(var_02);
level notify("pap_machine_activated");
}
}
//Function Number: 3
func_1360B(param_00,param_01,param_02)
{
self endon("death");
for(;;)
{
self waittill("trigger",var_03);
if(scripts\common\utility::istrue(var_03.kung_fu_mode))
{
wait(0.1);
continue;
}
break;
}
if(!isdefined(param_01))
{
param_01 = "iw7_fists_zm";
}
if(var_03 hasweapon(param_01))
{
var_03 takeweapon(param_01);
}
if(var_03 scripts\cp\_weapon::func_8BBB(param_00))
{
var_04 = scripts\cp\_utility::func_80D8(param_00);
foreach(var_06 in var_03 getweaponslistall())
{
var_07 = scripts\cp\_utility::func_80D8(var_06);
if(var_04 == var_07)
{
var_03 takeweapon(var_06);
}
}
}
if(lib_0D41::func_FFA6(var_03))
{
var_09 = var_03 getcurrentweapon();
var_0A = scripts\cp\_utility::func_80D8(var_09);
var_03 takeweapon(var_09);
}
self notify("weapon_taken");
param_00 = var_03 scripts\cp\_utility::func_12C6(param_00,undefined,undefined,0);
var_03 givemaxammo(param_00);
var_0B = var_03 getweaponslistprimaries();
foreach(var_06 in var_0B)
{
if(issubstr(var_06,param_00))
{
if(scripts\cp\_utility::func_9D3E(var_06))
{
var_04 = getweaponbasename(var_06);
if(isdefined(level.mode_weapons_allowed) && scripts\common\utility::func_2286(level.mode_weapons_allowed,var_04))
{
param_00 = "alt_" + param_00;
break;
}
}
}
}
var_03 switchtoweapon(param_00);
var_04 = scripts\cp\_utility::func_80D8(param_00);
var_03.var_C8A2[var_04].var_B111++;
var_03 scripts\cp\_persistence::give_player_xp(500,1);
var_03 notify("weapon_level_changed");
}
//Function Number: 4
disco_playpapgesture(param_00,param_01,param_02,param_03,param_04)
{
var_05 = get_player_fists_weapon(param_00);
param_00 scripts\cp\_utility::func_12C6(var_05,undefined,undefined,1);
param_00 method_83B6(var_05);
param_00 takeweapon(param_04);
wait(1);
thread scripts\cp\_utility::firegesturegrenade(param_00,param_01);
wait(2.5);
if(isdefined(param_02))
{
param_00 method_83B6(param_02);
if(param_00 hasweapon(var_05))
{
param_00 takeweapon(var_05);
}
}
}
//Function Number: 5
get_player_fists_weapon(param_00)
{
if(isdefined(param_00.var_134FD))
{
switch(param_00.var_134FD)
{
case "p1_":
return "iw7_fists_zm";
case "p2_":
return "iw7_fists_zm";
case "p3_":
return "iw7_fists_zm";
case "p4_":
return "iw7_fists_zm";
case "p5_":
return "iw7_fists_zm";
default:
return "iw7_fists_zm";
}
return;
}
return "iw7_fists_zm";
}
//Function Number: 6
getangleoffset(param_00,param_01)
{
var_02 = scripts\cp\_utility::func_7DF7(param_00);
var_03 = param_01.angles;
switch(var_02)
{
case "iw7_spiked":
case "iw7_golf":
case "iw7_two":
case "iw7_nunchucks":
case "iw7_katana":
case "iw7_machete":
return (90,90,0);
default:
return var_03;
}
}
//Function Number: 7
disco_getoffsetfrombaseweaponname(param_00)
{
var_01 = scripts\cp\_utility::func_7DF7(param_00);
var_02 = lib_0D41::func_801F(param_00);
switch(var_01)
{
case "iw7_machete":
return (0,-6,2);
case "iw7_two":
return (0,-8,2);
case "iw7_spiked":
case "iw7_golf":
return (0,-12,2);
case "iw7_nunchucks":
case "iw7_katana":
return (0,-12,2);
default:
return var_02;
}
}
//Function Number: 8
return_pap_attachment(param_00,param_01,param_02,param_03,param_04)
{
var_05 = undefined;
if(isdefined(param_02))
{
switch(param_02)
{
case "spiked":
case "golf":
case "two":
case "katana":
case "nunchucks":
case "machete":
return "replace_me";
default:
if(scripts\common\utility::istrue(param_04))
{
return undefined;
}
if(isdefined(param_00.var_C8A2[param_02]))
{
return "pap" + param_00.var_C8A2[param_02].var_B111;
}
else
{
return "pap1";
}
break;
}
}
return var_05;
}
//Function Number: 9
cp_disco_pap_machine_func(param_00,param_01)
{
level.pap_machine = param_01;
level.pap_machine hide();
param_00.var_D776 = 1;
}
//Function Number: 10
place_fuses_in_machine(param_00,param_01)
{
scripts\cp\_interaction::remove_from_current_interaction_list(param_00);
upgrade_machine_for_all_players();
update_level_pap_machines("door","close");
wait(0.5);
update_level_pap_machines("machine","upgraded");
wait(0.25);
update_level_pap_machines("reels","neutral");
wait(0.25);
update_level_pap_machines("reels","on");
wait(0.25);
update_level_pap_machines("door","open_idle");
wait(0.25);
scripts\cp\_interaction::add_to_current_interaction_list(param_00);
if(param_01 scripts\cp\_utility::is_valid_player())
{
param_01 thread scripts\cp\_vo::try_to_play_vo("pap_upgrade","zmb_pap_vo","high");
}
}
//Function Number: 11
upgrade_machine_for_all_players()
{
foreach(var_01 in level.player_pap_machines)
{
var_01 setmodel("zmb_pap_machine_animated_soul_key");
}
scripts\common\utility::func_136F7();
}
//Function Number: 12
update_level_pap_machines(param_00,param_01,param_02,param_03,param_04)
{
var_05 = isdefined(param_02) && isdefined(param_03);
foreach(var_07 in level.player_pap_machines)
{
if(isdefined(param_04))
{
var_07 playsound(param_04);
}
if(scripts\common\utility::istrue(level.placed_alien_fuses) && var_05)
{
var_07 setscriptablepartstate(param_02,param_03);
continue;
}
var_07 setscriptablepartstate(param_00,param_01);
}
}
//Function Number: 13
func_DF48(param_00,param_01,param_02)
{
level endon("pap_machine_activated");
param_00 waittill("disconnect");
update_level_pap_machines("door","decomp");
wait(1.2);
update_level_pap_machines("door","open_idle");
update_level_pap_machines("papfx","idle");
param_01 delete();
wait(1);
scripts\cp\_interaction::add_to_current_interaction_list(param_02);
level notify("pap_machine_activated");
}
//Function Number: 14
can_use_pap_machine(param_00,param_01)
{
if(param_00 == "dischord" || param_00 == "facemelter" || param_00 == "headcutter" || param_00 == "shredder")
{
if(!scripts\common\utility::flag("fuses_inserted"))
{
return 0;
}
else
{
return 1;
}
}
else if(isdefined(param_01))
{
if(scripts\common\utility::istrue(param_01.kung_fu_mode))
{
return 0;
}
}
return 1;
}
//Function Number: 15
get_pap_offhand_weapon(param_00,param_01)
{
var_02 = param_00 getweaponslistprimaries();
foreach(var_04 in var_02)
{
if(!issubstr(param_01,var_04) && !scripts\cp\_utility::isstrstart(var_04,"alt_") && !issubstr(var_04,"knife") && var_04 != "iw7_knife_zm_disco")
{
return var_04;
}
}
return undefined;
}
//Function Number: 16
validate_current_weapon(param_00,param_01,param_02)
{
if(isdefined(level.weapon_upgrade_path) && isdefined(level.weapon_upgrade_path[getweaponbasename(param_02)]))
{
param_02 = level.weapon_upgrade_path[getweaponbasename(param_02)];
}
else if(isdefined(param_01))
{
switch(param_01)
{
case "two":
if(param_00 == 2)
{
param_02 = "iw7_two_headed_axe_mp";
}
else if(param_00 == 3)
{
param_02 = "iw7_two_headed_axe_mp";
}
break;
case "golf":
if(param_00 == 2)
{
param_02 = "iw7_golf_club_mp";
}
else if(param_00 == 3)
{
param_02 = "iw7_golf_club_mp";
}
break;
case "machete":
if(param_00 == 2)
{
param_02 = "iw7_machete_mp";
}
else if(param_00 == 3)
{
param_02 = "iw7_machete_mp";
}
break;
case "spiked":
if(param_00 == 2)
{
param_02 = "iw7_spiked_bat_mp";
}
else if(param_00 == 3)
{
param_02 = "iw7_spiked_bat_mp";
}
break;
case "axe":
if(param_00 == 2)
{
param_02 = "iw7_axe_zm_pap1";
}
else if(param_00 == 3)
{
param_02 = "iw7_axe_zm_pap2";
}
break;
case "katana":
if(param_00 == 2)
{
param_02 = "iw7_katana_zm_pap1";
}
else if(param_00 == 3)
{
param_02 = "iw7_katana_zm_pap2";
}
break;
case "nunchucks":
if(param_00 == 2)
{
param_02 = "iw7_nunchucks_zm_pap1";
}
else if(param_00 == 3)
{
param_02 = "iw7_nunchucks_zm_pap2";
}
break;
default:
return param_02;
}
}
return param_02;
}
//Function Number: 17
should_use_old_model(param_00,param_01,param_02)
{
if(isdefined(param_01))
{
switch(param_01)
{
case "spiked":
case "golf":
case "two":
case "machete":
case "axe":
return 1;
default:
return 0;
}
return;
}
return 0;
}
//Function Number: 18
get_pap_camo(param_00,param_01,param_02)
{
var_03 = undefined;
if(isdefined(param_01))
{
if(isdefined(level.no_pap_camos) && scripts\common\utility::func_2286(level.no_pap_camos,param_01))
{
var_03 = undefined;
}
else if(isdefined(level.pap_1_camo) && isdefined(param_00) && param_00 == 2)
{
var_03 = level.pap_1_camo;
}
else if(isdefined(level.pap_2_camo) && isdefined(param_00) && param_00 == 3)
{
var_03 = level.pap_2_camo;
}
switch(param_01)
{
case "dischord":
param_02 = "iw7_dischord_zm_pap1";
var_03 = "camo20";
break;
case "facemelter":
param_02 = "iw7_facemelter_zm_pap1";
var_03 = "camo22";
break;
case "headcutter":
param_02 = "iw7_headcutter_zm_pap1";
var_03 = "camo21";
break;
case "katana":
case "nunchucks":
var_03 = "camo222";
break;
case "forgefreeze":
if(param_00 == 2)
{
param_02 = "iw7_forgefreeze_zm_pap1";
}
else if(param_00 == 3)
{
param_02 = "iw7_forgefreeze_zm_pap2";
}
var_04 = 1;
break;
case "axe":
if(param_00 == 2)
{
param_02 = "iw7_axe_zm_pap1";
}
else if(param_00 == 3)
{
param_02 = "iw7_axe_zm_pap2";
}
var_04 = 1;
break;
case "shredder":
param_02 = "iw7_shredder_zm_pap1";
var_03 = "camo23";
break;
}
}
return var_03;
}
//Function Number: 19
play_pap_vo(param_00)
{
param_00 thread scripts\cp\_vo::try_to_play_vo("weapon_pap","zmb_pap_vo","high");
}
//Function Number: 20
process_pap_stat_logging(param_00,param_01)
{
level.var_1192E++;
scripts\cp\zombies\zombie_analytics::func_AF7F(level.wave_num,param_00,level.var_1192E);
}
//Function Number: 21
filter_current_weapon_attachments(param_00)
{
var_01 = function_00E3(param_00);
if(issubstr(param_00,"g18_z"))
{
foreach(var_03 in var_01)
{
if(issubstr(var_03,"akimbo"))
{
var_01 = scripts\common\utility::func_22A9(var_01,var_03);
}
}
}
return var_01;
}
//Function Number: 22
remove_invalid_wm_attachments(param_00)
{
var_01 = param_00;
foreach(var_03 in var_01)
{
if(issubstr(var_03,"silencer") || issubstr(var_03,"arcane") || issubstr(var_03,"ark"))
{
var_01 = scripts\common\utility::func_22A9(var_01,var_03);
}
}
return param_00;
}
//Function Number: 23
weapon_upgrade_hint_func(param_00,param_01)
{
if(scripts\common\utility::istrue(level.has_picked_up_fuses) && !isdefined(level.placed_alien_fuses))
{
return &"CP_DISCO_PAP_UPGRADE";
}
level.interactions[param_00.script_noteworthy].cost = 5000;
var_02 = param_01 getcurrentweapon();
var_03 = scripts\cp\_weapon::func_7D62(var_02);
if(scripts\common\utility::istrue(level.placed_alien_fuses))
{
if(var_03 == 3)
{
return &"COOP_INTERACTIONS_UPGRADE_MAXED";
}
else if(!func_385F(var_02))
{
return &"CP_DISCO_UPGRADE_WEAPON_FAIL";
}
else if(var_03 == 1)
{
return &"CP_DISCO_UPGRADE_WEAPON";
}
else
{
return &"CP_DISCO_UPGRADE_WEAPON";
}
return &"CP_DISCO_UPGRADE_WEAPON_FAIL";
}
if(var_03 == level.var_C8A4)
{
return &"COOP_INTERACTIONS_UPGRADE_MAXED";
}
else if(param_01 scripts\cp\_utility::func_9C42(var_02,1))
{
return "";
}
else if(!func_385F(var_02))
{
return &"CP_DISCO_UPGRADE_WEAPON_FAIL";
}
else if(var_03 == 1)
{
return &"CP_DISCO_UPGRADE_WEAPON";
}
else
{
return &"CP_DISCO_UPGRADE_WEAPON";
}
return &"CP_DISCO_UPGRADE_WEAPON_FAIL";
}
//Function Number: 24
func_385F(param_00,param_01)
{
if(!isdefined(level.var_C8A2))
{
return 0;
}
if(scripts\common\utility::istrue(self.kung_fu_mode))
{
return 0;
}
if(isdefined(param_00))
{
var_02 = scripts\cp\_utility::func_80D8(param_00);
}
else
{
return 0;
}
if(!isdefined(var_02))
{
return 0;
}
if(!isdefined(level.var_C8A2[var_02]))
{
var_03 = getsubstr(var_02,0,var_02.size - 1);
if(!isdefined(level.var_C8A2[var_03]))
{
return 0;
}
}
if(isdefined(self.var_6670) && getweaponbasename(self.var_6670) == getweaponbasename(param_00))
{
return 0;
}
if(isdefined(level.weapon_upgrade_path) && isdefined(level.weapon_upgrade_path[getweaponbasename(param_00)]))
{
return 1;
}
if(var_02 == "dischord" || var_02 == "facemelter" || var_02 == "headcutter" || var_02 == "shredder")
{
if(!scripts\common\utility::flag("fuses_inserted"))
{
if(scripts\common\utility::istrue(param_01))
{
return 1;
}
else
{
return 0;
}
}
else if(isdefined(self.var_C8A2[var_02]) && self.var_C8A2[var_02].var_B111 == 2)
{
return 0;
}
}
if(scripts\common\utility::istrue(level.has_picked_up_fuses) && !isdefined(level.placed_alien_fuses))
{
return 1;
}
if(scripts\common\utility::istrue(level.placed_alien_fuses))
{
if(isdefined(self.var_C8A2[var_02]) && self.var_C8A2[var_02].var_B111 >= 3)
{
return 0;
}
else
{
return 1;
}
}
if(scripts\common\utility::istrue(param_01) && isdefined(self.var_C8A2[var_02]) && self.var_C8A2[var_02].var_B111 <= min(level.var_C8A4 + 1,2))
{
return 1;
}
if(isdefined(self.var_C8A2[var_02]) && self.var_C8A2[var_02].var_B111 >= level.var_C8A4)
{
return 0;
}
return 1;
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,17 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\maps\cp_disco\gen\cp_disco_art.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 119 ms
* Timestamp: 10/27/2023 12:03:34 AM
*******************************************************************/
//Function Number: 1
main()
{
level.var_12ACA = 1;
setdvar("r_lightGridEnableTweaks",1);
setdvar("r_lightGridIntensity",1);
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,508 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\maps\cp_disco\gen\cp_disco_sound.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 137 ms
* Timestamp: 10/27/2023 12:03:35 AM
*******************************************************************/
//Function Number: 1
main()
{
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-10108,181,-1722),(270,0,0));
var_00.var_13125["soundalias"] = "zmb_afterlife_music";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((874.857,672.673,741.996),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fire_large_metal_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((687.331,1452.32,774.132),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fire_med_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((1230.71,718.584,749.994),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fire_med_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((1297.52,1239.21,766.868),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fire_med_crackle_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((1282.9,1455.64,755.513),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fire_med_crackle_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((1089,1626.47,749.994),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fire_small_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((371.754,492.059,804.994),(270,0,0));
var_00.var_13125["soundalias"] = "emt_sink_running_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((436.63,541.667,779.741),(270,0,0));
var_00.var_13125["soundalias"] = "emt_toilet_running_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((912.725,1753.36,815.787),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fire_large_mvmt_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-772.579,399.408,1040.55),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_3";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-1212.51,630.954,1044.48),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_3";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-1211.09,1073.87,1172.69),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_3";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-904.54,994,1178.52),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_3";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-1933.27,760.342,1277.19),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_3";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-994.132,27.242,1185.16),(270,0,0));
var_00.var_13125["soundalias"] = "emt_plastic_tarp_flap_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-2265.56,757.86,1134.56),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_3";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-2672.69,1898.23,896.6),(270,0,0));
var_00.var_13125["soundalias"] = "emt_pipe_air_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-2861.97,2189.84,896.6),(270,0,0));
var_00.var_13125["soundalias"] = "emt_pipe_air_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((217.407,232.046,1038.17),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_4";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-3229.86,2416.85,936.046),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-1695.56,4240.47,741.996),(270,0,0));
var_00.var_13125["soundalias"] = "emt_pipe_air_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-2080.56,4573.81,751.031),(270,0,0));
var_00.var_13125["soundalias"] = "emt_pipe_air_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-952.353,3241.13,499.068),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_2";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-823.476,2542.71,318.328),(270,0,0));
var_00.var_13125["soundalias"] = "emt_pipe_air_lp_03";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-792.529,2624.52,331.929),(270,0,0));
var_00.var_13125["soundalias"] = "emt_pipe_air_lp_03";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-793.09,2628.21,331.068),(270,0,0));
var_00.var_13125["soundalias"] = "emt_pipe_air_lp_04";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-1089.56,2594.93,386.324),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_2";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-821.011,2593.56,382.598),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_2";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-1090.49,2818.52,379.394),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_2";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-923.099,3131,459.836),(270,0,0));
var_00.var_13125["soundalias"] = "emt_pipe_air_lp_03";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-1132.68,3132.26,500.842),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_2";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-2207.45,4003.8,750.825),(270,0,0));
var_00.var_13125["soundalias"] = "emt_pipe_air_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-2159.12,4751.04,818.26),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_1";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-1962.48,4768.63,818.912),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_1";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-1479.44,4755.07,934.393),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_1";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-88.0078,446.167,779.915),(270,0,0));
var_00.var_13125["soundalias"] = "emt_sink_running_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((994.183,3168,317.349),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((335.184,3038.63,456.004),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_4";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((329.734,2469.59,454.649),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_4";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((805.729,2463.53,455.649),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_4";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((806.124,3033.28,446.649),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_4";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((569.753,2164.7,655.006),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_4";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((835.391,1825.77,657.006),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_4";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((305.801,1823.56,653.006),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_4";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((855.185,1922.51,572.482),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((830.859,1723.77,575.702),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((202.971,1917.23,550.425),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((798.113,893.849,742.825),(270,0,0));
var_00.var_13125["soundalias"] = "emt_pipe_air_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((675.662,1069.87,750.825),(270,0,0));
var_00.var_13125["soundalias"] = "emt_pipe_air_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-154.303,1275.08,779.718),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-511.24,1439.5,1006.71),(270,0,0));
var_00.var_13125["soundalias"] = "emt_plastic_tarp_flap_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-190.71,1827.11,796.069),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fire_large_metal_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-451.68,2400.04,888.396),(270,0,0));
var_00.var_13125["soundalias"] = "emt_plastic_tarp_flap_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-2899.67,2515.99,910.065),(270,0,0));
var_00.var_13125["soundalias"] = "emt_tree_leaf_rustle_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-3189.58,2728.19,1095.6),(270,0,0));
var_00.var_13125["soundalias"] = "emt_tree_leaf_rustle_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-3151.61,2275.69,983.978),(270,0,0));
var_00.var_13125["soundalias"] = "emt_tree_leaf_rustle_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-2598.11,1955.67,1110.03),(270,0,0));
var_00.var_13125["soundalias"] = "emt_tree_leaf_rustle_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-2631.46,2165.9,1044),(270,0,0));
var_00.var_13125["soundalias"] = "emt_tree_leaf_rustle_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-2565.85,2587.3,905.119),(270,0,0));
var_00.var_13125["soundalias"] = "emt_tree_leaf_rustle_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-2990.66,1929.75,952.161),(270,0,0));
var_00.var_13125["soundalias"] = "emt_tree_leaf_rustle_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-2888.2,1571.71,1032.6),(270,0,0));
var_00.var_13125["soundalias"] = "emt_tree_leaf_rustle_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-2573.75,1655.81,1011.35),(270,0,0));
var_00.var_13125["soundalias"] = "emt_tree_leaf_rustle_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-2744.97,1148.82,1008.41),(270,0,0));
var_00.var_13125["soundalias"] = "emt_water_splash_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-2664.18,1228.55,1008.41),(270,0,0));
var_00.var_13125["soundalias"] = "emt_water_splash_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-2240.11,1270.15,1161.29),(270,0,0));
var_00.var_13125["soundalias"] = "emt_tree_leaf_rustle_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-3397.88,2373.89,1033.81),(270,0,0));
var_00.var_13125["soundalias"] = "emt_tree_leaf_rustle_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-816.227,2597.37,260.001),(270,0,0));
var_00.var_13125["soundalias"] = "emt_water_drip_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-962.892,2937.47,238.001),(270,0,0));
var_00.var_13125["soundalias"] = "emt_water_lap_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-2114.18,2434.79,349.662),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_3";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-1626.29,2391.8,296.543),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_3";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-1376.31,2145.89,298.973),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_3";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-575.891,2330.17,301.231),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_3";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-527.982,2899.57,362.172),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_3";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-128.248,2817.7,397.342),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_3";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-129.832,2805.26,260.001),(270,0,0));
var_00.var_13125["soundalias"] = "emt_water_drip_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-167.87,2839.98,260.001),(270,0,0));
var_00.var_13125["soundalias"] = "emt_water_drip_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-738.097,2813.69,260.001),(270,0,0));
var_00.var_13125["soundalias"] = "emt_water_drip_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-393.155,2005.53,743.377),(270,0,0));
var_00.var_13125["soundalias"] = "emt_pipe_air_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-986.863,3191.82,395.995),(270,0,0));
var_00.var_13125["soundalias"] = "emt_water_drip_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-1103.08,3160.23,515.996),(270,0,0));
var_00.var_13125["soundalias"] = "emt_pipe_air_lp_03";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((597.315,610.473,822.44),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fast_flag_flapping_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((167.656,2691.13,351.994),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((300.105,3106.19,349.994),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((1176.23,1171.15,825.994),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-834.154,791.546,1007.01),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-643.616,766.925,1013.01),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-1719.83,1073.72,1202),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-1837.55,758.264,1213),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-241.986,2730.62,811.09),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-3016.96,2392.94,318.999),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-3014.66,2739.1,308.09),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-3093.59,3025.87,272.999),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-2392.28,2375.41,315.999),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-2294.97,2303.01,275.154),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-2384.33,2654.52,313.999),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-2384.4,3147.9,263.999),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-2767.5,2263.19,181.996),(270,0,0));
var_00.var_13125["soundalias"] = "third_rail_left_water_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-2771.46,3383.65,181.996),(270,0,0));
var_00.var_13125["soundalias"] = "third_rail_right_water_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-2584.22,2282.86,285.587),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-2484.92,3538.91,559.005),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-2704.67,3869.51,558.005),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-2992.12,3210.62,421.995),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-1545.06,2311.48,168.976),(270,0,0));
var_00.var_13125["soundalias"] = "emt_rain_runoff_splashy_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-629.332,2869.99,260.001),(270,0,0));
var_00.var_13125["soundalias"] = "emt_rain_runoff_splashy_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-537.594,2828.86,321.001),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-517.386,2457.56,238.944),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-1663.79,2349.86,225.935),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-1692.22,2356.49,174.602),(270,0,0));
var_00.var_13125["soundalias"] = "emt_water_drip_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-2089.23,2395.99,250.655),(270,0,0));
var_00.var_13125["soundalias"] = "emt_water_drip_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-2974.13,3818.6,635.701),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_4";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-2571.03,3841.93,638.135),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_4";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-2454.54,2429.46,411.764),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_4";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-2656.92,3106.4,366.005),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_4";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-3009.31,2343.29,411.268),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_4";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-3011.64,2931.07,397.686),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_4";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-2995.71,3221.78,514.976),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_5";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((169.962,-207.984,1096.7),(270,0,0));
var_00.var_13125["soundalias"] = "emt_plastic_tarp_flap_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-114.957,2950.78,809.693),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-121.433,2327.9,802.996),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-2126.26,2910.28,1293.09),(270,0,0));
var_00.var_13125["soundalias"] = "emt_plastic_tarp_flap_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-1363.07,3474.21,1195.12),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-1254.96,4719.67,800.994),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-671.055,1745.48,170.004),(270,0,0));
var_00.var_13125["soundalias"] = "emt_water_lap_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-739.461,2019.68,170.004),(270,0,0));
var_00.var_13125["soundalias"] = "emt_water_lap_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-1042.78,1940.77,170.004),(270,0,0));
var_00.var_13125["soundalias"] = "emt_water_lap_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-967.736,1632.54,170.004),(270,0,0));
var_00.var_13125["soundalias"] = "emt_water_lap_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-782.472,1243.17,278.525),(270,0,0));
var_00.var_13125["soundalias"] = "emt_pipe_air_lp_03";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-303.354,1740.01,265.563),(270,0,0));
var_00.var_13125["soundalias"] = "emt_pipe_air_lp_03";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-782.974,2805.95,260.001),(270,0,0));
var_00.var_13125["soundalias"] = "emt_water_drip_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-1263.53,2201.81,178.003),(270,0,0));
var_00.var_13125["soundalias"] = "emt_rain_runoff_splashy_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-833.777,1272.58,178.003),(270,0,0));
var_00.var_13125["soundalias"] = "emt_water_drip_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-846.739,1288.97,178.003),(270,0,0));
var_00.var_13125["soundalias"] = "emt_water_drip_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-1429.1,1985.13,270.523),(270,0,0));
var_00.var_13125["soundalias"] = "emt_pipe_air_lp_03";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-1022.49,2305.13,182.709),(270,0,0));
var_00.var_13125["soundalias"] = "emt_water_drip_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-1244.09,1419.61,178.003),(270,0,0));
var_00.var_13125["soundalias"] = "emt_rain_runoff_splashy_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-710.72,1370.22,189.638),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fire_med_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-545.302,1485.11,185.942),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fire_med_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-3241,2722.77,264.305),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-2732.46,3475.73,519.457),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-106.772,1019.59,749.994),(270,0,0));
var_00.var_13125["soundalias"] = "emt_water_drip_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-1988.63,899.132,1106.04),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_3";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-871.786,863.941,1059.63),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_3";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-3487.04,1169.9,1014.7),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-2293.1,3152.58,795.122),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-1123.94,3894.02,656.961),(270,0,0));
var_00.var_13125["soundalias"] = "emt_pipe_air_lp_03";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((509.695,561.236,947.273),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_3";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-786.225,1903.06,891.999),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_3";
var_00 = scripts\common\createfx::func_49DD();
var_00 scripts\common\createfx::func_F4AD((1420,777.662,915.663),(270,0,0));
var_00.var_13125["delay_min"] = 4;
var_00.var_13125["delay_max"] = 9;
var_00.var_13125["soundalias"] = "emt_wood_creak_ster";
var_00 = scripts\common\createfx::func_49DD();
var_00 scripts\common\createfx::func_F4AD((1454.92,1128.4,931.999),(270,0,0));
var_00.var_13125["delay_min"] = 4;
var_00.var_13125["delay_max"] = 9;
var_00.var_13125["soundalias"] = "emt_wood_creak_ster";
var_00 = scripts\common\createfx::func_49DD();
var_00 scripts\common\createfx::func_F4AD((1743.5,1140.94,929.612),(270,0,0));
var_00.var_13125["delay_min"] = 4;
var_00.var_13125["delay_max"] = 9;
var_00.var_13125["soundalias"] = "emt_wood_creak_ster";
var_00 = scripts\common\createfx::func_49DD();
var_00 scripts\common\createfx::func_F4AD((1710.99,773.428,931.999),(270,0,0));
var_00.var_13125["delay_min"] = 4;
var_00.var_13125["delay_max"] = 9;
var_00.var_13125["soundalias"] = "emt_wood_creak_ster";
var_00 = scripts\common\createfx::func_49DD();
var_00 scripts\common\createfx::func_F4AD((-961.558,3700.84,607.513),(270,0,0));
var_00.var_13125["delay_min"] = 3;
var_00.var_13125["delay_max"] = 9;
var_00.var_13125["soundalias"] = "emt_med_rock_debris";
var_00 = scripts\common\createfx::func_49DD();
var_00 scripts\common\createfx::func_F4AD((-1029.44,3576.26,562.776),(270,0,0));
var_00.var_13125["delay_min"] = 3;
var_00.var_13125["delay_max"] = 9;
var_00.var_13125["soundalias"] = "emt_med_rock_debris";
var_00 = scripts\common\createfx::func_49DD();
var_00 scripts\common\createfx::func_F4AD((-1164.02,4009.89,708.555),(270,0,0));
var_00.var_13125["delay_min"] = 3;
var_00.var_13125["delay_max"] = 9;
var_00.var_13125["soundalias"] = "emt_med_rock_debris";
var_00 = scripts\common\createfx::func_49DD();
var_00 scripts\common\createfx::func_F4AD((-2512.18,4101.16,789.371),(270,0,0));
var_00.var_13125["delay_min"] = 3;
var_00.var_13125["delay_max"] = 9;
var_00.var_13125["soundalias"] = "emt_med_rock_debris";
var_00 = scripts\common\createfx::func_49DD();
var_00 scripts\common\createfx::func_F4AD((-2501.74,4301.43,826.196),(270,0,0));
var_00.var_13125["delay_min"] = 3;
var_00.var_13125["delay_max"] = 9;
var_00.var_13125["soundalias"] = "emt_med_rock_debris";
var_00 = scripts\common\createfx::func_49DD();
var_00 scripts\common\createfx::func_F4AD((-2491.33,4527.84,786.512),(270,0,0));
var_00.var_13125["delay_min"] = 3;
var_00.var_13125["delay_max"] = 9;
var_00.var_13125["soundalias"] = "emt_med_rock_debris";
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,595 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\maps\cp_disco\kung_fu_mode_crane.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 27
* Decompile Time: 1470 ms
* Timestamp: 10/27/2023 12:04:27 AM
*******************************************************************/
//Function Number: 1
setup_kung_fu_crane_powers()
{
crane_kill_fx();
scripts\common\utility::flag_wait("interactions_initialized");
scripts\cp\powers\coop_powers::func_D787("power_shuriken_crane",::scripts\cp\maps\cp_disco\kung_fu_mode_dragon::set_dragon_shuriken_power,::scripts\cp\maps\cp_disco\kung_fu_mode_dragon::unset_dragon_shuriken_power,::scripts\cp\maps\cp_disco\kung_fu_mode_dragon::use_dragon_shuriken,undefined,undefined,undefined);
init_valid_patch_nodes();
level.is_in_crane_box_func = ::is_in_basic_box;
setupinvalidcranevolumes();
init_crane_teleport_spots();
}
//Function Number: 2
crane_kill_fx()
{
level._effect["screen_blood"] = loadfx("vfx/iw7/levels/cp_disco/abilities/vfx_kf_crane_screen_blood.vfx");
}
//Function Number: 3
crane_super_use(param_00)
{
self.crane_super = 1;
self notify("super_fired");
self notify("put_shuriken_away");
self.kung_fu_shield = 1;
scripts\common\utility::allow_jump(0);
scripts\common\utility::func_1C53(0);
self method_80A4();
var_01 = 500;
if(self.chi_meter_amount - var_01 <= 0)
{
self.kung_fu_exit_delay = 1;
}
self playgestureviewmodel("ges_crane_super_air_short",undefined,1);
self playanimscriptevent("power_active_cp","gesture023");
thread play_crane_feet_fx();
var_02 = 500;
var_03 = self getplayerangles();
var_04 = anglestoforward(var_03);
var_05 = vectornormalize(var_04) * var_02;
var_05 = (var_05[0],var_05[1],0);
var_06 = create_move_path(var_05);
if(var_06)
{
wait(0.25);
self playanimscriptevent("power_active_cp","gesture026");
}
self playanimscriptevent("power_active_cp","gesture027");
self.kung_fu_exit_delay = 0;
self method_80D6();
self.kung_fu_shield = undefined;
scripts\common\utility::func_1C53(1);
scripts\common\utility::allow_jump(1);
wait(0.25);
self notify("crane_power_done");
self.crane_super = undefined;
scripts\cp\powers\coop_powers::func_D72E();
}
//Function Number: 4
stay_in_kung_fu_till_gesture_done(param_00)
{
self endon("disconnect");
var_01 = 500;
if(self.chi_meter_amount - var_01 <= 0)
{
self.kung_fu_exit_delay = 1;
}
var_02 = self method_8443(param_00);
wait(var_02);
self.kung_fu_exit_delay = 0;
}
//Function Number: 5
play_crane_feet_fx()
{
self setscriptablepartstate("kung_fu_super_fx","crane");
wait(2);
self setscriptablepartstate("kung_fu_super_fx","off");
}
//Function Number: 6
crane_super_pose()
{
self endon("disconnect");
self.is_slide_sfx_playing = 0;
self.is_slide_land_sfx_playing = 0;
while(self isjumping())
{
wait(0.05);
}
scripts\common\utility::allow_weapon(0);
scripts\common\utility::allow_jump(0);
self limitedmovement(1);
self allowprone(0);
self allowcrouch(0);
scripts\cp\_utility::allow_player_teleport(0,"slide");
self.ability_invulnerable = 1;
self.disable_consumables = 1;
self.ability_invulnerable = undefined;
wait(1.5);
self notify("offslide");
self.is_slide_sfx_playing = 0;
if(self.is_slide_land_sfx_playing == 0)
{
self.is_slide_land_sfx_playing = 1;
}
self unlink();
self limitedmovement(0);
self.disable_consumables = undefined;
scripts\common\utility::allow_jump(1);
scripts\common\utility::allow_weapon(1);
self allowprone(1);
self allowcrouch(1);
self allowstand(1);
self setstance("stand");
if(!scripts\cp\_utility::isteleportenabled())
{
scripts\cp\_utility::allow_player_teleport(1,"slide");
}
self.onslide = undefined;
self notify("can_teleport");
}
//Function Number: 7
slide_anim()
{
self endon("last_stand");
self endon("death");
self endon("disconnect");
self endon("offslide");
self endon("stopslideanim");
var_00 = 0;
while(scripts\common\utility::istrue(self.onslide))
{
if(self isgestureplaying())
{
wait(0.1);
continue;
}
if(!var_00)
{
self playanimscriptevent("power_active_cp","gesture012");
wait(0.1);
var_00 = 1;
}
self playanimscriptevent("power_active_cp","gesture020");
wait(0.1);
}
}
//Function Number: 8
move_in_line()
{
var_00 = 0.1405408;
var_01 = 1300;
var_02 = getclosestpointonnavmesh(self.origin);
var_03 = anglestoforward(self getplayerangles());
var_04 = getclosestpointonnavmesh(var_02 + var_03);
var_05 = vectornormalize(var_04 - var_02);
var_05 = vectornormalize(var_05 + (0,0,var_00));
self setvelocity(var_05 * var_01);
thread kill_near_me();
wait(2.5);
self notify("crane_power_done");
self.crane_super = undefined;
thread check_invalid_landing_place_and_teleport(self);
}
//Function Number: 9
create_move_path(param_00)
{
var_01 = self geteye();
var_02 = self.origin + (0,0,60);
var_03 = self getplayerangles();
var_04 = anglestoforward(var_03);
var_04 = (var_04[0],var_04[1],0);
var_04 = vectornormalize(var_04) * 1000 + var_01;
var_05 = level.players;
var_06 = drop_points_on_path(var_02,var_04,10);
if(var_06.size < 1)
{
return 0;
}
var_07 = spawn("script_origin",self.origin + (0,0,30));
var_07.angles = self.angles;
self playerlinkto(var_07,undefined,0,10,10,10,10,1);
thread kill_near_me();
var_07 move_along_point_path(var_06,0.5);
self unlink();
scripts\common\utility::func_136F7();
thread final_location_check_loop();
self setvelocity(param_00);
wait(0.25);
return 1;
}
//Function Number: 10
drop_points_on_path(param_00,param_01,param_02)
{
var_03 = distance(param_00,param_01);
var_04 = vectornormalize(param_01 - param_00);
var_05 = var_03 / param_02;
var_06 = level.players;
var_07 = [];
for(var_08 = 0;var_08 < param_02;var_08++)
{
var_09 = 0;
if(var_07.size > 0)
{
param_00 = var_07[var_07.size - 1] + (0,0,30);
}
var_0A = param_00 + var_05 * var_04;
var_0A = scripts\common\utility::func_5D14(var_0A,30,-5000);
if(!navisstraightlinereachable(param_00,var_0A))
{
var_0B = getclosestpointonnavmesh(var_0A);
if(distancesquared(var_0B,var_0A) < 10000)
{
var_0A = var_0B;
}
}
var_0A = var_0A + (0,0,10);
if(!is_point_in_valid_place(var_0A,self))
{
var_09 = 1;
}
if(var_07.size > 0)
{
var_0C = var_0A[2];
var_0D = var_07[var_07.size - 1][2];
if(var_0C > var_0D + 100)
{
var_09 = 1;
}
var_0E = var_0D - var_0C;
if(var_0E > 1000)
{
var_09 = 1;
}
else if(var_0E > 100)
{
var_0A = (var_0A[0],var_0A[1],var_0C + var_0D / 2);
}
}
if(!var_09)
{
var_07[var_07.size] = var_0A;
}
scripts\common\utility::func_136F7();
}
return var_07;
}
//Function Number: 11
setupinvalidcranevolumes()
{
level.invalidcranevolumes = [];
level.invalidcranevolumes[level.invalidcranevolumes.size] = [(488,704,950),(560,1240,1206)];
level.invalidcranevolumes[level.invalidcranevolumes.size] = [(-1512,3664,1100),(-768,3832,1288)];
level.invalidcranevolumes[level.invalidcranevolumes.size] = [(-2048,880,1100),(-1920,912,1170)];
level.invalidcranevolumes[level.invalidcranevolumes.size] = [(-1328,2592,872),(-1408,2480,950)];
level.invalidcranevolumes[level.invalidcranevolumes.size] = [(-1472,2592,872),(-1536,2480,950)];
level.invalidcranevolumes[level.invalidcranevolumes.size] = [(60,1236,800),(138,1266,950)];
level.invalidcranevolumes[level.invalidcranevolumes.size] = [(488,460,942),(520,730,1020)];
level.invalidcranevolumes[level.invalidcranevolumes.size] = [(-278,1265,300),(-1510,1819,420)];
level.invalidcranevolumes[level.invalidcranevolumes.size] = [(-1468,1749,300),(-250,2423,420)];
level.invalidcranevolumes[level.invalidcranevolumes.size] = [(271,2341,450),(207,2304,350)];
level.invalidcranevolumes[level.invalidcranevolumes.size] = [(-1440,3968,1032),(-1040,4272,1112)];
}
//Function Number: 12
is_point_in_valid_place(param_00,param_01)
{
if(isdefined(level.var_164B))
{
if(!self [[ level.var_164B ]](param_00))
{
if(!is_in_valid_patch_zone(param_00))
{
return 0;
}
}
}
if(!scripts\cp\_weapon::func_9E54(param_00,level.var_9B0B,param_01))
{
return 0;
}
if(isdefined(level.invalidcranevolumes))
{
if(isdefined(level.is_in_crane_box_func))
{
foreach(var_03 in level.invalidcranevolumes)
{
if([[ level.is_in_crane_box_func ]](var_03[0],var_03[1],param_00))
{
return 0;
}
}
}
}
if(isdefined(level.invalidtranspondervolumes))
{
if(isdefined(level.is_in_box_func))
{
foreach(var_03 in level.invalidtranspondervolumes)
{
if([[ level.is_in_box_func ]](var_03[0],var_03[1],var_03[2],var_03[3],param_00))
{
return 0;
}
}
}
}
if(positionwouldtelefrag(param_00))
{
return 0;
}
return 1;
}
//Function Number: 13
final_location_check_loop()
{
self endon("death");
var_00 = 20;
for(var_01 = 0;var_01 < var_00;var_01++)
{
final_location_check();
scripts\common\utility::func_136F7();
}
}
//Function Number: 14
final_location_check()
{
var_00 = self.origin;
if(isdefined(level.invalidcranevolumes))
{
if(isdefined(level.is_in_crane_box_func))
{
foreach(var_02 in level.invalidcranevolumes)
{
if([[ level.is_in_crane_box_func ]](var_02[0],var_02[1],var_00))
{
var_03 = find_closest_crane_teleport(var_00);
self dontinterpolate();
self setorigin(var_03);
scripts\common\utility::func_136F7();
}
}
}
}
}
//Function Number: 15
init_crane_teleport_spots()
{
level.crane_teleport_spots = [];
level.crane_teleport_spots[level.crane_teleport_spots.size] = (-1232,3773,953);
level.crane_teleport_spots[level.crane_teleport_spots.size] = (605,796,918);
level.crane_teleport_spots[level.crane_teleport_spots.size] = (-2000,944,1110);
level.crane_teleport_spots[level.crane_teleport_spots.size] = (-1408,2544,872);
level.crane_teleport_spots[level.crane_teleport_spots.size] = (-1456,2544,872);
level.crane_teleport_spots[level.crane_teleport_spots.size] = (100,1282,850);
level.crane_teleport_spots[level.crane_teleport_spots.size] = (526,684,942);
level.crane_teleport_spots[level.crane_teleport_spots.size] = (-599,2263,356);
level.crane_teleport_spots[level.crane_teleport_spots.size] = (-1318,2077,356);
level.crane_teleport_spots[level.crane_teleport_spots.size] = (-845,1348,356);
level.crane_teleport_spots[level.crane_teleport_spots.size] = (-359,1758,356);
level.crane_teleport_spots[level.crane_teleport_spots.size] = (236,2373,400);
level.crane_teleport_spots[level.crane_teleport_spots.size] = (-1274,3933,1061);
}
//Function Number: 16
find_closest_crane_teleport(param_00)
{
if(isdefined(level.crane_teleport_spots))
{
var_01 = get_closest_vector(param_00,level.crane_teleport_spots);
return var_01;
}
}
//Function Number: 17
get_closest_vector(param_00,param_01)
{
var_02 = undefined;
var_03 = 100000;
foreach(var_05 in param_01)
{
var_06 = distance(var_05,param_00);
if(var_06 >= var_03)
{
continue;
}
var_03 = var_06;
var_02 = var_05;
}
return var_02;
}
//Function Number: 18
init_valid_patch_nodes()
{
level.valid_patch_nodes = [];
create_valid_patch_node((913.9,2246.6,532.5),150);
create_valid_patch_node((225.9,2246.6,532.5),150);
create_valid_patch_node((1105.9,1814.6,612.5),150);
create_valid_patch_node((544,320,952),100);
}
//Function Number: 19
create_valid_patch_node(param_00,param_01)
{
var_02 = spawnstruct();
var_02.origin = param_00;
var_02.var_56E8 = param_01 * param_01;
level.valid_patch_nodes[level.valid_patch_nodes.size] = var_02;
}
//Function Number: 20
is_in_basic_box(param_00,param_01,param_02)
{
if(!isdefined(param_02))
{
if(isplayer(self) || isagent(self))
{
param_02 = self.origin;
}
else
{
return 0;
}
}
for(var_03 = 0;var_03 < 3;var_03++)
{
if(!(param_02[var_03] > param_00[var_03] && param_02[var_03] < param_01[var_03]) || param_02[var_03] > param_01[var_03] && param_02[var_03] < param_00[var_03])
{
return 0;
}
}
return 1;
}
//Function Number: 21
is_in_valid_patch_zone(param_00)
{
var_01 = 0;
foreach(var_03 in level.valid_patch_nodes)
{
if(distancesquared(param_00,var_03.origin) < var_03.var_56E8)
{
var_01 = 1;
}
}
return var_01;
}
//Function Number: 22
move_along_point_path(param_00,param_01)
{
var_02 = param_01 / param_00.size;
for(var_03 = 0;var_03 < param_00.size - 1;var_03++)
{
var_04 = param_00[var_03];
var_05 = param_00[var_03 + 1];
func_BC94(var_04,var_05,var_02);
}
}
//Function Number: 23
func_BC94(param_00,param_01,param_02)
{
var_03 = param_02 / 0.05;
for(var_04 = 0;var_04 < var_03;var_04++)
{
var_05 = var_04 / var_03;
var_06 = vectorlerp(param_00,param_01,var_05);
self.origin = var_06;
scripts\common\utility::func_136F7();
}
}
//Function Number: 24
check_invalid_landing_place_and_teleport(param_00)
{
param_00 notify("crane_invalid_landing_check");
param_00 endon("crane_invalid_landing_check");
param_00 endon("disconnect");
var_01 = get_teleport_spot_n_landing_z_coordinate(param_00);
if(isdefined(var_01.landing_z_coordinate))
{
while(param_00.origin[2] > var_01.landing_z_coordinate)
{
scripts\common\utility::func_136F7();
}
}
if(isdefined(var_01.teleport_spot))
{
kill_nearby_zombies(var_01.teleport_spot,param_00);
param_00 setorigin(var_01.teleport_spot);
}
}
//Function Number: 25
kill_nearby_zombies(param_00,param_01)
{
var_02 = 625;
foreach(var_04 in level.spawned_enemies)
{
if(distancesquared(var_04.origin,param_00) < var_02)
{
var_04.nocorpse = 1;
var_04.full_gib = 1;
var_04 dodamage(var_04.maxhealth,param_00,param_01,undefined,"MOD_EXPLOSIVE");
}
}
}
//Function Number: 26
get_teleport_spot_n_landing_z_coordinate(param_00)
{
var_01 = spawnstruct();
var_01.teleport_spot = undefined;
var_01.landing_z_coordinate = undefined;
if(!scripts\common\utility::flag("rooftop_walkway_open"))
{
var_01.landing_z_coordinate = 990;
if(param_00.origin[0] > -567)
{
var_01.teleport_spot = getclosestpointonnavmesh((-597,param_00.origin[1],param_00.origin[2]));
}
}
return var_01;
}
//Function Number: 27
kill_near_me()
{
self endon("crane_power_done");
var_00 = 150;
var_01 = var_00 * var_00;
for(;;)
{
foreach(var_03 in level.spawned_enemies)
{
if(distancesquared(var_03.origin,self.origin) < var_01)
{
playfx(level._effect["nunchuck_pap1"],var_03.origin + (0,0,30));
var_03 dodamage(var_03.maxhealth,self.origin,self,undefined,"MOD_EXPLOSIVE");
}
}
scripts\common\utility::func_136F7();
}
}

View File

@ -0,0 +1,650 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\maps\cp_disco\kung_fu_mode_dragon.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 31
* Decompile Time: 1596 ms
* Timestamp: 10/27/2023 12:04:29 AM
*******************************************************************/
//Function Number: 1
setup_kung_fu_dragon_powers()
{
scripts\common\utility::flag_wait("interactions_initialized");
scripts\cp\powers\coop_powers::func_D787("power_shuriken_dragon",::set_dragon_shuriken_power,::unset_dragon_shuriken_power,::use_dragon_shuriken,undefined,undefined,undefined);
level._effect["dragon_symbol"] = loadfx("vfx/iw7/levels/cp_disco/vfx_kungfu_seal_dragon_ground.vfx");
}
//Function Number: 2
set_dragon_shuriken_power(param_00)
{
self notify("stop_shuriken_watcher");
self.shuriken_charged = undefined;
thread dragon_shuriken_throw_listener(param_00);
thread dragon_shuriken_pullback_listener(param_00);
}
//Function Number: 3
get_shuriken_weapon_proj()
{
var_00 = self.kung_fu_progression.active_discipline;
switch(var_00)
{
case "dragon":
return "iw7_shuriken_dragon_proj";
case "tiger":
return "iw7_shuriken_tiger_proj";
case "snake":
return "iw7_shuriken_snake_proj";
case "crane":
return "iw7_shuriken_crane_proj";
default:
break;
}
}
//Function Number: 4
get_shuriken_grenade_weapon()
{
var_00 = self.kung_fu_progression.active_discipline;
switch(var_00)
{
case "dragon":
return "iw7_shuriken_zm_dragon";
case "tiger":
return "iw7_shuriken_zm_tiger";
case "snake":
return "iw7_shuriken_zm_snake";
case "crane":
return "iw7_shuriken_zm_crane";
default:
break;
}
}
//Function Number: 5
dragon_shuriken_throw_listener(param_00)
{
self endon("disconnect");
self endon("last_stand");
self endon("stop_shuriken_watcher");
var_01 = get_shuriken_weapon_proj();
if(!isdefined(var_01))
{
return;
}
var_02 = get_shuriken_grenade_weapon();
if(!isdefined(var_02))
{
return;
}
for(;;)
{
self waittill("grenade_fire",var_03,var_04,var_05);
if(var_04 != var_02)
{
continue;
}
self setscriptablepartstate("shuriken","inactive");
while(isdefined(var_03) && distance2dsquared(var_03.origin,self.origin) <= 8100)
{
wait(0.05);
}
if(!isdefined(var_03))
{
thread scripts\cp\zombies\zombies_chi_meter::chi_meter_kill_decrement(scripts\cp\maps\cp_disco\kung_fu_mode::getrbabilitycost());
continue;
}
scripts\cp\powers\coop_powers::func_D728();
if(scripts\common\utility::istrue(self.shuriken_charged))
{
self.shuriken_charged = undefined;
throw_charged_shuriken(param_00,var_03,var_01);
continue;
}
var_06 = sortbydistance(level.spawned_enemies,var_03.origin);
var_07 = [];
var_08 = var_03.origin;
var_09 = self getplayerangles();
var_0A = anglestoforward(var_03.angles);
var_0B = vectornormalize(var_0A) * 100 + var_08;
var_0C = 10;
var_0D = var_0C * -1;
var_0D = var_0D + var_0C;
var_0E = var_08 + anglestoforward(var_09 + (var_0D / 10,var_0D,0)) * 45;
magicbullet(var_01,var_08,var_0E,self);
var_0D = var_0D + var_0C;
var_03 delete();
thread scripts\cp\zombies\zombies_chi_meter::chi_meter_kill_decrement(scripts\cp\maps\cp_disco\kung_fu_mode::getrbabilitycost());
scripts\cp\powers\coop_powers::func_D72E();
}
}
//Function Number: 6
dragon_shuriken_pullback_listener(param_00)
{
self endon("watch_for_kung_fu_timeout");
self endon("disconnect");
self endon("last_stand");
self endon("stop_shuriken_watcher");
var_01 = get_shuriken_grenade_weapon();
if(!isdefined(var_01))
{
return;
}
for(;;)
{
self waittill("grenade_pullback",var_02);
if(var_02 != var_01)
{
return;
}
thread dragon_shuriken_switch_listener();
thread charge_shuriken(2);
}
}
//Function Number: 7
charge_shuriken(param_00)
{
self endon("grenade_fire");
self endon("offhand_end");
self endon("put_shuriken_away");
wait(param_00);
self.shuriken_charged = 1;
set_charged_scriptable_state();
}
//Function Number: 8
dragon_shuriken_switch_listener()
{
self endon("watch_for_kung_fu_timeout");
self endon("disconnect");
self endon("last_stand");
self endon("stop_shuriken_watcher");
self endon("grenade_fire");
self notifyonplayercommand("put_shuriken_away","+weapnext");
self waittill("put_shuriken_away",var_00);
self.shuriken_charged = undefined;
self setscriptablepartstate("shuriken","inactive");
}
//Function Number: 9
set_charged_scriptable_state()
{
var_00 = self.kung_fu_progression.active_discipline;
switch(var_00)
{
case "dragon":
self setscriptablepartstate("shuriken","dragon_active");
break;
case "tiger":
self setscriptablepartstate("shuriken","tiger_active");
break;
case "snake":
self setscriptablepartstate("shuriken","snake_active");
break;
case "crane":
self setscriptablepartstate("shuriken","crane_active");
break;
default:
break;
}
}
//Function Number: 10
unset_dragon_shuriken_power(param_00)
{
}
//Function Number: 11
use_dragon_shuriken(param_00)
{
}
//Function Number: 12
throw_charged_shuriken(param_00,param_01,param_02)
{
var_03 = sortbydistance(level.spawned_enemies,param_01.origin);
var_04 = [];
var_05 = param_01.origin;
if(!isdefined(param_02))
{
param_02 = "iw7_shuriken_dragon_proj";
}
thread scripts\common\utility::play_sound_in_space("kungfu_shuriken_split",var_05);
foreach(var_07 in var_03)
{
if(scripts\common\utility::func_13D90(self.origin,self getplayerangles(),var_07.origin,0.9))
{
var_04[var_04.size] = var_07;
}
}
if(var_04.size == 0)
{
var_09 = self getplayerangles();
var_0A = anglestoforward(param_01.angles);
var_0B = vectornormalize(var_0A) * 100 + var_05;
var_0C = 10;
var_0D = var_0C * -1;
for(var_0E = 0;var_0E < 3;var_0E++)
{
var_0F = var_05 + anglestoforward(var_09 + (var_0D / 10,var_0D,0)) * 45;
magicbullet(param_02,var_05,var_0F,self);
var_0D = var_0D + var_0C;
}
}
else
{
var_0E = 0;
foreach(var_07 in var_04)
{
if(var_0E == 3)
{
break;
}
else
{
var_0E++;
}
magicbullet(param_02,var_05,var_07 gettagorigin("j_mainroot") + (0,0,10),self);
}
}
param_01 delete();
scripts\cp\powers\coop_powers::func_D72E();
thread scripts\cp\zombies\zombies_chi_meter::chi_meter_kill_decrement(scripts\cp\maps\cp_disco\kung_fu_mode::getrbabilitycost());
}
//Function Number: 13
use_dragon_shuriken_power(param_00)
{
}
//Function Number: 14
dragon_super_use(param_00)
{
self.dragon_super = 1;
var_01 = scripts\cp\_utility::getvalidtakeweapon();
var_02 = "dragon";
if(isdefined(self.kung_fu_progression.active_discipline))
{
var_01 = level.kung_fu_upgrades[var_02].melee_weapon;
}
scripts\cp\powers\coop_powers::func_D728();
scripts\common\utility::func_1C53(0);
self playgestureviewmodel("ges_dragon_melee_super",undefined,1);
thread stay_in_kung_fu_till_gesture_done("ges_dragon_melee_super");
thread play_dragon_hand_fx();
wait(0.5);
var_03 = self.origin + (0,0,60);
var_04 = self getplayerangles();
var_05 = anglestoforward(var_04);
var_06 = vectornormalize(var_05) * 100 + self.origin;
var_05 = vectornormalize(var_05) * 3000 + var_03;
var_07 = spawn("script_model",var_06);
var_07.angles = var_04 + (0,-90,0);
var_07 setmodel("tag_origin_dragon_super");
var_07.var_222 = self;
var_07.spiral_center = self.origin;
var_07 thread move_dragon(var_05,var_02,var_01);
var_07 thread dragon_super_damage(self,15,var_01);
}
//Function Number: 15
stay_in_kung_fu_till_gesture_done(param_00)
{
self endon("disconnect");
self.kung_fu_shield = 1;
var_01 = 500;
if(self.chi_meter_amount - var_01 <= 0)
{
self.kung_fu_exit_delay = 1;
}
var_02 = self method_8443(param_00);
wait(var_02);
scripts\common\utility::func_1C53(1);
self.dragon_super = undefined;
self.kung_fu_exit_delay = 0;
self.kung_fu_shield = undefined;
scripts\cp\powers\coop_powers::func_D72E();
}
//Function Number: 16
play_dragon_hand_fx()
{
self setscriptablepartstate("kung_fu_super_fx","dragon");
wait(2);
self setscriptablepartstate("kung_fu_super_fx","off");
}
//Function Number: 17
move_dragon(param_00,param_01,param_02)
{
self moveto(self.origin + (0,0,50),0.25);
self waittill("movedone");
thread dragon_time_out(10);
follow_dragon_path(param_01,param_02);
thread scripts\common\utility::play_sound_in_space("kungfu_dragon_proj_off",self.origin);
self setscriptablepartstate("tag","off",1);
self delete();
}
//Function Number: 18
move_dragon_forward()
{
self endon("dragon_time_out");
var_00 = 100;
for(;;)
{
var_01 = anglestoforward(self.angles);
var_01 = vectornormalize(var_01);
var_01 = var_01 * var_00;
self moveto(self.origin + var_01,0.1);
self waittill("movedone");
}
}
//Function Number: 19
aim_dragon()
{
self endon("dragon_time_out");
for(;;)
{
var_00 = scripts\cp\_agent_utils::func_7DB0("axis");
if(var_00.size > 0)
{
var_01 = scripts\common\utility::func_782F(self.origin,var_00,undefined,24,500,1);
var_02 = anglestoforward(self.angles);
while(isalive(var_01[0]))
{
var_03 = var_01[0] method_8428(self.origin,var_01[0].origin);
level thread debug_show_path(var_03);
var_04 = var_01[0].origin + (0,0,60) - self.origin + (0,0,60);
var_05 = vectortoangles(var_04);
self rotateto(var_05,0.1);
wait(0.1);
}
}
wait(0.1);
}
}
//Function Number: 20
follow_dragon_path(param_00,param_01)
{
self endon("dragon_time_out");
var_02 = -25536;
for(;;)
{
var_03 = scripts\cp\_agent_utils::func_7DB0("axis");
var_04 = [];
foreach(var_06 in var_03)
{
if(isdefined(var_06.agent_type) && var_06.agent_type != "ratking")
{
var_04 = scripts\common\utility::array_add(var_04,var_06);
}
}
var_03 = var_04;
var_03 = [];
if(var_03.size > 0)
{
var_08 = scripts\common\utility::func_782F(self.origin,var_03,undefined,24,1500,1);
if(var_08.size > 0)
{
var_09 = anglestoforward(self.angles);
var_0A = var_08[0];
self.var_10C = var_0A;
clean_up_spiral();
while(isalive(var_0A))
{
var_0B = distancesquared(self.origin,var_0A.origin);
if(var_0B < var_02)
{
var_0C = var_0A.origin + (0,0,60) - self.origin + (0,0,60);
var_0D = vectortoangles(var_0C);
self rotateto(var_0D,0.1);
var_0E = length(var_0C);
var_0C = vectornormalize(var_0C) * var_0E + 100;
self moveto(self.origin + var_0C + (0,0,60),0.25);
self waittill("movedone");
if(isalive(var_0A))
{
dragon_kill_guy(var_0A,self.var_222,param_01);
}
continue;
}
var_0F = getclosestpointonnavmesh(self.origin);
var_10 = var_0A method_8428(var_0F,var_0A.origin,1,1);
var_10 = [];
move_along_path_new(var_10,var_0A);
wait(0.1);
}
}
else
{
thread idle_spiral();
}
}
else
{
thread idle_spiral();
}
wait(0.1);
}
}
//Function Number: 21
clean_up_spiral()
{
self.on_spiral_path = 0;
if(isdefined(self.spin_org))
{
self.spin_org delete();
}
self notify("found_enemy");
}
//Function Number: 22
idle_spiral()
{
self endon("found_enemy");
self endon("death");
wait(0.25);
if(!scripts\common\utility::istrue(self.on_spiral_path))
{
move_along_spiral_path();
}
}
//Function Number: 23
move_along_spiral_path(param_00)
{
self endon("found_enemy");
self endon("death");
self endon("got_new_path");
spin_linked_ent();
}
//Function Number: 24
spin_linked_ent()
{
self endon("found_enemy");
self endon("death");
var_00 = self.spiral_center;
self.on_spiral_path = 1;
self.spin_org = spawn("script_origin",var_00);
self linkto(self.spin_org);
self.spin_org rotateyaw(-100000,300);
for(;;)
{
self.spin_org movez(75,2);
self.spin_org waittill("movedone");
self.spin_org movez(-75,2);
self.spin_org waittill("movedone");
}
}
//Function Number: 25
move_along_path_new(param_00,param_01)
{
self endon("death");
self endon("got_new_path");
var_02 = 100;
var_03 = var_02 * var_02;
if(param_00.size > 0)
{
var_04 = 0;
var_05 = param_00[var_04];
var_06 = 0;
while(distancesquared(self.origin,var_05) < var_03)
{
if(isdefined(param_00[var_04 + 1]))
{
var_04++;
var_05 = param_00[var_04];
continue;
}
var_06 = 1;
break;
}
if(!var_06)
{
thread turn_towards_target(var_05);
}
}
else if(isalive(param_01))
{
var_05 = param_01.origin + (0,0,60);
thread turn_towards_target(var_05);
}
thread func_BC29();
}
//Function Number: 26
func_BC29()
{
var_00 = 500;
var_01 = anglestoforward(self.angles);
var_01 = vectornormalize(var_01) * var_00;
var_02 = self.origin + var_01;
var_02 = getclosestpointonnavmesh(var_02);
self moveto(var_02 + (0,0,60),1);
}
//Function Number: 27
turn_towards_target(param_00)
{
var_01 = 360;
var_02 = param_00 - self.origin + (0,0,60);
var_03 = vectortoangles(var_02);
var_04 = anglesdelta(self.angles,var_03) * 2;
if(var_04 == 0)
{
return;
}
var_05 = var_04 / var_01;
var_05 = abs(var_05);
self rotateto(var_03,var_05);
var_06 = anglestoforward(var_03);
var_06 = vectornormalize(var_06) * 100;
var_07 = self.origin + var_06;
}
//Function Number: 28
debug_show_path(param_00)
{
for(var_01 = 0;var_01 < param_00.size;var_01++)
{
if(isdefined(param_00[var_01 + 1]))
{
}
}
}
//Function Number: 29
dragon_time_out(param_00)
{
wait(param_00);
self notify("dragon_time_out");
}
//Function Number: 30
dragon_super_damage(param_00,param_01,param_02)
{
self endon("death");
self notify("dragon_time_out");
var_03 = 0.1;
var_04 = 22500;
while(!isdefined(self.spin_org))
{
wait(0.1);
}
var_05 = self.spin_org;
while(param_01 > 0 && isdefined(var_05))
{
var_06 = level.spawned_enemies;
foreach(var_08 in var_06)
{
if(distancesquared(self.spiral_center,var_08.origin) < var_04)
{
dragon_kill_guy(var_08,param_00,param_02);
}
}
param_01 = param_01 - var_03;
wait(var_03);
}
}
//Function Number: 31
dragon_kill_guy(param_00,param_01,param_02)
{
param_00.nocorpse = 1;
param_00.full_gib = 1;
if(isdefined(param_01))
{
param_00 dodamage(param_00.health + 1000,param_00.origin,param_01,param_01,"MOD_UNKNOWN",param_02);
return;
}
param_00 dodamage(param_00.health + 1000,param_00.origin,level.players[0],level.players[0],"MOD_UNKNOWN",param_02);
}

View File

@ -0,0 +1,377 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\maps\cp_disco\kung_fu_mode_snake.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 17
* Decompile Time: 1163 ms
* Timestamp: 10/27/2023 12:04:31 AM
*******************************************************************/
//Function Number: 1
snake_kung_fu_init()
{
level._effect["skeleton_summon_portal"] = loadfx("vfx/iw7/levels/cp_rave/superslasher/vfx_rave_superslasher_spawn_portal.vfx");
scripts\common\utility::flag_wait("interactions_initialized");
scripts\cp\powers\coop_powers::func_D787("power_shuriken_snake",::scripts\cp\maps\cp_disco\kung_fu_mode_dragon::set_dragon_shuriken_power,::scripts\cp\maps\cp_disco\kung_fu_mode_dragon::unset_dragon_shuriken_power,::scripts\cp\maps\cp_disco\kung_fu_mode_dragon::use_dragon_shuriken,undefined,undefined,undefined);
scripts\cp\powers\coop_powers::func_D787("power_summon_pet_snake",::scripts\cp\maps\cp_disco\kung_fu_mode::func_2B53,::scripts\cp\maps\cp_disco\kung_fu_mode::func_2B53,::summon_skeleton_pet,undefined,"snake_chi_power",undefined);
}
//Function Number: 2
summon_skeleton_pet()
{
self endon("watch_for_kung_fu_timeout");
self endon("disconnect");
self endon("last_stand");
wait(0.1);
if(scripts\common\utility::istrue(self.snake_super))
{
return;
}
scripts\cp\powers\coop_powers::func_D728();
var_00 = 250;
if(self.chi_meter_amount - var_00 <= 0)
{
self.kung_fu_exit_delay = 1;
}
scripts\cp\zombies\zombies_spawning::func_93EB(1);
self playlocalsound("chi_snake_skeleton_summon");
wait(1);
if(isdefined(self.pet_skeleton))
{
self.pet_skeleton notify("owner_spawned_new_guy");
self.pet_skeleton dodamage(self.pet_skeleton.health + 100,self.pet_skeleton.origin);
wait(0.1);
self.pet_skeleton = undefined;
}
self.pet_skeleton = skeleton_spawner();
if(isdefined(self.pet_skeleton))
{
scripts\cp\zombies\zombies_chi_meter::chi_meter_kill_decrement(250);
}
else
{
scripts\cp\zombies\zombies_spawning::func_4FB8(1);
}
self.kung_fu_exit_delay = 0;
scripts\cp\powers\coop_powers::func_D72E();
self notify("snake_chi_power",1);
}
//Function Number: 3
skeleton_spawner()
{
var_00 = determine_skeleton_spawn_point(self.origin);
var_01 = spawn_skeleton_solo(var_00);
if(isdefined(var_01))
{
var_01 thread skeleton_arrival_cowbell(var_00);
var_01 thread set_skeleton_attributes(self);
}
return var_01;
}
//Function Number: 4
spawn_skeleton_solo(param_00)
{
param_00 = scripts\common\utility::func_5D14(param_00,30,-100);
var_01 = spawnstruct();
var_01.origin = param_00;
var_01.var_EE79 = "ground_spawn_no_boards";
var_01.var_ECF5 = "spawn_ground";
var_02 = 4;
var_03 = 0.3;
for(var_04 = 0;var_04 < var_02;var_04++)
{
var_05 = var_01 scripts\cp\zombies\zombies_spawning::func_1081B("skeleton",1);
if(isdefined(var_05))
{
level thread skeleton_spawn_fx_pillar(param_00,2);
wait(var_03);
return var_05;
}
wait(var_03);
}
return undefined;
}
//Function Number: 5
skeleton_spawn_fx_pillar(param_00,param_01)
{
var_02 = spawn("script_model",param_00);
var_02 setmodel("tag_origin_snake_chi");
wait(param_01);
var_02 delete();
}
//Function Number: 6
skeleton_arrival_cowbell(param_00)
{
var_01 = (0,0,-11);
var_02 = spawnfx(level._effect["skeleton_summon_portal"],param_00 + var_01,(0,0,1),(1,0,0));
thread scripts\common\utility::play_sound_in_space("chi_snake_skeleton_spawn",var_02.origin);
triggerfx(var_02);
self playsound("chi_snake_skeleton_spawn_foley");
scripts\common\utility::waittill_any_3("death","intro_vignette_done");
var_02 delete();
}
//Function Number: 7
set_skeleton_attributes(param_00)
{
level endon("game_ended");
self endon("death");
self.playerowner = param_00;
self.var_222 = param_00;
var_01 = self;
var_01.team = "allies";
var_01.var_1F5 = "sprint";
var_01.var_9CA2 = 1;
var_01.var_9CEF = 1;
var_01.maxhealth = 900;
var_01.health = 900;
var_01.allowpain = 0;
var_01 notify("turned");
var_01 thread zombie_movement_update(self);
var_01.var_B57A = int(scripts\cp\zombies\zombies_spawning::func_3728("generic_zombie") * 1.5);
level.spawned_enemies = scripts\common\utility::func_22A9(level.spawned_enemies,var_01);
level.var_4B95--;
var_01 thread func_A626(30);
var_01 thread func_E0B2();
var_01 thread watch_zombie_collision();
if(isdefined(level.var_1299F))
{
level.var_1299F = scripts\common\utility::array_add(level.var_1299F,var_01);
return;
}
level.var_1299F = [];
level.var_1299F = scripts\common\utility::array_add(level.var_1299F,var_01);
}
//Function Number: 8
watch_zombie_collision()
{
self endon("death");
var_00 = 576;
for(;;)
{
var_01 = scripts\cp\_agent_utils::func_7DB0("axis");
if(var_01.size == 0)
{
wait(0.05);
continue;
}
var_02 = scripts\common\utility::getclosest(self.origin,var_01);
if(distancesquared(var_02.origin,self.origin) < var_00)
{
var_02.full_gib = 1;
var_02.var_4C87 = 1;
var_02 dodamage(var_02.health + 100,var_02.origin,self,self,"MOD_MELEE","none");
}
wait(0.05);
}
}
//Function Number: 9
func_A626(param_00)
{
level endon("game_ended");
self endon("death");
self waittill("intro_vignette_done");
while(param_00 > 0)
{
wait(1);
param_00--;
}
thread scripts\common\utility::play_sound_in_space("chi_snake_skeleton_death",self.origin);
self dodamage(self.health + 100,self.origin);
}
//Function Number: 10
func_E0B2()
{
level endon("game_ended");
self waittill("death");
level.var_1299F = scripts\common\utility::func_22A9(level.var_1299F,self);
scripts\cp\zombies\zombies_spawning::func_4FB8(1);
}
//Function Number: 11
determine_skeleton_spawn_point(param_00)
{
var_01 = self.angles;
var_02 = self.origin + anglestoforward(self.angles) * 64;
var_03 = 0;
while(var_03 <= 360)
{
if(ispointonnavmesh(var_02) && scripts\cp\maps\cp_disco\cp_disco::is_in_active_volume(var_02))
{
break;
}
var_01 = var_01 + (0,15,0);
var_03 = var_03 + 15;
var_02 = self.origin + anglestoforward(var_01) * 64;
}
if(var_03 >= 360)
{
return self.origin;
}
return var_02;
}
//Function Number: 12
zombie_movement_update(param_00)
{
level endon("game_ended");
param_00 endon("death");
self endon("death");
for(;;)
{
var_01 = determine_skeleton_mode(param_00);
switch(var_01)
{
case "move":
skeleton_move_to_player(param_00);
break;
case "fight":
self.var_EF64 = 0;
wait(3);
break;
default:
wait(0.25);
break;
}
}
}
//Function Number: 13
skeleton_move_to_player(param_00)
{
level endon("game_ended");
param_00 endon("death");
self endon("death");
self.var_EF64 = 1;
self method_8287(96);
self method_8284(self.playerowner);
scripts\common\utility::waittill_any_timeout_1(2,"goal_reached");
}
//Function Number: 14
determine_skeleton_mode(param_00)
{
level endon("game_ended");
param_00 endon("death");
self endon("death");
if(distance2dsquared(self.origin,param_00.origin) >= 1048576)
{
return "move";
}
var_01 = sortbydistance(level.spawned_enemies,param_00.origin);
if(!isdefined(var_01) || var_01.size == 0)
{
return "move";
}
if(distance2dsquared(var_01[0].origin,param_00.origin) >= 1048576)
{
return "move";
}
return "fight";
}
//Function Number: 15
snake_super_use(param_00)
{
self.snake_super = 1;
scripts\common\utility::func_1C53(0);
var_01 = 500;
if(self.chi_meter_amount - var_01 <= 0)
{
self.kung_fu_exit_delay = 1;
}
self playgestureviewmodel("ges_snake_melee_super",undefined,1);
thread play_snake_hand_fx();
self.kung_fu_shield = 1;
wait(0.75);
self playanimscriptevent("power_active_cp","gesture024");
var_02 = 4;
var_03 = 0.1;
var_04 = var_02 / var_03;
for(var_05 = 0;var_05 < var_04;var_05++)
{
snake_super_damage_nearby_enemies();
wait(var_03);
}
self stopgestureviewmodel("ges_snake_melee_super");
self.kung_fu_shield = undefined;
self.kung_fu_exit_delay = 0;
self.snake_super = undefined;
scripts\common\utility::func_1C53(1);
scripts\cp\powers\coop_powers::func_D72E();
}
//Function Number: 16
play_snake_hand_fx()
{
self setscriptablepartstate("kung_fu_super_fx","snake");
wait(4.75);
self setscriptablepartstate("kung_fu_super_fx","off");
}
//Function Number: 17
snake_super_damage_nearby_enemies()
{
var_00 = 50;
var_01 = [];
var_02 = scripts\cp\_agent_utils::func_7DB0("axis");
var_03 = sortbydistance(var_02,self.origin);
foreach(var_05 in var_03)
{
isdefined(var_05);
if(distance2dsquared(self.origin,var_05.origin) >= var_00 * var_00)
{
break;
}
if(scripts\common\utility::func_13D90(self.origin,self getplayerangles(),var_05.origin,cos(90)))
{
var_01[var_01.size] = var_05;
}
}
var_07 = 0;
foreach(var_05 in var_01)
{
if(var_07 >= 3)
{
return;
}
if(isdefined(var_05))
{
var_05 dodamage(var_05.maxhealth + 1000,self.origin,self,undefined,"MOD_EXPLOSIVE");
}
var_07++;
}
}

View File

@ -0,0 +1,381 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\maps\cp_disco\kung_fu_mode_tiger.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 16
* Decompile Time: 811 ms
* Timestamp: 10/27/2023 12:04:32 AM
*******************************************************************/
//Function Number: 1
tiger_kung_fu_init()
{
thread lib_0D0D::init();
level._effect["blackhole_trap"] = loadfx("vfx/iw7/core/zombie/traps/vfx_zmb_blackhole_trap.vfx");
level._effect["blackhole_trap_death"] = loadfx("vfx/iw7/_requests/coop/vfx_zmb_blackhole_death");
scripts\common\utility::flag_wait("interactions_initialized");
scripts\cp\powers\coop_powers::func_D787("power_shuriken_tiger",::scripts\cp\maps\cp_disco\kung_fu_mode_dragon::set_dragon_shuriken_power,::scripts\cp\maps\cp_disco\kung_fu_mode_dragon::unset_dragon_shuriken_power,::scripts\cp\maps\cp_disco\kung_fu_mode_dragon::use_dragon_shuriken,undefined,undefined,undefined);
scripts\cp\powers\coop_powers::func_D787("power_black_hole_tiger",::tiger_black_hole_set,::tiger_black_hole_unset,::tiger_black_hole_use,undefined,"power_tiger_black_hole_used",undefined);
}
//Function Number: 2
tiger_black_hole_set(param_00)
{
}
//Function Number: 3
tiger_black_hole_unset(param_00)
{
}
//Function Number: 4
tiger_black_hole_use(param_00)
{
scripts\cp\powers\coop_powers::func_D728();
var_01 = 2.5;
thread run_black_hole_logic();
wait(var_01);
self.kung_fu_exit_delay = 0;
scripts\cp\powers\coop_powers::func_D72E();
self notify("power_tiger_black_hole_used",1);
}
//Function Number: 5
run_black_hole_logic()
{
wait(0.3);
if(scripts\common\utility::istrue(self.tiger_super_use))
{
return;
}
var_00 = sortbydistance(level.spawned_enemies,self.origin);
var_01 = undefined;
var_02 = 3;
var_03 = 2.5;
var_04 = 256;
var_05 = self getplayerangles();
var_06 = anglestoforward(var_05);
var_06 = vectornormalize(var_06);
var_07 = self geteye();
var_08 = var_07 + var_06 * var_04;
var_09 = scripts\cp\_agent_utils::func_7DAF();
var_09 = scripts\common\utility::array_combine(var_09,level.players);
var_0A = scripts\common\trace::func_DCED(var_07,var_08,var_09);
var_0B = var_0A["position"];
var_01 = scripts\common\utility::func_5D14(var_0B,20,-1000);
var_01 = getclosestpointonnavmesh(var_01);
var_0C = 250;
if(self.chi_meter_amount - var_0C <= 0)
{
self.kung_fu_exit_delay = 1;
}
thread scripts\cp\zombies\zombies_chi_meter::chi_meter_kill_decrement(var_0C);
var_0D = scripts\common\utility::spawn_tag_origin(var_01 + (0,0,60));
var_0D.var_222 = self;
var_0D setmodel("tag_origin_tiger_black_hole");
thread scripts\common\utility::play_sound_in_space("chi_tiger_blackhole",var_0D.origin);
thread grabclosestzombies(var_0D,1);
self playgestureviewmodel("ges_plyr_gesture042",undefined,1);
wait(var_03);
var_0D notify("death");
var_0D delete();
}
//Function Number: 6
grabclosestzombies(param_00,param_01)
{
param_00 endon("death");
param_00.grabbedents = [];
var_02 = anglestoup(param_00.angles);
var_03 = spawn("trigger_rotatable_radius",lib_0D04::func_7E08(param_00) - var_02 * 64 * 0.5,0,200,64);
var_03.angles = param_00.angles;
var_03 enablelinkto();
var_03 linkto(param_00);
var_03 thread lib_0D04::func_4108(param_00);
while(isdefined(var_03))
{
var_04 = scripts\common\utility::func_782F(param_00.origin,level.spawned_enemies,undefined,undefined,200);
foreach(var_06 in var_04)
{
if(!scripts\cp\_utility::func_9F19(var_06) || !isdefined(param_00.var_222))
{
continue;
}
if(isplayer(var_06))
{
continue;
}
if(isdefined(var_06.team) && var_06.team == "allies")
{
continue;
}
if(param_00.var_222 == var_06)
{
continue;
}
if(!lib_0D12::func_213D(param_00,var_06))
{
continue;
}
if(!scripts\cp\_utility::func_FF18(var_06,undefined,1) || isdefined(var_06.flung))
{
continue;
}
if(!isalive(var_06))
{
continue;
}
if(isdefined(level.var_1299F) && isdefined(scripts\common\utility::func_2291(level.var_1299F,var_06)))
{
continue;
}
if(!var_06 lib_0D04::isgrabbedent(param_00))
{
var_06 thread lib_0D04::grabent(param_00);
var_06.flung = 1;
var_06 thread lib_0D04::func_111B0(var_06,param_00,param_01);
wait(0.2);
}
}
scripts\common\utility::func_136F7();
}
}
//Function Number: 7
tiger_ground_pound_set(param_00)
{
}
//Function Number: 8
tiger_ground_pound_unset(param_00)
{
}
//Function Number: 9
tiger_ground_pound_use(param_00)
{
self.tiger_super_use = 1;
self.kung_fu_shield = 1;
self allowcrouch(0);
scripts\common\utility::func_1C64(0);
scripts\common\utility::func_1C53(0);
thread tiger_pound_cowbell();
thread play_tiger_hand_fx();
wait(1.5);
self setscriptablepartstate("tiger_style_fx","active",1);
run_slam_wave();
self allowcrouch(1);
scripts\common\utility::func_1C53(1);
scripts\common\utility::func_1C64(1);
self.kung_fu_shield = undefined;
scripts\cp\powers\coop_powers::func_D72E();
}
//Function Number: 10
tiger_pound_cowbell()
{
self playgestureviewmodel("ges_tiger_melee_super",undefined,1);
thread stay_in_kung_fu_till_gesture_done("ges_tiger_melee_super");
var_00 = scripts\common\utility::func_5D14(self.origin,30,-100);
}
//Function Number: 11
stay_in_kung_fu_till_gesture_done(param_00)
{
self endon("disconnect");
var_01 = 500;
if(self.chi_meter_amount - var_01 <= 0)
{
self.kung_fu_exit_delay = 1;
}
var_02 = self method_8443(param_00);
wait(var_02);
self.tiger_super_use = 0;
self.kung_fu_exit_delay = 0;
}
//Function Number: 12
play_tiger_hand_fx()
{
self setscriptablepartstate("kung_fu_super_fx","tiger");
wait(2.5);
self setscriptablepartstate("kung_fu_super_fx","off");
}
//Function Number: 13
run_slam_wave()
{
var_00 = 150;
var_01 = 3;
var_02 = 0;
while(var_02 < var_01)
{
var_03 = var_02 + 1 * var_00;
var_04 = var_03 * var_03;
foreach(var_06 in level.spawned_enemies)
{
if(distancesquared(var_06.origin,self.origin) < var_04)
{
var_07 = var_06.origin + (0,0,100);
var_06 thread fling_enemy(var_06.maxhealth,var_07 - var_06.origin,self,0,"kung_fu_super_zm_tiger");
}
}
var_02++;
wait(0.25);
}
}
//Function Number: 14
fling_enemy(param_00,param_01,param_02,param_03,param_04)
{
var_05 = isdefined(self.agent_type) && self.agent_type == "ratking";
if(var_05)
{
if(isdefined(param_02))
{
self dodamage(self.health + 1000,self.origin,param_02,param_02,"MOD_UNKNOWN",param_04);
return;
}
self dodamage(self.health + 1000,self.origin,level.players[0],level.players[0],"MOD_UNKNOWN",param_04);
return;
}
self.do_immediate_ragdoll = 1;
self.var_4C87 = 1;
self.disable_armor = 1;
wait(0.05);
if(scripts\common\utility::istrue(param_03))
{
self.nocorpse = 1;
self.full_gib = 1;
if(isdefined(param_02))
{
self dodamage(self.health + 1000,self.origin,param_02,param_02,"MOD_UNKNOWN",param_04);
return;
}
self dodamage(self.health + 1000,self.origin,level.players[0],level.players[0],"MOD_UNKNOWN",param_04);
return;
}
self setvelocity(vectornormalize(param_01) * 500);
wait(0.1);
if(isdefined(param_02))
{
self dodamage(self.health + 1000,self.origin,param_02,param_02,"MOD_UNKNOWN",param_04);
return;
}
self dodamage(self.health + 1000,self.origin,level.players[0],level.players[0],"MOD_UNKNOWN",param_04);
}
//Function Number: 15
func_102C7(param_00,param_01,param_02)
{
if(!isdefined(param_02))
{
var_03 = lengthsquared(param_00.origin - param_01);
if(var_03 < 65536)
{
return;
}
if(var_03 > squared(600))
{
return;
}
}
var_04 = param_00 scripts\common\utility::spawn_tag_origin();
thread lib_0D0D::func_102C6(param_00,var_04);
func_102C8(param_00,param_01,var_04,param_02);
param_00 notify("slam_finished");
}
//Function Number: 16
func_102C8(param_00,param_01,param_02,param_03)
{
var_04 = lengthsquared(param_00.origin - param_01);
var_05 = 0;
var_06 = 0;
var_07 = 0;
if(var_04 >= 28224)
{
var_06 = 20736;
var_05 = 1;
}
else if(var_04 >= 7056)
{
var_06 = 5184;
var_07 = 20736;
}
else
{
var_07 = 11664;
}
param_00 playerlinkto(param_02,"tag_origin");
wait(0.25);
param_00 thread scripts\cp\_weapon::func_858A(0);
if(!isdefined(param_03))
{
param_00 playsound("detpack_explo_metal");
var_08 = scripts\common\utility::func_116D7(var_05,scripts\common\utility::getfx("slam_lrg"),scripts\common\utility::getfx("slam_sml"));
playfx(var_08,param_01);
}
else
{
}
thread lib_0D0D::func_102CA(param_01);
var_09 = scripts\cp\_agent_utils::func_7DB0("axis");
foreach(var_0B in var_09)
{
if(!isdefined(var_0B) || var_0B == param_00 || !scripts\cp\_utility::func_9F19(var_0B))
{
continue;
}
var_0C = undefined;
var_0D = distancesquared(param_01,var_0B.origin);
if(var_0D <= var_06)
{
var_0C = 1000000;
}
else if(var_0D <= var_07)
{
var_0C = 1000000;
}
else
{
continue;
}
var_0B scripts\cp\_weapon::func_FC6A("MOD_EXPLOSIVE",var_0C);
if(var_0C >= var_0B.health)
{
var_0B.var_4C87 = 1;
}
var_0B dodamage(var_0C,param_01,param_00,param_00,"MOD_CRUSH");
}
wait(0.5);
param_00 unlink();
param_00 setscriptablepartstate("tiger_style_fx","inactive",1);
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,156 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\maps\cp_disco\rat_king.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 6
* Decompile Time: 336 ms
* Timestamp: 10/27/2023 12:04:35 AM
*******************************************************************/
//Function Number: 1
rat_king_init()
{
var_00 = scripts\common\utility::getstructarray("rat_king_spawner","targetname");
foreach(var_02 in var_00)
{
if(isdefined(var_02.script_noteworthy))
{
continue;
}
level.rat_king_spawn_loc = var_02.origin;
level.rat_king_spawn_angles = var_02.angles;
}
level.rat_king_vo_prefix = "disco_ratking_";
setuprkbouncestructs();
}
//Function Number: 2
setuprkbouncestructs()
{
level.rat_king_bounce_structs = scripts\common\utility::getstructarray("shield_bounce_loc","targetname");
}
//Function Number: 3
spawn_rat_king(param_00,param_01,param_02)
{
level notify("spawn_rat_king");
level endon("spawn_rat_king");
scripts\common\utility::flag_wait("interactions_initialized");
if(isdefined(level.rat_king))
{
if(scripts\common\utility::istrue(param_02))
{
level.rat_king suicide();
}
else
{
return;
}
}
if(!isdefined(param_00))
{
param_00 = level.rat_king_spawn_loc;
}
if(!isdefined(param_01))
{
param_01 = level.rat_king_spawn_angles;
}
for(;;)
{
level.rat_king = scripts\mp\_mp_agent::func_108E8("ratking","axis",param_00,param_01);
if(isdefined(level.rat_king))
{
level.rat_king.var_13550 = level.rat_king_vo_prefix;
level.rat_king thread setrkscriptablestates();
level.rat_king thread rkaudiomonitor();
level.spawned_enemies[level.spawned_enemies.size] = level.rat_king;
if(scripts\common\utility::flag("rk_fight_started"))
{
playsoundatpos(level.rat_king_spawn_loc + (0,0,100),"rk_spawn_in_lr");
}
level.rat_king thread runspawnlogic();
break;
}
else
{
scripts\common\utility::func_136F7();
}
}
}
//Function Number: 4
setrkscriptablestates()
{
wait(2);
if(scripts\aitypes\ratking\behaviors::rk_isonplatform())
{
self setscriptablepartstate("movement","neutral");
self setscriptablepartstate("rat_skirt","platform");
}
}
//Function Number: 5
runspawnlogic()
{
self.var_180 = 1;
self.var_EF64 = 1;
self.outofplayspace = 1;
self notify("spawn");
self setscriptablepartstate("movement","materialize");
wait(2);
self.outofplayspace = undefined;
self.var_180 = 0;
self.var_EF64 = 0;
}
//Function Number: 6
rkaudiomonitor()
{
level endon("game_ended");
self endon("death");
var_00 = 10;
self.var_D4AA = 0;
for(;;)
{
var_01 = scripts\common\utility::func_1372E(["spawn","summon","pain","melee","shield_throw","over","under","stomp"],var_00);
var_00 = randomintrange(4,10);
switch(var_01)
{
case "spawn":
level thread lib_0D62::func_CE9C(self,"spawn",0);
break;
case "summon":
level thread lib_0D62::func_CE9C(self,"summon",0);
break;
case "pain":
level thread lib_0D62::func_CE9C(self,"pain",0);
break;
case "under":
level thread lib_0D62::func_CE9C(self,"melee",0);
break;
case "shield_throw":
level thread lib_0D62::func_CE9C(self,"shield_throw",0);
break;
case "stomp":
level thread lib_0D62::func_CE9C(self,"staff_stomp",0);
break;
case "timeout":
level thread lib_0D62::func_CE9C(self,"staff_over",0);
level thread lib_0D62::func_CE9C(self,"staff_under",0);
break;
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,543 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\maps\cp_disco\ratking_damage.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 12
* Decompile Time: 651 ms
* Timestamp: 10/27/2023 12:04:44 AM
*******************************************************************/
//Function Number: 1
cp_ratking_callbacks()
{
level.agent_funcs["ratking"]["on_damaged"] = ::onratkingdamaged;
level.agent_funcs["ratking"]["on_damage_finished"] = ::onratkingdamagefinished;
level.agent_funcs["ratking"]["on_killed"] = ::onratkingkilled;
}
//Function Number: 2
onratkingdamaged(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 = self;
if(!isdefined(self.agent_type))
{
return;
}
if(!isdefined(param_01))
{
return;
}
if(!isplayer(param_01))
{
if(!isdefined(param_01.var_222) || isdefined(param_01.var_222) && !isplayer(param_01.var_222))
{
return;
}
}
var_0D = gettime();
param_02 = 4 - level.players.size - 1;
param_02 = weapondamageadjustments(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B);
param_02 = fnfdamageadjustments(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(scripts\common\utility::istrue(level.rat_king.disabledamage))
{
self.fake_damage = param_02;
param_02 = 0;
}
if(isdefined(level.rat_king.shouldteleportthreshold))
{
if(isdefined(self.next_forced_teleport_time) && var_0D >= self.next_forced_teleport_time)
{
level.rat_king.shouldteleportthreshold++;
if(level.rat_king.shouldteleportthreshold >= 1)
{
self.next_forced_teleport_time = var_0D + 10000;
level.rat_king.shouldteleportthreshold = 0;
scripts\cp\maps\cp_disco\rat_king_fight::forcerkteleport();
}
}
}
if(isdefined(self.next_pain_time) && var_0D >= self.next_pain_time)
{
self.next_pain_time = var_0D + 1250;
self notify("pain");
}
if(scripts\aitypes\ratking\behaviors::rkisblocking())
{
if(isdefined(self.next_block_fx_time) && isdefined(param_06) && isdefined(param_07) && var_0D >= self.next_block_fx_time)
{
self.next_block_fx_time = var_0D + 250;
playfx(level._effect["rk_blocking"],param_06 + param_07 * -50,param_07 * -150);
}
if(!scripts\common\utility::func_2286(level.kungfu_weapons[1],getweaponbasename(param_05)))
{
param_02 = 0;
}
}
param_02 = int(min(param_02,self.health));
if(isplayer(param_01))
{
if(isdefined(level.var_12EDE))
{
level thread [[ level.var_12EDE ]](param_01,param_05,self);
}
param_01 thread scripts\cp\_utility::add_to_notify_queue("rat_king_damaged",self,param_01,param_05,param_02,param_08,param_04);
param_01 thread lib_0CBC::func_12EC5(getweaponbasename(param_05));
if(!isdefined(param_01.var_FF0A[getweaponbasename(param_05)]))
{
param_01.var_FF0A[getweaponbasename(param_05)] = 1;
}
else
{
param_01.var_FF0A[getweaponbasename(param_05)]++;
}
}
level thread scripts\cp\_utility::add_to_notify_queue("rat_king_damaged",self,param_01,param_05,param_02,param_08,param_04);
lib_0D5A::func_12D84(param_01,param_02,param_04);
scripts\cp\_agent_utils::func_D96D(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,var_0C);
rkprocessdamagefeedback(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,var_0C);
scripts\cp\_agent_utils::func_110A4(param_01,param_02);
thread lib_0CBC::func_BF05(param_01);
var_0C [[ level.agent_funcs[var_0C.agent_type]["on_damaged_finished"] ]](param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,0,param_0A,param_0B);
}
//Function Number: 3
rkprocessdamagefeedback(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A)
{
if(scripts\common\utility::istrue(param_0A.outofplayspace))
{
return;
}
if(scripts\common\utility::istrue(param_0A.disabledamage))
{
if(scripts\common\utility::func_6E34("relic_active"))
{
if(!scripts\common\utility::flag("relic_active"))
{
return;
}
}
else
{
return;
}
}
if(!scripts\common\utility::func_9D74(param_04))
{
if(scripts\cp\_utility::func_9CEB(param_00,param_05))
{
return;
}
var_0B = gettime();
if(isdefined(param_01.var_BF85) && param_01.var_BF85 > var_0B)
{
return;
}
else
{
param_01.var_BF85 = var_0B + 250;
}
}
var_0C = "standard";
var_0D = undefined;
if(param_0A.health <= param_02)
{
var_0D = 1;
}
var_0E = scripts\cp\_utility::func_9E27(param_05,param_08,param_04,param_01);
if(var_0E)
{
var_0C = "hitcritical";
}
var_0F = scripts\common\utility::func_9D74(param_04);
var_10 = var_0E && param_01 scripts\cp\_utility::func_9BA0("sharp_shooter_upgrade");
var_11 = var_0F && param_01 scripts\cp\_utility::func_9BA0("bonus_damage_on_last_bullets");
var_12 = var_0F && param_01 scripts\cp\_utility::func_9BA0("damage_booster_upgrade");
var_13 = scripts\common\utility::istrue(param_01.inlaststand);
var_14 = !var_13 && var_0E && var_0F && param_01 scripts\cp\_utility::func_9BA0("headshot_explosion");
var_15 = !scripts\cp\_utility::func_9F19(param_0A) || isagent(param_0A) && param_02 >= param_0A.health;
var_16 = param_04 == "MOD_EXPLOSIVE_BULLET" || param_04 == "MOD_EXPLOSIVE" || param_04 == "MOD_GRENADE_SPLASH" || param_04 == "MOD_PROJECTILE" || param_04 == "MOD_PROJECTILE_SPLASH";
var_17 = param_04 == "MOD_MELEE";
if(param_0A scripts\aitypes\ratking\behaviors::rkisblocking())
{
var_0C = "hitalienarmor";
}
else if(var_10 || var_11 || var_12 || var_14)
{
var_0C = "card_boosted";
}
else if(isplayer(param_01) && param_01 scripts\cp\_utility::has_zombie_perk("perk_machine_boom") && var_16)
{
var_0C = "high_damage";
}
else if(isplayer(param_01) && param_01 scripts\cp\_utility::has_zombie_perk("perk_machine_smack") && var_17)
{
var_0C = "high_damage";
}
else if(isplayer(param_01) && param_01 scripts\cp\_utility::has_zombie_perk("perk_machine_rat_a_tat") && var_0F)
{
var_0C = "high_damage";
}
else if(isplayer(param_01) && scripts\common\utility::istrue(param_01.deadeye_charge) && var_0F)
{
var_0C = "special_weapon";
}
if(isdefined(param_01))
{
if(isdefined(param_01.var_222))
{
param_01.var_222 thread rkupdatedamagefeedback(var_0C,var_0D,param_02,param_0A.var_E54C);
return;
}
param_01 thread rkupdatedamagefeedback(var_0C,var_0D,param_02,param_0A.var_E54C);
}
}
//Function Number: 4
rkupdatedamagefeedback(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
if(isdefined(level.var_73A6) && [[ level.var_73A6 ]](param_04,param_05,param_06))
{
return;
}
if(!isplayer(self))
{
return;
}
var_07 = "standard_cp";
var_08 = undefined;
if(isdefined(param_01) && param_01)
{
self playlocalsound("cp_hit_alert_strong");
}
else if(scripts\common\utility::istrue(self.deadeye_charge))
{
self playlocalsound("cp_hit_alert_perk");
}
else
{
self playlocalsound("cp_hit_alert");
}
switch(param_00)
{
case "hitalienarmor":
self setclientomnvar("damage_feedback_icon",param_00);
self setclientomnvar("damage_feedback_icon_notify",gettime());
param_03 = 1;
break;
case "hitcritical":
case "hitaliensoft":
var_08 = 1;
break;
case "stun":
case "meleestun":
if(!isdefined(self.var_B649))
{
self playlocalsound("crate_impact");
self.var_B649 = 1;
}
self setclientomnvar("damage_feedback_icon","hitcritical");
self setclientomnvar("damage_feedback_icon_notify",gettime());
wait(0.2);
self.var_B649 = undefined;
break;
case "high_damage":
var_07 = "high_damage_cp";
break;
case "special_weapon":
var_07 = "wor_weapon_cp";
break;
case "card_boosted":
var_07 = "fnf_card_damage_cp";
break;
case "red_arcane_cp":
var_07 = "red_arcane_cp";
break;
case "blue_arcane_cp":
var_07 = "blue_arcane_cp";
break;
case "yellow_arcane_cp":
var_07 = "yellow_arcane_cp";
break;
case "green_arcane_cp":
var_07 = "green_arcane_cp";
break;
case "pink_arcane_cp":
var_07 = "pink_arcane_cp";
break;
case "none":
break;
default:
break;
}
rkupdatehitmarker(var_07,var_08,param_02,param_03,param_01);
}
//Function Number: 5
rkupdatehitmarker(param_00,param_01,param_02,param_03,param_04)
{
if(!isdefined(param_00))
{
return;
}
if(!isdefined(param_04))
{
param_04 = 0;
}
if(!isdefined(param_01))
{
param_01 = 0;
}
if(!isdefined(param_03))
{
param_03 = 0;
}
self setclientomnvar("damage_scale_type","standard");
if(param_04)
{
self setclientomnvar("damage_feedback_kill",1);
}
else
{
self setclientomnvar("damage_feedback_kill",0);
}
if(param_03)
{
self setclientomnvar("damage_scale_type","hitalienarmor");
}
if(param_01)
{
self setclientomnvar("damage_scale_type","hitaliensoft");
self setclientomnvar("damage_feedback_headshot",1);
}
else
{
self setclientomnvar("damage_feedback_headshot",0);
}
if(isdefined(param_02))
{
self setclientomnvar("ui_damage_amount",int(param_02));
}
self setclientomnvar("damage_feedback",param_00);
self setclientomnvar("damage_feedback_notify",gettime());
}
//Function Number: 6
adjustrkcooldowns()
{
var_00 = gettime();
if(scripts\common\utility::istrue(scripts\aitypes\ratking\behaviors::rk_shouldbeonplatform()))
{
scripts\cp\maps\cp_disco\rat_king_fight::forcerkteleport();
}
}
//Function Number: 7
onratkingdamagefinished(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B,param_0C)
{
if(scripts\aitypes\ratking\behaviors::rkisblocking())
{
param_02 = param_02 * 0.1;
param_02 = int(param_02);
}
scripts\mp\agents\ratking\ratking_agent::accumulatedamage(param_02,param_07);
scripts\mp\agents\ratking\ratking_agent::ratking_on_damage_finished(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,0,param_0B,param_0C);
}
//Function Number: 8
onratkingkilled(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
{
lib_0CBC::func_D97C(param_00,param_01,self,param_06,param_03,param_04);
lib_0CBC::func_D95F(param_01);
scripts\cp\_weaponrank::func_12861(param_01,param_04,param_06,param_03,self.agent_type);
if(isdefined(level.death_challenge_update_func))
{
[[ level.death_challenge_update_func ]](param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
}
else
{
scripts\cp\_challenge::func_12DA9(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
}
scripts\cp\_merits::func_D95D(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
scripts\cp\_agent_utils::func_4DDB();
level.rat_king = undefined;
level notify("zombie_killed",self.origin,param_04,param_03);
level notify("rat_king_killed",self.origin);
if(isplayer(param_01))
{
if(param_01.var_134FD == "p5_")
{
param_01 thread scripts\cp\_vo::try_to_play_vo("ww_ratking_death","rave_ww_vo","highest",70,0,0,1);
return;
}
param_01 thread scripts\cp\_vo::try_to_play_vo("ww_ratking_death_p5","rave_ww_vo","highest",70,0,0,1);
}
}
//Function Number: 9
weapondamageadjustments(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 = 0;
if(isplayer(param_01))
{
var_0D = scripts\cp\_utility::func_821F(param_05);
var_0E = scripts\common\utility::func_9D74(param_04) || param_04 == "MOD_EXPLOSIVE_BULLET" && param_08 != "none";
var_0F = param_04 == "MOD_MELEE";
if(!var_0F)
{
switch(var_0D)
{
case "weapon_assault":
break;
case "weapon_smg":
break;
case "weapon_lmg":
break;
case "weapon_shotgun":
break;
case "weapon_pistol":
break;
case "other":
break;
}
}
var_10 = var_0E && scripts\cp\_utility::func_9E27(param_05,param_08,param_04,param_01);
var_11 = isexplosivedamage(param_04,param_08);
var_12 = !lib_0CBC::checkaltmodestatus(param_05) && param_01 scripts\cp\_utility::func_4626(param_05) == "weapon_sniper";
var_13 = param_01 scripts\cp\_weapon::func_7D62(param_05);
param_02 = param_02 * var_13;
if(var_12)
{
var_0C = var_0C + 5;
}
if(var_10)
{
var_0C = var_0C + 5;
}
var_0C = returnkungfuweaponadjustments(param_05,var_0C);
}
return param_02 + var_0C;
}
//Function Number: 10
returnkungfuweaponadjustments(param_00,param_01)
{
if(scripts\common\utility::func_2286(level.kungfu_weapons[0],getweaponbasename(param_00)))
{
param_01 = param_01 + 5;
}
else if(scripts\common\utility::func_2286(level.kungfu_weapons[2],getweaponbasename(param_00)))
{
param_01 = param_01 + 20;
scripts\cp\maps\cp_disco\rat_king_fight::forcerkteleport();
}
else if(scripts\common\utility::func_2286(level.kungfu_weapons[1],getweaponbasename(param_00)))
{
param_01 = param_01 + 10;
var_02 = lib_0A1A::func_233A("ratking");
if(isdefined(var_02) && var_02 == "staff_stomp" || var_02 == "staff_projectile")
{
thread scripts\aitypes\ratking\behaviors::retrievestaffaftertime();
}
else if(scripts\aitypes\ratking\behaviors::rkissummoning())
{
if(scripts\common\utility::flag("relic_active"))
{
thread scripts\aitypes\ratking\behaviors::retrieveshieldaftertime(5);
}
else
{
thread scripts\aitypes\ratking\behaviors::retrieveshieldaftertime();
}
}
else if(scripts\aitypes\ratking\behaviors::rkisblocking())
{
if(scripts\common\utility::flag("relic_active"))
{
thread scripts\aitypes\ratking\behaviors::retrieveshieldaftertime(5);
}
else
{
thread scripts\aitypes\ratking\behaviors::retrieveshieldaftertime();
}
}
}
return param_01;
}
//Function Number: 11
isexplosivedamage(param_00,param_01)
{
if((param_00 == "MOD_EXPLOSIVE_BULLET" && isdefined(param_01) && param_01 == "none") || param_00 == "MOD_EXPLOSIVE" || param_00 == "MOD_GRENADE_SPLASH" || param_00 == "MOD_PROJECTILE" || param_00 == "MOD_PROJECTILE_SPLASH")
{
return 1;
}
return 0;
}
//Function Number: 12
fnfdamageadjustments(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(isplayer(param_01))
{
}
return param_02;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,270 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\maps\cp_final\cp_final_fx.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 122 ms
* Timestamp: 10/27/2023 12:05:01 AM
*******************************************************************/
//Function Number: 1
main()
{
level._effect["rhino_lnf"] = loadfx("vfx/iw7/levels/cp_final/rhino_lnf.vfx");
level._effect["vfx_eggsac_pup"] = loadfx("vfx/iw7/levels/cp_final/vfx_eggsac_pup.vfx");
level._effect["vfx_eggsac_glow"] = loadfx("vfx/iw7/levels/cp_final/vfx_eggsac_glow.vfx");
level._effect["vfx_elec_console"] = loadfx("vfx/iw7/levels/cp_final/vfx_elec_console.vfx");
level._effect["vfx_zm_mw_icon"] = loadfx("vfx/iw7/levels/cp_final/magic_wheel/vfx_zm_mw_icon.vfx");
level._effect["vfx_mep_perk_buy"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_mep_perk_buy.vfx");
level._effect["vfx_low_mist_blue"] = loadfx("vfx/iw7/levels/mp_rally/vfx_low_mist_blue.vfx");
level._effect["vfx_item_entagled"] = loadfx("vfx/iw7/levels/cp_final/mpq/vfx_item_entagled.vfx");
level._effect["vfx_road_flare"] = loadfx("vfx/iw7/levels/cp_final/amb/vfx_road_flare.vfx");
level._effect["vfx_center_symbol"] = loadfx("vfx/iw7/levels/cp_final/amb/vfx_center_symbol.vfx");
level._effect["vfx_meph_bhs_start"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_meph_bhs_start.vfx");
level._effect["vfx_dense_mist"] = loadfx("vfx/iw7/levels/cp_final/amb/vfx_dense_mist.vfx");
level._effect["vfx_wall_hole_billow"] = loadfx("vfx/iw7/levels/cp_final/amb/vfx_wall_hole_billow.vfx");
level._effect["vfx_hole_billow"] = loadfx("vfx/iw7/levels/cp_final/amb/vfx_hole_billow.vfx");
level._effect["vfx_streets_smoke"] = loadfx("vfx/iw7/levels/cp_final/amb/vfx_streets_smoke.vfx");
level._effect["vfx_falling_ash2"] = loadfx("vfx/iw7/levels/cp_final/amb/vfx_falling_ash2.vfx");
level._effect["vfx_falling_ash"] = loadfx("vfx/iw7/levels/cp_final/amb/vfx_falling_ash.vfx");
level._effect["vfx_talisman_beam"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_talisman_beam.vfx");
level._effect["vfx_outdoor_lf"] = loadfx("vfx/iw7/levels/cp_final/amb/vfx_outdoor_lf.vfx");
level._effect["vfx_broken_pipe_steam"] = loadfx("vfx/iw7/levels/cp_final/amb/vfx_broken_pipe_steam.vfx");
level._effect["vfx_low_mist"] = loadfx("vfx/iw7/levels/cp_final/amb/vfx_low_mist.vfx");
level._effect["vfx_zb_elec"] = loadfx("vfx/iw7/levels/cp_final/trap/vfx_zb_elec.vfx");
level._effect["vfx_imp_zmb_meph_blood"] = loadfx("vfx/iw7/core/impact/custom/vfx_imp_zmb_meph_blood.vfx");
level._effect["vfx_zb_pack_glow"] = loadfx("vfx/iw7/core/zombie/pap/vfx_zb_pack_glow2.vfx");
level._effect["vfx_water_drips"] = loadfx("vfx/iw7/levels/cp_final/amb/vfx_water_drips.vfx");
level._effect["vfx_floor_vent_steam"] = loadfx("vfx/iw7/levels/cp_final/amb/vfx_floor_vent_steam.vfx");
level._effect["vfx_amb_motes"] = loadfx("vfx/iw7/levels/cp_final/amb/vfx_amb_motes.vfx");
level._effect["vfx_talisman_active"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_talisman_active.vfx");
level._effect["vfx_talisman_complete"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_talisman_complete.vfx");
level._effect["vfx_zb_pack_glow_ground_b"] = loadfx("vfx/iw7/core/zombie/pap/vfx_zb_pack_glow_ground_b.vfx");
level._effect["vfx_zb_sj_smk"] = loadfx("vfx/iw7/core/zombie/pap/vfx_zb_sj_smk.vfx");
level._effect["vfx_zb_pack_grd_a"] = loadfx("vfx/iw7/core/zombie/pap/vfx_zb_pack_grd_a.vfx");
level._effect["vfx_zb_pack_grd_b"] = loadfx("vfx/iw7/core/zombie/pap/vfx_zb_pack_grd_b.vfx");
level._effect["vfx_zb_pack_grd_c"] = loadfx("vfx/iw7/core/zombie/pap/vfx_zb_pack_grd_c.vfx");
level._effect["vfx_zb_pack_grd_d"] = loadfx("vfx/iw7/core/zombie/pap/vfx_zb_pack_grd_d.vfx");
level._effect["vfx_zb_pack_grd_e"] = loadfx("vfx/iw7/core/zombie/pap/vfx_zb_pack_grd_e.vfx");
level._effect["vfx_zmb_candle_flame"] = loadfx("vfx/iw7/core/zombie/pap/vfx_zmb_candle_flame.vfx");
level._effect["vfx_barricade_flash"] = loadfx("vfx/iw7/levels/cp_final/amb/vfx_barricade_flash.vfx");
level._effect["vfx_oasis_gnat_swarm"] = loadfx("vfx/iw7/levels/mp_marsoasis/vfx_oasis_gnat_swarm.vfx");
level._effect["vfx_trash_flies"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_trash_flies.vfx");
level._effect["vfx_pipe_smoke"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_pipe_smoke.vfx");
level._effect["vfx_amb_moth_a"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_amb_moth_a.vfx");
level._effect["vfx_amb_moth_b"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_amb_moth_b.vfx");
level._effect["vfx_light_mist"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_light_mist.vfx");
level._effect["vfx_dist_fire"] = loadfx("vfx/iw7/levels/cp_final/amb/vfx_dist_fire.vfx");
level._effect["vfx_venmox_spark"] = loadfx("vfx/iw7/levels/cp_final/trap/vfx_venmox_spark.vfx");
level._effect["vfx_venmox_spark_expl"] = loadfx("vfx/iw7/levels/cp_final/trap/vfx_venmox_spark_ch.vfx");
level._effect["vfx_zb_final_elec_up"] = loadfx("vfx/iw7/levels/cp_final/trap/vfx_zb_final_elec_up.vfx");
level._effect["vfx_zb_spark_b"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_zb_spark_b.vfx");
level._effect["vfx_zb_spark_a"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_zb_spark_a.vfx");
level._effect["vfx_zb_cf_b"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_zb_cf_b.vfx");
level._effect["vfx_zb_cf_a"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_zb_cf_a.vfx");
level._effect["vfx_sewer_grate_steam"] = loadfx("vfx/iw7/levels/cp_disco/amb/vfx_sewer_grate_steam.vfx");
level._effect["vfx_win_fire_dist"] = loadfx("vfx/iw7/levels/cp_final/amb/vfx_win_fire_dist.vfx");
level._effect["vfx_flashing_red_01"] = loadfx("vfx/iw7/levels/cp_final/amb/vfx_flashing_red_01.vfx");
level._effect["vfx_flashing_blue01"] = loadfx("vfx/iw7/levels/cp_final/amb/vfx_flashing_blue01.vfx");
level._effect["vfx_zb_ac_gd_smk"] = loadfx("vfx/iw7/levels/cp_final/trap/vfx_zb_ac_gd_smk.vfx");
level._effect["vfx_dlc4_boss_telep_in"] = loadfx("vfx/iw7/levels/cp_final/boss/vfx_dlc4_boss_telep_in.vfx");
level._effect["vfx_screen_a"] = loadfx("vfx/iw7/levels/cp_final/amb/vfx_screen_a.vfx");
level._effect["vfx_zb_fg_on"] = loadfx("vfx/iw7/levels/cp_final/trap/vfx_zb_fg_on.vfx");
level._effect["vfx_fg_smk"] = loadfx("vfx/iw7/levels/cp_final/amb/vfx_fg_smk.vfx");
level._effect["vfx_zb_meat"] = loadfx("vfx/iw7/levels/cp_final/trap/vfx_zb_meat.vfx");
level._effect["vfx_meph_bhs"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_meph_bhs.vfx");
level._effect["vfx_meph_smk_down"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_meph_smk_down.vfx");
level._effect["vfx_meph_smk_up"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_meph_smk_up.vfx");
level._effect["vfx_eclipse_tell"] = loadfx("vfx/iw7/levels/cp_final/boss/vfx_eclipse_tell.vfx");
level._effect["vfx_sum_hand_tell_le"] = loadfx("vfx/iw7/levels/cp_final/boss/vfx_sum_hand_tell_le.vfx");
level._effect["vfx_sum_hand_tell_ri"] = loadfx("vfx/iw7/levels/cp_final/boss/vfx_sum_hand_tell_ri.vfx");
level._effect["vfx_fire_tornado_lg"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_fire_tornado_lg.vfx");
level._effect["vfx_fire_tornado"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_fire_tornado.vfx");
level._effect["vfx_chess_solve"] = loadfx("vfx/iw7/levels/cp_final/gns/vfx_chess_solve.vfx");
level._effect["vfx_dlc4_player_burn_flames"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_dlc4_player_flames.vfx");
level._effect["vfx_final_water_elec_chp"] = loadfx("vfx/iw7/levels/cp_final/trap/vfx_final_water_elec_chp.vfx");
level._effect["vfx_dlc4_boss_telep_in"] = loadfx("vfx/iw7/levels/cp_final/boss/vfx_dlc4_boss_telep_in.vfx");
level._effect["vfx_dlc4_boss_telep_in_left"] = loadfx("vfx/iw7/levels/cp_final/boss/vfx_dlc4_boss_telep_in_left.vfx");
level._effect["vfx_boss_sun_blocker"] = loadfx("vfx/iw7/levels/cp_final/boss_arena/vfx_boss_sun_blocker.vfx");
level._effect["vfx_boss_sun"] = loadfx("vfx/iw7/levels/cp_final/boss_arena/vfx_boss_sun.vfx");
level._effect["vfx_clap_hand_tell"] = loadfx("vfx/iw7/levels/cp_final/boss/vfx_clap_hand_tell.vfx");
level._effect["vfx_clap_hand_impact"] = loadfx("vfx/iw7/levels/cp_final/boss/vfx_clap_hand_impact.vfx");
level._effect["vfx_fire_ring_protect"] = loadfx("vfx/iw7/levels/cp_final/boss/vfx_fire_ring_protect.vfx");
level._effect["vfx_zb_ac_gd"] = loadfx("vfx/iw7/levels/cp_final/trap/vfx_zb_ac_gd.vfx");
level._effect["vfx_zb_ac_smk"] = loadfx("vfx/iw7/levels/cp_final/trap/vfx_zb_ac_smk.vfx");
level._effect["vfx_zb__ar_shower_01"] = loadfx("vfx/iw7/levels/cp_final/trap/vfx_zb__ar_shower_01.vfx");
level._effect["vfx_mouth_flame_impact"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_mouth_flame_impact.vfx");
level._effect["vfx_mouth_flame_start"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_mouth_flame_start.vfx");
level._effect["vfx_mouth_flame"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_mouth_flame.vfx");
level._effect["vfx_skeleton_glow_eyes"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_skeleton_glow_eyes.vfx");
level._effect["vfx_meph_black_hole"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_meph_black_hole.vfx");
level._effect["vfx_blowing_snow_low"] = loadfx("vfx/iw7/levels/cp_final/amb/vfx_blowing_snow_low.vfx");
level._effect["vfx_snow_flurries_01"] = loadfx("vfx/iw7/levels/cp_final/amb/vfx_snow_flurries_01.vfx");
level._effect["vfx_zb_final_elec_spark_c"] = loadfx("vfx/iw7/levels/cp_final/trap/vfx_zb_final_elec_spark_c.vfx");
level._effect["vfx_zb_final_elec_spark_b"] = loadfx("vfx/iw7/levels/cp_final/trap/vfx_zb_final_elec_spark_b.vfx");
level._effect["vfx_zb_final_water_elec"] = loadfx("vfx/iw7/levels/cp_final/trap/vfx_zb_final_water_elec.vfx");
level._effect["vfx_death_body"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_death_body.vfx");
level._effect["vfx_clap_wall_raise"] = loadfx("vfx/iw7/levels/cp_final/boss/vfx_clap_wall_raise.vfx");
level._effect["vfx_rotating_asteroids_03"] = loadfx("vfx/iw7/levels/cp_final/amb/vfx_rotating_asteroids_03.vfx");
level._effect["vfx_fireball_throw"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_fireball_throw.vfx");
level._effect["vfx_orange_emerg_lights_02"] = loadfx("vfx/iw7/levels/cp_final/amb/vfx_orange_emerg_lights_02.vfx");
level._effect["vfx_orange_emerg_lights"] = loadfx("vfx/iw7/levels/cp_final/amb/vfx_orange_emerg_lights.vfx");
level._effect["vfx_rotating_asteroids_01"] = loadfx("vfx/iw7/levels/cp_final/amb/vfx_rotating_asteroids_01.vfx");
level._effect["vfx_rotating_asteroids_02"] = loadfx("vfx/iw7/levels/cp_final/amb/vfx_rotating_asteroids_02.vfx");
level._effect["demon_pound_slam_lrg"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/demon_pound_slam_lrg.vfx");
level._effect["vfx_demon_spawn"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_demon_spawn.vfx");
level._effect["vfx_fan_hack"] = loadfx("vfx/iw7/levels/cp_final/fx_fan/vfx_fan_hack.vfx");
level._effect["vfx_sun_blocker_end"] = loadfx("vfx/iw7/levels/cp_final/boss_arena/vfx_sunblk_end.vfx ");
level._effect["vfx_zb_fg_side"] = loadfx("vfx/iw7/levels/cp_final/trap/vfx_zb_fg_side.vfx");
level._effect["vfx_zb_final_elec"] = loadfx("vfx/iw7/levels/cp_final/trap/vfx_zb_final_elec.vfx");
level._effect["vfx_flashing_blue01"] = loadfx("vfx/iw7/levels/cp_final/amb/vfx_flashing_blue01.vfx");
level._effect["vfx_zb_ac_gd_smk"] = loadfx("vfx/iw7/levels/cp_final/trap/vfx_zb_ac_gd_smk.vfx");
level._effect["vfx_dlc4_boss_telep_in"] = loadfx("vfx/iw7/levels/cp_final/boss/vfx_dlc4_boss_telep_in.vfx");
level._effect["vfx_screen_a"] = loadfx("vfx/iw7/levels/cp_final/amb/vfx_screen_a.vfx");
level._effect["vfx_zb_fg_on"] = loadfx("vfx/iw7/levels/cp_final/trap/vfx_zb_fg_on.vfx");
level._effect["vfx_fg_smk"] = loadfx("vfx/iw7/levels/cp_final/amb/vfx_fg_smk.vfx");
level._effect["vfx_zb_meat"] = loadfx("vfx/iw7/levels/cp_final/trap/vfx_zb_meat.vfx");
level._effect["vfx_meph_bhs"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_meph_bhs.vfx");
level._effect["vfx_meph_smk_down"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_meph_smk_down.vfx");
level._effect["vfx_meph_smk_up"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_meph_smk_up.vfx");
level._effect["vfx_eclipse_tell"] = loadfx("vfx/iw7/levels/cp_final/boss/vfx_eclipse_tell.vfx");
level._effect["vfx_sum_hand_tell_le"] = loadfx("vfx/iw7/levels/cp_final/boss/vfx_sum_hand_tell_le.vfx");
level._effect["vfx_sum_hand_tell_ri"] = loadfx("vfx/iw7/levels/cp_final/boss/vfx_sum_hand_tell_ri.vfx");
level._effect["vfx_fire_tornado_lg"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_fire_tornado_lg.vfx");
level._effect["vfx_fire_tornado"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_fire_tornado.vfx");
level._effect["vfx_chess_solve"] = loadfx("vfx/iw7/levels/cp_final/gns/vfx_chess_solve.vfx");
level._effect["vfx_dlc4_player_burn_flames"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_dlc4_player_flames.vfx");
level._effect["vfx_final_water_elec_chp"] = loadfx("vfx/iw7/levels/cp_final/trap/vfx_final_water_elec_chp.vfx");
level._effect["vfx_dlc4_boss_telep_in"] = loadfx("vfx/iw7/levels/cp_final/boss/vfx_dlc4_boss_telep_in.vfx");
level._effect["vfx_dlc4_boss_telep_in_left"] = loadfx("vfx/iw7/levels/cp_final/boss/vfx_dlc4_boss_telep_in_left.vfx");
level._effect["vfx_boss_sun_blocker"] = loadfx("vfx/iw7/levels/cp_final/boss_arena/vfx_boss_sun_blocker.vfx");
level._effect["vfx_boss_sun"] = loadfx("vfx/iw7/levels/cp_final/boss_arena/vfx_boss_sun.vfx");
level._effect["vfx_clap_hand_tell"] = loadfx("vfx/iw7/levels/cp_final/boss/vfx_clap_hand_tell.vfx");
level._effect["vfx_clap_hand_impact"] = loadfx("vfx/iw7/levels/cp_final/boss/vfx_clap_hand_impact.vfx");
level._effect["vfx_fire_ring_protect"] = loadfx("vfx/iw7/levels/cp_final/boss/vfx_fire_ring_protect.vfx");
level._effect["vfx_zb_ac_gd"] = loadfx("vfx/iw7/levels/cp_final/trap/vfx_zb_ac_gd.vfx");
level._effect["vfx_zb_ac_smk"] = loadfx("vfx/iw7/levels/cp_final/trap/vfx_zb_ac_smk.vfx");
level._effect["vfx_zb__ar_shower_01"] = loadfx("vfx/iw7/levels/cp_final/trap/vfx_zb__ar_shower_01.vfx");
level._effect["vfx_mouth_flame_impact"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_mouth_flame_impact.vfx");
level._effect["vfx_mouth_flame_start"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_mouth_flame_start.vfx");
level._effect["vfx_mouth_flame"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_mouth_flame.vfx");
level._effect["vfx_skeleton_glow_eyes"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_skeleton_glow_eyes.vfx");
level._effect["vfx_meph_black_hole"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_meph_black_hole.vfx");
level._effect["vfx_blowing_snow_low"] = loadfx("vfx/iw7/levels/cp_final/amb/vfx_blowing_snow_low.vfx");
level._effect["vfx_snow_flurries_01"] = loadfx("vfx/iw7/levels/cp_final/amb/vfx_snow_flurries_01.vfx");
level._effect["vfx_zb_final_elec_spark_c"] = loadfx("vfx/iw7/levels/cp_final/trap/vfx_zb_final_elec_spark_c.vfx");
level._effect["vfx_zb_final_elec_spark_b"] = loadfx("vfx/iw7/levels/cp_final/trap/vfx_zb_final_elec_spark_b.vfx");
level._effect["vfx_zb_final_water_elec"] = loadfx("vfx/iw7/levels/cp_final/trap/vfx_zb_final_water_elec.vfx");
level._effect["vfx_death_body"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_death_body.vfx");
level._effect["vfx_clap_wall_raise"] = loadfx("vfx/iw7/levels/cp_final/boss/vfx_clap_wall_raise.vfx");
level._effect["vfx_rotating_asteroids_03"] = loadfx("vfx/iw7/levels/cp_final/amb/vfx_rotating_asteroids_03.vfx");
level._effect["vfx_fireball_throw"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_fireball_throw.vfx");
level._effect["vfx_orange_emerg_lights_02"] = loadfx("vfx/iw7/levels/cp_final/amb/vfx_orange_emerg_lights_02.vfx");
level._effect["vfx_orange_emerg_lights"] = loadfx("vfx/iw7/levels/cp_final/amb/vfx_orange_emerg_lights.vfx");
level._effect["vfx_rotating_asteroids_01"] = loadfx("vfx/iw7/levels/cp_final/amb/vfx_rotating_asteroids_01.vfx");
level._effect["vfx_rotating_asteroids_02"] = loadfx("vfx/iw7/levels/cp_final/amb/vfx_rotating_asteroids_02.vfx");
level._effect["demon_pound_slam_lrg"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/demon_pound_slam_lrg.vfx");
level._effect["vfx_demon_spawn"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_demon_spawn.vfx");
level._effect["vfx_fan_hack"] = loadfx("vfx/iw7/levels/cp_final/fx_fan/vfx_fan_hack.vfx");
level._effect["vfx_demon_ground_spawn"] = loadfx("vfx/iw7/core/zombie/spawn/vfx_zmb_spawn_ground_dirt.vfx");
level._effect["vfx_sun_blocker_end"] = loadfx("vfx/iw7/levels/cp_final/boss_arena/vfx_sunblk_end.vfx ");
level._effect["vfx_head_burn"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_head_burn.vfx");
level._effect["vfx_cape_flame_ri_b"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_cape_flame_ri_b.vfx");
level._effect["vfx_cape_flame_le_b"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_cape_flame_le_b.vfx");
level._effect["vfx_cape_flame_ri_a"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_cape_flame_ri_a.vfx");
level._effect["vfx_cape_flame_le_a"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_cape_flame_le_a.vfx");
level._effect["vfx_brow_flame_ri"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_brow_flame_ri.vfx");
level._effect["vfx_brow_flame_le"] = loadfx("vfx/iw7/levels/cp_final/boss_demon/vfx_brow_flame_le.vfx");
level._effect["soul_jar_d"] = loadfx("vfx/iw7/core/zombie/frontend/vfx_zb_d.vfx");
level._effect["soul_jar_e"] = loadfx("vfx/iw7/core/zombie/frontend/vfx_zb_e.vfx");
level._effect["soul_jar_a"] = loadfx("vfx/iw7/core/zombie/frontend/vfx_zb_c.vfx");
level._effect["soul_jar_t"] = loadfx("vfx/iw7/core/zombie/frontend/vfx_zb_b.vfx");
level._effect["vfx_magicwheel_fire"] = loadfx("vfx/iw7/_requests/coop/vfx_magicwheel_fire.vfx");
level._effect["vfx_magicwheel_toy_pop"] = loadfx("vfx/iw7/core/zombie/magicwheel/vfx_magicwheel_toy_pop.vfx");
level._effect["pillage_box"] = loadfx("vfx/iw7/levels/cp_final/collect/vfx_final_pillage_box.vfx");
level._effect["vfx_zmb_portal_centhub"] = loadfx("vfx/iw7/core/zombie/vfx_zmb_portal_centhub.vfx");
level._effect["melee_impact"] = loadfx("vfx/iw7/core/zombie/vfx_zmb_gore_melee_imp.vfx");
level._effect["vfx_zmb_portal_exit_burst"] = loadfx("vfx/iw7/core/zombie/vfx_zmb_portal_exit_burst.vfx");
level._effect["trap_ww_beam"] = loadfx("vfx/iw7/levels/cp_final/trap/vfx_zb_laser_beam.vfx");
level._effect["trap_ww_beam_death"] = loadfx("vfx/iw7/levels/cp_final/trap/vfx_zb_laser_beam_die.vfx");
level._effect["atomize_body"] = loadfx("vfx/iw7/levels/cp_final/trap/vfx_zb_laser_dead.vfx");
level._effect["laser_screen_dmg"] = loadfx("vfx/iw7/levels/cp_final/trap/vfx_zmb_final_laser_sc.vfx");
level._effect["vfx_zb_laser_lens"] = loadfx("vfx/iw7/levels/cp_final/trap/vfx_zb_laser_lens.vfx");
level._effect["vfx_zb_laser_screen"] = loadfx("vfx/iw7/levels/cp_final/trap/vfx_zmb_final_laser_sc.vfx");
level._effect["console_spark"] = loadfx("vfx/iw7/core/zombie/vfx_zmb_console_sparks.vfx");
level._effect["blackhole_suction"] = loadfx("vfx/iw7/levels/cp_final/trap/vfx_zmb_thea_scrn_vac.vfx");
level._effect["blackhole_trap_death"] = loadfx("vfx/iw7/_requests/coop/vfx_zmb_blackhole_death");
level._effect["electric_shock_plyr"] = loadfx("vfx/iw7/_requests/mp/vfx_arc_gren_scrn_dmg.vfx");
level._effect["cc_ice_burst"] = loadfx("vfx/iw7/_requests/mp/power/vfx_cryo_grenade_exp.vfx");
level._effect["vfx_freezer_frost_scrn"] = loadfx("vfx/iw7/levels/cp_town/vfx_freezer_frost_scrn.vfx");
level._effect["acid_drip"] = loadfx("vfx/iw7/levels/cp_final/trap/vfx_zb__ar_drip_a.vfx");
level._effect["acid_rain_explosion"] = loadfx("vfx/iw7/levels/cp_rave/vfx_hp1_exp.vfx");
level._effect["acid_rain_death"] = loadfx("vfx/iw7/levels/cp_final/trap/vfx_zb_ac_body.vfx");
level._effect["sasquatch_rock_hit"] = loadfx("vfx/iw7/levels/cp_final/trap/vfx_projectile_impact.vfx");
level._effect["vfx_transformer_trap"] = loadfx("vfx/iw7/levels/cp_town/trap/vfx_transformer_trap.vfx");
level._effect["vfx_charge_fuse_beam"] = loadfx("vfx/iw7/levels/cp_final/pap/vfx_fuse_charge_beam.vfx");
level._effect["bridge_place"] = loadfx("vfx/iw7/levels/cp_final/pap/vfx_bridge_place.vfx");
level._effect["fuse_charged"] = loadfx("vfx/iw7/core/zombie/vfx_disco_fuse_charged.vfx");
level._effect["temp_circuit_fx"] = loadfx("vfx/core/alien/vfx_venomx_pap1_exp.vfx");
level._effect["zombie_freeze_shatter"] = loadfx("vfx/iw7/core/zombie/zombie_ice_chunks.vfx");
level._effect["electric_shock_plyr"] = loadfx("vfx/iw7/_requests/mp/vfx_arc_gren_scrn_dmg.vfx");
level._effect["electric_shock_plyr"] = loadfx("vfx/iw7/_requests/mp/vfx_arc_gren_scrn_dmg.vfx");
level._effect["life_link"] = loadfx("vfx/iw7/core/zombie/vfx_zmb_life_link_beam.vfx");
level._effect["life_link_target"] = loadfx("vfx/iw7/core/zombie/cards/vfx_zmb_life_link_beam_send.vfx");
level._effect["powerup_additive_fx"] = loadfx("vfx/iw7/core/zombie/powerups/vfx_pwrup_additive.vfx");
level._effect["bloody_death"] = loadfx("vfx/iw7/core/zombie/cards/vfx_zmb_card_headshot_exp.vfx");
level._effect["extra_cash_kill"] = loadfx("vfx/iw7/core/zombie/vfx_zmb_money_cash_imp_exp.vfx");
level._effect["generic_pickup"] = loadfx("vfx/iw7/core/zombie/vfx_zom_souvenir_pickup.vfx");
level._effect["electric_trap_attack"] = loadfx("vfx/iw7/core/zombie/vfx_disco_trap_beam.vfx");
level._effect["electric_trap_shock"] = loadfx("vfx/iw7/core/zombie/traps/electric_trap/vfx_zmb_hit_shock.vfx");
level._effect["electric_shock_plyr"] = loadfx("vfx/iw7/_requests/mp/vfx_arc_gren_scrn_dmg.vfx");
level._effect["elec_trap_sparks"] = loadfx("vfx/iw7/core/zombie/vfx_zmb_console_sparks.vfx");
level._effect["chi_ghost_death"] = loadfx("vfx/iw7/core/zombie/vfx_zmb_ghost_imp.vfx");
level._effect["fire_chains"] = loadfx("vfx/iw7/core/zombie/cards/vfx_zmb_fcb.vfx");
level._effect["fire_chains_target"] = loadfx("vfx/iw7/core/zombie/cards/vfx_zmb_fcb_imp.vfx");
level._effect["entangler_beam"] = loadfx("vfx/iw7/core/zombie/vfx_zmb_dischord_laser.vfx");
level._effect["energy_door_impact"] = loadfx("vfx/iw7/levels/cp_final/mpq/vfx_ff_impact.vfx");
level._effect["pap1_slowtime"] = loadfx("vfx/core/alien/vfx_venomx_pap1_dam_vol.vfx");
level._effect["pap2_slowtime"] = loadfx("vfx/core/alien/vfx_venomx_pap2_dam_vol.vfx");
level._effect["rhino_emp"] = loadfx("vfx/iw7/levels/cp_final/rhino/vfx_emp_blast.vfx");
level._effect["rhino_pool"] = loadfx("vfx/iw7/levels/cp_final/rhino/vfx_ground_goo.vfx");
level._effect["rhino_pool_sm"] = loadfx("vfx/iw7/levels/cp_final/rhino/vfx_ground_goo_sm.vfx");
level._effect["blue_ark_beam"] = loadfx("vfx/iw7/core/zombie/vfx_zmb_shock_beam_blue.vfx");
level._effect["cc_ice_burst"] = loadfx("vfx/iw7/_requests/mp/power/vfx_cryo_grenade_exp.vfx");
level._effect["cc_fire_burst"] = loadfx("vfx/iw7/levels/cp_town/perk/vfx_zb_perk_exp.vfx");
level._effect["cc_zap_burst"] = loadfx("vfx/iw7/levels/cp_town/perk/vfx_zb_perk_elec.vfx");
level._effect["cc_head_nuke"] = loadfx("vfx/iw7/levels/cp_town/perk/vfx_zb_perk_radi.vfx");
level._effect["target_laser"] = loadfx("vfx/iw7/_requests/mp/power/vfx_trip_mine_beam_friendly.vfx");
level._effect["target_laser_angry"] = loadfx("vfx/iw7/_requests/mp/power/vfx_trip_mine_beam_enemy.vfx");
level._effect["vfx_zb_final_elec_up"] = loadfx("vfx/iw7/levels/cp_final/trap/vfx_zb_final_elec_up.vfx");
level._effect["air_vent_in"] = loadfx("vfx/iw7/levels/cp_final/puzzles/vfx_airlock_vent_lrg_depress.vfx");
level._effect["air_vent_out"] = loadfx("vfx/iw7/levels/cp_final/puzzles/vfx_airlock_vent_lrg_press.vfx");
level._effect["soul_bomb"] = loadfx("vfx/iw7/levels/cp_final/boss/vfx_soul_bomb.vfx");
level._effect["soul_bomb_exp"] = loadfx("vfx/iw7/levels/cp_final/boss/vfx_soul_bomb_exp.vfx");
level._effect["soul_bomb_die"] = loadfx("vfx/iw7/levels/cp_final/boss/vfx_soul_bomb_die.vfx");
level._effect["afterlife_portal_fx"] = loadfx("vfx/iw7/levels/cp_town/vfx_town_portal_afterlife.vfx");
level._effect["shared_fate"] = loadfx("vfx/iw7/levels/cp_rave/vfx_shared_fate_arrow.vfx");
level._effect["blackhole_trap_death"] = loadfx("vfx/iw7/_requests/coop/vfx_zmb_blackhole_death");
level._effect["vfx_screen_flash"] = loadfx("vfx/core/mp/core/vfx_screen_flash");
level._effect["shock_melee_impact"] = loadfx("vfx/iw7/core/zombie/vfx_zmb_elec_knife_impact.vfx");
level._effect["cone_expl_fx"] = loadfx("vfx/iw7/core/muzflash/rvn/vfx_rvn_defib_legend_cone.vfx");
level._effect["exp_touch"] = loadfx("vfx/iw7/levels/cp_rave/vfx_explosive_touch.vfx");
level._effect["lava_torrent"] = loadfx("vfx/iw7/levels/cp_rave/vfx_lava_erupt_fnf.vfx");
level._effect["fire_chains"] = loadfx("vfx/iw7/core/zombie/cards/fire_chains/vfx_zmb_fire_chains_beam.vfx");
level._effect["zombie_freeze_shatter"] = loadfx("vfx/iw7/core/zombie/zombie_ice_chunks.vfx");
level._effect["twister"] = loadfx("vfx/iw7/core/zombie/vfx_fnf_twister.vfx");
level._effect["dodge_ground_spark_fx"] = loadfx("vfx/core/mp/killstreaks/vfx_ims_sparks");
level._effect["dodge_fwd_screen"] = loadfx("vfx/iw7/levels/cp_town/dodge/vfx_zb_fwd.vfx");
level._effect["dodge_back_screen"] = loadfx("vfx/iw7/levels/cp_town/dodge/vfx_zb_back.vfx");
level._effect["dodge_left_screen"] = loadfx("vfx/iw7/levels/cp_town/dodge/vfx_zb_left.vfx");
level._effect["dodge_right_screen"] = loadfx("vfx/iw7/levels/cp_town/dodge/vfx_zb_right.vfx");
level._effect["dodge_fwd_left_screen"] = loadfx("vfx/iw7/levels/cp_town/dodge/vfx_zb_fwd_left.vfx");
level._effect["dodge_fwd_right_screen"] = loadfx("vfx/iw7/levels/cp_town/dodge/vfx_zb_fwd_right.vfx");
level._effect["dodge_back_left_screen"] = loadfx("vfx/iw7/levels/cp_town/dodge/vfx_zb_back_left.vfx");
level._effect["dodge_back_right_screen"] = loadfx("vfx/iw7/levels/cp_town/dodge/vfx_back_right.vfx");
level._effect["dodge_touch"] = loadfx("vfx/iw7/levels/cp_town/dodge/vfx_zb_dodge_touch.vfx");
level._effect["stimulus_shield"] = loadfx("vfx/iw7/levels/cp_town/fnf/vfx_stimulus_heal_scrn.vfx");
level._effect["stimulus_glow_burst"] = loadfx("vfx/iw7/levels/cp_town/fnf/vfx_stimulus_burst.vfx");
level._effect["ammo_crate_ping"] = loadfx("vfx/iw7/levels/cp_town/vfx_cp_town_ammo_flash.vfx");
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,53 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\maps\cp_final\cp_final_player_character_setup.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 2
* Decompile Time: 173 ms
* Timestamp: 10/27/2023 12:05:23 AM
*******************************************************************/
//Function Number: 1
init_player_characters()
{
register_player_character(1,"yes","body_zmb_hero_sally_dlc4","viewmodel_zmb_hero_sally_dlc4","head_zmb_hero_sally_dlc4",undefined,"p1_","_p1","iw7_dlc4pap_zm","ges_zombies_revive_nerd",0,"iw7_dlc4card_zm","mus_zombies_generic_char","iw7_dlc4loadin_zm","iw7_knife_zm_rapper");
register_player_character(2,"yes","body_zmb_hero_dexter_dlc4","viewmodel_zmb_hero_dexter_dlc4","head_zmb_hero_dexter_dlc4",undefined,"p2_","_p2","iw7_dlc4pap_zm","ges_zombies_revive_nerd",1,"iw7_dlc4card_zm","mus_zombies_generic_char","iw7_dlc4loadin_zm","iw7_knife_zm_rapper");
register_player_character(3,"yes","body_zmb_hero_andre_dlc4","viewmodel_zmb_hero_andre_dlc4","head_zmb_hero_andre_dlc4",undefined,"p3_","_p3","iw7_dlc4pap_zm","ges_zombies_revive_nerd",2,"iw7_dlc4card_zm","mus_zombies_generic_char","iw7_dlc4loadin_zm","iw7_knife_zm_rapper");
register_player_character(4,"yes","body_zmb_hero_aj_dlc4","viewmodel_zmb_hero_aj_dlc4","head_zmb_hero_aj_dlc4",undefined,"p4_","_p4","iw7_dlc4pap_zm","ges_zombies_revive_nerd",3,"iw7_dlc4card_zm","mus_zombies_generic_char","iw7_dlc4loadin_zm","iw7_knife_zm_rapper");
}
//Function Number: 2
register_player_character(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B,param_0C,param_0D,param_0E,param_0F)
{
var_10 = spawnstruct();
var_10.body_model = param_02;
var_10.view_model = param_03;
var_10.head_model = param_04;
var_10.hair_model = param_05;
var_10.var_134FD = param_06;
var_10.vo_suffix = param_07;
var_10.pap_gesture = param_08;
var_10.revive_gesture = param_09;
var_10.photo_index = param_0A;
var_10.var_6BA3 = param_0B;
var_10.intro_music = param_0C;
var_10.intro_gesture = param_0D;
var_10.melee_weapon = param_0E;
var_10.post_setup_func = param_0F;
if(!isdefined(level.player_character_info))
{
level.player_character_info = [];
}
if(!isdefined(level.var_26A0))
{
level.var_26A0 = [];
}
level.player_character_info[param_00] = var_10;
if(param_01 == "yes")
{
level.var_26A0[level.var_26A0.size] = param_00;
}
}

View File

@ -0,0 +1,14 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\maps\cp_final\cp_final_precache.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 101 ms
* Timestamp: 10/27/2023 12:05:23 AM
*******************************************************************/
//Function Number: 1
main()
{
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,130 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\maps\cp_final\cp_final_turnstile.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 7
* Decompile Time: 377 ms
* Timestamp: 10/27/2023 12:05:34 AM
*******************************************************************/
//Function Number: 1
turnstile_init()
{
level.turnstile = getent("turnstile","targetname");
level.turnstile thread turnstile_damage_listener();
level thread shoot_piece_into_machine();
level.turnstile_portal = scripts\common\utility::getstruct("turnstile_portal","targetname");
if(!isdefined(level.turnstile_portal))
{
level.turnstile_portal = spawnstruct();
level.turnstile_portal.origin = (2403.5,6996,455);
}
level.turnstile_portal.var_C5D9 = 0;
level._effect["turnstile_teleport"] = loadfx("vfx/iw7/levels/cp_town/vfx_town_telep_diss.vfx");
level._effect["turnstile_teleport_loop"] = loadfx("vfx/iw7/levels/cp_final/turnstile/vfx_loop_telep.vfx");
}
//Function Number: 2
turnstile_damage_listener()
{
level endon("turnstile_success");
self setmodel("cp_disco_subway_turnstyle");
self setcandamage(1);
var_00 = undefined;
for(;;)
{
self waittill("damage",var_01,var_02,var_03,var_04,var_05,var_06,var_07,var_08,var_09,var_0A);
if(isdefined(var_0A))
{
if(var_0A == "iw7_entangler2_zm")
{
var_02.has_turnstile = 1;
var_00 = var_02;
level.turnstile_piece = spawn("script_model",var_04);
var_0B = "cp_final_subway_turnstyle_arm";
level.turnstile_piece setmodel(var_0B);
var_00.entangledmodel = level.turnstile_piece;
break;
}
}
}
self setmodel("cp_disco_subway_turnstyle_missing_arm");
var_0C = spawnstruct();
level.turnstile_piece.collisionfunc = ::check_turnstile_collision;
level.turnstile_piece thread turnstile_check();
scripts\cp\crafted_entangler::entangleitem(var_00,var_0C,level.turnstile_piece);
}
//Function Number: 3
check_turnstile_collision(param_00,param_01,param_02)
{
level endon("game_ended");
level endon("turnstile_success");
param_00 waittill("collision");
level.turnstile_piece delete();
level.turnstile thread turnstile_damage_listener();
}
//Function Number: 4
shoot_piece_into_machine()
{
for(;;)
{
level waittill("70s_activated");
var_00 = spawn("script_model",level.turnstile_portal.origin);
level.turnstile_portal.var_C5D9 = 1;
var_00 setmodel("tag_origin_turnstile_portal");
level thread portal_timer(100);
var_01 = scripts\common\utility::func_13734("portal_timeout","turnstile_success");
level.turnstile_portal.var_C5D9 = 0;
var_00 setscriptablepartstate("portal","portal_end");
if(var_01 == "turnstile_success")
{
foreach(var_03 in level.players)
{
var_03 lib_0D2A::func_12D7C("MESSAGE_SENT",1);
}
level.turnstile_piece delete();
return;
}
}
}
//Function Number: 5
portal_timer(param_00)
{
wait(param_00);
level notify("portal_timeout");
}
//Function Number: 6
turnstile_check()
{
self endon("death");
var_00 = 0;
var_01 = 250;
var_02 = var_01 * var_01;
for(;;)
{
if(level.turnstile_portal.var_C5D9)
{
if(distancesquared(level.turnstile_portal.origin,self.origin) < var_02)
{
level thread turnstile_sent();
return;
}
}
scripts\common\utility::func_136F7();
}
}
//Function Number: 7
turnstile_sent()
{
level notify("turnstile_success");
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,827 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\maps\cp_final\cp_final_vo.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 26
* Decompile Time: 1292 ms
* Timestamp: 10/27/2023 12:05:43 AM
*******************************************************************/
//Function Number: 1
final_vo_init()
{
level.var_DDBC = [];
level.var_2001 = 0;
level.elvira_playing = 0;
level.var_D336 = 0;
level.var_ABE9 = ::rave_vo_callouts;
level.pap_vo_approve_func = ::is_vo_in_pap;
level.get_alias_2d_func = ::scripts\cp\_vo::func_77ED;
level.var_10815 = ::final_starting_vo;
level thread rave_vo_callouts();
level.var_5472 = [];
level thread func_12E45();
level waittill("activate_power");
}
//Function Number: 2
rave_vo_callouts(param_00)
{
level.var_134DC["final_announcer_vo"] = ::func_2000;
level.var_134DC["final_ww_vo"] = ::func_13E0C;
level.var_134DC["zmb_powerup_vo"] = ::func_CE7E;
level.var_134DC["zmb_afterlife_vo"] = ::func_18E9;
level.var_134DC["rave_pap_vo"] = ::pap_vo_handler;
level.var_134DC["rave_dialogue_vo"] = ::func_549B;
level.var_134DC["final_backstory_vo"] = ::backstory_vo_handler;
}
//Function Number: 3
func_177A(param_00)
{
level.var_DDBC[param_00] = func_7BFF(param_00);
}
//Function Number: 4
func_1779(param_00)
{
self.var_DDBC[param_00] = func_7BFF(param_00);
}
//Function Number: 5
func_7BFF(param_00)
{
if(!isdefined(level.var_134B4[param_00].var_4613))
{
return 0;
}
return level.var_134B4[param_00].var_4613;
}
//Function Number: 6
func_12E45()
{
level endon("game_ended");
for(;;)
{
foreach(var_02, var_01 in level.var_DDBC)
{
if(scripts\common\utility::istrue(level.var_DDBC[var_02]))
{
level.var_DDBC[var_02] = level.var_DDBC[var_02] - 1;
}
}
wait(1);
}
}
//Function Number: 7
func_12E22()
{
self endon("disconnect");
for(;;)
{
foreach(var_02, var_01 in self.var_DDBC)
{
if(scripts\common\utility::istrue(self.var_DDBC[var_02]))
{
self.var_DDBC[var_02] = self.var_DDBC[var_02] - 1;
}
}
wait(1);
}
}
//Function Number: 8
func_549B(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
{
if(!scripts\cp\_music_and_dialog::func_3837())
{
return;
}
var_08 = isdefined(level.var_134B4[param_00]);
scripts\cp\_vo::func_F60C(1);
var_09 = scripts\cp\_music_and_dialog::func_7DD2(param_00,var_08);
level.var_540D = var_09;
while(scripts\cp\_music_and_dialog::func_134DF())
{
wait(0.1);
}
level.dialogues_playing = 1;
if(isdefined(level.masterpcinteraction))
{
scripts\cp\_interaction::remove_from_current_interaction_list(level.masterpcinteraction);
}
if(isdefined(level.backstoryinteraction))
{
scripts\cp\_interaction::remove_from_current_interaction_list(level.backstoryinteraction);
}
if(scripts\common\utility::istrue(param_07))
{
var_0A = self;
var_0A play_special_vo_dialogue(var_09,var_08,param_03,param_05,param_06);
scripts\common\utility::func_136F7();
}
else
{
foreach(var_13, var_0C in var_0A)
{
var_0D = 0;
var_0E = undefined;
if(var_08 && isdefined(level.var_134B4[var_0C].var_54AA))
{
var_0E = level.var_134B4[var_0C].var_54AA;
var_0F = var_0E + var_0C;
}
else if(issubstr(var_0C,"ww_") || issubstr(var_0C,"ks_"))
{
var_0F = var_0C;
var_0D = 1;
}
else
{
continue;
}
foreach(var_0A in level.players)
{
if((isdefined(var_0E) && var_0A.var_134FD == var_0E) || var_0D || getdvarint("scr_solo_dialogue",0) == 1)
{
var_11 = scripts\cp\_vo::func_4978(var_0F,param_03,param_05,param_06);
var_0A scripts\cp\_vo::func_F60D(1);
var_0A scripts\cp\_vo::func_F60B(var_11);
var_0A scripts\cp\_vo::func_CE77(var_11);
var_0A scripts\cp\_vo::func_C9B8(var_11);
var_0A scripts\cp\_vo::func_12C63();
break;
}
}
scripts\common\utility::func_136F7();
}
}
foreach(var_0A in level.players)
{
var_0A scripts\cp\_vo::func_F60D(0);
}
level.dialogues_playing = 0;
if(isdefined(level.masterpcinteraction))
{
scripts\cp\_interaction::add_to_current_interaction_list(level.masterpcinteraction);
}
if(isdefined(level.backstoryinteraction))
{
scripts\cp\_interaction::add_to_current_interaction_list(level.backstoryinteraction);
}
scripts\cp\_vo::func_F60C(0);
}
//Function Number: 9
play_special_vo_dialogue(param_00,param_01,param_02,param_03,param_04,param_05)
{
var_06 = 0;
var_07 = "";
while(var_06 < param_00.size)
{
var_08 = 1;
var_09 = undefined;
if(param_01 && isdefined(level.var_134B4[param_00[var_06]].var_54AA))
{
var_09 = level.var_134B4[param_00[var_06]].var_54AA;
var_07 = var_09 + param_00[var_06];
}
else if(issubstr(param_00[var_06],"ks_"))
{
var_07 = param_00[var_06];
var_08 = 1;
if(isdefined(level.survivor))
{
if(isdefined(level.boat_survivor))
{
scripts\common\utility::play_sound_in_space(var_07,level.boat_survivor.origin,0,level.boat_survivor);
}
else
{
scripts\common\utility::play_sound_in_space(var_07,level.survivor.origin,0,level.survivor);
}
wait(scripts\cp\_vo::func_7C76(var_07));
}
else if(isdefined(level.boat_survivor))
{
scripts\common\utility::play_sound_in_space(var_07,level.boat_survivor.origin,0,level.boat_survivor);
wait(scripts\cp\_vo::func_7C76(var_07));
}
else
{
var_0A = scripts\cp\_vo::func_4978(var_07,param_02,param_03,param_04,param_00[var_06]);
scripts\cp\_vo::func_CE8B(var_0A,param_05);
}
var_06++;
continue;
}
else
{
continue;
scripts\common\utility::func_136F7();
}
if(((isdefined(var_09) && self.var_134FD == var_09) || var_08 || getdvarint("scr_solo_dialogue",0) == 1) && !issubstr(var_07,"ks_"))
{
var_0A = scripts\cp\_vo::func_4978(var_07,param_02,param_03,param_04,param_00[var_06]);
scripts\cp\_vo::func_CE8B(var_0A);
var_06++;
}
scripts\common\utility::func_136F7();
}
}
//Function Number: 10
pap_vo_handler(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
if(!scripts\cp\_vo::func_FF12(param_00))
{
thread scripts\cp\_vo::func_CE8A(param_00,param_02,param_03,param_04,param_05,param_06,param_00);
return;
}
var_07 = self.var_134FD + param_00;
thread scripts\cp\_vo::func_CE8A(var_07,param_02,param_03,param_04,param_05,param_06,param_00);
}
//Function Number: 11
func_18E9(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
if(!scripts\cp\_vo::func_FF12(param_00))
{
thread scripts\cp\_vo::func_CE8A(param_00,param_02,param_03,param_04,param_05,param_06,param_00);
return;
}
var_07 = self.var_134FD + param_00;
thread scripts\cp\_vo::func_CE8A(var_07,param_02,param_03,param_04,param_05,param_06,param_00);
}
//Function Number: 12
func_13E0C(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
level endon(param_00 + "_timed_out");
level thread scripts\cp\_vo::func_11908(param_00,param_03);
while(scripts\cp\_vo::func_9D13())
{
wait(0.1);
}
scripts\cp\_vo::func_F60C(1);
while(scripts\cp\_music_and_dialog::func_134DF())
{
wait(0.1);
}
level notify(param_00 + "_about_to_play");
foreach(var_08 in level.players)
{
if(!isdefined(var_08))
{
continue;
}
if(var_08 issplitscreenplayer() && !var_08 issplitscreenplayerprimary())
{
continue;
}
var_09 = scripts\cp\_vo::func_4978(param_00,param_03,param_05,param_06);
var_08 thread scripts\cp\_vo::func_CE8B(var_09);
}
wait(scripts\cp\_vo::func_7C76(param_00));
foreach(var_08 in level.players)
{
var_08 scripts\cp\_vo::func_F60D(0);
}
scripts\cp\_vo::func_F60C(0);
}
//Function Number: 13
func_2000(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
func_CC8F(param_00,param_01,param_02,param_03,param_04,param_05,param_06);
}
//Function Number: 14
is_vo_in_pap(param_00)
{
if(isdefined(level.var_134B4[param_00].pap_approval))
{
if(level.var_134B4[param_00].pap_approval == 1)
{
return 0;
}
return 1;
}
return 1;
}
//Function Number: 15
func_CC8F(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
{
if(scripts\cp\_vo::func_9D13())
{
wait(5);
if(scripts\cp\_vo::func_9D13())
{
return;
}
}
if(scripts\cp\_vo::func_9D14())
{
return;
}
level.var_2001 = 1;
scripts\cp\_vo::func_F60C(1);
if(isdefined(param_07))
{
param_00 = param_07 + param_00;
}
if(!soundexists(param_00))
{
wait(0.1);
level.var_2001 = 0;
return;
}
foreach(var_09 in level.players)
{
if(!isdefined(var_09))
{
continue;
}
if(var_09 issplitscreenplayer() && !var_09 issplitscreenplayerprimary())
{
continue;
}
else
{
var_0A = scripts\cp\_vo::func_4978(param_00,param_03,param_05,param_06);
var_09 thread scripts\cp\_vo::func_CE8B(var_0A);
}
}
wait(scripts\cp\_vo::func_7C76(param_00));
foreach(var_09 in level.players)
{
var_09 scripts\cp\_vo::func_F60D(0);
}
scripts\cp\_vo::func_F60C(0);
func_1094A(param_00);
level.var_2001 = 0;
}
//Function Number: 16
func_1094A(param_00)
{
if(param_00 == "dj_jingle_intro")
{
level notify("jukebox_start");
}
}
//Function Number: 17
func_CE7E(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
wait(0.5);
if(level.script == "cp_town")
{
func_2000("el_" + param_00,"final_ww_vo","highest",60,0,0,1);
if(randomint(100) > 50)
{
func_2000("ww_powerup_elvira","final_ww_vo","highest",60,0,0,1);
wait(3);
}
}
else
{
func_2000("ww_" + param_00,"final_ww_vo","highest",60,0,0,1);
}
param_00 = func_45EA(param_00);
foreach(var_08 in level.players)
{
if(isdefined(var_08) && isalive(var_08))
{
var_08 thread scripts\cp\_vo::try_to_play_vo(param_00,"final_comment_vo");
}
}
}
//Function Number: 18
func_45EA(param_00)
{
switch(param_00)
{
case "powerup_carpenter":
case "powerup_maxammo":
case "powerup_instakill":
case "powerup_nuke":
case "powerup_firesale":
return param_00;
case "powerup_doublemoney":
return "powerup_2xmoney";
case "powerup_infiniteammo":
return "powerup_ammo";
case "powerup_infinitegrenades":
return "powerup_grenade";
default:
return param_00;
}
}
//Function Number: 19
func_13D1F()
{
level endon("game_ended");
level scripts\common\utility::waittill_any_3("regular_wave_starting","event_wave_starting");
if(scripts\common\utility::istrue(level.directors_cut_is_activated))
{
level thread scripts\cp\_vo::try_to_play_vo("ww_zmb_dc_intro","zmb_ww_vo","highest",30,0,0,1,100);
return;
}
if(level.players.size > 1)
{
level thread scripts\cp\_vo::try_to_play_vo("ww_intro","final_ww_vo","highest",30,0,0,1,100);
return;
}
if(level.players[0].var_134FD == "p5_")
{
if(randomint(100) > 50)
{
level.players[0] thread scripts\cp\_vo::try_to_play_vo("ww_intro_p5_solo","final_ww_vo","highest",30,0,0,1,100);
return;
}
level.players[0] thread scripts\cp\_vo::try_to_play_vo("ww_intro" + level.players[0].vo_suffix,"final_ww_vo","highest",30,0,0,1,100);
return;
}
level.players[0] thread scripts\cp\_vo::try_to_play_vo("ww_intro" + level.players[0].vo_suffix,"final_ww_vo","highest",30,0,0,1,100);
}
//Function Number: 20
power_nag()
{
level endon("game_ended");
level endon("found_power");
var_00 = 0;
for(;;)
{
level waittill("wave_start_sound_done");
if(level.wave_num > 0 && level.wave_num % 3 == 0)
{
if(!var_00)
{
var_00 = 1;
foreach(var_02 in level.players)
{
var_02 thread scripts\cp\_vo::func_1769("nag_find_pap","zmb_comment_vo",200,200,3,1);
}
}
continue;
}
}
}
//Function Number: 21
purchase_area_vo(param_00,param_01)
{
if(scripts\common\utility::istrue(level.var_C617))
{
return;
}
if(scripts\common\utility::istrue(param_01.played_vo))
{
param_01.played_vo = 0;
return;
}
param_01.played_vo = 1;
if(randomint(100) < 50)
{
param_01 thread scripts\cp\_vo::try_to_play_vo("purchase_area","final_comment_vo","highest",70,0,0,1);
}
param_01.played_vo = 1;
}
//Function Number: 22
final_starting_vo()
{
scripts\common\utility::flag_wait("intro_gesture_done");
if(scripts\cp\_music_and_dialog::func_3837())
{
var_00 = randomint(100);
if(var_00 <= 30)
{
scripts\cp\_vo::try_to_play_vo_on_all_players("spawn_team_first");
foreach(var_02 in level.players)
{
var_03 = scripts\cp\_vo::func_7C76(var_02.var_134FD + "spawn_team_first");
wait(var_03);
}
level thread func_13D1F();
return;
}
var_05 = scripts\common\utility::random(level.players);
if(isdefined(var_05.var_134FD))
{
switch(var_05.var_134FD)
{
case "p1_":
if(randomint(100) > 50)
{
level thread scripts\cp\_vo::try_to_play_vo("conv_spawn_1_1","rave_dialogue_vo","highest",666,0,0,0,100);
level.var_4481["conv_spawn_1_1"] = 1;
}
else
{
level thread scripts\cp\_vo::try_to_play_vo("conv_spawn_alt_1_1","rave_dialogue_vo","highest",666,0,0,0,100);
level.var_4481["conv_spawn_alt_1_1"] = 1;
}
break;
case "p2_":
if(randomint(100) > 50)
{
level thread scripts\cp\_vo::try_to_play_vo("conv_spawn_3_1","rave_dialogue_vo","highest",666,0,0,0,100);
level.var_4481["conv_spawn_3_1"] = 1;
}
else
{
level thread scripts\cp\_vo::try_to_play_vo("conv_spawn_alt_3_1","rave_dialogue_vo","highest",666,0,0,0,100);
level.var_4481["conv_spawn_alt_3_1"] = 1;
}
break;
case "p3_":
if(randomint(100) > 50)
{
level thread scripts\cp\_vo::try_to_play_vo("conv_spawn_alt_2_1","rave_dialogue_vo","highest",666,0,0,0,100);
level.var_4481["conv_spawn_alt_2_1"] = 1;
}
break;
case "p4_":
if(randomint(100) > 60)
{
level thread scripts\cp\_vo::try_to_play_vo("conv_spawn_2_1","rave_dialogue_vo","highest",666,0,0,0,100);
level.var_4481["conv_spawn_2_1"] = 1;
}
else
{
var_06 = randomint(100);
if(var_06 <= 60 && var_06 > 30)
{
level thread scripts\cp\_vo::try_to_play_vo("conv_spawn_4_1","rave_dialogue_vo","highest",666,0,0,0,100);
level.var_4481["conv_spawn_4_1"] = 1;
}
else
{
level thread scripts\cp\_vo::try_to_play_vo("conv_spawn_alt_4_1","rave_dialogue_vo","highest",666,0,0,0,100);
level.var_4481["conv_spawn_alt_4_1"] = 1;
}
}
break;
default:
break;
}
}
level thread func_13D1F();
return;
}
if(level.players.size > 1)
{
foreach(var_08 in level.players)
{
if(var_08 issplitscreenplayer())
{
if(var_08 issplitscreenplayerprimary())
{
if(isdefined(var_08.var_134FD))
{
if(var_08.var_134FD == "p5_")
{
var_08 multiple_elviras_intro_vo(var_08);
}
else
{
var_08 thread scripts\cp\_vo::try_to_play_vo("spawn_team_first","final_comment_vo","high",20,0,0,1);
}
}
}
continue;
}
if(isdefined(var_08.var_134FD))
{
if(var_08.var_134FD == "p5_")
{
var_08 multiple_elviras_intro_vo(var_08);
continue;
}
var_08 thread scripts\cp\_vo::try_to_play_vo("spawn_team_first","final_comment_vo","high",20,0,0,1);
}
}
foreach(var_0B in level.players)
{
var_03 = scripts\cp\_vo::func_7C76(var_0B.var_134FD + "spawn_team_first");
wait(var_03);
}
level thread func_13D1F();
return;
}
var_0D = scripts\common\utility::random(["spawn_intro","spawn_solo_first"]);
level.players[0] thread scripts\cp\_vo::try_to_play_vo(var_0D,"final_comment_vo","high",20,0,0,1);
var_03 = scripts\cp\_vo::func_7C76(level.players[0].var_134FD + var_0D);
if(isdefined(var_03))
{
wait(var_03);
}
level thread func_13D1F();
}
//Function Number: 23
multiple_elviras_intro_vo(param_00)
{
if(!isdefined(level.special_character_count))
{
return;
}
if(!isdefined(param_00))
{
return;
}
switch(level.special_character_count)
{
case 1:
param_00 thread scripts\cp\_vo::try_to_play_vo("spawn_intro","final_comment_vo");
break;
case 2:
param_00 thread scripts\cp\_vo::try_to_play_vo("p5_players_3","final_comment_vo");
break;
case 3:
param_00 thread scripts\cp\_vo::try_to_play_vo("p5_players_3","final_comment_vo");
break;
case 4:
param_00 thread scripts\cp\_vo::try_to_play_vo("p5_players_4","final_comment_vo");
break;
default:
break;
}
}
//Function Number: 24
can_play_backstory_vo()
{
if(scripts\common\utility::istrue(level.started_backstory_dialogue))
{
return 0;
}
if(scripts\common\utility::istrue(level.dialogues_playing))
{
return 0;
}
return 1;
}
//Function Number: 25
clear_up_all_vo(param_00)
{
foreach(var_02 in level.var_134FE)
{
if(isdefined(param_00.var_13516.var_134FF[var_02]) && param_00.var_13516.var_134FF[var_02].size > 0)
{
foreach(var_04 in param_00.var_13516.var_134FF[var_02])
{
if(isdefined(var_04))
{
param_00 stoplocalsound(var_04.var_1B46);
}
}
}
}
var_07 = undefined;
if(isdefined(param_00.var_13516))
{
if(isdefined(param_00.var_13516.var_134C6))
{
if(isdefined(param_00.var_13516.var_134C6.var_1B46))
{
var_07 = param_00.var_13516.var_134C6.var_1B46;
}
}
}
if(isdefined(var_07))
{
param_00 stoplocalsound(var_07);
}
}
//Function Number: 26
backstory_vo_handler(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
if(!can_play_backstory_vo())
{
return;
}
clear_up_all_vo(self);
scripts\cp\_vo::func_C9CB([self]);
self.started_backstory_dialogue = 1;
if(isdefined(level.masterpcinteraction))
{
scripts\cp\_interaction::remove_from_current_interaction_list(level.masterpcinteraction);
}
if(isdefined(level.backstoryinteraction))
{
scripts\cp\_interaction::remove_from_current_interaction_list(level.backstoryinteraction);
}
var_07 = scripts\cp\_vo::func_4978(param_00,param_03,param_05,param_06);
scripts\cp\_vo::func_F60D(1);
scripts\cp\_vo::func_F60B(var_07);
scripts\cp\_vo::func_CE77(var_07);
scripts\cp\_vo::func_12C63();
self.started_backstory_dialogue = 0;
if(isdefined(self.samcrossvoarr))
{
self.samcrossvoarr = scripts\common\utility::func_22A9(self.samcrossvoarr,param_00);
}
if(isdefined(self.backstoryvoarr))
{
self.backstoryvoarr = scripts\common\utility::func_22A9(self.backstoryvoarr,param_00);
}
scripts\cp\_vo::func_12BE3([self]);
if(isdefined(level.masterpcinteraction))
{
scripts\cp\_interaction::add_to_current_interaction_list(level.masterpcinteraction);
}
if(isdefined(level.backstoryinteraction))
{
scripts\cp\_interaction::add_to_current_interaction_list(level.backstoryinteraction);
}
}

View File

@ -0,0 +1,955 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\maps\cp_final\cp_final_weapon_upgrade.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 27
* Decompile Time: 1401 ms
* Timestamp: 10/27/2023 12:05:45 AM
*******************************************************************/
//Function Number: 1
init_weapon_upgrade()
{
level.pap_room_func = ::cp_town_pap_machine_func;
level.max_pap_func = ::func_385F;
func_94F2();
}
//Function Number: 2
func_94F2()
{
var_00 = scripts\common\utility::getstructarray("weapon_upgrade","script_noteworthy");
level.var_7D63 = ::scripts\cp\_weapon::func_7D62;
foreach(var_02 in var_00)
{
var_02.var_D776 = 1;
var_02 thread func_9795();
}
}
//Function Number: 3
func_9795()
{
if(scripts\common\utility::istrue(self.var_E1B9))
{
level scripts\common\utility::waittill_any_3("power_on",self.var_D71C + " power_on");
}
var_00 = getent("pap_machine","targetname");
if(!isdefined(var_00))
{
return;
}
if(isdefined(level.pap_room_func))
{
[[ level.pap_room_func ]](self,var_00);
return;
}
var_00 setscriptablepartstate("door","open_idle");
var_00 setscriptablepartstate("reels","on");
self.var_D776 = 1;
}
//Function Number: 4
set_fuse_icon_on_hotjoin(param_00)
{
level notify("stop_hotjoin_fuse");
level endon("stop_hotjoin_fuse");
for(;;)
{
level waittill("connected",var_01);
var_01 setclientomnvar("zm_special_item",param_00);
}
}
//Function Number: 5
func_13C62(param_00,param_01)
{
param_01 endon("disconnect");
if(scripts\common\utility::istrue(level.has_picked_up_fuses) && !isdefined(level.placed_alien_fuses))
{
level.placed_alien_fuses = 1;
level thread place_fuses_in_machine(param_00,param_01);
param_01 thread scripts\cp\_vo::try_to_play_vo("quest_pap_fuse_deposit","zmb_comment_vo");
foreach(var_03 in level.players)
{
var_03 setclientomnvar("zm_special_item",0);
}
level thread set_fuse_icon_on_hotjoin(0);
return;
}
var_05 = var_04 getcurrentweapon();
var_06 = scripts\cp\_utility::func_80D8(var_05);
var_07 = var_04 scripts\cp\_weapon::func_7D62(var_06);
var_08 = undefined;
var_09 = get_player_fists_weapon(var_04);
var_0A = "none";
var_0B = undefined;
var_0C = 0;
if(!can_use_pap_machine(var_06))
{
return;
}
if(scripts\common\utility::istrue(var_04.hasentanglerequipped))
{
return;
}
if(var_04 func_385F(var_05))
{
scripts\cp\_interaction::remove_from_current_interaction_list(var_03);
var_0D = scripts\common\utility::getstruct(var_03.target,"targetname");
var_0E = vectornormalize(anglestoforward(var_04.angles)) * 16;
var_07 = int(var_07);
var_07++;
var_0F = var_05;
var_10 = validate_current_weapon(var_07,var_06,var_05);
var_08 = get_pap_offhand_weapon(var_04,var_05);
var_0B = get_pap_camo(var_07,var_06,var_05);
var_0C = should_use_old_model(var_07,var_06,var_05);
process_pap_stat_logging(var_06,var_04);
thread play_pap_vo(var_04);
var_0A = return_pap_attachment(var_04,var_07,var_06,var_05);
if(isdefined(var_0A) && var_0A == "replace_me")
{
var_0A = undefined;
}
var_11 = filter_current_weapon_attachments(var_05);
var_12 = remove_invalid_wm_attachments(var_11);
var_05 = var_04 scripts\cp\_weapon::func_E469(var_10,undefined,var_12);
var_13 = var_04 scripts\cp\_weapon::func_E469(var_10,var_0A,var_12,undefined,var_0B);
var_14 = var_04 scripts\cp\_weapon::func_E469(var_10,var_0A,var_11,undefined,var_0B);
if(var_0C)
{
var_15 = spawn("script_weapon",var_04 geteye() + var_0E,0,0,var_0F);
}
else
{
var_15 = spawn("script_weapon",var_05 geteye() + var_0F,0,0,var_06);
}
var_15.angles = var_03.angles;
if(var_0C)
{
var_16 = disco_getoffsetfrombaseweaponname(var_0F);
}
else
{
var_16 = disco_getoffsetfrombaseweaponname(var_15);
}
level thread func_DF48(var_04,var_15,var_03);
level notify("pap_used",var_04,var_07,var_14);
var_15 makeunusable();
var_04 thread disco_playpapgesture(var_04,var_04.pap_gesture,var_08,var_05,var_0F);
var_04.var_C8AB = var_05;
if(var_0C)
{
var_17 = getangleoffset(var_0F,var_0D);
}
else
{
var_17 = getangleoffset(var_15,var_0E);
}
var_18 = lib_0D41::func_8087(var_06);
var_15 moveto(var_0D.origin + var_18,0.75);
var_15 rotateto(var_17,0.75);
var_15 waittill("movedone");
var_15 moveto(var_0D.origin + var_16,0.25);
var_15 waittill("movedone");
update_level_pap_machines("door","close",undefined,undefined,"zmb_packapunch_machine_on");
wait(0.75);
if(!scripts\common\utility::flag("fuses_inserted"))
{
update_level_pap_machines("papfx","normal","papfx","upgraded");
}
wait(3.5);
update_level_pap_machines("door","decomp");
wait(0.8);
var_15 method_8536(var_13);
wait(0.4);
update_level_pap_machines("door","open_idle");
update_level_pap_machines("papfx","idle");
wait(0.5);
var_15 makeusable();
var_15 method_84A2(100);
if(var_04 scripts\cp\_utility::is_valid_player())
{
foreach(var_19 in level.players)
{
if(var_19 == var_03)
{
var_14 enableplayeruse(var_19);
continue;
}
var_14 disableplayeruse(var_19);
}
if(var_0F == "iw7_venomx_zm_pap2")
{
var_03 lib_0D2A::func_12D7C("ENCRYPT_DECRYPT",1);
}
var_03 scripts\cp\_merits::func_D9AD("mt_upgrade_weapons");
}
var_15 thread func_1360B(var_14,var_09,var_07);
var_15 scripts\common\utility::waittill_any_timeout_1(30,"weapon_taken");
var_04 notify("weapon_purchased");
var_04.var_C8AB = undefined;
var_04 scripts\cp\_interaction::func_DE6E();
var_04 scripts\cp\_merits::func_D9AD("mt_dlc4_upgrade_weapons");
var_15 delete();
wait(1);
scripts\cp\_interaction::add_to_current_interaction_list(var_03);
level notify("pap_machine_activated");
}
}
//Function Number: 6
func_1360B(param_00,param_01,param_02)
{
self endon("death");
level endon("pap_machine_activated");
var_03 = undefined;
for(;;)
{
self waittill("trigger",var_03);
if(scripts\common\utility::istrue(var_03.hasentanglerequipped))
{
continue;
}
else
{
break;
}
}
if(!isdefined(param_01))
{
param_01 = "iw7_fists_zm";
}
if(var_03 hasweapon(param_01))
{
var_03 takeweapon(param_01);
}
if(var_03 scripts\cp\_weapon::func_8BBB(param_00))
{
var_04 = scripts\cp\_utility::func_80D8(param_00);
foreach(var_06 in var_03 getweaponslistall())
{
var_07 = scripts\cp\_utility::func_80D8(var_06);
if(var_04 == var_07)
{
var_03 takeweapon(var_06);
}
}
}
if(lib_0D41::func_FFA6(var_03))
{
var_09 = var_03 getcurrentweapon();
var_0A = scripts\cp\_utility::func_80D8(var_09);
var_03 takeweapon(var_09);
}
self notify("weapon_taken");
param_00 = var_03 scripts\cp\_utility::func_12C6(param_00,undefined,undefined,0);
if(issubstr(param_00,"venomx_zm_pap1"))
{
var_03 thread scripts\cp\_vo::try_to_play_vo("weapon_pap_venx_1","final_comment_vo");
}
else if(issubstr(param_00,"venomx_zm_pap2"))
{
var_03 thread scripts\cp\_vo::try_to_play_vo("weapon_pap_venx_2","final_comment_vo");
}
var_03 givemaxammo(param_00);
var_0B = var_03 getweaponslistprimaries();
foreach(var_06 in var_0B)
{
if(issubstr(var_06,param_00))
{
if(scripts\cp\_utility::func_9D3E(var_06))
{
var_04 = getweaponbasename(var_06);
if(isdefined(level.mode_weapons_allowed) && scripts\common\utility::func_2286(level.mode_weapons_allowed,var_04))
{
param_00 = "alt_" + param_00;
break;
}
}
}
}
var_03 switchtoweapon(param_00);
var_04 = scripts\cp\_utility::func_80D8(param_00);
var_03.var_C8A2[var_04].var_B111++;
var_03 scripts\cp\_persistence::give_player_xp(500,1);
var_03 notify("weapon_level_changed");
}
//Function Number: 7
disco_playpapgesture(param_00,param_01,param_02,param_03,param_04)
{
var_05 = get_player_fists_weapon(param_00);
param_00 scripts\cp\_utility::func_12C6(var_05,undefined,undefined,1);
param_00 method_83B6(var_05);
param_00 takeweapon(param_04);
wait(1);
thread scripts\cp\_utility::firegesturegrenade(param_00,param_01);
wait(2.5);
if(isdefined(param_02))
{
param_00 method_83B6(param_02);
if(param_00 hasweapon(var_05))
{
param_00 takeweapon(var_05);
}
}
}
//Function Number: 8
get_player_fists_weapon(param_00)
{
if(isdefined(param_00.var_134FD))
{
switch(param_00.var_134FD)
{
case "p1_":
return "iw7_fists_zm";
case "p2_":
return "iw7_fists_zm";
case "p3_":
return "iw7_fists_zm";
case "p4_":
return "iw7_fists_zm";
case "p5_":
return "iw7_fists_zm";
default:
return "iw7_fists_zm";
}
return;
}
return "iw7_fists_zm";
}
//Function Number: 9
getangleoffset(param_00,param_01)
{
var_02 = scripts\cp\_utility::func_7DF7(param_00);
var_03 = param_01.angles;
switch(var_02)
{
case "iw7_nunchucks":
case "iw7_katana":
case "iw7_spiked":
case "iw7_golf":
case "iw7_two":
case "iw7_machete":
return (90,90,0);
default:
return var_03;
}
}
//Function Number: 10
disco_getoffsetfrombaseweaponname(param_00)
{
var_01 = scripts\cp\_utility::func_7DF7(param_00);
var_02 = lib_0D41::func_801F(param_00);
switch(var_01)
{
case "iw7_machete":
return (0,-6,2);
case "iw7_two":
return (0,-8,2);
case "iw7_spiked":
case "iw7_golf":
return (0,-12,2);
case "iw7_nunchucks":
case "iw7_katana":
return (0,-12,2);
default:
return var_02;
}
}
//Function Number: 11
return_pap_attachment(param_00,param_01,param_02,param_03,param_04)
{
var_05 = undefined;
if(isdefined(param_02))
{
switch(param_02)
{
case "spiked":
case "golf":
case "two":
case "machete":
case "katana":
case "nunchucks":
case "venomx":
return "replace_me";
default:
if(scripts\common\utility::istrue(param_04))
{
return undefined;
}
if(isdefined(param_00.var_C8A2[param_02]))
{
return "pap" + param_00.var_C8A2[param_02].var_B111;
}
else
{
return "pap1";
}
break;
}
}
return var_05;
}
//Function Number: 12
cp_town_pap_machine_func(param_00,param_01)
{
level.pap_machine = param_01;
level.pap_machine hide();
param_00.var_D776 = 1;
}
//Function Number: 13
place_fuses_in_machine(param_00,param_01)
{
scripts\cp\_interaction::remove_from_current_interaction_list(param_00);
scripts\cp\maps\cp_final\cp_final_interactions::generic_place_gesture_and_fx(param_01,param_00);
upgrade_machine_for_all_players();
update_level_pap_machines("door","close");
wait(0.5);
update_level_pap_machines("machine","upgraded");
wait(0.25);
update_level_pap_machines("reels","neutral");
wait(0.25);
update_level_pap_machines("reels","on");
wait(0.25);
update_level_pap_machines("door","open_idle");
wait(0.25);
scripts\cp\_interaction::add_to_current_interaction_list(param_00);
if(param_01 scripts\cp\_utility::is_valid_player())
{
param_01 thread scripts\cp\_vo::try_to_play_vo("pap_upgrade","zmb_pap_vo","high");
}
}
//Function Number: 14
upgrade_machine_for_all_players()
{
foreach(var_01 in level.player_pap_machines)
{
var_01 setmodel("zmb_pap_machine_animated_soul_key");
}
scripts\common\utility::func_136F7();
}
//Function Number: 15
update_level_pap_machines(param_00,param_01,param_02,param_03,param_04)
{
var_05 = isdefined(param_02) && isdefined(param_03);
foreach(var_07 in level.player_pap_machines)
{
if(isdefined(param_04))
{
var_07 playsound(param_04);
}
if(scripts\common\utility::istrue(level.placed_alien_fuses) && var_05)
{
var_07 setscriptablepartstate(param_02,param_03);
continue;
}
var_07 setscriptablepartstate(param_00,param_01);
}
}
//Function Number: 16
func_DF48(param_00,param_01,param_02)
{
level endon("pap_machine_activated");
param_00 waittill("disconnect");
update_level_pap_machines("door","decomp");
wait(1.2);
update_level_pap_machines("door","open_idle");
update_level_pap_machines("papfx","idle");
param_01 delete();
wait(1);
scripts\cp\_interaction::add_to_current_interaction_list(param_02);
level notify("pap_machine_activated");
}
//Function Number: 17
can_use_pap_machine(param_00)
{
if(param_00 == "dischord" || param_00 == "facemelter" || param_00 == "headcutter" || param_00 == "shredder")
{
if(!scripts\common\utility::flag("fuses_inserted"))
{
return 0;
}
return 1;
}
return 1;
}
//Function Number: 18
get_pap_offhand_weapon(param_00,param_01)
{
var_02 = param_00 getweaponslistprimaries();
foreach(var_04 in var_02)
{
if(!issubstr(param_01,var_04) && !scripts\cp\_utility::isstrstart(var_04,"alt_") && !issubstr(var_04,"knife") && var_04 != "iw7_knife_zm_disco")
{
return var_04;
}
}
return undefined;
}
//Function Number: 19
validate_current_weapon(param_00,param_01,param_02)
{
if(isdefined(level.weapon_upgrade_path) && isdefined(level.weapon_upgrade_path[getweaponbasename(param_02)]))
{
param_02 = level.weapon_upgrade_path[getweaponbasename(param_02)];
}
else if(isdefined(param_01))
{
switch(param_01)
{
case "two":
if(param_00 == 2)
{
param_02 = "iw7_two_headed_axe_mp";
}
else if(param_00 == 3)
{
param_02 = "iw7_two_headed_axe_mp";
}
break;
case "golf":
if(param_00 == 2)
{
param_02 = "iw7_golf_club_mp";
}
else if(param_00 == 3)
{
param_02 = "iw7_golf_club_mp";
}
break;
case "machete":
if(param_00 == 2)
{
param_02 = "iw7_machete_mp";
}
else if(param_00 == 3)
{
param_02 = "iw7_machete_mp";
}
break;
case "spiked":
if(param_00 == 2)
{
param_02 = "iw7_spiked_bat_mp";
}
else if(param_00 == 3)
{
param_02 = "iw7_spiked_bat_mp";
}
break;
case "axe":
if(param_00 == 2)
{
param_02 = "iw7_axe_zm_pap1";
}
else if(param_00 == 3)
{
param_02 = "iw7_axe_zm_pap2";
}
break;
case "venomx":
if(param_00 == 2)
{
param_02 = "iw7_venomx_zm_pap1";
}
else if(param_00 == 3)
{
param_02 = "iw7_venomx_zm_pap2";
}
break;
default:
return param_02;
}
}
return param_02;
}
//Function Number: 20
should_use_old_model(param_00,param_01,param_02)
{
if(isdefined(param_01))
{
switch(param_01)
{
case "spiked":
case "golf":
case "two":
case "axe":
case "machete":
return 1;
default:
return 0;
}
return;
}
return 0;
}
//Function Number: 21
get_pap_camo(param_00,param_01,param_02)
{
var_03 = undefined;
if(isdefined(param_01))
{
if(isdefined(level.no_pap_camos) && scripts\common\utility::func_2286(level.no_pap_camos,param_01))
{
var_03 = undefined;
}
else if(isdefined(level.pap_1_camo) && isdefined(param_00) && param_00 == 2)
{
var_03 = level.pap_1_camo;
}
else if(isdefined(level.pap_2_camo) && isdefined(param_00) && param_00 == 3)
{
var_03 = level.pap_2_camo;
}
switch(param_01)
{
case "dischord":
param_02 = "iw7_dischord_zm_pap1";
var_03 = "camo20";
break;
case "facemelter":
param_02 = "iw7_facemelter_zm_pap1";
var_03 = "camo22";
break;
case "headcutter":
param_02 = "iw7_headcutter_zm_pap1";
var_03 = "camo21";
break;
case "katana":
case "nunchucks":
var_03 = "camo222";
break;
case "forgefreeze":
if(param_00 == 2)
{
param_02 = "iw7_forgefreeze_zm_pap1";
}
else if(param_00 == 3)
{
param_02 = "iw7_forgefreeze_zm_pap2";
}
var_04 = 1;
break;
case "axe":
if(param_00 == 2)
{
param_02 = "iw7_axe_zm_pap1";
}
else if(param_00 == 3)
{
param_02 = "iw7_axe_zm_pap2";
}
var_04 = 1;
break;
case "shredder":
param_02 = "iw7_shredder_zm_pap1";
var_03 = "camo23";
break;
}
}
return var_03;
}
//Function Number: 22
play_pap_vo(param_00)
{
param_00 thread scripts\cp\_vo::try_to_play_vo("weapon_pap","zmb_pap_vo","high");
}
//Function Number: 23
process_pap_stat_logging(param_00,param_01)
{
level.var_1192E++;
scripts\cp\zombies\zombie_analytics::func_AF7F(level.wave_num,param_00,level.var_1192E);
}
//Function Number: 24
filter_current_weapon_attachments(param_00)
{
var_01 = function_00E3(param_00);
if(issubstr(param_00,"g18_z"))
{
foreach(var_03 in var_01)
{
if(issubstr(var_03,"akimbo"))
{
var_01 = scripts\common\utility::func_22A9(var_01,var_03);
}
}
}
return var_01;
}
//Function Number: 25
remove_invalid_wm_attachments(param_00)
{
var_01 = param_00;
foreach(var_03 in var_01)
{
if(issubstr(var_03,"silencer") || issubstr(var_03,"arcane") || issubstr(var_03,"ark"))
{
var_01 = scripts\common\utility::func_22A9(var_01,var_03);
}
}
return param_00;
}
//Function Number: 26
weapon_upgrade_hint_func(param_00,param_01)
{
if(scripts\common\utility::istrue(level.has_picked_up_fuses) && !isdefined(level.placed_alien_fuses))
{
return &"CP_FINAL_INTERACTIONS_ADD_CHARGED_FUSE";
}
var_02 = param_01 getcurrentweapon();
var_03 = scripts\cp\_weapon::func_7D62(var_02);
if(scripts\common\utility::istrue(level.placed_alien_fuses))
{
if(issubstr(var_02,"venomx_zm_pap1") && scripts\common\utility::istrue(level.completed_venomx_pap2_challenges))
{
return &"CP_FINAL_INTERACTIONS_UPGRADE_WEAPON";
}
else if(var_03 == 3)
{
return &"COOP_INTERACTIONS_UPGRADE_MAXED";
}
else if(!func_385F(var_02))
{
return &"CP_FINAL_INTERACTIONS_UPGRADE_WEAPON_FAIL";
}
else
{
return &"CP_FINAL_INTERACTIONS_UPGRADE_WEAPON";
}
return &"CP_FINAL_INTERACTIONS_UPGRADE_WEAPON_FAIL";
}
if(var_03 == level.var_C8A4)
{
return &"COOP_INTERACTIONS_UPGRADE_MAXED";
}
else if(param_01 scripts\cp\_utility::func_9C42(var_02,1))
{
return "";
}
else if(!func_385F(var_02))
{
return &"CP_FINAL_INTERACTIONS_UPGRADE_WEAPON_FAIL";
}
else
{
return &"CP_FINAL_INTERACTIONS_UPGRADE_WEAPON";
}
return &"CP_FINAL_INTERACTIONS_UPGRADE_WEAPON_FAIL";
}
//Function Number: 27
func_385F(param_00,param_01)
{
if(!isdefined(level.var_C8A2))
{
return 0;
}
if(scripts\common\utility::istrue(self.hasentanglerequipped) && isdefined(param_00) && issubstr(param_00,"iw7_entangler2"))
{
return 0;
}
if(isdefined(param_00))
{
var_02 = scripts\cp\_utility::func_80D8(param_00);
}
else
{
return 0;
}
if(!isdefined(var_02))
{
return 0;
}
if(!isdefined(level.var_C8A2[var_02]))
{
var_03 = getsubstr(var_02,0,var_02.size - 1);
if(!isdefined(level.var_C8A2[var_03]))
{
return 0;
}
}
if(isdefined(self.var_6670) && getweaponbasename(self.var_6670) == getweaponbasename(param_00))
{
return 0;
}
if(isdefined(level.weapon_upgrade_path) && isdefined(level.weapon_upgrade_path[getweaponbasename(param_00)]))
{
if(scripts\cp\zombies\directors_cut::directors_cut_is_activated())
{
if(param_00 == "iw7_venomx_zm" || param_00 == "iw7_venomx_zm_pap1")
{
return 1;
}
}
else if(param_00 == "iw7_venomx_zm")
{
if(scripts\common\utility::istrue(level.completed_venomx_pap1_challenges))
{
return 1;
}
else
{
return 0;
}
}
else if(issubstr(param_00,"iw7_venomx_zm_pap1"))
{
if(scripts\common\utility::istrue(level.completed_venomx_pap2_challenges))
{
return 1;
}
else
{
return 0;
}
}
}
if(var_02 == "dischord" || var_02 == "facemelter" || var_02 == "headcutter" || var_02 == "shredder")
{
if(!scripts\common\utility::flag("fuses_inserted"))
{
if(scripts\common\utility::istrue(param_01))
{
return 1;
}
else
{
return 0;
}
}
else if(isdefined(self.var_C8A2[var_02]) && self.var_C8A2[var_02].var_B111 == 2)
{
return 0;
}
}
if(scripts\common\utility::istrue(level.has_picked_up_fuses) && !isdefined(level.placed_alien_fuses))
{
return 1;
}
if(scripts\common\utility::istrue(level.placed_alien_fuses))
{
if(isdefined(self.var_C8A2[var_02]) && self.var_C8A2[var_02].var_B111 >= 3)
{
return 0;
}
else
{
return 1;
}
}
if(scripts\common\utility::istrue(param_01) && isdefined(self.var_C8A2[var_02]) && self.var_C8A2[var_02].var_B111 <= min(level.var_C8A4 + 1,2))
{
return 1;
}
if(isdefined(self.var_C8A2[var_02]) && self.var_C8A2[var_02].var_B111 >= level.var_C8A4)
{
return 0;
}
return 1;
}

View File

@ -0,0 +1,17 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\maps\cp_final\gen\cp_final_art.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 106 ms
* Timestamp: 10/27/2023 12:04:44 AM
*******************************************************************/
//Function Number: 1
main()
{
level.var_12ACA = 1;
setdvar("r_lightGridEnableTweaks",1);
setdvar("r_lightGridIntensity",1.33);
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,494 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\maps\cp_final\gen\cp_final_sound.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 116 ms
* Timestamp: 10/27/2023 12:04:46 AM
*******************************************************************/
//Function Number: 1
main()
{
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((105.753,3631.47,35.5),(270,0,0));
var_00.var_13125["soundalias"] = "emt_pipe_air_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-76.1691,2972.87,263.669),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_2";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((193.878,2921.5,254.665),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_2";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((198.561,3022.58,191.491),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_2";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-407.138,3296.7,115.814),(270,0,0));
var_00.var_13125["soundalias"] = "emt_steam_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-786.576,3516.76,73.8445),(270,0,0));
var_00.var_13125["soundalias"] = "emt_steam_lp_03";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-288.917,3025.18,24),(270,0,0));
var_00.var_13125["soundalias"] = "emt_pipe_air_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-153.008,3668.55,24.0029),(270,0,0));
var_00.var_13125["soundalias"] = "emt_pipe_air_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-11.1668,3360.32,24.0029),(270,0,0));
var_00.var_13125["soundalias"] = "emt_pipe_air_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-633.571,3353.64,40.0029),(270,0,0));
var_00.var_13125["soundalias"] = "emt_sm_vent_rattle_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-151.124,3029.08,30.0029),(270,0,0));
var_00.var_13125["soundalias"] = "emt_sm_vent_rattle_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-11.174,3028.58,39.0029),(270,0,0));
var_00.var_13125["soundalias"] = "emt_sm_vent_rattle_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-12.6925,3468.7,30.0029),(270,0,0));
var_00.var_13125["soundalias"] = "emt_sm_vent_rattle_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-16.7109,3802.5,27.5),(270,0,0));
var_00.var_13125["soundalias"] = "emt_sm_vent_rattle_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-719.03,2906.84,100.5),(270,0,0));
var_00.var_13125["soundalias"] = "emt_sm_vent_rattle_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-740.14,3760.44,63.6082),(270,0,0));
var_00.var_13125["soundalias"] = "emt_steam_lp_03";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-631.703,3964.21,-71),(270,0,0));
var_00.var_13125["soundalias"] = "emt_sm_vent_rattle_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-633.209,4152.16,-71),(270,0,0));
var_00.var_13125["soundalias"] = "emt_sm_vent_rattle_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-1174.11,4776.81,-190.001),(270,0,0));
var_00.var_13125["soundalias"] = "emt_water_lap_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-895.282,5023.57,-193.001),(270,0,0));
var_00.var_13125["soundalias"] = "emt_water_lap_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-543.367,4915.22,-193.001),(270,0,0));
var_00.var_13125["soundalias"] = "emt_water_lap_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-935.744,5250.81,-193.001),(270,0,0));
var_00.var_13125["soundalias"] = "emt_water_lap_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-921.18,4728.36,-193.001),(270,0,0));
var_00.var_13125["soundalias"] = "emt_water_lap_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-1171.66,5093.02,-193.001),(270,0,0));
var_00.var_13125["soundalias"] = "emt_water_lap_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-577.139,4776.79,-193.001),(270,0,0));
var_00.var_13125["soundalias"] = "emt_water_drip_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-579.686,4870.2,-193.001),(270,0,0));
var_00.var_13125["soundalias"] = "emt_water_drip_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-522.857,4883.03,-193.001),(270,0,0));
var_00.var_13125["soundalias"] = "emt_water_drip_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-817.005,4779.1,-193.001),(270,0,0));
var_00.var_13125["soundalias"] = "emt_water_drip_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-884.163,4915.24,-193.001),(270,0,0));
var_00.var_13125["soundalias"] = "emt_water_drip_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-989.135,4743.5,-193.001),(270,0,0));
var_00.var_13125["soundalias"] = "emt_water_drip_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-1186.28,4906.11,-193.001),(270,0,0));
var_00.var_13125["soundalias"] = "emt_water_drip_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-1150.46,5118.96,-193.001),(270,0,0));
var_00.var_13125["soundalias"] = "emt_water_drip_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-985.945,5274.66,-193.001),(270,0,0));
var_00.var_13125["soundalias"] = "emt_water_drip_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-539.102,5088.46,-193.001),(270,0,0));
var_00.var_13125["soundalias"] = "emt_water_drip_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-861.047,4865.43,-193.001),(270,0,0));
var_00.var_13125["soundalias"] = "emt_water_drip_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-959.844,5261.38,-193.001),(270,0,0));
var_00.var_13125["soundalias"] = "emt_water_drip_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-717.103,4994.18,81.5296),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_2";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-715.228,4815.87,78.5785),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_2";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-1026.52,4817.79,73.8829),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_2";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-1022.55,4989.23,77.1098),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_2";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-845.85,5629.01,170.421),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_2";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-245.82,5424.15,142.09),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_2";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-15.2126,5605.33,189.647),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_2";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-204.137,6278.8,66),(270,0,0));
var_00.var_13125["soundalias"] = "emt_sm_vent_rattle_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((80.8501,6284.34,56),(270,0,0));
var_00.var_13125["soundalias"] = "emt_sm_vent_rattle_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((379.022,6279.72,56),(270,0,0));
var_00.var_13125["soundalias"] = "emt_sm_vent_rattle_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((687.709,6280.36,56),(270,0,0));
var_00.var_13125["soundalias"] = "emt_sm_vent_rattle_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((1780.11,5975.91,350.577),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_2";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((408.315,6194.56,81.4967),(270,0,0));
var_00.var_13125["soundalias"] = "emt_steam_lp_03";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((90.9631,5818.4,155.973),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_2";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-219.451,4498.85,453.862),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_2";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-224.488,5049.17,443.71),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_2";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((314.384,4203.59,334.345),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_2";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((840.214,4295.87,308.855),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_2";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((568.584,5818.36,200.723),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_2";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((475.837,5552.69,194.432),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_2";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((255.76,5332.35,198.818),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_2";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((814.494,4737.18,205.724),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_2";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-61.7595,5227.71,169.377),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_2";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((1162.18,2942.53,-203.201),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_2";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((1469.47,3637.57,127.756),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_2";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((1189.08,3949.31,15.998),(270,0,0));
var_00.var_13125["soundalias"] = "emt_sm_vent_rattle_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((1608.04,3949.94,16.4),(270,0,0));
var_00.var_13125["soundalias"] = "emt_sm_vent_rattle_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((1712.08,4239.63,17.4),(270,0,0));
var_00.var_13125["soundalias"] = "emt_sm_vent_rattle_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((2052.53,4252.25,15),(270,0,0));
var_00.var_13125["soundalias"] = "emt_sm_vent_rattle_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((2233.82,4148.4,15),(270,0,0));
var_00.var_13125["soundalias"] = "emt_sm_vent_rattle_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((2217.33,4574.81,15),(270,0,0));
var_00.var_13125["soundalias"] = "emt_sm_vent_rattle_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((2099.82,4190.49,100.746),(270,0,0));
var_00.var_13125["soundalias"] = "emt_steam_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((1307.39,3949.82,15.998),(270,0,0));
var_00.var_13125["soundalias"] = "emt_pipe_air_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((1700.29,4054.27,17.3999),(270,0,0));
var_00.var_13125["soundalias"] = "emt_pipe_air_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((2226.65,4317.85,15),(270,0,0));
var_00.var_13125["soundalias"] = "emt_pipe_air_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((2043.26,4252.48,149.49),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_4";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((1020.11,4288.9,274.49),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_4";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((1199.48,3950.1,178.99),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_4";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((784.619,3828.29,146.501),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_4";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((1659.71,3994.82,145.685),(270,0,0));
var_00.var_13125["soundalias"] = "emt_steam_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((992.621,6492.7,207.643),(270,0,0));
var_00.var_13125["soundalias"] = "emt_plastic_tarp_flap_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((1478.98,6651.6,167.593),(270,0,0));
var_00.var_13125["soundalias"] = "emt_plastic_tarp_flap_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((1165.22,6625.69,185.265),(270,0,0));
var_00.var_13125["soundalias"] = "emt_plastic_tarp_flap_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((1737.32,6545.56,112.755),(270,0,0));
var_00.var_13125["soundalias"] = "emt_plastic_tarp_flap_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((2029.96,6463.86,98.2914),(270,0,0));
var_00.var_13125["soundalias"] = "emt_plastic_tarp_flap_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((2342.37,6558.9,109.318),(270,0,0));
var_00.var_13125["soundalias"] = "emt_plastic_tarp_flap_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((3569.78,7052.63,173.134),(270,0,0));
var_00.var_13125["soundalias"] = "emt_plastic_tarp_flap_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((3332.6,7212.67,181.885),(270,0,0));
var_00.var_13125["soundalias"] = "emt_plastic_tarp_flap_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((3309.15,7511.16,173.583),(270,0,0));
var_00.var_13125["soundalias"] = "emt_plastic_tarp_flap_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((3441.18,7766.1,180.64),(270,0,0));
var_00.var_13125["soundalias"] = "emt_plastic_tarp_flap_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((3766.14,7884.21,178.433),(270,0,0));
var_00.var_13125["soundalias"] = "emt_plastic_tarp_flap_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((4061.16,7845.78,159.756),(270,0,0));
var_00.var_13125["soundalias"] = "emt_plastic_tarp_flap_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((4327.41,7898.32,164.869),(270,0,0));
var_00.var_13125["soundalias"] = "emt_plastic_tarp_flap_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((4636.58,7953.65,168.834),(270,0,0));
var_00.var_13125["soundalias"] = "emt_plastic_tarp_flap_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((4799.96,7542.61,174.196),(270,0,0));
var_00.var_13125["soundalias"] = "emt_plastic_tarp_flap_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((4617.95,7336.44,169.36),(270,0,0));
var_00.var_13125["soundalias"] = "emt_plastic_tarp_flap_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((4557.62,7098.83,187.718),(270,0,0));
var_00.var_13125["soundalias"] = "emt_plastic_tarp_flap_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((4619.91,6874.06,160.349),(270,0,0));
var_00.var_13125["soundalias"] = "emt_plastic_tarp_flap_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((4381.36,6753.29,185.391),(270,0,0));
var_00.var_13125["soundalias"] = "emt_plastic_tarp_flap_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((4175.92,6774.43,196.699),(270,0,0));
var_00.var_13125["soundalias"] = "emt_plastic_tarp_flap_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((3997.06,6894.39,165.567),(270,0,0));
var_00.var_13125["soundalias"] = "emt_plastic_tarp_flap_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((3320.6,6236.37,73.9628),(270,0,0));
var_00.var_13125["soundalias"] = "emt_plastic_tarp_flap_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((3356.42,5689.86,116.333),(270,0,0));
var_00.var_13125["soundalias"] = "emt_plastic_tarp_flap_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((3365.56,5466.43,116.103),(270,0,0));
var_00.var_13125["soundalias"] = "emt_plastic_tarp_flap_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((3262.58,5309.47,117.842),(270,0,0));
var_00.var_13125["soundalias"] = "emt_plastic_tarp_flap_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((273.13,4874.17,117.296),(270,0,0));
var_00.var_13125["soundalias"] = "emt_crevasse_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((197.478,3362.18,105.779),(270,0,0));
var_00.var_13125["soundalias"] = "emt_steam_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((886.293,4917.25,244.013),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_2";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-302.47,3237.49,143.5),(270,0,0));
var_00.var_13125["soundalias"] = "emt_sm_vent_rattle_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-308.547,2924.64,146.5),(270,0,0));
var_00.var_13125["soundalias"] = "emt_sm_vent_rattle_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((1279.49,4218.97,132.002),(270,0,0));
var_00.var_13125["soundalias"] = "emt_sm_vent_rattle_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-251.056,3442.6,233.304),(270,0,0));
var_00.var_13125["soundalias"] = "emt_steam_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-228.966,3912.71,203.285),(270,0,0));
var_00.var_13125["soundalias"] = "emt_steam_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((3067.12,6517.08,100.999),(270,0,0));
var_00.var_13125["soundalias"] = "emt_plastic_tarp_flap_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((1556.86,4984.04,217.22),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_2";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((1759.18,5383.03,221.495),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_2";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((3518.31,5525.36,260.124),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fast_flag_flapping_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((3514.15,6164.8,169.401),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fast_flag_flapping_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((3033.25,6800.94,151.922),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fast_flag_flapping_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((2409.78,6841.98,152.876),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fast_flag_flapping_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((1646.55,6911.12,202.479),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fast_flag_flapping_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((5735.18,-4110.96,-20.0049),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster_both";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((4699.39,-4880.21,126.096),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster_both";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((4061.53,-4632.32,121.596),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster_both";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((5793.26,-5551.21,105.396),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster_both";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((5827.95,-5423.05,79.023),(270,0,0));
var_00.var_13125["soundalias"] = "emt_toilet_running_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((5926.98,-5416.38,79.023),(270,0,0));
var_00.var_13125["soundalias"] = "emt_toilet_running_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((5670.01,-5465.98,105.396),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster_both";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((5451.38,-5782.59,119.4),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster_both";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((6495.6,-6799.99,51.9951),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fire_large_metal_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((5778.19,-6709.62,64.3133),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fire_med_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((5053.28,-6956.79,97.8951),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fire_large_metal_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((6199.45,-7134.34,287.801),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fire_med_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((5307.33,-7191.79,108.899),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fire_med_lp_01";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((6095.52,-5564.59,120.296),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster_both";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((6120.35,-5833.38,120.296),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster_both";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((6043.78,-5849.13,205.014),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_3";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((6040.89,-5516.2,207.295),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_3";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((6037.75,-5157.14,203.488),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_3";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((6423.74,-6297.64,181.806),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_3";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((5267.31,-6638.49,250.697),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_4";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((5432.26,-6585.01,257.097),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_4";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((5061.01,-6594.35,259.497),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_4";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((5259.77,-5698.98,224.362),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_4";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((5236.82,-5750.43,132.8),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster_both";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((5311.19,-5727.3,118.4),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster_both";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((5858.22,-5771.27,128),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster_both";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((3672.03,-4464.08,130.875),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster_both";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((3651.31,-3960.98,116.073),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster_both";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((4014.84,-4021.78,123.601),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster_both";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((3718.59,-4930.41,104.202),(270,0,0));
var_00.var_13125["soundalias"] = "emt_fly_lp_ster_both";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((4092.68,-4396.39,208.849),(270,0,0));
var_00.var_13125["soundalias"] = "amb_sa_big_light_3";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((161.389,4767.27,-198.148),(326.252,38.9465,0));
var_00.var_13125["soundalias"] = "emt_flare_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-192.78,4872.8,-126.395),(337.412,283.644,0));
var_00.var_13125["soundalias"] = "emt_flare_lp";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((46.107,3902.73,75.7216),(270,0,0));
var_00.var_13125["soundalias"] = "emt_computer_beep_bloop";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-101.883,3872.48,100.76),(270,0,0));
var_00.var_13125["soundalias"] = "emt_steam_lp_02";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((609.058,4403.73,146.653),(270,0,0));
var_00.var_13125["soundalias"] = "emt_computer_beep_bloop";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((1602.74,5832.02,241.871),(270,0,0));
var_00.var_13125["soundalias"] = "emt_computer_beep_bloop";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((1336.74,5830.93,243.528),(270,0,0));
var_00.var_13125["soundalias"] = "emt_computer_beep_bloop";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((1786.49,5977.42,220.594),(270,0,0));
var_00.var_13125["soundalias"] = "emt_computer_fan_beeps";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((1467.88,5855.29,241.46),(270,0,0));
var_00.var_13125["soundalias"] = "emt_computer_fan";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((618.166,5574.68,121.258),(270,0,0));
var_00.var_13125["soundalias"] = "emt_computer_fan_beeps";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((-213.954,4290.07,277.62),(270,0,0));
var_00.var_13125["soundalias"] = "emt_computer_beep_bloop";
var_00 = scripts\common\createfx::func_49E7();
var_00 scripts\common\createfx::func_F4AD((46.745,3898.49,64.377),(270,0,0));
var_00.var_13125["soundalias"] = "emt_computer_fan";
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,17 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\maps\cp_frontend\gen\cp_frontend_art.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 100 ms
* Timestamp: 10/27/2023 12:05:45 AM
*******************************************************************/
//Function Number: 1
main()
{
level.var_12ACA = 1;
setdvar("r_lightGridEnableTweaks",1);
setdvar("r_lightGridIntensity",1.33);
}

View File

@ -0,0 +1,14 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\maps\cp_frontend\gen\cp_frontend_sound.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 96 ms
* Timestamp: 10/27/2023 12:05:45 AM
*******************************************************************/
//Function Number: 1
main()
{
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,717 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\maps\cp_rave\cp_rave_crafting.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 26
* Decompile Time: 1395 ms
* Timestamp: 10/27/2023 12:06:15 AM
*******************************************************************/
//Function Number: 1
init_crafting()
{
level.crafting_table = "scripts/cp/maps/cp_rave/cp_rave_crafting.csv";
level.var_B426 = 1;
level.var_C1E2 = 0;
level.var_A89F = gettime();
level.var_47C1 = 25000;
level.var_47C0 = -5536;
level.var_BF36 = gettime() + 180000;
level.var_47BE = ::func_13F02;
level.var_47BD = ::func_13F01;
level.var_47C2 = func_78F1(level.crafting_table);
level.var_47A7 = func_78EA(level.crafting_table);
level.var_47C3 = level.var_47C2;
level.var_CC0C = [];
level.interaction_post_activate_update_func = ::rave_post_activate_update_func;
level.crafting_totem_areas = [];
level.crafting_totem_uses = 0;
level.crafting_icon_create_func = ::func_4939;
}
//Function Number: 2
set_crafting_starting_location(param_00)
{
level.crafting_totem_starting_location = param_00;
level.last_crafting_totem_area = param_00;
}
//Function Number: 3
activate_crafting_totem(param_00)
{
self.var_D776 = 1;
self.var_6261 = 1;
level.crafting_totem_uses = 0;
self.var_269F = 3;
scripts\cp\_interaction::add_to_current_interaction_list(self);
self.totem setscriptablepartstate("eyes","eyes_on");
self.totem setscriptablepartstate("hideshow","show");
}
//Function Number: 4
deactivate_crafting_totem(param_00)
{
self.var_D776 = 1;
self.var_6261 = 0;
self.var_269F = 3;
scripts\cp\_interaction::remove_from_current_interaction_list(self);
self.totem setscriptablepartstate("eyes","eyes_off");
}
//Function Number: 5
move_crafting_totem_to_new_location()
{
for(;;)
{
var_00 = scripts\common\utility::random(level.crafting_totem_areas);
if(var_00 != level.last_crafting_totem_area)
{
level.current_crafting_totem.totem setscriptablepartstate("hideshow","off");
move_crafting_totem(var_00);
return;
}
}
}
//Function Number: 6
move_crafting_totem(param_00)
{
level.last_crafting_totem_area = param_00;
foreach(var_02 in level.crafting_totems)
{
var_02 activate_crafting_totem(param_00);
}
}
//Function Number: 7
func_9596()
{
level.crafting_totems = scripts\common\utility::getstructarray("crafting_station","script_noteworthy");
foreach(var_01 in level.crafting_totems)
{
var_01 thread init_crafting_totem();
}
wait(6);
move_crafting_totem(level.crafting_totem_starting_location);
}
//Function Number: 8
func_7828(param_00)
{
var_01 = getentarray("spawn_volume","targetname");
foreach(var_03 in var_01)
{
if(function_010F(param_00.origin + (0,0,50),var_03))
{
if(isdefined(var_03.var_28AB))
{
return var_03.var_28AB;
}
}
}
return undefined;
}
//Function Number: 9
init_crafting_totem()
{
wait(5);
var_00 = getentarray(self.target,"targetname");
self.totem = undefined;
foreach(var_02 in var_00)
{
if(var_02.classname == "scriptable")
{
self.totem = var_02;
}
}
var_00 = scripts\common\utility::getstructarray(self.target,"targetname");
foreach(var_02 in var_00)
{
if(var_02.script_noteworthy == "crafting_item_spot")
{
self.craft_item_spot = var_02;
}
}
self.var_2135 = func_7828(self);
level.crafting_totem_areas[level.crafting_totem_areas.size] = self.var_2135;
self.var_D776 = 1;
self.var_6261 = 0;
self.var_269F = 3;
self.totem setscriptablepartstate("eyes","eyes_off");
}
//Function Number: 10
func_12FBE(param_00,param_01)
{
if(!scripts\common\utility::func_2286(level.current_interaction_structs,param_00))
{
return;
}
if(param_00.var_269F > 0)
{
if(!isdefined(param_01.var_4B5E))
{
return;
}
if(getweaponbasename(param_01 getcurrentweapon()) != "iw7_penetrationrail_mp")
{
param_01 setweaponammostock("iw7_souvenircoin_zm",1);
param_01 giveandfireoffhand("iw7_souvenircoin_zm");
}
var_02 = "orange";
switch(param_01.var_4B5E.var_47C9)
{
case "cp_rave_crafting_totem_gem_topaz":
var_02 = "blue";
break;
case "cp_rave_crafting_totem_gem_amethyst":
var_02 = "purple";
break;
}
switch(param_00.var_269F)
{
case 3:
param_00.totem setscriptablepartstate("socket_0",var_02);
break;
case 2:
param_00.totem setscriptablepartstate("socket_1",var_02);
break;
case 1:
param_00.totem setscriptablepartstate("socket_2",var_02);
break;
}
if(!isdefined(param_00.var_94CA))
{
param_00.var_94CA = [];
}
param_00.var_94CA[3 - param_00.var_269F] = param_01.var_4B5E.var_47C9;
playsoundatpos(param_00.origin,"zmb_rave_crafting_totem_item_place");
param_01 setclientomnvar("zombie_souvenir_piece_index",0);
param_01.var_A8D3 = undefined;
param_01.var_4B5E = undefined;
param_00.var_269F--;
param_01 scripts\cp\_merits::func_D9AD("mt_used_crafting");
if(param_00.var_269F > 0)
{
return;
}
scripts\cp\_interaction::remove_from_current_interaction_list(param_00);
param_00.craft_item_fx = spawnfx(level._effect["altar_item_flame"],param_00.craft_item_spot.origin + (0,0,5));
playfx(level._effect["crafting_souvenir"],param_00.craft_item_spot.origin + (0,0,5));
playsoundatpos(param_00.craft_item_spot.origin,"zmb_rave_crafting_totem_item_craft");
wait(1);
param_00.totem setscriptablepartstate("eyes","active");
func_47A5(param_00,param_01);
if(isdefined(param_01))
{
param_01 thread scripts\cp\_vo::try_to_play_vo("souvenir_craft_success","zmb_comment_vo","low",10,0,0,0,50);
}
triggerfx(param_00.craft_item_fx);
scripts\cp\_interaction::add_to_current_interaction_list(param_00);
while(isdefined(param_00.var_10485))
{
wait(0.1);
}
param_00.totem setscriptablepartstate("eyes","eyes_on");
scripts\cp\_interaction::remove_from_current_interaction_list(param_00);
playsoundatpos(param_00.origin,"zmb_rave_crafting_totem_item_pickup");
if(isdefined(param_01))
{
param_01 playlocalsound("zmb_item_pickup");
}
playfx(level._effect["souvenir_pickup"],param_00.craft_item_spot.origin);
param_00.var_269F = 3;
param_00.var_94CA = [];
if(isdefined(param_01))
{
param_01.var_A8D3 = undefined;
}
level.crafting_totem_uses++;
wait(1);
scripts\cp\_interaction::add_to_current_interaction_list(param_00);
}
}
//Function Number: 11
func_13F02(param_00,param_01,param_02)
{
if(!func_FF3B(param_01))
{
return 0;
}
level thread func_10697(param_01);
return 1;
}
//Function Number: 12
func_13F01(param_00,param_01)
{
switch(param_01)
{
case "zmb_coin_alien":
param_01 = "cp_rave_crafting_totem_gem_amber";
break;
case "zmb_coin_space":
param_01 = "cp_rave_crafting_totem_gem_amethyst";
break;
case "zmb_coin_ice":
param_01 = "cp_rave_crafting_totem_gem_topaz";
break;
}
level thread func_10697(param_00,param_01);
}
//Function Number: 13
func_10697(param_00,param_01)
{
level.var_C1E2++;
level.var_A89F = gettime();
level.var_BF36 = level.var_A89F + 30000 + randomintrange(level.var_47C1,level.var_47C0);
var_02 = spawn("script_model",param_00 + (0,0,45));
var_02.angles = (90,0,0);
var_02.var_C378 = (90,0,0);
var_03 = scripts\common\utility::random(level.var_47C3);
if(isdefined(param_01))
{
var_03 = param_01;
}
var_02 setmodel(var_03);
var_02.script_noteworthy = "crafting_item";
var_04 = "purple";
if(var_02.model == "cp_rave_crafting_totem_gem_amber")
{
var_04 = "orange";
}
else if(var_02.model == "cp_rave_crafting_totem_gem_topaz")
{
var_04 = "blue";
}
var_02 setscriptablepartstate("fx",var_04);
var_02.glow_type = var_04;
var_05 = func_48C2(var_02,25);
var_02 thread func_47C6(var_05);
}
//Function Number: 14
func_48C2(param_00,param_01)
{
var_02 = spawnstruct();
var_02.script_noteworthy = "crafting_pickup";
var_02.origin = param_00.origin - (0,0,45);
var_02.var_195 = param_00;
var_02.var_E1B9 = 0;
var_02.var_D776 = 1;
var_02.var_EE79 = "crafting_pickup";
var_02.name = "crafting_pickup";
var_02.var_118D7 = param_01;
var_02.var_47C9 = param_00.model;
var_02.var_47BA = "";
var_02.var_109DA = "souvenir_coin";
scripts\cp\_interaction::add_to_current_interaction_list(var_02);
return var_02;
}
//Function Number: 15
func_47C4(param_00,param_01)
{
if(!isdefined(param_00.var_195))
{
return;
}
if(isdefined(param_00.var_195.var_2A89))
{
return;
}
scripts\cp\_interaction::remove_from_current_interaction_list(param_00);
if(!isdefined(level.var_4376))
{
level.var_4376 = 1;
if(scripts\cp\_utility::map_check(0))
{
level thread scripts\cp\_vo::func_1769("dj_souvenircoin_collect_nag","zmb_dj_vo",60,60,2);
}
}
var_02 = param_00.origin + (0,0,45);
param_00.var_195 setscriptablepartstate("fx","pickup_" + param_00.var_195.glow_type);
scripts\common\utility::func_136F7();
if(isdefined(param_01.var_4B5E))
{
param_01 playlocalsound("zmb_crystal_swap");
var_03 = spawnstruct();
var_03.script_noteworthy = "crafting_pickup";
var_03.origin = param_00.origin;
var_03.var_195 = spawn("script_model",var_02);
var_03.var_195.angles = (90,0,0);
var_03.var_195.var_C378 = (90,0,0);
var_03.var_E1B9 = 0;
var_03.var_D776 = 1;
var_03.var_EE79 = param_01.var_4B5E.var_EE79;
var_03.name = param_01.var_4B5E.name;
var_03.var_118D7 = param_00.var_118D7;
var_03.var_47C9 = param_01.var_4B5E.var_47C9;
var_03.var_47BA = "";
var_03.var_195 setmodel(var_03.var_47C9);
param_01.var_4B5E = param_00;
param_01 func_4939(param_00);
var_03.var_195 thread func_47C6(var_03);
scripts\cp\_interaction::add_to_current_interaction_list(var_03);
wait(0.3);
var_04 = "purple";
if(var_03.var_195.model == "cp_rave_crafting_totem_gem_amber")
{
var_04 = "orange";
}
else if(var_03.var_195.model == "cp_rave_crafting_totem_gem_topaz")
{
var_04 = "blue";
}
var_03.var_195 setscriptablepartstate("fx",var_04);
var_03.var_195.glow_type = var_04;
}
else
{
param_01 playlocalsound("zmb_crystal_pickup");
level.var_C1E2--;
param_01.var_4B5E = param_00;
param_01 thread scripts\cp\_vo::try_to_play_vo("pillage_craft","zmb_comment_vo","low",10,0,1,0,40);
param_01 func_4939(param_00);
}
wait(1);
if(isdefined(param_00.var_195))
{
param_00.var_195 delete();
}
if(isdefined(param_00))
{
param_00 = undefined;
}
}
//Function Number: 16
func_4939(param_00)
{
var_01 = func_7A27(param_00.var_47C9);
self setclientomnvar("zombie_souvenir_piece_index",int(var_01));
}
//Function Number: 17
func_7A27(param_00)
{
return tablelookup("scripts/cp/maps/cp_rave/cp_rave_crafting.csv",1,param_00,0);
}
//Function Number: 18
func_47C6(param_00)
{
self endon("death");
self endon("vacuum");
self notify("timeout");
self endon("timeout");
var_01 = 25;
if(isdefined(param_00.var_118D7))
{
var_01 = int(param_00.var_118D7);
}
var_02 = gettime() + var_01 * 1000;
var_03 = 0;
var_04 = 0;
while(gettime() < var_02)
{
if(var_04 == 0)
{
self rotateyaw(360,2);
self movez(5,2);
}
if(var_04 == 2)
{
self rotateyaw(360,2);
self movez(-5,2);
}
if(var_04 == 4)
{
var_04 = 0;
continue;
}
wait(1);
var_04++;
param_00.var_118D7 = param_00.var_118D7 - 1;
}
playsoundatpos(self.origin,"zmb_crystal_disappear");
param_00.var_195 setscriptablepartstate("fx","pickup_" + param_00.var_195.glow_type);
level.var_C1E2--;
if(level.var_C1E2 < 0)
{
level.var_C1E2 = 0;
}
scripts\cp\_interaction::remove_from_current_interaction_list(param_00);
scripts\common\utility::func_136F7();
self delete();
}
//Function Number: 19
func_FF3B(param_00)
{
if(level.var_C1E2 >= level.var_B426)
{
return 0;
}
if(!self.entered_playspace)
{
return 0;
}
foreach(var_02 in level.var_10816)
{
if(var_02.var_28AB != "island")
{
continue;
}
if(function_010F(param_00,var_02))
{
return 0;
}
}
if(isdefined(level.var_164B))
{
if(![[ level.var_164B ]](param_00))
{
return 0;
}
}
if(isdefined(level.var_9B0B))
{
if(!scripts\cp\_weapon::func_9E54(param_00,level.var_9B0B,undefined,undefined,1))
{
return 0;
}
}
else if(!scripts\cp\_weapon::func_9E54(param_00,undefined,undefined,undefined,1))
{
return 0;
}
if(randomint(100) < 30)
{
return 0;
}
if(level.var_BF36 > gettime())
{
return 0;
}
return 1;
}
//Function Number: 20
func_47A5(param_00,param_01)
{
var_02 = func_78EC(param_00);
if(!isdefined(var_02))
{
var_02 = "money";
}
switch(var_02)
{
case "crafted_trap_balloon":
case "crafted_trap_mower":
case "crafted_gascan":
case "crafted_revocator":
case "crafted_boombox":
case "crafted_electric_trap":
case "crafted_medusa":
case "crafted_ims":
case "crafted_autosentry":
case "crafted_windowtrap":
param_00.script_noteworthy = var_02;
param_00.var_109DA = "craftable";
param_00.var_E1B9 = 0;
param_00.var_D776 = 1;
param_00.var_EE79 = var_02;
param_00.name = var_02;
param_00.var_10485 = 1;
param_00.var_D6B3 = 1;
param_00.var_47B2 = 1;
break;
default:
foreach(param_01 in level.players)
{
param_01 scripts\cp\_persistence::func_82F9(500);
break;
}
break;
}
scripts\cp\zombies\zombie_analytics::func_AF77(level.wave_num,var_02);
if(isdefined(param_01))
{
param_01.var_A039 = var_02;
}
}
//Function Number: 21
func_78EC(param_00)
{
foreach(var_02 in level.var_47A7)
{
var_03 = 0;
var_04 = var_02;
foreach(var_06 in param_00.var_94CA)
{
if(scripts\common\utility::func_2286(var_04,var_06))
{
var_03++;
var_04 = func_E040(var_04,var_06);
}
}
if(var_03 == 3)
{
return var_02[0];
}
}
return undefined;
}
//Function Number: 22
func_E040(param_00,param_01)
{
var_02 = 0;
var_03 = [];
for(var_04 = 0;var_04 < param_00.size;var_04++)
{
if(!var_02 && param_00[var_04] == param_01)
{
var_02 = 1;
continue;
}
var_03[var_03.size] = param_00[var_04];
}
return var_03;
}
//Function Number: 23
func_78F1(param_00)
{
var_01 = [];
for(var_02 = 1;var_02 < 99;var_02++)
{
var_03 = func_113C5(param_00,var_02,1);
if(var_03 == "")
{
break;
}
var_01[var_01.size] = var_03;
}
return var_01;
}
//Function Number: 24
func_78EA(param_00)
{
var_01 = 1;
var_02 = 2;
var_03 = [];
for(var_04 = 100;var_04 <= 199;var_04++)
{
var_05 = undefined;
var_05 = func_113C5(param_00,var_04,var_01);
if(var_05 == "")
{
break;
}
var_06 = strtok(func_113C5(param_00,var_04,var_02)," ");
var_06 = scripts\common\utility::func_229C(var_06,var_05,0);
var_03[var_03.size] = var_06;
}
return var_03;
}
//Function Number: 25
func_113C5(param_00,param_01,param_02)
{
return tablelookup(param_00,0,param_01,param_02);
}
//Function Number: 26
rave_post_activate_update_func(param_00,param_01)
{
if(isdefined(param_00.var_10485))
{
param_00.script_noteworthy = "crafting_station";
param_00.var_E1B9 = 1;
param_00.var_D776 = 1;
param_00.var_EE79 = "requires_power";
param_00.name = "crafting_station";
if(isdefined(param_00.var_10486))
{
param_00.var_10486 delete();
}
param_00.var_10485 = undefined;
param_00.var_D6B3 = undefined;
param_00.var_D742 = undefined;
param_00.var_47B2 = undefined;
param_00.craft_item_fx delete();
if(param_01 scripts\cp\_utility::is_valid_player())
{
param_01 playlocalsound("zmb_item_pickup");
}
param_00.totem setscriptablepartstate("socket_0","empty");
param_00.totem setscriptablepartstate("socket_1","empty");
param_00.totem setscriptablepartstate("socket_2","empty");
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,712 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\maps\cp_rave\cp_rave_ghost_activation.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 51
* Decompile Time: 2662 ms
* Timestamp: 10/27/2023 12:06:19 AM
*******************************************************************/
//Function Number: 1
init_ghost_n_skull_2_quest()
{
lib_0D52::func_DED3("ghostTwo",0,::func_2B53,::get_1_9_9_2_kills_from_trap,::complete_1_9_9_2_kills_from_trap,::debug_1_9_9_2_kills_from_trap);
lib_0D52::func_DED3("ghostTwo",1,::func_2B53,::match_the_right_symbol,::complete_match_the_right_symbol,::debug_match_the_right_symbol);
lib_0D52::func_DED3("ghostTwo",2,::func_2B53,::hit_skull_at_wheel_of_misfortune,::complete_hit_skull_at_wheel_of_misfortune,::debug_hit_skull_at_wheel_of_misfortune);
lib_0D52::func_DED3("ghostTwo",3,::func_2B53,::spell_skull,::complete_spell_skull,::debug_spell_skull);
lib_0D52::func_DED3("ghostTwo",4,::func_2B53,::shoot_skull_during_boat,::complete_shoot_skull_during_boat,::debug_shoot_skull_during_boat);
lib_0D52::func_DED3("ghostTwo",5,::func_2B53,::hit_gns_cabinet_with_ben_franklin,::complete_hit_gns_cabinet_with_ben_franklin,::debug_hit_gns_cabinet_with_ben_franklin);
lib_0D52::func_DED3("ghostTwo",6,::func_2B53,::func_135F6,::func_447F,::func_4F30);
}
//Function Number: 2
func_2B53()
{
}
//Function Number: 3
get_1_9_9_2_kills_from_trap()
{
wait_for_trap_kills("logswing_trap_kills",1);
wait_for_trap_kills("woodchipper_trap_kills",9);
wait_for_trap_kills("speaker_trap_kills",9);
wait_for_trap_kills("waterfall_trap_kills",2);
}
//Function Number: 4
wait_for_trap_kills(param_00,param_01)
{
for(;;)
{
level waittill(param_00,var_02);
if(var_02 == param_01)
{
return;
}
}
}
//Function Number: 5
complete_1_9_9_2_kills_from_trap()
{
scripts\cp\maps\cp_zmb\cp_zmb_ghost_wave::func_C127(1);
}
//Function Number: 6
debug_1_9_9_2_kills_from_trap()
{
}
//Function Number: 7
match_the_right_symbol()
{
var_00 = ["c","e","p","w","z"];
for(;;)
{
func_13650();
var_01 = scripts\common\utility::random(var_00);
player_look_at_initial_symbol(var_01);
func_13650();
var_02 = player_select_one_symbol();
if(var_02 == var_01)
{
break;
}
}
}
//Function Number: 8
player_look_at_initial_symbol(param_00)
{
var_01 = spawn_quest_vfx_symbol((-280,-1483,440),(0,270,45),param_00);
level.gns_symbol_to_match = var_01;
wait_for_player_look_at(var_01);
var_01 thread quest_vfx_fade_out(var_01);
}
//Function Number: 9
player_select_one_symbol()
{
level.gns_quest_letter_symbols = [];
var_00 = ["c","e","p","w","z"];
var_01 = [(2984,150,380),(-184,-1328,76),(-3306,-3040,184),(-1320,-4748,360),(-1648,1119,-58),(-5972,4600,330),(1918,-2184,196),(-3616,1376,23),(-2046,-1306,46),(776,1432,261)];
var_02 = [(0,330,90),(0,0,90),(0,168,90),(0,240,90),(0,225,90),(0,11,90),(0,150,90),(0,205,90),(0,220,90),(0,0,90)];
var_03 = scripts\common\utility::array_randomize([0,1,2,3,4,5,6,7,8,9]);
foreach(var_0A, var_05 in var_00)
{
var_06 = var_03[var_0A];
var_07 = var_01[var_06];
var_08 = var_02[var_06];
var_09 = spawn_quest_vfx_symbol(var_07,var_08,var_05);
var_09 thread wait_for_selection(var_09);
level.gns_quest_letter_symbols[level.gns_quest_letter_symbols.size] = var_09;
scripts\common\utility::func_136F7();
}
level waittill("GnS_letter_selected",var_0B);
delete_letter_symbols();
return var_0B;
}
//Function Number: 10
spawn_quest_vfx_symbol(param_00,param_01,param_02)
{
var_03 = spawn("script_model",param_00);
var_03.angles = param_01;
var_03 setmodel("gns_quest_origin");
var_03 setscriptablepartstate("vfx",param_02);
var_03.letter = param_02;
return var_03;
}
//Function Number: 11
wait_for_selection(param_00)
{
param_00 endon("death");
wait_for_player_look_at(param_00);
param_00 thread quest_vfx_fade_out(param_00);
level.gns_quest_letter_symbols = scripts\common\utility::func_22A9(level.gns_quest_letter_symbols,param_00);
level notify("GnS_letter_selected",param_00.letter);
}
//Function Number: 12
wait_for_player_look_at(param_00)
{
var_01 = int(10);
for(;;)
{
if(any_player_look_at_target(param_00))
{
for(var_02 = 1;var_02 <= var_01;var_02++)
{
wait(0.15);
if(any_player_look_at_target(param_00))
{
if(var_02 == var_01)
{
return;
}
continue;
}
else
{
break;
}
}
}
wait(0.15);
}
}
//Function Number: 13
any_player_look_at_target(param_00)
{
foreach(var_02 in level.players)
{
if(player_look_at_target(param_00,var_02))
{
return 1;
}
}
return 0;
}
//Function Number: 14
player_look_at_target(param_00,param_01)
{
var_02 = 6400;
if(!scripts\common\utility::istrue(param_01.var_DCEB))
{
return 0;
}
if(!param_01 adsbuttonpressed())
{
return 0;
}
if(!param_01 method_8409(param_00.origin,25,75))
{
return 0;
}
var_03 = bullettrace(param_01 geteye(),param_00.origin,0,param_01);
var_04 = var_03["position"];
if(distancesquared(var_04,param_00.origin) > var_02)
{
return 0;
}
return 1;
}
//Function Number: 15
quest_vfx_fade_out(param_00)
{
param_00 endon("death");
param_00 setscriptablepartstate("vfx",param_00.letter + "_fade");
wait(3);
param_00 delete();
}
//Function Number: 16
complete_match_the_right_symbol()
{
scripts\cp\maps\cp_zmb\cp_zmb_ghost_wave::func_C127(2);
}
//Function Number: 17
delete_letter_symbols()
{
if(isdefined(level.gns_quest_letter_symbols))
{
foreach(var_01 in level.gns_quest_letter_symbols)
{
if(isdefined(var_01))
{
var_01 delete();
}
}
}
}
//Function Number: 18
debug_match_the_right_symbol()
{
}
//Function Number: 19
func_13650()
{
level waittill("regular_wave_starting");
}
//Function Number: 20
hit_skull_at_wheel_of_misfortune()
{
setup_skull_on_wheel_of_misfortune();
level.gns_wheel_of_misfortune_start_func = ::wheel_of_misfortune_start_func;
level waittill("hit_GnS_skull_during_wheel_of_misfortune");
level.gns_wheel_of_misfortune_start_func = undefined;
}
//Function Number: 21
complete_hit_skull_at_wheel_of_misfortune()
{
scripts\cp\maps\cp_zmb\cp_zmb_ghost_wave::func_C127(3);
clear_skull_on_wheel_of_misfortune();
}
//Function Number: 22
debug_hit_skull_at_wheel_of_misfortune()
{
}
//Function Number: 23
setup_skull_on_wheel_of_misfortune()
{
var_00 = scripts\common\utility::getstructarray("interaction_knife_throw","script_noteworthy");
foreach(var_02 in var_00)
{
var_03 = spawn("script_model",var_02.knife_throw_target.origin);
var_03.angles = var_02.knife_throw_target.angles;
var_03 setmodel("p7_skulls_bones_head_01");
var_03 setscriptablepartstate("vfx","green_eyes");
var_02.knife_throw_target.skull_target = var_03;
var_03 hide();
}
}
//Function Number: 24
clear_skull_on_wheel_of_misfortune()
{
var_00 = scripts\common\utility::getstructarray("interaction_knife_throw","script_noteworthy");
foreach(var_02 in var_00)
{
if(isdefined(var_02.knife_throw_target.skull_target))
{
var_02.knife_throw_target.skull_target delete();
}
}
}
//Function Number: 25
wheel_of_misfortune_start_func(param_00,param_01)
{
var_02 = [(-571,-1582,122),(-602,-1612,122),(-579,-1604,98)];
var_03 = scripts\common\utility::random(var_02);
var_04 = param_00.skull_target;
var_04.origin = var_03;
var_04.angles = param_00.angles;
var_04 linkto(param_00);
var_05 = randomfloatrange(0.1,0.7);
wait(var_05);
var_04 show();
var_04 thread func_4D07(var_04);
var_06 = var_04 scripts\cp\_utility::func_1372C(5,var_04,"skull_hit_by_knife",param_01,"arcade_game_over_for_player");
var_04 hide();
var_04 unlink();
if(var_06 == "skull_hit_by_knife")
{
playfx(level._effect["ghost_explosion_death_green"],var_04.origin,anglestoforward(var_04.angles),anglestoup(var_04.angles));
level notify("hit_GnS_skull_during_wheel_of_misfortune");
return;
}
var_04 notify("timeout");
}
//Function Number: 26
func_4D07(param_00)
{
param_00 endon("timeout");
param_00 setcandamage(1);
param_00.health = 999999;
for(;;)
{
param_00 waittill("damage",var_01,var_02,var_03,var_04,var_05,var_06,var_07,var_08,var_09,var_0A);
param_00.health = 999999;
if(isplayer(var_02) && isdefined(var_0A) && var_0A == "iw7_cpknifethrow_mp")
{
break;
}
}
param_00 notify("skull_hit_by_knife");
}
//Function Number: 27
spell_skull()
{
for(;;)
{
func_13650();
set_up_characters();
var_00 = "";
for(var_01 = 0;var_01 < 5;var_01++)
{
level waittill("gns_character_selected",var_02);
var_00 = var_00 + var_02;
}
if(var_00 == "skull")
{
break;
}
}
}
//Function Number: 28
set_up_characters()
{
var_00 = [(2984,150,380),(-184,-1328,76),(-3306,-3040,184),(-1320,-4748,360),(-1648,1119,-58),(-5972,4600,330),(1918,-2184,196),(-3616,1376,23),(-2046,-1306,46),(776,1432,261)];
var_01 = [(0,330,90),(0,0,90),(0,168,90),(0,240,90),(0,225,90),(0,11,90),(0,150,90),(0,205,90),(0,220,90),(0,0,90)];
var_02 = ["s","k","u","l","l"];
var_03 = scripts\common\utility::array_randomize([0,1,2,3,4,5,6,7,8,9]);
level.gns_spell_character_ents = [];
for(var_04 = 0;var_04 < 5;var_04++)
{
var_05 = var_03[var_04];
var_06 = spawn_quest_vfx_symbol(var_00[var_05],var_01[var_05],var_02[var_04]);
var_06 thread player_select_monitor(var_06);
level.gns_spell_character_ents[level.gns_spell_character_ents.size] = var_06;
scripts\common\utility::func_136F7();
}
}
//Function Number: 29
player_select_monitor(param_00)
{
param_00 endon("death");
wait_for_player_look_at(param_00);
level.gns_spell_character_ents = scripts\common\utility::func_22A9(level.gns_spell_character_ents,param_00);
level notify("gns_character_selected",param_00.letter);
param_00 setscriptablepartstate("vfx",param_00.letter + "_fade");
wait(3);
param_00 delete();
}
//Function Number: 30
clear_gns_spell_letters()
{
if(isdefined(level.gns_spell_character_ents))
{
foreach(var_01 in level.gns_spell_character_ents)
{
if(isdefined(var_01))
{
var_01 delete();
}
}
}
}
//Function Number: 31
complete_spell_skull()
{
clear_gns_spell_letters();
scripts\cp\maps\cp_zmb\cp_zmb_ghost_wave::func_C127(4);
}
//Function Number: 32
debug_spell_skull()
{
}
//Function Number: 33
shoot_skull_during_boat()
{
level.start_boat_ride_func = ::gns_start_boat_ride_func;
level waittill("shoot_all_escaping_skulls_during_boat_ride");
level.start_boat_ride_func = undefined;
}
//Function Number: 34
gns_start_boat_ride_func()
{
wait(12);
level thread activate_scaping_skulls();
}
//Function Number: 35
activate_scaping_skulls()
{
level endon("skull_escaped");
var_00 = [1,2,3,4,5,6,7,8];
var_01 = var_00;
level.skull_destroyed = 0;
level.escaping_skulls = [];
for(var_02 = 0;var_02 < 12;var_02++)
{
if(var_02 % 8 == 0)
{
var_01 = scripts\common\utility::array_randomize(var_00);
}
var_03 = var_01[var_02 % 8];
level thread skull_escape((-2335,5347,-107) + (146 * var_03,-120 * var_03,0),6);
wait(1);
}
}
//Function Number: 36
skull_escape(param_00,param_01)
{
var_02 = spawn("script_model",param_00);
level.escaping_skulls[level.escaping_skulls.size] = var_02;
var_02 endon("death");
var_02 setmodel("zmb_pixel_skull");
var_02 show_to_boat_players(var_02);
var_02 thread skull_damage_monitor(var_02);
var_02 thread color_manager(var_02,param_01);
var_02.angles = (0,225,0);
var_02 set_skull_color(var_02,"green");
var_02 moveto(param_00 + (0,0,500),param_01);
var_02 waittill("movedone");
level notify("skull_escaped");
level thread clear_escaping_skulls();
}
//Function Number: 37
clear_escaping_skulls()
{
if(isdefined(level.escaping_skulls))
{
foreach(var_01 in level.escaping_skulls)
{
if(isdefined(var_01))
{
var_01 delete();
}
}
}
}
//Function Number: 38
color_manager(param_00,param_01)
{
param_00 endon("death");
param_00 set_skull_color(param_00,"green");
wait(param_01 - 2);
param_00 set_skull_color(param_00,"red");
}
//Function Number: 39
set_skull_color(param_00,param_01)
{
param_00.color = param_01;
param_00 setscriptablepartstate("skull_vfx",param_01);
}
//Function Number: 40
show_to_boat_players(param_00)
{
param_00 hide();
foreach(var_02 in level.players)
{
if(scripts\common\utility::istrue(var_02.var_AD2B))
{
param_00 showtoplayer(var_02);
}
}
}
//Function Number: 41
exp_vfx_to_boat_player(param_00)
{
foreach(var_02 in level.players)
{
if(scripts\common\utility::istrue(var_02.var_AD2B))
{
playfx(level._effect["ghost_explosion_death_" + param_00.color],param_00.origin,(1,1,0),(0,0,1),var_02);
}
}
}
//Function Number: 42
skull_damage_monitor(param_00)
{
param_00 endon("death");
param_00 setcandamage(1);
param_00.health = 999999;
for(;;)
{
param_00 waittill("damage",var_01,var_02,var_03,var_04,var_05,var_06,var_07,var_08,var_09,var_0A);
param_00.health = 999999;
if(!isplayer(var_02))
{
continue;
}
if(!scripts\common\utility::istrue(var_02.var_AD2B))
{
continue;
}
break;
}
exp_vfx_to_boat_player(param_00);
level.skull_destroyed++;
if(level.skull_destroyed == 12)
{
level notify("shoot_all_escaping_skulls_during_boat_ride");
}
param_00 delete();
}
//Function Number: 43
complete_shoot_skull_during_boat()
{
scripts\cp\maps\cp_zmb\cp_zmb_ghost_wave::func_C127(5);
}
//Function Number: 44
debug_shoot_skull_during_boat()
{
}
//Function Number: 45
hit_gns_cabinet_with_ben_franklin()
{
for(;;)
{
level waittill("ben_franklin_lightning_pos",var_00);
if(var_00[2] > 467)
{
continue;
}
if(var_00[2] < 386)
{
continue;
}
if(distance2dsquared(var_00,(-275,-1483,431)) > 484)
{
continue;
}
break;
}
}
//Function Number: 46
complete_hit_gns_cabinet_with_ben_franklin()
{
scripts\cp\maps\cp_zmb\cp_zmb_ghost_wave::func_C127(6);
}
//Function Number: 47
debug_hit_gns_cabinet_with_ben_franklin()
{
}
//Function Number: 48
func_135F6()
{
level endon("player_debug_activate_cabinet");
level.gns_game_console_vfx = spawnfx(level._effect["GnS_activation"],(-282,-1483,437));
triggerfx(level.gns_game_console_vfx);
var_00 = (-294,-1469,396);
var_01 = 2500;
for(;;)
{
var_02 = 1;
foreach(var_04 in level.players)
{
if(scripts\common\utility::istrue(var_04.inlaststand))
{
var_02 = 0;
break;
}
if(scripts\common\utility::istrue(var_04.var_9D81))
{
var_02 = 0;
break;
}
if(distancesquared(var_04.origin,var_00) > var_01)
{
var_02 = 0;
break;
}
if(!var_04 usebuttonpressed())
{
var_02 = 0;
break;
}
}
wait(0.25);
if(var_02)
{
var_02 = 1;
foreach(var_04 in level.players)
{
if(scripts\common\utility::istrue(var_04.inlaststand))
{
var_02 = 0;
break;
}
if(scripts\common\utility::istrue(var_04.var_9D81))
{
var_02 = 0;
break;
}
if(distancesquared(var_04.origin,var_00) > var_01)
{
var_02 = 0;
break;
}
if(!var_04 usebuttonpressed())
{
var_02 = 0;
break;
}
}
}
if(var_02)
{
level.gns_game_console_vfx delete();
return;
}
scripts\common\utility::func_136F7();
}
}
//Function Number: 49
func_447F()
{
scripts\cp\maps\cp_zmb\cp_zmb_ghost_wave::func_C127(-1,0.5);
scripts\cp\maps\cp_zmb\cp_zmb_ghost_wave::func_10C61();
}
//Function Number: 50
func_4F30()
{
}
//Function Number: 51
reactive_ghost_n_skull_cabinet()
{
if(!lib_0D52::quest_line_exist("reactivateghost"))
{
lib_0D52::func_DED3("reactivateghost",0,::scripts\cp\maps\cp_zmb\cp_zmb_ghost_wave::reactivate_cabinet,::hit_gns_cabinet_with_ben_franklin,::complete_hit_gns_cabinet_with_ben_franklin,::debug_hit_gns_cabinet_with_ben_franklin);
lib_0D52::func_DED3("reactivateghost",1,::func_2B53,::func_135F6,::func_447F,::func_4F30);
}
level thread lib_0D52::func_10CEE("reactivateghost");
}

View File

@ -0,0 +1,487 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\cp\maps\cp_rave\cp_rave_harpoon_quest.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 25
* Decompile Time: 1358 ms
* Timestamp: 10/27/2023 12:06:21 AM
*******************************************************************/
//Function Number: 1
harpoon_quest_init()
{
scripts\common\utility::flag_init("harpoon_unlocked");
scripts\common\utility::flag_init("chains_unlocked");
level._effect["deer_head_explosion"] = loadfx("vfx/iw7/core/expl/weap/chargeshot/vfx_expl_chargeshot.vfx");
level._effect["harpoon_symbol_1"] = loadfx("vfx/iw7/levels/cp_rave/vfx_rave_harpoon_symbol_1_facing.vfx");
level._effect["harpoon_symbol_2"] = loadfx("vfx/iw7/levels/cp_rave/vfx_rave_harpoon_symbol_2_facing.vfx");
level._effect["harpoon_symbol_3"] = loadfx("vfx/iw7/levels/cp_rave/vfx_rave_harpoon_symbol_3_facing.vfx");
level._effect["chain_dissolve"] = loadfx("vfx/iw7/levels/cp_rave/vfx_rave_chain_dissolve.vfx");
level.harpoon_locks = 0;
level thread break_the_chains();
level thread collect_bait();
level thread init_bait_heads();
}
//Function Number: 2
collect_bait()
{
var_00 = scripts\common\utility::getstruct("bait_loc","targetname");
var_01 = spawn("script_model",var_00.origin);
var_01 setmodel("tag_origin");
var_01 makeusable();
var_01 sethintstring(&"CP_RAVE_PICK_UP_BAIT");
level.bait_model = getent("bait_pickup","targetname");
for(;;)
{
var_01 waittill("trigger",var_02);
var_02.has_bait = 1;
var_02 thread scripts\cp\_utility::func_1308C(var_02,"iw7_pickup_zm");
var_02 thread scripts\cp\powers\coop_powers::func_8397("power_bait","secondary",undefined,undefined,undefined,1,1);
wait(0.1);
level.bait_model method_8429(var_02);
}
}
//Function Number: 3
init_bait_heads()
{
var_00 = getentarray("bait_head","targetname");
foreach(var_02 in var_00)
{
var_02 thread wait_to_be_fed();
}
}
//Function Number: 4
wait_to_be_fed()
{
thread play_signal_if_bait_nearby();
thread fly_off_the_handle();
}
//Function Number: 5
turn_on_fx(param_00)
{
wait(param_00);
self setscriptablepartstate("symbol","on");
}
//Function Number: 6
play_signal_if_bait_nearby()
{
self endon("stop_attacking_player");
var_00 = 160000;
while(!isdefined(level.players))
{
wait(0.1);
}
while(level.players.size < 1)
{
wait(0.1);
}
for(;;)
{
var_01 = 0;
foreach(var_03 in level.players)
{
if(var_03 scripts\cp\powers\coop_powers::func_8C17("power_bait"))
{
if(distancesquared(var_03.origin,self.origin) < var_00)
{
self setscriptablepartstate("bait","active");
var_01 = 1;
break;
}
}
}
if(!var_01)
{
self setscriptablepartstate("bait","inactive");
}
wait(1);
}
}
//Function Number: 7
fly_off_the_handle()
{
wait(5);
thread listen_for_damage();
head_logic();
self setscriptablepartstate("head","explode");
wait(0.1);
self setmodel("tag_origin");
playfxontag(level._effect["harpoon_symbol_1"],self,"tag_origin");
var_00 = scripts\common\utility::getstructarray("bait_head_end_spot","targetname");
var_01 = scripts\common\utility::getclosest(self.origin,var_00,500);
self moveto(var_01.origin,2);
self waittill("movedone");
self makeusable();
self method_8269((100000,100000,0),10000);
self waittill("trigger",var_02);
var_02.symbol_picked_up = 1;
level.harpoon_locks++;
var_02 playsound("part_pickup");
switch(level.harpoon_locks)
{
case 1:
level scripts\cp\_utility::set_quest_icon(1);
remove_rave_lock();
break;
case 2:
level scripts\cp\_utility::set_quest_icon(3);
remove_rave_lock();
break;
case 3:
level scripts\cp\_utility::set_quest_icon(4);
remove_rave_lock();
break;
}
wait_for_key_pickup();
self delete();
}
//Function Number: 8
remove_rave_lock()
{
foreach(var_01 in level.lock_spots)
{
if(isdefined(var_01))
{
var_01 delete();
break;
}
}
}
//Function Number: 9
func_0125(param_00)
{
for(;;)
{
if(!self.var_8C59 func_9DD7(param_00,0.9,(0,90,0)))
{
if(self.var_8C59 isenemyrightofme(param_00,(0,115,0)))
{
self rotateyaw(self.angles[2] + 10,0.15,0.05,0.05);
}
else
{
self rotateyaw(self.angles[2] - 10,0.15,0.05,0.05);
}
}
else
{
break;
}
wait(0.15);
}
}
//Function Number: 10
func_9DD7(param_00,param_01,param_02)
{
var_03 = vectornormalize(param_00.origin - self.origin * (1,1,0));
var_04 = anglestoright(self.angles + param_02);
var_05 = vectordot(var_03,var_04);
return var_05 > param_01;
}
//Function Number: 11
isenemyrightofme(param_00,param_01)
{
var_02 = vectornormalize(param_00.origin - self.origin * (1,1,0));
var_03 = anglestoforward(self.angles + param_01);
var_04 = vectordot(var_02,var_03);
return var_04 > 0;
}
//Function Number: 12
listen_for_bait_throw()
{
self endon("disconnect");
for(;;)
{
self waittill("grenade_fire",var_00,var_01);
if(isdefined(var_00) && isdefined(var_01))
{
var_00 thread func_135DE(var_01,self);
}
}
}
//Function Number: 13
func_135DE(param_00,param_01)
{
if(!isdefined(self.var_13C2E) || self.var_13C2E != "iw7_bait_zm")
{
return;
}
self waittill("explode",var_02);
var_03 = getentarray("bait_head","targetname");
var_04 = scripts\common\utility::getclosest(var_02,var_03,500);
if(isdefined(var_04))
{
if(isdefined(var_04.bait))
{
var_04.bait delete();
}
var_04.anchor.bait = spawn("script_origin",var_02);
var_04.anchor.bait_time = gettime();
}
}
//Function Number: 14
head_logic()
{
self endon("stop_attacking_player");
self.wall_spot = self.origin;
self.wall_angles = self.angles;
self.move_spots = scripts\common\utility::getstructarray("bait_head_move_spot","targetname");
self.bait_spot = undefined;
self.bait = undefined;
self.on_wall = 1;
for(;;)
{
self setscriptablepartstate("audio","off");
self waittill("hit_with_bait");
if(self.on_wall)
{
self setscriptablepartstate("symbol","on");
self setscriptablepartstate("bait","inactive");
self setscriptablepartstate("audio","leaving_wall");
self moveto(self.origin + (10,0,0),0.1);
wait(0.1);
self moveto(self.origin + (-20,0,0),0.1);
wait(0.1);
self moveto(self.origin + (10,0,10),0.1);
wait(0.1);
self moveto(self.origin + (-10,0,-20),0.1);
wait(0.1);
self.on_wall = 0;
self setscriptablepartstate("head","active");
}
var_00 = self.bait.origin;
var_01 = scripts\common\utility::getclosest(var_00,self.move_spots,1000);
self.bait_spot = var_01;
move_along_path();
move_back_to_wall();
self.on_wall = 1;
self setscriptablepartstate("head","inactive");
self setscriptablepartstate("audio","off");
wait(0.1);
}
}
//Function Number: 15
move_to_bait_spot()
{
self moveto(self.bait_spot.origin,1,0.25,0.25);
self waittill("movedone");
}
//Function Number: 16
move_along_path()
{
self setscriptablepartstate("audio","flying");
self moveto(self.bait_spot.origin,0.5,0.1,0.1);
self waittill("movedone");
for(var_00 = self.bait_spot;isdefined(var_00.target);var_00 = var_01)
{
var_01 = scripts\common\utility::getstruct(var_00.target,"targetname");
self method_8269((0,720,0),2,0.1,0.1);
self moveto(var_01.origin,2,0.25,0.25);
self waittill("movedone");
}
}
//Function Number: 17
move_back_to_wall()
{
self setscriptablepartstate("audio","returning_to_wall");
self rotateto(self.wall_angles,0.5);
self waittill("rotatedone");
self moveto(self.wall_spot,1,0.25,0.25);
self waittill("movedone");
if(isdefined(self.bait))
{
self.bait delete();
}
}
//Function Number: 18
get_move_spot()
{
var_00 = scripts\common\utility::getstructarray("bait_head_move_spot","targetname");
var_01 = [];
foreach(var_03 in var_00)
{
if(!func_9DD7(var_03,0.25,(0,45,0)))
{
continue;
}
var_01[var_01.size] = var_03;
}
if(var_01.size > 0)
{
var_05 = scripts\common\utility::getclosest(self.origin,var_01);
}
else
{
var_05 = scripts\common\utility::getclosest(self.origin,var_01);
}
return var_05.origin;
}
//Function Number: 19
listen_for_damage()
{
self setcandamage(1);
for(;;)
{
self waittill("damage",var_00,var_01,var_02,var_03,var_04,var_05,var_06,var_07,var_08,var_09);
if(!scripts\common\utility::istrue(var_01.var_DCEB))
{
continue;
}
if(var_09 == "iw7_bait_zm")
{
if(self.on_wall)
{
self notify("hit_with_bait");
}
wait(0.1);
continue;
}
if(self.on_wall)
{
wait(0.1);
continue;
}
if(!func_9DD7(var_01,0.9,(0,90,0)))
{
break;
}
}
self notify("stop_attacking_player");
}
//Function Number: 20
listen_for_symbol_press()
{
}
//Function Number: 21
wait_for_key_pickup()
{
if(level.harpoon_locks > 2)
{
scripts\common\utility::flag_set("chains_unlocked");
}
}
//Function Number: 22
spawn_chain_locks()
{
level.lock_spots = [];
var_00 = scripts\common\utility::getstructarray("chain_lock","targetname");
var_01 = 1;
foreach(var_03 in var_00)
{
var_04 = spawn("script_model",var_03.origin);
wait(0.1);
var_04.angles = var_03.angles + (0,0,90);
wait(0.1);
var_04 setmodel("tag_origin_harpoon_quest_symbol_" + var_01);
level.lock_spots[level.lock_spots.size] = var_04;
var_01++;
}
}
//Function Number: 23
show_hide_symbols()
{
level endon("chains_unlocked");
while(!isdefined(level.players))
{
wait(0.1);
}
for(;;)
{
foreach(var_01 in level.players)
{
var_02 = scripts\common\utility::istrue(var_01.var_DCEB);
foreach(var_04 in level.lock_spots)
{
if(var_02)
{
var_04 show();
continue;
}
var_04 hide();
}
}
wait(0.1);
}
}
//Function Number: 24
break_the_chains()
{
level thread spawn_chain_locks();
var_00 = getentarray("harpoon_gun_quest_chains","targetname");
scripts\common\utility::flag_wait("chains_unlocked");
var_01 = (-332,-1435,310);
var_02 = spawn("script_origin",var_01);
wait(0.1);
var_02 makeusable();
var_02 sethintstring(&"CP_RAVE_BREAK_LOCK");
var_02 waittill("trigger");
var_03 = spawn("script_model",var_00[0].origin);
var_03 setmodel("tag_origin");
var_03.angles = var_00[0].angles + (0,0,0);
var_03 playsound("harpoon_cabinet_unlock");
wait(1);
playfxontag(level._effect["chain_dissolve"],var_03,"tag_origin");
var_00[0] hide();
var_02 delete();
scripts\common\utility::flag_set("harpoon_unlocked");
}
//Function Number: 25
take_harpoon_weapon()
{
var_00 = getent("harpoon_gun_quest","targetname");
var_01 = getent("harpoon_gun_quest_activation_spot","targetname");
scripts\common\utility::flag_wait("harpoon_unlocked");
var_01 makeusable();
var_01 sethintstring(&"CP_RAVE_PICKUP_ITEM");
var_01 waittill("trigger",var_02);
var_02 giveweapon("iw7_harpoon_zm");
var_02 switchtoweapon("iw7_harpoon_zm");
var_00 hide();
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More