mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-07-05 21:37:51 -05:00
Added AW, BO2, Ghosts, IW, MWR, WW2 Scripts
This commit is contained in:
143
IW/PC/ALL/scripts/mp/agents/_agent_common.gsc
Normal file
143
IW/PC/ALL/scripts/mp/agents/_agent_common.gsc
Normal file
@ -0,0 +1,143 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\_agent_common.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 12
|
||||
* Decompile Time: 466 ms
|
||||
* Timestamp: 10/27/2023 12:32:09 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
func_00A3()
|
||||
{
|
||||
self [[ level.var_97C2 ]]();
|
||||
var_00 = "axis";
|
||||
if(level.var_C20F % 2 == 0)
|
||||
{
|
||||
var_00 = "allies";
|
||||
}
|
||||
|
||||
level.var_C20F++;
|
||||
self method_8492("locdmgtable/mp_lochit_dmgtable");
|
||||
self [[ level.var_F635 ]](var_00);
|
||||
level.var_1900[level.var_1900.size] = self;
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
func_00A4(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_01 = [[ level.var_190A ]](param_01);
|
||||
var_0C = self [[ level.var_1908 ]]("on_damaged");
|
||||
if(isdefined(var_0C))
|
||||
{
|
||||
self [[ var_0C ]](param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B);
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
func_00A5(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
|
||||
{
|
||||
if(isdefined(level.var_3762))
|
||||
{
|
||||
[[ level.var_3762 ]](param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07);
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
func_00A6(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
|
||||
{
|
||||
param_01 = [[ level.var_190A ]](param_01);
|
||||
var_0A = self [[ level.var_1908 ]]("on_killed");
|
||||
if(isdefined(var_0A))
|
||||
{
|
||||
self thread [[ var_0A ]](param_00,param_01,param_02,param_04,param_05,param_06,param_07,param_08,param_09);
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 5
|
||||
func_00A7(param_00,param_01,param_02,param_03)
|
||||
{
|
||||
}
|
||||
|
||||
//Function Number: 6
|
||||
func_00A8(param_00,param_01)
|
||||
{
|
||||
}
|
||||
|
||||
//Function Number: 7
|
||||
func_00A9(param_00,param_01,param_02,param_03)
|
||||
{
|
||||
}
|
||||
|
||||
//Function Number: 8
|
||||
init()
|
||||
{
|
||||
func_97C1();
|
||||
scripts\mp\agents\_scriptedagents::func_DF00();
|
||||
level thread func_1691();
|
||||
}
|
||||
|
||||
//Function Number: 9
|
||||
func_4535(param_00,param_01,param_02)
|
||||
{
|
||||
var_03 = [[ level.var_7EC5 ]](param_00);
|
||||
if(isdefined(var_03))
|
||||
{
|
||||
var_03.var_4539 = gettime();
|
||||
if(isdefined(param_01))
|
||||
{
|
||||
var_03 [[ level.var_F635 ]](param_01);
|
||||
}
|
||||
else
|
||||
{
|
||||
var_03 [[ level.var_F635 ]](var_03.team);
|
||||
}
|
||||
|
||||
if(isdefined(param_02))
|
||||
{
|
||||
var_03.var_4007 = param_02;
|
||||
}
|
||||
|
||||
if(isdefined(level.agent_funcs[param_00]["onAIConnect"]))
|
||||
{
|
||||
var_03 [[ var_03 [[ level.var_1908 ]]("onAIConnect") ]]();
|
||||
}
|
||||
|
||||
var_03 [[ level.var_184B ]]();
|
||||
}
|
||||
|
||||
return var_03;
|
||||
}
|
||||
|
||||
//Function Number: 10
|
||||
func_97C1()
|
||||
{
|
||||
level.var_1900 = [];
|
||||
level.var_C20F = 0;
|
||||
}
|
||||
|
||||
//Function Number: 11
|
||||
func_1691()
|
||||
{
|
||||
level endon("game_ended");
|
||||
level waittill("connected",var_00);
|
||||
var_01 = function_00AF();
|
||||
while(level.var_1900.size < var_01)
|
||||
{
|
||||
var_02 = addagent();
|
||||
if(!isdefined(var_02))
|
||||
{
|
||||
scripts\common\utility::func_136F7();
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 12
|
||||
func_F28C(param_00)
|
||||
{
|
||||
self.var_1E = param_00;
|
||||
self.health = param_00;
|
||||
self.maxhealth = param_00;
|
||||
}
|
435
IW/PC/ALL/scripts/mp/agents/_agents.gsc
Normal file
435
IW/PC/ALL/scripts/mp/agents/_agents.gsc
Normal file
@ -0,0 +1,435 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\_agents.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 12
|
||||
* Decompile Time: 473 ms
|
||||
* Timestamp: 10/27/2023 12:32:10 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
main()
|
||||
{
|
||||
if(isdefined(level.createfx_enabled) && level.createfx_enabled)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
func_F8F4();
|
||||
level.var_274F = ::badplace_cylinder;
|
||||
level.var_2750 = ::badplace_delete;
|
||||
scripts\mp\_mp_agent::init_agent("mp/default_agent_definition.csv");
|
||||
lib_0F6E::registerscriptedagent();
|
||||
level thread scripts\mp\agents\_agent_common::init();
|
||||
level thread scripts\mp\killstreaks\_agent_killstreak::init();
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
func_F8F4()
|
||||
{
|
||||
if(!isdefined(level.agent_funcs))
|
||||
{
|
||||
level.agent_funcs = [];
|
||||
}
|
||||
|
||||
level.agent_funcs["player"] = [];
|
||||
level.agent_funcs["player"]["spawn"] = ::func_10618;
|
||||
level.agent_funcs["player"]["think"] = ::scripts\mp\bots\gametype_war::func_2ECE;
|
||||
level.agent_funcs["player"]["on_killed"] = ::func_C4A9;
|
||||
level.agent_funcs["player"]["on_damaged"] = ::func_C4A8;
|
||||
level.agent_funcs["player"]["on_damaged_finished"] = ::func_18EC;
|
||||
lib_0F6E::func_FA99();
|
||||
lib_0DF9::func_CAC9();
|
||||
scripts\mp\killstreaks\_agent_killstreak::func_F8F4();
|
||||
scripts\mp\killstreaks\_rc8::func_F8F4();
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
func_13672()
|
||||
{
|
||||
while(!isdefined(level.agent_funcs))
|
||||
{
|
||||
wait(0.05);
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
func_16F2(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)
|
||||
{
|
||||
var_0E = scripts\mp\agents\_agent_common::func_4535(param_00,param_01,param_02);
|
||||
if(isdefined(param_09))
|
||||
{
|
||||
var_0E.var_4009 = param_09;
|
||||
}
|
||||
|
||||
if(isdefined(var_0E))
|
||||
{
|
||||
var_0E thread [[ var_0E lib_0D65::func_1908("spawn") ]](param_03,param_04,param_05,param_06,param_07,param_08,param_0A,param_0B,param_0C,param_0D);
|
||||
}
|
||||
|
||||
return var_0E;
|
||||
}
|
||||
|
||||
//Function Number: 5
|
||||
func_10618(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
|
||||
{
|
||||
self endon("disconnect");
|
||||
while(!isdefined(level.var_8136))
|
||||
{
|
||||
scripts\common\utility::func_136F7();
|
||||
}
|
||||
|
||||
if(self.var_8BE2)
|
||||
{
|
||||
wait(randomintrange(6,10));
|
||||
}
|
||||
|
||||
lib_0D65::func_98BB(1);
|
||||
if(isdefined(param_00) && isdefined(param_01))
|
||||
{
|
||||
var_0A = param_00;
|
||||
var_0B = param_01;
|
||||
self.var_A9F4 = spawnstruct();
|
||||
self.var_A9F4.origin = var_0A;
|
||||
self.var_A9F4.angles = var_0B;
|
||||
}
|
||||
else
|
||||
{
|
||||
var_0C = self [[ level.var_8136 ]]();
|
||||
var_0A = var_0C.origin;
|
||||
var_0B = var_0C.angles;
|
||||
self.var_A9F4 = var_0C;
|
||||
}
|
||||
|
||||
lib_0D65::func_1601();
|
||||
self.var_A9F6 = gettime();
|
||||
self.var_10916 = gettime();
|
||||
var_0D = var_0A + (0,0,25);
|
||||
var_0E = var_0A;
|
||||
var_0F = playerphysicstrace(var_0D,var_0E);
|
||||
if(distancesquared(var_0F,var_0D) > 1)
|
||||
{
|
||||
var_0A = var_0F;
|
||||
}
|
||||
|
||||
self method_838E(var_0A,var_0B);
|
||||
if(isdefined(param_03) && param_03)
|
||||
{
|
||||
scripts\mp\bots\_bots_personality::func_2D0C();
|
||||
}
|
||||
else
|
||||
{
|
||||
scripts\mp\bots\_bots_util::func_2E83("default");
|
||||
}
|
||||
|
||||
if(isdefined(param_05))
|
||||
{
|
||||
scripts\mp\bots\_bots_util::func_2E81(param_05);
|
||||
}
|
||||
|
||||
func_98B6();
|
||||
scripts\mp\agents\_agent_common::func_F28C(100);
|
||||
if(isdefined(param_04) && param_04)
|
||||
{
|
||||
self.var_E28C = 1;
|
||||
}
|
||||
|
||||
if(isdefined(param_02))
|
||||
{
|
||||
lib_0D65::func_F290(param_02.team,param_02);
|
||||
}
|
||||
|
||||
if(isdefined(self.var_222))
|
||||
{
|
||||
thread func_5320(self.var_222);
|
||||
}
|
||||
|
||||
thread scripts\mp\_flashgrenades::func_B9D9();
|
||||
self method_80C8(0);
|
||||
self method_83B7();
|
||||
self [[ level.onspawnplayer ]]();
|
||||
if(!scripts\mp\_utility::func_9FB3(param_06))
|
||||
{
|
||||
scripts\mp\_class::func_8379(self.team,self.var_4004,1);
|
||||
}
|
||||
|
||||
thread scripts\mp\bots\_bots::func_2EBA(1);
|
||||
thread scripts\mp\bots\_bots::func_2EAF();
|
||||
if(self.agent_type == "player")
|
||||
{
|
||||
thread scripts\mp\bots\_bots::func_2EB3();
|
||||
}
|
||||
else if(self.agent_type == "odin_juggernaut")
|
||||
{
|
||||
thread scripts\mp\bots\_bots::func_2EB3(128);
|
||||
}
|
||||
|
||||
thread scripts\mp\bots\_bots_strategy::func_2EB8();
|
||||
self thread [[ lib_0D65::func_1908("think") ]]();
|
||||
if(!self.var_8BE2)
|
||||
{
|
||||
scripts\mp\_spawnlogic::func_1855();
|
||||
}
|
||||
|
||||
self.var_8BE2 = 0;
|
||||
if(!scripts\mp\_utility::func_9FB3(param_07))
|
||||
{
|
||||
thread scripts\mp\_weapons::func_C57B();
|
||||
}
|
||||
|
||||
if(!scripts\mp\_utility::func_9FB3(param_08))
|
||||
{
|
||||
thread scripts\mp\_healthoverlay::func_D3A5();
|
||||
}
|
||||
|
||||
if(!scripts\mp\_utility::func_9FB3(param_09))
|
||||
{
|
||||
thread scripts\mp\_battlechatter_mp::func_C57B();
|
||||
}
|
||||
|
||||
level notify("spawned_agent_player",self);
|
||||
level notify("spawned_agent",self);
|
||||
self notify("spawned_player");
|
||||
}
|
||||
|
||||
//Function Number: 6
|
||||
func_5320(param_00)
|
||||
{
|
||||
self endon("death");
|
||||
param_00 waittill("killstreak_disowned");
|
||||
self notify("owner_disconnect");
|
||||
if(scripts\mp\_hostmigration::func_13834())
|
||||
{
|
||||
wait(0.05);
|
||||
}
|
||||
|
||||
self suicide();
|
||||
}
|
||||
|
||||
//Function Number: 7
|
||||
func_18EC(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(isalive(self))
|
||||
{
|
||||
if(isdefined(param_00) || isdefined(param_01))
|
||||
{
|
||||
if(!isdefined(param_00))
|
||||
{
|
||||
param_00 = param_01;
|
||||
}
|
||||
|
||||
if(isdefined(self.var_1CB0) && !self.var_1CB0)
|
||||
{
|
||||
if(isdefined(param_00.classname) && param_00.classname == "script_vehicle")
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
if(isdefined(param_00.classname) && param_00.classname == "auto_turret")
|
||||
{
|
||||
param_01 = param_00;
|
||||
}
|
||||
|
||||
if(isdefined(param_01) && param_04 != "MOD_FALLING" && param_04 != "MOD_SUICIDE")
|
||||
{
|
||||
if(level.teambased)
|
||||
{
|
||||
if(isdefined(param_01.team) && param_01.team != self.team)
|
||||
{
|
||||
self method_829A(param_01);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
self method_829A(param_01);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
self method_80E9(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);
|
||||
if(!isdefined(self.var_9D25))
|
||||
{
|
||||
self.var_136FD = 1;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 8
|
||||
func_C4A7(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 = isdefined(param_01) && isdefined(self.var_222) && self.var_222 == param_01;
|
||||
var_0D = scripts\mp\_utility::func_24F0(self.var_222,param_01) || var_0C;
|
||||
if(!var_0C && self.agent_type == "playerProxy")
|
||||
{
|
||||
if(level.teambased && var_0D && !level.var_740A)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(!level.teambased && var_0C)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
if(isdefined(param_04) && param_04 == "MOD_CRUSH" && isdefined(param_00) && isdefined(param_00.classname) && param_00.classname == "script_vehicle")
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(!isdefined(self) || !scripts\mp\_utility::func_9F19(self))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(isdefined(param_01) && param_01.classname == "script_origin" && isdefined(param_01.type) && param_01.type == "soft_landing")
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(param_05 == "killstreak_emp_mp")
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(param_05 == "bouncingbetty_mp" && !scripts\mp\_weapons::func_B767(param_00,self))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(issubstr(param_05,"throwingknife") && param_04 == "MOD_IMPACT")
|
||||
{
|
||||
param_02 = self.health + 1;
|
||||
}
|
||||
|
||||
if(isdefined(param_00) && isdefined(param_00.var_11180) && param_00.var_11180 == self)
|
||||
{
|
||||
param_02 = self.health + 1;
|
||||
}
|
||||
|
||||
if(param_02 <= 0)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(isdefined(param_01) && param_01 != self && param_02 > 0 && !isdefined(param_08) || param_08 != "shield")
|
||||
{
|
||||
if(param_03 & level.var_92CA)
|
||||
{
|
||||
var_0E = "stun";
|
||||
}
|
||||
else if(!scripts\mp\_damage::func_100C1(param_06))
|
||||
{
|
||||
var_0E = "none";
|
||||
}
|
||||
else
|
||||
{
|
||||
var_0E = "standard";
|
||||
}
|
||||
|
||||
param_01 thread scripts\mp\_damagefeedback::func_12E84(var_0E,param_02 >= self.health);
|
||||
}
|
||||
|
||||
if(isdefined(level.var_B93A))
|
||||
{
|
||||
param_02 = [[ level.var_B93A ]](self,param_01,param_02,param_04,param_05,param_06,param_07,param_08);
|
||||
}
|
||||
|
||||
return self [[ lib_0D65::func_1908("on_damaged_finished") ]](param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B);
|
||||
}
|
||||
|
||||
//Function Number: 9
|
||||
func_C4A8(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 = isdefined(param_01) && isdefined(self.var_222) && self.var_222 == param_01;
|
||||
if(!level.teambased && var_0C)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(isdefined(level.var_13CA6))
|
||||
{
|
||||
param_05 = [[ level.var_13CA6 ]](param_05,param_00);
|
||||
}
|
||||
|
||||
scripts\mp\_damage::func_374D(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B);
|
||||
}
|
||||
|
||||
//Function Number: 10
|
||||
func_C4A9(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,1);
|
||||
if(isplayer(param_01) && !isdefined(self.var_222) || param_01 != self.var_222)
|
||||
{
|
||||
scripts\mp\_damage::func_C548("squad_mate",param_01,param_04,param_03,param_02,"destroyed_squad_mate");
|
||||
}
|
||||
|
||||
scripts\mp\_weapons::func_5D52(param_01);
|
||||
if(self.var_9D25)
|
||||
{
|
||||
self.var_8BE2 = 1;
|
||||
if(scripts\mp\_utility::func_7ECE() != 1 && isdefined(self.var_E28C) && self.var_E28C)
|
||||
{
|
||||
self thread [[ lib_0D65::func_1908("spawn") ]]();
|
||||
return;
|
||||
}
|
||||
|
||||
lib_0D65::func_4DDB();
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 11
|
||||
func_C4B3(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
|
||||
{
|
||||
if(isdefined(self.var_8C1F) && self.var_8C1F)
|
||||
{
|
||||
scripts\mp\_damage::func_AAB5(param_02,param_03);
|
||||
if(!param_09)
|
||||
{
|
||||
var_0A = self method_80B8(self getcurrentweapon());
|
||||
if(isdefined(var_0A))
|
||||
{
|
||||
var_0A thread scripts\mp\_weapons::func_51CC();
|
||||
var_0A.var_222 = self;
|
||||
var_0A.var_C83A = param_01;
|
||||
var_0A makeunusable();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(param_09)
|
||||
{
|
||||
self [[ level.var_13C82 ]](param_01,param_03);
|
||||
}
|
||||
|
||||
scripts\mp\_utility::func_E54E();
|
||||
if(isdefined(self.nocorpse))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
self.var_2C09 = self method_8084(param_08);
|
||||
thread scripts\mp\_damage::func_5124(self.var_2C09,param_06,param_05,param_04,param_00,param_03);
|
||||
}
|
||||
|
||||
//Function Number: 12
|
||||
func_98B6()
|
||||
{
|
||||
if(isdefined(self.var_4007))
|
||||
{
|
||||
self.var_4004 = self.var_4007;
|
||||
return;
|
||||
}
|
||||
|
||||
if(scripts\mp\bots\_bots_loadout::func_2E89())
|
||||
{
|
||||
self.var_4004 = "callback";
|
||||
return;
|
||||
}
|
||||
|
||||
self.var_4004 = "class1";
|
||||
}
|
23
IW/PC/ALL/scripts/mp/agents/_alien_agents.gsc
Normal file
23
IW/PC/ALL/scripts/mp/agents/_alien_agents.gsc
Normal file
@ -0,0 +1,23 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\_alien_agents.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 1
|
||||
* Decompile Time: 35 ms
|
||||
* Timestamp: 10/27/2023 12:23:14 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
main()
|
||||
{
|
||||
if(isdefined(level.createfx_enabled) && level.createfx_enabled)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
level.var_274F = ::badplace_cylinder;
|
||||
level.var_2750 = ::badplace_delete;
|
||||
level thread scripts\mp\agents\_agent_common::init();
|
||||
level.var_10A2A = 0;
|
||||
}
|
596
IW/PC/ALL/scripts/mp/agents/_scriptedagents.gsc
Normal file
596
IW/PC/ALL/scripts/mp/agents/_scriptedagents.gsc
Normal file
@ -0,0 +1,596 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\_scriptedagents.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 37
|
||||
* Decompile Time: 1275 ms
|
||||
* Timestamp: 10/27/2023 12:23:14 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
func_197F(param_00,param_01)
|
||||
{
|
||||
self.var_2A80 = param_00;
|
||||
lib_0A02::func_77();
|
||||
lib_0A1D::func_234D(param_01);
|
||||
thread func_19F7();
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
func_DF00()
|
||||
{
|
||||
level.var_C118["footstep_right_large"] = ::func_C0F9;
|
||||
level.var_C118["footstep_right_small"] = ::func_C0F9;
|
||||
level.var_C118["footstep_left_large"] = ::func_C0F9;
|
||||
level.var_C118["footstep_left_small"] = ::func_C0F9;
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
func_C0F9(param_00,param_01)
|
||||
{
|
||||
var_02 = issubstr(param_00,"left");
|
||||
var_03 = issubstr(param_00,"large");
|
||||
var_04 = "right";
|
||||
if(var_02)
|
||||
{
|
||||
var_04 = "left";
|
||||
}
|
||||
|
||||
if(var_03)
|
||||
{
|
||||
self notify("large_footstep");
|
||||
}
|
||||
|
||||
self.var_2303.var_7257.var_7254 = var_04;
|
||||
self.var_2303.var_7257.time = gettime();
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
func_89A9(param_00,param_01,param_02)
|
||||
{
|
||||
if(isdefined(level.var_C118[param_00]))
|
||||
{
|
||||
return [[ level.var_C118[param_00] ]](param_00,param_01);
|
||||
}
|
||||
|
||||
return undefined;
|
||||
}
|
||||
|
||||
//Function Number: 5
|
||||
func_0219(param_00,param_01)
|
||||
{
|
||||
if(isdefined(self.var_C50F))
|
||||
{
|
||||
self [[ self.var_C50F ]](param_00,param_01);
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 6
|
||||
func_0218()
|
||||
{
|
||||
self notify("killanimscript");
|
||||
self notify("terminate_ai_threads");
|
||||
}
|
||||
|
||||
//Function Number: 7
|
||||
func_19F7()
|
||||
{
|
||||
self endon("terminate_ai_threads");
|
||||
thread lib_0A1D::func_C878();
|
||||
thread lib_0A1D::func_126E5();
|
||||
for(;;)
|
||||
{
|
||||
if(!isdefined(self))
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
lib_0A02::func_90();
|
||||
lib_0A1A::func_2314();
|
||||
if(isdefined(self.var_2303.var_10E23))
|
||||
{
|
||||
lib_0A1A::func_2317(self.var_2303.var_10E23);
|
||||
self.var_2303.var_10E23 = undefined;
|
||||
}
|
||||
|
||||
lib_0A1A::func_2389();
|
||||
wait(0.05);
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 8
|
||||
func_CED9(param_00,param_01,param_02,param_03)
|
||||
{
|
||||
func_CED5(param_00,0,param_01,param_02,param_03);
|
||||
}
|
||||
|
||||
//Function Number: 9
|
||||
func_CED5(param_00,param_01,param_02,param_03,param_04)
|
||||
{
|
||||
self method_82AF(param_00,param_01);
|
||||
if(!isdefined(param_03))
|
||||
{
|
||||
param_03 = "end";
|
||||
}
|
||||
|
||||
func_1384C(param_02,param_03,param_00,param_01,param_04);
|
||||
}
|
||||
|
||||
//Function Number: 10
|
||||
func_CED2(param_00,param_01,param_02,param_03,param_04,param_05)
|
||||
{
|
||||
self method_82AF(param_00,param_01,param_02);
|
||||
if(!isdefined(param_04))
|
||||
{
|
||||
param_04 = "end";
|
||||
}
|
||||
|
||||
func_1384C(param_03,param_04,param_00,param_01,param_05);
|
||||
}
|
||||
|
||||
//Function Number: 11
|
||||
func_1384A(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
|
||||
{
|
||||
var_07 = undefined;
|
||||
if(isdefined(param_05))
|
||||
{
|
||||
var_07 = gettime() - param_06 * 0.001 / param_05;
|
||||
}
|
||||
|
||||
func_89A9(param_00,param_02,param_04);
|
||||
if(isdefined(param_02) && isdefined(self.var_2303))
|
||||
{
|
||||
lib_0A1D::func_2345(param_00,param_02,param_03,var_07);
|
||||
}
|
||||
|
||||
if(!isdefined(param_05) || var_07 > 0)
|
||||
{
|
||||
if(param_00 == param_01 || param_00 == "end" || param_00 == "anim_will_finish" || param_00 == "finish")
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
if(isdefined(param_04))
|
||||
{
|
||||
[[ param_04 ]](param_00,param_02,param_03,var_07);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
//Function Number: 12
|
||||
func_1384C(param_00,param_01,param_02,param_03,param_04)
|
||||
{
|
||||
var_05 = gettime();
|
||||
var_06 = undefined;
|
||||
if(isdefined(param_02) && isdefined(param_03))
|
||||
{
|
||||
var_06 = getanimlength(self method_80FD(param_02,param_03));
|
||||
}
|
||||
|
||||
for(var_07 = 0;!var_07;var_07 = func_1384A(var_08,param_01,param_02,param_03,param_04,var_06,var_05))
|
||||
{
|
||||
self waittill(param_00,var_08);
|
||||
if(isarray(var_08))
|
||||
{
|
||||
foreach(var_0A in var_08)
|
||||
{
|
||||
if(func_1384A(var_0A,param_01,param_02,param_03,param_04,var_06,var_05))
|
||||
{
|
||||
var_07 = 1;
|
||||
}
|
||||
}
|
||||
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 13
|
||||
func_CED0(param_00,param_01)
|
||||
{
|
||||
func_CED4(param_00,0,param_01);
|
||||
}
|
||||
|
||||
//Function Number: 14
|
||||
func_CED4(param_00,param_01,param_02)
|
||||
{
|
||||
self method_82AF(param_00,param_01);
|
||||
wait(param_02);
|
||||
}
|
||||
|
||||
//Function Number: 15
|
||||
playanimnwithnotetracksfortime(param_00,param_01,param_02,param_03,param_04)
|
||||
{
|
||||
self method_82AF(param_00,param_01);
|
||||
thread playanimnwithnotetracksfortime_helper(param_00,param_01,param_02,param_04);
|
||||
wait(param_03);
|
||||
self notify(param_00 + param_01);
|
||||
}
|
||||
|
||||
//Function Number: 16
|
||||
playanimnwithnotetracksfortime_helper(param_00,param_01,param_02,param_03)
|
||||
{
|
||||
self notify(param_00 + param_01);
|
||||
self endon(param_00 + param_01);
|
||||
var_04 = 0;
|
||||
var_05 = self method_80FD(param_00,param_01);
|
||||
var_06 = getanimlength(var_05);
|
||||
var_07 = gettime();
|
||||
while(!var_04)
|
||||
{
|
||||
self waittill(param_02,var_08);
|
||||
if(!isarray(var_08))
|
||||
{
|
||||
var_08 = [var_08];
|
||||
}
|
||||
|
||||
foreach(var_0A in var_08)
|
||||
{
|
||||
if(func_1384A(var_0A,"end",param_00,param_01,param_03,var_06,var_07))
|
||||
{
|
||||
var_04 = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 17
|
||||
func_CED1(param_00,param_01,param_02,param_03)
|
||||
{
|
||||
self method_82AF(param_00,param_01,param_02);
|
||||
wait(param_03);
|
||||
}
|
||||
|
||||
//Function Number: 18
|
||||
func_7DC9(param_00,param_01,param_02)
|
||||
{
|
||||
var_03 = length2d(param_00);
|
||||
var_04 = param_00[2];
|
||||
var_05 = length2d(param_01);
|
||||
var_06 = param_01[2];
|
||||
var_07 = 1;
|
||||
var_08 = 1;
|
||||
if(isdefined(param_02) && param_02)
|
||||
{
|
||||
var_09 = (param_01[0],param_01[1],0);
|
||||
var_0A = vectornormalize(var_09);
|
||||
if(vectordot(var_0A,param_00) < 0)
|
||||
{
|
||||
var_07 = 0;
|
||||
}
|
||||
else if(var_05 > 0)
|
||||
{
|
||||
var_07 = var_03 / var_05;
|
||||
}
|
||||
}
|
||||
else if(var_05 > 0)
|
||||
{
|
||||
var_07 = var_03 / var_05;
|
||||
}
|
||||
|
||||
if(abs(var_06) > 0.001 && var_06 * var_04 >= 0)
|
||||
{
|
||||
var_08 = var_04 / var_06;
|
||||
}
|
||||
|
||||
var_0B = spawnstruct();
|
||||
var_0B.var_13E2B = var_07;
|
||||
var_0B.var_3A6 = var_08;
|
||||
return var_0B;
|
||||
}
|
||||
|
||||
//Function Number: 19
|
||||
func_5D51(param_00,param_01)
|
||||
{
|
||||
var_02 = 15;
|
||||
var_03 = 45;
|
||||
if(isdefined(self.var_257))
|
||||
{
|
||||
var_02 = self.var_257;
|
||||
}
|
||||
|
||||
if(isdefined(self.height))
|
||||
{
|
||||
var_03 = self.height;
|
||||
}
|
||||
|
||||
if(!isdefined(param_01))
|
||||
{
|
||||
param_01 = 18;
|
||||
}
|
||||
|
||||
var_04 = param_00 + (0,0,param_01);
|
||||
var_05 = param_00 + (0,0,param_01 * -1);
|
||||
var_06 = self method_8007(var_04,var_05,self.var_257,self.height,1);
|
||||
if(abs(var_06[2] - var_04[2]) < 0.1)
|
||||
{
|
||||
return undefined;
|
||||
}
|
||||
|
||||
if(abs(var_06[2] - var_05[2]) < 0.1)
|
||||
{
|
||||
return undefined;
|
||||
}
|
||||
|
||||
return var_06;
|
||||
}
|
||||
|
||||
//Function Number: 20
|
||||
func_38D0(param_00,param_01,param_02,param_03)
|
||||
{
|
||||
if(!isdefined(param_02))
|
||||
{
|
||||
param_02 = 6;
|
||||
}
|
||||
|
||||
if(!isdefined(param_03))
|
||||
{
|
||||
param_03 = self.var_257;
|
||||
}
|
||||
|
||||
var_04 = (0,0,1) * param_02;
|
||||
var_05 = param_00 + var_04;
|
||||
var_06 = param_01 + var_04;
|
||||
return self method_8008(var_05,var_06,param_03,self.height - param_02,1);
|
||||
}
|
||||
|
||||
//Function Number: 21
|
||||
func_81F9(param_00,param_01,param_02)
|
||||
{
|
||||
if(!isdefined(param_02))
|
||||
{
|
||||
param_02 = 6;
|
||||
}
|
||||
|
||||
var_03 = (0,0,1) * param_02;
|
||||
var_04 = param_00 + var_03;
|
||||
var_05 = param_01 + var_03;
|
||||
return self method_8007(var_04,var_05,self.var_257 + 4,self.height - param_02,1);
|
||||
}
|
||||
|
||||
//Function Number: 22
|
||||
func_80FE(param_00)
|
||||
{
|
||||
var_01 = getmovedelta(param_00);
|
||||
var_02 = self method_81E7(var_01);
|
||||
var_03 = func_81F9(self.origin,var_02);
|
||||
var_04 = distance(self.origin,var_03);
|
||||
var_05 = distance(self.origin,var_02);
|
||||
return min(1,var_04 / var_05);
|
||||
}
|
||||
|
||||
//Function Number: 23
|
||||
func_EA25(param_00,param_01,param_02,param_03)
|
||||
{
|
||||
var_04 = func_80AE(param_00);
|
||||
func_EA24(param_00,var_04,param_01,param_02,param_03);
|
||||
}
|
||||
|
||||
//Function Number: 24
|
||||
func_EA22(param_00,param_01,param_02,param_03,param_04)
|
||||
{
|
||||
var_05 = func_80AE(param_00);
|
||||
func_EA23(param_00,var_05,param_01,param_02,param_03,param_04);
|
||||
}
|
||||
|
||||
//Function Number: 25
|
||||
func_EA23(param_00,param_01,param_02,param_03,param_04,param_05)
|
||||
{
|
||||
self method_82AF(param_00,param_01,param_02);
|
||||
func_EA24(param_00,param_01,param_03,param_04,param_05);
|
||||
}
|
||||
|
||||
//Function Number: 26
|
||||
func_EA24(param_00,param_01,param_02,param_03,param_04)
|
||||
{
|
||||
var_05 = self method_80FD(param_00,param_01);
|
||||
var_06 = func_80FE(var_05);
|
||||
self method_8282(var_06,1);
|
||||
func_CED5(param_00,param_01,param_02,param_03,param_04);
|
||||
self method_8282(1,1);
|
||||
}
|
||||
|
||||
//Function Number: 27
|
||||
func_80AE(param_00)
|
||||
{
|
||||
var_01 = self method_8100(param_00);
|
||||
return randomint(var_01);
|
||||
}
|
||||
|
||||
//Function Number: 28
|
||||
func_7DBD(param_00)
|
||||
{
|
||||
var_01 = vectortoangles(param_00);
|
||||
var_02 = angleclamp180(var_01[1] - self.angles[1]);
|
||||
return function_02F9(var_02);
|
||||
}
|
||||
|
||||
//Function Number: 29
|
||||
func_F2B1(param_00,param_01,param_02)
|
||||
{
|
||||
if(isdefined(param_02))
|
||||
{
|
||||
self method_82AF(param_00,param_01,param_02);
|
||||
return;
|
||||
}
|
||||
|
||||
if(isdefined(param_01))
|
||||
{
|
||||
self method_82AF(param_00,param_01);
|
||||
return;
|
||||
}
|
||||
|
||||
self method_82AF(param_00);
|
||||
}
|
||||
|
||||
//Function Number: 30
|
||||
func_9F77()
|
||||
{
|
||||
if(!isdefined(self.var_2C6))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
return self.var_2C6;
|
||||
}
|
||||
|
||||
//Function Number: 31
|
||||
func_F85E(param_00,param_01)
|
||||
{
|
||||
self.var_2C6 = param_00;
|
||||
}
|
||||
|
||||
//Function Number: 32
|
||||
func_CED6(param_00,param_01,param_02,param_03,param_04)
|
||||
{
|
||||
func_CED3(param_00,param_01,1,param_02,param_03,param_04);
|
||||
}
|
||||
|
||||
//Function Number: 33
|
||||
func_1384D(param_00,param_01,param_02)
|
||||
{
|
||||
self endon("disconnect");
|
||||
self endon("death");
|
||||
if(isdefined(param_02))
|
||||
{
|
||||
childthread func_C0E0(param_00,param_02,param_01);
|
||||
}
|
||||
|
||||
func_1384C(param_00,param_01);
|
||||
self notify("Notetrack_Timeout");
|
||||
}
|
||||
|
||||
//Function Number: 34
|
||||
func_CED3(param_00,param_01,param_02,param_03,param_04,param_05)
|
||||
{
|
||||
self endon("disconnect");
|
||||
self endon("death");
|
||||
if(isdefined(param_00))
|
||||
{
|
||||
if(isdefined(param_01))
|
||||
{
|
||||
var_06 = getanimlength(self method_80FD(param_00,param_01));
|
||||
}
|
||||
else
|
||||
{
|
||||
var_06 = getanimlength(self method_80FD(param_01,0));
|
||||
}
|
||||
|
||||
childthread func_C0E0(param_03,var_06 * 1 / param_02,param_04);
|
||||
}
|
||||
|
||||
func_CED2(param_00,param_01,param_02,param_03,param_04,param_05);
|
||||
self notify("Notetrack_Timeout");
|
||||
}
|
||||
|
||||
//Function Number: 35
|
||||
func_C0E0(param_00,param_01,param_02)
|
||||
{
|
||||
self notify("Notetrack_Timeout");
|
||||
self endon("Notetrack_Timeout");
|
||||
param_01 = max(0.05,param_01);
|
||||
wait(param_01);
|
||||
if(isdefined(param_02))
|
||||
{
|
||||
self notify(param_00,param_02);
|
||||
return;
|
||||
}
|
||||
|
||||
self notify(param_00,"end");
|
||||
}
|
||||
|
||||
//Function Number: 36
|
||||
func_5AC1(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
|
||||
{
|
||||
if(param_04 != "highest_point")
|
||||
{
|
||||
func_CED5(param_00,param_01,param_03,param_04,param_07);
|
||||
}
|
||||
|
||||
if(param_06)
|
||||
{
|
||||
var_08 = self.var_6367;
|
||||
var_09 = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
var_08 = scripts\common\utility::getstruct(self.var_6366.target,"targetname");
|
||||
var_09 = var_09.origin;
|
||||
var_0A = getnotetracktimes(param_03,"highest_point");
|
||||
var_09 = var_0A[0];
|
||||
}
|
||||
|
||||
func_5AC2(param_00,param_01,param_03,param_02,param_04,param_05,var_08,var_09,param_07);
|
||||
}
|
||||
|
||||
//Function Number: 37
|
||||
func_5AC2(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
|
||||
{
|
||||
var_09 = abs(self.origin[2] - param_06[2]);
|
||||
var_0A = getnotetracktimes(param_03,param_04);
|
||||
var_0B = var_0A[0];
|
||||
var_0C = var_0B;
|
||||
var_0D = getnotetracktimes(param_03,param_05);
|
||||
var_0E = var_0D[0];
|
||||
param_07 = var_0E;
|
||||
var_0F = "flex_height_up_top";
|
||||
var_10 = getnotetracktimes(param_03,var_0F);
|
||||
var_11 = "flex_height_down_top";
|
||||
var_12 = getnotetracktimes(param_03,var_11);
|
||||
var_13 = "flex_height_down_bottom";
|
||||
var_14 = getnotetracktimes(param_03,var_13);
|
||||
if(param_04 == "flex_height_up_start" && var_10.size > 0)
|
||||
{
|
||||
param_07 = var_10[0];
|
||||
}
|
||||
|
||||
if(param_04 == "flex_height_down_start")
|
||||
{
|
||||
if(var_12.size > 0)
|
||||
{
|
||||
var_0C = var_10[0];
|
||||
}
|
||||
|
||||
if(var_14.size > 0)
|
||||
{
|
||||
param_07 = var_14[0];
|
||||
}
|
||||
}
|
||||
|
||||
var_15 = getmovedelta(param_03,var_0C,param_07);
|
||||
var_16 = abs(var_15[2]);
|
||||
var_18 = getmovedelta(param_03,var_0B,var_0E);
|
||||
var_19 = abs(var_18[2]);
|
||||
if(var_19 < 1)
|
||||
{
|
||||
var_1A = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
var_1B = var_18 - var_1A;
|
||||
if(var_09 <= var_1B)
|
||||
{
|
||||
var_1A = var_1B - var_09 / var_19;
|
||||
}
|
||||
else
|
||||
{
|
||||
var_1A = var_09 - var_1B / var_19;
|
||||
}
|
||||
}
|
||||
|
||||
self method_8282(1,var_1A);
|
||||
if(var_0B != 0)
|
||||
{
|
||||
var_1C = self method_8102(param_03);
|
||||
if(var_1C < var_0B)
|
||||
{
|
||||
func_CED2(param_00,param_01,1,param_02,param_04,param_08);
|
||||
}
|
||||
}
|
||||
|
||||
var_1D = clamp(1 / var_1A,0.33,3);
|
||||
func_CED2(param_00,param_01,var_1D,param_02,param_05,param_08);
|
||||
}
|
276
IW/PC/ALL/scripts/mp/agents/alien_goon/alien_goon_agent.gsc
Normal file
276
IW/PC/ALL/scripts/mp/agents/alien_goon/alien_goon_agent.gsc
Normal file
@ -0,0 +1,276 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\alien_goon\alien_goon_agent.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 10
|
||||
* Decompile Time: 544 ms
|
||||
* Timestamp: 10/27/2023 12:11:04 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
registerscriptedagent()
|
||||
{
|
||||
scripts\mp\agents\alien_goon\alien_goon_tunedata::setuptunedata();
|
||||
lib_0A02::init();
|
||||
behaviortree\alien_goon::func_DEE8();
|
||||
scripts\asm\alien_goon\mp\states::func_2371();
|
||||
scripts\asm\dlc4\alien_anim_utils::func_97C5();
|
||||
func_AEB0();
|
||||
thread func_FAB0();
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
func_FAB0()
|
||||
{
|
||||
level endon("game_ended");
|
||||
if(!isdefined(level.agent_definition))
|
||||
{
|
||||
level waittill("scripted_agents_initialized");
|
||||
}
|
||||
|
||||
level.agent_definition["alien_goon"]["setup_func"] = ::setupagent;
|
||||
level.agent_definition["alien_goon"]["setup_model_func"] = ::func_FACE;
|
||||
level.agent_funcs["alien_goon"]["on_damaged"] = ::func_C4E0;
|
||||
level.agent_funcs["alien_goon"]["gametype_on_damage_finished"] = ::lib_0CBC::func_C5CE;
|
||||
level.agent_funcs["alien_goon"]["gametype_on_killed"] = ::scripts\cp\maps\cp_final\cp_final_damage::cp_final_onzombiekilled;
|
||||
level.agent_funcs["alien_goon"]["on_damaged_finished"] = ::scripts\mp\agents\zombie\zmb_zombie_agent::func_C5CE;
|
||||
level.agent_funcs["alien_goon"]["on_killed"] = ::scripts\mp\agents\zombie\zmb_zombie_agent::func_C5D2;
|
||||
if(!isdefined(level.var_8CBD))
|
||||
{
|
||||
level.var_8CBD = [];
|
||||
}
|
||||
|
||||
level.var_8CBD["alien_goon"] = ::calculatealiengoonhealth;
|
||||
if(!isdefined(level.damage_feedback_overrride))
|
||||
{
|
||||
level.damage_feedback_overrride = [];
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
func_FACE(param_00)
|
||||
{
|
||||
self setmodel("alien_goon");
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
setupzombiegametypevars()
|
||||
{
|
||||
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.attackent = undefined;
|
||||
self.var_9342 = 1;
|
||||
self.var_1B03 = "idle";
|
||||
self.var_1F5 = "walk";
|
||||
self.sharpturnnotifydist = 100;
|
||||
self.var_257 = 15;
|
||||
self.height = 40;
|
||||
self.var_252B = 26 + self.var_257;
|
||||
self.var_B640 = "normal";
|
||||
self.var_B641 = 50;
|
||||
self.var_2539 = 54;
|
||||
self.var_253A = -64;
|
||||
self.var_4D45 = 2250000;
|
||||
self.var_181 = 1;
|
||||
self.var_86BD = self getentitynumber();
|
||||
self.var_BCE4 = 0.9;
|
||||
self.var_C081 = 1;
|
||||
self.var_126E8 = 1;
|
||||
self.var_772A = 1;
|
||||
self.var_2AB2 = 0;
|
||||
self.var_2AB8 = 1;
|
||||
self.var_118FC = 0;
|
||||
self.var_2F = 1;
|
||||
self.var_B5F9 = 40;
|
||||
self.var_B62E = 70;
|
||||
self.var_B631 = 80;
|
||||
self.var_B62F = squared(self.var_B62E);
|
||||
self.var_503C = self.var_257 + 1;
|
||||
self.var_B607 = 0.5;
|
||||
self.var_565C = 0;
|
||||
self.var_9BAC = 0;
|
||||
self.var_54CB = 0;
|
||||
self.damaged_by_player = 0;
|
||||
self.var_9E0C = undefined;
|
||||
self.flung = undefined;
|
||||
self.var_B0FC = 1;
|
||||
self.full_gib = 0;
|
||||
self.var_12E = undefined;
|
||||
self.var_E821 = undefined;
|
||||
self.var_A8A2 = [];
|
||||
self.var_8C12 = 0;
|
||||
self.hasplayedvignetteanim = undefined;
|
||||
self.var_9BA7 = undefined;
|
||||
self.var_179 = 200;
|
||||
self.deathmethod = undefined;
|
||||
self.var_10A57 = undefined;
|
||||
self.var_828A = undefined;
|
||||
self.var_CE65 = undefined;
|
||||
self.var_29D2 = 1;
|
||||
self.vignette_nocorpse = undefined;
|
||||
self.death_anim_no_ragdoll = undefined;
|
||||
self.allowpain = 0;
|
||||
self method_84E6(45);
|
||||
if(getdvarint("scr_zombie_left_foot_sharp_turn_only",0) == 1)
|
||||
{
|
||||
self.var_AB3F = 1;
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 5
|
||||
setupagent()
|
||||
{
|
||||
setupzombiegametypevars();
|
||||
thread scripts\mp\agents\zombie\zmb_zombie_agent::func_12EE6();
|
||||
self.height = self.var_18F4;
|
||||
self.var_257 = self.var_18F9;
|
||||
self.var_B62D = 70;
|
||||
self.var_B62E = 70;
|
||||
self.var_B631 = 80;
|
||||
self.var_B62F = squared(self.var_B62E);
|
||||
self.var_503C = self.var_257 + 1;
|
||||
self.var_B607 = 0.5;
|
||||
self.var_B601 = 45;
|
||||
self.var_504E = 55;
|
||||
self.var_129AF = 55;
|
||||
self.var_368 = -60;
|
||||
self.var_100 = 60;
|
||||
self.ground_pound_damage = 50;
|
||||
self.footstepdetectdist = 2500;
|
||||
self.footstepdetectdistwalk = 2500;
|
||||
self.footstepdetectdistsprint = 2500;
|
||||
self.var_180 = 1;
|
||||
self.dontmutilate = 1;
|
||||
if(scripts\common\utility::istrue(self.activated_venomx_sphere))
|
||||
{
|
||||
self.activated_venomx_sphere = undefined;
|
||||
}
|
||||
|
||||
if(scripts\common\utility::istrue(self.dot_triggered))
|
||||
{
|
||||
self.dot_triggered = undefined;
|
||||
}
|
||||
|
||||
self.aj_goon = 0;
|
||||
self.preventplayerpushdist = 12;
|
||||
thread monitorwhizbys();
|
||||
}
|
||||
|
||||
//Function Number: 6
|
||||
func_AEB0()
|
||||
{
|
||||
level._effect["alien_teleport_fx"] = loadfx("vfx/iw7/_requests/coop/zmb_fullbody_gib.vfx");
|
||||
}
|
||||
|
||||
//Function Number: 7
|
||||
monitorwhizbys()
|
||||
{
|
||||
self endon("death");
|
||||
self.lastwhizbytime = undefined;
|
||||
for(;;)
|
||||
{
|
||||
self waittill("bulletwhizby",var_00,var_01);
|
||||
self.lastwhizbytime = gettime();
|
||||
self.lastwhizbyshooter = var_00;
|
||||
self.lastwhizbydist = var_01;
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 8
|
||||
calculatealiengoonhealth()
|
||||
{
|
||||
var_00 = 200;
|
||||
switch(level.var_1096B)
|
||||
{
|
||||
case 0:
|
||||
var_00 = 400;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
var_00 = 900;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
var_00 = 1300;
|
||||
break;
|
||||
|
||||
case 3:
|
||||
var_00 = 1600;
|
||||
break;
|
||||
|
||||
case 4:
|
||||
var_00 = 2000;
|
||||
break;
|
||||
|
||||
default:
|
||||
var_00 = 2000;
|
||||
break;
|
||||
}
|
||||
|
||||
return var_00;
|
||||
}
|
||||
|
||||
//Function Number: 9
|
||||
accumulatedamage(param_00,param_01)
|
||||
{
|
||||
if(!isdefined(self.damageaccumulator))
|
||||
{
|
||||
self.damageaccumulator = spawnstruct();
|
||||
self.damageaccumulator.accumulateddamage = 0;
|
||||
}
|
||||
else if(!isdefined(self.damageaccumulator.var_A96A) || gettime() > self.damageaccumulator.var_A96A + 1000)
|
||||
{
|
||||
self.damageaccumulator.accumulateddamage = 0;
|
||||
self.damageaccumulator.var_A96A = 0;
|
||||
}
|
||||
|
||||
self.damageaccumulator.var_A96A = gettime();
|
||||
if(!isdefined(param_01))
|
||||
{
|
||||
param_01 = (1,1,1);
|
||||
}
|
||||
|
||||
self.damageaccumulator.lastdir = param_01;
|
||||
if(isdefined(self.fake_damage))
|
||||
{
|
||||
self.damageaccumulator.accumulateddamage = self.damageaccumulator.accumulateddamage + self.fake_damage;
|
||||
self.fake_damage = undefined;
|
||||
return;
|
||||
}
|
||||
|
||||
self.damageaccumulator.accumulateddamage = self.damageaccumulator.accumulateddamage + param_00;
|
||||
}
|
||||
|
||||
//Function Number: 10
|
||||
func_C4E0(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B)
|
||||
{
|
||||
accumulatedamage(param_02,param_07);
|
||||
scripts\cp\maps\cp_final\cp_final_damage::cp_final_onzombiedamaged(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B);
|
||||
}
|
@ -0,0 +1,73 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\alien_goon\alien_goon_tunedata.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 2
|
||||
* Decompile Time: 150 ms
|
||||
* Timestamp: 10/27/2023 12:11:05 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
setuptunedata()
|
||||
{
|
||||
if(!isdefined(level.agenttunedata))
|
||||
{
|
||||
level.agenttunedata = [];
|
||||
}
|
||||
|
||||
level.agenttunedata["alien_goon"] = spawnstruct();
|
||||
setupmytunedata(level.agenttunedata["alien_goon"]);
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
setupmytunedata(param_00)
|
||||
{
|
||||
param_00.min_time_between_melee_attacks_ms = 1000;
|
||||
param_00.melee_max_flex_xy_scale = 2.5;
|
||||
param_00.melee_xy_scale_boost = 0.5;
|
||||
param_00.non_predicted_move_melee_dist_sq = 6724;
|
||||
param_00.check_reachable_dist_sq = 4096;
|
||||
param_00.moving_melee_attack_damage_radius_sq = 1600;
|
||||
param_00.melee_attack_damage_radius_sq = 9216;
|
||||
param_00.melee_dot = 0.867;
|
||||
param_00.stand_melee_dist_sq = 4096;
|
||||
param_00.stand_melee_attack_dot = 0.707;
|
||||
param_00.move_melee_dist_sq = 16384;
|
||||
param_00.post_attack_taunt_chance = 50;
|
||||
param_00.post_attack_max_enemy_dist_sq = 256;
|
||||
param_00.stumble_interval_ms = 10000;
|
||||
param_00.stumble_damage_pct = 0.25;
|
||||
param_00.stumble_chance = 50;
|
||||
param_00.min_dist_to_enemy_to_allow_turn_sq = -25536;
|
||||
param_00.max_dist_to_enemy_to_allow_turn_sq = 1048576;
|
||||
param_00.min_stop_facing_enemy_time_before_hit = 0.1;
|
||||
param_00.max_stop_facing_enemy_time_before_hit = 0.15;
|
||||
param_00.melee_max_z_diff = 60;
|
||||
param_00.avg_time_to_impact = 0.7;
|
||||
param_00.reduce_damage_dot = 0.25;
|
||||
param_00.reduce_damage_pct = 0.15;
|
||||
param_00.min_enemy_dist_to_dodge_sq = 65536;
|
||||
param_00.dodge_chance = 75;
|
||||
param_00.min_dodge_test_interval_ms = 250;
|
||||
param_00.min_dodge_interval_ms = 6000;
|
||||
param_00.min_dodge_scale = 0.3;
|
||||
param_00.max_dodge_scale = 0.5;
|
||||
param_00.wander_goal_radius = 64;
|
||||
param_00.wander_min_wait_time_ms = 1000;
|
||||
param_00.wander_max_wait_time_ms = 2500;
|
||||
param_00.jump_attack_damage_radius_sq = 8100;
|
||||
param_00.jump_attack_min_enemy_dot = 0.985;
|
||||
param_00.jump_attack_damage_dot = 0.867;
|
||||
param_00.jump_attack_melee_damage_multiplier = 1.1;
|
||||
param_00.jump_attack_initial_delay_ms = 5000;
|
||||
param_00.jump_attack_min_interval = 10000;
|
||||
param_00.max_leap_melee_drop_distance = 64;
|
||||
param_00.min_leap_distance_sq = 90000;
|
||||
param_00.max_leap_distance_sq = 562500;
|
||||
param_00.leap_offset_xy = 48;
|
||||
param_00.avg_leap_speed = 500;
|
||||
param_00.teleport_chance = 0;
|
||||
param_00.min_dist_to_teleport_sq = 1409865409;
|
||||
param_00.force_melee_attack_damage_radius_sq = 256;
|
||||
}
|
@ -0,0 +1,114 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\alien_phantom\alien_phantom_agent.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 6
|
||||
* Decompile Time: 347 ms
|
||||
* Timestamp: 10/27/2023 12:11:05 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
registerscriptedagent()
|
||||
{
|
||||
scripts\mp\agents\alien_phantom\alien_phantom_tunedata::setuptunedata();
|
||||
lib_0A02::init();
|
||||
behaviortree\alien_goon::func_DEE8();
|
||||
scripts\asm\alien_goon\mp\states::func_2371();
|
||||
thread func_FAB0();
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
func_FAB0()
|
||||
{
|
||||
level endon("game_ended");
|
||||
if(!isdefined(level.agent_definition))
|
||||
{
|
||||
level waittill("scripted_agents_initialized");
|
||||
}
|
||||
|
||||
level.agent_definition["alien_phantom"]["setup_func"] = ::setupagent;
|
||||
level.agent_definition["alien_phantom"]["setup_model_func"] = ::func_FACE;
|
||||
level.agent_funcs["alien_phantom"]["on_damaged"] = ::scripts\mp\agents\alien_goon\alien_goon_agent::func_C4E0;
|
||||
level.agent_funcs["alien_phantom"]["gametype_on_damage_finished"] = ::lib_0CBC::func_C5CE;
|
||||
level.agent_funcs["alien_phantom"]["gametype_on_killed"] = ::scripts\cp\maps\cp_final\cp_final_damage::cp_final_onzombiekilled;
|
||||
level.agent_funcs["alien_phantom"]["on_damaged_finished"] = ::scripts\mp\agents\zombie\zmb_zombie_agent::func_C5CE;
|
||||
level.agent_funcs["alien_phantom"]["on_killed"] = ::onkilled;
|
||||
level.brute_loot_check = [];
|
||||
if(!isdefined(level.var_8CBD))
|
||||
{
|
||||
level.var_8CBD = [];
|
||||
}
|
||||
|
||||
level.var_8CBD["alien_phantom"] = ::calculatealienphantomhealth;
|
||||
if(!isdefined(level.damage_feedback_overrride))
|
||||
{
|
||||
level.damage_feedback_overrride = [];
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
func_FACE(param_00)
|
||||
{
|
||||
self setmodel("alien_brute");
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
setupagent()
|
||||
{
|
||||
scripts\mp\agents\alien_goon\alien_goon_agent::setupagent();
|
||||
self.var_B601 = 67;
|
||||
self.preventplayerpushdist = 12;
|
||||
self.spawn_round_num = level.wave_num;
|
||||
self.var_9341 = 1;
|
||||
}
|
||||
|
||||
//Function Number: 5
|
||||
calculatealienphantomhealth()
|
||||
{
|
||||
var_00 = scripts\mp\agents\alien_goon\alien_goon_agent::calculatealiengoonhealth();
|
||||
var_01 = scripts\asm\dlc4\dlc4_asm::gettunedata();
|
||||
if(level.players.size < 2)
|
||||
{
|
||||
var_00 = var_00 / 2;
|
||||
}
|
||||
|
||||
return var_00 * var_01.goon_health_multiplier;
|
||||
}
|
||||
|
||||
//Function Number: 6
|
||||
onkilled(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
|
||||
{
|
||||
if(!isdefined(level.no_loot_drop) || !level.no_loot_drop)
|
||||
{
|
||||
var_09 = scripts\common\utility::random(["ammo_max","instakill_30","cash_2","instakill_30","cash_2","instakill_30","cash_2"]);
|
||||
if(isdefined(var_09) && !isdefined(self.var_72AC))
|
||||
{
|
||||
if(!isdefined(level.brute_loot_check[self.spawn_round_num]))
|
||||
{
|
||||
level.brute_loot_check[self.spawn_round_num] = 1;
|
||||
level thread scripts\cp\zombies\_powerups::drop_loot(self.origin,param_01,var_09,undefined,undefined,1);
|
||||
}
|
||||
}
|
||||
|
||||
var_0A = 400;
|
||||
foreach(var_0C in level.players)
|
||||
{
|
||||
if(var_0C scripts\cp\_utility::is_valid_player())
|
||||
{
|
||||
var_0C scripts\cp\_persistence::func_82F9(var_0A);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(self method_85B8())
|
||||
{
|
||||
level.totalphantomsjumping--;
|
||||
if(level.totalphantomsjumping <= 0)
|
||||
{
|
||||
level.totalphantomsjumping = 0;
|
||||
}
|
||||
}
|
||||
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::func_C5D2(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\alien_phantom\alien_phantom_tunedata.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 2
|
||||
* Decompile Time: 145 ms
|
||||
* Timestamp: 10/27/2023 12:11:06 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
setuptunedata()
|
||||
{
|
||||
if(!isdefined(level.agenttunedata))
|
||||
{
|
||||
level.agenttunedata = [];
|
||||
}
|
||||
|
||||
level.agenttunedata["alien_phantom"] = spawnstruct();
|
||||
setupmytunedata(level.agenttunedata["alien_phantom"]);
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
setupmytunedata(param_00)
|
||||
{
|
||||
scripts\mp\agents\alien_goon\alien_goon_tunedata::setupmytunedata(param_00);
|
||||
param_00.goon_health_multiplier = 7;
|
||||
param_00.force_melee_attack_damage_radius_sq = 1024;
|
||||
param_00.teleport_chance = 100;
|
||||
param_00.min_dist_to_teleport_sq = 90000;
|
||||
param_00.max_leap_distance_sq = 1000000;
|
||||
}
|
277
IW/PC/ALL/scripts/mp/agents/alien_rhino/alien_rhino_agent.gsc
Normal file
277
IW/PC/ALL/scripts/mp/agents/alien_rhino/alien_rhino_agent.gsc
Normal file
@ -0,0 +1,277 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\alien_rhino\alien_rhino_agent.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 10
|
||||
* Decompile Time: 523 ms
|
||||
* Timestamp: 10/27/2023 12:11:07 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
registerscriptedagent()
|
||||
{
|
||||
scripts\mp\agents\alien_rhino\alien_rhino_tunedata::setuptunedata();
|
||||
lib_0A02::init();
|
||||
behaviortree\alien_rhino::func_DEE8();
|
||||
scripts\asm\alien_rhino\mp\states::func_2371();
|
||||
thread func_FAB0();
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
func_FAB0()
|
||||
{
|
||||
level endon("game_ended");
|
||||
if(!isdefined(level.agent_definition))
|
||||
{
|
||||
level waittill("scripted_agents_initialized");
|
||||
}
|
||||
|
||||
level.agent_definition["alien_rhino"]["setup_func"] = ::setupagent;
|
||||
level.agent_definition["alien_rhino"]["setup_model_func"] = ::func_FACE;
|
||||
level.agent_funcs["alien_rhino"]["on_damaged"] = ::func_C4E0;
|
||||
level.agent_funcs["alien_rhino"]["gametype_on_damage_finished"] = ::lib_0CBC::func_C5CE;
|
||||
level.agent_funcs["alien_rhino"]["gametype_on_killed"] = ::scripts\cp\maps\cp_final\cp_final_damage::cp_final_onzombiekilled;
|
||||
level.agent_funcs["alien_rhino"]["on_damaged_finished"] = ::scripts\mp\agents\zombie\zmb_zombie_agent::func_C5CE;
|
||||
level.agent_funcs["alien_rhino"]["on_killed"] = ::onrhinokilled;
|
||||
if(!isdefined(level.var_8CBD))
|
||||
{
|
||||
level.var_8CBD = [];
|
||||
}
|
||||
|
||||
level.var_8CBD["alien_rhino"] = ::calculatealienrhinohealth;
|
||||
if(!isdefined(level.damage_feedback_overrride))
|
||||
{
|
||||
level.damage_feedback_overrride = [];
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
func_FACE(param_00)
|
||||
{
|
||||
if(should_spawn_mammoth())
|
||||
{
|
||||
self setmodel("alien_queen_blue");
|
||||
return;
|
||||
}
|
||||
|
||||
self setmodel("alien_queen");
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
setupzombiegametypevars()
|
||||
{
|
||||
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.attackent = undefined;
|
||||
self.var_9342 = 1;
|
||||
self.var_1B03 = "idle";
|
||||
self.var_1F5 = "walk";
|
||||
self.sharpturnnotifydist = 100;
|
||||
self.var_257 = 15;
|
||||
self.height = 40;
|
||||
self.var_252B = 26 + self.var_257;
|
||||
self.var_B640 = "normal";
|
||||
self.var_B641 = 50;
|
||||
self.var_2539 = 54;
|
||||
self.var_253A = -64;
|
||||
self.var_4D45 = 2250000;
|
||||
self.var_181 = 1;
|
||||
self.var_86BD = self getentitynumber();
|
||||
self.var_BCE4 = 1;
|
||||
self.var_C081 = 1;
|
||||
self.var_126E8 = 1;
|
||||
self.var_772A = 1;
|
||||
self.var_2AB2 = 0;
|
||||
self.var_2AB8 = 1;
|
||||
self.var_118FC = 0;
|
||||
self.var_2F = 1;
|
||||
self.var_B5F9 = 40;
|
||||
self.var_B62E = 70;
|
||||
self.var_B631 = 80;
|
||||
self.var_B62F = squared(self.var_B62E);
|
||||
self.var_503C = self.var_257 + 1;
|
||||
self.var_B607 = 0.5;
|
||||
self.var_565C = 0;
|
||||
self.var_9BAC = 0;
|
||||
self.var_54CB = 0;
|
||||
self.damaged_by_player = 0;
|
||||
self.var_9E0C = undefined;
|
||||
self.flung = undefined;
|
||||
self.var_B0FC = 1;
|
||||
self.full_gib = 0;
|
||||
self.var_12E = undefined;
|
||||
self.var_E821 = undefined;
|
||||
self.var_A8A2 = [];
|
||||
self.var_8C12 = 0;
|
||||
self.hasplayedvignetteanim = undefined;
|
||||
self.var_9BA7 = undefined;
|
||||
self.var_179 = 200;
|
||||
self.deathmethod = undefined;
|
||||
self.var_10A57 = undefined;
|
||||
self.var_828A = undefined;
|
||||
self.var_CE65 = undefined;
|
||||
self.var_29D2 = 1;
|
||||
self.vignette_nocorpse = undefined;
|
||||
self.death_anim_no_ragdoll = undefined;
|
||||
self.dont_cleanup = 1;
|
||||
self.allowpain = 0;
|
||||
self method_84E6(65);
|
||||
if(getdvarint("scr_zombie_left_foot_sharp_turn_only",0) == 1)
|
||||
{
|
||||
self.var_AB3F = 1;
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 5
|
||||
setupagent()
|
||||
{
|
||||
setupzombiegametypevars();
|
||||
thread scripts\mp\agents\zombie\zmb_zombie_agent::func_12EE6();
|
||||
self.height = self.var_18F4;
|
||||
self.var_257 = self.var_18F9;
|
||||
self.var_9341 = 1;
|
||||
self.var_B62D = 70;
|
||||
self.var_B62E = 70;
|
||||
self.var_B631 = 80;
|
||||
self.var_B62F = squared(self.var_B62E);
|
||||
self.var_503C = self.var_257 + 1;
|
||||
self.var_B607 = 0.5;
|
||||
self.var_B601 = 90;
|
||||
self.var_504E = 55;
|
||||
self.var_129AF = 55;
|
||||
self.var_368 = -60;
|
||||
self.var_100 = 60;
|
||||
self.ground_pound_damage = 50;
|
||||
self.footstepdetectdist = 2500;
|
||||
self.footstepdetectdistwalk = 2500;
|
||||
self.footstepdetectdistsprint = 2500;
|
||||
self.var_180 = 1;
|
||||
self.dontmutilate = 1;
|
||||
if(scripts\common\utility::istrue(self.activated_venomx_sphere))
|
||||
{
|
||||
self.activated_venomx_sphere = undefined;
|
||||
}
|
||||
|
||||
if(scripts\common\utility::istrue(self.dot_triggered))
|
||||
{
|
||||
self.dot_triggered = undefined;
|
||||
}
|
||||
|
||||
self.preventplayerpushdist = 12;
|
||||
}
|
||||
|
||||
//Function Number: 6
|
||||
calculatealienrhinohealth()
|
||||
{
|
||||
return -15536 * level.players.size;
|
||||
}
|
||||
|
||||
//Function Number: 7
|
||||
accumulatedamage(param_00,param_01)
|
||||
{
|
||||
if(!isdefined(self.damageaccumulator))
|
||||
{
|
||||
self.damageaccumulator = spawnstruct();
|
||||
self.damageaccumulator.accumulateddamage = 0;
|
||||
}
|
||||
else if(!isdefined(self.damageaccumulator.var_A96A) || gettime() > self.damageaccumulator.var_A96A + 1000)
|
||||
{
|
||||
self.damageaccumulator.accumulateddamage = 0;
|
||||
self.damageaccumulator.var_A96A = 0;
|
||||
}
|
||||
|
||||
self.damageaccumulator.var_A96A = gettime();
|
||||
if(!isdefined(param_01))
|
||||
{
|
||||
param_01 = (1,1,1);
|
||||
}
|
||||
|
||||
self.damageaccumulator.lastdir = param_01;
|
||||
if(isdefined(self.fake_damage))
|
||||
{
|
||||
self.damageaccumulator.accumulateddamage = self.damageaccumulator.accumulateddamage + self.fake_damage;
|
||||
self.fake_damage = undefined;
|
||||
return;
|
||||
}
|
||||
|
||||
self.damageaccumulator.accumulateddamage = self.damageaccumulator.accumulateddamage + param_00;
|
||||
}
|
||||
|
||||
//Function Number: 8
|
||||
func_C4E0(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B)
|
||||
{
|
||||
if(isdefined(self.is_mammoth) && self.is_mammoth)
|
||||
{
|
||||
param_02 = param_02 / 4;
|
||||
}
|
||||
|
||||
var_0C = weaponclass(param_05);
|
||||
if(var_0C == "smg" || var_0C == "spread")
|
||||
{
|
||||
param_02 = param_02 / 2;
|
||||
}
|
||||
|
||||
accumulatedamage(param_02,param_07);
|
||||
scripts\cp\maps\cp_final\cp_final_damage::cp_final_onzombiedamaged(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B);
|
||||
}
|
||||
|
||||
//Function Number: 9
|
||||
should_spawn_mammoth()
|
||||
{
|
||||
if(isdefined(level.mammoth_spawn) && level.mammoth_spawn)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
//Function Number: 10
|
||||
onrhinokilled(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
|
||||
{
|
||||
if(scripts\common\utility::istrue(self.is_mammoth))
|
||||
{
|
||||
var_09 = 4000;
|
||||
}
|
||||
else
|
||||
{
|
||||
var_09 = 1000;
|
||||
}
|
||||
|
||||
foreach(var_0B in level.players)
|
||||
{
|
||||
if(var_0B scripts\cp\_utility::is_valid_player())
|
||||
{
|
||||
var_0B scripts\cp\_persistence::func_82F9(var_09);
|
||||
}
|
||||
}
|
||||
|
||||
scripts\mp\_mp_agent::func_5006(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
|
||||
}
|
@ -0,0 +1,88 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\alien_rhino\alien_rhino_tunedata.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 2
|
||||
* Decompile Time: 149 ms
|
||||
* Timestamp: 10/27/2023 12:11:07 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
setuptunedata()
|
||||
{
|
||||
if(!isdefined(level.agenttunedata))
|
||||
{
|
||||
level.agenttunedata = [];
|
||||
}
|
||||
|
||||
level.agenttunedata["alien_rhino"] = spawnstruct();
|
||||
setupmytunedata(level.agenttunedata["alien_rhino"]);
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
setupmytunedata(param_00)
|
||||
{
|
||||
param_00.min_time_between_melee_attacks_ms = 1000;
|
||||
param_00.melee_max_flex_xy_scale = 2.5;
|
||||
param_00.melee_xy_scale_boost = 0.5;
|
||||
param_00.non_predicted_move_melee_dist_sq = 6724;
|
||||
param_00.check_reachable_dist_sq = 4096;
|
||||
param_00.moving_melee_attack_damage_radius_sq = 1600;
|
||||
param_00.melee_attack_damage_radius_sq = 9216;
|
||||
param_00.melee_dot = 0.867;
|
||||
param_00.stand_melee_dist_sq = 4096;
|
||||
param_00.stand_melee_attack_dot = 0.707;
|
||||
param_00.move_melee_dist_sq = 16384;
|
||||
param_00.post_attack_taunt_chance = 50;
|
||||
param_00.post_attack_max_enemy_dist_sq = 256;
|
||||
param_00.min_dist_to_enemy_to_allow_turn_sq = -25536;
|
||||
param_00.max_dist_to_enemy_to_allow_turn_sq = 1048576;
|
||||
param_00.min_stop_facing_enemy_time_before_hit = 0.3;
|
||||
param_00.max_stop_facing_enemy_time_before_hit = 0.4;
|
||||
param_00.melee_max_z_diff = 60;
|
||||
param_00.avg_time_to_impact = 0.7;
|
||||
param_00.reduce_damage_dot = 0.25;
|
||||
param_00.reduce_damage_pct = 0.15;
|
||||
param_00.charge_attack_damage_amt = 180;
|
||||
param_00.charge_attack_damage_radius_sq = 900;
|
||||
param_00.charge_attack_stop_facing_enemy_dist_sq = -25536;
|
||||
param_00.max_charge_time_ms = 5000;
|
||||
param_00.charge_abort_dot = 0;
|
||||
param_00.charge_attack_damage_dot = 0;
|
||||
param_00.charge_attack_mindist_sq = 14400;
|
||||
param_00.charge_attack_maxdist_sq = 122500;
|
||||
param_00.charge_attack_abort_dist_sq = 202500;
|
||||
param_00.max_charge_attack_interval_ms = 6000;
|
||||
param_00.min_charge_attack_interval_ms = 3000;
|
||||
param_00.initial_taunt_wait_time_ms = 5000;
|
||||
param_00.min_time_between_taunts_ms = 15000;
|
||||
param_00.max_time_between_taunts_ms = 20000;
|
||||
param_00.taunt_chance = 100;
|
||||
param_00.taunt_min_dist_to_enemy_sq = 90000;
|
||||
param_00.taunt_max_dist_to_enemy_sq = 90000;
|
||||
param_00.min_time_between_melee_attacks_ms = 1000;
|
||||
param_00.small_slam_radius = 150;
|
||||
param_00.small_slam_max_damage = 90;
|
||||
param_00.small_slam_min_damage = 90;
|
||||
param_00.big_slam_radius = 150;
|
||||
param_00.big_slam_max_damage = 180;
|
||||
param_00.big_slam_min_damage = 180;
|
||||
param_00.wander_goal_radius = 64;
|
||||
param_00.wander_min_wait_time_ms = 1000;
|
||||
param_00.wander_max_wait_time_ms = 2500;
|
||||
param_00.jump_attack_damage_radius_sq = 8100;
|
||||
param_00.jump_attack_min_enemy_dot = 0.985;
|
||||
param_00.jump_attack_damage_dot = 0.867;
|
||||
param_00.jump_attack_melee_damage_multiplier = 1.1;
|
||||
param_00.jump_attack_initial_delay_ms = 5000;
|
||||
param_00.jump_attack_min_interval = 10000;
|
||||
param_00.max_leap_melee_drop_distance = 64;
|
||||
param_00.min_leap_distance_sq = 129600;
|
||||
param_00.max_leap_distance_sq = 562500;
|
||||
param_00.leap_offset_xy = 48;
|
||||
param_00.avg_leap_speed = 500;
|
||||
param_00.teleport_chance = 0;
|
||||
param_00.min_dist_to_teleport_sq = 1409865409;
|
||||
param_00.force_melee_attack_damage_radius_sq = 256;
|
||||
}
|
369
IW/PC/ALL/scripts/mp/agents/c6/c6_agent.gsc
Normal file
369
IW/PC/ALL/scripts/mp/agents/c6/c6_agent.gsc
Normal file
@ -0,0 +1,369 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\c6\c6_agent.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 20
|
||||
* Decompile Time: 906 ms
|
||||
* Timestamp: 10/27/2023 12:31:17 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
registerscriptedagent()
|
||||
{
|
||||
lib_0A02::init();
|
||||
lib_03A9::func_DEE8();
|
||||
lib_0F37::func_2371();
|
||||
if(level.gametype != "zombie")
|
||||
{
|
||||
lib_09FD::func_3353();
|
||||
}
|
||||
|
||||
func_9812();
|
||||
thread func_FAB0();
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
func_FAB0()
|
||||
{
|
||||
level endon("game_ended");
|
||||
if(!isdefined(level.agent_definition))
|
||||
{
|
||||
level waittill("scripted_agents_initialized");
|
||||
}
|
||||
|
||||
if(!isdefined(level.var_10970))
|
||||
{
|
||||
level.var_10970 = [];
|
||||
}
|
||||
|
||||
level.var_10970["c6"] = [];
|
||||
level.agent_definition["c6"]["setup_func"] = ::setupagent;
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
setupagent()
|
||||
{
|
||||
self.accuracy = 0.5;
|
||||
self.noattackeraccuracymod = 0;
|
||||
self.sharpturnnotifydist = 48;
|
||||
self.last_enemy_sight_time = 0;
|
||||
self.desiredenemydistmax = 360;
|
||||
self.desiredenemydistmin = 340;
|
||||
self.maxtimetostrafewithoutlos = 3000;
|
||||
self.strafeifwithindist = self.desiredenemydistmax + 100;
|
||||
self.var_272A = self.desiredenemydistmin - 100;
|
||||
self.fastcrawlanimscale = 12;
|
||||
self.forcefastcrawldist = 340;
|
||||
self.fastcrawlmaxhealth = 40;
|
||||
self.dismemberchargeexplodedistsq = 2500;
|
||||
self.explosionradius = 75;
|
||||
self.explosiondamagemin = 30;
|
||||
self.explosiondamagemax = 50;
|
||||
self.meleerangesq = 9216;
|
||||
self.meleechargedist = 160;
|
||||
self.meleechargedistvsplayer = 250;
|
||||
self.meleechargedistreloadmultiplier = 1.2;
|
||||
self.maxzdiff = 50;
|
||||
self.meleeactorboundsradius = 32;
|
||||
self.meleemindamage = 30;
|
||||
self.meleemaxdamage = 45;
|
||||
self.footstepdetectdist = 600;
|
||||
self.footstepdetectdistwalk = 600;
|
||||
self.footstepdetectdistsprint = 600;
|
||||
self.var_1A44 = 50;
|
||||
func_FAFE();
|
||||
thread scriptedgoalwaitforarrival();
|
||||
thread func_899D();
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
func_FAFE()
|
||||
{
|
||||
self.var_3402 = ::func_11562;
|
||||
self.var_3404 = [::func_11562,::func_11559,::func_1156F,::func_1157B,::func_11570];
|
||||
self.var_3403 = [15,40,17,17,11];
|
||||
}
|
||||
|
||||
//Function Number: 5
|
||||
func_899D()
|
||||
{
|
||||
self endon("death");
|
||||
for(;;)
|
||||
{
|
||||
self waittill("enemy");
|
||||
for(;;)
|
||||
{
|
||||
if(isdefined(self.var_10C))
|
||||
{
|
||||
self.var_6571 = gettime() + 1000;
|
||||
}
|
||||
else if(isdefined(self.var_6571))
|
||||
{
|
||||
if(gettime() > self.var_6571)
|
||||
{
|
||||
self.var_6571 = undefined;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
wait(0.25);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 6
|
||||
func_11570()
|
||||
{
|
||||
var_00 = 70;
|
||||
var_01 = 15;
|
||||
if(isdefined(self.var_10C.var_18F4))
|
||||
{
|
||||
var_00 = self.var_10C.var_18F4;
|
||||
var_01 = self.var_10C.var_18F9;
|
||||
}
|
||||
|
||||
var_02 = var_00 * randomfloatrange(0.25,0.35);
|
||||
var_03 = var_01 * 0.5;
|
||||
var_04 = var_03 * -1;
|
||||
var_05 = randomfloatrange(var_04,var_03);
|
||||
var_06 = anglestoright(self.angles);
|
||||
var_07 = (var_06[0] * var_05,var_06[1] * var_05,var_02);
|
||||
var_08 = self.var_10C.origin + var_07;
|
||||
return var_08;
|
||||
}
|
||||
|
||||
//Function Number: 7
|
||||
func_1157B()
|
||||
{
|
||||
var_00 = 70;
|
||||
var_01 = 15;
|
||||
if(isdefined(self.var_10C.var_18F4))
|
||||
{
|
||||
var_00 = self.var_10C.var_18F4;
|
||||
var_01 = self.var_10C.var_18F9;
|
||||
}
|
||||
|
||||
var_02 = var_00 * randomfloatrange(0.65,0.75);
|
||||
var_03 = var_01 * 0.75;
|
||||
var_04 = anglestoright(self.angles);
|
||||
var_05 = (var_04[0] * var_03,var_04[1] * var_03,var_02);
|
||||
var_06 = self.var_10C.origin + var_05;
|
||||
return var_06;
|
||||
}
|
||||
|
||||
//Function Number: 8
|
||||
func_1156F()
|
||||
{
|
||||
var_00 = 70;
|
||||
var_01 = 15;
|
||||
if(isdefined(self.var_10C.var_18F4))
|
||||
{
|
||||
var_00 = self.var_10C.var_18F4;
|
||||
var_01 = self.var_10C.var_18F9;
|
||||
}
|
||||
|
||||
var_02 = var_00 * randomfloatrange(0.65,0.75);
|
||||
var_03 = var_01 * -0.75;
|
||||
var_04 = anglestoright(self.angles);
|
||||
var_05 = (var_04[0] * var_03,var_04[1] * var_03,var_02);
|
||||
var_06 = self.var_10C.origin + var_05;
|
||||
return var_06;
|
||||
}
|
||||
|
||||
//Function Number: 9
|
||||
func_11559()
|
||||
{
|
||||
var_00 = 70;
|
||||
var_01 = 15;
|
||||
if(isdefined(self.var_10C.var_18F4))
|
||||
{
|
||||
var_00 = self.var_10C.var_18F4;
|
||||
var_01 = self.var_10C.var_18F9;
|
||||
}
|
||||
|
||||
var_02 = var_00 * randomfloatrange(0.65,0.75);
|
||||
var_03 = var_01 * 0.5;
|
||||
var_04 = var_03 * -1;
|
||||
var_05 = randomfloatrange(var_04,var_03);
|
||||
var_06 = anglestoright(self.angles);
|
||||
var_07 = (var_06[0] * var_05,var_06[1] * var_05,var_02);
|
||||
var_08 = self.var_10C.origin + var_07;
|
||||
return var_08;
|
||||
}
|
||||
|
||||
//Function Number: 10
|
||||
func_11562()
|
||||
{
|
||||
var_00 = self.var_10C gettagorigin("j_head");
|
||||
return var_00;
|
||||
}
|
||||
|
||||
//Function Number: 11
|
||||
func_2475()
|
||||
{
|
||||
if(isdefined(self.var_2AB4) && self.var_2AB4 == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
self.var_13525 = "american";
|
||||
self method_82C6("cloth");
|
||||
self attach("robot_c6_armor");
|
||||
var_00 = [];
|
||||
var_00["tag_armor_head_ri"] = 165;
|
||||
var_00["tag_armor_head_le"] = 165;
|
||||
var_00["tag_armor_head_front"] = 165;
|
||||
var_00["tag_armor_forearm_le"] = 120;
|
||||
var_00["tag_armor_bicep_le"] = 120;
|
||||
var_00["tag_armor_forearm_ri"] = 120;
|
||||
var_00["tag_armor_bicep_ri"] = 120;
|
||||
var_00["tag_armor_chest_upper_le"] = 165;
|
||||
var_00["tag_armor_chest_upper_ri"] = 165;
|
||||
var_00["tag_armor_back_upper"] = 165;
|
||||
var_00["tag_armor_chest_stomach"] = 165;
|
||||
var_00["tag_armor_back_lower"] = 165;
|
||||
var_00["tag_armor_leg_thigh_front_le"] = 120;
|
||||
var_00["tag_armor_leg_thigh_back_le"] = 120;
|
||||
var_00["tag_armor_leg_thigh_front_ri"] = 120;
|
||||
var_00["tag_armor_leg_thigh_back_ri"] = 120;
|
||||
var_00["tag_armor_kneepad_behind_le"] = 50;
|
||||
var_00["tag_armor_kneepad_down_le"] = 50;
|
||||
var_00["tag_armor_kneepad_upper_le"] = 50;
|
||||
var_00["tag_armor_kneepad_behind_ri"] = 50;
|
||||
var_00["tag_armor_kneepad_down_ri"] = 50;
|
||||
var_00["tag_armor_kneepad_upper_ri"] = 50;
|
||||
self.var_2AB4 = 1;
|
||||
}
|
||||
|
||||
//Function Number: 12
|
||||
func_FAA6()
|
||||
{
|
||||
self.var_2AB5 = 1;
|
||||
}
|
||||
|
||||
//Function Number: 13
|
||||
func_17CC(param_00,param_01)
|
||||
{
|
||||
if(!isdefined(level.var_85DF))
|
||||
{
|
||||
anim.var_85DF = [];
|
||||
anim.var_85E1 = [];
|
||||
}
|
||||
|
||||
var_02 = level.var_85DF.size;
|
||||
level.var_85DF[var_02] = param_00;
|
||||
level.var_85E1[var_02] = param_01;
|
||||
}
|
||||
|
||||
//Function Number: 14
|
||||
func_9812()
|
||||
{
|
||||
func_17CC(0,(41.5391,7.28883,72.2128));
|
||||
func_17CC(1,(34.8849,-4.77048,74.0488));
|
||||
}
|
||||
|
||||
//Function Number: 15
|
||||
scriptedgoalwaitforarrival()
|
||||
{
|
||||
self endon("death");
|
||||
for(;;)
|
||||
{
|
||||
self waittill("goal_reached");
|
||||
if(isdefined(self.var_EF7D))
|
||||
{
|
||||
var_00 = self.var_EF7D;
|
||||
}
|
||||
else if(isdefined(self.var_EF7A))
|
||||
{
|
||||
var_00 = self.var_EF7A.origin;
|
||||
}
|
||||
else if(isdefined(self.var_EF7C))
|
||||
{
|
||||
var_00 = self.var_EF7C.origin;
|
||||
}
|
||||
else
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var_01 = 16;
|
||||
if(isdefined(self.var_EF7E))
|
||||
{
|
||||
var_01 = self.var_EF7E * self.var_EF7E;
|
||||
}
|
||||
|
||||
if(distance2dsquared(self.origin,var_00) <= var_01)
|
||||
{
|
||||
self.var_EF7D = undefined;
|
||||
self.var_EF7C = undefined;
|
||||
if(!isdefined(self.var_EF7B))
|
||||
{
|
||||
self.var_EF7A = undefined;
|
||||
}
|
||||
|
||||
self notify("scriptedGoal_reached");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 16
|
||||
func_F834(param_00,param_01)
|
||||
{
|
||||
if(!isdefined(param_01))
|
||||
{
|
||||
param_01 = 0;
|
||||
}
|
||||
|
||||
self.var_EF79 = param_01;
|
||||
self.var_EF73 = param_00;
|
||||
}
|
||||
|
||||
//Function Number: 17
|
||||
func_F835(param_00,param_01)
|
||||
{
|
||||
self.var_EF7A = undefined;
|
||||
self.var_EF7B = undefined;
|
||||
self.var_EF7C = undefined;
|
||||
self.var_EF7D = param_00;
|
||||
self.var_EF7E = param_01;
|
||||
}
|
||||
|
||||
//Function Number: 18
|
||||
func_F833(param_00,param_01)
|
||||
{
|
||||
self.var_EF7D = undefined;
|
||||
self.var_EF7A = undefined;
|
||||
self.var_EF7B = undefined;
|
||||
self.var_EF7C = param_00;
|
||||
self.var_EF7E = param_01;
|
||||
}
|
||||
|
||||
//Function Number: 19
|
||||
func_F832(param_00,param_01,param_02)
|
||||
{
|
||||
self.var_EF7D = undefined;
|
||||
self.var_EF7C = undefined;
|
||||
self.var_EF7A = param_00;
|
||||
self.var_EF7E = param_01;
|
||||
if(isdefined(param_02) && param_02)
|
||||
{
|
||||
self.var_EF7B = param_02;
|
||||
return;
|
||||
}
|
||||
|
||||
self.var_EF7B = undefined;
|
||||
}
|
||||
|
||||
//Function Number: 20
|
||||
func_41D9()
|
||||
{
|
||||
if(isdefined(self.var_EF7D) || isdefined(self.var_EF7A) || isdefined(self.var_EF7C))
|
||||
{
|
||||
self.var_EF7D = undefined;
|
||||
self.var_EF7A = undefined;
|
||||
self.var_EF7B = undefined;
|
||||
self.var_EF7C = undefined;
|
||||
self method_841F();
|
||||
}
|
||||
}
|
83
IW/PC/ALL/scripts/mp/agents/cop_dlc2/cop_dlc2_agent.gsc
Normal file
83
IW/PC/ALL/scripts/mp/agents/cop_dlc2/cop_dlc2_agent.gsc
Normal file
@ -0,0 +1,83 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\cop_dlc2\cop_dlc2_agent.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 7
|
||||
* Decompile Time: 418 ms
|
||||
* Timestamp: 10/27/2023 12:11:08 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
registerscriptedagent()
|
||||
{
|
||||
if(!isdefined(level.var_4632))
|
||||
{
|
||||
level.var_4632 = 5;
|
||||
}
|
||||
|
||||
level.agent_funcs["cop_dlc2"]["on_damaged"] = ::lib_0CBC::func_C5CD;
|
||||
level.agent_funcs["cop_dlc2"]["gametype_on_damage_finished"] = ::lib_0CBC::func_C5CE;
|
||||
level.agent_funcs["cop_dlc2"]["gametype_on_killed"] = ::lib_0CBC::func_C5D2;
|
||||
level.var_BCCE["cop_dlc2"] = ::lib_0CBC::func_E7FD;
|
||||
lib_0A02::init();
|
||||
func_AEB0();
|
||||
thread func_FAB0();
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
func_FAB0()
|
||||
{
|
||||
level endon("game_ended");
|
||||
if(!isdefined(level.agent_definition))
|
||||
{
|
||||
level waittill("scripted_agents_initialized");
|
||||
}
|
||||
|
||||
level.agent_definition["cop_dlc2"]["setup_func"] = ::setupagent;
|
||||
level.agent_definition["cop_dlc2"]["setup_model_func"] = ::func_FACE;
|
||||
level.agent_funcs["cop_dlc2"]["on_damaged_finished"] = ::scripts\mp\agents\zombie\zmb_zombie_agent::func_C5CE;
|
||||
level.agent_funcs["cop_dlc2"]["on_killed"] = ::scripts\mp\agents\zombie\zmb_zombie_agent::func_C5D2;
|
||||
level.var_1094E["cop_dlc2"] = ::func_FF94;
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
setupagent()
|
||||
{
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::setupagent();
|
||||
thread func_899C();
|
||||
self.var_9BA7 = 1;
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
func_899C()
|
||||
{
|
||||
self endon("death");
|
||||
level waittill("game_ended");
|
||||
self method_841F();
|
||||
foreach(var_04, var_01 in self.var_164D)
|
||||
{
|
||||
var_02 = var_01.var_4BC0;
|
||||
var_03 = level.var_2303[var_04].var_10E2F[var_02];
|
||||
lib_0A1A::func_2388(var_04,var_02,var_03,var_03.var_116FB);
|
||||
lib_0A1A::func_238A(var_04,"idle",0.2,undefined,undefined,undefined);
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 5
|
||||
func_FACE(param_00)
|
||||
{
|
||||
self setmodel("police_officer_zombie");
|
||||
thread scripts\mp\agents\zombie\zmb_zombie_agent::func_50EF();
|
||||
}
|
||||
|
||||
//Function Number: 6
|
||||
func_AEB0()
|
||||
{
|
||||
}
|
||||
|
||||
//Function Number: 7
|
||||
func_FF94()
|
||||
{
|
||||
return undefined;
|
||||
}
|
178
IW/PC/ALL/scripts/mp/agents/crab_boss/crab_boss_agent.gsc
Normal file
178
IW/PC/ALL/scripts/mp/agents/crab_boss/crab_boss_agent.gsc
Normal file
@ -0,0 +1,178 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\crab_boss\crab_boss_agent.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 8
|
||||
* Decompile Time: 466 ms
|
||||
* Timestamp: 10/27/2023 12:11:09 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
registerscriptedagent()
|
||||
{
|
||||
lib_0A02::init();
|
||||
behaviortree\crab_boss::func_DEE8();
|
||||
scripts\asm\crab_boss\mp\states::func_2371();
|
||||
scripts\mp\agents\crab_boss\crab_boss_tunedata::setuptunedata();
|
||||
func_AEB0();
|
||||
thread func_FAB0();
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
func_FAB0()
|
||||
{
|
||||
level endon("game_ended");
|
||||
if(!isdefined(level.agent_definition))
|
||||
{
|
||||
level waittill("scripted_agents_initialized");
|
||||
}
|
||||
|
||||
level.agent_definition["crab_boss"]["setup_func"] = ::setupagent;
|
||||
level.agent_definition["crab_boss"]["setup_model_func"] = ::func_FACE;
|
||||
level.agent_funcs["crab_boss"]["on_damaged_finished"] = ::ondamagefinished;
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
func_FACE(param_00)
|
||||
{
|
||||
self setmodel("zmb_boss_crab");
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
func_AEB0()
|
||||
{
|
||||
level._effect["boss_crab_beam_start_fx"] = loadfx("vfx/iw7/levels/cp_town/crog/vfx_lure_glow_charge.vfx");
|
||||
}
|
||||
|
||||
//Function Number: 5
|
||||
setupzombiegametypevars()
|
||||
{
|
||||
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.attackent = undefined;
|
||||
self.var_9342 = 1;
|
||||
self.var_1B03 = "idle";
|
||||
self.var_1F5 = "walk";
|
||||
self.sharpturnnotifydist = 100;
|
||||
self.var_257 = 15;
|
||||
self.height = 40;
|
||||
self.var_252B = 26 + self.var_257;
|
||||
self.var_B640 = "normal";
|
||||
self.var_B641 = 50;
|
||||
self.var_2539 = 54;
|
||||
self.var_253A = -64;
|
||||
self.var_4D45 = 2250000;
|
||||
self.var_181 = 1;
|
||||
self.var_86BD = self getentitynumber();
|
||||
self.var_BCE4 = 1;
|
||||
self.var_C081 = 1;
|
||||
self.var_126E8 = 1;
|
||||
self.var_772A = 1;
|
||||
self.var_2AB2 = 0;
|
||||
self.var_2AB8 = 1;
|
||||
self.var_118FC = 0;
|
||||
self.var_2F = 1;
|
||||
self.var_B5F9 = 40;
|
||||
self.var_B62E = 70;
|
||||
self.var_B631 = 80;
|
||||
self.var_B62F = squared(self.var_B62E);
|
||||
self.var_503C = self.var_257 + 1;
|
||||
self.var_B607 = 0.5;
|
||||
self.var_565C = 0;
|
||||
self.var_9BAC = 0;
|
||||
self.var_54CB = 0;
|
||||
self.damaged_by_player = 0;
|
||||
self.var_9E0C = undefined;
|
||||
self.flung = undefined;
|
||||
self.var_B0FC = 1;
|
||||
self.full_gib = 0;
|
||||
self.var_12E = undefined;
|
||||
self.var_E821 = undefined;
|
||||
self.var_A8A2 = [];
|
||||
self.var_8C12 = 0;
|
||||
self.hasplayedvignetteanim = undefined;
|
||||
self.var_9BA7 = undefined;
|
||||
self.var_179 = 200;
|
||||
self.deathmethod = undefined;
|
||||
self.var_10A57 = undefined;
|
||||
self.var_828A = undefined;
|
||||
self.var_CE65 = undefined;
|
||||
self.var_29D2 = 1;
|
||||
self.vignette_nocorpse = undefined;
|
||||
self.death_anim_no_ragdoll = undefined;
|
||||
self.dont_cleanup = 1;
|
||||
if(getdvarint("scr_zombie_left_foot_sharp_turn_only",0) == 1)
|
||||
{
|
||||
self.var_AB3F = 1;
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 6
|
||||
setupagent()
|
||||
{
|
||||
setupzombiegametypevars();
|
||||
self.height = self.var_18F4;
|
||||
self.var_257 = self.var_18F9;
|
||||
self.var_9341 = 1;
|
||||
self.var_B62D = 70;
|
||||
self.var_B62E = 70;
|
||||
self.var_B631 = 80;
|
||||
self.var_B62F = squared(self.var_B62E);
|
||||
self.var_503C = self.var_257 + 1;
|
||||
self.var_B607 = 0.5;
|
||||
self.var_B601 = 45;
|
||||
self.var_504E = 55;
|
||||
self.var_129AF = 55;
|
||||
self.var_368 = -60;
|
||||
self.var_100 = 60;
|
||||
self.ground_pound_damage = 50;
|
||||
self.footstepdetectdist = 2500;
|
||||
self.footstepdetectdistwalk = 2500;
|
||||
self.footstepdetectdistsprint = 2500;
|
||||
self.var_180 = 1;
|
||||
self.ignoreme = 1;
|
||||
}
|
||||
|
||||
//Function Number: 7
|
||||
getenemy()
|
||||
{
|
||||
if(isdefined(self.myenemy))
|
||||
{
|
||||
return self.myenemy;
|
||||
}
|
||||
|
||||
return undefined;
|
||||
}
|
||||
|
||||
//Function Number: 8
|
||||
ondamagefinished(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_02 = 0;
|
||||
}
|
55
IW/PC/ALL/scripts/mp/agents/crab_boss/crab_boss_tunedata.gsc
Normal file
55
IW/PC/ALL/scripts/mp/agents/crab_boss/crab_boss_tunedata.gsc
Normal file
@ -0,0 +1,55 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\crab_boss\crab_boss_tunedata.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 3
|
||||
* Decompile Time: 193 ms
|
||||
* Timestamp: 10/27/2023 12:11:09 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
setuptunedata()
|
||||
{
|
||||
if(!isdefined(level.agenttunedata))
|
||||
{
|
||||
level.agenttunedata = [];
|
||||
}
|
||||
|
||||
level.agenttunedata["crab_boss"] = spawnstruct();
|
||||
setupmytunedata(level.agenttunedata["crab_boss"]);
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
setupmytunedata(param_00)
|
||||
{
|
||||
param_00.beam_move_rate = 300;
|
||||
param_00.beam_tracking_rate = 250;
|
||||
param_00.beam_target_z_offset = 40;
|
||||
param_00.spawn_z_offset = 200;
|
||||
param_00.spawn_max_radius = 200;
|
||||
param_00.spawn_launch_angle = 60;
|
||||
param_00.spawn_launch_speed = 200;
|
||||
param_00.spawn_interval_min = 0.1;
|
||||
param_00.spawn_interval_max = 0.25;
|
||||
param_00.max_spawn_over_time_count = 6;
|
||||
param_00.egg_sac_spawn_fly_time = 5;
|
||||
param_00.egg_sac_bomb_fly_time = 5;
|
||||
param_00.egg_sac_toxic_spawn_fly_time = 3;
|
||||
param_00.roar_bomb_fly_time = 2;
|
||||
param_00.heal_duration = 3;
|
||||
param_00.spawn_target_positions = [];
|
||||
param_00.spawn_target_positions[param_00.spawn_target_positions.size] = (2570,2681,-106);
|
||||
param_00.spawn_target_positions[param_00.spawn_target_positions.size] = (2760,2353,-100);
|
||||
param_00.spawn_target_positions[param_00.spawn_target_positions.size] = (3493,2039,-75);
|
||||
param_00.spawn_target_positions[param_00.spawn_target_positions.size] = (3072,2242,4);
|
||||
param_00.spawn_target_positions[param_00.spawn_target_positions.size] = (3837,2380,68);
|
||||
param_00.spawn_target_positions[param_00.spawn_target_positions.size] = (4236,2838,-71);
|
||||
param_00.egg_sack_launching_tags = ["tag_egg_1","tag_egg_2","tag_egg_3","tag_egg_4","tag_egg_5","tag_egg_6","tag_egg_7","tag_egg_8","tag_egg_9","tag_egg_10","tag_egg_11","tag_egg_12","tag_egg_13","tag_egg_14","tag_egg_15","tag_egg_16","tag_egg_17","tag_egg_18","tag_egg_19","tag_egg_20","tag_egg_21","tag_egg_22","tag_egg_23","tag_egg_24","tag_egg_25","tag_egg_26","tag_egg_27","tag_egg_28","tag_egg_29","tag_egg_30"];
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
gettunedata()
|
||||
{
|
||||
return level.agenttunedata["crab_boss"];
|
||||
}
|
322
IW/PC/ALL/scripts/mp/agents/crab_brute/crab_brute_agent.gsc
Normal file
322
IW/PC/ALL/scripts/mp/agents/crab_brute/crab_brute_agent.gsc
Normal file
@ -0,0 +1,322 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\crab_brute\crab_brute_agent.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 15
|
||||
* Decompile Time: 916 ms
|
||||
* Timestamp: 10/27/2023 12:11:10 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
registerscriptedagent()
|
||||
{
|
||||
lib_0A02::init();
|
||||
behaviortree\crab_brute::func_DEE8();
|
||||
scripts\asm\crab_brute\mp\states::func_2371();
|
||||
scripts\mp\agents\crab_brute\crab_brute_tunedata::setuptunedata();
|
||||
thread func_FAB0();
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
func_FAB0()
|
||||
{
|
||||
level endon("game_ended");
|
||||
if(!isdefined(level.agent_definition))
|
||||
{
|
||||
level waittill("scripted_agents_initialized");
|
||||
}
|
||||
|
||||
level.agent_definition["crab_brute"]["setup_func"] = ::setupagent;
|
||||
level.agent_definition["crab_brute"]["setup_model_func"] = ::func_FACE;
|
||||
level.agent_funcs["crab_brute"]["on_damaged"] = ::scripts\cp\maps\cp_town\cp_town_damage::cp_town_onzombiedamaged;
|
||||
if(!isdefined(level.var_8CBD))
|
||||
{
|
||||
level.var_8CBD = [];
|
||||
}
|
||||
|
||||
level.var_8CBD["crab_brute"] = ::calculatecrabbruteihealth;
|
||||
level.agent_funcs["crab_brute"]["gametype_on_killed"] = ::func_C4D1;
|
||||
level.brute_loot_check = [];
|
||||
if(!isdefined(level.damage_feedback_overrride))
|
||||
{
|
||||
level.damage_feedback_overrride = [];
|
||||
}
|
||||
|
||||
level.damage_feedback_overrride["crab_brute"] = ::scripts\cp\maps\cp_town\cp_town_damage::crog_processdamagefeedback;
|
||||
if(!isdefined(level.special_zombie_damage_func))
|
||||
{
|
||||
level.special_zombie_damage_func = [];
|
||||
}
|
||||
|
||||
level.special_zombie_damage_func["crab_brute"] = ::crab_brute_special_damage_func;
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
func_FACE(param_00)
|
||||
{
|
||||
self setmodel("zmb_brutecrab");
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
setupzombiegametypevars()
|
||||
{
|
||||
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.attackent = undefined;
|
||||
self.var_9342 = 1;
|
||||
self.var_1B03 = "idle";
|
||||
self.var_1F5 = "walk";
|
||||
self.sharpturnnotifydist = 100;
|
||||
self.var_257 = 15;
|
||||
self.height = 40;
|
||||
self.var_252B = 26 + self.var_257;
|
||||
self.var_B640 = "normal";
|
||||
self.var_B641 = 50;
|
||||
self.var_2539 = 54;
|
||||
self.var_253A = -64;
|
||||
self.var_4D45 = 2250000;
|
||||
self.var_181 = 1;
|
||||
self.var_86BD = self getentitynumber();
|
||||
self.var_BCE4 = 1;
|
||||
self.var_C081 = 1;
|
||||
self.var_126E8 = 1;
|
||||
self.var_772A = 1;
|
||||
self.var_2AB2 = 0;
|
||||
self.var_2AB8 = 1;
|
||||
self.var_118FC = 0;
|
||||
self.var_2F = 1;
|
||||
self.var_B5F9 = 40;
|
||||
self.var_B62E = 70;
|
||||
self.var_B631 = 80;
|
||||
self.var_B62F = squared(self.var_B62E);
|
||||
self.var_503C = self.var_257 + 1;
|
||||
self.var_B607 = 0.5;
|
||||
self.var_565C = 0;
|
||||
self.var_9BAC = 0;
|
||||
self.var_54CB = 0;
|
||||
self.damaged_by_player = 0;
|
||||
self.var_9E0C = undefined;
|
||||
self.flung = undefined;
|
||||
self.var_B0FC = 1;
|
||||
self.full_gib = 0;
|
||||
self.var_12E = undefined;
|
||||
self.var_E821 = undefined;
|
||||
self.var_A8A2 = [];
|
||||
self.var_8C12 = 0;
|
||||
self.hasplayedvignetteanim = undefined;
|
||||
self.var_9BA7 = undefined;
|
||||
self.var_179 = 200;
|
||||
self.deathmethod = undefined;
|
||||
self.var_10A57 = undefined;
|
||||
self.var_828A = undefined;
|
||||
self.var_CE65 = undefined;
|
||||
self.var_29D2 = 1;
|
||||
self.vignette_nocorpse = undefined;
|
||||
self.death_anim_no_ragdoll = undefined;
|
||||
self.dont_cleanup = 1;
|
||||
self.var_594C = 1;
|
||||
self.spawn_round_num = level.wave_num;
|
||||
if(getdvarint("scr_zombie_left_foot_sharp_turn_only",0) == 1)
|
||||
{
|
||||
self.var_AB3F = 1;
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 5
|
||||
setupagent()
|
||||
{
|
||||
setupzombiegametypevars();
|
||||
self.height = self.var_18F4;
|
||||
self.var_257 = self.var_18F9;
|
||||
self.var_9341 = 1;
|
||||
self.var_B62D = 70;
|
||||
self.var_B62E = 70;
|
||||
self.var_B631 = 80;
|
||||
self.var_B62F = squared(self.var_B62E);
|
||||
self.var_503C = self.var_257 + 1;
|
||||
self.var_B607 = 0.5;
|
||||
self.var_B601 = 45;
|
||||
self.var_504E = 55;
|
||||
self.var_129AF = 55;
|
||||
self.var_368 = -60;
|
||||
self.var_100 = 60;
|
||||
self method_84E6(45);
|
||||
self.ground_pound_damage = 50;
|
||||
self.footstepdetectdist = 2500;
|
||||
self.footstepdetectdistwalk = 2500;
|
||||
self.footstepdetectdistsprint = 2500;
|
||||
self.var_180 = 1;
|
||||
self method_85C9(16);
|
||||
thread dopostspawnupdates();
|
||||
thread listen_for_death_sfx();
|
||||
}
|
||||
|
||||
//Function Number: 6
|
||||
dopostspawnupdates()
|
||||
{
|
||||
wait(0.5);
|
||||
self.dont_cleanup = 1;
|
||||
}
|
||||
|
||||
//Function Number: 7
|
||||
listen_for_death_sfx()
|
||||
{
|
||||
self waittill("death");
|
||||
self playsound("brute_crog_death");
|
||||
wait(1);
|
||||
self playsound("brute_crog_explo");
|
||||
}
|
||||
|
||||
//Function Number: 8
|
||||
getenemy()
|
||||
{
|
||||
if(isdefined(self.myenemy))
|
||||
{
|
||||
return self.myenemy;
|
||||
}
|
||||
|
||||
return undefined;
|
||||
}
|
||||
|
||||
//Function Number: 9
|
||||
lookatenemy()
|
||||
{
|
||||
var_00 = getenemy();
|
||||
if(isdefined(var_00))
|
||||
{
|
||||
var_01 = var_00.origin - self.origin;
|
||||
var_02 = vectortoangles(var_01);
|
||||
self method_8289("face angle abs",var_02);
|
||||
return;
|
||||
}
|
||||
|
||||
self method_8289("face angle abs",self.angles);
|
||||
}
|
||||
|
||||
//Function Number: 10
|
||||
crab_brute_special_damage_func(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B)
|
||||
{
|
||||
if(lib_0A1A::func_2354("burrow_loop"))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(param_05 == "gas_grenade_mp")
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
self.var_A96A = gettime();
|
||||
if(isdefined(param_07))
|
||||
{
|
||||
var_0C = scripts\mp\agents\crab_brute\crab_brute_tunedata::gettunedata();
|
||||
var_0D = anglestoforward(self.angles) * -1;
|
||||
var_0E = vectordot(var_0D,param_07);
|
||||
if(var_0E > var_0C.reduce_damage_dot)
|
||||
{
|
||||
param_02 = param_02 * var_0C.reduce_damage_pct;
|
||||
self.armor_hit = 1;
|
||||
}
|
||||
}
|
||||
|
||||
return param_02;
|
||||
}
|
||||
|
||||
//Function Number: 11
|
||||
func_C4D1(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B)
|
||||
{
|
||||
if(isdefined(self.agent_type) && self.agent_type == "crab_brute")
|
||||
{
|
||||
param_01 scripts\cp\_merits::func_D9AD("mt_dlc3_crab_brute");
|
||||
}
|
||||
|
||||
var_0C = scripts\common\utility::random(["ammo_max","instakill_30","cash_2","instakill_30","cash_2","instakill_30","cash_2"]);
|
||||
if(isdefined(var_0C) && !isdefined(self.var_72AC))
|
||||
{
|
||||
if(!isdefined(level.brute_loot_check[self.spawn_round_num]))
|
||||
{
|
||||
level.brute_loot_check[self.spawn_round_num] = 1;
|
||||
level thread scripts\cp\zombies\_powerups::drop_loot(self.origin,param_01,var_0C);
|
||||
}
|
||||
}
|
||||
|
||||
var_0D = 400;
|
||||
level thread boss_death_vo();
|
||||
foreach(var_0F in level.players)
|
||||
{
|
||||
var_0F scripts\cp\_persistence::func_82F9(var_0D);
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 12
|
||||
boss_death_vo()
|
||||
{
|
||||
wait(10);
|
||||
if(isdefined(level.elvira_ai))
|
||||
{
|
||||
level thread scripts\cp\_vo::try_to_play_vo("ww_crog_defeat_elvira","rave_announcer_vo","highest",70,0,0,1);
|
||||
return;
|
||||
}
|
||||
|
||||
level thread scripts\cp\_vo::try_to_play_vo("ww_crog_defeat_generic","rave_announcer_vo","highest",70,0,0,1);
|
||||
}
|
||||
|
||||
//Function Number: 13
|
||||
calculatecrabbruteihealth()
|
||||
{
|
||||
return 5000 * level.players.size;
|
||||
}
|
||||
|
||||
//Function Number: 14
|
||||
shouldignoreenemy(param_00)
|
||||
{
|
||||
if(!isalive(param_00))
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
if(param_00.ignoreme || isdefined(param_00.var_222) && param_00.var_222.ignoreme)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
if(lib_0F74::func_1002C(param_00))
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
//Function Number: 15
|
||||
create_brute_death_fx(param_00)
|
||||
{
|
||||
self.var_CE65 = 1;
|
||||
}
|
104
IW/PC/ALL/scripts/mp/agents/crab_brute/crab_brute_tunedata.gsc
Normal file
104
IW/PC/ALL/scripts/mp/agents/crab_brute/crab_brute_tunedata.gsc
Normal file
@ -0,0 +1,104 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\crab_brute\crab_brute_tunedata.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 3
|
||||
* Decompile Time: 195 ms
|
||||
* Timestamp: 10/27/2023 12:11:11 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
setuptunedata()
|
||||
{
|
||||
if(!isdefined(level.agenttunedata))
|
||||
{
|
||||
level.agenttunedata = [];
|
||||
}
|
||||
|
||||
level.agenttunedata["crab_brute"] = spawnstruct();
|
||||
setupmytunedata(level.agenttunedata["crab_brute"]);
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
setupmytunedata(param_00)
|
||||
{
|
||||
param_00.min_dist_to_enemy_to_do_arrival_sq = 250000;
|
||||
param_00.max_dist_to_taunt_sq = 490000;
|
||||
param_00.initial_burrow_wait_time_ms = 2000;
|
||||
param_00.burrow_mindist_sq = 262144;
|
||||
param_00.burrow_maxdist_sq = 9000000;
|
||||
param_00.max_burrow_goal_radius = 128;
|
||||
param_00.min_burrow_goal_radius = 64;
|
||||
param_00.min_burrow_interval_ms = 5000;
|
||||
param_00.max_burrow_interval_ms = 12000;
|
||||
param_00.burrow_look_ahead_time = 0.25;
|
||||
param_00.burrow_path_check_interval_dist = 64;
|
||||
param_00.burrow_outro_damage_wait_time = 0.5;
|
||||
param_00.burrow_outro_damage_radius = 200;
|
||||
param_00.burrow_outro_min_damage_amt = 35;
|
||||
param_00.burrow_outro_max_damage_amt = 50;
|
||||
param_00.post_burrow_charge_chance = 30;
|
||||
param_00.post_burrow_taunt_chance = 20;
|
||||
param_00.post_burrow_flash_chance = 0;
|
||||
param_00.post_burrow_summon_chance = 20;
|
||||
param_00.post_burrow_nothing_chance = 30;
|
||||
param_00.charge_attack_damage_amt = 80;
|
||||
param_00.charge_attack_damage_radius_sq = 2500;
|
||||
param_00.charge_attack_stop_facing_enemy_dist_sq = 22500;
|
||||
param_00.max_charge_time_ms = 3000;
|
||||
param_00.charge_abort_dot = 0;
|
||||
param_00.charge_attack_damage_dot = 0;
|
||||
param_00.charge_attack_mindist_sq = 14400;
|
||||
param_00.charge_attack_maxdist_sq = 122500;
|
||||
param_00.charge_attack_abort_dist_sq = 202500;
|
||||
param_00.max_charge_attack_interval_ms = 6000;
|
||||
param_00.min_charge_attack_interval_ms = 3000;
|
||||
param_00.max_tired_time_ms = 2000;
|
||||
param_00.min_tired_time_ms = 1000;
|
||||
param_00.need_to_block_damage_threshold = 500;
|
||||
param_00.max_time_after_last_damage_to_block = 333;
|
||||
param_00.block_chance = 75;
|
||||
param_00.min_block_time = 3000;
|
||||
param_00.max_block_time = 6000;
|
||||
param_00.quit_block_if_no_damage_time = 1000;
|
||||
param_00.min_block_interval = 10000;
|
||||
param_00.max_block_interval = 15000;
|
||||
param_00.reduce_damage_dot = 0.25;
|
||||
param_00.reduce_damage_pct = 0.15;
|
||||
param_00.shield_reduce_damage_pct = 0;
|
||||
param_00.shield_damage_dot = 0.25;
|
||||
param_00.shields_up_duration_ms = 1000;
|
||||
param_00.flash_chance = 80;
|
||||
param_00.flash_radius_sq = 1000000;
|
||||
param_00.flash_dot = 0.5;
|
||||
param_00.flash_duration = 2.5;
|
||||
param_00.flash_rumble_duration = 1;
|
||||
param_00.flash_min_dist_to_enemy_to_attempt_sq = 16384;
|
||||
param_00.min_initial_flash_wait_time_ms = 3000;
|
||||
param_00.max_initial_flash_wait_time_ms = 10000;
|
||||
param_00.flash_min_interval_ms = 8000;
|
||||
param_00.flash_max_interval_ms = 12000;
|
||||
param_00.flash_min_time_after_summon_ms = 8000;
|
||||
param_00.min_moving_pain_dist = 128;
|
||||
param_00.summon_chance = 60;
|
||||
param_00.summon_max_radius = 1000;
|
||||
param_00.summon_min_radius = 500;
|
||||
param_00.summon_spawn_min_dist_between_agents_sq = 2500;
|
||||
param_00.summon_min_spawn_num_per_player = 1;
|
||||
param_00.summon_max_spawn_num_per_player = 2;
|
||||
param_00.summon_min_dist_to_enemy_to_attempt_sq = 65536;
|
||||
param_00.summon_min_interval_ms = 15000;
|
||||
param_00.summon_max_interval_ms = 20000;
|
||||
param_00.max_allowed_minis_to_allow_new_summon = 0;
|
||||
param_00.min_initial_summon_wait_time_ms = 5000;
|
||||
param_00.max_initial_summon_wait_time_ms = 15000;
|
||||
param_00.summon_min_time_after_flash_ms = 5000;
|
||||
param_00.melee_max_z_diff = 60;
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
gettunedata()
|
||||
{
|
||||
return level.agenttunedata["crab_brute"];
|
||||
}
|
347
IW/PC/ALL/scripts/mp/agents/crab_mini/crab_mini_agent.gsc
Normal file
347
IW/PC/ALL/scripts/mp/agents/crab_mini/crab_mini_agent.gsc
Normal file
@ -0,0 +1,347 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\crab_mini\crab_mini_agent.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 15
|
||||
* Decompile Time: 793 ms
|
||||
* Timestamp: 10/27/2023 12:11:12 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
registerscriptedagent()
|
||||
{
|
||||
scripts\mp\agents\crab_mini\crab_mini_tunedata::setuptunedata();
|
||||
lib_0A02::init();
|
||||
behaviortree\crab_mini::func_DEE8();
|
||||
scripts\asm\crab_mini\mp\states::func_2371();
|
||||
thread func_FAB0();
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
func_FAB0()
|
||||
{
|
||||
level endon("game_ended");
|
||||
if(!isdefined(level.agent_definition))
|
||||
{
|
||||
level waittill("scripted_agents_initialized");
|
||||
}
|
||||
|
||||
level.agent_definition["crab_mini"]["setup_func"] = ::setupagent;
|
||||
level.agent_definition["crab_mini"]["setup_model_func"] = ::func_FACE;
|
||||
level.agent_funcs["crab_mini"]["on_damaged"] = ::scripts\cp\maps\cp_town\cp_town_damage::cp_town_onzombiedamaged;
|
||||
level.agent_funcs["crab_mini"]["gametype_on_damage_finished"] = ::lib_0CBC::func_C5CE;
|
||||
level.agent_funcs["crab_mini"]["gametype_on_killed"] = ::scripts\cp\maps\cp_town\cp_town_damage::cp_town_onzombiekilled;
|
||||
level.agent_funcs["crab_mini"]["on_damaged_finished"] = ::scripts\mp\agents\zombie\zmb_zombie_agent::func_C5CE;
|
||||
level.agent_funcs["crab_mini"]["on_killed"] = ::onkilled;
|
||||
if(!isdefined(level.var_8CBD))
|
||||
{
|
||||
level.var_8CBD = [];
|
||||
}
|
||||
|
||||
level.var_8CBD["crab_mini"] = ::calculatecrabminihealth;
|
||||
if(!isdefined(level.damage_feedback_overrride))
|
||||
{
|
||||
level.damage_feedback_overrride = [];
|
||||
}
|
||||
|
||||
level.damage_feedback_overrride["crab_mini"] = ::scripts\cp\maps\cp_town\cp_town_damage::crog_processdamagefeedback;
|
||||
if(!isdefined(level.special_zombie_damage_func))
|
||||
{
|
||||
level.special_zombie_damage_func = [];
|
||||
}
|
||||
|
||||
level.special_zombie_damage_func["crab_mini"] = ::crab_mini_special_damage_func;
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
func_FACE(param_00)
|
||||
{
|
||||
self setmodel("zmb_minicrab");
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
setupzombiegametypevars()
|
||||
{
|
||||
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.attackent = undefined;
|
||||
self.var_9342 = 1;
|
||||
self.var_1B03 = "idle";
|
||||
self.var_1F5 = "walk";
|
||||
self.sharpturnnotifydist = 100;
|
||||
self.var_257 = 15;
|
||||
self.height = 40;
|
||||
self.var_252B = 26 + self.var_257;
|
||||
self.var_B640 = "normal";
|
||||
self.var_B641 = 50;
|
||||
self.var_2539 = 54;
|
||||
self.var_253A = -64;
|
||||
self.var_4D45 = 2250000;
|
||||
self.var_181 = 1;
|
||||
self.var_86BD = self getentitynumber();
|
||||
self.var_BCE4 = 1;
|
||||
self.var_C081 = 1;
|
||||
self.var_126E8 = 1;
|
||||
self.var_772A = 1;
|
||||
self.var_2AB2 = 0;
|
||||
self.var_2AB8 = 1;
|
||||
self.var_118FC = 0;
|
||||
self.var_2F = 1;
|
||||
self.var_B5F9 = 40;
|
||||
self.var_B62E = 70;
|
||||
self.var_B631 = 80;
|
||||
self.var_B62F = squared(self.var_B62E);
|
||||
self.var_503C = self.var_257 + 1;
|
||||
self.var_B607 = 0.5;
|
||||
self.var_565C = 0;
|
||||
self.var_9BAC = 0;
|
||||
self.var_54CB = 0;
|
||||
self.damaged_by_player = 0;
|
||||
self.var_9E0C = undefined;
|
||||
self.flung = undefined;
|
||||
self.var_B0FC = 1;
|
||||
self.full_gib = 0;
|
||||
self.var_12E = undefined;
|
||||
self.var_E821 = undefined;
|
||||
self.var_A8A2 = [];
|
||||
self.var_8C12 = 0;
|
||||
self.hasplayedvignetteanim = undefined;
|
||||
self.var_9BA7 = undefined;
|
||||
self.var_179 = 200;
|
||||
self.deathmethod = undefined;
|
||||
self.var_10A57 = undefined;
|
||||
self.var_828A = undefined;
|
||||
self.var_CE65 = undefined;
|
||||
self.var_29D2 = 1;
|
||||
self.vignette_nocorpse = undefined;
|
||||
self.death_anim_no_ragdoll = undefined;
|
||||
self.dont_cleanup = 1;
|
||||
self.allowpain = 0;
|
||||
self method_84E6(45);
|
||||
if(getdvarint("scr_zombie_left_foot_sharp_turn_only",0) == 1)
|
||||
{
|
||||
self.var_AB3F = 1;
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 5
|
||||
setupagent()
|
||||
{
|
||||
setupzombiegametypevars();
|
||||
thread scripts\mp\agents\zombie\zmb_zombie_agent::func_12EE6();
|
||||
self.height = self.var_18F4;
|
||||
self.var_257 = self.var_18F9;
|
||||
self.var_B62D = 70;
|
||||
self.var_B62E = 70;
|
||||
self.var_B631 = 80;
|
||||
self.var_B62F = squared(self.var_B62E);
|
||||
self.var_503C = self.var_257 + 1;
|
||||
self.var_B607 = 0.5;
|
||||
self.var_B601 = 45;
|
||||
self.var_504E = 55;
|
||||
self.var_129AF = 55;
|
||||
self.var_368 = -60;
|
||||
self.var_100 = 60;
|
||||
self.ground_pound_damage = 50;
|
||||
self.footstepdetectdist = 2500;
|
||||
self.footstepdetectdistwalk = 2500;
|
||||
self.footstepdetectdistsprint = 2500;
|
||||
self.var_180 = 1;
|
||||
self.dontmutilate = 1;
|
||||
}
|
||||
|
||||
//Function Number: 6
|
||||
getenemy()
|
||||
{
|
||||
if(isdefined(self.myenemy))
|
||||
{
|
||||
return self.myenemy;
|
||||
}
|
||||
|
||||
return undefined;
|
||||
}
|
||||
|
||||
//Function Number: 7
|
||||
lookatenemy()
|
||||
{
|
||||
var_00 = getenemy();
|
||||
if(isdefined(var_00))
|
||||
{
|
||||
var_01 = var_00.origin - self.origin;
|
||||
var_02 = vectortoangles(var_01);
|
||||
self method_8289("face angle abs",var_02);
|
||||
return;
|
||||
}
|
||||
|
||||
self method_8289("face angle abs",self.angles);
|
||||
}
|
||||
|
||||
//Function Number: 8
|
||||
calculatecrabminihealth()
|
||||
{
|
||||
var_00 = 200;
|
||||
switch(level.var_1096B)
|
||||
{
|
||||
case 0:
|
||||
var_00 = 300;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
var_00 = 450;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
var_00 = 450;
|
||||
break;
|
||||
|
||||
case 3:
|
||||
var_00 = 600;
|
||||
break;
|
||||
|
||||
default:
|
||||
var_00 = 600;
|
||||
break;
|
||||
}
|
||||
|
||||
return var_00;
|
||||
}
|
||||
|
||||
//Function Number: 9
|
||||
create_sludge_pool(param_00)
|
||||
{
|
||||
self.var_CE65 = 1;
|
||||
if(!isdefined(level.goo_pool_ent_array))
|
||||
{
|
||||
level.goo_pool_ent_array = [];
|
||||
}
|
||||
|
||||
var_01 = 2500;
|
||||
foreach(var_03 in level.goo_pool_ent_array)
|
||||
{
|
||||
if(!isdefined(var_03))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(distancesquared(param_00,var_03.origin) < var_01)
|
||||
{
|
||||
var_03.var_AC75 = gettime() + 10000;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
var_05 = spawn("script_model",param_00);
|
||||
var_05 setmodel("tag_origin_crab_goo");
|
||||
level.goo_pool_ent_array[level.goo_pool_ent_array.size] = var_05;
|
||||
var_05 setscriptablepartstate("blood_pool","active");
|
||||
var_05 thread run_sludge_pool_damage_func();
|
||||
}
|
||||
|
||||
//Function Number: 10
|
||||
run_sludge_pool_damage_func()
|
||||
{
|
||||
self endon("death");
|
||||
var_00 = 2500;
|
||||
self.var_AC75 = gettime() + 10000;
|
||||
while(self.var_AC75 > gettime())
|
||||
{
|
||||
foreach(var_02 in level.players)
|
||||
{
|
||||
if(distancesquared(self.origin,var_02.origin) < var_00)
|
||||
{
|
||||
var_03 = gettime();
|
||||
if(!isdefined(var_02.last_crab_sludge_time) || var_02.last_crab_sludge_time + 1000 < var_03)
|
||||
{
|
||||
var_02 dodamage(20,self.origin,self,self,"MOD_UNKNOWN");
|
||||
var_02.last_crab_sludge_time = gettime();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
wait(0.05);
|
||||
}
|
||||
|
||||
self delete();
|
||||
}
|
||||
|
||||
//Function Number: 11
|
||||
setisstuck(param_00)
|
||||
{
|
||||
self.bisstuck = param_00;
|
||||
}
|
||||
|
||||
//Function Number: 12
|
||||
iscrabministuck()
|
||||
{
|
||||
return isdefined(self.bisstuck) && self.bisstuck;
|
||||
}
|
||||
|
||||
//Function Number: 13
|
||||
crab_mini_special_damage_func(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B)
|
||||
{
|
||||
if(isdefined(level.var_9925) && level.var_9925)
|
||||
{
|
||||
return self.health;
|
||||
}
|
||||
|
||||
if(isdefined(param_05) && param_05 == "iw7_knife_zm_cleaver")
|
||||
{
|
||||
return self.health;
|
||||
}
|
||||
|
||||
if(isdefined(param_07))
|
||||
{
|
||||
var_0C = scripts\mp\agents\crab_mini\crab_mini_tunedata::gettunedata();
|
||||
var_0D = anglestoforward(self.angles) * -1;
|
||||
var_0E = vectordot(var_0D,param_07);
|
||||
if(var_0E > var_0C.reduce_damage_dot)
|
||||
{
|
||||
param_02 = param_02 * var_0C.reduce_damage_pct;
|
||||
self.armor_hit = 1;
|
||||
}
|
||||
}
|
||||
|
||||
return param_02;
|
||||
}
|
||||
|
||||
//Function Number: 14
|
||||
onkilled(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
|
||||
{
|
||||
thread play_death_sfx(1);
|
||||
return scripts\mp\agents\zombie\zmb_zombie_agent::func_C5D2(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
|
||||
}
|
||||
|
||||
//Function Number: 15
|
||||
play_death_sfx(param_00)
|
||||
{
|
||||
playsoundatpos(self.origin,"minion_crog_pre_explo");
|
||||
wait(param_00);
|
||||
playsoundatpos(self.origin,"minion_crog_explode");
|
||||
}
|
54
IW/PC/ALL/scripts/mp/agents/crab_mini/crab_mini_tunedata.gsc
Normal file
54
IW/PC/ALL/scripts/mp/agents/crab_mini/crab_mini_tunedata.gsc
Normal file
@ -0,0 +1,54 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\crab_mini\crab_mini_tunedata.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 3
|
||||
* Decompile Time: 194 ms
|
||||
* Timestamp: 10/27/2023 12:11:12 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
setuptunedata()
|
||||
{
|
||||
if(!isdefined(level.agenttunedata))
|
||||
{
|
||||
level.agenttunedata = [];
|
||||
}
|
||||
|
||||
level.agenttunedata["crab_mini"] = spawnstruct();
|
||||
setupmytunedata(level.agenttunedata["crab_mini"]);
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
setupmytunedata(param_00)
|
||||
{
|
||||
param_00.melee_max_flex_xy_scale = 2.5;
|
||||
param_00.melee_xy_scale_boost = 0.5;
|
||||
param_00.non_predicted_move_melee_dist_sq = 6724;
|
||||
param_00.check_reachable_dist_sq = 4096;
|
||||
param_00.moving_melee_attack_damage_radius_sq = 1600;
|
||||
param_00.melee_attack_damage_radius_sq = 9216;
|
||||
param_00.melee_dot = 0.867;
|
||||
param_00.stand_melee_dist_sq = 4096;
|
||||
param_00.stand_melee_attack_dot = 0.707;
|
||||
param_00.move_melee_dist_sq = 16384;
|
||||
param_00.chance_to_get_stuck_if_hit = 0;
|
||||
param_00.chance_to_get_stuck_if_miss = 100;
|
||||
param_00.stuck_min_time_ms = 1000;
|
||||
param_00.stuck_max_time_ms = 2000;
|
||||
param_00.min_dist_to_enemy_to_allow_turn_sq = -25536;
|
||||
param_00.max_dist_to_enemy_to_allow_turn_sq = 1048576;
|
||||
param_00.min_stop_facing_enemy_time_before_hit = 0.3;
|
||||
param_00.max_stop_facing_enemy_time_before_hit = 0.4;
|
||||
param_00.melee_max_z_diff = 60;
|
||||
param_00.avg_time_to_impact = 0.5;
|
||||
param_00.reduce_damage_dot = 0.25;
|
||||
param_00.reduce_damage_pct = 0.15;
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
gettunedata()
|
||||
{
|
||||
return level.agenttunedata["crab_mini"];
|
||||
}
|
233
IW/PC/ALL/scripts/mp/agents/dlc4_boss/dlc4_boss_agent.gsc
Normal file
233
IW/PC/ALL/scripts/mp/agents/dlc4_boss/dlc4_boss_agent.gsc
Normal file
@ -0,0 +1,233 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\dlc4_boss\dlc4_boss_agent.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 8
|
||||
* Decompile Time: 457 ms
|
||||
* Timestamp: 10/27/2023 12:11:13 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
registerscriptedagent()
|
||||
{
|
||||
lib_0A02::init();
|
||||
behaviortree\dlc4_boss::func_DEE8();
|
||||
scripts\asm\dlc4_boss\mp\states::func_2371();
|
||||
scripts\mp\agents\dlc4_boss\dlc4_boss_tunedata::setuptunedata();
|
||||
func_AEB0();
|
||||
thread func_FAB0();
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
func_FAB0()
|
||||
{
|
||||
level endon("game_ended");
|
||||
if(!isdefined(level.agent_definition))
|
||||
{
|
||||
level waittill("scripted_agents_initialized");
|
||||
}
|
||||
|
||||
level.agent_definition["dlc4_boss"]["setup_func"] = ::setupagent;
|
||||
level.agent_definition["dlc4_boss"]["setup_model_func"] = ::func_FACE;
|
||||
level.agent_funcs["dlc4_boss"]["on_damaged"] = ::func_C4E0;
|
||||
level.agent_funcs["dlc4_boss"]["on_damaged_finished"] = ::ondamagefinished;
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
func_FACE(param_00)
|
||||
{
|
||||
self setmodel("zmb_mephistopheles");
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
func_AEB0()
|
||||
{
|
||||
}
|
||||
|
||||
//Function Number: 5
|
||||
setupzombiegametypevars()
|
||||
{
|
||||
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.attackent = undefined;
|
||||
self.var_9342 = 1;
|
||||
self.var_1B03 = "idle";
|
||||
self.var_1F5 = "walk";
|
||||
self.sharpturnnotifydist = 100;
|
||||
self.var_257 = 15;
|
||||
self.height = 40;
|
||||
self.var_252B = 26 + self.var_257;
|
||||
self.var_B640 = "normal";
|
||||
self.var_B641 = 50;
|
||||
self.var_2539 = 54;
|
||||
self.var_253A = -64;
|
||||
self.var_4D45 = 2250000;
|
||||
self.var_181 = 1;
|
||||
self.var_86BD = self getentitynumber();
|
||||
self.var_BCE4 = 1;
|
||||
self.var_C081 = 1;
|
||||
self.var_126E8 = 1;
|
||||
self.var_772A = 1;
|
||||
self.var_2AB2 = 0;
|
||||
self.var_2AB8 = 1;
|
||||
self.var_118FC = 0;
|
||||
self.var_2F = 1;
|
||||
self.var_B5F9 = 40;
|
||||
self.var_B62E = 70;
|
||||
self.var_B631 = 80;
|
||||
self.var_B62F = squared(self.var_B62E);
|
||||
self.var_503C = self.var_257 + 1;
|
||||
self.var_B607 = 0.5;
|
||||
self.var_565C = 0;
|
||||
self.var_9BAC = 0;
|
||||
self.var_54CB = 0;
|
||||
self.damaged_by_player = 0;
|
||||
self.var_9E0C = undefined;
|
||||
self.flung = undefined;
|
||||
self.var_B0FC = 1;
|
||||
self.full_gib = 0;
|
||||
self.var_12E = undefined;
|
||||
self.var_E821 = undefined;
|
||||
self.var_A8A2 = [];
|
||||
self.var_8C12 = 0;
|
||||
self.hasplayedvignetteanim = undefined;
|
||||
self.var_9BA7 = undefined;
|
||||
self.var_179 = 200;
|
||||
self.deathmethod = undefined;
|
||||
self.var_10A57 = undefined;
|
||||
self.var_828A = undefined;
|
||||
self.var_CE65 = undefined;
|
||||
self.var_29D2 = 1;
|
||||
self.vignette_nocorpse = undefined;
|
||||
self.death_anim_no_ragdoll = undefined;
|
||||
self.dont_cleanup = 1;
|
||||
if(getdvarint("scr_zombie_left_foot_sharp_turn_only",0) == 1)
|
||||
{
|
||||
self.var_AB3F = 1;
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 6
|
||||
setupagent()
|
||||
{
|
||||
setupzombiegametypevars();
|
||||
self.height = self.var_18F4;
|
||||
self.var_257 = self.var_18F9;
|
||||
self.var_9341 = 1;
|
||||
self.var_B62D = 70;
|
||||
self.var_B62E = 70;
|
||||
self.var_B631 = 80;
|
||||
self.var_B62F = squared(self.var_B62E);
|
||||
self.var_503C = self.var_257 + 1;
|
||||
self.var_B607 = 0.5;
|
||||
self.var_B601 = 45;
|
||||
self.var_504E = 55;
|
||||
self.var_129AF = 55;
|
||||
self.var_368 = -60;
|
||||
self.var_100 = 60;
|
||||
self.var_180 = 1;
|
||||
self method_828A("noclip");
|
||||
}
|
||||
|
||||
//Function Number: 7
|
||||
func_C4E0(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 = scripts\asm\dlc4\dlc4_asm::gettunedata();
|
||||
if(param_05 == var_0C.entangler_weapon_name)
|
||||
{
|
||||
param_02 = 0;
|
||||
}
|
||||
|
||||
if(!isdefined(param_01) || !isplayer(param_01))
|
||||
{
|
||||
param_02 = 0;
|
||||
}
|
||||
|
||||
[[ level.agent_funcs["dlc4_boss"]["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: 8
|
||||
ondamagefinished(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(param_02 == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
self.health = 999999;
|
||||
var_0D = 0;
|
||||
if(self.showblood || var_0D)
|
||||
{
|
||||
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);
|
||||
}
|
||||
|
||||
if(self.var_FCA5 && !var_0D)
|
||||
{
|
||||
if(isdefined(param_06) && isdefined(param_07))
|
||||
{
|
||||
playfx(level._effect["boss_shield_hit"],param_06,param_07 * -150);
|
||||
}
|
||||
}
|
||||
|
||||
if(!self.cantakedamage)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if(isplayer(param_01))
|
||||
{
|
||||
param_01 thread scripts\cp\_damage::func_12EA8("high_damage_cp");
|
||||
}
|
||||
|
||||
var_0E = scripts\asm\dlc4\dlc4_asm::gettunedata();
|
||||
if(level.fbd.bossstate == "FRENZIED")
|
||||
{
|
||||
self.frenziedhealth = self.frenziedhealth - min(param_02,self.damagecap);
|
||||
self.damagecap = max(self.damagecap - param_02,0);
|
||||
if(self.frenziedhealth <= 0)
|
||||
{
|
||||
if(!self.interruptable)
|
||||
{
|
||||
self.frenziedhealth = 1;
|
||||
return;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if(level.fbd.bossstate == "LAST_STAND")
|
||||
{
|
||||
self.laststandhealth = self.laststandhealth - min(param_02,self.damagecap);
|
||||
self.damagecap = max(self.damagecap - param_02,0);
|
||||
}
|
||||
}
|
272
IW/PC/ALL/scripts/mp/agents/dlc4_boss/dlc4_boss_tunedata.gsc
Normal file
272
IW/PC/ALL/scripts/mp/agents/dlc4_boss/dlc4_boss_tunedata.gsc
Normal file
@ -0,0 +1,272 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\dlc4_boss\dlc4_boss_tunedata.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 6
|
||||
* Decompile Time: 364 ms
|
||||
* Timestamp: 10/27/2023 12:11:14 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
setuptunedata()
|
||||
{
|
||||
if(!isdefined(level.agenttunedata))
|
||||
{
|
||||
level.agenttunedata = [];
|
||||
}
|
||||
|
||||
level.agenttunedata["dlc4_boss"] = spawnstruct();
|
||||
setupmytunedata(level.agenttunedata["dlc4_boss"]);
|
||||
setupfighttunedata(level.agenttunedata["dlc4_boss"]);
|
||||
setupfightweighttunedata(level.agenttunedata["dlc4_boss"]);
|
||||
setupspecialwavetunedata(level.agenttunedata["dlc4_boss"]);
|
||||
setupfrenziedtunedata(level.agenttunedata["dlc4_boss"]);
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
setupmytunedata(param_00)
|
||||
{
|
||||
param_00.fireball_weight = 3;
|
||||
param_00.clap_weight = 0;
|
||||
param_00.throw_weight = 0;
|
||||
param_00.tornado_weight = 0;
|
||||
param_00.summon_weight = 1;
|
||||
param_00.move_left_weight = 0.25;
|
||||
param_00.move_right_weight = 0.25;
|
||||
param_00.move_fireball_left_weight = 2;
|
||||
param_00.move_fireball_right_weight = 2;
|
||||
param_00.idle_weight = 0.5;
|
||||
param_00.air_pound_weight = 0.8;
|
||||
param_00.drop_move_weight = 0.75;
|
||||
param_00.fly_over_weight = 0.7;
|
||||
param_00.ground_vul_weight = 0;
|
||||
param_00.black_hole_weight = 0.7;
|
||||
param_00.eclipse_weight = 0.7;
|
||||
param_00.ground_pound_weight = 0;
|
||||
param_00.move_clap_left_weight = 0;
|
||||
param_00.move_clap_right_weight = 0;
|
||||
param_00.teleport_weight = 0;
|
||||
param_00.fireball_cooldown_time = 4000;
|
||||
param_00.clap_cooldown_time = -25536;
|
||||
param_00.throw_cooldown_time = 20000;
|
||||
param_00.tornado_cooldown_time = 20000;
|
||||
param_00.summon_cooldown_time = 20000;
|
||||
param_00.move_left_cooldown_time = 6000;
|
||||
param_00.move_right_cooldown_time = 6000;
|
||||
param_00.move_fireball_left_cooldown_time = 6000;
|
||||
param_00.move_fireball_right_cooldown_time = 6000;
|
||||
param_00.air_pound_cooldown_time = 20000;
|
||||
param_00.drop_move_cooldown_time = 15000;
|
||||
param_00.temp_idle_cooldown_time = 5000;
|
||||
param_00.fly_over_cooldown_time = 20000;
|
||||
param_00.black_hole_cooldown_time = 30000;
|
||||
param_00.eclipse_cooldown_time = 0;
|
||||
param_00.ground_vul_cooldown_time = 0;
|
||||
param_00.passive_cooldown = 7000;
|
||||
param_00.special_cooldown = 10000;
|
||||
param_00.min_burst_count = 3;
|
||||
param_00.max_burst_count = 5;
|
||||
param_00.sawblade_min_offset = -30;
|
||||
param_00.sawblade_max_offset = 30;
|
||||
param_00.sawblade_burst_interval = 0.3;
|
||||
param_00.sawblade_weapon = "iw7_demon_fireball_mp";
|
||||
param_00.chance_to_target_charger = 0.7;
|
||||
param_00.throw_weapon = "iw7_demon_throw_mp";
|
||||
param_00.throw_offset = (0,0,500);
|
||||
param_00.throw_distance = 2000;
|
||||
param_00.throw_fidelity = 5;
|
||||
param_00.throw_starting_pitch = 10;
|
||||
param_00.throw_side_yaw = 10;
|
||||
param_00.throw_meteor_radius = 130;
|
||||
param_00.clap_duration = 10000;
|
||||
param_00.staff_projectile_min_dist_sq = -25536;
|
||||
param_00.staff_projectile_max_dist_sq = 262144;
|
||||
param_00.staff_projectile_z_delta = 60;
|
||||
param_00.staff_projectile_speed = 1000;
|
||||
param_00.staff_projectile_range = 1000;
|
||||
param_00.staff_projectile_damage = 300;
|
||||
param_00.staff_projectile_interval = 0.1;
|
||||
param_00.ratking_staff_projectile_model = "tag_origin_staff_proj";
|
||||
param_00.summon_agent_type = "skeleton";
|
||||
param_00.summon_min_spawn_num = [];
|
||||
param_00.summon_max_spawn_num = [];
|
||||
param_00.summon_min_spawn_num["1"] = 6;
|
||||
param_00.summon_max_spawn_num["1"] = 10;
|
||||
param_00.summon_min_spawn_num["2"] = 8;
|
||||
param_00.summon_max_spawn_num["2"] = 13;
|
||||
param_00.summon_min_spawn_num["3"] = 8;
|
||||
param_00.summon_max_spawn_num["3"] = 13;
|
||||
param_00.summon_min_spawn_num["4"] = 10;
|
||||
param_00.summon_max_spawn_num["4"] = 15;
|
||||
param_00.summon_max_total = [];
|
||||
param_00.summon_max_total["1"] = 10;
|
||||
param_00.summon_max_total["2"] = 13;
|
||||
param_00.summon_max_total["3"] = 15;
|
||||
param_00.summon_max_total["4"] = 17;
|
||||
param_00.summon_min_radius = 100;
|
||||
param_00.summon_max_radius = 450;
|
||||
param_00.summon_min_dist_from_player = 200;
|
||||
param_00.summon_min_zombies_before_active = 12;
|
||||
param_00.skeleton_health = 8500;
|
||||
param_00.automatic_spawn_time = 3000;
|
||||
param_00.automatic_spawn_cap = 2;
|
||||
param_00.min_idle_time = 500;
|
||||
param_00.max_idle_time = 3000;
|
||||
param_00.min_move_nodes = 2;
|
||||
param_00.max_move_nodes = 5;
|
||||
param_00.look_ahead_speed = 20;
|
||||
param_00.look_ahead_radius = 200;
|
||||
param_00.strafe_move_nodes = 4;
|
||||
param_00.ground_vul_time = 8000;
|
||||
param_00.ground_pound_radius = 300;
|
||||
param_00.ground_pound_min_damage = 95;
|
||||
param_00.ground_pound_max_damage = 300;
|
||||
param_00.zombies_per_person = 0;
|
||||
param_00.zombies_summon_radius = 200;
|
||||
param_00.drop_down_time = 1000;
|
||||
param_00.fly_over_nodes_travelled = 7;
|
||||
param_00.persistent_fire_damage = 50;
|
||||
param_00.persistent_fire_rate = 0.1;
|
||||
param_00.fly_over_speed = 1.5;
|
||||
param_00.ss_groundpound_radius = 500;
|
||||
param_00.ss_groundpound_min_damage = 95;
|
||||
param_00.ss_groundpound_max_damage = 500;
|
||||
param_00.air_pound_rise_fx = level._effect["vfx_demon_spawn"];
|
||||
param_00.air_pound_pound_fx = level._effect["demon_pound_slam_lrg"];
|
||||
param_00.air_pound_pound_sfx = "rocket_explode_energy";
|
||||
param_00.air_pound_pound_rumble_scale = 0.45;
|
||||
param_00.air_pound_pound_rumble_duration = 3;
|
||||
param_00.air_pound_pound_rumble_radius = 750;
|
||||
param_00.air_pound_rise_rumble_scale = 0.35;
|
||||
param_00.air_pound_rise_rumble_duration = 3;
|
||||
param_00.air_pound_rise_rumble_radius = 750;
|
||||
param_00.black_hole_duration = 5000;
|
||||
param_00.var_2174 = 15000;
|
||||
param_00.safe_zone_radius = 300;
|
||||
param_00.meteor_min_period = 0.1;
|
||||
param_00.meteor_max_period = 0.5;
|
||||
param_00.meteor_period_stage_decay = 0.85;
|
||||
param_00.meteor_target_radius = 1000;
|
||||
param_00.eclipse_duration = 180000;
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
setupfighttunedata(param_00)
|
||||
{
|
||||
param_00.max_soul_health = 4;
|
||||
param_00.section_complete_notify = "SECTION_COMPLETE_NOTIFY";
|
||||
param_00.weak_spot_model = "zmb_superslasher_weak_spot";
|
||||
param_00.weak_spot_health = 12500;
|
||||
param_00.min_health_percent = 0.15;
|
||||
param_00.var_3CCC = 30000;
|
||||
param_00.charge_rate = 1 / param_00.var_3CCC;
|
||||
param_00.decharge_time = 10000;
|
||||
param_00.decharge_rate = 1 / param_00.decharge_time;
|
||||
param_00.buffer_time_solo = 6000;
|
||||
param_00.buffer_time_coop = 4000;
|
||||
param_00.var_1649 = 180000;
|
||||
param_00.stolen_ghost_model = "zombie_ghost_cube_blue";
|
||||
param_00.zombie_ghost_model = "dlc4_boss_soul";
|
||||
param_00.fake_ghost_model = "fake_dlc4_boss_soul";
|
||||
param_00.num_souls_released = 6;
|
||||
param_00.soul_max_distance_from_arena = 5000;
|
||||
param_00.soul_explosion_radius = 70;
|
||||
param_00.boss_mid_height = 150;
|
||||
param_00.boss_mid_offset = 0;
|
||||
param_00.soul_mid_height = 12;
|
||||
param_00.soul_health_depleted_notify = "SOUL_HEALTH_DEPLETED";
|
||||
param_00.soul_respawn_time = 2000;
|
||||
param_00.soul_lifetime = 2000;
|
||||
param_00.entangler_weapon_name = "iw7_entangler_zm";
|
||||
param_00.entangler_stop_notify = "stop_using_entangler";
|
||||
param_00.entangler_hit_same_target_notify = "entangler_hit_same_target";
|
||||
param_00.entangler_track_update_frequency = 0.2;
|
||||
param_00.entangler_recharge_rate = 0.5;
|
||||
param_00.entangler_track_time = 0.5;
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
setupfightweighttunedata(param_00)
|
||||
{
|
||||
param_00.move_base_weight = 3;
|
||||
param_00.move_stage_multiplier = -0.15;
|
||||
param_00.idle_base_weight = 1;
|
||||
param_00.idle_stage_multiplier = 0;
|
||||
param_00.drop_move_base_weight = 0.5;
|
||||
param_00.drop_move_stage_multiplier = 0;
|
||||
param_00.fireball_base_weight = 1.8;
|
||||
param_00.fireball_stage_multiplier = 0.15;
|
||||
param_00.move_fireball_base_weight = 1.8;
|
||||
param_00.move_fireball_stage_multiplier = 0.15;
|
||||
param_00.black_hole_base_weight = 0.5;
|
||||
param_00.black_hole_stage_multiplier = 0.2;
|
||||
param_00.black_hole_charge_multiplier = 0.5;
|
||||
param_00.fly_over_base_weight = 0.6;
|
||||
param_00.fly_over_stage_multiplier = 0.2;
|
||||
param_00.summon_base_weight = 50;
|
||||
param_00.summon_stage_multiplier = 0;
|
||||
param_00.special_base_weight = 2.2;
|
||||
param_00.special_stage_multiplier = 0.1;
|
||||
}
|
||||
|
||||
//Function Number: 5
|
||||
setupspecialwavetunedata(param_00)
|
||||
{
|
||||
param_00.base_spawn_interval = 2;
|
||||
param_00.spawn_interval_decay = 0.9;
|
||||
param_00.specialwavesdata = [];
|
||||
param_00.specialwavesdata["BASIC_1"] = 15;
|
||||
param_00.specialwavesdata["PHANTOM_1"] = 4;
|
||||
param_00.specialwavesdata["SPECIAL_1"] = ["zombie_clown","zombie_clown","zombie_clown","zombie_clown","zombie_clown","zombie_clown"];
|
||||
param_00.specialwavesdata["BASIC_2"] = 18;
|
||||
param_00.specialwavesdata["PHANTOM_2"] = 6;
|
||||
param_00.specialwavesdata["SPECIAL_2"] = ["slasher"];
|
||||
param_00.specialwavesdata["BASIC_3"] = 21;
|
||||
param_00.specialwavesdata["PHANTOM_3"] = 7;
|
||||
param_00.specialwavesdata["SPECIAL_3"] = ["karatemaster","karatemaster","karatemaster","karatemaster"];
|
||||
param_00.specialwavesdata["BASIC_4"] = 24;
|
||||
param_00.specialwavesdata["PHANTOM_4"] = 8;
|
||||
param_00.specialwavesdata["SPECIAL_4"] = ["alien_rhino","alien_rhino"];
|
||||
}
|
||||
|
||||
//Function Number: 6
|
||||
setupfrenziedtunedata(param_00)
|
||||
{
|
||||
param_00.frenzied_health = 250000;
|
||||
param_00.last_stand_health = 20000;
|
||||
param_00.frenzied_damage_cap = 1500;
|
||||
param_00.frenzied_damage_cap_wave_increase = 1500;
|
||||
param_00.frenzied_damage_cap_time = 0.5;
|
||||
param_00.last_stand_time = 15000;
|
||||
param_00.last_stand_victory_min_time = 8000;
|
||||
param_00.frenzied_blink_chance = 0.05;
|
||||
param_00.frenzied_move_weight = 0;
|
||||
param_00.frenzied_idle_weight = 0;
|
||||
param_00.frenzied_drop_move_weight = 0;
|
||||
param_00.frenzied_fireball_weight = 1.5;
|
||||
param_00.frenzied_move_fireball_weight = 2.5;
|
||||
param_00.frenzied_black_hole_weight = 0.5;
|
||||
param_00.frenzied_fly_over_weight = 0.7;
|
||||
param_00.frenzied_summon_weight = 0;
|
||||
param_00.frenzied_special_weight = 1.1;
|
||||
param_00.frenzied_summon_min_interval = 0.5;
|
||||
param_00.frenzied_summon_max_interval = 1;
|
||||
param_00.frenzied_summon_wave_period = -20536;
|
||||
param_00.frenzied_summon_number = 8;
|
||||
param_00.frenzied_summon_increase_per_wave = 2;
|
||||
param_00.frenzied_summon_start_wave = 4;
|
||||
param_00.frenzied_summon_agents = ["skeleton","alien_goon","alien_phantom","zombie_clown","karatemaster","slasher","alien_rhino"];
|
||||
param_00.frenzied_summon_data = [];
|
||||
param_00.frenzied_summon_data["skeleton"] = [10,2];
|
||||
param_00.frenzied_summon_data["alien_goon"] = [10,2];
|
||||
param_00.frenzied_summon_data["zombie_clown"] = [6,4];
|
||||
param_00.frenzied_summon_data["alien_phantom"] = [6,7];
|
||||
param_00.frenzied_summon_data["karatemaster"] = [5,10];
|
||||
param_00.frenzied_summon_data["alien_rhino"] = [5,35];
|
||||
param_00.frenzied_summon_data["slasher"] = [5,60];
|
||||
param_00.frenzied_meteor_min_period = 0.5;
|
||||
param_00.frenzied_meteor_max_period = 1;
|
||||
param_00.frenzied_meteor_target_radius = 1200;
|
||||
param_00.frenzied_meteor_target_min_radius = 800;
|
||||
}
|
271
IW/PC/ALL/scripts/mp/agents/elvira/elvira_agent.gsc
Normal file
271
IW/PC/ALL/scripts/mp/agents/elvira/elvira_agent.gsc
Normal file
@ -0,0 +1,271 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\elvira\elvira_agent.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 16
|
||||
* Decompile Time: 854 ms
|
||||
* Timestamp: 10/27/2023 12:11:15 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
registerscriptedagent()
|
||||
{
|
||||
lib_0A02::init();
|
||||
behaviortree\elvira::func_DEE8();
|
||||
scripts\asm\elvira\mp\states::func_2371();
|
||||
scripts\mp\agents\elvira\elvira_tunedata::setuptunedata();
|
||||
thread func_FAB0();
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
func_FAB0()
|
||||
{
|
||||
level endon("game_ended");
|
||||
if(!isdefined(level.agent_definition))
|
||||
{
|
||||
level waittill("scripted_agents_initialized");
|
||||
}
|
||||
|
||||
if(!isdefined(level.var_10970))
|
||||
{
|
||||
level.var_10970 = [];
|
||||
}
|
||||
|
||||
level.var_10970["elvira"] = [];
|
||||
level.agent_definition["elvira"]["setup_func"] = ::setupagent;
|
||||
level.agent_definition["elvira"]["setup_model_func"] = ::func_FACE;
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
func_FACE(param_00)
|
||||
{
|
||||
self setmodel("fullbody_zmb_hero_elvira");
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
setupagent()
|
||||
{
|
||||
self.accuracy = 0.8;
|
||||
self.noattackeraccuracymod = 0;
|
||||
self.sharpturnnotifydist = 48;
|
||||
self.last_enemy_sight_time = 0;
|
||||
self.maxsightdistsqrd = 67108864;
|
||||
self.meleerangesq = 9216;
|
||||
self.meleechargedist = 45;
|
||||
self.meleechargedistvsplayer = 45;
|
||||
self.meleechargedistreloadmultiplier = 1.2;
|
||||
self.maxzdiff = 50;
|
||||
self.meleeactorboundsradius = 32;
|
||||
self.meleemindamage = 300;
|
||||
self.meleemaxdamage = 450;
|
||||
self.footstepdetectdist = 1000;
|
||||
self.footstepdetectdistwalk = 1000;
|
||||
self.footstepdetectdistsprint = 1000;
|
||||
self.var_1A44 = 50;
|
||||
self.var_B62D = 70;
|
||||
self.var_B62E = 70;
|
||||
self.var_B631 = 80;
|
||||
self.var_B62F = squared(self.var_B62E);
|
||||
self.var_B607 = 0.5;
|
||||
self.var_B601 = 9999;
|
||||
self.var_129AF = 55;
|
||||
self.var_257 = 15;
|
||||
self.height = 65;
|
||||
self.allowpain = 0;
|
||||
func_FAFE();
|
||||
thread func_899D();
|
||||
level.the_hoff_revive = 1;
|
||||
thread elviracleanup();
|
||||
}
|
||||
|
||||
//Function Number: 5
|
||||
elviracleanup()
|
||||
{
|
||||
self waittill("death");
|
||||
level.the_hoff_revive = undefined;
|
||||
}
|
||||
|
||||
//Function Number: 6
|
||||
func_FAFE()
|
||||
{
|
||||
self.targetcrawlerfunction = ::func_11562;
|
||||
self.targetingfunctions = [::func_11562,::func_11559,::func_1156F,::func_1157B,::func_11570];
|
||||
self.targetingfunctionchances = [0,47,21,21,11];
|
||||
}
|
||||
|
||||
//Function Number: 7
|
||||
func_899D()
|
||||
{
|
||||
self endon("death");
|
||||
for(;;)
|
||||
{
|
||||
self waittill("enemy");
|
||||
for(;;)
|
||||
{
|
||||
if(isdefined(self.var_10C))
|
||||
{
|
||||
self.var_6571 = gettime() + 1000;
|
||||
}
|
||||
else if(isdefined(self.var_6571))
|
||||
{
|
||||
if(gettime() > self.var_6571)
|
||||
{
|
||||
self.var_6571 = undefined;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
wait(0.25);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 8
|
||||
func_11570()
|
||||
{
|
||||
var_00 = 70;
|
||||
var_01 = 15;
|
||||
if(isdefined(self.var_10C.var_18F4))
|
||||
{
|
||||
var_00 = self.var_10C.var_18F4;
|
||||
var_01 = self.var_10C.var_18F9;
|
||||
}
|
||||
|
||||
var_02 = var_00 * randomfloatrange(0.25,0.35);
|
||||
var_03 = var_01 * 0.5;
|
||||
var_04 = var_03 * -1;
|
||||
var_05 = randomfloatrange(var_04,var_03);
|
||||
var_06 = anglestoright(self.angles);
|
||||
var_07 = (var_06[0] * var_05,var_06[1] * var_05,var_02);
|
||||
var_08 = self.var_10C.origin + var_07;
|
||||
return var_08;
|
||||
}
|
||||
|
||||
//Function Number: 9
|
||||
func_1157B()
|
||||
{
|
||||
var_00 = 70;
|
||||
var_01 = 15;
|
||||
if(isdefined(self.var_10C.var_18F4))
|
||||
{
|
||||
var_00 = self.var_10C.var_18F4;
|
||||
var_01 = self.var_10C.var_18F9;
|
||||
}
|
||||
|
||||
var_02 = var_00 * randomfloatrange(0.65,0.75);
|
||||
var_03 = var_01 * 0.75;
|
||||
var_04 = anglestoright(self.angles);
|
||||
var_05 = (var_04[0] * var_03,var_04[1] * var_03,var_02);
|
||||
var_06 = self.var_10C.origin + var_05;
|
||||
return var_06;
|
||||
}
|
||||
|
||||
//Function Number: 10
|
||||
func_1156F()
|
||||
{
|
||||
var_00 = 70;
|
||||
var_01 = 15;
|
||||
if(isdefined(self.var_10C.var_18F4))
|
||||
{
|
||||
var_00 = self.var_10C.var_18F4;
|
||||
var_01 = self.var_10C.var_18F9;
|
||||
}
|
||||
|
||||
var_02 = var_00 * randomfloatrange(0.65,0.75);
|
||||
var_03 = var_01 * -0.75;
|
||||
var_04 = anglestoright(self.angles);
|
||||
var_05 = (var_04[0] * var_03,var_04[1] * var_03,var_02);
|
||||
var_06 = self.var_10C.origin + var_05;
|
||||
return var_06;
|
||||
}
|
||||
|
||||
//Function Number: 11
|
||||
func_11559()
|
||||
{
|
||||
var_00 = 70;
|
||||
var_01 = 15;
|
||||
if(isdefined(self.var_10C.var_18F4))
|
||||
{
|
||||
var_00 = self.var_10C.var_18F4;
|
||||
var_01 = self.var_10C.var_18F9;
|
||||
}
|
||||
|
||||
var_02 = var_00 * randomfloatrange(0.65,0.75);
|
||||
var_03 = var_01 * 0.5;
|
||||
var_04 = var_03 * -1;
|
||||
var_05 = randomfloatrange(var_04,var_03);
|
||||
var_06 = anglestoright(self.angles);
|
||||
var_07 = (var_06[0] * var_05,var_06[1] * var_05,var_02);
|
||||
var_08 = self.var_10C.origin + var_07;
|
||||
return var_08;
|
||||
}
|
||||
|
||||
//Function Number: 12
|
||||
func_11562()
|
||||
{
|
||||
var_00 = self.var_10C gettagorigin("j_head");
|
||||
return var_00;
|
||||
}
|
||||
|
||||
//Function Number: 13
|
||||
func_CB30()
|
||||
{
|
||||
if(isdefined(self.var_10C) && isdefined(self.var_10C.var_565C) && self.var_10C.var_565C)
|
||||
{
|
||||
if(isdefined(self.targetcrawlerfunction))
|
||||
{
|
||||
return self.targetcrawlerfunction;
|
||||
}
|
||||
}
|
||||
|
||||
var_00 = 0;
|
||||
var_01 = randomint(100);
|
||||
for(var_02 = 0;var_02 < self.targetingfunctionchances.size;var_02++)
|
||||
{
|
||||
var_03 = self.targetingfunctionchances[var_02];
|
||||
if(var_01 < var_03 + var_00)
|
||||
{
|
||||
return self.targetingfunctions[var_02];
|
||||
}
|
||||
|
||||
var_00 = var_00 + var_03;
|
||||
}
|
||||
|
||||
return undefined;
|
||||
}
|
||||
|
||||
//Function Number: 14
|
||||
func_7E8E()
|
||||
{
|
||||
var_00 = self.var_10C gettagorigin("j_head");
|
||||
return var_00;
|
||||
}
|
||||
|
||||
//Function Number: 15
|
||||
func_7E66()
|
||||
{
|
||||
if(scripts\common\utility::istrue(self.var_565C))
|
||||
{
|
||||
return func_7E8E();
|
||||
}
|
||||
|
||||
var_00 = 70;
|
||||
var_01 = 15;
|
||||
if(isdefined(self.var_10C.var_18F4))
|
||||
{
|
||||
var_00 = self.var_10C.var_18F4;
|
||||
var_01 = self.var_10C.var_18F9;
|
||||
}
|
||||
|
||||
var_02 = var_00 * 0.75;
|
||||
var_03 = (0,0,var_02);
|
||||
var_04 = self.var_10C.origin + var_03;
|
||||
return var_04;
|
||||
}
|
||||
|
||||
//Function Number: 16
|
||||
getenemy()
|
||||
{
|
||||
return self.var_10C;
|
||||
}
|
61
IW/PC/ALL/scripts/mp/agents/elvira/elvira_tunedata.gsc
Normal file
61
IW/PC/ALL/scripts/mp/agents/elvira/elvira_tunedata.gsc
Normal file
@ -0,0 +1,61 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\elvira\elvira_tunedata.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 3
|
||||
* Decompile Time: 195 ms
|
||||
* Timestamp: 10/27/2023 12:11:15 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
setuptunedata()
|
||||
{
|
||||
if(!isdefined(level.agenttunedata))
|
||||
{
|
||||
level.agenttunedata = [];
|
||||
}
|
||||
|
||||
level.agenttunedata["elvira"] = spawnstruct();
|
||||
setupmytunedata(level.agenttunedata["elvira"]);
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
setupmytunedata(param_00)
|
||||
{
|
||||
param_00.revive_right_offset = 32;
|
||||
param_00.revive_forward_offset = 60;
|
||||
param_00.max_revive_snapp_2d_dist_sq = 64;
|
||||
param_00.max_revive_snap_z_dist = 32;
|
||||
param_00.max_revive_search_dist_sq = 2250000;
|
||||
param_00.revive_wait_time = 2;
|
||||
param_00.min_time_between_revivals = 5000;
|
||||
param_00.min_time_between_revivals_solo = 10000;
|
||||
param_00.max_dist_to_revive_player_sq = 10000;
|
||||
param_00.melee_max_z_diff = 60;
|
||||
param_00.melee_attack_range_sq = 30625;
|
||||
param_00.desiredenemydistmax = 500;
|
||||
param_00.desiredenemydistmin = 400;
|
||||
param_00.maxtimetostrafewithoutlos = 3000;
|
||||
param_00.strafeifwithindist = param_00.desiredenemydistmax + 100;
|
||||
param_00.var_272A = param_00.desiredenemydistmin - 100;
|
||||
param_00.backupdist = 100;
|
||||
param_00.max_dist_from_closest_player_in_combat_sq = 250000;
|
||||
param_00.max_dist_from_closest_player_sq = 16384;
|
||||
param_00.return_to_closest_player_dist_in_combat_sq = 90000;
|
||||
param_00.return_to_closest_player_dist_sq = 12100;
|
||||
param_00.check_for_closest_player_interval_ms = 1000;
|
||||
param_00.max_dist_for_spell_cast_sq = 562500;
|
||||
param_00.init_spellcast_delay = 10000;
|
||||
param_00.spellcast_interval = 15000;
|
||||
param_00.max_enemy_spell_radius_sq = 262144;
|
||||
param_00.min_enemies_for_spellcast = 1;
|
||||
param_00.var_AC71 = 120000;
|
||||
param_00.max_teleport_lookahead_dist = 600;
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
gettunedata()
|
||||
{
|
||||
return level.agenttunedata["elvira"];
|
||||
}
|
57
IW/PC/ALL/scripts/mp/agents/gametype_assault.gsc
Normal file
57
IW/PC/ALL/scripts/mp/agents/gametype_assault.gsc
Normal file
@ -0,0 +1,57 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\gametype_assault.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 4
|
||||
* Decompile Time: 240 ms
|
||||
* Timestamp: 10/27/2023 12:11:31 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
main()
|
||||
{
|
||||
func_F8F4();
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
func_F8F4()
|
||||
{
|
||||
level.agent_funcs["squadmate"]["gametype_update"] = ::func_18FC;
|
||||
level.agent_funcs["player"]["think"] = ::func_18F6;
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
func_18F6()
|
||||
{
|
||||
thread scripts\mp\bots\gametype_dom::func_2D64();
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
func_18FC()
|
||||
{
|
||||
var_00 = undefined;
|
||||
foreach(var_02 in self.var_222.var_11A46)
|
||||
{
|
||||
if(var_02.var_130AC.var_92B8 == "domFlag")
|
||||
{
|
||||
var_00 = var_02;
|
||||
}
|
||||
}
|
||||
|
||||
if(isdefined(var_00))
|
||||
{
|
||||
var_04 = var_00 scripts\mp\gametypes\dom::func_7EBB();
|
||||
if(var_04 != self.team)
|
||||
{
|
||||
if(!scripts\mp\bots\gametype_dom::func_2DD6(var_00))
|
||||
{
|
||||
scripts\mp\bots\gametype_dom::func_3A37(var_00,"critical",1);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
14
IW/PC/ALL/scripts/mp/agents/gametype_ball.gsc
Normal file
14
IW/PC/ALL/scripts/mp/agents/gametype_ball.gsc
Normal file
@ -0,0 +1,14 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\gametype_ball.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 1
|
||||
* Decompile Time: 88 ms
|
||||
* Timestamp: 10/27/2023 12:11:31 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
main()
|
||||
{
|
||||
}
|
75
IW/PC/ALL/scripts/mp/agents/gametype_conf.gsc
Normal file
75
IW/PC/ALL/scripts/mp/agents/gametype_conf.gsc
Normal file
@ -0,0 +1,75 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\gametype_conf.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 4
|
||||
* Decompile Time: 266 ms
|
||||
* Timestamp: 10/27/2023 12:11:31 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
main()
|
||||
{
|
||||
func_F8F4();
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
func_F8F4()
|
||||
{
|
||||
level.agent_funcs["squadmate"]["gametype_update"] = ::func_18FB;
|
||||
level.agent_funcs["player"]["think"] = ::func_18F5;
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
func_18F5()
|
||||
{
|
||||
thread scripts\mp\bots\gametype_conf::func_2D39();
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
func_18FB()
|
||||
{
|
||||
if(!isdefined(self.var_11420))
|
||||
{
|
||||
self.var_11420 = [];
|
||||
}
|
||||
|
||||
if(!isdefined(self.var_BF68))
|
||||
{
|
||||
self.var_BF68 = gettime() + 500;
|
||||
}
|
||||
|
||||
if(gettime() > self.var_BF68)
|
||||
{
|
||||
self.var_BF68 = gettime() + 500;
|
||||
var_00 = 0.78;
|
||||
var_01 = self.var_222 getnearestnode();
|
||||
if(isdefined(var_01))
|
||||
{
|
||||
var_02 = self.var_222 scripts\mp\bots\gametype_conf::func_2D7C(1,var_01,var_00);
|
||||
self.var_11420 = scripts\mp\bots\gametype_conf::func_2D38(var_02,self.var_11420);
|
||||
}
|
||||
}
|
||||
|
||||
self.var_11420 = scripts\mp\bots\gametype_conf::func_2E65(self.var_11420);
|
||||
var_03 = scripts\mp\bots\gametype_conf::func_2D74(self.var_11420,0);
|
||||
if(isdefined(var_03))
|
||||
{
|
||||
if(!isdefined(self.var_113DD) || distancesquared(var_03.var_4B2C,self.var_113DD.var_4B2C) > 1)
|
||||
{
|
||||
self.var_113DD = var_03;
|
||||
scripts\mp\bots\_bots_strategy::func_2D4E();
|
||||
self botsetscriptgoal(self.var_113DD.var_4B2C,0,"objective",undefined,level.var_2EA7);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
else if(isdefined(self.var_113DD))
|
||||
{
|
||||
self botclearscriptgoal();
|
||||
self.var_113DD = undefined;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
14
IW/PC/ALL/scripts/mp/agents/gametype_cranked.gsc
Normal file
14
IW/PC/ALL/scripts/mp/agents/gametype_cranked.gsc
Normal file
@ -0,0 +1,14 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\gametype_cranked.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 1
|
||||
* Decompile Time: 90 ms
|
||||
* Timestamp: 10/27/2023 12:11:32 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
main()
|
||||
{
|
||||
}
|
14
IW/PC/ALL/scripts/mp/agents/gametype_ctf.gsc
Normal file
14
IW/PC/ALL/scripts/mp/agents/gametype_ctf.gsc
Normal file
@ -0,0 +1,14 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\gametype_ctf.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 1
|
||||
* Decompile Time: 92 ms
|
||||
* Timestamp: 10/27/2023 12:11:32 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
main()
|
||||
{
|
||||
}
|
14
IW/PC/ALL/scripts/mp/agents/gametype_dd.gsc
Normal file
14
IW/PC/ALL/scripts/mp/agents/gametype_dd.gsc
Normal file
@ -0,0 +1,14 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\gametype_dd.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 1
|
||||
* Decompile Time: 100 ms
|
||||
* Timestamp: 10/27/2023 12:11:33 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
main()
|
||||
{
|
||||
}
|
14
IW/PC/ALL/scripts/mp/agents/gametype_dm.gsc
Normal file
14
IW/PC/ALL/scripts/mp/agents/gametype_dm.gsc
Normal file
@ -0,0 +1,14 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\gametype_dm.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 1
|
||||
* Decompile Time: 98 ms
|
||||
* Timestamp: 10/27/2023 12:11:33 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
main()
|
||||
{
|
||||
}
|
57
IW/PC/ALL/scripts/mp/agents/gametype_dom.gsc
Normal file
57
IW/PC/ALL/scripts/mp/agents/gametype_dom.gsc
Normal file
@ -0,0 +1,57 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\gametype_dom.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 4
|
||||
* Decompile Time: 234 ms
|
||||
* Timestamp: 10/27/2023 12:11:33 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
main()
|
||||
{
|
||||
func_F8F4();
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
func_F8F4()
|
||||
{
|
||||
level.agent_funcs["squadmate"]["gametype_update"] = ::func_18FC;
|
||||
level.agent_funcs["player"]["think"] = ::func_18F6;
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
func_18F6()
|
||||
{
|
||||
thread scripts\mp\bots\gametype_dom::func_2D64();
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
func_18FC()
|
||||
{
|
||||
var_00 = undefined;
|
||||
foreach(var_02 in self.var_222.var_11A46)
|
||||
{
|
||||
if(var_02.var_130AC.var_92B8 == "domFlag")
|
||||
{
|
||||
var_00 = var_02;
|
||||
}
|
||||
}
|
||||
|
||||
if(isdefined(var_00))
|
||||
{
|
||||
var_04 = var_00 scripts\mp\gametypes\dom::func_7EBB();
|
||||
if(var_04 != self.team)
|
||||
{
|
||||
if(!scripts\mp\bots\gametype_dom::func_2DD6(var_00))
|
||||
{
|
||||
scripts\mp\bots\gametype_dom::func_3A37(var_00,"critical",1);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
14
IW/PC/ALL/scripts/mp/agents/gametype_front.gsc
Normal file
14
IW/PC/ALL/scripts/mp/agents/gametype_front.gsc
Normal file
@ -0,0 +1,14 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\gametype_front.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 1
|
||||
* Decompile Time: 93 ms
|
||||
* Timestamp: 10/27/2023 12:11:34 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
main()
|
||||
{
|
||||
}
|
22
IW/PC/ALL/scripts/mp/agents/gametype_grind.gsc
Normal file
22
IW/PC/ALL/scripts/mp/agents/gametype_grind.gsc
Normal file
@ -0,0 +1,22 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\gametype_grind.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 2
|
||||
* Decompile Time: 134 ms
|
||||
* Timestamp: 10/27/2023 12:11:34 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
main()
|
||||
{
|
||||
func_F8F4();
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
func_F8F4()
|
||||
{
|
||||
level.agent_funcs["squadmate"]["gametype_update"] = ::scripts\mp\agents\gametype_conf::func_18FB;
|
||||
level.agent_funcs["player"]["think"] = ::scripts\mp\agents\gametype_conf::func_18F5;
|
||||
}
|
14
IW/PC/ALL/scripts/mp/agents/gametype_grnd.gsc
Normal file
14
IW/PC/ALL/scripts/mp/agents/gametype_grnd.gsc
Normal file
@ -0,0 +1,14 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\gametype_grnd.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 1
|
||||
* Decompile Time: 132 ms
|
||||
* Timestamp: 10/27/2023 12:11:35 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
main()
|
||||
{
|
||||
}
|
14
IW/PC/ALL/scripts/mp/agents/gametype_gun.gsc
Normal file
14
IW/PC/ALL/scripts/mp/agents/gametype_gun.gsc
Normal file
@ -0,0 +1,14 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\gametype_gun.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 1
|
||||
* Decompile Time: 131 ms
|
||||
* Timestamp: 10/27/2023 12:11:35 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
main()
|
||||
{
|
||||
}
|
14
IW/PC/ALL/scripts/mp/agents/gametype_infect.gsc
Normal file
14
IW/PC/ALL/scripts/mp/agents/gametype_infect.gsc
Normal file
@ -0,0 +1,14 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\gametype_infect.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 1
|
||||
* Decompile Time: 92 ms
|
||||
* Timestamp: 10/27/2023 12:11:35 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
main()
|
||||
{
|
||||
}
|
14
IW/PC/ALL/scripts/mp/agents/gametype_koth.gsc
Normal file
14
IW/PC/ALL/scripts/mp/agents/gametype_koth.gsc
Normal file
@ -0,0 +1,14 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\gametype_koth.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 1
|
||||
* Decompile Time: 91 ms
|
||||
* Timestamp: 10/27/2023 12:11:36 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
main()
|
||||
{
|
||||
}
|
14
IW/PC/ALL/scripts/mp/agents/gametype_lava.gsc
Normal file
14
IW/PC/ALL/scripts/mp/agents/gametype_lava.gsc
Normal file
@ -0,0 +1,14 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\gametype_lava.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 1
|
||||
* Decompile Time: 91 ms
|
||||
* Timestamp: 10/27/2023 12:11:36 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
main()
|
||||
{
|
||||
}
|
14
IW/PC/ALL/scripts/mp/agents/gametype_mp_zomb.gsc
Normal file
14
IW/PC/ALL/scripts/mp/agents/gametype_mp_zomb.gsc
Normal file
@ -0,0 +1,14 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\gametype_mp_zomb.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 1
|
||||
* Decompile Time: 101 ms
|
||||
* Timestamp: 10/27/2023 12:11:37 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
main()
|
||||
{
|
||||
}
|
80
IW/PC/ALL/scripts/mp/agents/gametype_mugger.gsc
Normal file
80
IW/PC/ALL/scripts/mp/agents/gametype_mugger.gsc
Normal file
@ -0,0 +1,80 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\gametype_mugger.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 4
|
||||
* Decompile Time: 229 ms
|
||||
* Timestamp: 10/27/2023 12:11:37 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
main()
|
||||
{
|
||||
func_F8F4();
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
func_F8F4()
|
||||
{
|
||||
level.agent_funcs["squadmate"]["gametype_update"] = ::func_18FD;
|
||||
level.agent_funcs["player"]["think"] = ::func_18F7;
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
func_18F7()
|
||||
{
|
||||
thread scripts\mp\bots\gametype_mugger::func_2E26();
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
func_18FD()
|
||||
{
|
||||
if(!isdefined(self.var_11420))
|
||||
{
|
||||
self.var_11420 = [];
|
||||
}
|
||||
|
||||
if(!isdefined(self.var_BF68))
|
||||
{
|
||||
self.var_BF68 = gettime() + 500;
|
||||
}
|
||||
|
||||
if(gettime() > self.var_BF68)
|
||||
{
|
||||
self.var_BF68 = gettime() + 500;
|
||||
var_00 = 0.78;
|
||||
if(isbot(self.var_222))
|
||||
{
|
||||
var_00 = self botgetfovdot();
|
||||
}
|
||||
|
||||
var_01 = self.var_222 getnearestnode();
|
||||
if(isdefined(var_01))
|
||||
{
|
||||
var_02 = self.var_222 scripts\mp\bots\gametype_mugger::func_2D7D(var_01,var_00);
|
||||
self.var_11420 = scripts\mp\bots\gametype_conf::func_2D38(var_02,self.var_11420);
|
||||
}
|
||||
}
|
||||
|
||||
self.var_11420 = scripts\mp\bots\gametype_conf::func_2E65(self.var_11420);
|
||||
var_03 = scripts\mp\bots\gametype_conf::func_2D74(self.var_11420,0);
|
||||
if(isdefined(var_03))
|
||||
{
|
||||
if(!isdefined(self.var_113DD) || distancesquared(var_03.var_4B2C,self.var_113DD.var_4B2C) > 1)
|
||||
{
|
||||
self.var_113DD = var_03;
|
||||
scripts\mp\bots\_bots_strategy::func_2D4E();
|
||||
self botsetscriptgoal(self.var_113DD.var_4B2C,0,"objective",undefined,level.var_2EA7);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
else if(isdefined(self.var_113DD))
|
||||
{
|
||||
self botclearscriptgoal();
|
||||
self.var_113DD = undefined;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
28
IW/PC/ALL/scripts/mp/agents/gametype_sd.gsc
Normal file
28
IW/PC/ALL/scripts/mp/agents/gametype_sd.gsc
Normal file
@ -0,0 +1,28 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\gametype_sd.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 3
|
||||
* Decompile Time: 185 ms
|
||||
* Timestamp: 10/27/2023 12:11:38 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
main()
|
||||
{
|
||||
func_F8F4();
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
func_F8F4()
|
||||
{
|
||||
level.agent_funcs["player"]["think"] = ::func_18F8;
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
func_18F8()
|
||||
{
|
||||
scripts\common\utility::func_1C6E(1);
|
||||
thread scripts\mp\bots\gametype_sd::func_2E6E();
|
||||
}
|
14
IW/PC/ALL/scripts/mp/agents/gametype_siege.gsc
Normal file
14
IW/PC/ALL/scripts/mp/agents/gametype_siege.gsc
Normal file
@ -0,0 +1,14 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\gametype_siege.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 1
|
||||
* Decompile Time: 96 ms
|
||||
* Timestamp: 10/27/2023 12:11:38 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
main()
|
||||
{
|
||||
}
|
14
IW/PC/ALL/scripts/mp/agents/gametype_sotf.gsc
Normal file
14
IW/PC/ALL/scripts/mp/agents/gametype_sotf.gsc
Normal file
@ -0,0 +1,14 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\gametype_sotf.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 1
|
||||
* Decompile Time: 91 ms
|
||||
* Timestamp: 10/27/2023 12:11:38 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
main()
|
||||
{
|
||||
}
|
14
IW/PC/ALL/scripts/mp/agents/gametype_sotf_ffa.gsc
Normal file
14
IW/PC/ALL/scripts/mp/agents/gametype_sotf_ffa.gsc
Normal file
@ -0,0 +1,14 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\gametype_sotf_ffa.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 1
|
||||
* Decompile Time: 93 ms
|
||||
* Timestamp: 10/27/2023 12:11:39 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
main()
|
||||
{
|
||||
}
|
14
IW/PC/ALL/scripts/mp/agents/gametype_sr.gsc
Normal file
14
IW/PC/ALL/scripts/mp/agents/gametype_sr.gsc
Normal file
@ -0,0 +1,14 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\gametype_sr.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 1
|
||||
* Decompile Time: 93 ms
|
||||
* Timestamp: 10/27/2023 12:11:39 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
main()
|
||||
{
|
||||
}
|
14
IW/PC/ALL/scripts/mp/agents/gametype_tdef.gsc
Normal file
14
IW/PC/ALL/scripts/mp/agents/gametype_tdef.gsc
Normal file
@ -0,0 +1,14 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\gametype_tdef.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 1
|
||||
* Decompile Time: 113 ms
|
||||
* Timestamp: 10/27/2023 12:11:39 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
main()
|
||||
{
|
||||
}
|
14
IW/PC/ALL/scripts/mp/agents/gametype_war.gsc
Normal file
14
IW/PC/ALL/scripts/mp/agents/gametype_war.gsc
Normal file
@ -0,0 +1,14 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\gametype_war.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 1
|
||||
* Decompile Time: 126 ms
|
||||
* Timestamp: 10/27/2023 12:11:40 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
main()
|
||||
{
|
||||
}
|
316
IW/PC/ALL/scripts/mp/agents/karatemaster/karatemaster_agent.gsc
Normal file
316
IW/PC/ALL/scripts/mp/agents/karatemaster/karatemaster_agent.gsc
Normal file
@ -0,0 +1,316 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\karatemaster\karatemaster_agent.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 14
|
||||
* Decompile Time: 809 ms
|
||||
* Timestamp: 10/27/2023 12:11:16 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
registerscriptedagent()
|
||||
{
|
||||
lib_0A02::init();
|
||||
behaviortree\karatemaster::func_DEE8();
|
||||
scripts\asm\karatemaster\mp\states::func_2371();
|
||||
thread func_FAB0();
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
func_FAB0()
|
||||
{
|
||||
level endon("game_ended");
|
||||
if(!isdefined(level.agent_definition))
|
||||
{
|
||||
level waittill("scripted_agents_initialized");
|
||||
}
|
||||
|
||||
level.agent_definition["karatemaster"]["setup_func"] = ::setupagent;
|
||||
level.agent_definition["karatemaster"]["setup_model_func"] = ::func_FACE;
|
||||
level.agent_funcs["karatemaster"]["gametype_on_damage_finished"] = ::lib_0CBC::func_C5CE;
|
||||
level.agent_funcs["karatemaster"]["gametype_on_killed"] = ::lib_0CBC::func_C5D2;
|
||||
level.agent_funcs["karatemaster"]["on_damaged"] = ::func_C4E0;
|
||||
level.agent_funcs["karatemaster"]["on_damaged_finished"] = ::ondamagefinished;
|
||||
level.agent_funcs["karatemaster"]["on_killed"] = level.var_C4BE;
|
||||
level.var_1094E["karatemaster"] = ::should_spawn_karatemaster;
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
func_FACE(param_00)
|
||||
{
|
||||
if(isdefined(level.karate_zombie_model_list))
|
||||
{
|
||||
var_01 = scripts\common\utility::random(level.karate_zombie_model_list);
|
||||
}
|
||||
else
|
||||
{
|
||||
var_01 = "karatemaster_male_3_black";
|
||||
}
|
||||
|
||||
self setmodel(var_01);
|
||||
thread scripts\mp\agents\zombie\zmb_zombie_agent::func_50EF();
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
setupzombiegametypevars()
|
||||
{
|
||||
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.attackent = undefined;
|
||||
self.var_1B03 = "idle";
|
||||
self.var_1F5 = "walk";
|
||||
self.sharpturnnotifydist = 100;
|
||||
self.var_257 = 15;
|
||||
self.height = 40;
|
||||
self.var_252B = 26 + self.var_257;
|
||||
self.var_B640 = "normal";
|
||||
self.var_B641 = 50;
|
||||
self.var_2539 = 54;
|
||||
self.var_253A = -64;
|
||||
self.var_4D45 = 2250000;
|
||||
self.var_181 = 1;
|
||||
self.var_86BD = self getentitynumber();
|
||||
self.var_BCE4 = 1;
|
||||
self.var_C081 = 1;
|
||||
self.var_126E8 = 1;
|
||||
self.var_772A = 1;
|
||||
self.var_2AB2 = 0;
|
||||
self.var_2AB8 = 1;
|
||||
self.var_118FC = 0;
|
||||
self.var_2F = 1;
|
||||
self.var_B5F9 = 40;
|
||||
self.var_B62E = 70;
|
||||
self.var_B631 = 80;
|
||||
self.var_B62F = squared(self.var_B62E);
|
||||
self.var_503C = self.var_257 + 1;
|
||||
self.var_B607 = 0.5;
|
||||
self.var_565C = 0;
|
||||
self.var_9BAC = 0;
|
||||
self.var_54CB = 0;
|
||||
self.damaged_by_player = 0;
|
||||
self.var_9E0C = undefined;
|
||||
self.flung = undefined;
|
||||
self.var_B0FC = 1;
|
||||
self.full_gib = 0;
|
||||
self.var_12E = undefined;
|
||||
self.var_E821 = undefined;
|
||||
self.var_A8A2 = [];
|
||||
self.var_8C12 = 0;
|
||||
self.hasplayedvignetteanim = undefined;
|
||||
self.var_9BA7 = undefined;
|
||||
self.var_179 = 200;
|
||||
self.deathmethod = undefined;
|
||||
self.var_10A57 = undefined;
|
||||
self.var_828A = undefined;
|
||||
self.var_CE65 = undefined;
|
||||
self.var_29D2 = 1;
|
||||
self.vignette_nocorpse = undefined;
|
||||
self.death_anim_no_ragdoll = undefined;
|
||||
self.dont_cleanup = 1;
|
||||
self method_84E6(30);
|
||||
if(getdvarint("scr_zombie_left_foot_sharp_turn_only",0) == 1)
|
||||
{
|
||||
self.var_AB3F = 1;
|
||||
}
|
||||
|
||||
setmovemode("run");
|
||||
}
|
||||
|
||||
//Function Number: 5
|
||||
setupagent()
|
||||
{
|
||||
thread scripts\mp\agents\zombie\zmb_zombie_agent::func_12EE6();
|
||||
setupzombiegametypevars();
|
||||
self.karatemaster = 1;
|
||||
self.aj_karatemaster = 0;
|
||||
self.height = self.var_18F4;
|
||||
self.var_257 = self.var_18F9;
|
||||
self.var_B62D = 70;
|
||||
self.var_B62E = 70;
|
||||
self.var_B631 = 80;
|
||||
self.var_B62F = squared(self.var_B62E);
|
||||
self.var_503C = self.var_257 + 1;
|
||||
self.var_B607 = 0.5;
|
||||
self.var_B601 = 45;
|
||||
self.var_504E = 55;
|
||||
self.var_129AF = 55;
|
||||
self.var_368 = -60;
|
||||
self.var_100 = 60;
|
||||
self.ground_pound_damage = 50;
|
||||
self.footstepdetectdist = 2500;
|
||||
self.footstepdetectdistwalk = 2500;
|
||||
self.footstepdetectdistsprint = 2500;
|
||||
self.allowpain = 0;
|
||||
self.dontmutilate = 1;
|
||||
scripts\mp\agents\karatemaster\karatemaster_tunedata::setuptunedata();
|
||||
}
|
||||
|
||||
//Function Number: 6
|
||||
getenemy()
|
||||
{
|
||||
return self.myenemy;
|
||||
}
|
||||
|
||||
//Function Number: 7
|
||||
setmovemode(param_00)
|
||||
{
|
||||
self.desiredmovemode = param_00;
|
||||
}
|
||||
|
||||
//Function Number: 8
|
||||
findgoodteleportcloserspot()
|
||||
{
|
||||
if(isdefined(self.var_233))
|
||||
{
|
||||
var_00 = self method_841E();
|
||||
var_01 = self method_845D(var_00 - scripts\mp\agents\karatemaster\karatemaster_tunedata::gettunedata().cteleportthisclosetoplayer);
|
||||
return var_01;
|
||||
}
|
||||
|
||||
return self.initialteleportpos;
|
||||
}
|
||||
|
||||
//Function Number: 9
|
||||
accumulatedamage(param_00,param_01)
|
||||
{
|
||||
var_02 = scripts\mp\agents\karatemaster\karatemaster_tunedata::gettunedata();
|
||||
if(!isdefined(self.damageaccumulator))
|
||||
{
|
||||
self.damageaccumulator = spawnstruct();
|
||||
self.damageaccumulator.accumulateddamage = 0;
|
||||
}
|
||||
else if(!isdefined(self.damageaccumulator.var_A96A) || gettime() > self.damageaccumulator.var_A96A + var_02.cdamageaccumulationcleartimems)
|
||||
{
|
||||
self.damageaccumulator.accumulateddamage = 0;
|
||||
self.damageaccumulator.var_A96A = 0;
|
||||
}
|
||||
|
||||
self.damageaccumulator.var_A96A = gettime();
|
||||
if(!isdefined(param_01))
|
||||
{
|
||||
param_01 = (1,1,1);
|
||||
}
|
||||
|
||||
self.damageaccumulator.lastdir = param_01;
|
||||
self.damageaccumulator.accumulateddamage = self.damageaccumulator.accumulateddamage + param_00;
|
||||
}
|
||||
|
||||
//Function Number: 10
|
||||
getdamageaccumulator()
|
||||
{
|
||||
if(!isdefined(self.damageaccumulator))
|
||||
{
|
||||
self.damageaccumulator = spawnstruct();
|
||||
self.damageaccumulator.accumulateddamage = 0;
|
||||
}
|
||||
|
||||
var_00 = scripts\mp\agents\karatemaster\karatemaster_tunedata::gettunedata();
|
||||
if(!isdefined(self.damageaccumulator.var_A96A) || gettime() > self.damageaccumulator.var_A96A + var_00.cdamageaccumulationcleartimems)
|
||||
{
|
||||
self.damageaccumulator.accumulateddamage = 0;
|
||||
self.damageaccumulator.var_A96A = 0;
|
||||
}
|
||||
|
||||
if(self.damageaccumulator.accumulateddamage == 0)
|
||||
{
|
||||
return undefined;
|
||||
}
|
||||
|
||||
return self.damageaccumulator;
|
||||
}
|
||||
|
||||
//Function Number: 11
|
||||
cleardamageaccumulator()
|
||||
{
|
||||
self.damageaccumulator.accumulateddamage = 0;
|
||||
self.damageaccumulator.var_A96A = 0;
|
||||
}
|
||||
|
||||
//Function Number: 12
|
||||
ondamagefinished(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)
|
||||
{
|
||||
accumulatedamage(param_02,param_07);
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::func_C5CE(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);
|
||||
}
|
||||
|
||||
//Function Number: 13
|
||||
func_C4E0(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(self.ishidden))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
[[ level.on_zombie_damaged_func ]](param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B);
|
||||
}
|
||||
|
||||
//Function Number: 14
|
||||
should_spawn_karatemaster()
|
||||
{
|
||||
if(scripts\common\utility::func_6E34("rk_fight_started") && scripts\common\utility::flag("rk_fight_started"))
|
||||
{
|
||||
return undefined;
|
||||
}
|
||||
|
||||
var_00 = 0;
|
||||
if(level.wave_num >= 20)
|
||||
{
|
||||
var_00 = min(level.wave_num - 19,10);
|
||||
}
|
||||
else if(level.wave_num < 10)
|
||||
{
|
||||
return undefined;
|
||||
}
|
||||
|
||||
var_01 = 5;
|
||||
if(getdvarint("scr_force_karatemaster_spawn",0) == 1)
|
||||
{
|
||||
var_01 = 0;
|
||||
var_00 = 100;
|
||||
}
|
||||
|
||||
if(getdvarint("scr_force_no_karatemaster_spawn",0) == 1)
|
||||
{
|
||||
var_01 = 500;
|
||||
var_00 = 0;
|
||||
}
|
||||
|
||||
if(level.wave_num > var_01)
|
||||
{
|
||||
if(randomint(100) < var_00)
|
||||
{
|
||||
return "karatemaster";
|
||||
}
|
||||
|
||||
return undefined;
|
||||
}
|
||||
|
||||
return undefined;
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\karatemaster\karatemaster_agent_dlc4.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 2
|
||||
* Decompile Time: 140 ms
|
||||
* Timestamp: 10/27/2023 12:11:17 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
registerscriptedagent()
|
||||
{
|
||||
lib_0A02::init();
|
||||
behaviortree\karatemaster::func_DEE8();
|
||||
scripts\asm\karatemaster_dlc4\mp\states::func_2371();
|
||||
thread func_FAB0();
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
func_FAB0()
|
||||
{
|
||||
scripts\mp\agents\karatemaster\karatemaster_agent::func_FAB0();
|
||||
}
|
@ -0,0 +1,82 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\karatemaster\karatemaster_tunedata.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 3
|
||||
* Decompile Time: 188 ms
|
||||
* Timestamp: 10/27/2023 12:11:17 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
setuptunedata()
|
||||
{
|
||||
if(!isdefined(level.agenttunedata))
|
||||
{
|
||||
level.agenttunedata = [];
|
||||
}
|
||||
|
||||
level.agenttunedata["karatemaster"] = spawnstruct();
|
||||
setupkaratemastertunedata(level.agenttunedata["karatemaster"]);
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
setupkaratemastertunedata(param_00)
|
||||
{
|
||||
param_00.cteleportthisclosetoplayer = 60;
|
||||
param_00.cmeleemaxstanddistsq = 4096;
|
||||
param_00.cmeleemaxzdiff = 60;
|
||||
param_00.cteleportmindist = 400;
|
||||
param_00.cteleportmintimebetween = 1000;
|
||||
param_00.cteleportmintimebetween_global = 1000;
|
||||
param_00.cwiggleroom = 30;
|
||||
param_00.cstandattackwiggleroom = 30;
|
||||
param_00.crethinkmovemeleetime = 3000;
|
||||
param_00.cpunchmeleedamage = 45;
|
||||
param_00.ckickmeleedamage = 55;
|
||||
param_00.cpunchandkickmeleeradiussq = 1600;
|
||||
param_00.cmaxmeleeflexscale = 5;
|
||||
param_00.ballowteleportinfrontofsprinter = 1;
|
||||
param_00.cfastteleportduetodamagechance = 100;
|
||||
param_00.cfastteleportdamagepct = 0.001;
|
||||
param_00.cdamageaccumulationcleartimems = 750;
|
||||
var_01 = spawnstruct();
|
||||
var_01.cfastteleportmindisttoenemytoteleport = 200;
|
||||
var_01.cfastteleportcloseindistpctmin = 0.7;
|
||||
var_01.cfastteleportcloseindistpctmax = 0.8;
|
||||
var_01.cfastteleportminangledelta = 40;
|
||||
var_01.cfastteleportmaxangledelta = 45;
|
||||
param_00.fastteleportparams = var_01;
|
||||
var_02 = spawnstruct();
|
||||
var_02.cfastteleportmindisttoenemytoteleport = 200;
|
||||
var_02.cfastteleportcloseindistpctmin = 0.4;
|
||||
var_02.cfastteleportcloseindistpctmax = 0.6;
|
||||
var_02.cfastteleportminangledelta = 40;
|
||||
var_02.cfastteleportmaxangledelta = 45;
|
||||
param_00.bunchedupteleportparams = var_02;
|
||||
param_00.cplayerfacingawayfrommedot = 0.258;
|
||||
param_00.cminenemydistforlongpathteleport = 250;
|
||||
param_00.cfastteleportduetolongpathmultiplier = 4;
|
||||
param_00.cminteleportwaittimeaftermelee = 500;
|
||||
var_03 = spawnstruct();
|
||||
var_03.csprinterteleportminangledelta = 5;
|
||||
var_03.csprinterteleportmaxangledelta = 15;
|
||||
var_03.csprinterteleportmindist = 500;
|
||||
var_03.csprinterteleportmaxdist = 700;
|
||||
param_00.sprinterteleportparams = var_03;
|
||||
var_04 = spawnstruct();
|
||||
var_04.csprinterteleportminangledelta = 5;
|
||||
var_04.csprinterteleportmaxangledelta = 15;
|
||||
var_04.csprinterteleportmindist = 300;
|
||||
var_04.csprinterteleportmaxdist = 500;
|
||||
param_00.runnerteleportparams = var_04;
|
||||
param_00.ccrowdedcount = 2;
|
||||
param_00.ccrowdedradiussq = 5625;
|
||||
param_00.cmaxteleportsnappeddistsq = 64;
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
gettunedata()
|
||||
{
|
||||
return level.agenttunedata["karatemaster"];
|
||||
}
|
113
IW/PC/ALL/scripts/mp/agents/lumberjack/lumberjack_agent.gsc
Normal file
113
IW/PC/ALL/scripts/mp/agents/lumberjack/lumberjack_agent.gsc
Normal file
@ -0,0 +1,113 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\lumberjack\lumberjack_agent.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 9
|
||||
* Decompile Time: 500 ms
|
||||
* Timestamp: 10/27/2023 12:11:18 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
registerscriptedagent()
|
||||
{
|
||||
lib_0A02::init();
|
||||
behaviortree\lumberjack::func_DEE8();
|
||||
scripts\asm\lumberjack\mp\states::func_2371();
|
||||
thread func_FAB0();
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
func_FAB0()
|
||||
{
|
||||
level endon("game_ended");
|
||||
if(!isdefined(level.agent_definition))
|
||||
{
|
||||
level waittill("scripted_agents_initialized");
|
||||
}
|
||||
|
||||
level.agent_definition["lumberjack"]["setup_func"] = ::setupagent;
|
||||
level.agent_definition["lumberjack"]["setup_model_func"] = ::func_FACE;
|
||||
level.agent_funcs["lumberjack"]["on_damaged"] = ::lib_0CBC::func_C5CD;
|
||||
level.agent_funcs["lumberjack"]["gametype_on_damage_finished"] = ::lib_0CBC::func_C5CE;
|
||||
level.agent_funcs["lumberjack"]["gametype_on_killed"] = ::lib_0CBC::func_C5D2;
|
||||
level.var_1094E["lumberjack"] = ::should_spawn_lumberjack;
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
setupagent()
|
||||
{
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::setupagent();
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
func_FACE(param_00)
|
||||
{
|
||||
self setmodel("zombie_lumberjack");
|
||||
thread delay_eye_glow();
|
||||
}
|
||||
|
||||
//Function Number: 5
|
||||
delay_eye_glow()
|
||||
{
|
||||
self endon("death");
|
||||
wait(0.5);
|
||||
self method_80BB(1,0.1);
|
||||
}
|
||||
|
||||
//Function Number: 6
|
||||
func_C5CE(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)
|
||||
{
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::func_C5CE(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);
|
||||
}
|
||||
|
||||
//Function Number: 7
|
||||
func_C5D2(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
|
||||
{
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::func_C5D2(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
|
||||
}
|
||||
|
||||
//Function Number: 8
|
||||
func_C4BD(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
|
||||
{
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::func_C4BD(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09);
|
||||
}
|
||||
|
||||
//Function Number: 9
|
||||
should_spawn_lumberjack()
|
||||
{
|
||||
var_00 = 0;
|
||||
if(level.wave_num >= 20)
|
||||
{
|
||||
var_00 = min(level.wave_num - 10,20);
|
||||
}
|
||||
else
|
||||
{
|
||||
var_00 = level.lumberjack_spawn_percent;
|
||||
}
|
||||
|
||||
var_01 = 5;
|
||||
if(getdvarint("scr_force_lumberjack_spawn",0) == 1)
|
||||
{
|
||||
var_01 = 0;
|
||||
var_00 = 100;
|
||||
}
|
||||
|
||||
if(getdvarint("scr_force_no_lumberjack_spawn",0) == 1)
|
||||
{
|
||||
var_01 = 500;
|
||||
var_00 = 0;
|
||||
}
|
||||
|
||||
if(level.wave_num > var_01)
|
||||
{
|
||||
if(randomint(100) < var_00)
|
||||
{
|
||||
return "lumberjack";
|
||||
}
|
||||
|
||||
return undefined;
|
||||
}
|
||||
|
||||
return undefined;
|
||||
}
|
212
IW/PC/ALL/scripts/mp/agents/pamgrier/pamgrier_agent.gsc
Normal file
212
IW/PC/ALL/scripts/mp/agents/pamgrier/pamgrier_agent.gsc
Normal file
@ -0,0 +1,212 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\pamgrier\pamgrier_agent.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 11
|
||||
* Decompile Time: 569 ms
|
||||
* Timestamp: 10/27/2023 12:11:19 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
registerscriptedagent()
|
||||
{
|
||||
lib_0A02::init();
|
||||
behaviortree\pamgrier::func_DEE8();
|
||||
scripts\asm\pamgrier\mp\states::func_2371();
|
||||
scripts\mp\agents\pamgrier\pamgrier_tunedata::setuptunedata();
|
||||
thread func_FAB0();
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
func_FAB0()
|
||||
{
|
||||
level endon("game_ended");
|
||||
if(!isdefined(level.agent_definition))
|
||||
{
|
||||
level waittill("scripted_agents_initialized");
|
||||
}
|
||||
|
||||
level.agent_definition["pamgrier"]["setup_func"] = ::setupagent;
|
||||
level.agent_definition["pamgrier"]["setup_model_func"] = ::func_FACE;
|
||||
level.agent_funcs["pamgrier"]["on_damaged_finished"] = ::ondamagefinished;
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
func_FACE(param_00)
|
||||
{
|
||||
self setmodel("cp_disco_female_boss_pam_grier");
|
||||
self attach("weapon_zmb_katana_wm_camo","tag_weapon_right");
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
setupzombiegametypevars()
|
||||
{
|
||||
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.attackent = undefined;
|
||||
self.var_1B03 = "idle";
|
||||
self.var_1F5 = "walk";
|
||||
self.sharpturnnotifydist = 100;
|
||||
self.var_257 = 15;
|
||||
self.height = 40;
|
||||
self.var_252B = 26 + self.var_257;
|
||||
self.var_B640 = "normal";
|
||||
self.var_B641 = 50;
|
||||
self.var_2539 = 54;
|
||||
self.var_253A = -64;
|
||||
self.var_4D45 = 2250000;
|
||||
self.var_181 = 1;
|
||||
self.var_86BD = self getentitynumber();
|
||||
self.var_BCE4 = 1;
|
||||
self.var_C081 = 1;
|
||||
self.var_126E8 = 1;
|
||||
self.var_772A = 1;
|
||||
self.var_2AB2 = 0;
|
||||
self.var_2AB8 = 1;
|
||||
self.var_118FC = 0;
|
||||
self.var_2F = 1;
|
||||
self.var_B5F9 = 40;
|
||||
self.var_B62E = 70;
|
||||
self.var_B631 = 80;
|
||||
self.var_B62F = squared(self.var_B62E);
|
||||
self.var_503C = self.var_257 + 1;
|
||||
self.var_B607 = 0.5;
|
||||
self.var_565C = 0;
|
||||
self.var_9BAC = 0;
|
||||
self.var_54CB = 0;
|
||||
self.damaged_by_player = 0;
|
||||
self.var_9E0C = undefined;
|
||||
self.flung = undefined;
|
||||
self.var_B0FC = 1;
|
||||
self.full_gib = 0;
|
||||
self.var_12E = undefined;
|
||||
self.var_E821 = undefined;
|
||||
self.var_A8A2 = [];
|
||||
self.var_8C12 = 0;
|
||||
self.hasplayedvignetteanim = undefined;
|
||||
self.var_9BA7 = undefined;
|
||||
self.var_179 = 200;
|
||||
self.deathmethod = undefined;
|
||||
self.var_10A57 = undefined;
|
||||
self.var_828A = undefined;
|
||||
self.var_CE65 = undefined;
|
||||
self.var_29D2 = 1;
|
||||
self.vignette_nocorpse = undefined;
|
||||
self.death_anim_no_ragdoll = undefined;
|
||||
self.dont_cleanup = 1;
|
||||
if(getdvarint("scr_zombie_left_foot_sharp_turn_only",0) == 1)
|
||||
{
|
||||
self.var_AB3F = 1;
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 5
|
||||
setupagent()
|
||||
{
|
||||
setupzombiegametypevars();
|
||||
self.height = self.var_18F4;
|
||||
self.var_257 = self.var_18F9;
|
||||
self.var_9341 = 1;
|
||||
self.var_B62D = 70;
|
||||
self.var_B62E = 70;
|
||||
self.var_B631 = 80;
|
||||
self.var_B62F = squared(self.var_B62E);
|
||||
self.var_503C = self.var_257 + 1;
|
||||
self.var_B607 = 0.5;
|
||||
self.var_B601 = 9999;
|
||||
self.var_504E = 55;
|
||||
self.var_129AF = 55;
|
||||
self.var_368 = -60;
|
||||
self.var_100 = 60;
|
||||
self.ground_pound_damage = 50;
|
||||
self.footstepdetectdist = 2500;
|
||||
self.footstepdetectdistwalk = 2500;
|
||||
self.footstepdetectdistsprint = 2500;
|
||||
self.team = "allies";
|
||||
self.var_180 = 1;
|
||||
self.ignoreme = 1;
|
||||
self.bchillin = 0;
|
||||
self.chillinpos = self.origin;
|
||||
self.chillinangles = self.angles;
|
||||
level.the_hoff_revive = 1;
|
||||
thread pamcleanup();
|
||||
}
|
||||
|
||||
//Function Number: 6
|
||||
pamcleanup()
|
||||
{
|
||||
self waittill("death");
|
||||
level.the_hoff_revive = undefined;
|
||||
}
|
||||
|
||||
//Function Number: 7
|
||||
getenemy()
|
||||
{
|
||||
return self.pamenemy;
|
||||
}
|
||||
|
||||
//Function Number: 8
|
||||
lookatenemy()
|
||||
{
|
||||
var_00 = getenemy();
|
||||
if(isdefined(var_00))
|
||||
{
|
||||
var_01 = var_00.origin - self.origin;
|
||||
var_02 = vectortoangles(var_01);
|
||||
self method_8289("face angle abs",(0,var_02[1],0));
|
||||
return;
|
||||
}
|
||||
|
||||
self method_8289("face angle abs",self.angles);
|
||||
}
|
||||
|
||||
//Function Number: 9
|
||||
setpassive()
|
||||
{
|
||||
if(scripts\common\utility::istrue(self.bpassive))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
self.bneedschilltransition = 1;
|
||||
self.bpassive = 1;
|
||||
}
|
||||
|
||||
//Function Number: 10
|
||||
clearpassive()
|
||||
{
|
||||
self.bneedschilltransition = undefined;
|
||||
self.bpassive = undefined;
|
||||
}
|
||||
|
||||
//Function Number: 11
|
||||
ondamagefinished(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)
|
||||
{
|
||||
}
|
64
IW/PC/ALL/scripts/mp/agents/pamgrier/pamgrier_tunedata.gsc
Normal file
64
IW/PC/ALL/scripts/mp/agents/pamgrier/pamgrier_tunedata.gsc
Normal file
@ -0,0 +1,64 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\pamgrier\pamgrier_tunedata.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 3
|
||||
* Decompile Time: 191 ms
|
||||
* Timestamp: 10/27/2023 12:11:19 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
setuptunedata()
|
||||
{
|
||||
if(!isdefined(level.agenttunedata))
|
||||
{
|
||||
level.agenttunedata = [];
|
||||
}
|
||||
|
||||
level.agenttunedata["pamgrier"] = spawnstruct();
|
||||
setuppamgriertunedata(level.agenttunedata["pamgrier"]);
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
setuppamgriertunedata(param_00)
|
||||
{
|
||||
param_00.min_time_between_attacks = 1000;
|
||||
param_00.max_time_between_attacks = 2000;
|
||||
param_00.min_chillin_time = 15000;
|
||||
param_00.max_chillin_time = 25000;
|
||||
param_00.max_non_chillin_time = 10000;
|
||||
param_00.chill_time_before_going_passive = 8;
|
||||
param_00.min_moving_pain_dist = 128;
|
||||
param_00.target_agent_types = [];
|
||||
param_00.target_agent_types[0] = "karatemaster";
|
||||
param_00.target_agent_types[1] = "generic_zombie";
|
||||
param_00.min_target_path_dist_to_goal = 100;
|
||||
param_00.teleport_behind_target_dist = 24;
|
||||
param_00.teleport_attack_dist_to_target = 50;
|
||||
param_00.telefrag_dist_sq = 1600;
|
||||
param_00.navmesh_correction_dist_sq = 16;
|
||||
param_00.player_too_close_teleport_dist_sq = 1600;
|
||||
param_00.max_teleports_per_chill = 3;
|
||||
param_00.melee_attack_range_sq = 30625;
|
||||
param_00.revive_right_offset = 32;
|
||||
param_00.revive_forward_offset = 60;
|
||||
param_00.max_revive_snapp_2d_dist_sq = 64;
|
||||
param_00.max_revive_snap_z_dist = 32;
|
||||
param_00.revive_wait_time = 2;
|
||||
param_00.min_time_between_revivals = 5000;
|
||||
param_00.min_time_between_revivals_solo = -5536;
|
||||
param_00.max_dist_to_revive_player_sq = 10000;
|
||||
param_00.max_time_to_attack_targets_when_player_needs_revive_ms = 4000;
|
||||
param_00.min_wait_time = 500;
|
||||
param_00.max_wait_time = 1000;
|
||||
param_00.min_wait_time_before_teleport = 1000;
|
||||
param_00.min_wait_for_twitch_time = 2;
|
||||
param_00.max_wait_for_twitch_time = 4.5;
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
gettunedata()
|
||||
{
|
||||
return level.agenttunedata["pamgrier"];
|
||||
}
|
402
IW/PC/ALL/scripts/mp/agents/ratking/ratking_agent.gsc
Normal file
402
IW/PC/ALL/scripts/mp/agents/ratking/ratking_agent.gsc
Normal file
@ -0,0 +1,402 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\ratking\ratking_agent.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 22
|
||||
* Decompile Time: 1147 ms
|
||||
* Timestamp: 10/27/2023 12:11:21 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
registerscriptedagent()
|
||||
{
|
||||
lib_0A02::init();
|
||||
behaviortree\ratking::func_DEE8();
|
||||
scripts\asm\ratking\mp\states::func_2371();
|
||||
scripts\mp\agents\ratking\ratking_tunedata::setuptunedata();
|
||||
thread func_FAB0();
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
func_FAB0()
|
||||
{
|
||||
level endon("game_ended");
|
||||
if(!isdefined(level.agent_definition))
|
||||
{
|
||||
level waittill("scripted_agents_initialized");
|
||||
}
|
||||
|
||||
level.agent_definition["ratking"]["setup_func"] = ::setupagent;
|
||||
level.agent_definition["ratking"]["setup_model_func"] = ::func_FACE;
|
||||
level.agent_funcs["ratking"]["on_damaged_finished"] = ::onratkingdamagefinished;
|
||||
level.agent_funcs["ratking"]["on_killed"] = ::onratkingkilled;
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
func_FACE(param_00)
|
||||
{
|
||||
self setmodel("zmb_rat_king");
|
||||
thread delaygiveequipment();
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
delaygiveequipment()
|
||||
{
|
||||
level endon("game_ended");
|
||||
self endon("fake_death");
|
||||
wait(0.1);
|
||||
self setscriptablepartstate("staff","staff_activate");
|
||||
self setscriptablepartstate("shield","shield_activate");
|
||||
}
|
||||
|
||||
//Function Number: 5
|
||||
setupzombiegametypevars()
|
||||
{
|
||||
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.attackent = undefined;
|
||||
self.var_1B03 = "idle";
|
||||
self.var_1F5 = "walk";
|
||||
self.sharpturnnotifydist = 100;
|
||||
self.var_257 = 15;
|
||||
self.height = 40;
|
||||
self.var_252B = 26 + self.var_257;
|
||||
self.var_B640 = "normal";
|
||||
self.var_B641 = 50;
|
||||
self.var_2539 = 54;
|
||||
self.var_253A = -64;
|
||||
self.var_4D45 = 2250000;
|
||||
self.var_181 = 1;
|
||||
self.var_86BD = self getentitynumber();
|
||||
self.var_BCE4 = 1;
|
||||
self.var_C081 = 1;
|
||||
self.var_126E8 = 1;
|
||||
self.var_772A = 1;
|
||||
self.var_2AB2 = 0;
|
||||
self.var_2AB8 = 1;
|
||||
self.var_118FC = 0;
|
||||
self.var_2F = 1;
|
||||
self.var_B5F9 = 40;
|
||||
self.var_B62E = 75;
|
||||
self.var_B631 = 120;
|
||||
self.var_B62F = squared(self.var_B62E);
|
||||
self.var_503C = self.var_257 + 1;
|
||||
self.var_B607 = 0.5;
|
||||
self.var_565C = 0;
|
||||
self.var_9BAC = 0;
|
||||
self.var_54CB = 0;
|
||||
self.damaged_by_player = 0;
|
||||
self.var_9E0C = undefined;
|
||||
self.flung = undefined;
|
||||
self.var_B0FC = 1;
|
||||
self.full_gib = 0;
|
||||
self.var_12E = undefined;
|
||||
self.var_E821 = undefined;
|
||||
self.var_A8A2 = [];
|
||||
self.var_8C12 = 0;
|
||||
self.hasplayedvignetteanim = undefined;
|
||||
self.var_9BA7 = undefined;
|
||||
self.var_179 = 200;
|
||||
self.deathmethod = undefined;
|
||||
self.var_10A57 = undefined;
|
||||
self.var_828A = undefined;
|
||||
self.var_CE65 = undefined;
|
||||
self.var_29D2 = 1;
|
||||
self.vignette_nocorpse = undefined;
|
||||
self.death_anim_no_ragdoll = undefined;
|
||||
self.dont_cleanup = 1;
|
||||
self.hasshield = 1;
|
||||
self.hasstaff = 1;
|
||||
self.next_block_fx_time = 0;
|
||||
self.next_pain_time = 0;
|
||||
self.next_forced_teleport_time = 0;
|
||||
self.fake_death = undefined;
|
||||
if(getdvarint("scr_zombie_left_foot_sharp_turn_only",0) == 1)
|
||||
{
|
||||
self.var_AB3F = 1;
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 6
|
||||
setupagent()
|
||||
{
|
||||
setupzombiegametypevars();
|
||||
self.height = self.var_18F4;
|
||||
self.var_257 = self.var_18F9;
|
||||
self.var_9341 = 1;
|
||||
self.var_B62D = 75;
|
||||
self.var_B62E = 75;
|
||||
self.var_B631 = 120;
|
||||
self.var_B62F = squared(self.var_B62E);
|
||||
self.var_503C = self.var_257 + 1;
|
||||
self.var_B607 = 0.5;
|
||||
self.var_B601 = 67;
|
||||
self.fake_death = undefined;
|
||||
self.meleeattackchance["melee_attack"] = 70;
|
||||
self.meleeattackchance["staff_stomp"] = 30;
|
||||
self.var_504E = 55;
|
||||
self.var_129AF = 55;
|
||||
self.var_368 = -60;
|
||||
self.var_100 = 60;
|
||||
self.var_166 = "slasher_grenade_zm";
|
||||
self.var_162 = 999;
|
||||
self.ground_pound_damage = 50;
|
||||
self.footstepdetectdist = 2500;
|
||||
self.footstepdetectdistwalk = 2500;
|
||||
self.footstepdetectdistsprint = 2500;
|
||||
self.var_71D0 = ::shouldratkingplaypainanim;
|
||||
thread listen_for_fake_death();
|
||||
}
|
||||
|
||||
//Function Number: 7
|
||||
accumulatedamage(param_00,param_01)
|
||||
{
|
||||
if(!isdefined(self.damageaccumulator))
|
||||
{
|
||||
self.damageaccumulator = spawnstruct();
|
||||
self.damageaccumulator.accumulateddamage = 0;
|
||||
}
|
||||
else if(!isdefined(self.damageaccumulator.var_A96A) || gettime() > self.damageaccumulator.var_A96A + 1000)
|
||||
{
|
||||
self.damageaccumulator.accumulateddamage = 0;
|
||||
self.damageaccumulator.var_A96A = 0;
|
||||
}
|
||||
|
||||
self.damageaccumulator.var_A96A = gettime();
|
||||
if(!isdefined(param_01))
|
||||
{
|
||||
param_01 = (1,1,1);
|
||||
}
|
||||
|
||||
self.damageaccumulator.lastdir = param_01;
|
||||
if(isdefined(self.fake_damage))
|
||||
{
|
||||
self.damageaccumulator.accumulateddamage = self.damageaccumulator.accumulateddamage + self.fake_damage;
|
||||
self.fake_damage = undefined;
|
||||
return;
|
||||
}
|
||||
|
||||
self.damageaccumulator.accumulateddamage = self.damageaccumulator.accumulateddamage + param_00;
|
||||
}
|
||||
|
||||
//Function Number: 8
|
||||
isinravemode()
|
||||
{
|
||||
if(self method_85B8())
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
//Function Number: 9
|
||||
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)
|
||||
{
|
||||
accumulatedamage(param_02,param_07);
|
||||
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: 10
|
||||
ratking_on_damage_finished(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 = self.health;
|
||||
if(isdefined(param_07))
|
||||
{
|
||||
var_0E = vectortoyaw(param_07);
|
||||
var_0F = self.angles[1];
|
||||
self.var_E3 = angleclamp180(var_0E - var_0F);
|
||||
}
|
||||
else
|
||||
{
|
||||
self.var_E3 = 0;
|
||||
}
|
||||
|
||||
self.var_DD = param_08;
|
||||
self.var_DE = param_04;
|
||||
self.var_4D3F = param_01;
|
||||
self.var_DC = param_07;
|
||||
self.var_E1 = param_02;
|
||||
self.var_E2 = param_05;
|
||||
self.var_4D62 = param_06;
|
||||
if(param_02 >= self.health)
|
||||
{
|
||||
param_02 = 0;
|
||||
level.rat_king_death_pos = self.origin;
|
||||
if(scripts\common\utility::func_2286(level.spawned_enemies,self))
|
||||
{
|
||||
level.spawned_enemies = scripts\common\utility::func_22A9(level.spawned_enemies,self);
|
||||
}
|
||||
|
||||
self notify("fake_death");
|
||||
}
|
||||
|
||||
self method_80E9(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,0,1);
|
||||
if(self.health > 0 && self.health < var_0D)
|
||||
{
|
||||
self notify("pain");
|
||||
}
|
||||
|
||||
if(isalive(self) && isdefined(self.agent_type))
|
||||
{
|
||||
var_10 = level.agent_funcs[self.agent_type]["gametype_on_damage_finished"];
|
||||
if(isdefined(var_10))
|
||||
{
|
||||
[[ var_10 ]](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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 11
|
||||
onratkingkilled(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
|
||||
{
|
||||
self.nocorpse = 1;
|
||||
scripts\mp\_mp_agent::func_5006(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
|
||||
}
|
||||
|
||||
//Function Number: 12
|
||||
getratkinggrenadehandoffset()
|
||||
{
|
||||
return (12,12,100);
|
||||
}
|
||||
|
||||
//Function Number: 13
|
||||
getratkinghandposition()
|
||||
{
|
||||
return self method_81E7(self.origin + (12,12,100));
|
||||
}
|
||||
|
||||
//Function Number: 14
|
||||
shouldratkingplaypainanim()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
//Function Number: 15
|
||||
getstructpos()
|
||||
{
|
||||
if(isdefined(self.ratkingbouncetarget))
|
||||
{
|
||||
return self.ratkingbouncetarget;
|
||||
}
|
||||
|
||||
return undefined;
|
||||
}
|
||||
|
||||
//Function Number: 16
|
||||
getenemy()
|
||||
{
|
||||
if(isdefined(self.ratkingenemy) && isalive(self.ratkingenemy))
|
||||
{
|
||||
return self.ratkingenemy;
|
||||
}
|
||||
|
||||
return undefined;
|
||||
}
|
||||
|
||||
//Function Number: 17
|
||||
lookatspot()
|
||||
{
|
||||
var_00 = getstructpos();
|
||||
if(isdefined(var_00))
|
||||
{
|
||||
var_01 = var_00.origin - self.origin;
|
||||
var_02 = vectortoangles(var_01);
|
||||
self method_8289("face angle abs",(0,var_02[1],0));
|
||||
return;
|
||||
}
|
||||
|
||||
self method_8289("face angle abs",self.angles);
|
||||
}
|
||||
|
||||
//Function Number: 18
|
||||
lookatenemy()
|
||||
{
|
||||
var_00 = getenemy();
|
||||
if(isdefined(var_00))
|
||||
{
|
||||
var_01 = var_00.origin - self.origin;
|
||||
var_02 = vectortoangles(var_01);
|
||||
self method_8289("face angle abs",(0,var_02[1],0));
|
||||
return;
|
||||
}
|
||||
|
||||
self method_8289("face angle abs",self.angles);
|
||||
}
|
||||
|
||||
//Function Number: 19
|
||||
executefakedeath()
|
||||
{
|
||||
self method_85B7(1);
|
||||
wait(0.2);
|
||||
self suicide();
|
||||
wait(0.2);
|
||||
}
|
||||
|
||||
//Function Number: 20
|
||||
listen_for_fake_death()
|
||||
{
|
||||
self endon("death");
|
||||
for(;;)
|
||||
{
|
||||
self waittill("fake_death");
|
||||
if(!scripts\common\utility::istrue(level.ratking_fight))
|
||||
{
|
||||
self.fake_death = 1;
|
||||
scripts\cp\maps\cp_disco\rat_king_fight::forcerkteleport();
|
||||
continue;
|
||||
}
|
||||
|
||||
if(scripts\common\utility::istrue(level.ratking_fight))
|
||||
{
|
||||
self.var_180 = 1;
|
||||
self.var_EF64 = 1;
|
||||
foreach(var_01 in level.players)
|
||||
{
|
||||
var_01 thread scripts\cp\maps\cp_disco\rat_king_fight::outroblackscreen();
|
||||
}
|
||||
|
||||
wait(2);
|
||||
self suicide();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 21
|
||||
rkhasstaff()
|
||||
{
|
||||
return scripts\common\utility::istrue(self.hasstaff);
|
||||
}
|
||||
|
||||
//Function Number: 22
|
||||
rkhasshield()
|
||||
{
|
||||
return self.var_2303.shieldstate == "equipped";
|
||||
}
|
193
IW/PC/ALL/scripts/mp/agents/ratking/ratking_tunedata.gsc
Normal file
193
IW/PC/ALL/scripts/mp/agents/ratking/ratking_tunedata.gsc
Normal file
@ -0,0 +1,193 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\ratking\ratking_tunedata.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 4
|
||||
* Decompile Time: 239 ms
|
||||
* Timestamp: 10/27/2023 12:11:21 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
setuptunedata()
|
||||
{
|
||||
if(!isdefined(level.agenttunedata))
|
||||
{
|
||||
level.agenttunedata = [];
|
||||
}
|
||||
|
||||
level.soloratkingtuning = ::setupsoloratkingtunedata;
|
||||
level.ratkingtuning = ::setupratkingtunedata;
|
||||
level.agenttunedata["ratking"] = spawnstruct();
|
||||
setupsoloratkingtunedata(level.agenttunedata["ratking"]);
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
setupratkingtunedata(param_00)
|
||||
{
|
||||
param_00.slasher_spin_damage_range_sq = 5625;
|
||||
param_00.slasher_spin_damage_amt = 60;
|
||||
param_00.min_grenade_throw_interval = 10000;
|
||||
param_00.max_grenade_throw_interval = 30000;
|
||||
param_00.min_grenade_throw_dist_sq = -25536;
|
||||
param_00.max_grenade_throw_dist_sq = 1562500;
|
||||
param_00.min_dist_to_enemy_for_taunt_sq = 262144;
|
||||
param_00.min_taunt_interval = 15000;
|
||||
param_00.max_taunt_interval = 20000;
|
||||
param_00.taunt_chance = 75;
|
||||
param_00.min_summon_interval = 10000;
|
||||
param_00.max_summon_interval = 20000;
|
||||
param_00.summon_chance = 100;
|
||||
param_00.need_to_block_damage_threshold = 20;
|
||||
param_00.max_time_after_last_damage_to_block = 1000;
|
||||
param_00.block_chance = 100;
|
||||
param_00.min_block_time = 5000;
|
||||
param_00.max_block_time = 10000;
|
||||
param_00.quit_block_if_no_damage_time = 2000;
|
||||
param_00.min_block_interval = 10000;
|
||||
param_00.max_block_interval = 20000;
|
||||
param_00.staff_stomp_inner_radius_sq = 5625;
|
||||
param_00.staff_stomp_outer_radius_sq = 22500;
|
||||
param_00.staff_stomp_damage_radius = 175;
|
||||
param_00.staff_stomp_interval = 10000;
|
||||
param_00.staff_stomp_inner_interval = 3000;
|
||||
param_00.staff_stomp_max_damage = 200;
|
||||
param_00.staff_stomp_min_damage = 30;
|
||||
param_00.min_moving_pain_dist = 128;
|
||||
param_00.staff_projectile_min_dist_sq = -25536;
|
||||
param_00.staff_projectile_max_dist_sq = 262144;
|
||||
param_00.staff_projectile_interval_min = 10000;
|
||||
param_00.staff_projectile_interval_max = 20000;
|
||||
param_00.staff_projectile_z_delta = 60;
|
||||
param_00.staff_projectile_speed = 1000;
|
||||
param_00.staff_projectile_range = 1000;
|
||||
param_00.staff_projectile_damage = 85;
|
||||
param_00.staff_projectile_interval = 0.1;
|
||||
param_00.staff_shield_attack_min_dist_sq = 90000;
|
||||
param_00.staff_shield_attack_max_dist_sq = 6250000;
|
||||
param_00.staff_shield_attack_interval_min = 10000;
|
||||
param_00.staff_shield_attack_interval_max = 20000;
|
||||
param_00.min_clear_los_time_before_shield_attack = 500;
|
||||
param_00.min_path_dist_for_teleport = 500;
|
||||
param_00.no_los_wait_time_before_teleport = 500;
|
||||
param_00.min_time_between_teleports = 5000;
|
||||
param_00.min_time_between_traversal_teleports = 1500;
|
||||
param_00.min_teleport_dist_to_player = 300;
|
||||
param_00.max_teleport_dist_to_player = 700;
|
||||
param_00.min_travel_dist_for_teleport = 400;
|
||||
param_00.telefrag_dist_sq = 576;
|
||||
param_00.attempt_teleport_if_no_engagement_within_time = 2500;
|
||||
param_00.teleport_min_dist_to_enemy_to_teleport_sq = 250000;
|
||||
param_00.cfastteleportduetodamagechance = 100;
|
||||
param_00.cfastteleportdamagepct = 0.001;
|
||||
param_00.cdamageaccumulationcleartimems = 750;
|
||||
param_00.cfastteleportmindisttoenemytoteleport = 100;
|
||||
param_00.cfastteleportcloseindistpctmin = 0.7;
|
||||
param_00.cfastteleportcloseindistpctmax = 0.8;
|
||||
param_00.cfastteleportminangledelta = 85;
|
||||
param_00.cfastteleportmaxangledelta = 86;
|
||||
param_00.csprinterteleportminangledelta = 5;
|
||||
param_00.csprinterteleportmaxangledelta = 15;
|
||||
param_00.csprinterteleportmindist = 400;
|
||||
param_00.csprinterteleportmaxdist = 500;
|
||||
param_00.summon_agent_type = "karatemaster";
|
||||
param_00.summon_min_spawn_num = 4;
|
||||
param_00.summon_max_spawn_num = 6;
|
||||
param_00.summon_min_radius = 100;
|
||||
param_00.summon_max_radius = 600;
|
||||
param_00.summon_spawn_min_dist_between_agents_sq = 2500;
|
||||
param_00.max_num_agents_to_allow_summon = 1;
|
||||
param_00.min_time_between_summon_rounds = 5000;
|
||||
if(isdefined(level.rk_tuning_override))
|
||||
{
|
||||
[[ level.rk_tuning_override ]](param_00);
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
setupsoloratkingtunedata(param_00)
|
||||
{
|
||||
param_00.slasher_spin_damage_range_sq = 5625;
|
||||
param_00.slasher_spin_damage_amt = 60;
|
||||
param_00.min_grenade_throw_interval = 10000;
|
||||
param_00.max_grenade_throw_interval = 30000;
|
||||
param_00.min_grenade_throw_dist_sq = -25536;
|
||||
param_00.max_grenade_throw_dist_sq = 1562500;
|
||||
param_00.min_dist_to_enemy_for_taunt_sq = 262144;
|
||||
param_00.min_taunt_interval = 15000;
|
||||
param_00.max_taunt_interval = 20000;
|
||||
param_00.taunt_chance = 75;
|
||||
param_00.min_summon_interval = 8000;
|
||||
param_00.max_summon_interval = 15000;
|
||||
param_00.summon_chance = 100;
|
||||
param_00.need_to_block_damage_threshold = 20;
|
||||
param_00.max_time_after_last_damage_to_block = 1000;
|
||||
param_00.block_chance = 100;
|
||||
param_00.min_block_time = 2000;
|
||||
param_00.max_block_time = 5000;
|
||||
param_00.quit_block_if_no_damage_time = 2000;
|
||||
param_00.min_block_interval = 10000;
|
||||
param_00.max_block_interval = 20000;
|
||||
param_00.staff_stomp_inner_radius_sq = 2500;
|
||||
param_00.staff_stomp_outer_radius_sq = 22500;
|
||||
param_00.staff_stomp_damage_radius = 175;
|
||||
param_00.staff_stomp_interval = 10000;
|
||||
param_00.staff_stomp_inner_interval = 3000;
|
||||
param_00.staff_stomp_max_damage = 200;
|
||||
param_00.staff_stomp_min_damage = 30;
|
||||
param_00.min_moving_pain_dist = 128;
|
||||
param_00.staff_projectile_min_dist_sq = -25536;
|
||||
param_00.staff_projectile_max_dist_sq = 262144;
|
||||
param_00.staff_projectile_interval_min = 10000;
|
||||
param_00.staff_projectile_interval_max = 20000;
|
||||
param_00.staff_projectile_z_delta = 60;
|
||||
param_00.staff_projectile_speed = 1000;
|
||||
param_00.staff_projectile_range = 1000;
|
||||
param_00.staff_projectile_damage = 85;
|
||||
param_00.staff_projectile_interval = 0.1;
|
||||
param_00.staff_shield_attack_min_dist_sq = 90000;
|
||||
param_00.staff_shield_attack_max_dist_sq = 2250000;
|
||||
param_00.staff_shield_attack_interval_min = 3000;
|
||||
param_00.staff_shield_attack_interval_max = 5000;
|
||||
param_00.min_clear_los_time_before_shield_attack = 1000;
|
||||
param_00.min_path_dist_for_teleport = 400;
|
||||
param_00.no_los_wait_time_before_teleport = 500;
|
||||
param_00.min_time_between_teleports = 5000;
|
||||
param_00.min_time_between_traversal_teleports = 1500;
|
||||
param_00.min_teleport_dist_to_player = 300;
|
||||
param_00.max_teleport_dist_to_player = 700;
|
||||
param_00.min_travel_dist_for_teleport = 400;
|
||||
param_00.telefrag_dist_sq = 576;
|
||||
param_00.attempt_teleport_if_no_engagement_within_time = 4000;
|
||||
param_00.teleport_min_dist_to_enemy_to_teleport_sq = 250000;
|
||||
param_00.cfastteleportduetodamagechance = 100;
|
||||
param_00.cfastteleportdamagepct = 0.001;
|
||||
param_00.cdamageaccumulationcleartimems = 750;
|
||||
param_00.cfastteleportmindisttoenemytoteleport = 100;
|
||||
param_00.cfastteleportcloseindistpctmin = 0.7;
|
||||
param_00.cfastteleportcloseindistpctmax = 0.8;
|
||||
param_00.cfastteleportminangledelta = 85;
|
||||
param_00.cfastteleportmaxangledelta = 86;
|
||||
param_00.csprinterteleportminangledelta = 5;
|
||||
param_00.csprinterteleportmaxangledelta = 15;
|
||||
param_00.csprinterteleportmindist = 400;
|
||||
param_00.csprinterteleportmaxdist = 500;
|
||||
param_00.summon_agent_type = "karatemaster";
|
||||
param_00.summon_min_spawn_num = 4;
|
||||
param_00.summon_max_spawn_num = 6;
|
||||
param_00.summon_min_radius = 100;
|
||||
param_00.summon_max_radius = 600;
|
||||
param_00.summon_spawn_min_dist_between_agents_sq = 2500;
|
||||
param_00.max_num_agents_to_allow_summon = 0;
|
||||
param_00.min_time_between_summon_rounds = 3000;
|
||||
if(isdefined(level.rk_solo_tuning_override))
|
||||
{
|
||||
[[ level.rk_solo_tuning_override ]](param_00);
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
gettunedata()
|
||||
{
|
||||
return level.agenttunedata["ratking"];
|
||||
}
|
119
IW/PC/ALL/scripts/mp/agents/skater/skater_agent.gsc
Normal file
119
IW/PC/ALL/scripts/mp/agents/skater/skater_agent.gsc
Normal file
@ -0,0 +1,119 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\skater\skater_agent.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 7
|
||||
* Decompile Time: 412 ms
|
||||
* Timestamp: 10/27/2023 12:11:22 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
registerscriptedagent()
|
||||
{
|
||||
lib_0A02::init();
|
||||
behaviortree\zombie_dlc2::func_DEE8();
|
||||
scripts\asm\zombie_dlc2\mp\states::func_2371();
|
||||
func_AEB0();
|
||||
thread func_FAB0();
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
func_FAB0()
|
||||
{
|
||||
level endon("game_ended");
|
||||
if(!isdefined(level.agent_definition))
|
||||
{
|
||||
level waittill("scripted_agents_initialized");
|
||||
}
|
||||
|
||||
level.agent_funcs["skater"]["on_damaged"] = ::scripts\cp\maps\cp_disco\cp_disco_damage::cp_disco_onzombiedamaged;
|
||||
level.agent_funcs["skater"]["gametype_on_damage_finished"] = ::lib_0CBC::func_C5CE;
|
||||
level.agent_funcs["skater"]["gametype_on_killed"] = ::lib_0CBC::func_C5D2;
|
||||
level.var_BCCE["skater"] = ::lib_0CBC::func_E7FD;
|
||||
level.agent_definition["skater"]["setup_func"] = ::setupagent;
|
||||
level.agent_definition["skater"]["setup_model_func"] = ::func_FACE;
|
||||
level.agent_funcs["skater"]["on_damaged_finished"] = ::scripts\mp\agents\zombie\zmb_zombie_agent::func_C5CE;
|
||||
level.agent_funcs["skater"]["on_killed"] = ::scripts\mp\agents\zombie\zmb_zombie_agent::func_C5D2;
|
||||
if(!isdefined(level.var_8CBD))
|
||||
{
|
||||
level.var_8CBD = [];
|
||||
}
|
||||
|
||||
level.var_8CBD["skater"] = ::func_3725;
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
setupagent()
|
||||
{
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::setupagent();
|
||||
self.entered_playspace = 1;
|
||||
self.var_9CDD = 1;
|
||||
self.nocorpse = 1;
|
||||
self.allowpain = 0;
|
||||
if(isdefined(level.suicider_avoidance_radius))
|
||||
{
|
||||
self method_84E6(level.suicider_avoidance_radius);
|
||||
}
|
||||
|
||||
thread func_899C();
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
func_899C()
|
||||
{
|
||||
self endon("death");
|
||||
level waittill("game_ended");
|
||||
self method_841F();
|
||||
foreach(var_04, var_01 in self.var_164D)
|
||||
{
|
||||
var_02 = var_01.var_4BC0;
|
||||
var_03 = level.var_2303[var_04].var_10E2F[var_02];
|
||||
lib_0A1A::func_2388(var_04,var_02,var_03,var_03.var_116FB);
|
||||
lib_0A1A::func_238A(var_04,"idle",0.2,undefined,undefined,undefined);
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 5
|
||||
func_FACE(param_00)
|
||||
{
|
||||
self setmodel("roller_skater_female_white");
|
||||
thread scripts\mp\agents\zombie\zmb_zombie_agent::func_50EF();
|
||||
}
|
||||
|
||||
//Function Number: 6
|
||||
func_AEB0()
|
||||
{
|
||||
level._effect["suicide_zmb_death"] = loadfx("vfx/iw7/_requests/coop/vfx_zmb_blackhole_death");
|
||||
level._effect["suicide_zmb_explode"] = loadfx("vfx/iw7/levels/cp_disco/vfx_disco_rollerskate_exp.vfx");
|
||||
}
|
||||
|
||||
//Function Number: 7
|
||||
func_3725()
|
||||
{
|
||||
var_00 = 200;
|
||||
switch(level.var_1096B)
|
||||
{
|
||||
case 0:
|
||||
var_00 = 145;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
var_00 = 400;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
var_00 = 900;
|
||||
break;
|
||||
|
||||
case 3:
|
||||
var_00 = 900;
|
||||
break;
|
||||
|
||||
default:
|
||||
var_00 = 900;
|
||||
break;
|
||||
}
|
||||
|
||||
return var_00;
|
||||
}
|
451
IW/PC/ALL/scripts/mp/agents/slasher/slasher_agent.gsc
Normal file
451
IW/PC/ALL/scripts/mp/agents/slasher/slasher_agent.gsc
Normal file
@ -0,0 +1,451 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\slasher\slasher_agent.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 17
|
||||
* Decompile Time: 915 ms
|
||||
* Timestamp: 10/27/2023 12:11:23 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
registerscriptedagent()
|
||||
{
|
||||
lib_0A02::init();
|
||||
behaviortree\slasher::func_DEE8();
|
||||
scripts\asm\slasher\mp\states::func_2371();
|
||||
scripts\mp\agents\slasher\slasher_tunedata::setuptunedata();
|
||||
thread func_FAB0();
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
func_FAB0()
|
||||
{
|
||||
level endon("game_ended");
|
||||
if(!isdefined(level.agent_definition))
|
||||
{
|
||||
level waittill("scripted_agents_initialized");
|
||||
}
|
||||
|
||||
level.agent_definition["slasher"]["setup_func"] = ::setupagent;
|
||||
level.agent_definition["slasher"]["setup_model_func"] = ::func_FACE;
|
||||
level.agent_funcs["slasher"]["on_damaged_finished"] = ::onslasherdamagefinished;
|
||||
level.agent_funcs["slasher"]["on_killed"] = ::onslasherkilled;
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
func_FACE(param_00)
|
||||
{
|
||||
var_01 = getdvar("ui_mapname");
|
||||
if(var_01 == "cp_final")
|
||||
{
|
||||
self setmodel("body_final_slasher");
|
||||
}
|
||||
else
|
||||
{
|
||||
self setmodel("body_zmb_slasher");
|
||||
}
|
||||
|
||||
self attach("head_zmb_slasher");
|
||||
self attach("weapon_zmb_slasher_vm","tag_weapon_right");
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
setupzombiegametypevars()
|
||||
{
|
||||
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.attackent = undefined;
|
||||
self.var_9342 = 1;
|
||||
self.var_1B03 = "idle";
|
||||
self.var_1F5 = "walk";
|
||||
self.sharpturnnotifydist = 100;
|
||||
self.var_257 = 15;
|
||||
self.height = 40;
|
||||
self.var_252B = 26 + self.var_257;
|
||||
self.var_B640 = "normal";
|
||||
self.var_B641 = 50;
|
||||
self.var_2539 = 54;
|
||||
self.var_253A = -64;
|
||||
self.var_4D45 = 2250000;
|
||||
self.var_181 = 1;
|
||||
self.var_86BD = self getentitynumber();
|
||||
self.var_BCE4 = 1;
|
||||
self.var_C081 = 1;
|
||||
self.var_126E8 = 1;
|
||||
self.var_772A = 1;
|
||||
self.var_2AB2 = 0;
|
||||
self.var_2AB8 = 1;
|
||||
self.var_118FC = 0;
|
||||
self.var_2F = 1;
|
||||
self.var_B5F9 = 40;
|
||||
self.var_B62E = 70;
|
||||
self.var_B631 = 80;
|
||||
self.var_B62F = squared(self.var_B62E);
|
||||
self.var_503C = self.var_257 + 1;
|
||||
self.var_B607 = 0.5;
|
||||
self.var_565C = 0;
|
||||
self.var_9BAC = 0;
|
||||
self.var_54CB = 0;
|
||||
self.damaged_by_player = 0;
|
||||
self.var_9E0C = undefined;
|
||||
self.flung = undefined;
|
||||
self.var_B0FC = 1;
|
||||
self.full_gib = 0;
|
||||
self.var_12E = undefined;
|
||||
self.var_E821 = undefined;
|
||||
self.var_A8A2 = [];
|
||||
self.var_8C12 = 0;
|
||||
self.hasplayedvignetteanim = undefined;
|
||||
self.var_9BA7 = undefined;
|
||||
self.var_179 = 200;
|
||||
self.deathmethod = undefined;
|
||||
self.var_10A57 = undefined;
|
||||
self.var_828A = undefined;
|
||||
self.var_CE65 = undefined;
|
||||
self.var_29D2 = 1;
|
||||
self.vignette_nocorpse = undefined;
|
||||
self.death_anim_no_ragdoll = undefined;
|
||||
self.dont_cleanup = 1;
|
||||
if(getdvarint("scr_zombie_left_foot_sharp_turn_only",0) == 1)
|
||||
{
|
||||
self.var_AB3F = 1;
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 5
|
||||
setupagent()
|
||||
{
|
||||
setupzombiegametypevars();
|
||||
self.height = self.var_18F4;
|
||||
self.var_257 = self.var_18F9;
|
||||
self.var_9341 = 1;
|
||||
self.var_B62D = 70;
|
||||
self.var_B62E = 70;
|
||||
self.var_B631 = 80;
|
||||
self.var_B62F = squared(self.var_B62E);
|
||||
self.var_503C = self.var_257 + 1;
|
||||
self.var_B607 = 0.5;
|
||||
self.var_B601 = 45;
|
||||
self.meleeattackchance["melee_spin"] = 10;
|
||||
self.meleeattackchance["ground_pound"] = 30;
|
||||
self.meleeattackchance["swipe_attack"] = 100;
|
||||
self.var_504E = 55;
|
||||
self.var_129AF = 55;
|
||||
self.var_368 = -60;
|
||||
self.var_100 = 60;
|
||||
self.var_166 = "slasher_grenade_zm";
|
||||
self.var_162 = 999;
|
||||
self.ground_pound_damage = 50;
|
||||
self.footstepdetectdist = 2500;
|
||||
self.footstepdetectdistwalk = 2500;
|
||||
self.footstepdetectdistsprint = 2500;
|
||||
self.var_71D0 = ::shouldslasherplaypainanim;
|
||||
self.var_180 = 1;
|
||||
var_00 = getdvar("ui_mapname");
|
||||
if(var_00 != "cp_final")
|
||||
{
|
||||
self method_85B7(1);
|
||||
}
|
||||
|
||||
if(isdefined(level.slasher_level))
|
||||
{
|
||||
if(level.wave_num < 30 && level.wave_num > 19 && level.slasher_level < 3)
|
||||
{
|
||||
level.slasher_level = 2;
|
||||
}
|
||||
else if(level.wave_num > 29)
|
||||
{
|
||||
level.slasher_level = 3;
|
||||
}
|
||||
}
|
||||
|
||||
thread turn_on_saw_blade_after_time(5);
|
||||
thread listen_for_fake_death();
|
||||
}
|
||||
|
||||
//Function Number: 6
|
||||
turn_on_saw_blade_after_time(param_00)
|
||||
{
|
||||
self endon("death");
|
||||
wait(param_00);
|
||||
self setscriptablepartstate("slasher_saw","active");
|
||||
var_01 = getdvar("ui_mapname");
|
||||
if(var_01 == "cp_final")
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if(isdefined(level.slasher_level))
|
||||
{
|
||||
switch(level.slasher_level)
|
||||
{
|
||||
case 1:
|
||||
self setscriptablepartstate("mask","blue_mask");
|
||||
break;
|
||||
|
||||
case 2:
|
||||
self setscriptablepartstate("mask","yellow_mask");
|
||||
break;
|
||||
|
||||
case 3:
|
||||
self setscriptablepartstate("mask","green_mask");
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 7
|
||||
accumulatedamage(param_00,param_01)
|
||||
{
|
||||
if(!isdefined(self.damageaccumulator))
|
||||
{
|
||||
self.damageaccumulator = spawnstruct();
|
||||
self.damageaccumulator.accumulateddamage = 0;
|
||||
}
|
||||
else if(!isdefined(self.damageaccumulator.var_A96A) || gettime() > self.damageaccumulator.var_A96A + 1000)
|
||||
{
|
||||
self.damageaccumulator.accumulateddamage = 0;
|
||||
self.damageaccumulator.var_A96A = 0;
|
||||
}
|
||||
|
||||
self.damageaccumulator.var_A96A = gettime();
|
||||
if(!isdefined(param_01))
|
||||
{
|
||||
param_01 = (1,1,1);
|
||||
}
|
||||
|
||||
self.damageaccumulator.lastdir = param_01;
|
||||
self.damageaccumulator.accumulateddamage = self.damageaccumulator.accumulateddamage + param_00;
|
||||
}
|
||||
|
||||
//Function Number: 8
|
||||
isinravemode()
|
||||
{
|
||||
if(self method_85B8())
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
//Function Number: 9
|
||||
onslasherdamagefinished(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 = param_02;
|
||||
if(param_05 == "iw7_harpoon_zm")
|
||||
{
|
||||
param_02 = min(0.1 * self.maxhealth,2000);
|
||||
param_02 = int(param_02);
|
||||
}
|
||||
else if(issubstr(param_05,"harpoon1"))
|
||||
{
|
||||
param_02 = min(0.01 * self.maxhealth,100);
|
||||
param_02 = int(param_02);
|
||||
}
|
||||
else if(issubstr(param_05,"harpoon2"))
|
||||
{
|
||||
param_02 = min(0.1 * self.maxhealth,1500);
|
||||
param_02 = int(param_02);
|
||||
}
|
||||
else if(issubstr(param_05,"harpoon3"))
|
||||
{
|
||||
param_02 = min(0.1 * self.maxhealth,1500);
|
||||
param_02 = int(param_02);
|
||||
}
|
||||
else if(issubstr(param_05,"harpoon4"))
|
||||
{
|
||||
param_02 = min(0.01 * self.maxhealth,1000);
|
||||
param_02 = int(param_02);
|
||||
}
|
||||
|
||||
if(isdefined(param_05) && param_05 == "iw7_slasher_zm")
|
||||
{
|
||||
param_02 = param_02 * 0.1;
|
||||
param_02 = int(param_02);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(isinravemode() || scripts\common\utility::istrue(param_01.var_DCEB))
|
||||
{
|
||||
param_02 = 0;
|
||||
}
|
||||
|
||||
if(lib_0A1A::func_2354("block"))
|
||||
{
|
||||
param_02 = param_02 * 0.1;
|
||||
param_02 = int(param_02);
|
||||
}
|
||||
}
|
||||
|
||||
if(isdefined(level.players) && level.players.size > 1)
|
||||
{
|
||||
if(param_02 != 0)
|
||||
{
|
||||
var_0E = int(param_02 / level.players.size + 1);
|
||||
param_02 = int(max(var_0E,1));
|
||||
}
|
||||
}
|
||||
|
||||
if(param_02 > 0)
|
||||
{
|
||||
accumulatedamage(param_02,param_07);
|
||||
}
|
||||
|
||||
if(isdefined(self.nodamagescale))
|
||||
{
|
||||
param_02 = var_0D;
|
||||
}
|
||||
|
||||
slasher_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: 10
|
||||
slasher_on_damage_finished(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 = self.health;
|
||||
if(isdefined(param_07))
|
||||
{
|
||||
var_0E = vectortoyaw(param_07);
|
||||
var_0F = self.angles[1];
|
||||
self.var_E3 = angleclamp180(var_0E - var_0F);
|
||||
}
|
||||
else
|
||||
{
|
||||
self.var_E3 = 0;
|
||||
}
|
||||
|
||||
self.var_DD = param_08;
|
||||
self.var_DE = param_04;
|
||||
self.var_4D3F = param_01;
|
||||
self.var_DC = param_07;
|
||||
self.var_E1 = param_02;
|
||||
self.var_E2 = param_05;
|
||||
self.var_4D62 = param_06;
|
||||
if(param_02 >= self.health)
|
||||
{
|
||||
param_02 = 0;
|
||||
if(isdefined(param_05) && param_05 == "iw7_slasher_zm")
|
||||
{
|
||||
param_01 notify("slasher_killed_by_own_weapon",param_01,param_05);
|
||||
}
|
||||
|
||||
self notify("fake_death");
|
||||
}
|
||||
|
||||
self method_80E9(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,0,1);
|
||||
if(self.health > 0 && self.health < var_0D)
|
||||
{
|
||||
self notify("pain");
|
||||
}
|
||||
|
||||
if(isalive(self) && isdefined(self.agent_type))
|
||||
{
|
||||
var_10 = level.agent_funcs[self.agent_type]["gametype_on_damage_finished"];
|
||||
if(isdefined(var_10))
|
||||
{
|
||||
[[ var_10 ]](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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 11
|
||||
onslasherkilled(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
|
||||
{
|
||||
self detach("weapon_zmb_slasher_vm","tag_weapon_right");
|
||||
self.nocorpse = 1;
|
||||
scripts\mp\_mp_agent::func_5006(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
|
||||
}
|
||||
|
||||
//Function Number: 12
|
||||
getslashergrenadehandoffset()
|
||||
{
|
||||
return (12,12,100);
|
||||
}
|
||||
|
||||
//Function Number: 13
|
||||
getslasherhandposition()
|
||||
{
|
||||
return self method_81E7(self.origin + (12,12,100));
|
||||
}
|
||||
|
||||
//Function Number: 14
|
||||
shouldslasherplaypainanim()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
//Function Number: 15
|
||||
getenemy()
|
||||
{
|
||||
if(isdefined(self.slasherenemy))
|
||||
{
|
||||
return self.slasherenemy;
|
||||
}
|
||||
|
||||
return undefined;
|
||||
}
|
||||
|
||||
//Function Number: 16
|
||||
lookatslasherenemy()
|
||||
{
|
||||
var_00 = getenemy();
|
||||
if(isdefined(var_00))
|
||||
{
|
||||
var_01 = var_00.origin - self.origin;
|
||||
var_02 = vectortoangles(var_01);
|
||||
self method_8289("face angle abs",var_02);
|
||||
return;
|
||||
}
|
||||
|
||||
self method_8289("face angle abs",self.angles);
|
||||
}
|
||||
|
||||
//Function Number: 17
|
||||
listen_for_fake_death()
|
||||
{
|
||||
self endon("death");
|
||||
for(;;)
|
||||
{
|
||||
self waittill("fake_death");
|
||||
if(!scripts\common\utility::istrue(level.slasher_fight))
|
||||
{
|
||||
self.var_180 = 1;
|
||||
self setscriptablepartstate("teleport","hide");
|
||||
wait(0.1);
|
||||
self hide();
|
||||
wait(0.1);
|
||||
self suicide();
|
||||
}
|
||||
}
|
||||
}
|
89
IW/PC/ALL/scripts/mp/agents/slasher/slasher_agent_dlc4.gsc
Normal file
89
IW/PC/ALL/scripts/mp/agents/slasher/slasher_agent_dlc4.gsc
Normal file
@ -0,0 +1,89 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\slasher\slasher_agent_dlc4.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 6
|
||||
* Decompile Time: 325 ms
|
||||
* Timestamp: 10/27/2023 12:11:24 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
registerscriptedagent()
|
||||
{
|
||||
lib_0A02::init();
|
||||
behaviortree\slasher::func_DEE8();
|
||||
scripts\asm\slasher_dlc4\mp\states::func_2371();
|
||||
scripts\mp\agents\slasher\slasher_tunedata::setuptunedata();
|
||||
thread func_FAB0();
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
func_FAB0()
|
||||
{
|
||||
scripts\mp\agents\slasher\slasher_agent::func_FAB0();
|
||||
level.agent_funcs["slasher"]["on_damaged"] = ::onslasherdamaged;
|
||||
level.agent_funcs["slasher"]["on_killed"] = ::onslasherkilled;
|
||||
level.agent_definition["slasher"]["setup_func"] = ::setup_slasher_dlc4_agent;
|
||||
if(!isdefined(level.damage_feedback_overrride))
|
||||
{
|
||||
level.damage_feedback_overrride = [];
|
||||
}
|
||||
|
||||
level.damage_feedback_overrride["slasher"] = ::scripts\cp\maps\cp_final\cp_final_damage::slasher_processdamagefeedback;
|
||||
if(!isdefined(level.var_8CBD))
|
||||
{
|
||||
level.var_8CBD = [];
|
||||
}
|
||||
|
||||
level.var_8CBD["slasher"] = ::calculateslasherhealth;
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
setup_slasher_dlc4_agent()
|
||||
{
|
||||
scripts\mp\agents\slasher\slasher_agent::setupagent();
|
||||
self.spawn_round_num = level.wave_num;
|
||||
self.not_affected_by_traps = 1;
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
calculateslasherhealth()
|
||||
{
|
||||
return 30000;
|
||||
}
|
||||
|
||||
//Function Number: 5
|
||||
onslasherdamaged(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 = param_02;
|
||||
param_02 = min(param_02,300);
|
||||
if(isdefined(self.nodamagescale))
|
||||
{
|
||||
param_02 = var_0C;
|
||||
}
|
||||
|
||||
scripts\cp\maps\cp_final\cp_final_damage::cp_final_onzombiedamaged(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B);
|
||||
}
|
||||
|
||||
//Function Number: 6
|
||||
onslasherkilled(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
|
||||
{
|
||||
self detach("weapon_zmb_slasher_vm","tag_weapon_right");
|
||||
self.nocorpse = 1;
|
||||
if(isdefined(level.slasher_loot_func))
|
||||
{
|
||||
self [[ level.slasher_loot_func ]](param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
|
||||
}
|
||||
|
||||
var_09 = 1000;
|
||||
foreach(var_0B in level.players)
|
||||
{
|
||||
if(var_0B scripts\cp\_utility::is_valid_player())
|
||||
{
|
||||
var_0B scripts\cp\_persistence::func_82F9(var_09);
|
||||
}
|
||||
}
|
||||
|
||||
scripts\mp\_mp_agent::func_5006(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
|
||||
}
|
94
IW/PC/ALL/scripts/mp/agents/slasher/slasher_tunedata.gsc
Normal file
94
IW/PC/ALL/scripts/mp/agents/slasher/slasher_tunedata.gsc
Normal file
@ -0,0 +1,94 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\slasher\slasher_tunedata.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 3
|
||||
* Decompile Time: 218 ms
|
||||
* Timestamp: 10/27/2023 12:11:24 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
setuptunedata()
|
||||
{
|
||||
if(!isdefined(level.agenttunedata))
|
||||
{
|
||||
level.agenttunedata = [];
|
||||
}
|
||||
|
||||
level.agenttunedata["slasher"] = spawnstruct();
|
||||
setupslashertunedata(level.agenttunedata["slasher"]);
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
setupslashertunedata(param_00)
|
||||
{
|
||||
param_00.slasher_spin_damage_range_sq = 5625;
|
||||
param_00.slasher_spin_damage_amt = 60;
|
||||
param_00.ram_attack_collision_dist_sq = 1024;
|
||||
param_00.ram_attack_melee_dist_sq = 2025;
|
||||
param_00.ram_attack_dot = 0.5;
|
||||
param_00.ram_attack_push = 120;
|
||||
param_00.ram_attack_damage = 90;
|
||||
param_00.ram_attack_go_straight_radius_sq = 5625;
|
||||
param_00.min_ram_attack_interval = 1000;
|
||||
param_00.max_ram_attack_interval = 4000;
|
||||
param_00.ram_attack_mindist_sq = 14400;
|
||||
param_00.ram_attack_maxdist_sq = 122500;
|
||||
param_00.ram_attack_abort_dist_sq = 202500;
|
||||
param_00.ram_attack_chase_radius = 70;
|
||||
param_00.ram_attack_chase_radius_if_playing_chicken = 120;
|
||||
param_00.ram_attack_timeout = 3000;
|
||||
param_00.min_sawblade_fire_interval = 0.5;
|
||||
param_00.max_sawblade_fire_interval = 1.5;
|
||||
param_00.sawblade_burst_interval = 0.15;
|
||||
param_00.sawblade_burst_chance = 100;
|
||||
param_00.min_burst_count = 2;
|
||||
param_00.max_burst_count = 5;
|
||||
param_00.sawblade_min_offset = -24;
|
||||
param_00.sawblade_max_offset = 24;
|
||||
param_00.sawblade_min_randomness = 0.9;
|
||||
param_00.sawblade_max_randomness = 1.1;
|
||||
param_00.no_los_wait_time_before_teleport = 3000;
|
||||
param_00.min_time_between_teleports = 2000;
|
||||
param_00.min_jump_scare_dist_to_player = 0;
|
||||
param_00.max_jump_scare_dist_to_player = 1000;
|
||||
param_00.attempt_teleport_if_no_engagement_within_time = 8000;
|
||||
param_00.teleport_min_dist_to_enemy_to_teleport_sq = 1000000;
|
||||
param_00.min_path_dist_for_teleport = 512;
|
||||
param_00.min_grenade_throw_interval = 10000;
|
||||
param_00.max_grenade_throw_interval = 30000;
|
||||
param_00.min_grenade_throw_dist_sq = -25536;
|
||||
param_00.max_grenade_throw_dist_sq = 1562500;
|
||||
param_00.min_sawblade_attack_dist_sq = 160000;
|
||||
param_00.max_sawblade_attack_dist_sq = 2250000;
|
||||
param_00.min_sawblade_attack_time = 2000;
|
||||
param_00.max_sawblade_attack_time = 4000;
|
||||
param_00.min_sawblade_attack_interval = 3000;
|
||||
param_00.max_sawblade_attack_interval = 6000;
|
||||
param_00.min_clear_los_time_before_firing_saw = 1000;
|
||||
param_00.min_dist_to_enemy_for_taunt_sq = 262144;
|
||||
param_00.min_taunt_interval = 15000;
|
||||
param_00.max_taunt_interval = 20000;
|
||||
param_00.taunt_chance = 75;
|
||||
param_00.min_summon_interval = 8000;
|
||||
param_00.max_summon_interval = 15000;
|
||||
param_00.summon_chance = 25;
|
||||
param_00.need_to_block_damage_threshold = 500;
|
||||
param_00.max_time_after_last_damage_to_block = 333;
|
||||
param_00.block_chance = 75;
|
||||
param_00.min_block_time = 3000;
|
||||
param_00.max_block_time = 6000;
|
||||
param_00.quit_block_if_no_damage_time = 1000;
|
||||
param_00.min_block_interval = 10000;
|
||||
param_00.max_block_interval = 15000;
|
||||
param_00.ground_pound_radius_sq = 30625;
|
||||
param_00.ground_pound_damage_radius_sq = -25536;
|
||||
param_00.min_moving_pain_dist = 128;
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
gettunedata()
|
||||
{
|
||||
return level.agenttunedata["slasher"];
|
||||
}
|
313
IW/PC/ALL/scripts/mp/agents/superslasher/superslasher_agent.gsc
Normal file
313
IW/PC/ALL/scripts/mp/agents/superslasher/superslasher_agent.gsc
Normal file
@ -0,0 +1,313 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\superslasher\superslasher_agent.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 13
|
||||
* Decompile Time: 697 ms
|
||||
* Timestamp: 10/27/2023 12:11:25 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
superslasheragentinit()
|
||||
{
|
||||
registerscriptedagent();
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
registerscriptedagent()
|
||||
{
|
||||
lib_0A02::init();
|
||||
behaviortree\superslasher::func_DEE8();
|
||||
scripts\asm\superslasher\mp\states::func_2371();
|
||||
thread func_FAB0();
|
||||
level.superslasherspawnspot = (-4803,4703,-130);
|
||||
level.superslasherspawnangles = (0,-170,0);
|
||||
level.superslasherrooftopspot = (-6119,4829,355);
|
||||
level.superslasherrooftopangles = (0,10,0);
|
||||
level.superslashergotogroundspot = (-5024,4857,-130);
|
||||
level.superslasherjumptoroofangles = (0,-170,0);
|
||||
loadsuperslasherscriptmodelanim();
|
||||
loadsuperslashervfx();
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
loadsuperslasherscriptmodelanim()
|
||||
{
|
||||
precachempanim("IW7_cp_super_death_01");
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
loadsuperslashervfx()
|
||||
{
|
||||
level._effect["super_slasher_death_base"] = loadfx("vfx/iw7/levels/cp_rave/superslasher/vfx_ss_death_base_start.vfx");
|
||||
level._effect["super_slasher_death_hand"] = loadfx("vfx/iw7/levels/cp_rave/superslasher/vfx_ss_death_hands_glow.vfx");
|
||||
level._effect["super_slasher_death_limb"] = loadfx("vfx/iw7/levels/cp_rave/superslasher/vfx_ss_death_limbs_glow.vfx");
|
||||
level._effect["super_slasher_shield_hit"] = loadfx("vfx/iw7/levels/cp_rave/superslasher/vfx_ss_shield_hit.vfx");
|
||||
level._effect["super_slasher_saw_shark_hit"] = loadfx("vfx/iw7/levels/cp_rave/superslasher/vfx_rave_superslasher_stomp_attack.vfx");
|
||||
level._effect["super_slasher_saw_shark_spark"] = loadfx("vfx/iw7/levels/cp_rave/superslasher/vfx_rave_superslasher_saw_spark.vfx");
|
||||
}
|
||||
|
||||
//Function Number: 5
|
||||
func_FAB0()
|
||||
{
|
||||
level endon("game_ended");
|
||||
if(!isdefined(level.agent_definition))
|
||||
{
|
||||
level waittill("scripted_agents_initialized");
|
||||
}
|
||||
|
||||
if(!isdefined(level.var_10970))
|
||||
{
|
||||
level.var_10970 = [];
|
||||
}
|
||||
|
||||
level.var_10970["superslasher"] = [];
|
||||
level.agent_definition["superslasher"]["setup_func"] = ::setupagent;
|
||||
level.agent_definition["superslasher"]["setup_model_func"] = ::func_FACE;
|
||||
level.agent_funcs["superslasher"] = [];
|
||||
level.agent_funcs["superslasher"]["on_damaged"] = ::onsuperslasherdamaged;
|
||||
level.agent_funcs["superslasher"]["on_killed"] = ::onsuperslasherkilled;
|
||||
level.agent_funcs["superslasher"]["on_damaged_finished"] = ::onsuperslasherdamagefinished;
|
||||
}
|
||||
|
||||
//Function Number: 6
|
||||
setupagent()
|
||||
{
|
||||
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_9341 = 1;
|
||||
self.var_9342 = 1;
|
||||
self.var_9341 = 1;
|
||||
self.var_1B03 = "idle";
|
||||
self.var_1F5 = "run";
|
||||
self.sharpturnnotifydist = 150;
|
||||
self.var_257 = 20;
|
||||
self.height = 53;
|
||||
self.var_252B = 26 + self.var_257;
|
||||
self.var_2539 = 54;
|
||||
self.var_253A = -64;
|
||||
self.var_4D45 = 2250000;
|
||||
self.var_181 = 1;
|
||||
self.var_86BD = self getentitynumber();
|
||||
self.var_BCE4 = 1;
|
||||
self.var_C081 = 1;
|
||||
self.var_126E8 = 1;
|
||||
self.var_772A = 1;
|
||||
self.var_2AB2 = 0;
|
||||
self.var_2AB8 = 1;
|
||||
self.var_118FC = 0;
|
||||
self.var_2F = 1;
|
||||
self.var_503C = self.var_257 + 1;
|
||||
self.var_565C = 0;
|
||||
self.var_54CB = 0;
|
||||
self.var_9E0C = undefined;
|
||||
self.flung = undefined;
|
||||
self.var_565C = 0;
|
||||
self.var_B0FC = 1;
|
||||
self.full_gib = 0;
|
||||
self.croc_chomp = 0;
|
||||
self.spawn_round_num = level.wave_num;
|
||||
self.dont_cleanup = 1;
|
||||
self.footstepdetectdist = 600;
|
||||
self.footstepdetectdistwalk = 600;
|
||||
self.footstepdetectdistsprint = 600;
|
||||
self.allowpain = 1;
|
||||
self.var_A8A2 = [];
|
||||
self.var_A964 = [];
|
||||
self.var_A96A = 0;
|
||||
if(getdvarint("scr_zombie_left_foot_sharp_turn_only",0) == 1)
|
||||
{
|
||||
self.var_AB3F = 1;
|
||||
}
|
||||
|
||||
thread func_899C();
|
||||
}
|
||||
|
||||
//Function Number: 7
|
||||
func_FACE(param_00)
|
||||
{
|
||||
self setmodel("fullbody_zmb_superslasher");
|
||||
}
|
||||
|
||||
//Function Number: 8
|
||||
func_899C()
|
||||
{
|
||||
self endon("death");
|
||||
level waittill("game_ended");
|
||||
self.var_1198.bgameended = 1;
|
||||
}
|
||||
|
||||
//Function Number: 9
|
||||
onsuperslasherkilled(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
|
||||
{
|
||||
self.death_anim_no_ragdoll = 1;
|
||||
self.nocorpse = 1;
|
||||
if(isdefined(self.attackents))
|
||||
{
|
||||
foreach(var_0A in self.attackents)
|
||||
{
|
||||
var_0A delete();
|
||||
}
|
||||
}
|
||||
|
||||
if(isdefined(self.shields))
|
||||
{
|
||||
foreach(var_0D in self.shields)
|
||||
{
|
||||
var_0D delete();
|
||||
}
|
||||
}
|
||||
|
||||
scripts\asm\superslasher\superslasher_actions::stopwireattack();
|
||||
thread superslasherdeathscriptmodelsequence(self);
|
||||
var_0F = self.var_238F;
|
||||
var_10 = self.var_164D[var_0F].var_4BC0;
|
||||
var_11 = level.var_2303[var_0F].var_10E2F[var_10];
|
||||
lib_0A1A::func_2388(var_0F,var_10,var_11,undefined);
|
||||
scripts\mp\_mp_agent::func_5006(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
|
||||
}
|
||||
|
||||
//Function Number: 10
|
||||
superslasherdeathscriptmodelsequence(param_00)
|
||||
{
|
||||
level.soul_key_drop_pos = scripts\common\utility::func_5D14(param_00.origin,200,-5000) + (0,0,50);
|
||||
var_01 = param_00.origin;
|
||||
var_02 = spawn("script_model",var_01);
|
||||
var_02 setmodel("fullbody_zmb_superslasher");
|
||||
var_02 scriptmodelplayanim("IW7_cp_super_death_01");
|
||||
playsoundatpos(var_02.origin,"zmb_superslasher_death_lr");
|
||||
var_02 thread super_slasher_death_vfx_sequence(var_02);
|
||||
wait(3.5);
|
||||
var_02 moveto(var_01 + (0,0,-300),11.5);
|
||||
var_02 waittill("movedone");
|
||||
var_02 delete();
|
||||
level notify("super_slasher_death");
|
||||
}
|
||||
|
||||
//Function Number: 11
|
||||
super_slasher_death_vfx_sequence(param_00)
|
||||
{
|
||||
var_01 = spawnfx(level._effect["super_slasher_death_base"],param_00.origin);
|
||||
triggerfx(var_01);
|
||||
wait(0.6);
|
||||
playfxontag(level._effect["super_slasher_death_hand"],param_00,"j_wrist_ri");
|
||||
playfxontag(level._effect["super_slasher_death_limb"],param_00,"j_hip_ri");
|
||||
wait(0.5);
|
||||
playfxontag(level._effect["super_slasher_death_hand"],param_00,"j_wrist_le");
|
||||
wait(0.2);
|
||||
playfxontag(level._effect["super_slasher_death_limb"],param_00,"j_hip_le");
|
||||
wait(1.3);
|
||||
playfxontag(level._effect["super_slasher_death_limb"],param_00,"j_elbow_le");
|
||||
wait(1);
|
||||
playfxontag(level._effect["super_slasher_death_limb"],param_00,"j_clavicle_ri");
|
||||
wait(0.7);
|
||||
playfxontag(level._effect["super_slasher_death_limb"],param_00,"j_clavicle_le");
|
||||
param_00 waittill("movedone");
|
||||
var_01 delete();
|
||||
}
|
||||
|
||||
//Function Number: 12
|
||||
onsuperslasherdamaged(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B)
|
||||
{
|
||||
if(isdefined(param_01) && param_01 == self)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if(scripts\common\utility::istrue(self.var_E0) && isdefined(param_06) && isdefined(param_07))
|
||||
{
|
||||
playfx(level._effect["super_slasher_shield_hit"],param_06,param_07 * -150);
|
||||
}
|
||||
|
||||
if(isdefined(self.btrophysystem))
|
||||
{
|
||||
if(isdefined(param_01) && isplayer(param_01))
|
||||
{
|
||||
self.var_A964[self.var_A964.size] = vectornormalize(param_01.origin - self.origin);
|
||||
self.var_A96A = gettime();
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if(scripts\common\utility::istrue(self.var_E0))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if(isdefined(self.var_1198.binair))
|
||||
{
|
||||
param_02 = int(min(param_02,self.health - 1));
|
||||
if(param_02 == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if(param_05 == "iw7_harpoon_zm")
|
||||
{
|
||||
param_02 = min(0.1 * self.maxhealth,2000);
|
||||
param_02 = int(param_02);
|
||||
}
|
||||
else if(issubstr(param_05,"harpoon1"))
|
||||
{
|
||||
param_02 = min(0.01 * self.maxhealth,75);
|
||||
param_02 = int(param_02);
|
||||
}
|
||||
else if(issubstr(param_05,"harpoon2"))
|
||||
{
|
||||
param_02 = min(0.1 * self.maxhealth,1500);
|
||||
param_02 = int(param_02);
|
||||
}
|
||||
else if(issubstr(param_05,"harpoon3"))
|
||||
{
|
||||
param_02 = min(0.1 * self.maxhealth,2000);
|
||||
param_02 = int(param_02);
|
||||
}
|
||||
else if(issubstr(param_05,"harpoon4"))
|
||||
{
|
||||
param_02 = min(0.01 * self.maxhealth,1000);
|
||||
param_02 = int(param_02);
|
||||
}
|
||||
|
||||
param_03 = param_03 | level.var_92C0;
|
||||
if(isdefined(level.players) && level.players.size >= 1)
|
||||
{
|
||||
param_02 = param_02 / level.players.size;
|
||||
}
|
||||
|
||||
scripts\cp\maps\cp_rave\cp_rave_damage::cp_rave_onzombiedamaged(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B);
|
||||
}
|
||||
|
||||
//Function Number: 13
|
||||
onsuperslasherdamagefinished(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)
|
||||
{
|
||||
scripts\mp\_mp_agent::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);
|
||||
}
|
300
IW/PC/ALL/scripts/mp/agents/the_hoff/the_hoff_agent.gsc
Normal file
300
IW/PC/ALL/scripts/mp/agents/the_hoff/the_hoff_agent.gsc
Normal file
@ -0,0 +1,300 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\the_hoff\the_hoff_agent.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 17
|
||||
* Decompile Time: 812 ms
|
||||
* Timestamp: 10/27/2023 12:31:19 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
registerscriptedagent()
|
||||
{
|
||||
lib_0A02::init();
|
||||
lib_03A9::func_DEE8();
|
||||
lib_0F37::func_2371();
|
||||
thread func_FAB0();
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
func_FAB0()
|
||||
{
|
||||
level endon("game_ended");
|
||||
if(!isdefined(level.agent_definition))
|
||||
{
|
||||
level waittill("scripted_agents_initialized");
|
||||
}
|
||||
|
||||
if(!isdefined(level.var_10970))
|
||||
{
|
||||
level.var_10970 = [];
|
||||
}
|
||||
|
||||
level.var_10970["the_hoff"] = [];
|
||||
level.agent_definition["the_hoff"]["setup_func"] = ::setupagent;
|
||||
level.agent_definition["the_hoff"]["setup_model_func"] = ::func_FACE;
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
setupagent()
|
||||
{
|
||||
self.accuracy = 0.5;
|
||||
self.noattackeraccuracymod = 0;
|
||||
self.sharpturnnotifydist = 48;
|
||||
self.last_enemy_sight_time = 0;
|
||||
self.desiredenemydistmax = 500;
|
||||
self.desiredenemydistmin = 400;
|
||||
self.maxtimetostrafewithoutlos = 3000;
|
||||
self.strafeifwithindist = self.desiredenemydistmax + 100;
|
||||
self.maxsightdistsqrd = 67108864;
|
||||
self.var_272A = self.desiredenemydistmin - 100;
|
||||
self.meleerangesq = 9216;
|
||||
self.meleechargedist = 45;
|
||||
self.meleechargedistvsplayer = 45;
|
||||
self.meleechargedistreloadmultiplier = 1.2;
|
||||
self.maxzdiff = 50;
|
||||
self.meleeactorboundsradius = 32;
|
||||
self.meleemindamage = 300;
|
||||
self.meleemaxdamage = 450;
|
||||
self.footstepdetectdist = 1000;
|
||||
self.footstepdetectdistwalk = 1000;
|
||||
self.footstepdetectdistsprint = 1000;
|
||||
self.var_1A44 = 50;
|
||||
func_FAFE();
|
||||
thread scriptedgoalwaitforarrival();
|
||||
thread func_899D();
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
func_FAFE()
|
||||
{
|
||||
self.var_3402 = ::func_11562;
|
||||
self.var_3404 = [::func_11562,::func_11559,::func_1156F,::func_1157B,::func_11570];
|
||||
self.var_3403 = [0,47,21,21,11];
|
||||
}
|
||||
|
||||
//Function Number: 5
|
||||
func_899D()
|
||||
{
|
||||
self endon("death");
|
||||
for(;;)
|
||||
{
|
||||
self waittill("enemy");
|
||||
for(;;)
|
||||
{
|
||||
if(isdefined(self.var_10C))
|
||||
{
|
||||
self.var_6571 = gettime() + 1000;
|
||||
}
|
||||
else if(isdefined(self.var_6571))
|
||||
{
|
||||
if(gettime() > self.var_6571)
|
||||
{
|
||||
self.var_6571 = undefined;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
wait(0.25);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 6
|
||||
func_11570()
|
||||
{
|
||||
var_00 = 70;
|
||||
var_01 = 15;
|
||||
if(isdefined(self.var_10C.var_18F4))
|
||||
{
|
||||
var_00 = self.var_10C.var_18F4;
|
||||
var_01 = self.var_10C.var_18F9;
|
||||
}
|
||||
|
||||
var_02 = var_00 * randomfloatrange(0.25,0.35);
|
||||
var_03 = var_01 * 0.5;
|
||||
var_04 = var_03 * -1;
|
||||
var_05 = randomfloatrange(var_04,var_03);
|
||||
var_06 = anglestoright(self.angles);
|
||||
var_07 = (var_06[0] * var_05,var_06[1] * var_05,var_02);
|
||||
var_08 = self.var_10C.origin + var_07;
|
||||
return var_08;
|
||||
}
|
||||
|
||||
//Function Number: 7
|
||||
func_1157B()
|
||||
{
|
||||
var_00 = 70;
|
||||
var_01 = 15;
|
||||
if(isdefined(self.var_10C.var_18F4))
|
||||
{
|
||||
var_00 = self.var_10C.var_18F4;
|
||||
var_01 = self.var_10C.var_18F9;
|
||||
}
|
||||
|
||||
var_02 = var_00 * randomfloatrange(0.65,0.75);
|
||||
var_03 = var_01 * 0.75;
|
||||
var_04 = anglestoright(self.angles);
|
||||
var_05 = (var_04[0] * var_03,var_04[1] * var_03,var_02);
|
||||
var_06 = self.var_10C.origin + var_05;
|
||||
return var_06;
|
||||
}
|
||||
|
||||
//Function Number: 8
|
||||
func_1156F()
|
||||
{
|
||||
var_00 = 70;
|
||||
var_01 = 15;
|
||||
if(isdefined(self.var_10C.var_18F4))
|
||||
{
|
||||
var_00 = self.var_10C.var_18F4;
|
||||
var_01 = self.var_10C.var_18F9;
|
||||
}
|
||||
|
||||
var_02 = var_00 * randomfloatrange(0.65,0.75);
|
||||
var_03 = var_01 * -0.75;
|
||||
var_04 = anglestoright(self.angles);
|
||||
var_05 = (var_04[0] * var_03,var_04[1] * var_03,var_02);
|
||||
var_06 = self.var_10C.origin + var_05;
|
||||
return var_06;
|
||||
}
|
||||
|
||||
//Function Number: 9
|
||||
func_11559()
|
||||
{
|
||||
var_00 = 70;
|
||||
var_01 = 15;
|
||||
if(isdefined(self.var_10C.var_18F4))
|
||||
{
|
||||
var_00 = self.var_10C.var_18F4;
|
||||
var_01 = self.var_10C.var_18F9;
|
||||
}
|
||||
|
||||
var_02 = var_00 * randomfloatrange(0.65,0.75);
|
||||
var_03 = var_01 * 0.5;
|
||||
var_04 = var_03 * -1;
|
||||
var_05 = randomfloatrange(var_04,var_03);
|
||||
var_06 = anglestoright(self.angles);
|
||||
var_07 = (var_06[0] * var_05,var_06[1] * var_05,var_02);
|
||||
var_08 = self.var_10C.origin + var_07;
|
||||
return var_08;
|
||||
}
|
||||
|
||||
//Function Number: 10
|
||||
func_11562()
|
||||
{
|
||||
var_00 = self.var_10C gettagorigin("j_head");
|
||||
return var_00;
|
||||
}
|
||||
|
||||
//Function Number: 11
|
||||
scriptedgoalwaitforarrival()
|
||||
{
|
||||
self endon("death");
|
||||
for(;;)
|
||||
{
|
||||
self waittill("goal_reached");
|
||||
if(isdefined(self.var_EF7D))
|
||||
{
|
||||
var_00 = self.var_EF7D;
|
||||
}
|
||||
else if(isdefined(self.var_EF7A))
|
||||
{
|
||||
var_00 = self.var_EF7A.origin;
|
||||
}
|
||||
else if(isdefined(self.var_EF7C))
|
||||
{
|
||||
var_00 = self.var_EF7C.origin;
|
||||
}
|
||||
else
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var_01 = 16;
|
||||
if(isdefined(self.var_EF7E))
|
||||
{
|
||||
var_01 = self.var_EF7E * self.var_EF7E;
|
||||
}
|
||||
|
||||
if(distance2dsquared(self.origin,var_00) <= var_01)
|
||||
{
|
||||
self.var_EF7D = undefined;
|
||||
self.var_EF7C = undefined;
|
||||
if(!isdefined(self.var_EF7B))
|
||||
{
|
||||
self.var_EF7A = undefined;
|
||||
}
|
||||
|
||||
self notify("scriptedGoal_reached");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 12
|
||||
func_F834(param_00,param_01)
|
||||
{
|
||||
if(!isdefined(param_01))
|
||||
{
|
||||
param_01 = 0;
|
||||
}
|
||||
|
||||
self.var_EF79 = param_01;
|
||||
self.var_EF73 = param_00;
|
||||
}
|
||||
|
||||
//Function Number: 13
|
||||
func_F835(param_00,param_01)
|
||||
{
|
||||
self.var_EF7A = undefined;
|
||||
self.var_EF7B = undefined;
|
||||
self.var_EF7C = undefined;
|
||||
self.var_EF7D = param_00;
|
||||
self.var_EF7E = param_01;
|
||||
}
|
||||
|
||||
//Function Number: 14
|
||||
func_F833(param_00,param_01)
|
||||
{
|
||||
self.var_EF7D = undefined;
|
||||
self.var_EF7A = undefined;
|
||||
self.var_EF7B = undefined;
|
||||
self.var_EF7C = param_00;
|
||||
self.var_EF7E = param_01;
|
||||
}
|
||||
|
||||
//Function Number: 15
|
||||
func_F832(param_00,param_01,param_02)
|
||||
{
|
||||
self.var_EF7D = undefined;
|
||||
self.var_EF7C = undefined;
|
||||
self.var_EF7A = param_00;
|
||||
self.var_EF7E = param_01;
|
||||
if(isdefined(param_02) && param_02)
|
||||
{
|
||||
self.var_EF7B = param_02;
|
||||
return;
|
||||
}
|
||||
|
||||
self.var_EF7B = undefined;
|
||||
}
|
||||
|
||||
//Function Number: 16
|
||||
func_41D9()
|
||||
{
|
||||
if(isdefined(self.var_EF7D) || isdefined(self.var_EF7A) || isdefined(self.var_EF7C))
|
||||
{
|
||||
self.var_EF7D = undefined;
|
||||
self.var_EF7A = undefined;
|
||||
self.var_EF7B = undefined;
|
||||
self.var_EF7C = undefined;
|
||||
self method_841F();
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 17
|
||||
func_FACE(param_00)
|
||||
{
|
||||
self setmodel("body_zmb_hero_dj_agent");
|
||||
}
|
2205
IW/PC/ALL/scripts/mp/agents/zombie/zmb_zombie_agent.gsc
Normal file
2205
IW/PC/ALL/scripts/mp/agents/zombie/zmb_zombie_agent.gsc
Normal file
File diff suppressed because it is too large
Load Diff
738
IW/PC/ALL/scripts/mp/agents/zombie_brute/zombie_brute_agent.gsc
Normal file
738
IW/PC/ALL/scripts/mp/agents/zombie_brute/zombie_brute_agent.gsc
Normal file
@ -0,0 +1,738 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\zombie_brute\zombie_brute_agent.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 34
|
||||
* Decompile Time: 1247 ms
|
||||
* Timestamp: 10/27/2023 12:31:49 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
registerscriptedagent()
|
||||
{
|
||||
lib_0A02::init();
|
||||
lib_03B3::func_DEE8();
|
||||
lib_0F45::func_2371();
|
||||
func_AEB0();
|
||||
thread func_FAB0();
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
func_FAB0()
|
||||
{
|
||||
level endon("game_ended");
|
||||
if(!isdefined(level.agent_definition))
|
||||
{
|
||||
level waittill("scripted_agents_initialized");
|
||||
}
|
||||
|
||||
level.agent_definition["zombie_brute"]["setup_func"] = ::setupagent;
|
||||
level.agent_definition["zombie_brute"]["setup_model_func"] = ::func_FACE;
|
||||
level.agent_funcs["zombie_brute"]["on_killed"] = ::func_C4D1;
|
||||
level.agent_funcs["zombie_brute"]["on_damaged_finished"] = ::func_C4D0;
|
||||
level.var_3111 = ::func_3110;
|
||||
level.brute_loot_check = [];
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
setupagent()
|
||||
{
|
||||
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_9342 = 1;
|
||||
self.var_9341 = 1;
|
||||
self.var_1B03 = "idle";
|
||||
self.var_1F5 = "run";
|
||||
self.sharpturnnotifydist = 150;
|
||||
self.var_257 = 20;
|
||||
self.height = 53;
|
||||
self.var_252B = 26 + self.var_257;
|
||||
self.var_B640 = "normal";
|
||||
self.var_B641 = 50;
|
||||
self.var_2539 = 54;
|
||||
self.var_253A = -64;
|
||||
self.var_4D45 = 2250000;
|
||||
self.var_181 = 1;
|
||||
self.var_86BD = self getentitynumber();
|
||||
self.var_BCE4 = 1;
|
||||
self.var_C081 = 1;
|
||||
self.var_126E8 = 1;
|
||||
self.var_772A = 1;
|
||||
self.var_2AB2 = 0;
|
||||
self.var_2AB8 = 1;
|
||||
self.var_118FC = 0;
|
||||
self.var_2F = 1;
|
||||
self.var_B5F9 = 40;
|
||||
self.var_B62E = 100;
|
||||
self.var_B62F = squared(self.var_B62E);
|
||||
self.var_503C = self.var_257 + 1;
|
||||
self.var_B607 = 0.5;
|
||||
self.var_565C = 0;
|
||||
self.var_54CB = 0;
|
||||
self.var_9E0C = undefined;
|
||||
self.flung = undefined;
|
||||
self.var_565C = 0;
|
||||
self.var_B0FC = 1;
|
||||
self.full_gib = 0;
|
||||
lib_0F74::func_F794(self.var_B62E);
|
||||
self.var_B631 = 100;
|
||||
self.croc_chomp = 0;
|
||||
self.spawn_round_num = level.wave_num;
|
||||
self.footstepdetectdist = 600;
|
||||
self.footstepdetectdistwalk = 600;
|
||||
self.footstepdetectdistsprint = 600;
|
||||
self.allowpain = 1;
|
||||
if(getdvarint("scr_zombie_left_foot_sharp_turn_only",0) == 1)
|
||||
{
|
||||
self.var_AB3F = 1;
|
||||
}
|
||||
|
||||
self.var_1009D = ::func_3121;
|
||||
thread func_B9B9();
|
||||
thread func_BA27();
|
||||
thread func_899C();
|
||||
var_00 = getdvarint("scr_zombie_traversal_push",1);
|
||||
if(var_00 == 1)
|
||||
{
|
||||
thread func_311D();
|
||||
}
|
||||
|
||||
thread func_89C9();
|
||||
func_108D6();
|
||||
thread func_3112();
|
||||
thread func_88F5();
|
||||
thread func_88BA();
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
func_89C9()
|
||||
{
|
||||
scripts\common\utility::func_136F7();
|
||||
lib_0A1B::func_2968("run");
|
||||
level thread lib_0D62::func_CE9C(self,"run_grunt",1);
|
||||
}
|
||||
|
||||
//Function Number: 5
|
||||
func_899C()
|
||||
{
|
||||
self endon("death");
|
||||
level waittill("game_ended");
|
||||
self method_841F();
|
||||
foreach(var_04, var_01 in self.var_164D)
|
||||
{
|
||||
var_02 = var_01.var_4BC0;
|
||||
var_03 = level.var_2303[var_04].var_10E2F[var_02];
|
||||
lib_0A1A::func_2388(var_04,var_02,var_03,var_03.var_116FB);
|
||||
lib_0A1A::func_238A(var_04,"idle",0.2,undefined,undefined,undefined);
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 6
|
||||
func_FACE(param_00)
|
||||
{
|
||||
self setmodel(func_7D86());
|
||||
thread func_50EF();
|
||||
}
|
||||
|
||||
//Function Number: 7
|
||||
func_7D86()
|
||||
{
|
||||
var_00 = ["zmb_brute_mascot_body"];
|
||||
return scripts\common\utility::random(var_00);
|
||||
}
|
||||
|
||||
//Function Number: 8
|
||||
func_50EF()
|
||||
{
|
||||
self endon("death");
|
||||
wait(0.5);
|
||||
if(isdefined(level.var_C01F))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
self method_80BB(1,0.1);
|
||||
}
|
||||
|
||||
//Function Number: 9
|
||||
func_AEB0()
|
||||
{
|
||||
level._effect["laser_muzzle_flash"] = loadfx("vfx/iw7/core/zombie/vfx_zmb_brute_lensf.vfx");
|
||||
}
|
||||
|
||||
//Function Number: 10
|
||||
func_3110(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 = 25;
|
||||
var_0D = var_0C * var_0C;
|
||||
var_0E = self gettagorigin("tag_eye");
|
||||
var_0F = (param_08 == "head" || param_08 == "helmet" || param_08 == "neck") && param_04 != "MOD_MELEE" && param_04 != "MOD_IMPACT" && param_04 != "MOD_CRUSH";
|
||||
if(!var_0F && param_08 == "torso_upper" && self.var_8E14 == "hand" && distancesquared(param_06,var_0E) < var_0D)
|
||||
{
|
||||
var_0F = 1;
|
||||
}
|
||||
|
||||
if(var_0F)
|
||||
{
|
||||
param_02 = func_EBAC(param_02,param_05);
|
||||
var_10 = param_02 / 3;
|
||||
if(isdefined(param_05) && param_05 == "zmb_imsprojectile_mp" || param_05 == "zmb_fireworksprojectile_mp")
|
||||
{
|
||||
param_02 = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
param_02 = max(10,var_10);
|
||||
}
|
||||
|
||||
if(self.var_8E14 == "head")
|
||||
{
|
||||
if(!isdefined(self.var_8DDE))
|
||||
{
|
||||
self.var_8DDE = 0;
|
||||
}
|
||||
|
||||
self.var_8DDE = self.var_8DDE + param_02;
|
||||
param_02 = 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
param_02 = 1;
|
||||
}
|
||||
|
||||
return param_02;
|
||||
}
|
||||
|
||||
//Function Number: 11
|
||||
func_EBAC(param_00,param_01)
|
||||
{
|
||||
var_02 = getweaponbasename(param_01);
|
||||
if(!isdefined(var_02))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var_03 = 2000;
|
||||
switch(var_02)
|
||||
{
|
||||
case "iw7_headcutter_zm_pap1":
|
||||
case "iw7_headcutter_zm":
|
||||
case "iw7_facemelter_zm_pap1":
|
||||
case "iw7_facemelter_zm":
|
||||
case "iw7_dischord_zm_pap1":
|
||||
case "iw7_dischord_zm":
|
||||
case "iw7_shredder_zm_pap1":
|
||||
case "iw7_shredder_zm":
|
||||
param_00 = var_03;
|
||||
break;
|
||||
}
|
||||
|
||||
return param_00;
|
||||
}
|
||||
|
||||
//Function Number: 12
|
||||
func_108D6()
|
||||
{
|
||||
self.var_527A = "head";
|
||||
self.var_8E14 = "head";
|
||||
}
|
||||
|
||||
//Function Number: 13
|
||||
func_BCBC()
|
||||
{
|
||||
self.var_8E14 = "hand";
|
||||
self setscriptablepartstate("eyes","yellow_eyes");
|
||||
self.var_BCE4 = 1;
|
||||
lib_0A1B::func_2968("sprint");
|
||||
}
|
||||
|
||||
//Function Number: 14
|
||||
func_BCBD()
|
||||
{
|
||||
self setscriptablepartstate("eyes","eye_glow_off");
|
||||
self.var_8E14 = "head";
|
||||
self.var_BCE4 = 1;
|
||||
lib_0A1B::func_2968("run");
|
||||
}
|
||||
|
||||
//Function Number: 15
|
||||
func_DB25(param_00)
|
||||
{
|
||||
self endon("death");
|
||||
self notify("reset_helmet_timer");
|
||||
self endon("reset_helmet_timer");
|
||||
wait(param_00);
|
||||
if(self.var_8E14 == "hand")
|
||||
{
|
||||
self.var_527A = "head";
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 16
|
||||
func_3112()
|
||||
{
|
||||
self endon("death");
|
||||
if(!isdefined(self.var_8DDE))
|
||||
{
|
||||
self.var_8DDE = 0;
|
||||
}
|
||||
|
||||
while(!isdefined(self.maxhealth))
|
||||
{
|
||||
wait(0.1);
|
||||
}
|
||||
|
||||
self.var_8E09 = 0;
|
||||
for(;;)
|
||||
{
|
||||
var_00 = self.health / self.maxhealth;
|
||||
var_01 = max(self.var_8DF0 * var_00,1000);
|
||||
if(self.var_8E09 == 1)
|
||||
{
|
||||
var_01 = var_01 * 0.5;
|
||||
}
|
||||
|
||||
self waittill("helmet_damage");
|
||||
if(self.var_8DDE > var_01)
|
||||
{
|
||||
self.var_8E09++;
|
||||
self.var_527A = "hand";
|
||||
self.var_8DDE = 0;
|
||||
if(self.var_8E09 < 2)
|
||||
{
|
||||
thread func_DB25(20);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 17
|
||||
func_C4D0(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(!isdefined(self.var_8E09))
|
||||
{
|
||||
self.var_8E09 = 0;
|
||||
}
|
||||
|
||||
if(self.croc_chomp)
|
||||
{
|
||||
param_02 = 1;
|
||||
}
|
||||
else if(param_08 == "head" || param_02 > 1)
|
||||
{
|
||||
var_0D = "standard";
|
||||
if(self.var_8E14 == "head")
|
||||
{
|
||||
if(!isdefined(self.var_8DDE))
|
||||
{
|
||||
self.var_8DDE = 0;
|
||||
}
|
||||
|
||||
self notify("helmet_damage");
|
||||
param_02 = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
var_0D = "hitcritical";
|
||||
if(self.var_8E09 < 2)
|
||||
{
|
||||
thread func_DB25(5);
|
||||
}
|
||||
}
|
||||
|
||||
if(isplayer(param_01))
|
||||
{
|
||||
param_01 thread scripts\cp\_damage::func_12E84(var_0D,undefined,param_02);
|
||||
}
|
||||
}
|
||||
else if(param_08 == "helmet")
|
||||
{
|
||||
var_0D = "standard";
|
||||
if(self.var_8E14 == "head")
|
||||
{
|
||||
if(!isdefined(self.var_8DDE))
|
||||
{
|
||||
self.var_8DDE = 0;
|
||||
}
|
||||
|
||||
self notify("helmet_damage");
|
||||
if(isplayer(param_01))
|
||||
{
|
||||
param_01 thread scripts\cp\_damage::func_12E84(var_0D,undefined,param_02);
|
||||
}
|
||||
|
||||
param_02 = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
param_02 = 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
param_02 = 0;
|
||||
}
|
||||
|
||||
scripts\mp\_mp_agent::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);
|
||||
}
|
||||
|
||||
//Function Number: 18
|
||||
brute_killed_vo(param_00)
|
||||
{
|
||||
if(isplayer(param_00))
|
||||
{
|
||||
param_00 thread scripts\cp\_vo::try_to_play_vo("killfirm_brute","zmb_comment_vo","medium",10,0,0,0,20);
|
||||
}
|
||||
|
||||
wait(4);
|
||||
level thread scripts\cp\_vo::try_to_play_vo("ww_brute_death","zmb_ww_vo","highest",60,0,0,1);
|
||||
}
|
||||
|
||||
//Function Number: 19
|
||||
func_C4D1(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
|
||||
{
|
||||
level thread brute_killed_vo(param_01);
|
||||
func_10838(self.var_1657,param_03,param_04);
|
||||
self.death_anim_no_ragdoll = 1;
|
||||
scripts\mp\_mp_agent::func_5006(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
|
||||
var_09 = scripts\common\utility::random(["ammo_max","instakill_30","cash_2","instakill_30","cash_2","instakill_30","cash_2"]);
|
||||
if(isdefined(var_09) && !isdefined(self.var_72AC))
|
||||
{
|
||||
if(!isdefined(level.brute_loot_check[self.spawn_round_num]))
|
||||
{
|
||||
level.brute_loot_check[self.spawn_round_num] = 1;
|
||||
level thread scripts\cp\zombies\_powerups::drop_loot(self.origin,param_01,var_09);
|
||||
}
|
||||
}
|
||||
|
||||
var_0A = 400;
|
||||
foreach(var_0C in level.players)
|
||||
{
|
||||
var_0C scripts\cp\_persistence::func_82F9(var_0A);
|
||||
var_0C lib_0D2A::func_12D7C("THE_BIGGER_THEY_ARE",1);
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 20
|
||||
func_10838(param_00,param_01,param_02)
|
||||
{
|
||||
self.var_CE65 = 1;
|
||||
}
|
||||
|
||||
//Function Number: 21
|
||||
func_10840(param_00)
|
||||
{
|
||||
}
|
||||
|
||||
//Function Number: 22
|
||||
func_B9B9()
|
||||
{
|
||||
self endon("death");
|
||||
level endon("game_ended");
|
||||
}
|
||||
|
||||
//Function Number: 23
|
||||
func_BA27()
|
||||
{
|
||||
self endon("death");
|
||||
level endon("game_ended");
|
||||
}
|
||||
|
||||
//Function Number: 24
|
||||
func_A012()
|
||||
{
|
||||
if(!isdefined(level.var_13F60))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
return level.var_13F60;
|
||||
}
|
||||
|
||||
//Function Number: 25
|
||||
func_A632(param_00)
|
||||
{
|
||||
param_00 dodamage(param_00.health + 500000,param_00.origin);
|
||||
}
|
||||
|
||||
//Function Number: 26
|
||||
func_311E(param_00,param_01)
|
||||
{
|
||||
foreach(var_03 in level.players)
|
||||
{
|
||||
var_04 = self.origin[2] - var_03.origin[2];
|
||||
if(abs(var_04) < param_01)
|
||||
{
|
||||
var_05 = distance2dsquared(self.origin,var_03.origin);
|
||||
if(var_05 < param_00)
|
||||
{
|
||||
var_06 = self.var_381;
|
||||
var_07 = length2d(var_06);
|
||||
if(var_07 == 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
var_08 = var_03.origin - self.origin;
|
||||
var_08 = (var_08[0],var_08[1],0);
|
||||
var_09 = vectornormalize(var_08);
|
||||
if(var_07 < 60)
|
||||
{
|
||||
var_07 = 60;
|
||||
}
|
||||
|
||||
var_0A = var_03 getvelocity();
|
||||
var_0A = (var_0A[0],var_0A[1],0);
|
||||
var_0B = length2d(var_0A);
|
||||
if(var_0B > 0)
|
||||
{
|
||||
var_0C = var_09 * var_07;
|
||||
var_0D = var_0A + var_0C;
|
||||
var_0E = length2d(var_0D);
|
||||
if(vectordot(var_0D,var_0C) < 0)
|
||||
{
|
||||
var_0F = vectorcross((0,0,1),var_09);
|
||||
if(vectordot(var_0F,var_0A) > 0)
|
||||
{
|
||||
var_0B = length2d(var_0A);
|
||||
var_0A = var_0F * var_0B;
|
||||
}
|
||||
else
|
||||
{
|
||||
var_10 = var_0F * -1;
|
||||
var_0B = length2d(var_0A);
|
||||
var_0A = var_10 * var_0B;
|
||||
}
|
||||
|
||||
var_0D = var_0A + var_0C;
|
||||
var_07 = length2d(var_0D);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(var_0B > var_07)
|
||||
{
|
||||
var_07 = var_0B;
|
||||
}
|
||||
|
||||
var_09 = vectornormalize(var_0D);
|
||||
}
|
||||
}
|
||||
|
||||
var_03 method_84DC(var_09,var_07);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 27
|
||||
func_311F()
|
||||
{
|
||||
self endon("death");
|
||||
level endon("game_ended");
|
||||
self endon("traverse_end");
|
||||
for(;;)
|
||||
{
|
||||
func_311E(3600,100);
|
||||
scripts\common\utility::func_136F7();
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 28
|
||||
func_311D()
|
||||
{
|
||||
self endon("death");
|
||||
self endon("game_ended");
|
||||
for(;;)
|
||||
{
|
||||
self waittill("traverse_begin");
|
||||
func_311F();
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 29
|
||||
func_3121()
|
||||
{
|
||||
if(!isdefined(self.var_527A) || !isdefined(self.var_8E14))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(self.var_8E14 != self.var_527A)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
//Function Number: 30
|
||||
func_88F5()
|
||||
{
|
||||
self endon("death");
|
||||
level endon("game_ended");
|
||||
for(;;)
|
||||
{
|
||||
self waittill("large_footstep");
|
||||
var_00 = scripts\common\utility::func_782F(self.origin,level.players,undefined,undefined,500);
|
||||
foreach(var_02 in var_00)
|
||||
{
|
||||
var_02 earthquakeforplayer(0.2,0.25,self.origin,500);
|
||||
var_02 method_8246("artillery_rumble",self.origin);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 31
|
||||
func_3116()
|
||||
{
|
||||
self endon("death");
|
||||
var_00 = 0;
|
||||
for(;;)
|
||||
{
|
||||
if(scripts\common\utility::istrue(self.var_3117))
|
||||
{
|
||||
var_00 = 0;
|
||||
wait(1);
|
||||
continue;
|
||||
}
|
||||
|
||||
if(scripts\common\utility::istrue(self.var_9CEC))
|
||||
{
|
||||
var_00 = 0;
|
||||
wait(1);
|
||||
continue;
|
||||
}
|
||||
|
||||
var_01 = undefined;
|
||||
var_02 = level.var_10816;
|
||||
foreach(var_04 in var_02)
|
||||
{
|
||||
if(!var_04.var_19)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(self istouching(var_04))
|
||||
{
|
||||
var_01 = var_04;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(!isdefined(var_01))
|
||||
{
|
||||
var_00 = 0;
|
||||
self notify("no_path_to_targets");
|
||||
}
|
||||
else
|
||||
{
|
||||
var_06 = lib_0D60::func_800B(var_01);
|
||||
if(var_06 == 0)
|
||||
{
|
||||
var_07 = 0;
|
||||
var_02 = var_01.var_186E;
|
||||
if(isdefined(var_02))
|
||||
{
|
||||
foreach(var_04 in var_02)
|
||||
{
|
||||
var_06 = lib_0D60::func_800B(var_04);
|
||||
if(var_06 > 0)
|
||||
{
|
||||
var_07 = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!var_07)
|
||||
{
|
||||
var_00++;
|
||||
}
|
||||
else
|
||||
{
|
||||
var_00 = 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var_00 = 0;
|
||||
}
|
||||
|
||||
if(var_00 > 5)
|
||||
{
|
||||
self notify("no_path_to_targets");
|
||||
var_00 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
wait(1);
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 32
|
||||
func_88BA()
|
||||
{
|
||||
self endon("death");
|
||||
level endon("game_ended");
|
||||
thread func_3116();
|
||||
for(;;)
|
||||
{
|
||||
self waittill("no_path_to_targets");
|
||||
self.var_3117 = 1;
|
||||
func_1164D();
|
||||
self.var_3117 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 33
|
||||
func_6CA4()
|
||||
{
|
||||
var_00 = scripts\cp\zombies\zombies_spawning::func_7C2E();
|
||||
return var_00;
|
||||
}
|
||||
|
||||
//Function Number: 34
|
||||
func_1164D()
|
||||
{
|
||||
var_00 = spawnstruct();
|
||||
var_00.origin = self.origin;
|
||||
scripts\cp\zombies\zombies_spawning::func_3115(var_00);
|
||||
self.var_180 = 1;
|
||||
var_01 = scripts\common\utility::getstruct("brute_hide_org","targetname");
|
||||
self setorigin(var_01.origin,1);
|
||||
self method_82EF(self.origin);
|
||||
wait(3);
|
||||
var_02 = func_6CA4();
|
||||
scripts\cp\zombies\zombies_spawning::func_3115(var_02);
|
||||
self setorigin(var_02.origin + (0,0,3),1);
|
||||
self.var_180 = 0;
|
||||
wait(3);
|
||||
}
|
111
IW/PC/ALL/scripts/mp/agents/zombie_dlc1/zombie_dlc1_agent.gsc
Normal file
111
IW/PC/ALL/scripts/mp/agents/zombie_dlc1/zombie_dlc1_agent.gsc
Normal file
@ -0,0 +1,111 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\zombie_dlc1\zombie_dlc1_agent.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 9
|
||||
* Decompile Time: 482 ms
|
||||
* Timestamp: 10/27/2023 12:11:26 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
registerscriptedagent()
|
||||
{
|
||||
lib_0A02::init();
|
||||
behaviortree\zombie_dlc1::func_DEE8();
|
||||
scripts\asm\zombie_dlc1\mp\states::func_2371();
|
||||
level.var_13BDC = 1;
|
||||
level.var_4878 = 0;
|
||||
level.var_BF7C = 0;
|
||||
level.var_BCCE = [];
|
||||
level.var_BCE5 = [];
|
||||
level.var_C082 = [];
|
||||
level.var_126E9 = [];
|
||||
level.var_8EE6 = [];
|
||||
level.var_5662 = [];
|
||||
level.var_D437 = "allies";
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::func_9890();
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::func_98A5();
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::func_97FB();
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::func_AEB0();
|
||||
thread func_FAB0();
|
||||
thread scripts\mp\agents\zombie\zmb_zombie_agent::func_BC5C();
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
zombieinit_dlc1()
|
||||
{
|
||||
lib_0C75::func_13F9A();
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
func_FAB0()
|
||||
{
|
||||
level endon("game_ended");
|
||||
if(!isdefined(level.agent_definition))
|
||||
{
|
||||
level waittill("scripted_agents_initialized");
|
||||
}
|
||||
|
||||
level.agent_definition["generic_zombie"]["setup_func"] = ::setupagent;
|
||||
level.agent_definition["generic_zombie"]["setup_model_func"] = ::func_FACE;
|
||||
level.var_BCCE["generic_zombie"] = ::lib_0CBC::func_E7FD;
|
||||
level.agent_funcs["generic_zombie"]["on_damaged_finished"] = ::func_C5CE;
|
||||
level.agent_funcs["generic_zombie"]["on_killed"] = ::func_C5D2;
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
setupagent()
|
||||
{
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::setupagent();
|
||||
}
|
||||
|
||||
//Function Number: 5
|
||||
func_FACE(param_00)
|
||||
{
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::func_FACE();
|
||||
}
|
||||
|
||||
//Function Number: 6
|
||||
dopiranhatrapdeath()
|
||||
{
|
||||
lib_0A1A::func_237C("piranha_trap");
|
||||
}
|
||||
|
||||
//Function Number: 7
|
||||
func_C5CE(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)
|
||||
{
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::func_C5CE(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);
|
||||
}
|
||||
|
||||
//Function Number: 8
|
||||
func_C5D2(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
|
||||
{
|
||||
if(isdefined(self.balloon_in_hand))
|
||||
{
|
||||
self.balloon_in_hand delete();
|
||||
self.balloon_in_hand = undefined;
|
||||
}
|
||||
|
||||
if(isdefined(self.bholdingballooninleft) && isdefined(self.balloon_model))
|
||||
{
|
||||
if(self.bholdingballooninleft)
|
||||
{
|
||||
self detach(self.balloon_model,"tag_accessory_left");
|
||||
}
|
||||
else
|
||||
{
|
||||
self detach(self.balloon_model,"tag_accessory_right");
|
||||
}
|
||||
}
|
||||
|
||||
self.bholdingballooninleft = undefined;
|
||||
self.balloon_model = undefined;
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::func_C5D2(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
|
||||
}
|
||||
|
||||
//Function Number: 9
|
||||
func_C4BD(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
|
||||
{
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::func_C4BD(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09);
|
||||
}
|
@ -0,0 +1,98 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\zombie_dlc2\zombie_dlc2_agent.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 9
|
||||
* Decompile Time: 495 ms
|
||||
* Timestamp: 10/27/2023 12:11:27 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
registerscriptedagent()
|
||||
{
|
||||
lib_0A02::init();
|
||||
behaviortree\zombie_dlc2::func_DEE8();
|
||||
scripts\asm\zombie_dlc2\mp\states::func_2371();
|
||||
level.agent_definition["generic_zombie"]["asm"] = "zombie_dlc2";
|
||||
level.agent_definition["generic_zombie"]["behaviorTree"] = "zombie_dlc2";
|
||||
level.agent_definition["generic_zombie"]["animclass"] = "zombie_dlc2_animclass";
|
||||
level.var_13BDC = 1;
|
||||
level.var_4878 = 0;
|
||||
level.var_BF7C = 0;
|
||||
level.var_BCCE = [];
|
||||
level.var_BCE5 = [];
|
||||
level.var_C082 = [];
|
||||
level.var_126E9 = [];
|
||||
level.var_8EE6 = [];
|
||||
level.var_5662 = [];
|
||||
level.var_D437 = "allies";
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::func_9890();
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::func_98A5();
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::func_97FB();
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::func_AEB0();
|
||||
thread func_FAB0();
|
||||
thread scripts\mp\agents\zombie\zmb_zombie_agent::func_BC5C();
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
zombieinit_dlc2()
|
||||
{
|
||||
lib_0C75::func_13F9A();
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
func_FAB0()
|
||||
{
|
||||
level endon("game_ended");
|
||||
if(!isdefined(level.agent_definition))
|
||||
{
|
||||
level waittill("scripted_agents_initialized");
|
||||
}
|
||||
|
||||
level.agent_definition["generic_zombie"]["setup_func"] = ::setupagent;
|
||||
level.agent_definition["generic_zombie"]["setup_model_func"] = ::func_FACE;
|
||||
level.agent_funcs["generic_zombie"]["gametype_on_killed"] = ::scripts\cp\maps\cp_disco\cp_disco_damage::cp_disco_onzombiekilled;
|
||||
level.var_BCCE["generic_zombie"] = ::lib_0CBC::func_E7FD;
|
||||
level.agent_funcs["generic_zombie"]["on_damaged"] = ::scripts\cp\maps\cp_disco\cp_disco_damage::cp_disco_onzombiedamaged;
|
||||
level.agent_funcs["generic_zombie"]["on_damaged_finished"] = ::scripts\mp\agents\zombie\zmb_zombie_agent::func_C5CE;
|
||||
level.agent_funcs["generic_zombie"]["on_killed"] = ::func_C5D2;
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
setupagent()
|
||||
{
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::setupagent();
|
||||
self.kung_fu_punched = 0;
|
||||
self.pinched = undefined;
|
||||
}
|
||||
|
||||
//Function Number: 5
|
||||
func_FACE(param_00)
|
||||
{
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::func_FACE();
|
||||
}
|
||||
|
||||
//Function Number: 6
|
||||
dopiranhatrapdeath()
|
||||
{
|
||||
lib_0A1A::func_237C("piranha_trap");
|
||||
}
|
||||
|
||||
//Function Number: 7
|
||||
func_C5CE(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)
|
||||
{
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::func_C5CE(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);
|
||||
}
|
||||
|
||||
//Function Number: 8
|
||||
func_C5D2(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
|
||||
{
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::func_C5D2(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
|
||||
}
|
||||
|
||||
//Function Number: 9
|
||||
func_C4BD(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
|
||||
{
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::func_C4BD(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09);
|
||||
}
|
135
IW/PC/ALL/scripts/mp/agents/zombie_dlc3/zombie_dlc3_agent.gsc
Normal file
135
IW/PC/ALL/scripts/mp/agents/zombie_dlc3/zombie_dlc3_agent.gsc
Normal file
@ -0,0 +1,135 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\zombie_dlc3\zombie_dlc3_agent.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 11
|
||||
* Decompile Time: 576 ms
|
||||
* Timestamp: 10/27/2023 12:11:28 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
registerscriptedagent()
|
||||
{
|
||||
lib_0A02::init();
|
||||
behaviortree\zombie_dlc3::func_DEE8();
|
||||
scripts\asm\zombie_dlc3\mp\states::func_2371();
|
||||
level.agent_definition["generic_zombie"]["asm"] = "zombie_dlc3";
|
||||
level.agent_definition["generic_zombie"]["behaviorTree"] = "zombie_dlc3";
|
||||
level.agent_definition["generic_zombie"]["animclass"] = "zombie_dlc3_animclass";
|
||||
level.var_13BDC = 1;
|
||||
level.var_4878 = 0;
|
||||
level.var_BF7C = 0;
|
||||
level.var_BCCE = [];
|
||||
level.var_BCE5 = [];
|
||||
level.var_C082 = [];
|
||||
level.var_126E9 = [];
|
||||
level.var_8EE6 = [];
|
||||
level.var_5662 = [];
|
||||
level.var_D437 = "allies";
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::func_9890();
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::func_98A5();
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::func_97FB();
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::func_AEB0();
|
||||
thread func_FAB0();
|
||||
thread scripts\mp\agents\zombie\zmb_zombie_agent::func_BC5C();
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
zombieinit_dlc()
|
||||
{
|
||||
lib_0C75::func_13F9A();
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
func_FAB0()
|
||||
{
|
||||
level endon("game_ended");
|
||||
if(!isdefined(level.agent_definition))
|
||||
{
|
||||
level waittill("scripted_agents_initialized");
|
||||
}
|
||||
|
||||
level.agent_definition["generic_zombie"]["setup_func"] = ::setupagent;
|
||||
level.agent_definition["generic_zombie"]["setup_model_func"] = ::func_FACE;
|
||||
level.agent_funcs["generic_zombie"]["gametype_on_killed"] = ::scripts\cp\maps\cp_town\cp_town_damage::cp_town_onzombiekilled;
|
||||
level.agent_funcs["generic_zombie"]["gametype_on_damage_finished"] = ::lib_0CBC::func_C5CE;
|
||||
level.agent_funcs["generic_zombie"]["on_damaged"] = ::scripts\cp\maps\cp_town\cp_town_damage::cp_town_onzombiedamaged;
|
||||
level.agent_funcs["generic_zombie"]["on_damaged_finished"] = ::func_C5CE;
|
||||
level.agent_funcs["generic_zombie"]["on_killed"] = ::func_C5D2;
|
||||
level.var_BCCE["generic_zombie"] = ::lib_0CBC::func_E7FD;
|
||||
level.soldier_models = ["zombie_dlc3_male_soldier_02","zombie_dlc3_male_soldier_03","zombie_dlc3_male_soldier_04"];
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
setupagent()
|
||||
{
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::setupagent();
|
||||
self.kung_fu_punched = 0;
|
||||
self.pinched = undefined;
|
||||
}
|
||||
|
||||
//Function Number: 5
|
||||
func_FACE(param_00)
|
||||
{
|
||||
if(should_be_soldier())
|
||||
{
|
||||
self.is_soldier = 1;
|
||||
self.dontmutilate = 1;
|
||||
setup_solider_model();
|
||||
return;
|
||||
}
|
||||
|
||||
self.is_soldier = undefined;
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::func_FACE();
|
||||
}
|
||||
|
||||
//Function Number: 6
|
||||
should_be_soldier()
|
||||
{
|
||||
if(level.wave_num < 5)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
var_00 = randomint(100);
|
||||
if(var_00 < 15)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
//Function Number: 7
|
||||
setup_solider_model()
|
||||
{
|
||||
var_00 = randomint(level.soldier_models.size);
|
||||
var_01 = level.soldier_models[var_00];
|
||||
self setmodel(var_01);
|
||||
thread scripts\mp\agents\zombie\zmb_zombie_agent::func_50EF();
|
||||
}
|
||||
|
||||
//Function Number: 8
|
||||
dopiranhatrapdeath()
|
||||
{
|
||||
lib_0A1A::func_237C("piranha_trap");
|
||||
}
|
||||
|
||||
//Function Number: 9
|
||||
func_C5CE(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)
|
||||
{
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::func_C5CE(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);
|
||||
}
|
||||
|
||||
//Function Number: 10
|
||||
func_C5D2(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
|
||||
{
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::func_C5D2(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
|
||||
}
|
||||
|
||||
//Function Number: 11
|
||||
func_C4BD(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
|
||||
{
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::func_C4BD(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09);
|
||||
}
|
113
IW/PC/ALL/scripts/mp/agents/zombie_dlc4/zombie_dlc4_agent.gsc
Normal file
113
IW/PC/ALL/scripts/mp/agents/zombie_dlc4/zombie_dlc4_agent.gsc
Normal file
@ -0,0 +1,113 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\zombie_dlc4\zombie_dlc4_agent.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 9
|
||||
* Decompile Time: 541 ms
|
||||
* Timestamp: 10/27/2023 12:11:29 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
registerscriptedagent()
|
||||
{
|
||||
lib_0A02::init();
|
||||
behaviortree\zombie_dlc4::func_DEE8();
|
||||
scripts\asm\zombie_dlc4\mp\states::func_2371();
|
||||
if(!isdefined(level.var_10970))
|
||||
{
|
||||
level.var_10970 = [];
|
||||
}
|
||||
|
||||
level.agent_definition["generic_zombie"]["asm"] = "zombie_dlc4";
|
||||
level.agent_definition["generic_zombie"]["behaviorTree"] = "zombie_dlc4";
|
||||
level.agent_definition["generic_zombie"]["animclass"] = "zombie_dlc4_animclass";
|
||||
level.var_13BDC = 1;
|
||||
level.var_4878 = 0;
|
||||
level.var_BF7C = 0;
|
||||
level.var_BCCE = [];
|
||||
level.var_BCE5 = [];
|
||||
level.var_C082 = [];
|
||||
level.var_126E9 = [];
|
||||
level.var_8EE6 = [];
|
||||
level.var_5662 = [];
|
||||
level.var_D437 = "allies";
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::func_9890();
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::func_98A5();
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::func_97FB();
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::func_AEB0();
|
||||
thread func_FAB0();
|
||||
thread scripts\mp\agents\zombie\zmb_zombie_agent::func_BC5C();
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
zombieinit_dlc()
|
||||
{
|
||||
lib_0C75::func_13F9A();
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
func_FAB0()
|
||||
{
|
||||
level endon("game_ended");
|
||||
if(!isdefined(level.agent_definition))
|
||||
{
|
||||
level waittill("scripted_agents_initialized");
|
||||
}
|
||||
|
||||
level.agent_definition["generic_zombie"]["setup_func"] = ::setupagent;
|
||||
level.agent_definition["generic_zombie"]["setup_model_func"] = ::func_FACE;
|
||||
level.agent_funcs["generic_zombie"]["gametype_on_damage_finished"] = ::lib_0CBC::func_C5CE;
|
||||
level.agent_funcs["generic_zombie"]["gametype_on_killed"] = ::scripts\cp\maps\cp_final\cp_final_damage::cp_final_onzombiekilled;
|
||||
level.agent_funcs["generic_zombie"]["on_damaged"] = ::scripts\cp\maps\cp_final\cp_final_damage::cp_final_onzombiedamaged;
|
||||
level.agent_funcs["generic_zombie"]["on_damaged_finished"] = ::func_C5CE;
|
||||
level.agent_funcs["generic_zombie"]["on_killed"] = ::func_C5D2;
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
setupagent()
|
||||
{
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::setupagent();
|
||||
self.kung_fu_punched = 0;
|
||||
self.pinched = undefined;
|
||||
self.fridge_trap_marked = undefined;
|
||||
if(scripts\common\utility::istrue(self.activated_venomx_sphere))
|
||||
{
|
||||
self.activated_venomx_sphere = undefined;
|
||||
}
|
||||
|
||||
if(scripts\common\utility::istrue(self.dot_triggered))
|
||||
{
|
||||
self.dot_triggered = undefined;
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 5
|
||||
func_FACE(param_00)
|
||||
{
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::func_FACE();
|
||||
}
|
||||
|
||||
//Function Number: 6
|
||||
dopiranhatrapdeath()
|
||||
{
|
||||
lib_0A1A::func_237C("piranha_trap");
|
||||
}
|
||||
|
||||
//Function Number: 7
|
||||
func_C5CE(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)
|
||||
{
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::func_C5CE(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);
|
||||
}
|
||||
|
||||
//Function Number: 8
|
||||
func_C5D2(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
|
||||
{
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::func_C5D2(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
|
||||
}
|
||||
|
||||
//Function Number: 9
|
||||
func_C4BD(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
|
||||
{
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::func_C4BD(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09);
|
||||
}
|
662
IW/PC/ALL/scripts/mp/agents/zombie_grey/zombie_grey_agent.gsc
Normal file
662
IW/PC/ALL/scripts/mp/agents/zombie_grey/zombie_grey_agent.gsc
Normal file
@ -0,0 +1,662 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\zombie_grey\zombie_grey_agent.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 34
|
||||
* Decompile Time: 1204 ms
|
||||
* Timestamp: 10/27/2023 12:31:52 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
registerscriptedagent()
|
||||
{
|
||||
lib_0A02::init();
|
||||
lib_03B5::func_DEE8();
|
||||
lib_0F47::func_2371();
|
||||
func_9812();
|
||||
func_98E9();
|
||||
func_98E8();
|
||||
func_9885();
|
||||
func_98D8();
|
||||
thread func_FAB0();
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
func_FAB0()
|
||||
{
|
||||
level endon("game_ended");
|
||||
if(!isdefined(level.agent_definition))
|
||||
{
|
||||
level waittill("scripted_agents_initialized");
|
||||
}
|
||||
|
||||
level.agent_definition["zombie_grey"]["setup_func"] = ::setupagent;
|
||||
level.agent_funcs["zombie_grey"]["on_killed"] = ::func_C5D1;
|
||||
level.agent_funcs["zombie_grey"]["on_damaged"] = ::func_C5CF;
|
||||
level.agent_funcs["zombie_grey"]["gametype_on_killed"] = ::lib_0CBC::func_C5D2;
|
||||
level.agent_funcs["zombie_grey"]["gametype_on_damage_finished"] = ::func_C5D0;
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
func_98E8()
|
||||
{
|
||||
scripts\common\utility::flag_init("clone_complete");
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
func_9885()
|
||||
{
|
||||
level.var_85EE = 0;
|
||||
}
|
||||
|
||||
//Function Number: 5
|
||||
func_98D8()
|
||||
{
|
||||
level.var_85F2 = [];
|
||||
var_00 = [(324,1657,195),(319,1164,195),(980,1639,196),(966,1148,196),(210,3338,259),(425,3778,259),(985,3777,259),(1164,3204,259),(453,187,226),(452,-86,195),(859,189,195),(839,-62,227),(184,2260,284),(1066,2275,285),(974,1752,220),(334,1049,220),(967,1516,219),(968,1281,219),(967,1043,222),(934,313,248),(373,314,243),(236,990,243),(1048,991,242),(1272,999,283),(1224,319,297),(-56,990,297),(77,318,297),(141,-197,302),(-344,-941,182),(133,-1281,606),(695,-1616,611),(449,-1472,595),(-277,-396,239),(-395,-339,388),(1151,-840,115)];
|
||||
foreach(var_02 in var_00)
|
||||
{
|
||||
var_03 = func_B28D(var_02);
|
||||
level.var_85F2[level.var_85F2.size] = var_03;
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 6
|
||||
func_B28D(param_00)
|
||||
{
|
||||
var_01 = spawnstruct();
|
||||
var_01.origin = param_00;
|
||||
return var_01;
|
||||
}
|
||||
|
||||
//Function Number: 7
|
||||
setupagent()
|
||||
{
|
||||
self.var_71D0 = ::func_1004E;
|
||||
self.accuracy = 0.5;
|
||||
self.noattackeraccuracymod = 0;
|
||||
self.sharpturnnotifydist = 48;
|
||||
self.last_enemy_sight_time = 0;
|
||||
self.desiredenemydistmax = 360;
|
||||
self.desiredenemydistmin = 340;
|
||||
self.maxtimetostrafewithoutlos = 3000;
|
||||
self.strafeifwithindist = self.desiredenemydistmax + 100;
|
||||
self.fastcrawlanimscale = 12;
|
||||
self.forcefastcrawldist = 340;
|
||||
self.fastcrawlmaxhealth = 40;
|
||||
self.dismemberchargeexplodedistsq = 2500;
|
||||
self.explosionradius = 75;
|
||||
self.explosiondamagemin = 30;
|
||||
self.explosiondamagemax = 50;
|
||||
self.var_86BD = self getentitynumber();
|
||||
self.var_272A = 0;
|
||||
self.meleerangesq = 22500;
|
||||
self.meleechargedist = 160;
|
||||
self.meleechargedistvsplayer = 250;
|
||||
self.meleechargedistreloadmultiplier = 1.2;
|
||||
self.maxzdiff = 50;
|
||||
self.meleeactorboundsradius = 32;
|
||||
self.meleemindamage = 50;
|
||||
self.meleemaxdamage = 70;
|
||||
self.var_B62B = ::func_85F8;
|
||||
self.var_BF9F = gettime() + randomintrange(3000,5000);
|
||||
self.var_9343 = 1;
|
||||
self.var_9340 = 1;
|
||||
self.var_9342 = 1;
|
||||
self.var_9341 = 1;
|
||||
self.allowpain = 0;
|
||||
self.var_1A44 = 90;
|
||||
self.footstepdetectdist = 600;
|
||||
self.footstepdetectdistwalk = 600;
|
||||
self.footstepdetectdistsprint = 600;
|
||||
self.var_4F63 = ::func_85F6;
|
||||
func_2475();
|
||||
func_FAA6();
|
||||
self setscriptablepartstate("backpack_dome_shield","on");
|
||||
if(isdefined(level.var_8600))
|
||||
{
|
||||
[[ level.var_8600 ]](self);
|
||||
}
|
||||
|
||||
thread scriptedgoalwaitforarrival();
|
||||
thread func_8CAC(self);
|
||||
}
|
||||
|
||||
//Function Number: 8
|
||||
func_85F6(param_00,param_01)
|
||||
{
|
||||
if(scripts\common\utility::istrue(self.var_927D))
|
||||
{
|
||||
lib_0C33::func_295A();
|
||||
return;
|
||||
}
|
||||
|
||||
lib_0C33::func_295C();
|
||||
}
|
||||
|
||||
//Function Number: 9
|
||||
func_85F8(param_00,param_01)
|
||||
{
|
||||
var_02 = vectornormalize(param_01.origin - param_00.origin) * (1,1,0);
|
||||
param_01 setvelocity(var_02 * 800);
|
||||
param_00 playsound("grey_force_push");
|
||||
if(isplayer(param_01))
|
||||
{
|
||||
param_01 earthquakeforplayer(0.5,1,param_01.origin,800);
|
||||
if(!scripts\common\utility::istrue(param_00.var_927D))
|
||||
{
|
||||
param_01 shellshock("frag_grenade_mp",1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 10
|
||||
func_1004E()
|
||||
{
|
||||
if(isdefined(self.allowpain) && self.allowpain == 0)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
var_00 = gettime();
|
||||
if(var_00 < self.var_BF9F)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
self.var_BF9F = var_00 + randomintrange(3000,5000);
|
||||
return 1;
|
||||
}
|
||||
|
||||
//Function Number: 11
|
||||
func_2475()
|
||||
{
|
||||
if(isdefined(self.var_2AB4) && self.var_2AB4 == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
self.var_13525 = "american";
|
||||
self method_82C6("cloth");
|
||||
var_00 = [];
|
||||
var_00["tag_armor_head_ri"] = 165;
|
||||
var_00["tag_armor_head_le"] = 165;
|
||||
var_00["tag_armor_head_front"] = 165;
|
||||
var_00["tag_armor_forearm_le"] = 120;
|
||||
var_00["tag_armor_bicep_le"] = 120;
|
||||
var_00["tag_armor_forearm_ri"] = 120;
|
||||
var_00["tag_armor_bicep_ri"] = 120;
|
||||
var_00["tag_armor_chest_upper_le"] = 165;
|
||||
var_00["tag_armor_chest_upper_ri"] = 165;
|
||||
var_00["tag_armor_back_upper"] = 165;
|
||||
var_00["tag_armor_chest_stomach"] = 165;
|
||||
var_00["tag_armor_back_lower"] = 165;
|
||||
var_00["tag_armor_leg_thigh_front_le"] = 120;
|
||||
var_00["tag_armor_leg_thigh_back_le"] = 120;
|
||||
var_00["tag_armor_leg_thigh_front_ri"] = 120;
|
||||
var_00["tag_armor_leg_thigh_back_ri"] = 120;
|
||||
var_00["tag_armor_kneepad_behind_le"] = 50;
|
||||
var_00["tag_armor_kneepad_down_le"] = 50;
|
||||
var_00["tag_armor_kneepad_upper_le"] = 50;
|
||||
var_00["tag_armor_kneepad_behind_ri"] = 50;
|
||||
var_00["tag_armor_kneepad_down_ri"] = 50;
|
||||
var_00["tag_armor_kneepad_upper_ri"] = 50;
|
||||
self.var_2AB4 = 1;
|
||||
}
|
||||
|
||||
//Function Number: 12
|
||||
func_FAA6()
|
||||
{
|
||||
self.var_2AB5 = 1;
|
||||
}
|
||||
|
||||
//Function Number: 13
|
||||
func_17CC(param_00,param_01)
|
||||
{
|
||||
if(!isdefined(level.var_85DF))
|
||||
{
|
||||
anim.var_85DF = [];
|
||||
anim.var_85E1 = [];
|
||||
}
|
||||
|
||||
var_02 = level.var_85DF.size;
|
||||
level.var_85DF[var_02] = param_00;
|
||||
level.var_85E1[var_02] = param_01;
|
||||
}
|
||||
|
||||
//Function Number: 14
|
||||
func_9812()
|
||||
{
|
||||
func_17CC(0,(41.5391,7.28883,72.2128));
|
||||
func_17CC(1,(34.8849,-4.77048,74.0488));
|
||||
}
|
||||
|
||||
//Function Number: 15
|
||||
scriptedgoalwaitforarrival()
|
||||
{
|
||||
self endon("death");
|
||||
for(;;)
|
||||
{
|
||||
self waittill("goal_reached");
|
||||
if(isdefined(self.var_EF7D))
|
||||
{
|
||||
var_00 = self.var_EF7D;
|
||||
}
|
||||
else if(isdefined(self.var_EF7A))
|
||||
{
|
||||
var_00 = self.var_EF7A.origin;
|
||||
}
|
||||
else if(isdefined(self.var_EF7C))
|
||||
{
|
||||
var_00 = self.var_EF7C.origin;
|
||||
}
|
||||
else
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var_01 = 16;
|
||||
if(isdefined(self.var_EF7E))
|
||||
{
|
||||
var_01 = self.var_EF7E * self.var_EF7E;
|
||||
}
|
||||
|
||||
if(distance2dsquared(self.origin,var_00) <= var_01)
|
||||
{
|
||||
self.var_EF7D = undefined;
|
||||
self.var_EF7C = undefined;
|
||||
if(!isdefined(self.var_EF7B))
|
||||
{
|
||||
self.var_EF7A = undefined;
|
||||
}
|
||||
|
||||
self notify("scriptedGoal_reached");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 16
|
||||
func_F834(param_00,param_01)
|
||||
{
|
||||
if(!isdefined(param_01))
|
||||
{
|
||||
param_01 = 0;
|
||||
}
|
||||
|
||||
self.var_EF79 = param_01;
|
||||
self.var_EF73 = param_00;
|
||||
}
|
||||
|
||||
//Function Number: 17
|
||||
func_F835(param_00,param_01)
|
||||
{
|
||||
self.var_EF7A = undefined;
|
||||
self.var_EF7B = undefined;
|
||||
self.var_EF7C = undefined;
|
||||
self.var_EF7D = param_00;
|
||||
self.var_EF7E = param_01;
|
||||
}
|
||||
|
||||
//Function Number: 18
|
||||
func_F833(param_00,param_01)
|
||||
{
|
||||
self.var_EF7D = undefined;
|
||||
self.var_EF7A = undefined;
|
||||
self.var_EF7B = undefined;
|
||||
self.var_EF7C = param_00;
|
||||
self.var_EF7E = param_01;
|
||||
}
|
||||
|
||||
//Function Number: 19
|
||||
func_F832(param_00,param_01,param_02)
|
||||
{
|
||||
self.var_EF7D = undefined;
|
||||
self.var_EF7C = undefined;
|
||||
self.var_EF7A = param_00;
|
||||
self.var_EF7E = param_01;
|
||||
if(isdefined(param_02) && param_02)
|
||||
{
|
||||
self.var_EF7B = param_02;
|
||||
return;
|
||||
}
|
||||
|
||||
self.var_EF7B = undefined;
|
||||
}
|
||||
|
||||
//Function Number: 20
|
||||
func_41D9()
|
||||
{
|
||||
if(isdefined(self.var_EF7D) || isdefined(self.var_EF7A) || isdefined(self.var_EF7C))
|
||||
{
|
||||
self.var_EF7D = undefined;
|
||||
self.var_EF7A = undefined;
|
||||
self.var_EF7B = undefined;
|
||||
self.var_EF7C = undefined;
|
||||
self method_841F();
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 21
|
||||
func_C5D1(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
|
||||
{
|
||||
scripts\mp\_mp_agent::func_5006(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
|
||||
foreach(var_0A in level.players)
|
||||
{
|
||||
var_0A scripts\cp\_persistence::give_player_xp(1000,1);
|
||||
}
|
||||
|
||||
if(isdefined(level.var_85F1))
|
||||
{
|
||||
[[ level.var_85F1 ]](self,param_01,param_04,param_06,param_03);
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 22
|
||||
try_merge_clones(param_00)
|
||||
{
|
||||
if(isdefined(level.var_10850) && level.var_10850.size > 1)
|
||||
{
|
||||
if(!isdefined(param_00))
|
||||
{
|
||||
param_00 = func_79F0();
|
||||
}
|
||||
|
||||
var_01 = func_79F1(param_00);
|
||||
foreach(var_03 in level.var_10850)
|
||||
{
|
||||
if(var_03 == var_01)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
func_B67C(var_03,var_01);
|
||||
}
|
||||
|
||||
func_12BFD(var_01);
|
||||
var_01 notify("update_mobile_shield_visibility",1);
|
||||
var_01 thread func_50D4(var_01);
|
||||
}
|
||||
|
||||
level notify("grey_duplicating_attack_end");
|
||||
}
|
||||
|
||||
//Function Number: 23
|
||||
func_50D4(param_00)
|
||||
{
|
||||
param_00 endon("death");
|
||||
wait(1.5);
|
||||
param_00 suicide();
|
||||
}
|
||||
|
||||
//Function Number: 24
|
||||
func_12BFD(param_00)
|
||||
{
|
||||
func_B2C4(param_00);
|
||||
param_00.var_927D = 0;
|
||||
param_00.var_10AB7 = undefined;
|
||||
param_00.desiredenemydistmax = 360;
|
||||
param_00.meleerangesq = 90000;
|
||||
param_00.strafeifwithindist = param_00.desiredenemydistmax + 100;
|
||||
param_00.var_380E = 0;
|
||||
param_00.var_380F = 0;
|
||||
param_00 setmodel("park_alien_gray");
|
||||
param_00 method_834E();
|
||||
lib_0C2E::func_F499(param_00);
|
||||
lib_0C2E::func_E223(param_00);
|
||||
lib_0C78::func_E2FB(param_00);
|
||||
lib_0C78::func_E2FA(param_00);
|
||||
param_00 thread func_8CAC(param_00);
|
||||
param_00 scripts\mp\_mp_agent::func_FAFA("iw7_zapper_grey");
|
||||
}
|
||||
|
||||
//Function Number: 25
|
||||
func_B2C4(param_00)
|
||||
{
|
||||
var_01 = param_00.var_269C;
|
||||
foreach(var_03 in var_01)
|
||||
{
|
||||
if(scripts\common\utility::func_2286(param_00.var_269D,var_03.var_113E0))
|
||||
{
|
||||
var_03 show();
|
||||
continue;
|
||||
}
|
||||
|
||||
param_00.var_269C = scripts\common\utility::func_22A9(param_00.var_269C,var_03);
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 26
|
||||
func_79F1(param_00)
|
||||
{
|
||||
var_01 = undefined;
|
||||
var_02 = -1;
|
||||
foreach(var_04 in level.var_10850)
|
||||
{
|
||||
if(!isdefined(var_04))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(var_04 == param_00)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(var_04.health > var_02)
|
||||
{
|
||||
var_01 = var_04;
|
||||
var_02 = var_04.health;
|
||||
}
|
||||
}
|
||||
|
||||
return var_01;
|
||||
}
|
||||
|
||||
//Function Number: 27
|
||||
func_79F0()
|
||||
{
|
||||
var_00 = undefined;
|
||||
var_01 = 9999999;
|
||||
foreach(var_03 in level.var_10850)
|
||||
{
|
||||
if(!isdefined(var_03))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(var_03.health < var_01)
|
||||
{
|
||||
var_00 = var_03;
|
||||
var_01 = var_03.health;
|
||||
}
|
||||
}
|
||||
|
||||
return var_00;
|
||||
}
|
||||
|
||||
//Function Number: 28
|
||||
func_B67C(param_00,param_01)
|
||||
{
|
||||
level thread func_CD95(param_00,param_01);
|
||||
param_01.health = param_01.health + param_00.health;
|
||||
param_00.nocorpse = 1;
|
||||
if(isalive(param_00))
|
||||
{
|
||||
param_00 suicide();
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 29
|
||||
func_CD95(param_00,param_01)
|
||||
{
|
||||
var_02 = spawn("script_model",param_00.origin + (0,0,50));
|
||||
var_02 setmodel("tag_origin");
|
||||
wait(0.2);
|
||||
playfxontag(level._effect["zombie_grey_teleport_trail"],var_02,"tag_origin");
|
||||
var_02 moveto(param_01.origin + (0,0,50),0.8,0.8);
|
||||
var_02 waittill("movedone");
|
||||
var_02 delete();
|
||||
}
|
||||
|
||||
//Function Number: 30
|
||||
func_C5CF(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 = 3.5;
|
||||
if(isdefined(param_01) && param_01 == self)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if(scripts\common\utility::istrue(self.var_9C9D))
|
||||
{
|
||||
if(isdefined(param_04) && param_04 == "MOD_MELEE" && isdefined(self.var_1B6C) && isdefined(param_06) && distancesquared(param_06,self.var_1B6C.origin) < 225)
|
||||
{
|
||||
self playsound("grey_fuse_smash");
|
||||
self.var_4C17 = max(self.var_B748,self.var_4C17 - self.var_B43F);
|
||||
self.var_B570 = param_01;
|
||||
self notify("stop_regen_health");
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
var_0D = gettime();
|
||||
if(isplayer(param_01))
|
||||
{
|
||||
if(!scripts\common\utility::istrue(self.actually_doing_regen))
|
||||
{
|
||||
scripts\cp\_agent_utils::func_D96B(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,self);
|
||||
}
|
||||
|
||||
if(func_FF8A(self,param_01,var_0D))
|
||||
{
|
||||
param_01.var_D8A2 = var_0D;
|
||||
if(randomint(100) > 80)
|
||||
{
|
||||
param_01 thread scripts\cp\_vo::try_to_play_vo("nag_ufo_fusefail","zmb_comment_vo","low",3,0,0,1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if(isdefined(var_0C) && var_0C == "j_chest_light")
|
||||
{
|
||||
param_09 = "head";
|
||||
param_03 = int(param_03 * var_0D);
|
||||
}
|
||||
else if(isdefined(param_09) && param_09 == "head" || param_09 == "helmet" || param_09 == "neck")
|
||||
{
|
||||
param_09 = "soft";
|
||||
param_03 = int(param_03 / var_0D);
|
||||
}
|
||||
|
||||
if(isdefined(param_06) && param_06 == "zmb_imsprojectile_mp" || param_06 == "zmb_fireworksprojectile_mp")
|
||||
{
|
||||
param_03 = min(int(self.maxhealth / 20),1000);
|
||||
}
|
||||
|
||||
param_04 = param_04 | level.var_92C0;
|
||||
lib_0CBC::func_C5CD(param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B,var_0C);
|
||||
if(isdefined(param_03))
|
||||
{
|
||||
if(isplayer(param_02))
|
||||
{
|
||||
if(!isdefined(self.var_111BF))
|
||||
{
|
||||
lib_0C2E::func_E223(self);
|
||||
}
|
||||
|
||||
self.var_111BF = self.var_111BF + param_03;
|
||||
if(!scripts\common\utility::func_2286(self.var_DDBA,param_02))
|
||||
{
|
||||
self.var_DDBA = scripts\common\utility::array_add(self.var_DDBA,param_02);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 31
|
||||
func_C5D0(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)
|
||||
{
|
||||
lib_0CBC::func_C5CE(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);
|
||||
lib_0C2E::func_12888(self,param_01);
|
||||
lib_0C2E::func_12870(self);
|
||||
}
|
||||
|
||||
//Function Number: 32
|
||||
func_98E9()
|
||||
{
|
||||
level._effect["zombie_grey_shockwave_begin"] = loadfx("vfx/iw7/core/zombie/vfx_zmb_swave_begin.vfx");
|
||||
level._effect["zombie_grey_shockwave_deploy"] = loadfx("vfx/iw7/core/zombie/vfx_zmb_swave_deploy.vfx");
|
||||
level._effect["zombie_grey_teleport"] = loadfx("vfx/old/_requests/archetypes/vfx_phase_shift_start_volume");
|
||||
level._effect["zombie_grey_teleport_trail"] = loadfx("vfx/iw7/core/zombie/vfx_zmb_grey_tport_trail.vfx");
|
||||
level._effect["zombie_grey_start_duplicate"] = loadfx("vfx/iw7/_requests/coop/vfx_magicwheel_beam.vfx");
|
||||
level._effect["summon_zombie_energy_ring"] = loadfx("vfx/iw7/core/zombie/vfx_zmb_grey_spawn_portal.vfx");
|
||||
level._effect["zombie_mini_grey_shock_arc"] = loadfx("vfx/iw7/_requests/coop/vfx_mini_grey_shock_arc.vfx");
|
||||
}
|
||||
|
||||
//Function Number: 33
|
||||
func_FF8A(param_00,param_01,param_02)
|
||||
{
|
||||
var_03 = 3000;
|
||||
var_04 = 22500;
|
||||
if(distancesquared(param_00.origin,param_01.origin) > var_04)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(!isdefined(param_01.var_D8A2))
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
if(param_02 - param_01.var_D8A2 > var_03)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
//Function Number: 34
|
||||
func_8CAC(param_00)
|
||||
{
|
||||
param_00 notify("stop_health_light_monitor");
|
||||
level endon("game_ended");
|
||||
param_00 endon("death");
|
||||
param_00 endon("stop_health_light_monitor");
|
||||
scripts\common\utility::func_136F7();
|
||||
if(scripts\common\utility::istrue(param_00.var_927D))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
while(!isdefined(param_00.maxhealth))
|
||||
{
|
||||
scripts\common\utility::func_136F7();
|
||||
}
|
||||
|
||||
var_01 = param_00.maxhealth * 0.33;
|
||||
var_02 = param_00.maxhealth * 0.66;
|
||||
for(;;)
|
||||
{
|
||||
if(param_00.health <= var_01)
|
||||
{
|
||||
param_00 setscriptablepartstate("health_light","red");
|
||||
}
|
||||
else if(param_00.health <= var_02)
|
||||
{
|
||||
param_00 setscriptablepartstate("health_light","yellow");
|
||||
}
|
||||
else
|
||||
{
|
||||
param_00 setscriptablepartstate("health_light","green");
|
||||
}
|
||||
|
||||
param_00 scripts\common\utility::waittill_any_3("damage","update_health_light");
|
||||
}
|
||||
}
|
@ -0,0 +1,172 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\zombie_sasquatch\zombie_sasquatch_agent.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 10
|
||||
* Decompile Time: 634 ms
|
||||
* Timestamp: 10/27/2023 12:11:29 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
zombiesasquatchagentinit()
|
||||
{
|
||||
registerscriptedagent();
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
registerscriptedagent()
|
||||
{
|
||||
lib_0A02::init();
|
||||
behaviortree\zombie_sasquatch::func_DEE8();
|
||||
scripts\asm\zombie_sasquatch\mp\states::func_2371();
|
||||
thread func_FAB0();
|
||||
func_AE11();
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
func_FAB0()
|
||||
{
|
||||
level endon("game_ended");
|
||||
if(!isdefined(level.agent_definition))
|
||||
{
|
||||
level waittill("scripted_agents_initialized");
|
||||
}
|
||||
|
||||
if(!isdefined(level.var_10970))
|
||||
{
|
||||
level.var_10970 = [];
|
||||
}
|
||||
|
||||
level.var_10970["zombie_sasquatch"] = [];
|
||||
level.agent_definition["zombie_sasquatch"]["setup_func"] = ::setupagent;
|
||||
level.agent_definition["zombie_sasquatch"]["setup_model_func"] = ::func_FACE;
|
||||
level.agent_funcs["zombie_sasquatch"] = [];
|
||||
level.agent_funcs["zombie_sasquatch"]["on_killed"] = ::onsasquatchkilled;
|
||||
level.agent_funcs["zombie_sasquatch"]["on_damaged_finished"] = ::onsasquatchdamagefinished;
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
func_AE11()
|
||||
{
|
||||
level._effect["sasquatch_rock_hit"] = loadfx("vfx/iw7/levels/cp_rave/sasquatch/vfx_rave_sas_projectile_impact.vfx");
|
||||
}
|
||||
|
||||
//Function Number: 5
|
||||
setupagent()
|
||||
{
|
||||
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.var_B36E = undefined;
|
||||
self.var_126A3 = undefined;
|
||||
self.var_8C35 = 0;
|
||||
self.var_9341 = 1;
|
||||
self.var_1B03 = "idle";
|
||||
self.var_1F5 = "run";
|
||||
self.sharpturnnotifydist = 150;
|
||||
self.var_257 = 20;
|
||||
self.height = 53;
|
||||
self.var_252B = 26 + self.var_257;
|
||||
self.var_2539 = 54;
|
||||
self.var_253A = -64;
|
||||
self.var_4D45 = 2250000;
|
||||
self.var_181 = 1;
|
||||
self.var_86BD = self getentitynumber();
|
||||
self.var_BCE4 = 1;
|
||||
self.var_C081 = 1;
|
||||
self.var_126E8 = 1;
|
||||
self.var_772A = 1;
|
||||
self.var_2AB2 = 0;
|
||||
self.var_2AB8 = 1;
|
||||
self.var_118FC = 0;
|
||||
self.var_2F = 1;
|
||||
self.var_503C = self.var_257 + 1;
|
||||
self.var_565C = 0;
|
||||
self.var_54CB = 0;
|
||||
self.var_9E0C = undefined;
|
||||
self.flung = undefined;
|
||||
self.var_565C = 0;
|
||||
self.var_B0FC = 1;
|
||||
self.full_gib = 0;
|
||||
self.croc_chomp = 0;
|
||||
self.spawn_round_num = level.wave_num;
|
||||
self.footstepdetectdist = 600;
|
||||
self.footstepdetectdistwalk = 600;
|
||||
self.footstepdetectdistsprint = 600;
|
||||
self.var_A8A2 = [];
|
||||
self.allowpain = 1;
|
||||
self method_84E6(45);
|
||||
if(getdvarint("scr_zombie_left_foot_sharp_turn_only",0) == 1)
|
||||
{
|
||||
self.var_AB3F = 1;
|
||||
}
|
||||
|
||||
self.entered_playspace = 1;
|
||||
thread func_899C();
|
||||
}
|
||||
|
||||
//Function Number: 6
|
||||
func_FACE(param_00)
|
||||
{
|
||||
self setmodel("zmb_sasquatch_fullbody");
|
||||
}
|
||||
|
||||
//Function Number: 7
|
||||
setup_eye_glow()
|
||||
{
|
||||
self endon("death");
|
||||
self method_80BB(1,0.1);
|
||||
wait(1);
|
||||
self setscriptablepartstate("right_eye","active");
|
||||
self setscriptablepartstate("left_eye","active");
|
||||
}
|
||||
|
||||
//Function Number: 8
|
||||
func_899C()
|
||||
{
|
||||
self endon("death");
|
||||
level waittill("game_ended");
|
||||
self method_841F();
|
||||
var_00 = self.var_164D[self.var_238F];
|
||||
var_01 = var_00.var_4BC0;
|
||||
var_02 = level.var_2303[self.var_238F].var_10E2F[var_01];
|
||||
lib_0A1A::func_2388(self.var_238F,var_01,var_02,var_02.var_116FB);
|
||||
lib_0A1A::func_238A(self.var_238F,"idle",0.2,undefined,undefined,undefined);
|
||||
}
|
||||
|
||||
//Function Number: 9
|
||||
onsasquatchkilled(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
|
||||
{
|
||||
self method_80BB(1,0);
|
||||
self setscriptablepartstate("right_eye","inactive");
|
||||
self setscriptablepartstate("left_eye","inactive");
|
||||
scripts\mp\_mp_agent::func_5006(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
|
||||
}
|
||||
|
||||
//Function Number: 10
|
||||
onsasquatchdamagefinished(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)
|
||||
{
|
||||
scripts\mp\_mp_agent::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);
|
||||
}
|
@ -0,0 +1,90 @@
|
||||
/*******************************************************************
|
||||
* Decompiled By: Bog
|
||||
* Decompiled File: scripts\mp\agents\zombie_skeleton\zombie_skeleton.gsc
|
||||
* Game: Call of Duty: Infinite Warfare
|
||||
* Platform: PC
|
||||
* Function Count: 8
|
||||
* Decompile Time: 431 ms
|
||||
* Timestamp: 10/27/2023 12:11:30 AM
|
||||
*******************************************************************/
|
||||
|
||||
//Function Number: 1
|
||||
zombie_skeleton_init()
|
||||
{
|
||||
registerscriptedagent();
|
||||
level.agent_funcs["skeleton"]["on_damaged"] = ::lib_0CBC::func_C5CD;
|
||||
level.agent_funcs["skeleton"]["gametype_on_damage_finished"] = ::lib_0CBC::func_C5CE;
|
||||
level.agent_funcs["skeleton"]["gametype_on_killed"] = ::lib_0CBC::func_C5D2;
|
||||
level.var_BCCE["skeleton"] = ::lib_0CBC::func_E7FD;
|
||||
}
|
||||
|
||||
//Function Number: 2
|
||||
registerscriptedagent()
|
||||
{
|
||||
lib_0A02::init();
|
||||
func_AEB0();
|
||||
thread func_FAB0();
|
||||
}
|
||||
|
||||
//Function Number: 3
|
||||
func_FAB0()
|
||||
{
|
||||
level endon("game_ended");
|
||||
if(!isdefined(level.agent_definition))
|
||||
{
|
||||
level waittill("scripted_agents_initialized");
|
||||
}
|
||||
|
||||
level.agent_definition["skeleton"]["setup_func"] = ::setupagent;
|
||||
level.agent_definition["skeleton"]["setup_model_func"] = ::func_FACE;
|
||||
level.agent_funcs["skeleton"]["on_damaged_finished"] = ::scripts\mp\agents\zombie\zmb_zombie_agent::func_C5CE;
|
||||
level.agent_funcs["skeleton"]["on_killed"] = ::scripts\mp\agents\zombie\zmb_zombie_agent::func_C5D2;
|
||||
}
|
||||
|
||||
//Function Number: 4
|
||||
setupagent()
|
||||
{
|
||||
scripts\mp\agents\zombie\zmb_zombie_agent::setupagent();
|
||||
self.is_skeleton = 1;
|
||||
}
|
||||
|
||||
//Function Number: 5
|
||||
func_899C()
|
||||
{
|
||||
self endon("death");
|
||||
level waittill("game_ended");
|
||||
self method_841F();
|
||||
foreach(var_04, var_01 in self.var_164D)
|
||||
{
|
||||
var_02 = var_01.var_4BC0;
|
||||
var_03 = level.var_2303[var_04].var_10E2F[var_02];
|
||||
lib_0A1A::func_2388(var_04,var_02,var_03,var_03.var_116FB);
|
||||
lib_0A1A::func_238A(var_04,"idle",0.2,undefined,undefined,undefined);
|
||||
}
|
||||
}
|
||||
|
||||
//Function Number: 6
|
||||
func_FACE(param_00)
|
||||
{
|
||||
if(isdefined(level.skeleton_model_override))
|
||||
{
|
||||
self setmodel(level.skeleton_model_override);
|
||||
}
|
||||
else
|
||||
{
|
||||
self setmodel("fullbody_zmb_skeleton");
|
||||
}
|
||||
|
||||
thread scripts\mp\agents\zombie\zmb_zombie_agent::func_50EF();
|
||||
}
|
||||
|
||||
//Function Number: 7
|
||||
func_AEB0()
|
||||
{
|
||||
}
|
||||
|
||||
//Function Number: 8
|
||||
should_spawn_skeleton()
|
||||
{
|
||||
return undefined;
|
||||
}
|
Reference in New Issue
Block a user