mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-30 03:17:52 -05:00
1669 lines
37 KiB
Plaintext
1669 lines
37 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: scripts\mp\killstreaks\_rc8.gsc
|
|
* Game: Call of Duty: Infinite Warfare
|
|
* Platform: PC
|
|
* Function Count: 59
|
|
* Decompile Time: 3161 ms
|
|
* Timestamp: 10/27/2023 12:29:25 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
init()
|
|
{
|
|
level._effect["rc8_malfunction"] = loadfx("vfx/iw7/core/mp/killstreaks/vfx_rc8_glitch_out.vfx");
|
|
level._effect["rc8_explode"] = loadfx("vfx/iw7/core/mp/killstreaks/vfx_rc8_dest_exp.vfx");
|
|
scripts\mp\killstreaks\_killstreaks::func_DEFB("remote_c8",::func_128F7);
|
|
var_00 = ["passive_increased_speed","passive_decreased_duration","passive_energy_machgun","passive_boosters","passive_speed_duration"];
|
|
scripts\mp\_killstreak_loot::func_DF07("remote_c8",var_00);
|
|
}
|
|
|
|
//Function Number: 2
|
|
func_F8F4()
|
|
{
|
|
level.agent_funcs["remote_c8"] = level.agent_funcs["player"];
|
|
level.agent_funcs["remote_c8"]["think"] = ::func_DCF4;
|
|
level.agent_funcs["remote_c8"]["on_killed"] = ::func_DCF3;
|
|
level.agent_funcs["remote_c8"]["on_damaged"] = ::func_DCF2;
|
|
level.agent_funcs["remote_c8"]["gametype_update"] = ::func_BFF0;
|
|
}
|
|
|
|
//Function Number: 3
|
|
func_DCF4()
|
|
{
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
self endon("owner_disconnect");
|
|
level endon("game_ended");
|
|
self method_845A("rc8_mp");
|
|
self botsetflag("disable_wall_traversals",1);
|
|
self botsetflag("ads_shield",1);
|
|
self botsetstance("stand");
|
|
self setmovespeedscale(0.8);
|
|
thread func_DCF9();
|
|
thread func_DCF7();
|
|
thread func_DCFA();
|
|
thread func_DCFB();
|
|
thread rc8_watchvoice();
|
|
thread rc8_watchhostmigration();
|
|
thread rc8_watchupdateuav();
|
|
thread rc8_manageboostfx();
|
|
thread rc8_watchupdatecranked();
|
|
}
|
|
|
|
//Function Number: 4
|
|
func_DCF5(param_00,param_01,param_02,param_03,param_04,param_05)
|
|
{
|
|
if(isrc8falldamage(param_04))
|
|
{
|
|
return;
|
|
}
|
|
|
|
self notify("rc8_damage",param_01,param_00);
|
|
}
|
|
|
|
//Function Number: 5
|
|
func_DCFB()
|
|
{
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
self.var_222 endon("destroyed_rc8");
|
|
level endon("game_ended");
|
|
var_00 = scripts\common\trace::func_48BC(0,1,1,1,1,1,1);
|
|
self waittill("rc8_launched");
|
|
var_01 = 1;
|
|
var_02 = undefined;
|
|
for(;;)
|
|
{
|
|
if(!self isonground())
|
|
{
|
|
if(scripts\mp\_utility::func_9FB3(self.booston))
|
|
{
|
|
while(scripts\mp\_utility::func_9FB3(self.booston))
|
|
{
|
|
scripts\common\utility::func_136F7();
|
|
}
|
|
}
|
|
|
|
var_03 = self.origin[2];
|
|
if(scripts\mp\_utility::func_9FB3(var_01))
|
|
{
|
|
var_01 = undefined;
|
|
var_02 = "heavy_damage";
|
|
thread startmidairdamage(var_02);
|
|
}
|
|
|
|
while(!self isonground())
|
|
{
|
|
if(scripts\mp\_utility::func_9FB3(self.booston))
|
|
{
|
|
while(scripts\mp\_utility::func_9FB3(self.booston))
|
|
{
|
|
scripts\common\utility::func_136F7();
|
|
}
|
|
|
|
var_03 = self.origin[2];
|
|
continue;
|
|
}
|
|
|
|
scripts\common\utility::func_136F7();
|
|
}
|
|
|
|
self notify("on_ground");
|
|
var_04 = self.origin[2];
|
|
if(var_03 - var_04 < 60)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(self.midairdamage))
|
|
{
|
|
self.var_FC99 = 1;
|
|
self.midairdamage setscriptablepartstate("fall","damage",0);
|
|
thread func_511F(0.05);
|
|
wait(0.2);
|
|
self.midairdamage setscriptablepartstate("fall","neutral",0);
|
|
}
|
|
}
|
|
|
|
scripts\common\utility::func_136F7();
|
|
}
|
|
}
|
|
|
|
//Function Number: 6
|
|
startmidairdamage(param_00)
|
|
{
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
self endon("on_ground");
|
|
self.var_222 endon("destroyed_rc8");
|
|
level endon("game_ended");
|
|
for(;;)
|
|
{
|
|
self.midairdamage setscriptablepartstate("air_damage",param_00,0);
|
|
scripts\common\utility::func_136F7();
|
|
self.midairdamage setscriptablepartstate("air_damage","neutral",0);
|
|
}
|
|
}
|
|
|
|
//Function Number: 7
|
|
rc8_watchvoice()
|
|
{
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
self.var_222 endon("destroyed_rc8");
|
|
level endon("game_ended");
|
|
var_00 = undefined;
|
|
var_01 = undefined;
|
|
for(;;)
|
|
{
|
|
self waittill("try_play_voice",var_02,var_03);
|
|
if(isdefined(var_00) && var_00 == var_03)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(var_01) && gettime() < var_01 + var_02 + 5000)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_00 = var_03;
|
|
var_01 = gettime();
|
|
wait(var_02);
|
|
if(isdefined(self.var_222.var_4BE1) && self.var_222.var_4BE1 == "MANUAL")
|
|
{
|
|
self playsoundtoteam(var_03,"allies",self.var_222);
|
|
self playsoundtoteam(var_03,"axis",self.var_222);
|
|
continue;
|
|
}
|
|
|
|
self playsoundtoteam(var_03,"allies");
|
|
self playsoundtoteam(var_03,"axis");
|
|
}
|
|
}
|
|
|
|
//Function Number: 8
|
|
rc8_watchhostmigration()
|
|
{
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
self.var_222 endon("destroyed_rc8");
|
|
level endon("game_ended");
|
|
for(;;)
|
|
{
|
|
level waittill("host_migration_begin");
|
|
rc8_disable_movement(1);
|
|
rc8_disable_attack(1);
|
|
rc8_disable_rotation(1);
|
|
level waittill("host_migration_end");
|
|
rc8_disable_movement(0);
|
|
rc8_disable_attack(0);
|
|
rc8_disable_rotation(0);
|
|
}
|
|
}
|
|
|
|
//Function Number: 9
|
|
rc8_watchupdateuav()
|
|
{
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
self.var_222 endon("destroyed_rc8");
|
|
level endon("game_ended");
|
|
for(;;)
|
|
{
|
|
level waittill("uav_update");
|
|
rc8_setuavstrength();
|
|
}
|
|
}
|
|
|
|
//Function Number: 10
|
|
rc8_setuavstrength()
|
|
{
|
|
if(level.teambased)
|
|
{
|
|
rc8_updateteamuavstatus(self.team);
|
|
return;
|
|
}
|
|
|
|
rc8_updateplayersuavstatus();
|
|
}
|
|
|
|
//Function Number: 11
|
|
rc8_updateteamuavstatus(param_00,param_01)
|
|
{
|
|
var_02 = getuavstrengthmin();
|
|
var_03 = getuavstrengthmax();
|
|
var_04 = getuavstrengthlevelshowenemydirectional();
|
|
var_05 = getuavstrengthlevelneutral();
|
|
var_06 = getuavstrengthlevelshowenemyfastsweep();
|
|
if(isdefined(param_01))
|
|
{
|
|
var_07 = param_01;
|
|
}
|
|
else
|
|
{
|
|
var_07 = scripts\mp\killstreaks\_uav::func_12B5(param_01);
|
|
}
|
|
|
|
if(param_00 == "axis")
|
|
{
|
|
var_08 = level.axisactiveuavs;
|
|
}
|
|
else
|
|
{
|
|
var_08 = level.alliesactiveuavs;
|
|
}
|
|
|
|
if(scripts\mp\_utility::_hasperk("specialty_empimmune") && var_07 <= var_05)
|
|
{
|
|
var_07 = int(clamp(var_08 + var_05,var_05,var_03));
|
|
}
|
|
|
|
if(var_07 <= var_02)
|
|
{
|
|
var_07 = var_02;
|
|
}
|
|
else if(var_07 >= var_03)
|
|
{
|
|
var_07 = var_03;
|
|
}
|
|
|
|
self method_85A6(var_07);
|
|
if(var_07 >= var_05)
|
|
{
|
|
self method_85A5(0);
|
|
}
|
|
else
|
|
{
|
|
self method_85A5(1);
|
|
}
|
|
|
|
if(var_07 <= var_05)
|
|
{
|
|
self method_85A4(0);
|
|
self.var_255 = 0;
|
|
if(isdefined(self.var_254) && self.var_254 == "constant_radar")
|
|
{
|
|
self.var_254 = "normal_radar";
|
|
}
|
|
|
|
self setclientomnvar("ui_show_hardcore_minimap",0);
|
|
return;
|
|
}
|
|
|
|
scripts\mp\killstreaks\_uav::setradarmode(var_07,var_06,var_04);
|
|
self.var_255 = var_07 >= var_04;
|
|
self method_85A4(1);
|
|
self setclientomnvar("ui_show_hardcore_minimap",1);
|
|
}
|
|
|
|
//Function Number: 12
|
|
rc8_updateplayersuavstatus(param_00)
|
|
{
|
|
var_01 = getuavstrengthmin();
|
|
var_02 = getuavstrengthmax();
|
|
var_03 = getuavstrengthlevelshowenemydirectional();
|
|
var_04 = getuavstrengthlevelshowenemyfastsweep();
|
|
var_05 = level.var_1679[self.var_222.var_86BD + "_radarStrength"];
|
|
foreach(var_07 in level.players)
|
|
{
|
|
if(var_07 == self.var_222)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_08 = level.var_164F[var_07.var_86BD];
|
|
if(var_08 > 0 && !self.var_222 scripts\mp\_utility::_hasperk("specialty_empimmune"))
|
|
{
|
|
var_05 = var_01;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if(var_05 <= var_01)
|
|
{
|
|
var_05 = var_01;
|
|
}
|
|
else if(var_05 >= var_02)
|
|
{
|
|
var_05 = var_02;
|
|
}
|
|
|
|
self method_85A6(var_05);
|
|
if(var_05 >= getuavstrengthlevelneutral())
|
|
{
|
|
self method_85A5(0);
|
|
}
|
|
else
|
|
{
|
|
self method_85A5(1);
|
|
}
|
|
|
|
if(var_05 <= getuavstrengthlevelneutral())
|
|
{
|
|
self method_85A4(0);
|
|
self.var_255 = 0;
|
|
if(isdefined(self.var_254) && self.var_254 == "constant_radar")
|
|
{
|
|
self.var_254 = "normal_radar";
|
|
}
|
|
|
|
self setclientomnvar("ui_show_hardcore_minimap",0);
|
|
return;
|
|
}
|
|
|
|
scripts\mp\killstreaks\_uav::setradarmode(var_05,var_04,var_03);
|
|
self.var_255 = var_05 >= var_03;
|
|
self method_85A4(1);
|
|
self setclientomnvar("ui_show_hardcore_minimap",1);
|
|
}
|
|
|
|
//Function Number: 13
|
|
rc8_watchupdatecranked()
|
|
{
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
self.var_222 endon("destroyed_rc8");
|
|
level endon("game_ended");
|
|
if(isdefined(self.var_222.var_47ED) && isdefined(self.var_222.var_47EE))
|
|
{
|
|
self setclientomnvar("ui_cranked_bomb_timer_end_milliseconds",self.var_222.var_47EE);
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
self.var_222 scripts\common\utility::waittill_any_3("watchBombTimer","stop_cranked");
|
|
if(!isdefined(self.var_222.var_47EE))
|
|
{
|
|
self setclientomnvar("ui_cranked_bomb_timer_end_milliseconds",0);
|
|
continue;
|
|
}
|
|
|
|
self setclientomnvar("ui_cranked_bomb_timer_end_milliseconds",self.var_222.var_47EE);
|
|
}
|
|
}
|
|
|
|
//Function Number: 14
|
|
func_DCFA()
|
|
{
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
self.var_222 endon("destroyed_rc8");
|
|
level endon("game_ended");
|
|
var_00 = self.health;
|
|
var_01 = 0;
|
|
var_02 = 0;
|
|
var_03 = 0;
|
|
self.var_7197 = ::func_DCF5;
|
|
for(;;)
|
|
{
|
|
self waittill("rc8_damage",var_03,var_04);
|
|
var_05 = gettime();
|
|
if(var_05 - var_01 > 1000)
|
|
{
|
|
var_02 = 0;
|
|
}
|
|
|
|
var_01 = gettime();
|
|
var_02 = var_02 + var_03;
|
|
var_06 = var_04.origin - self.origin;
|
|
var_06 = (var_06[0],var_06[1],0);
|
|
var_06 = vectornormalize(var_06);
|
|
var_07 = anglestoforward(self.angles);
|
|
var_08 = vectordot(var_06,var_07);
|
|
if(var_08 < 0)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(var_02 > 50)
|
|
{
|
|
self botpressbutton("ads",randomfloatrange(2,4));
|
|
var_02 = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 15
|
|
func_DCF7()
|
|
{
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
self.var_222 endon("destroyed_rc8");
|
|
level endon("game_ended");
|
|
while(!isdefined(self.mainweapon))
|
|
{
|
|
wait(0.25);
|
|
}
|
|
|
|
var_00 = self getweaponammoclip(self.mainweapon);
|
|
for(;;)
|
|
{
|
|
self waittill("weapon_fired",var_01);
|
|
if(isdefined(self.var_10C) && isplayer(self.var_10C))
|
|
{
|
|
level thread scripts\mp\_battlechatter_mp::func_EB87(self.var_10C,"plr_killstreak_target");
|
|
}
|
|
|
|
if(scripts\mp\_utility::func_9FB3(self.var_19))
|
|
{
|
|
thread playvoice(1,"vox_c8_engaging");
|
|
}
|
|
|
|
if(isdefined(var_01) && var_01 == "iw7_chargeshot_c8_mp" || var_01 == "iw7_minigun_c8_mp")
|
|
{
|
|
self setweaponammoclip(var_01,var_00);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 16
|
|
func_DCF8(param_00)
|
|
{
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
level endon("game_ended");
|
|
while(isdefined(param_00) && isalive(param_00))
|
|
{
|
|
if(isdefined(self.var_10C))
|
|
{
|
|
param_00 = self.var_10C;
|
|
}
|
|
|
|
if(self botcanseeentity(param_00))
|
|
{
|
|
self botclearscriptgoal();
|
|
return;
|
|
}
|
|
|
|
var_01 = getclosestpointonnavmesh(param_00.origin,self);
|
|
if(param_00 scripts\mp\_utility::isinarbitraryup())
|
|
{
|
|
var_02 = scripts\common\trace::func_48CC(1);
|
|
if(scripts\common\trace::func_DCF1(self geteye(),param_00 geteye(),undefined,var_02))
|
|
{
|
|
var_03 = vectornormalize(param_00.origin - self geteye());
|
|
var_04 = (0,0,1);
|
|
if(vectordot(var_04,var_03) < 0.92)
|
|
{
|
|
self botlookatpoint(param_00.origin,0.5,"script_forced");
|
|
}
|
|
else
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
|
|
var_05 = (param_00.origin[0],param_00.origin[1],param_00.origin[2] - 100);
|
|
var_05 = getgroundposition(var_05,15,2000);
|
|
var_01 = getclosestpointonnavmesh(var_05,self);
|
|
}
|
|
|
|
self botsetscriptgoal(var_01,0,"hunt");
|
|
wait(0.5);
|
|
}
|
|
|
|
self botclearscriptgoal();
|
|
}
|
|
|
|
//Function Number: 17
|
|
func_DCF6()
|
|
{
|
|
var_00 = [];
|
|
foreach(var_02 in level.players)
|
|
{
|
|
if(var_02.ignoreme || isdefined(var_02.var_222) && var_02.var_222.ignoreme)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!isalive(var_02))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(var_02.team) && self.team == var_02.team)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(var_02 method_8181("specialty_blindeye"))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_00[var_00.size] = var_02;
|
|
}
|
|
|
|
var_04 = undefined;
|
|
if(var_00.size > 0)
|
|
{
|
|
var_04 = sortbydistance(var_00,self.origin);
|
|
}
|
|
|
|
if(isdefined(var_04) && var_04.size > 0)
|
|
{
|
|
return var_04[0];
|
|
}
|
|
|
|
return undefined;
|
|
}
|
|
|
|
//Function Number: 18
|
|
func_DCF9()
|
|
{
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
self.var_222 endon("destroyed_rc8");
|
|
level endon("game_ended");
|
|
for(;;)
|
|
{
|
|
if(scripts\mp\_utility::func_9FB3(self.var_19))
|
|
{
|
|
thread playvoice(1,"vox_c8_seeking");
|
|
}
|
|
|
|
if(isdefined(self.var_10C) && isalive(self.var_10C) && isplayer(self.var_10C) && !self.var_10C method_8181("specialty_blindeye"))
|
|
{
|
|
if(!self botcanseeentity(self.var_10C))
|
|
{
|
|
func_DCF8(self.var_10C);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var_00 = func_DCF6();
|
|
if(isdefined(var_00))
|
|
{
|
|
func_DCF8(var_00);
|
|
}
|
|
}
|
|
|
|
scripts\mp\_hostmigration::func_13708(0.5);
|
|
}
|
|
}
|
|
|
|
//Function Number: 19
|
|
func_DCF3(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
|
|
{
|
|
}
|
|
|
|
//Function Number: 20
|
|
func_DCF2(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(isdefined(level.var_13CA6))
|
|
{
|
|
param_05 = [[ level.var_13CA6 ]](param_05,param_00);
|
|
}
|
|
|
|
if(isrc8falldamage(param_00))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_0D = 0;
|
|
if(self.var_222.var_FC96)
|
|
{
|
|
var_0D = self.var_222.var_FC96;
|
|
}
|
|
|
|
if(!scripts\mp\_utility::func_9FB3(self.var_19))
|
|
{
|
|
param_02 = param_02 / 2;
|
|
}
|
|
|
|
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);
|
|
var_0E = self.var_222.var_FC96 - var_0D;
|
|
if(var_0E > 0)
|
|
{
|
|
self.var_222 thread scripts\mp\_missions::func_D991("ch_rc8_shield",var_0E);
|
|
}
|
|
|
|
scripts\mp\_damage::func_AF96(self,param_02,param_01,param_07,param_06,param_04,param_0A,undefined,param_0B,param_03,param_05);
|
|
scripts\mp\_damage::func_C546("remote_c8",param_01,param_05,param_02);
|
|
scripts\mp\killstreaks\_killstreaks::func_A6A0(param_01,param_05,self,param_04);
|
|
}
|
|
|
|
//Function Number: 21
|
|
rc8_manageboostfx()
|
|
{
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
self endon("owner_disconnect");
|
|
self.var_222 endon("disconnect");
|
|
level endon("game_ended");
|
|
self notify("scriptableBoostFxManager");
|
|
self endon("scriptableBoostFxManager");
|
|
self waittill("rc8_launched");
|
|
self setscriptablepartstate("rc8_jump","neutral",0);
|
|
for(;;)
|
|
{
|
|
self waittill("doubleJumpBoostBegin");
|
|
self.booston = 1;
|
|
self setscriptablepartstate("rc8_jump","active",0);
|
|
self waittill("doubleJumpBoostEnd");
|
|
self.booston = undefined;
|
|
self setscriptablepartstate("rc8_jump","neutral",0);
|
|
}
|
|
}
|
|
|
|
//Function Number: 22
|
|
isrc8falldamage(param_00)
|
|
{
|
|
return isdefined(param_00) && isdefined(param_00.model) && param_00.model == "ks_remote_c8_mp";
|
|
}
|
|
|
|
//Function Number: 23
|
|
func_BFF0()
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 24
|
|
func_128F7(param_00)
|
|
{
|
|
var_01 = checkrc8available(1);
|
|
if(!var_01)
|
|
{
|
|
if(isdefined(param_00.var_394) && param_00.var_394 != "none")
|
|
{
|
|
self notify("killstreak_finished_with_weapon_" + param_00.var_394);
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
var_02 = scripts\mp\killstreaks\_target_marker::func_819B(param_00,::checkrc8availablevalidationfunc);
|
|
if(!isdefined(var_02.var_AEC4))
|
|
{
|
|
scripts\mp\_utility::func_4FC1();
|
|
return 0;
|
|
}
|
|
|
|
scripts\mp\_matchdata::func_AFC9(param_00.var_110EA,self.origin);
|
|
thread func_10D8D(param_00,var_02);
|
|
var_03 = "used_remote_c8";
|
|
var_04 = scripts\mp\_killstreak_loot::getrarityforlootitem(param_00.var_1318B);
|
|
if(var_04 != "")
|
|
{
|
|
var_03 = var_03 + "_" + var_04;
|
|
}
|
|
|
|
level thread scripts\mp\_utility::func_115DE(var_03,self);
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 25
|
|
checkrc8available(param_00)
|
|
{
|
|
if(!isdefined(param_00))
|
|
{
|
|
param_00 = 0;
|
|
}
|
|
|
|
if(lib_0D65::func_8008("remote_c8") >= 2)
|
|
{
|
|
if(param_00)
|
|
{
|
|
scripts\mp\_hud_message::func_10122("KILLSTREAKS_RC8_MAX");
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
if(lib_0D65::func_8011(self,"remote_c8") >= 1)
|
|
{
|
|
if(param_00)
|
|
{
|
|
scripts\mp\_hud_message::func_10122("KILLSTREAKS_RC8_MAX");
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
if(level.teambased && lib_0D65::func_8012(self.team,"remote_c8") >= 1)
|
|
{
|
|
if(param_00)
|
|
{
|
|
scripts\mp\_hud_message::func_10122("KILLSTREAKS_RC8_MAX");
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 26
|
|
checkrc8availablevalidationfunc()
|
|
{
|
|
return checkrc8available(1);
|
|
}
|
|
|
|
//Function Number: 27
|
|
func_3772(param_00)
|
|
{
|
|
scripts\mp\_utility::func_93FA();
|
|
if(scripts\mp\_utility::func_4BD7(level.var_6BAA) >= scripts\mp\_utility::func_B4D2())
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_01 = func_6CC3();
|
|
if(!var_01)
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_02 = scripts\mp\killstreaks\_airdrop::func_7EC0(var_01);
|
|
}
|
|
|
|
//Function Number: 28
|
|
func_6CC3(param_00,param_01,param_02)
|
|
{
|
|
var_03 = undefined;
|
|
var_04 = getnodesinradiussorted(self.origin,param_00,param_01,param_00,"path");
|
|
foreach(var_06 in var_04)
|
|
{
|
|
}
|
|
|
|
var_08 = scripts\common\trace::func_48BC(0,1,0,0,0,0,0);
|
|
foreach(var_06 in var_04)
|
|
{
|
|
var_0A = scripts\common\trace::func_DCED(var_06.origin,var_06.origin + (0,0,param_02),level.var_3CB5,var_08);
|
|
if(var_0A["hittype"] == "hittype_none")
|
|
{
|
|
var_03 = var_06.origin;
|
|
break;
|
|
}
|
|
}
|
|
|
|
return var_03;
|
|
}
|
|
|
|
//Function Number: 29
|
|
func_10D8D(param_00,param_01)
|
|
{
|
|
self endon("destroyed_rc8");
|
|
self endon("disconnect");
|
|
var_02 = param_01.var_AEC4 + (0,0,10000);
|
|
var_03 = param_01.var_AEC4;
|
|
var_04 = rotatepointaroundvector(anglestoright(param_01.angles),anglestoforward(param_01.angles),90);
|
|
var_05 = vectortoangles(var_04);
|
|
var_06 = spawn("script_model",var_03 + (0,0,3));
|
|
var_06 setmodel("ks_remote_c8_mp");
|
|
var_06 method_831F(self);
|
|
var_06 method_82DD(self);
|
|
var_06 dontinterpolate();
|
|
var_06 setscriptablepartstate("laser_target","start");
|
|
thread func_FBF0(var_06.origin);
|
|
var_07 = "mp_robot_c8";
|
|
var_08 = scripts\mp\_killstreak_loot::getrarityforlootitem(param_00.var_1318B);
|
|
if(var_08 != "")
|
|
{
|
|
var_07 = var_07 + "_" + var_08;
|
|
}
|
|
|
|
var_09 = scripts\mp\agents\_agents::func_16F2("remote_c8",self.team,"rc8Agent",var_02,(self.angles[0],0,0),self,0,0,"veteran",undefined,1,1,1,1);
|
|
var_09 reset_rc8_functionality();
|
|
var_09 setmodel(var_07);
|
|
var_09 method_8369("vm_robot_c8_base_mp");
|
|
var_09 setscriptablepartstate("CompassIcon","hideIcon");
|
|
var_09 method_8184();
|
|
var_09.midairdamage = spawn("script_model",var_09.origin);
|
|
var_09.midairdamage setmodel("ks_remote_c8_mp");
|
|
var_09.midairdamage method_831F(self);
|
|
var_09.midairdamage method_82DD(self);
|
|
var_09.midairdamage dontinterpolate();
|
|
var_09.midairdamage linkto(var_09,"tag_origin");
|
|
var_09.midairdamage.var_13C2E = "iw7_c8landing_mp";
|
|
var_09.midairdamage.var_110E8 = param_00;
|
|
var_09.midairdamage.var_A63A = spawn("script_model",var_09.origin);
|
|
var_09.midairdamage.var_A63A setmodel("tag_origin");
|
|
var_09.midairdamage.var_A63A linkto(var_09,"tag_origin",(-10,0,250),(0,0,0));
|
|
thread func_13AE2(var_09);
|
|
thread func_13998(var_09,param_01,var_06);
|
|
thread watchgameover(var_09);
|
|
scripts\mp\_hostmigration::func_13708(3.5);
|
|
var_0A = spawn("script_model",var_02);
|
|
var_0A setmodel("veh_mil_lnd_ca_droppod_c8_mp");
|
|
var_0A moveto(var_03,2.65,0,0);
|
|
var_0A setscriptablepartstate("pod","fall",0);
|
|
thread func_13A0B(var_0A);
|
|
var_0A thread watchreachpoddestination(var_03);
|
|
var_09 linkto(var_0A,"tag_origin");
|
|
var_09.var_A6BB = param_00.var_110EA;
|
|
var_09.var_165A = param_00.var_110EA;
|
|
var_09.var_110EA = param_00.var_110EA;
|
|
var_09.var_110E8 = param_00;
|
|
var_09.var_222 = self;
|
|
var_09.var_5F6F = undefined;
|
|
var_09.var_FC99 = 1;
|
|
var_09 method_831F(self);
|
|
var_09 method_82DD(self);
|
|
var_09 thread scripts\mp\killstreaks\_agent_killstreak::func_6CE2();
|
|
var_0B = 2800;
|
|
var_09 scripts\mp\agents\_agent_common::func_F28C(var_0B);
|
|
var_09.var_ED75 = 60;
|
|
var_09.mainweapon = "iw7_chargeshot_c8_mp";
|
|
if(scripts\mp\killstreaks\_utility::func_A69F(var_09.var_110E8,"passive_energy_machgun"))
|
|
{
|
|
var_09.mainweapon = "iw7_minigun_c8_mp";
|
|
}
|
|
|
|
var_09 scripts\mp\_utility::func_12C6(var_09.mainweapon);
|
|
var_09 scripts\mp\_utility::func_12C6("iw7_c8landing_mp");
|
|
var_09 scripts\mp\_utility::func_12C6("iw7_c8shutdown_mp");
|
|
var_09 scripts\mp\_utility::func_12C6("iw7_c8destruct_mp");
|
|
var_09 scripts\mp\_utility::func_12C6("iw7_c8offhandshield_mp",0);
|
|
var_09 method_844C("iw7_c8offhandshield_mp");
|
|
var_09 method_8451(var_09.mainweapon);
|
|
var_09 scripts\common\utility::func_1C6E(0);
|
|
var_09 scripts\mp\_utility::func_8387("specialty_viewkickoverride");
|
|
var_09 scripts\mp\_utility::func_8387("specialty_block_health_regen");
|
|
var_09 method_8422(0);
|
|
var_09 method_8424(0);
|
|
var_09 allowslide(0);
|
|
var_09 allowcrouch(0);
|
|
var_09 allowprone(0);
|
|
var_09 method_8472(0);
|
|
var_09 method_8012(0);
|
|
var_09 allowjump(0);
|
|
var_09 botsetflag("disable_traversals",1);
|
|
var_09 botsetflag("disable_crouch",1);
|
|
var_09 botsetflag("disable_prone",1);
|
|
var_09 botsetflag("affected_by_blindeye",1);
|
|
var_09 botsetflag("disable_corner_combat",1);
|
|
var_09 method_82C6("c8servo");
|
|
if(scripts\mp\killstreaks\_utility::func_A69F(var_09.var_110E8,"passive_boosters"))
|
|
{
|
|
var_09 method_845A("rc8_jump_mp");
|
|
var_09 allowjump(1);
|
|
var_09 method_8422(1);
|
|
var_09 method_85C5(1);
|
|
var_09 botsetflag("disable_traversals",0);
|
|
var_09 botsetflag("disable_wall_traversals",1);
|
|
}
|
|
|
|
var_09 setscriptablepartstate("CompassIcon","remote_c8");
|
|
var_09 scripts\mp\_utility::func_F751();
|
|
var_09 scripts\mp\killstreaks\_utility::func_FAE4("destroyed_rc8","rc8_mp");
|
|
var_09 scripts\mp\_utility::func_8387("specialty_blindeye");
|
|
var_09 scripts\mp\_damage::func_E247();
|
|
var_09 notify("rc8_launched");
|
|
var_0A waittill("explode",var_0C);
|
|
if(isdefined(var_06))
|
|
{
|
|
var_06 setscriptablepartstate("laser_target","neutral");
|
|
var_06 setscriptablepartstate("pod","explode");
|
|
}
|
|
|
|
if(isdefined(var_0A))
|
|
{
|
|
var_0A delete();
|
|
}
|
|
|
|
if(isdefined(param_01.var_1349C))
|
|
{
|
|
param_01.var_1349C delete();
|
|
}
|
|
|
|
var_09.origin = var_0C;
|
|
var_09 method_8383();
|
|
var_09.midairdamage.var_A63A unlink();
|
|
var_09.midairdamage.var_A63A linkto(var_09,"j_helmet");
|
|
thread updatekillcampos(5,var_09,var_09.midairdamage.var_A63A);
|
|
var_09 attachshieldmodel("weapon_c8_shield_top_mp","j_wristshield");
|
|
var_09 attachshieldmodel("weapon_c8_shield_bottom_mp","j_wristbtmshield");
|
|
var_09.var_130AC = spawn("script_model",var_09 gettagorigin("tag_eye"));
|
|
var_09.var_130AC linkto(var_09,"tag_eye");
|
|
if(isdefined(var_09.var_8C98))
|
|
{
|
|
var_09.var_8C98 = undefined;
|
|
}
|
|
|
|
self.var_DCFC = var_09;
|
|
self.var_4BE1 = "AI";
|
|
func_F697(self.var_4BE1,1);
|
|
var_09 scripts\mp\killstreaks\_utility::func_1843(var_09.var_A6BB,"Killstreak_Ground",self,1);
|
|
if(scripts\mp\killstreaks\_utility::func_A69F(var_09.var_110E8,"passive_speed_duration"))
|
|
{
|
|
var_09.var_ED75 = int(var_09.var_ED75 / 1.2);
|
|
}
|
|
|
|
thread func_13AD7(var_09.var_130AC);
|
|
thread func_13B7E(var_09.var_ED75);
|
|
thread func_13A10(var_09);
|
|
thread func_13996();
|
|
thread func_13ACD(var_09);
|
|
thread func_13B0C(var_09);
|
|
if(scripts\mp\killstreaks\_utility::func_A69F(var_09.var_110E8,"passive_speed_duration"))
|
|
{
|
|
var_09 setmovespeedscale(1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 30
|
|
watchreachpoddestination(param_00)
|
|
{
|
|
self endon("death");
|
|
level endon("game_ended");
|
|
while(distancesquared(self.origin,param_00) > 0)
|
|
{
|
|
scripts\common\utility::func_136F7();
|
|
}
|
|
|
|
self notify("explode",param_00);
|
|
}
|
|
|
|
//Function Number: 31
|
|
updatekillcampos(param_00,param_01,param_02)
|
|
{
|
|
self endon("destroyed_rc8");
|
|
wait(param_00);
|
|
param_02 unlink();
|
|
param_02 linkto(param_01,"tag_origin",(0,0,150),(0,0,0));
|
|
}
|
|
|
|
//Function Number: 32
|
|
watchgameover(param_00)
|
|
{
|
|
self endon("destroyed_rc8");
|
|
level waittill("game_ended");
|
|
self notify("destroyed_rc8",1);
|
|
}
|
|
|
|
//Function Number: 33
|
|
func_FBF0(param_00)
|
|
{
|
|
self endon("destroyed_rc8");
|
|
playsoundatpos(param_00,"rc8_laser_on");
|
|
scripts\mp\_hostmigration::func_13708(0.5);
|
|
var_01 = spawn("script_origin",param_00);
|
|
var_01 playloopsound("rc8_laser_lp");
|
|
var_01 thread func_FB68(self,1.5,"rc8_pod_incoming");
|
|
var_01 thread func_FB69(self,"destroyed_rc8");
|
|
scripts\mp\_hostmigration::func_13708(5.3);
|
|
playsoundatpos(param_00,"rc8_land");
|
|
scripts\mp\_hostmigration::func_13708(0.5);
|
|
playsoundatpos(param_00,"rc8_intro_pod_break");
|
|
scripts\mp\_hostmigration::func_13708(0.2);
|
|
var_01 delete();
|
|
}
|
|
|
|
//Function Number: 34
|
|
func_FB68(param_00,param_01,param_02)
|
|
{
|
|
param_00 endon("destroyed_rc8");
|
|
scripts\mp\_hostmigration::func_13708(param_01);
|
|
if(isdefined(self))
|
|
{
|
|
self playsound(param_02);
|
|
}
|
|
}
|
|
|
|
//Function Number: 35
|
|
func_FB69(param_00,param_01)
|
|
{
|
|
level endon("game_ended");
|
|
param_00 waittill(param_01);
|
|
if(isdefined(self))
|
|
{
|
|
self delete();
|
|
}
|
|
}
|
|
|
|
//Function Number: 36
|
|
func_13A0B(param_00)
|
|
{
|
|
param_00 endon("death");
|
|
level endon("game_ended");
|
|
self waittill("destroyed_rc8",var_01);
|
|
if(scripts\mp\_utility::func_9FB3(var_01))
|
|
{
|
|
scripts\mp\_shellshock::func_22FF(1,0.7,800);
|
|
if(isdefined(param_00))
|
|
{
|
|
param_00 delete();
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 37
|
|
func_F697(param_00,param_01)
|
|
{
|
|
thread func_560D(param_00,param_01);
|
|
thread func_627B(param_01);
|
|
}
|
|
|
|
//Function Number: 38
|
|
func_560D(param_00,param_01)
|
|
{
|
|
self endon("disconnect");
|
|
self endon("destroyed_rc8");
|
|
level endon("game_ended");
|
|
self.var_DCFC.var_130AC makeunusable();
|
|
self.var_4BE1 = param_00;
|
|
if(!scripts\mp\_utility::func_9FB3(param_01) && param_00 == "AI")
|
|
{
|
|
self notify("stop_manual_rc8");
|
|
scripts\common\utility::func_136F7();
|
|
self.var_DCFC thermalvisionfofoverlayoff();
|
|
self.var_DCFC method_85A2("");
|
|
self.var_DCFC setclientomnvar("ui_rc8_controls",0);
|
|
self.var_DCFC setclientomnvar("ui_killstreak_missile_warn",0);
|
|
self.var_DCFC setclientomnvar("ui_remote_c8_countdown",0);
|
|
self.var_DCFC setclientomnvar("ui_remote_c8_health",0);
|
|
self setclientomnvar("ui_out_of_bounds_countdown",0);
|
|
}
|
|
else if(param_00 == "MANUAL")
|
|
{
|
|
thread func_10D87();
|
|
}
|
|
|
|
self.var_DCFC rc8_disable_movement(1);
|
|
self.var_DCFC rc8_disable_rotation(1);
|
|
self.var_DCFC rc8_disable_attack(1);
|
|
if(scripts\mp\_utility::func_9FB3(param_01))
|
|
{
|
|
self.var_DCFC scripts\mp\_utility::_switchtoweapon("iw7_c8landing_mp");
|
|
}
|
|
else
|
|
{
|
|
self.var_DCFC scripts\mp\_utility::_switchtoweapon("iw7_c8shutdown_mp");
|
|
}
|
|
|
|
self.var_DCFC.var_19 = undefined;
|
|
if(scripts\mp\_utility::func_9FB3(param_01))
|
|
{
|
|
scripts\mp\_hostmigration::func_13708(0.5);
|
|
self.var_DCFC.var_FC99 = undefined;
|
|
}
|
|
else
|
|
{
|
|
scripts\mp\_hostmigration::func_13708(1.2);
|
|
}
|
|
|
|
self notify("finished_disable");
|
|
}
|
|
|
|
//Function Number: 39
|
|
func_10D87()
|
|
{
|
|
self endon("disconnect");
|
|
level endon("game_ended");
|
|
var_00 = scripts\mp\killstreaks\_proxyagent::func_45D0(self.var_DCFC,self.var_DCFC.var_110E8,"stop_manual_rc8",self.var_DCFC.var_ED75,1,"rc8_mp");
|
|
if(!var_00)
|
|
{
|
|
if(!isalive(self.var_DCFC) || scripts\mp\_utility::func_9FB3(self.var_DCFC.var_5F6F))
|
|
{
|
|
return;
|
|
}
|
|
|
|
self.var_4BE1 = "AI";
|
|
return;
|
|
}
|
|
|
|
self.var_DCFC thermalvisionfofoverlayon();
|
|
self.var_DCFC method_85A2("rc8_mp");
|
|
self.var_DCFC setclientomnvar("ui_rc8_controls",1);
|
|
self.var_DCFC setclientomnvar("ui_remote_c8_countdown",gettime() + int(self.var_DCFC.var_ED75 * 1000));
|
|
self.var_DCFC setclientomnvar("ui_remote_c8_health",self.var_DCFC.health / self.var_DCFC.maxhealth);
|
|
}
|
|
|
|
//Function Number: 40
|
|
func_627B(param_00)
|
|
{
|
|
self endon("disconnect");
|
|
self endon("destroyed_rc8");
|
|
level endon("game_ended");
|
|
self waittill("finished_disable");
|
|
waitforswitchtoweapon(self.var_DCFC,self.var_DCFC.mainweapon);
|
|
var_01 = self.var_4BE1;
|
|
if(var_01 == "AI")
|
|
{
|
|
scripts\mp\_utility::func_C638("remote_c8_ai");
|
|
}
|
|
else
|
|
{
|
|
scripts\common\utility::func_136F7();
|
|
self.var_DCFC scripts\mp\_utility::func_7385(1);
|
|
scripts\mp\_utility::func_C638("remote_c8_user");
|
|
}
|
|
|
|
if(scripts\mp\_utility::func_9FB3(param_00))
|
|
{
|
|
scripts\mp\_hostmigration::func_13708(1.6);
|
|
}
|
|
else
|
|
{
|
|
scripts\mp\_hostmigration::func_13708(1.2);
|
|
}
|
|
|
|
if(!isalive(self.var_DCFC) || scripts\mp\_utility::func_9FB3(self.var_DCFC.var_5F6F))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(var_01 == "MANUAL")
|
|
{
|
|
self.var_DCFC scripts\mp\_utility::func_7385(0);
|
|
self.var_DCFC rc8_setuavstrength();
|
|
}
|
|
|
|
self.var_DCFC method_8597(1);
|
|
self.var_DCFC rc8_disable_movement(0);
|
|
self.var_DCFC rc8_disable_rotation(0);
|
|
self.var_DCFC rc8_disable_attack(0);
|
|
self.var_DCFC.var_130AC scripts\mp\killstreaks\_utility::func_F774(self,&"KILLSTREAKS_HINTS_RC8_CONTROL",360,360,30000,30000,1);
|
|
self.var_DCFC.var_19 = 1;
|
|
self notify("switched_mode");
|
|
}
|
|
|
|
//Function Number: 41
|
|
waitforswitchtoweapon(param_00,param_01)
|
|
{
|
|
self endon("disconnect");
|
|
self endon("destroyed_rc8");
|
|
level endon("game_ended");
|
|
var_02 = 0;
|
|
while(!var_02)
|
|
{
|
|
param_00 scripts\mp\_utility::_switchtoweapon(param_01);
|
|
var_03 = 0.5;
|
|
while(var_03 > 0)
|
|
{
|
|
if(param_00 scripts\mp\_utility::func_9DA5(param_01))
|
|
{
|
|
var_02 = 1;
|
|
break;
|
|
}
|
|
|
|
var_03 = var_03 - 0.05;
|
|
scripts\common\utility::func_136F7();
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 42
|
|
func_8026(param_00)
|
|
{
|
|
var_01 = undefined;
|
|
if(param_00 == "AI")
|
|
{
|
|
var_01 = "MANUAL";
|
|
}
|
|
else
|
|
{
|
|
var_01 = "AI";
|
|
}
|
|
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 43
|
|
func_13AD7(param_00)
|
|
{
|
|
self endon("disconnect");
|
|
self endon("destroyed_rc8");
|
|
var_01 = self;
|
|
for(;;)
|
|
{
|
|
if(isdefined(self.var_4BE1) && self.var_4BE1 == "AI")
|
|
{
|
|
param_00 waittill("trigger",var_02);
|
|
if(var_02 != self)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(scripts\mp\_utility::func_9FC6())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(self.var_55E4) && self.var_55E4 > 0)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(scripts\mp\_utility::func_9FAE(self))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_01 = self;
|
|
}
|
|
else
|
|
{
|
|
var_01 = self.var_DCFC;
|
|
}
|
|
|
|
var_03 = self.var_4BE1;
|
|
var_04 = 0;
|
|
var_05 = 0.1;
|
|
if(self.var_4BE1 == "MANUAL")
|
|
{
|
|
var_05 = 0.3;
|
|
}
|
|
|
|
while(var_01 usebuttonpressed())
|
|
{
|
|
var_04 = var_04 + 0.05;
|
|
if(var_04 > var_05)
|
|
{
|
|
var_06 = func_8026(var_03);
|
|
func_F697(var_06,0);
|
|
self waittill("switched_mode");
|
|
break;
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 44
|
|
func_13AE2(param_00)
|
|
{
|
|
self endon("destroyed_rc8");
|
|
level endon("game_ended");
|
|
scripts\common\utility::waittill_any_3("joined_team","disconnect","joined_spectators");
|
|
self notify("destroyed_rc8",1);
|
|
}
|
|
|
|
//Function Number: 45
|
|
func_13B7E(param_00)
|
|
{
|
|
self endon("disconnect");
|
|
self endon("host_migration_lifetime_update");
|
|
self endon("destroyed_rc8");
|
|
level endon("game_ended");
|
|
thread scripts\mp\killstreaks\_utility::watchhostmigrationlifetime("destroyed_rc8",param_00,::func_13B7E);
|
|
while(param_00 > 0)
|
|
{
|
|
wait(0.05);
|
|
param_00 = param_00 - 0.05;
|
|
self.var_DCFC.var_ED75 = self.var_DCFC.var_ED75 - 0.05;
|
|
if(self.var_DCFC.var_ED75 < 0)
|
|
{
|
|
self.var_DCFC.var_ED75 = 0;
|
|
}
|
|
}
|
|
|
|
var_01 = ["remote_c8_end","remote_c8_timeout"];
|
|
var_02 = randomint(var_01.size);
|
|
var_03 = var_01[var_02];
|
|
scripts\mp\_utility::func_D4B6(var_03,undefined,undefined,self.origin);
|
|
self notify("destroyed_rc8",0);
|
|
}
|
|
|
|
//Function Number: 46
|
|
func_13A10(param_00)
|
|
{
|
|
level endon("game_ended");
|
|
self endon("destroyed_rc8");
|
|
for(;;)
|
|
{
|
|
param_00 waittill("emp_damage",var_01,var_02,var_03,var_04,var_05);
|
|
param_00 scripts\mp\killstreaks\_utility::dodamagetokillstreak(100,var_01,var_01,self.team,var_03,var_05,var_04);
|
|
}
|
|
}
|
|
|
|
//Function Number: 47
|
|
func_13999(param_00)
|
|
{
|
|
param_00 endon("death");
|
|
for(;;)
|
|
{
|
|
var_01 = param_00 getcurrentweapon();
|
|
iprintlnbold("Current Weapon: " + var_01);
|
|
wait(1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 48
|
|
func_13996()
|
|
{
|
|
self endon("destroyed_rc8");
|
|
for(;;)
|
|
{
|
|
self waittill("player_killstreak_agent_death",var_00,var_01,var_02,var_03,var_04,var_05,var_06);
|
|
if(!isdefined(self.var_DCFC))
|
|
{
|
|
break;
|
|
}
|
|
|
|
if(var_00 != self.var_DCFC)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(scripts\mp\_utility::func_9FB3(self.var_DCFC.var_5F6F))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(var_06) && var_06 == "concussion_grenade_mp")
|
|
{
|
|
if(scripts\mp\_utility::func_9FB3(scripts\mp\_utility::playersareenemies(self.var_222,var_02)))
|
|
{
|
|
var_02 scripts\mp\_missions::func_D991("ch_tactical_emp_eqp");
|
|
}
|
|
}
|
|
|
|
if(isplayer(var_02) && var_02 != self)
|
|
{
|
|
var_07 = "callout_destroyed_remote_c8";
|
|
var_08 = scripts\mp\_killstreak_loot::getrarityforlootitem(self.var_DCFC.var_110E8.var_1318B);
|
|
if(var_08 != "")
|
|
{
|
|
var_07 = var_07 + "_" + var_08;
|
|
}
|
|
|
|
self.var_DCFC scripts\mp\_damage::func_C548("remote_c8",var_02,var_06,var_05,var_03,"destroyed_remote_c8","remote_c8_destroy",var_07);
|
|
}
|
|
|
|
if(scripts\mp\_utility::func_9FB3(level.var_C1C3))
|
|
{
|
|
self notify("destroyed_rc8",1);
|
|
continue;
|
|
}
|
|
|
|
self notify("destroyed_rc8",0);
|
|
}
|
|
}
|
|
|
|
//Function Number: 49
|
|
func_13998(param_00,param_01,param_02)
|
|
{
|
|
self waittill("destroyed_rc8",var_03);
|
|
param_00 thread func_D51B(var_03,param_01,param_02);
|
|
}
|
|
|
|
//Function Number: 50
|
|
func_D51B(param_00,param_01,param_02)
|
|
{
|
|
if(isdefined(self.var_AE62))
|
|
{
|
|
self.var_AE62 = undefined;
|
|
}
|
|
|
|
if(isdefined(param_01.var_1349C))
|
|
{
|
|
param_01.var_1349C delete();
|
|
}
|
|
|
|
if(isdefined(param_02))
|
|
{
|
|
param_02 delete();
|
|
}
|
|
|
|
if(isdefined(self.midairdamage))
|
|
{
|
|
if(isdefined(self.midairdamage.var_A63A))
|
|
{
|
|
self.midairdamage.var_A63A delete();
|
|
}
|
|
|
|
self.midairdamage delete();
|
|
}
|
|
|
|
if(isdefined(self.var_130AC))
|
|
{
|
|
self.var_130AC makeunusable();
|
|
self.var_130AC delete();
|
|
}
|
|
|
|
if(isdefined(self.mainweapon))
|
|
{
|
|
self.mainweapon = undefined;
|
|
}
|
|
|
|
self setclientomnvar("ui_rc8_controls",0);
|
|
self setclientomnvar("ui_killstreak_missile_warn",0);
|
|
self setclientomnvar("ui_remote_c8_countdown",0);
|
|
self setclientomnvar("ui_remote_c8_health",0);
|
|
self method_85A2("");
|
|
self thermalvisionfofoverlayoff();
|
|
rc8_disable_movement(1);
|
|
rc8_disable_rotation(1);
|
|
rc8_disable_attack(1);
|
|
self botsetflag("ads_shield",0);
|
|
if(scripts\mp\_utility::func_9FB3(param_00))
|
|
{
|
|
if(isdefined(self.var_222))
|
|
{
|
|
if(isdefined(self.var_222.var_4BE1) && self.var_222.var_4BE1 == "MANUAL")
|
|
{
|
|
self.var_222 notify("stop_manual_rc8");
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
self.var_5F6F = 1;
|
|
var_03 = 3;
|
|
if(isdefined(self.var_222))
|
|
{
|
|
if(isdefined(self.var_222.var_4BE1) && self.var_222.var_4BE1 == "MANUAL")
|
|
{
|
|
self.var_222 notify("stop_manual_rc8");
|
|
scripts\common\utility::func_136F7();
|
|
}
|
|
|
|
self.var_222.var_4BE1 = undefined;
|
|
var_04 = self.var_222 scripts\mp\_utility::func_1302("dummy_spike_mp",self.origin,self.origin,var_03);
|
|
if(!isdefined(var_04.var_13C2E))
|
|
{
|
|
var_04.var_13C2E = "dummy_spike_mp";
|
|
}
|
|
|
|
var_04 linkto(self);
|
|
}
|
|
|
|
playfxontag(scripts\common\utility::getfx("rc8_malfunction"),self,"j_mainroot");
|
|
scripts\mp\_utility::_switchtoweapon("iw7_c8destruct_mp");
|
|
thread func_FBF1(var_03);
|
|
scripts\mp\_hostmigration::func_13708(var_03);
|
|
}
|
|
|
|
playfx(scripts\common\utility::getfx("rc8_explode"),self.origin);
|
|
playsoundatpos(self.origin,"c8_destruct");
|
|
playsoundatpos(self.origin,"frag_grenade_explode");
|
|
scripts\mp\_shellshock::func_22FF(1,0.7,800);
|
|
scripts\mp\_utility::func_41BA();
|
|
self hide();
|
|
self.var_AE62 = undefined;
|
|
self.nocorpse = 1;
|
|
if(!scripts\mp\_utility::func_9FB3(param_00))
|
|
{
|
|
if(isdefined(self.var_222))
|
|
{
|
|
self radiusdamage(self.origin,256,200,100,self.var_222,"MOD_EXPLOSIVE",self.mainweapon);
|
|
}
|
|
|
|
self suicide();
|
|
}
|
|
|
|
reset_rc8_functionality();
|
|
lib_0D65::func_4DDB();
|
|
scripts\mp\_utility::func_D915("killstreak ended - remote_c8",self.var_222);
|
|
}
|
|
|
|
//Function Number: 51
|
|
func_FBF1(param_00)
|
|
{
|
|
self playsound("c8_destruct_initiate");
|
|
scripts\common\utility::delaycall(0.4,::playsound,"c8_destruct_build_up");
|
|
scripts\mp\_hostmigration::func_13708(param_00 - 0.5);
|
|
self playsound("c8_destruct_warning");
|
|
}
|
|
|
|
//Function Number: 52
|
|
func_13ACD(param_00)
|
|
{
|
|
self endon("disconnect");
|
|
self endon("destroyed_rc8");
|
|
var_01 = 100;
|
|
for(;;)
|
|
{
|
|
param_00 waittill("victim_damaged",var_02,var_03,var_04,var_05,var_06,var_07,var_08,var_09,var_0A,var_0B);
|
|
if(var_03 == param_00 && var_02 != param_00 && var_06 == "MOD_MELEE")
|
|
{
|
|
if(isplayer(var_02))
|
|
{
|
|
var_0C = anglestoforward(param_00 getplayerangles());
|
|
var_0D = param_00.origin;
|
|
var_0E = param_00 gettagorigin("c8_shield_le") + (0,0,20) + var_0C * 200;
|
|
var_0F = vectornormalize(var_0E - var_0D);
|
|
var_01 = var_02.health + 1;
|
|
var_02 method_84DC(var_0F,700);
|
|
var_02 playsound("rc8_melee_hit");
|
|
wait(0.05);
|
|
}
|
|
else
|
|
{
|
|
var_01 = 100;
|
|
}
|
|
|
|
var_02 dodamage(var_01,var_02.origin,self,param_00,"MOD_EXPLOSIVE",var_07);
|
|
scripts\mp\_shellshock::func_1245(0.1,0.08,var_08,100);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 53
|
|
func_13B0C(param_00)
|
|
{
|
|
self endon("disconnect");
|
|
self endon("destroyed_rc8");
|
|
level endon("game_ended");
|
|
for(;;)
|
|
{
|
|
self waittill("spawned_player");
|
|
if(isdefined(param_00))
|
|
{
|
|
param_00 method_831F(self);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 54
|
|
func_511F(param_00)
|
|
{
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
self.var_222 endon("destroyed_rc8");
|
|
level endon("game_ended");
|
|
wait(param_00);
|
|
self.var_FC99 = undefined;
|
|
}
|
|
|
|
//Function Number: 55
|
|
playvoice(param_00,param_01)
|
|
{
|
|
self notify("try_play_voice",param_00,param_01);
|
|
}
|
|
|
|
//Function Number: 56
|
|
rc8_disable_movement(param_00)
|
|
{
|
|
if(param_00)
|
|
{
|
|
if(!isdefined(self.disabledmovement))
|
|
{
|
|
self.disabledmovement = 0;
|
|
}
|
|
|
|
self.disabledmovement++;
|
|
self botsetflag("disable_movement",1);
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(self.disabledmovement))
|
|
{
|
|
self.disabledmovement = 0;
|
|
}
|
|
else
|
|
{
|
|
self.disabledmovement--;
|
|
}
|
|
|
|
if(!self.disabledmovement)
|
|
{
|
|
self botsetflag("disable_movement",0);
|
|
}
|
|
}
|
|
|
|
//Function Number: 57
|
|
rc8_disable_attack(param_00)
|
|
{
|
|
if(param_00)
|
|
{
|
|
if(!isdefined(self.var_55B1))
|
|
{
|
|
self.var_55B1 = 0;
|
|
}
|
|
|
|
self.var_55B1++;
|
|
self botsetflag("disable_attack",1);
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(self.var_55B1))
|
|
{
|
|
self.var_55B1 = 0;
|
|
}
|
|
else
|
|
{
|
|
self.var_55B1--;
|
|
}
|
|
|
|
if(!self.var_55B1)
|
|
{
|
|
self botsetflag("disable_attack",0);
|
|
}
|
|
}
|
|
|
|
//Function Number: 58
|
|
rc8_disable_rotation(param_00)
|
|
{
|
|
if(param_00)
|
|
{
|
|
if(!isdefined(self.disablerotation))
|
|
{
|
|
self.disablerotation = 0;
|
|
}
|
|
|
|
self.disablerotation++;
|
|
self botsetflag("disable_rotation",1);
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(self.disablerotation))
|
|
{
|
|
self.disablerotation = 0;
|
|
}
|
|
else
|
|
{
|
|
self.disablerotation--;
|
|
}
|
|
|
|
if(!self.disablerotation)
|
|
{
|
|
self botsetflag("disable_rotation",0);
|
|
}
|
|
}
|
|
|
|
//Function Number: 59
|
|
reset_rc8_functionality()
|
|
{
|
|
self.disabledmovement = undefined;
|
|
self.var_55B1 = undefined;
|
|
self.disablerotation = undefined;
|
|
} |