mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-07 17:17:50 -05:00
3874 lines
77 KiB
Plaintext
3874 lines
77 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: 2936.gsc
|
|
* Game: Call of Duty: Infinite Warfare
|
|
* Platform: PC
|
|
* Function Count: 141
|
|
* Decompile Time: 98 ms
|
|
* Timestamp: 10/27/2023 12:24:57 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
unlockspecialist()
|
|
{
|
|
if(getdvarint("mis_cheat") == 0)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(level.script == "europa")
|
|
{
|
|
wait(1);
|
|
var_00 = gettime() + 10000;
|
|
while(gettime() < var_00 && level.player buttonpressed("BUTTON_LSTICK") || level.player buttonpressed("m"))
|
|
{
|
|
wait(0.05);
|
|
}
|
|
|
|
if(gettime() >= var_00)
|
|
{
|
|
level.player method_84C7("unlockedRealism",1);
|
|
level.player method_84C7("beatRealism",1);
|
|
scripts\sp\_endmission::func_725B(1);
|
|
level.player playrumbleonentity("light_2s");
|
|
var_01 = newhudelem();
|
|
var_01.horzalign = "center";
|
|
var_01.vertalign = "fullscreen";
|
|
var_01.alignx = "center";
|
|
var_01.aligny = "top";
|
|
var_01.y = 10;
|
|
var_01 setshader("white",1,1);
|
|
wait(0.1);
|
|
var_01 destroy();
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 2
|
|
init()
|
|
{
|
|
precacheshellshock("plane_sway");
|
|
precacheshader("hud_injury_leg_right");
|
|
precacheshader("hud_injury_arm_right");
|
|
precacheshader("hud_injury_arm_left");
|
|
precacheshader("hud_injury_leg_left");
|
|
precacheshader("hud_injury_pristine");
|
|
precacheshader("hud_injury_scanner");
|
|
precacheshader("hud_injury_chest");
|
|
precacheshader("hud_injury_skull");
|
|
precacheshader("helmet_crack_00");
|
|
precacheshader("helmet_crack_01");
|
|
precacheshader("helmet_burn_00");
|
|
precacheshader("helmet_burn_01");
|
|
precacheshader("helmet_broken");
|
|
precacheitem("iw7_fists_specialist_mode");
|
|
precacheitem("nanoshot");
|
|
precacheitem("helmet");
|
|
precachemodel("equipment_mp_nanoshot_wm");
|
|
precachemodel("mil_grenade_box_dynamic");
|
|
function_01C5("ai_suppression_decrement_enemy",0.001);
|
|
function_01C5("cg_drawDamageDirection",0);
|
|
scripts\sp\_utility::func_16EB("helmet_tutorial_hint",&"SPECIALIST_MODE_TUTORIAL_HELMET");
|
|
scripts\sp\_utility::func_16EB("nanoshot_tutorial_hint",&"SPECIALIST_MODE_TUTORIAL_NANOSHOT");
|
|
scripts\sp\_utility::func_16EB("suffocate_tutorial_hint",&"SPECIALIST_MODE_TUTORIAL_SUFFOCATE");
|
|
scripts\sp\_utility::func_16EB("left_arm_tutorial_hint_equipment",&"SPECIALIST_MODE_TUTORIAL_LEFT_ARM_EQUIPMENT");
|
|
scripts\sp\_utility::func_16EB("left_arm_tutorial_hint_melee",&"SPECIALIST_MODE_TUTORIAL_LEFT_ARM_MELEE");
|
|
scripts\sp\_utility::func_16EB("helmet_already_on_tutorial_hint",&"SPECIALIST_MODE_TUTORIAL_HELMET_ALREADY_ON");
|
|
scripts\sp\_utility::func_16EB("nanoshot_tutorial_hint_at_max_health",&"SPECIALIST_MODE_TUTORIAL_NANOSHOT_MAX_HEALTH");
|
|
scripts\sp\_utility::func_16EB("helmet_find",&"SPECIALIST_MODE_TUTORIAL_HELMET_FIND");
|
|
scripts\sp\_utility::func_16EB("helmet_equip",&"SPECIALIST_MODE_TUTORIAL_HELMET_EQUIP");
|
|
scripts\sp\_utility::func_16EB("press_use_pc",&"SPECIALIST_MODE_USE_PC",::func_86C8);
|
|
scripts\sp\_utility::func_16EB("press_use_console",&"SPECIALIST_MODE_USE_CONSOLE",::func_86C8);
|
|
scripts\sp\_utility::func_16EB("specialist_loadout",&"SPECIALIST_MODE_LOADOUT");
|
|
level.var_10DB5 = 5;
|
|
level._effect["vfx_blood_impact"] = loadfx("vfx/code/impacts/flesh_hit_knife.vfx");
|
|
level._effect["vfx_gun_sparks"] = loadfx("vfx/misc/specialist_mode/gun_sparks.vfx");
|
|
level.var_10964 = spawnstruct();
|
|
level.var_10964.allowhints = 1;
|
|
level.var_10964.var_98EC = 0;
|
|
level.var_10964.ignorehelmetfuncs = 1;
|
|
func_F2D2(0);
|
|
var_00 = getentarray("specialist_mode_only","targetname");
|
|
foreach(var_02 in var_00)
|
|
{
|
|
if(isdefined(var_02.var_EE79))
|
|
{
|
|
if(var_02.var_EE79 == "notsolid")
|
|
{
|
|
var_02 notsolid();
|
|
}
|
|
}
|
|
}
|
|
|
|
thread unlockspecialist();
|
|
level.var_10964.var_2610 = spawn("script_origin",level.player.origin);
|
|
level.var_10964.var_2610 linkto(level.player);
|
|
}
|
|
|
|
//Function Number: 3
|
|
main()
|
|
{
|
|
level.player notifyonplayercommand("reload_pressed","+usereload");
|
|
level.player notifyonplayercommand("reload_pressed","+reload");
|
|
level.player notifyonplayercommand("use_pressed","+activate");
|
|
level.player notifyonplayercommand("use_pressed","+usereload");
|
|
level.player notifyonplayercommand("frag_pressed","+frag");
|
|
level.player notifyonplayercommand("smoke_pressed","+smoke");
|
|
level.player notifyonplayercommand("melee_pressed","+melee");
|
|
level.player notifyonplayercommand("melee_pressed","+melee_zoom");
|
|
level.player notifyonplayercommand("melee_pressed","+melee_sprint");
|
|
level.player notifyonplayercommand("actionslot_weapon_pressed","+actionslot 1");
|
|
level.player method_857E(1);
|
|
level.player scripts\common\utility::func_1C3A(0);
|
|
level.player scripts\sp\_utility::func_1C3E(0);
|
|
lib_0B61::func_95A4();
|
|
self.var_86F4 = 3;
|
|
self.var_BFAA = 0;
|
|
self.var_D430 = 0;
|
|
self.var_8E12 = 0;
|
|
self.var_D467 = 0;
|
|
self.var_4C97 = 0;
|
|
self.var_58DE = 0;
|
|
self.var_111BE = 0;
|
|
self.var_BF7E = 0;
|
|
self.var_10B3B = 0;
|
|
self.var_8E1B = 0;
|
|
self.helmetimpacts = [];
|
|
self.hidehelmetimpacts = 0;
|
|
var_00 = ["arm_left","arm_right","leg_left","leg_right","chest"];
|
|
self.var_2C19 = [];
|
|
foreach(var_02 in var_00)
|
|
{
|
|
self.var_2C19[var_02] = spawnstruct();
|
|
self.var_2C19[var_02].name = var_02;
|
|
self.var_2C19[var_02].maxhealth = 60;
|
|
self.var_2C19[var_02].health = 60;
|
|
}
|
|
|
|
func_9150(var_00);
|
|
func_F3FF(0);
|
|
func_F2A6(0);
|
|
func_F53C(1);
|
|
func_F400(0);
|
|
thread func_4D05();
|
|
thread func_BE50();
|
|
thread func_8DE3();
|
|
thread func_4E1B();
|
|
thread func_25FD();
|
|
thread func_12AAF();
|
|
thread spawn_specialist_crates();
|
|
thread move_specialist_crates();
|
|
thread delete_specialist_crates();
|
|
}
|
|
|
|
//Function Number: 4
|
|
func_4D05()
|
|
{
|
|
level.player endon("death");
|
|
level.player endon("headshot_death");
|
|
for(;;)
|
|
{
|
|
level.player waittill("damage",var_00,var_01,var_02,var_03,var_04,var_05,var_05,var_05,var_05,var_06);
|
|
if(!func_2C8C())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(func_2C8D())
|
|
{
|
|
thread func_4E1A(1);
|
|
break;
|
|
}
|
|
|
|
if(isdefined(level.player.var_3294) && level.player.var_3294)
|
|
{
|
|
func_4CE0("chest",0.25);
|
|
func_4CE0("arm_left",0.25);
|
|
continue;
|
|
}
|
|
|
|
thread func_25E3();
|
|
level.player playsound("melee_knife_stab_upper_hit_plr");
|
|
if(vectortoangles(var_02) == (90,0,0))
|
|
{
|
|
thread func_4D16(scripts\common\utility::random(["left","right"]),var_00);
|
|
continue;
|
|
}
|
|
|
|
var_07 = level.player geteye()[2] + 12 - level.player.origin[2];
|
|
var_08 = var_03[2] - level.player.origin[2] / var_07;
|
|
if(var_08 > 0.79)
|
|
{
|
|
var_09 = var_01.origin;
|
|
if(isai(var_01))
|
|
{
|
|
var_09 = var_01 geteye();
|
|
}
|
|
else if(var_01.classname != "worldspawn" && isdefined(var_01.model) && scripts\sp\_utility::func_8C32(var_01.model,"j_head"))
|
|
{
|
|
var_09 = var_01 gettagorigin("j_head");
|
|
}
|
|
|
|
thread func_4D14(var_00,var_04,var_09,var_06);
|
|
}
|
|
else if(var_08 > 0.61)
|
|
{
|
|
thread func_4D18(func_4CFA(var_03,1),var_00);
|
|
}
|
|
else
|
|
{
|
|
thread func_4D16(func_4CFA(var_03,0),var_00);
|
|
}
|
|
|
|
func_F531(0.55);
|
|
func_F49E(1);
|
|
thread func_F49E(0,1.83);
|
|
}
|
|
}
|
|
|
|
//Function Number: 5
|
|
func_4CFA(param_00,param_01)
|
|
{
|
|
var_02 = param_00 - level.player.origin;
|
|
var_03 = lib_0B4D::func_EB9B(function_02D3(level.player.angles),var_02);
|
|
var_04 = lib_0B4D::func_EB9B(anglestoright(level.player.angles),var_02);
|
|
var_05 = max(var_03,var_04);
|
|
if(var_05 <= 1.35 && param_01)
|
|
{
|
|
return "chest";
|
|
}
|
|
else if(var_05 == var_03)
|
|
{
|
|
return "left";
|
|
}
|
|
|
|
return "right";
|
|
}
|
|
|
|
//Function Number: 6
|
|
func_4D14(param_00,param_01,param_02,param_03)
|
|
{
|
|
if(param_01 == "MOD_MELEE")
|
|
{
|
|
var_04 = 0;
|
|
}
|
|
else
|
|
{
|
|
var_04 = 0.422618;
|
|
}
|
|
|
|
if(!scripts\common\utility::func_13D90(level.player.origin,level.player.angles,param_02,var_04))
|
|
{
|
|
var_05 = ["chest","left","right"];
|
|
thread func_4D18(scripts\common\utility::random(var_05),param_00);
|
|
return;
|
|
}
|
|
|
|
if(func_2C95() && self.var_8E1B < 4)
|
|
{
|
|
if(isdefined(var_04) && weaponclass(var_04) == "sniper" && self.var_8E1B < 3)
|
|
{
|
|
self.var_8E1B = 3;
|
|
param_01 = param_01 * 0.75;
|
|
}
|
|
else
|
|
{
|
|
self.var_8E1B++;
|
|
}
|
|
|
|
func_F52C(level.player.health + param_01);
|
|
if(self.var_8E1B >= 4)
|
|
{
|
|
thread func_4CE1();
|
|
return;
|
|
}
|
|
|
|
thread func_25E9("injury","helmet");
|
|
if(level.var_10964.var_8E1B == 3)
|
|
{
|
|
thread func_9147(1);
|
|
}
|
|
else if(param_02 == "MOD_MELEE")
|
|
{
|
|
func_4CFB(0,1,param_03);
|
|
}
|
|
else
|
|
{
|
|
func_4CFB(1,1,param_03);
|
|
}
|
|
|
|
if(!self.var_8E12)
|
|
{
|
|
thread func_9146();
|
|
return;
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
thread func_4E1A(0);
|
|
}
|
|
|
|
//Function Number: 7
|
|
func_4D16(param_00,param_01)
|
|
{
|
|
level.player endon("death");
|
|
if(level.player getstance() == "prone")
|
|
{
|
|
thread func_4D18(param_00,param_01);
|
|
return;
|
|
}
|
|
|
|
function_01A2(level.player.origin,10,20,5,0.75);
|
|
var_02 = "leg_" + param_00;
|
|
var_03 = func_2C94(var_02);
|
|
func_4CE0(var_02,param_01);
|
|
if(var_03)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(!func_2C94(var_02))
|
|
{
|
|
thread func_25E9("injury","leg","generic");
|
|
return;
|
|
}
|
|
|
|
thread func_4D12();
|
|
var_04 = func_2C94("leg_right") && func_2C94("leg_left");
|
|
if(var_04)
|
|
{
|
|
thread func_25E9("injury","legs","critical");
|
|
return;
|
|
}
|
|
|
|
thread func_4D39();
|
|
thread func_25E9("injury","leg","critical");
|
|
}
|
|
|
|
//Function Number: 8
|
|
func_4D39()
|
|
{
|
|
level.player endon("nanoshot_healing");
|
|
level.player notify("leg_damage");
|
|
childthread damage_leg_view_dvar_thread();
|
|
for(;;)
|
|
{
|
|
var_00 = 1;
|
|
var_01 = 6;
|
|
var_02 = 0.5;
|
|
var_03 = level.player getstance();
|
|
if(var_03 == "crouch")
|
|
{
|
|
var_00 = var_00 * 0.5;
|
|
var_01 = var_01 * 0.5;
|
|
}
|
|
|
|
if(level.player method_822E() > 0)
|
|
{
|
|
var_00 = var_00 * 0.5;
|
|
var_01 = var_01 * 0.4;
|
|
var_02 = var_02 * 0.333333;
|
|
}
|
|
|
|
if(scripts\sp\_utility::func_93AC() || func_2C97())
|
|
{
|
|
scripts\sp\_utility::func_AB9A("bg_viewBobMax",0,0.5);
|
|
level.player method_82B5(0);
|
|
}
|
|
else if(level.player isonground())
|
|
{
|
|
level.player method_82B5(var_00);
|
|
scripts\sp\_utility::func_AB9A("bg_viewBobMax",var_01,var_02);
|
|
}
|
|
else
|
|
{
|
|
level.player method_82B5(1);
|
|
scripts\sp\_utility::func_AB9A("bg_viewBobMax",7,0.5);
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 9
|
|
damage_leg_view_dvar_thread()
|
|
{
|
|
for(;;)
|
|
{
|
|
var_00 = getdvarint("bg_viewBobConstantAmplitude");
|
|
if(level.player islinked() && var_00 == 1)
|
|
{
|
|
function_01C5("bg_viewBobConstantAmplitude",0);
|
|
}
|
|
else if(!level.player islinked() && var_00 == 0)
|
|
{
|
|
function_01C5("bg_viewBobConstantAmplitude",1);
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 10
|
|
func_4D12()
|
|
{
|
|
level.player endon("death");
|
|
if(issubstr(level.player getcurrentprimaryweapon(),"steeldragon"))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(!level.player isonground())
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(scripts\sp\_utility::func_93AC())
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_00 = level.player getstance();
|
|
if(var_00 == "prone")
|
|
{
|
|
return;
|
|
}
|
|
|
|
level.player scripts\common\utility::func_1C68(0);
|
|
if(not_able_to_prone())
|
|
{
|
|
level.player setstance("crouch");
|
|
var_01 = 0;
|
|
}
|
|
else
|
|
{
|
|
level.player scripts\common\utility::func_1C40(0);
|
|
level.player setstance("prone");
|
|
var_01 = 1;
|
|
}
|
|
|
|
level.player scripts\common\utility::allow_jump(0);
|
|
thread func_4D13(var_01);
|
|
}
|
|
|
|
//Function Number: 11
|
|
not_able_to_prone()
|
|
{
|
|
if(isdefined(level.player.var_55DC) && level.player.var_55DC > 0)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
var_00 = getentarray("trigger_multiple_no_prone","classname");
|
|
foreach(var_02 in var_00)
|
|
{
|
|
if(level.player istouching(var_02))
|
|
{
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 12
|
|
func_4D18(param_00,param_01)
|
|
{
|
|
level.player endon("death");
|
|
if(param_00 == "chest")
|
|
{
|
|
thread func_4D11(param_01);
|
|
return;
|
|
}
|
|
|
|
var_02 = "arm_" + param_00;
|
|
if(func_2C8A() && var_02 == "arm_right")
|
|
{
|
|
self.var_BF7E = gettime() + 120000 + randomint(120000);
|
|
thread func_4D1D();
|
|
func_F52C(level.player.health + param_01);
|
|
return;
|
|
}
|
|
|
|
playfx(level._effect["vfx_blood_impact"],level.player geteye());
|
|
function_01A2(level.player.origin,20,30,10,0.75);
|
|
var_03 = func_2C94(var_02);
|
|
func_4CE0(var_02,param_01);
|
|
if(var_03)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(!func_2C94(var_02))
|
|
{
|
|
thread func_25E9("injury","arm","generic");
|
|
return;
|
|
}
|
|
|
|
if(var_02 == "arm_left")
|
|
{
|
|
thread func_4D36();
|
|
if(func_2C94("arm_right"))
|
|
{
|
|
thread func_4D31();
|
|
}
|
|
}
|
|
else if(var_02 == "arm_right")
|
|
{
|
|
if(func_2C94("arm_left"))
|
|
{
|
|
thread func_4D31();
|
|
}
|
|
else
|
|
{
|
|
thread func_4D3E();
|
|
}
|
|
}
|
|
|
|
var_04 = func_2C94("arm_right") && func_2C94("arm_left");
|
|
if(var_04)
|
|
{
|
|
thread func_25E9("injury","arms","critical");
|
|
return;
|
|
}
|
|
|
|
thread func_25E9("injury","arm","critical");
|
|
}
|
|
|
|
//Function Number: 13
|
|
func_4D11(param_00)
|
|
{
|
|
var_01 = func_2C94("chest");
|
|
function_01A2(level.player.origin,20,30,10,0.75);
|
|
func_4CE0("chest",param_00);
|
|
if(var_01)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(!func_2C94("chest"))
|
|
{
|
|
return;
|
|
}
|
|
|
|
thread func_25E9("injury","chest","critical");
|
|
}
|
|
|
|
//Function Number: 14
|
|
func_4D13(param_00)
|
|
{
|
|
level.player endon("death");
|
|
level.player method_846F("ges_hold_here",undefined,0.25,0,1,0);
|
|
wait(0.6);
|
|
level.player stopgestureviewmodel("ges_hold_here");
|
|
level.player scripts\common\utility::func_1C68(1);
|
|
if(param_00)
|
|
{
|
|
level.player scripts\common\utility::func_1C40(1);
|
|
}
|
|
|
|
level.player scripts\common\utility::allow_jump(1);
|
|
}
|
|
|
|
//Function Number: 15
|
|
func_4D36()
|
|
{
|
|
level.player endon("death");
|
|
level.player endon("both_arms_hurt");
|
|
level.player scripts\common\utility::func_1C62(0);
|
|
level.player scripts\common\utility::func_1C53(0);
|
|
level.player scripts\common\utility::func_1C35(0);
|
|
level.player scripts\common\utility::func_1C58(0);
|
|
level.player scripts\sp\_utility::func_1C72(0);
|
|
level.player scripts\sp\_utility::func_1C34(0);
|
|
level notify("pause_jackal_streak_message");
|
|
if(scripts\sp\_utility::func_D0BD("grapplingdevice",1))
|
|
{
|
|
level.player notify("spacegrapple_cancel");
|
|
level.player method_8507();
|
|
}
|
|
|
|
thread func_4D37();
|
|
thread func_4D38();
|
|
thread func_4D35();
|
|
level.player waittill("nanoshot_healing");
|
|
level.player scripts\common\utility::func_1C62(1);
|
|
level.player stopgestureviewmodel("ges_left_arm_damage");
|
|
level.player stopgestureviewmodel("ges_left_arm_damage_reload");
|
|
}
|
|
|
|
//Function Number: 16
|
|
func_4D35()
|
|
{
|
|
level.player endon("nanoshot_healing");
|
|
level endon("both_arms_hurt");
|
|
level.player method_846F("ges_left_arm_damage",undefined,0.2,0,1,0);
|
|
var_00 = 1;
|
|
wait(var_00);
|
|
for(;;)
|
|
{
|
|
wait(0.05);
|
|
if(!func_2C88())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
level.player method_846F("ges_left_arm_damage",undefined,0,var_00,1,1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 17
|
|
func_4D37()
|
|
{
|
|
level.player endon("nanoshot_healing");
|
|
level.player endon("headshot_death");
|
|
level.player endon("death");
|
|
for(;;)
|
|
{
|
|
level.player waittill("frag_pressed");
|
|
if(func_2C87())
|
|
{
|
|
level.player playsound("melee_knife_human_default_fatal_plr");
|
|
var_00 = level.player getweaponammostock("nanoshot");
|
|
level.player setweaponammostock("nanoshot",var_00 - 1);
|
|
wait(1);
|
|
level.player stopgestureviewmodel("ges_both_arm_damage",0.75,1);
|
|
level.player stopgestureviewmodel("ges_left_arm_damage",0.75,1);
|
|
thread func_BE54();
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 18
|
|
func_4D38()
|
|
{
|
|
level.player endon("nanoshot_healing");
|
|
for(;;)
|
|
{
|
|
level.player waittill("reload_pressed");
|
|
if(!func_2C89())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
thread damageed_left_arm_reload_internal();
|
|
level.player waittill("damaged_left_arm_reload_done");
|
|
}
|
|
}
|
|
|
|
//Function Number: 19
|
|
damageed_left_arm_reload_internal()
|
|
{
|
|
self.var_4C97 = 1;
|
|
level.player method_846F("ges_left_arm_damage_reload",undefined,0.2,0,1,1);
|
|
level.player scripts\common\utility::func_1C46(0);
|
|
wait(2.7);
|
|
if(func_2C94("arm_right") && func_2C94("arm_left"))
|
|
{
|
|
level.player method_846F("ges_both_arm_damage",undefined,0.5,0,1,1);
|
|
}
|
|
else if(func_2C94("arm_left"))
|
|
{
|
|
level.player method_846F("ges_left_arm_damage",undefined,0.2,1,1,1);
|
|
}
|
|
|
|
var_00 = level.player getcurrentprimaryweapon();
|
|
var_01 = weaponclipsize(var_00);
|
|
var_02 = level.player method_8118();
|
|
var_03 = level.player getweaponammostock(var_00);
|
|
var_04 = min(var_01 - var_02,var_03);
|
|
level.player setweaponammoclip(var_00,int(var_02 + var_04));
|
|
level.player setweaponammostock(var_00,int(var_03 - var_04));
|
|
level.player scripts\common\utility::func_1C46(1);
|
|
self.var_4C97 = 0;
|
|
level.player notify("damaged_left_arm_reload_done");
|
|
}
|
|
|
|
//Function Number: 20
|
|
func_4D3E()
|
|
{
|
|
level.player endon("nanoshot_healing");
|
|
level endon("both_arms_hurt");
|
|
for(;;)
|
|
{
|
|
wait(0.05);
|
|
if(!func_2C88())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
level.player method_846F("ges_right_arm_damage",undefined,0.5,0,1,1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 21
|
|
func_4D31()
|
|
{
|
|
level notify("both_arms_hurt");
|
|
level.player endon("nanoshot_healing");
|
|
for(;;)
|
|
{
|
|
wait(0.05);
|
|
if(!func_2C88())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
level.player method_846F("ges_both_arm_damage",undefined,0.5,0,1,1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 22
|
|
func_4D1D()
|
|
{
|
|
level.player specialist_allow_invulnerability(1);
|
|
level.player playgestureviewmodel("ges_shocknade_loop",undefined,1,0.25,0,0);
|
|
function_0178("bullet_ricochet_heavy",level.player geteye());
|
|
self.var_86F4--;
|
|
level.player giveweapon("iw7_fists_specialist_mode");
|
|
level.player switchtoweapon("iw7_fists_specialist_mode");
|
|
level.player disableweaponpickup();
|
|
thread func_86CB(0);
|
|
wait(0.5);
|
|
level.player stopgestureviewmodel("ges_shocknade_loop");
|
|
}
|
|
|
|
//Function Number: 23
|
|
func_86CB(param_00)
|
|
{
|
|
var_01 = level.player getcurrentprimaryweapon();
|
|
if(level.player method_8519(var_01,1) && !issubstr(var_01,"iw7_fmg"))
|
|
{
|
|
var_01 = weaponaltweaponname(var_01);
|
|
}
|
|
|
|
var_02 = level.player method_8446() || !level.player isonground();
|
|
if(!var_02)
|
|
{
|
|
level.player allowmovement(0);
|
|
wait(0.1);
|
|
}
|
|
|
|
var_03 = level.player geteye() + (0,0,-3);
|
|
var_03 = var_03 + anglestoforward(level.player.angles) * 19;
|
|
var_03 = var_03 + anglestoright(level.player.angles) * 7;
|
|
var_04 = spawn("weapon_" + var_01,var_03);
|
|
var_04.angles = level.player.angles;
|
|
if(!param_00)
|
|
{
|
|
var_04 thread func_86CC(var_01,var_02);
|
|
return;
|
|
}
|
|
|
|
level.player takeweapon(var_01);
|
|
var_04 physicslaunchserveritem(var_04.origin,var_04.origin + anglestoforward(level.player.angles) * 30);
|
|
}
|
|
|
|
//Function Number: 24
|
|
func_86CC(param_00,param_01)
|
|
{
|
|
var_02 = level.player method_8118();
|
|
var_03 = level.player getweaponammostock(param_00);
|
|
if(!param_01)
|
|
{
|
|
thread func_86CE(0.5);
|
|
}
|
|
else
|
|
{
|
|
thread gun_drop_while_wallrunning();
|
|
}
|
|
|
|
level.player takeweapon(level.player getcurrentprimaryweapon());
|
|
var_04 = level.player getplayerangles();
|
|
var_05 = vectortoangles(self.origin - level.player geteye());
|
|
level.player setplayerangles(var_05);
|
|
level.player method_80D8(0.05,0.05);
|
|
scripts\sp\_audio::func_F5A0();
|
|
setslowmotion(1,0.1,0.05);
|
|
var_06 = scripts\common\utility::spawn_tag_origin(self.origin,(0,0,0));
|
|
var_06 linkto(self);
|
|
playfxontag(level._effect["vfx_gun_sparks"],var_06,"tag_origin");
|
|
scripts\common\utility::func_C0A6(0.1,::playfxontag,level._effect["vfx_gun_sparks"],var_06,"tag_origin");
|
|
var_06 scripts\common\utility::delaycall(1,::delete);
|
|
thread scripts\sp\_utility::func_C12D("weapon_pickup_failed",0.5);
|
|
level.player scripts\common\utility::delaycall(0.5,::enableweaponpickup);
|
|
thread func_86C9();
|
|
thread func_86CF(param_00);
|
|
level scripts\common\utility::waittill_any_3("weapon_pickup_failed","player_grabbed_weapon");
|
|
setslowmotion(0.25,1,0.4);
|
|
level.player method_80D8(1,1);
|
|
level.player allowmovement(1);
|
|
level.player specialist_allow_invulnerability(0);
|
|
scripts\sp\_audio::func_F59F();
|
|
thread func_86CD(param_00,var_02,var_03);
|
|
}
|
|
|
|
//Function Number: 25
|
|
func_86CD(param_00,param_01,param_02)
|
|
{
|
|
for(;;)
|
|
{
|
|
level.player waittill("weapon_change",var_03);
|
|
if(isdefined(var_03) && var_03 == "none" || var_03 == "iw7_fists_specialist_mode")
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(scripts\sp\_utility::func_D0CA("iw7_fists_specialist_mode"))
|
|
{
|
|
level.player takeweapon("iw7_fists_specialist_mode");
|
|
}
|
|
|
|
if(isdefined(self))
|
|
{
|
|
if(distance2dsquared(self.origin,level.player.origin) > 1000000)
|
|
{
|
|
break;
|
|
}
|
|
|
|
continue;
|
|
}
|
|
else if(var_03 == param_00)
|
|
{
|
|
level.player setweaponammoclip(var_03,param_01);
|
|
level.player setweaponammostock(var_03,param_02);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 26
|
|
func_86CE(param_00)
|
|
{
|
|
level endon("player_grabbed_weapon");
|
|
var_01 = 0.27;
|
|
var_02 = gettime() + var_01 * 1000;
|
|
var_03 = param_00 - var_01;
|
|
var_04 = 20;
|
|
var_05 = 15;
|
|
var_06 = 1;
|
|
var_07 = 2.5;
|
|
while(gettime() < var_02)
|
|
{
|
|
if(!isdefined(self))
|
|
{
|
|
break;
|
|
}
|
|
|
|
var_08 = level.player geteye();
|
|
var_09 = anglestoforward(level.player.angles);
|
|
var_0A = anglestoup(level.player.angles);
|
|
var_0B = var_08 + var_09 * var_04;
|
|
var_0B = var_0B + var_0A * var_05;
|
|
var_0C = distance(self.origin,var_0B);
|
|
var_0D = vectortoangles(var_0B - self.origin);
|
|
var_0D = anglestoforward(var_0D);
|
|
var_0E = lib_0B4D::func_C097(0,var_04,var_0C);
|
|
self.origin = self.origin + var_0D * var_07;
|
|
var_0F = randomfloatrange(-11,-9);
|
|
self.angles = self.angles + (var_0F,var_0F,var_0F);
|
|
wait(0.05);
|
|
}
|
|
|
|
wait(var_03);
|
|
level notify("weapon_pickup_failed");
|
|
}
|
|
|
|
//Function Number: 27
|
|
gun_drop_while_wallrunning()
|
|
{
|
|
level endon("player_grabbed_weapon");
|
|
var_00 = anglestoforward(level.player getplayerangles());
|
|
self.origin = self.origin + var_00 * 20;
|
|
var_01 = vectornormalize(level.player getvelocity() + (0,0,10));
|
|
self physicslaunchserveritem(self.origin,var_01 * 1700);
|
|
wait(0.5);
|
|
level notify("weapon_pickup_failed");
|
|
}
|
|
|
|
//Function Number: 28
|
|
func_86C9()
|
|
{
|
|
if(level.console || level.player usinggamepad())
|
|
{
|
|
scripts\sp\_utility::func_56BE("press_use_console",0.5);
|
|
return;
|
|
}
|
|
|
|
scripts\sp\_utility::func_56BE("press_use_pc",0.5);
|
|
}
|
|
|
|
//Function Number: 29
|
|
func_86C8()
|
|
{
|
|
return level.player usebuttonpressed();
|
|
}
|
|
|
|
//Function Number: 30
|
|
func_86CF(param_00)
|
|
{
|
|
level.player endon("death");
|
|
level endon("weapon_pickup_failed");
|
|
level.player waittill("use_pressed");
|
|
level.player stopgestureviewmodel("ges_shocknade_loop",0);
|
|
level.player playgestureviewmodel("ges_swipe",self,1,0,0.3,1);
|
|
var_01 = level.player.origin + anglestoforward(level.player.angles) * -30;
|
|
if(!scripts\common\utility::func_13D90(var_01,level.player.angles,self.origin,0.5))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(distancesquared(level.player geteye(),self.origin) > 2500)
|
|
{
|
|
return;
|
|
}
|
|
|
|
level notify("player_grabbed_weapon");
|
|
func_86CA();
|
|
function_0178("scrap_pickup_small",level.player.origin);
|
|
level.player giveweapon(param_00);
|
|
level.player switchtoweapon(param_00);
|
|
if(scripts\sp\_utility::func_D0CA("iw7_fists_specialist_mode"))
|
|
{
|
|
level.player takeweapon("iw7_fists_specialist_mode");
|
|
}
|
|
}
|
|
|
|
//Function Number: 31
|
|
func_86CA()
|
|
{
|
|
var_00 = level.player geteye() + (0,0,-20);
|
|
var_00 = var_00 + anglestoright(level.player getplayerangles()) * 5;
|
|
var_00 = var_00 + anglestoforward(level.player getplayerangles()) * -25;
|
|
var_01 = distance(var_00,self.origin);
|
|
var_02 = vectortoangles(var_00 - self.origin);
|
|
var_02 = anglestoforward(var_02);
|
|
var_03 = self.origin;
|
|
var_04 = 0.5;
|
|
var_05 = 0;
|
|
while(var_05 < 1 && isdefined(self))
|
|
{
|
|
self.origin = var_03 + var_02 * var_01 * var_05;
|
|
var_05 = var_05 + var_04;
|
|
wait(0.05);
|
|
}
|
|
|
|
if(isdefined(self))
|
|
{
|
|
self delete();
|
|
}
|
|
}
|
|
|
|
//Function Number: 32
|
|
func_BE50()
|
|
{
|
|
level.player endon("death");
|
|
thread func_BE4F();
|
|
thread nanoshot_pickup_watcher();
|
|
for(;;)
|
|
{
|
|
level.player waittill("grenade_fire",var_00,var_01);
|
|
if(var_01 == "nanoshot")
|
|
{
|
|
level.player playsound("melee_knife_human_default_fatal_plr");
|
|
var_00 delete();
|
|
thread func_BE54();
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 33
|
|
func_BE4F()
|
|
{
|
|
level.player endon("death");
|
|
for(;;)
|
|
{
|
|
wait(0.05);
|
|
if(func_2C99())
|
|
{
|
|
level.player method_858B();
|
|
continue;
|
|
}
|
|
|
|
level.player method_858C();
|
|
}
|
|
}
|
|
|
|
//Function Number: 34
|
|
func_BE54()
|
|
{
|
|
level.player notify("nanoshot_healing");
|
|
thread func_BE53();
|
|
thread func_BE51();
|
|
thread announce_healed();
|
|
var_00 = func_2296(0);
|
|
foreach(var_02 in var_00)
|
|
{
|
|
thread func_BE52(var_02);
|
|
}
|
|
|
|
func_F52C(level.player.maxhealth);
|
|
}
|
|
|
|
//Function Number: 35
|
|
announce_healed()
|
|
{
|
|
var_00 = 0;
|
|
var_01 = 0;
|
|
var_02 = func_2C94("leg_left") || func_2C94("leg_right");
|
|
if(var_02)
|
|
{
|
|
var_00 = func_2C94("leg_left") && func_2C94("leg_right");
|
|
}
|
|
|
|
var_03 = func_2C94("arm_left") || func_2C94("arm_right");
|
|
if(var_03)
|
|
{
|
|
var_01 = func_2C94("arm_left") && func_2C94("arm_right");
|
|
}
|
|
|
|
if(!var_02 && var_03)
|
|
{
|
|
if(var_01)
|
|
{
|
|
if(scripts\common\utility::func_4347())
|
|
{
|
|
thread func_25E9("repair","arms");
|
|
return;
|
|
}
|
|
|
|
thread func_25E9("repair","status");
|
|
return;
|
|
}
|
|
|
|
thread func_25E9("repair","arm");
|
|
return;
|
|
}
|
|
|
|
if(var_02 && !var_03)
|
|
{
|
|
if(var_00)
|
|
{
|
|
if(scripts\common\utility::func_4347())
|
|
{
|
|
thread func_25E9("repair","legs");
|
|
return;
|
|
}
|
|
|
|
thread func_25E9("repair","status");
|
|
return;
|
|
}
|
|
|
|
thread func_25E9("repair","leg");
|
|
return;
|
|
}
|
|
|
|
thread func_25E9("repair","status");
|
|
}
|
|
|
|
//Function Number: 36
|
|
func_BE53()
|
|
{
|
|
var_00 = func_2C94("leg_left") || func_2C94("leg_right");
|
|
if(var_00)
|
|
{
|
|
var_01 = 0.25;
|
|
thread scripts\sp\_utility::func_AB9A("bg_viewBobMax",7,var_01);
|
|
level.player method_82B5(0);
|
|
level.player endon("leg_damage");
|
|
wait(var_01);
|
|
function_01C5("bg_viewBobConstantAmplitude",0);
|
|
}
|
|
}
|
|
|
|
//Function Number: 37
|
|
func_BE51()
|
|
{
|
|
if(func_2C94("arm_left"))
|
|
{
|
|
level.player scripts\common\utility::func_1C53(1);
|
|
level.player scripts\common\utility::func_1C35(1);
|
|
level.player scripts\common\utility::func_1C58(1);
|
|
level.player scripts\sp\_utility::func_1C72(1);
|
|
level.player scripts\sp\_utility::func_1C34(1);
|
|
if(scripts\sp\_utility::func_D0BD("grapplingdevice",1))
|
|
{
|
|
level.player method_8503("ges_grapple","ges_grav_jump_combat_fail",level.var_10533,level.var_10532);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 38
|
|
func_8DE3()
|
|
{
|
|
level.player endon("death");
|
|
thread func_8DE0();
|
|
thread func_8DE1();
|
|
for(;;)
|
|
{
|
|
level.player waittill("smoke_pressed");
|
|
if(!func_2C8B())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
level.var_10964.togglinghelmet = 1;
|
|
if(bool_player_helmet_damaged_enough())
|
|
{
|
|
func_F3FF(0);
|
|
}
|
|
|
|
var_00 = level.player getweaponammostock("helmet");
|
|
level.player setweaponammostock("helmet",var_00 - 1);
|
|
func_8E05();
|
|
level.var_10964.togglinghelmet = undefined;
|
|
}
|
|
}
|
|
|
|
//Function Number: 39
|
|
func_8DE0()
|
|
{
|
|
func_137D2();
|
|
func_F400(1);
|
|
}
|
|
|
|
//Function Number: 40
|
|
func_8DE1()
|
|
{
|
|
level.player endon("death");
|
|
for(;;)
|
|
{
|
|
var_00 = level.player.var_4B21;
|
|
level.player waittill("secondary_equipment_change",var_01);
|
|
if(var_01 == "helmet")
|
|
{
|
|
if(scripts\sp\_utility::func_D0BD("grapplingdevice",1) && !func_2C94("arm_left"))
|
|
{
|
|
level.player method_8507();
|
|
}
|
|
|
|
level.player scripts\common\utility::func_1C56(0);
|
|
continue;
|
|
}
|
|
|
|
if(var_00 == "helmet")
|
|
{
|
|
if(scripts\sp\_utility::func_D0BD("grapplingdevice",0) && !func_2C94("arm_left"))
|
|
{
|
|
level.player method_8503("ges_grapple","ges_grav_jump_combat_fail",level.var_10533,level.var_10532);
|
|
}
|
|
|
|
level.player scripts\common\utility::func_1C56(1);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 41
|
|
func_8E01()
|
|
{
|
|
level.var_10964.var_BB4A = 1;
|
|
func_F3FF(0);
|
|
}
|
|
|
|
//Function Number: 42
|
|
func_4CE0(param_00,param_01)
|
|
{
|
|
var_02 = level.var_10964.var_2C19[param_00];
|
|
var_03 = var_02.health - param_01 <= 30;
|
|
if(self.var_BFAA && !var_03)
|
|
{
|
|
var_04 = var_02.health - param_01 - 30;
|
|
param_01 = param_01 + var_04;
|
|
func_F52C(level.player.health - var_04);
|
|
}
|
|
|
|
var_02.health = var_02.health - param_01;
|
|
var_02.health = clamp(var_02.health,0,var_02.maxhealth);
|
|
if(func_2C95())
|
|
{
|
|
level.var_10964 thread func_9151();
|
|
}
|
|
|
|
var_05 = var_02.health / var_02.maxhealth;
|
|
self.var_98F1[param_00] notify("hud_flicker_stop");
|
|
self.var_98F1[param_00].alpha_req = 1 - var_05;
|
|
}
|
|
|
|
//Function Number: 43
|
|
func_BE52(param_00)
|
|
{
|
|
self.var_98F1[param_00.name] notify("hud_flicker_stop");
|
|
self.var_98F1[param_00.name].alpha_req = 0;
|
|
param_00.health = param_00.maxhealth;
|
|
}
|
|
|
|
//Function Number: 44
|
|
func_4CFB(param_00,param_01,param_02)
|
|
{
|
|
level.player playrumbleonentity("grenade_rumble");
|
|
if(param_01)
|
|
{
|
|
function_01A2(level.player.origin,50,60,10,0.75);
|
|
function_0178("plr_helmet_glass_break",level.player geteye());
|
|
}
|
|
|
|
if(!isdefined(param_02))
|
|
{
|
|
param_02 = level.player.origin + scripts\common\utility::func_DCC8(500);
|
|
}
|
|
|
|
var_03 = scripts\common\utility::func_13D90(level.player geteye(),level.player.angles,param_02,0.866025);
|
|
var_04 = level.player lib_0B4D::func_9C86(param_02);
|
|
if((var_03 && var_04) || !var_03 && !var_04)
|
|
{
|
|
var_05 = [-55,100];
|
|
var_06 = [30,430];
|
|
}
|
|
else
|
|
{
|
|
var_05 = [500,650];
|
|
var_06 = [30,400];
|
|
}
|
|
|
|
if(isdefined(level.var_10964.var_A99C))
|
|
{
|
|
var_07 = var_06[1] - var_06[0] * 0.5;
|
|
if(level.var_10964.var_A99C > var_07)
|
|
{
|
|
var_06[1] = var_06[1] - int(var_07);
|
|
}
|
|
else
|
|
{
|
|
var_06[0] = var_06[0] + int(var_07);
|
|
}
|
|
}
|
|
|
|
var_08 = randomintrange(var_05[0],var_05[1]);
|
|
var_09 = randomintrange(var_06[0],var_06[1]);
|
|
level.var_10964.var_A99C = var_09;
|
|
thread func_914F(var_08,var_09,param_00,!var_04);
|
|
}
|
|
|
|
//Function Number: 45
|
|
func_914F(param_00,param_01,param_02,param_03)
|
|
{
|
|
var_04 = [];
|
|
if(param_02)
|
|
{
|
|
var_05 = ["crack","burn"];
|
|
}
|
|
else
|
|
{
|
|
var_05 = ["crack"];
|
|
}
|
|
|
|
var_06 = randomintrange(270,350);
|
|
foreach(var_08 in var_05)
|
|
{
|
|
var_04[var_08] = newclienthudelem(level.player);
|
|
var_04[var_08] setshader("helmet_" + var_08 + "_0" + param_03,var_06,var_06);
|
|
var_04[var_08].alignx = "center";
|
|
var_04[var_08].aligny = "middle";
|
|
var_04[var_08].x = param_00;
|
|
var_04[var_08].y = param_01;
|
|
var_04[var_08].sort = 2;
|
|
var_04[var_08].foreground = 1;
|
|
}
|
|
|
|
level.var_10964.helmetimpacts[level.var_10964.helmetimpacts.size] = var_04;
|
|
if(param_02)
|
|
{
|
|
var_04["burn"].alpha = 0.7;
|
|
var_0A = 3;
|
|
var_04["burn"] scripts\common\utility::func_5127(0.5,::scripts\sp\_hud_util::func_6AAB,0,var_0A - 0.5);
|
|
var_04["burn"] thread func_9175(var_0A);
|
|
}
|
|
|
|
func_137D1();
|
|
if(isdefined(level.var_10964.var_BB4A) && level.var_10964.var_BB4A)
|
|
{
|
|
level.var_10964 func_915F(var_04);
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(level.var_10964.jackalhelmetcrackfade))
|
|
{
|
|
level.var_10964 hud_fade_cracks(var_04,var_05,4);
|
|
level.var_10964.jackalhelmetcrackfade = undefined;
|
|
}
|
|
|
|
var_04["crack"] destroy();
|
|
if(param_02 && isdefined(var_04["burn"]))
|
|
{
|
|
var_04["burn"] destroy();
|
|
}
|
|
|
|
scripts\common\utility::func_22BC(level.var_10964.helmetimpacts);
|
|
}
|
|
|
|
//Function Number: 46
|
|
func_9147(param_00)
|
|
{
|
|
level.player playrumbleonentity("grenade_rumble");
|
|
if(param_00)
|
|
{
|
|
function_01A2(level.player.origin,50,60,10,0.75);
|
|
function_0178("plr_helmet_glass_break",level.player geteye());
|
|
}
|
|
|
|
var_01 = newclienthudelem(level.player);
|
|
var_01.foreground = 1;
|
|
var_01.alignx = "left";
|
|
var_01.aligny = "top";
|
|
var_01.horzalign = "fullscreen";
|
|
var_01.vertalign = "fullscreen";
|
|
var_01 setshader("helmet_broken",640,480);
|
|
level.var_10964.helmetimpacts[level.var_10964.helmetimpacts.size]["crack"] = var_01;
|
|
func_137D1();
|
|
var_01 destroy();
|
|
}
|
|
|
|
//Function Number: 47
|
|
func_4CE1()
|
|
{
|
|
func_F3FF(0);
|
|
function_0178("glass_pane_piece_break",level.player geteye());
|
|
function_01A2(level.player.origin,70,80,40,1);
|
|
thread func_25E9("injury","helmet");
|
|
level.player specialist_allow_invulnerability(1);
|
|
level.player scripts\common\utility::func_1C35(0);
|
|
playfx(level._effect["vfx_gun_sparks"],level.player geteye(),anglestoforward(level.player.angles),anglestoup(level.player.angles));
|
|
if(isdefined(level.var_10964.var_8DDA))
|
|
{
|
|
level.var_10964.var_8DDA hide();
|
|
}
|
|
|
|
thread func_4D17();
|
|
wait(0.5);
|
|
level.player scripts\common\utility::func_1C35(1);
|
|
wait(1);
|
|
level.player specialist_allow_invulnerability(0);
|
|
}
|
|
|
|
//Function Number: 48
|
|
func_4D17()
|
|
{
|
|
level endon("player_replacing_helmet");
|
|
level.player endon("death");
|
|
level.player endon("headshot_death");
|
|
if(!level.player.var_8C0F)
|
|
{
|
|
level.player playsound("player_death_helmet_decomp");
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
if(level.player.var_8C0F)
|
|
{
|
|
wait(0.05);
|
|
continue;
|
|
}
|
|
|
|
self.var_D430 = 1;
|
|
if(!func_2C94("arm_left"))
|
|
{
|
|
level.player scripts\common\utility::delaycall(0.2,::playgestureviewmodel,"ges_neck_grab",undefined,1,0.3,0.2,0);
|
|
}
|
|
|
|
level.player shellshock("plane_sway",12);
|
|
level.player method_82C2("phstreets_building_hvt_breach","reverb","mix","filter");
|
|
level.player scripts\common\utility::func_1C62(0);
|
|
scripts\sp\_utility::func_D020();
|
|
thread func_25E9("injury","oxygen");
|
|
var_00 = gettime() + 12000;
|
|
var_01 = 0;
|
|
while(gettime() < var_00)
|
|
{
|
|
function_01A7(var_01,0.05);
|
|
if(func_2C95())
|
|
{
|
|
self.var_D430 = 0;
|
|
level.player stopgestureviewmodel("ges_neck_grab");
|
|
level.player stopshellshock();
|
|
level.player method_8070(2);
|
|
function_01A7(0,1);
|
|
level.player scripts\common\utility::func_1C62(1);
|
|
level.player scripts\common\utility::func_5127(1.5,::scripts\sp\_utility::func_CE2F,"breathing_better");
|
|
scripts\common\utility::func_5127(2,::func_25E9,"repair","oxygen");
|
|
level notify("player_replacing_helmet");
|
|
break;
|
|
}
|
|
|
|
var_01 = var_01 + 0.025;
|
|
wait(0.05);
|
|
}
|
|
|
|
level.player method_80A1();
|
|
level.player method_81D0();
|
|
scripts\sp\_utility::func_B8D1();
|
|
}
|
|
}
|
|
|
|
//Function Number: 49
|
|
hide_helmet_impacts()
|
|
{
|
|
if(!isdefined(level.var_10964.helmetimpacts))
|
|
{
|
|
return;
|
|
}
|
|
|
|
foreach(var_01 in level.var_10964.helmetimpacts)
|
|
{
|
|
foreach(var_03 in var_01)
|
|
{
|
|
if(!isdefined(var_03))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_03.old_alpha = var_03.alpha;
|
|
var_03.alpha = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 50
|
|
show_helmet_impacts()
|
|
{
|
|
if(!isdefined(level.var_10964.helmetimpacts))
|
|
{
|
|
return;
|
|
}
|
|
|
|
foreach(var_01 in level.var_10964.helmetimpacts)
|
|
{
|
|
foreach(var_03 in var_01)
|
|
{
|
|
if(!isdefined(var_03))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_03.alpha = var_03.old_alpha;
|
|
var_03.old_alpha = undefined;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 51
|
|
func_8E05()
|
|
{
|
|
level.player notify("putting_on_helmet");
|
|
if(!isdefined(level.var_10964.var_8DDA))
|
|
{
|
|
level.var_10964.var_8DDA = spawn("script_model",level.player.origin);
|
|
level.var_10964.var_8DDA setmodel("vm_hero_protagonist_helmet");
|
|
level.var_10964.var_8DDA method_81E2(level.player,"tag_playerhelmet",(0,0,0),(0,0,0),1,"view_jostle");
|
|
level.var_10964.var_8DDA notsolid();
|
|
}
|
|
|
|
level.player method_8024(0.25,0);
|
|
level.var_10964.var_8DDA show();
|
|
level.var_10964.var_8DDA method_83D0(#animtree);
|
|
level.var_10964.var_8DDA method_806F(%vm_gesture_visor_up_visor,0);
|
|
level.var_10964.var_8DDA method_82A2(%vm_gesture_visor_down_visor);
|
|
thread lib_0E4B::func_8DE2();
|
|
level.player playsound("plr_helmet_visor_on");
|
|
level.player scripts\common\utility::delaycall(0.65,::method_82C3,"helmet_on_visor_down",0.2,"mix","filter");
|
|
level.player scripts\common\utility::delaycall(1.4,::playsound,"plr_helmet_oxygen_lr");
|
|
level.player scripts\common\utility::delaycall(2.8,::playsound,"plr_helmet_short_boot_up_lr");
|
|
level.player scripts\common\utility::delaycall(3.15,::method_8070,0.2);
|
|
level.player method_846F("ges_visor_down",undefined,undefined,undefined,1);
|
|
wait(getanimlength(%vm_gesture_visor_down_visor));
|
|
func_F3FF(1);
|
|
level.var_10964.var_8E1B = 0;
|
|
level.player method_8024(0.25,1);
|
|
}
|
|
|
|
//Function Number: 52
|
|
specialist_helmet_on_immediate()
|
|
{
|
|
level.var_10964.var_8DDA = spawn("script_model",level.player.origin);
|
|
level.var_10964.var_8DDA setmodel("vm_hero_protagonist_helmet");
|
|
level.var_10964.var_8DDA method_81E2(level.player,"tag_playerhelmet",(0,0,0),(0,0,0),1,"view_jostle");
|
|
level.var_10964.var_8DDA notsolid();
|
|
level.player method_8024(0.25,0);
|
|
func_F3FF(1);
|
|
}
|
|
|
|
//Function Number: 53
|
|
func_4E1A(param_00)
|
|
{
|
|
if(!isalive(level.player))
|
|
{
|
|
return;
|
|
}
|
|
|
|
level.player notify("headshot_death");
|
|
if(scripts\sp\_utility::func_93AB())
|
|
{
|
|
level.player method_8591(1);
|
|
function_0229();
|
|
scripts\sp\_endmission::func_41ED();
|
|
}
|
|
|
|
level.player scripts\common\utility::func_1C6E(0);
|
|
level.player freezecontrols(1);
|
|
level.player method_83AD();
|
|
scripts\sp\_utility::func_D020();
|
|
setomnvar("ui_hide_weapon_info",1);
|
|
function_01C5("hud_showstance",0);
|
|
function_01C5("actionSlotsHide",1);
|
|
level.player method_82C2("phstreets_building_hvt_breach","reverb","mix","filter","occlusion","ambient","ambient_events","player_adsr","weapon_reflection","contexts","full_occlusion");
|
|
level.player playrumbleonentity("grenade_rumble");
|
|
playfx(level.var_7649["human_gib_head"],level.player geteye(),anglestoforward(level.player.angles),function_02D3(level.player.angles));
|
|
playfx(level.var_7649["human_gib_fullbody"],level.player geteye() + (0,0,5));
|
|
function_0178("bullet_large_flesh_head_npc",level.player geteye());
|
|
function_0178("bullet_impact_headshot",level.player geteye());
|
|
self.var_98F1["pristine"].foreground = 1;
|
|
self.var_98F1["pristine"].alpha_req = 0.5;
|
|
self.var_98F1["skull"].alpha_req = 0.5;
|
|
function_01A2(level.player.origin,8,2,2,6);
|
|
function_01DC(0,7);
|
|
function_01A7(3,3);
|
|
thread func_4E0F();
|
|
var_01 = level.player getcurrentprimaryweapon();
|
|
if(isdefined(var_01) && var_01 != "none" && var_01 != "iw7_fists_specialist_mode" && var_01 != "mars_killstreak")
|
|
{
|
|
thread func_86CB(1);
|
|
}
|
|
|
|
if(param_00)
|
|
{
|
|
level.player method_80AA();
|
|
level.player method_80A1();
|
|
level.player method_81D0();
|
|
scripts\sp\_utility::func_B8D1();
|
|
return;
|
|
}
|
|
|
|
level.player playsound("plr_death_explosion");
|
|
var_02 = scripts\common\utility::spawn_tag_origin(level.player.origin,level.player.angles);
|
|
level.player playerlinktoabsolute(var_02,"tag_origin");
|
|
func_F52C(1);
|
|
level.player specialist_allow_invulnerability(1);
|
|
level.player method_84FE();
|
|
level.player.ignoreme = 1;
|
|
var_02 thread func_4E10();
|
|
}
|
|
|
|
//Function Number: 54
|
|
func_4E10()
|
|
{
|
|
var_00 = level.player isonground();
|
|
var_01 = level.player getstance();
|
|
if(var_01 == "stand")
|
|
{
|
|
var_02 = -43;
|
|
}
|
|
else
|
|
{
|
|
var_02 = -30;
|
|
}
|
|
|
|
level.player takeweapon(level.player getcurrentprimaryweapon());
|
|
var_03 = anglestoforward(level.player.angles) * -30;
|
|
self rotatepitch(-20,0.25);
|
|
if(var_01 == "crouch")
|
|
{
|
|
self moveto(self.origin + (0,0,15) + anglestoforward(level.player.angles) * -10,0.35);
|
|
}
|
|
else if(var_01 == "stand")
|
|
{
|
|
self moveto(self.origin + (0,0,25) + anglestoforward(level.player.angles) * -10,0.35);
|
|
}
|
|
|
|
wait(0.35);
|
|
level.player method_80AA();
|
|
wait(0.65);
|
|
self rotatepitch(-5,0.25);
|
|
if(var_01 == "prone" || !var_00 || scripts\sp\_utility::func_93AC())
|
|
{
|
|
wait(4);
|
|
level.player method_80A1();
|
|
level.player method_81D0();
|
|
scripts\sp\_utility::func_B8D1();
|
|
return;
|
|
}
|
|
|
|
self moveto(self.origin + (0,0,var_02) + var_03 / 15,0.5);
|
|
wait(0.5);
|
|
level.player playrumbleonentity("grenade_rumble");
|
|
wait(0.5);
|
|
self rotatepitch(10,0.5,0.5);
|
|
wait(0.5);
|
|
var_04 = 0.45;
|
|
self rotatepitch(92,var_04);
|
|
var_05 = self.origin + var_03 + (0,0,11);
|
|
level.player playsound("player_death_fall_back");
|
|
self moveto(var_05,var_04,0,var_04);
|
|
wait(var_04);
|
|
earthquake(0.75,0.75,level.player.origin,200);
|
|
level.player playrumbleonentity("grenade_rumble");
|
|
playfx(level._effect["deathfx_bloodpool_generic"],level.player geteye() + (0,0,-25) + anglestoforward(level.player.angles) * -4);
|
|
wait(4);
|
|
level.player method_80A1();
|
|
level.player method_81D0();
|
|
scripts\sp\_utility::func_B8D1();
|
|
}
|
|
|
|
//Function Number: 55
|
|
func_4E0F()
|
|
{
|
|
for(var_00 = 0;var_00 < 4;var_00++)
|
|
{
|
|
wait(randomfloatrange(0.05,0.25));
|
|
playfx(level.var_7649["human_gib_head"],level.player geteye() + (0,0,5));
|
|
}
|
|
}
|
|
|
|
//Function Number: 56
|
|
func_4E1B()
|
|
{
|
|
var_00 = level.player scripts\common\utility::func_13734("death","headshot_death");
|
|
level waittill("do_death_hint");
|
|
var_01 = 204;
|
|
var_02 = var_01 + 6;
|
|
var_03 = var_02 + 11;
|
|
var_04 = var_03 + 6;
|
|
var_05 = 0.25;
|
|
var_06 = 0.05;
|
|
var_01 = randomintrange(var_01,var_02);
|
|
var_07 = 0;
|
|
var_08 = randomfloat(1);
|
|
if(var_08 <= var_06)
|
|
{
|
|
var_07 = 1;
|
|
var_01 = randomintrange(var_03,var_04);
|
|
var_09 = 0;
|
|
while(getomnvar("ui_death_hint") == var_01)
|
|
{
|
|
var_01 = randomintrange(var_03,var_04);
|
|
var_09++;
|
|
if(var_09 % 20)
|
|
{
|
|
wait(0.05);
|
|
}
|
|
}
|
|
}
|
|
else if(var_08 <= var_05)
|
|
{
|
|
var_01 = randomintrange(var_02,var_03);
|
|
var_09 = 0;
|
|
while(getomnvar("ui_death_hint") == var_01)
|
|
{
|
|
var_01 = randomintrange(var_02,var_03);
|
|
var_09++;
|
|
if(var_09 % 20)
|
|
{
|
|
wait(0.05);
|
|
}
|
|
}
|
|
}
|
|
|
|
if(scripts\sp\_utility::func_93AB())
|
|
{
|
|
var_01 = 230;
|
|
}
|
|
else if(!func_2C97())
|
|
{
|
|
if(func_2C96("nanoshot",0,1))
|
|
{
|
|
var_01 = 200;
|
|
}
|
|
|
|
if(randomint(100) < 40)
|
|
{
|
|
if(var_00 == "headshot_death" && !func_2C96("helmet",0,1))
|
|
{
|
|
var_01 = 203;
|
|
}
|
|
|
|
if(var_00 == "headshot_death" && func_2C96("helmet",0,1))
|
|
{
|
|
var_01 = 201;
|
|
}
|
|
|
|
if(var_00 == "headshot_death" && var_07)
|
|
{
|
|
var_01 = 226;
|
|
}
|
|
}
|
|
|
|
if(level.var_10964.var_D430)
|
|
{
|
|
if(func_2C96("helmet",0,1))
|
|
{
|
|
var_01 = 202;
|
|
}
|
|
else
|
|
{
|
|
var_01 = 208;
|
|
}
|
|
}
|
|
|
|
if(level.script == "europa" && var_07 && randomint(100) < 20)
|
|
{
|
|
var_01 = 228;
|
|
}
|
|
else if(level.script == "yard" && var_07 && randomint(100) < 20)
|
|
{
|
|
var_01 = 229;
|
|
}
|
|
}
|
|
|
|
setomnvar("ui_death_hint",var_01);
|
|
}
|
|
|
|
//Function Number: 57
|
|
func_12AAF()
|
|
{
|
|
thread func_12AAC();
|
|
thread func_12AAD();
|
|
thread func_12AAB();
|
|
thread func_12AB2();
|
|
thread func_12AAA();
|
|
if(func_2C91())
|
|
{
|
|
thread func_12AB1();
|
|
}
|
|
}
|
|
|
|
//Function Number: 58
|
|
func_12AAC()
|
|
{
|
|
level.player endon("headshot_death");
|
|
level.player endon("death");
|
|
var_00 = 4;
|
|
for(;;)
|
|
{
|
|
var_01 = level.player scripts\common\utility::func_13734("frag_pressed","smoke_pressed","actionslot_weapon_pressed");
|
|
if(!isdefined(level.player.var_1586) && var_01 == "actionslot_weapon_pressed")
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(func_2C97())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!func_2C94("arm_left"))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_02 = scripts\sp\_utility::func_7BD6();
|
|
if(isdefined(var_02) && var_02 == "nanoshot" && var_01 == "frag_pressed")
|
|
{
|
|
continue;
|
|
}
|
|
|
|
level.var_10964.var_58DE = 1;
|
|
thread scripts\sp\_utility::func_56BE("left_arm_tutorial_hint_equipment",var_00);
|
|
wait(var_00);
|
|
level.var_10964.var_58DE = 0;
|
|
level.var_10964 notify("tutorial_over");
|
|
}
|
|
}
|
|
|
|
//Function Number: 59
|
|
func_12AAD()
|
|
{
|
|
level.player endon("headshot_death");
|
|
level.player endon("death");
|
|
var_00 = 4;
|
|
for(;;)
|
|
{
|
|
level.player waittill("melee_pressed");
|
|
if(func_2C97())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!func_2C94("arm_left"))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(level.player.inrodeo) && level.player.inrodeo)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
level.var_10964.var_58DE = 1;
|
|
thread scripts\sp\_utility::func_56BE("left_arm_tutorial_hint_melee",var_00);
|
|
wait(var_00);
|
|
level.var_10964.var_58DE = 0;
|
|
level.var_10964 notify("tutorial_over");
|
|
}
|
|
}
|
|
|
|
//Function Number: 60
|
|
func_12AAB()
|
|
{
|
|
level.player endon("headshot_death");
|
|
level.player endon("death");
|
|
var_00 = 4;
|
|
for(;;)
|
|
{
|
|
level.player waittill("smoke_pressed");
|
|
if(func_2C97())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(func_2C94("arm_left"))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!func_2C95())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_01 = scripts\sp\_utility::func_7C3D();
|
|
if(!isdefined(var_01))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(var_01 != "helmet")
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!level.player getweaponammostock(var_01))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(level.var_10964.var_8E1B > 0)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
level.var_10964.var_58DE = 1;
|
|
thread scripts\sp\_utility::func_56BE("helmet_already_on_tutorial_hint",var_00);
|
|
wait(var_00);
|
|
level.var_10964.var_58DE = 0;
|
|
level.var_10964 notify("tutorial_over");
|
|
}
|
|
}
|
|
|
|
//Function Number: 61
|
|
func_12AB2()
|
|
{
|
|
level.player endon("headshot_death");
|
|
level.player endon("death");
|
|
var_00 = 4;
|
|
for(;;)
|
|
{
|
|
level.player waittill("frag_pressed");
|
|
if(level.player method_8448())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!func_2C99())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_01 = scripts\sp\_utility::func_7BD6();
|
|
if(!isdefined(var_01))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(var_01 != "nanoshot")
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!level.player getweaponammostock(var_01))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
level.var_10964.var_58DE = 1;
|
|
thread scripts\sp\_utility::func_56BE("nanoshot_tutorial_hint_at_max_health",var_00);
|
|
wait(var_00);
|
|
level.var_10964.var_58DE = 0;
|
|
level.var_10964 notify("tutorial_over");
|
|
}
|
|
}
|
|
|
|
//Function Number: 62
|
|
func_12AB1()
|
|
{
|
|
level.player endon("death");
|
|
level.player endon("headshot_death");
|
|
for(;;)
|
|
{
|
|
wait(0.05);
|
|
func_137F1();
|
|
func_1381A();
|
|
if(func_2C97())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!func_2C98())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!func_2C96("nanoshot",0,0))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(func_2C96("nanoshot",0,1) && !scripts\sp\_utility::func_D0BD("nanoshot",0))
|
|
{
|
|
level.player lib_0B2A::func_1418();
|
|
}
|
|
|
|
if(isdefined(level.player.inrodeo) && level.player.inrodeo)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
level.player specialist_allow_invulnerability(1);
|
|
var_00 = 1.5;
|
|
level.var_10964.var_58DE = 1;
|
|
thread scripts\sp\_utility::func_56BE("nanoshot_tutorial_hint",var_00);
|
|
level.player scripts\common\utility::waittill_notify_or_timeout("frag_pressed",var_00);
|
|
function_01D3(1);
|
|
wait(2);
|
|
level.player specialist_allow_invulnerability(0);
|
|
level.var_10964.var_58DE = 0;
|
|
level.var_10964 notify("tutorial_over");
|
|
break;
|
|
}
|
|
}
|
|
|
|
//Function Number: 63
|
|
func_12AAA()
|
|
{
|
|
level.player endon("death");
|
|
level.player endon("headshot_death");
|
|
var_00 = 0;
|
|
func_137D2();
|
|
for(;;)
|
|
{
|
|
wait(0.05);
|
|
func_137D1();
|
|
func_1381A();
|
|
if(!isdefined(level.var_10964.allowhints))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(func_2C97())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(func_2C95())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(level.var_10964.togglinghelmet) && level.var_10964.togglinghelmet)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(func_2C94("arm_left"))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(level.player.inrodeo) && level.player.inrodeo)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(func_2C96("helmet",1,1))
|
|
{
|
|
var_01 = "helmet_tutorial_hint";
|
|
}
|
|
else if(func_2C96("helmet",0,1))
|
|
{
|
|
var_01 = "helmet_equip";
|
|
}
|
|
else
|
|
{
|
|
var_01 = "helmet_find";
|
|
}
|
|
|
|
var_02 = 0;
|
|
if(func_2C91() && func_2C96("helmet",0,1) && !var_00)
|
|
{
|
|
if(!scripts\sp\_utility::func_D0BD("helmet",0))
|
|
{
|
|
level.player lib_0B2A::func_1419();
|
|
}
|
|
|
|
var_01 = "helmet_tutorial_hint";
|
|
level.player specialist_allow_invulnerability(1);
|
|
var_02 = 1;
|
|
var_03 = 1.5;
|
|
}
|
|
else
|
|
{
|
|
var_03 = 4;
|
|
}
|
|
|
|
level.var_10964.var_58DE = 1;
|
|
thread scripts\sp\_utility::func_56BE(var_01,var_03);
|
|
level.player scripts\common\utility::waittill_notify_or_timeout("smoke_pressed",var_03);
|
|
function_01D3(1);
|
|
wait(2);
|
|
if(var_02)
|
|
{
|
|
level.player specialist_allow_invulnerability(0);
|
|
}
|
|
|
|
level.var_10964.var_58DE = 0;
|
|
level.var_10964 notify("tutorial_over");
|
|
if(func_2C91())
|
|
{
|
|
var_00 = 1;
|
|
continue;
|
|
}
|
|
|
|
func_137D2();
|
|
}
|
|
}
|
|
|
|
//Function Number: 64
|
|
tutorial_loadout()
|
|
{
|
|
level.player scripts\common\utility::func_1C6E(0);
|
|
wait(0.25);
|
|
setslowmotion(1,0.2,0.5);
|
|
var_00 = 1.2;
|
|
scripts\sp\_utility::func_56BE("specialist_loadout",var_00);
|
|
wait(var_00);
|
|
setslowmotion(0.2,1,2);
|
|
level.player scripts\common\utility::func_1C6E(1);
|
|
}
|
|
|
|
//Function Number: 65
|
|
func_25E9(param_00,param_01,param_02)
|
|
{
|
|
level.var_10964.var_2610 scripts\sp\_utility::func_74D7(::audio_request_suit_vo_internal,param_00,param_01,param_02);
|
|
}
|
|
|
|
//Function Number: 66
|
|
audio_request_suit_vo_internal(param_00,param_01,param_02)
|
|
{
|
|
if(isdefined(param_00) && param_00 == "nag")
|
|
{
|
|
if(isdefined(param_01) && param_01 == "helmet")
|
|
{
|
|
if(!level.var_10964.var_8E1B)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(isdefined(level.var_10964.togglinghelmet))
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
|
|
if(isdefined(param_01) && param_01 == "nano" || param_01 == "status")
|
|
{
|
|
if(!func_2C98())
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
wait(0.7);
|
|
}
|
|
|
|
if(isdefined(param_00) && param_00 == "injury")
|
|
{
|
|
if(isdefined(param_01))
|
|
{
|
|
if(!level.var_10964 ispartinjured(param_01))
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
else if(isdefined(param_00) && param_00 == "repair")
|
|
{
|
|
if(isdefined(param_01) && param_01 == "status")
|
|
{
|
|
var_03 = ["legs","arms","chest"];
|
|
foreach(var_05 in var_03)
|
|
{
|
|
if(level.var_10964 ispartinjured(var_05))
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if(level.var_10964.var_10B3B > 1)
|
|
{
|
|
return;
|
|
}
|
|
|
|
level.var_10964.var_10B3B++;
|
|
while(level.var_10964.var_111BE)
|
|
{
|
|
wait(0.05);
|
|
}
|
|
|
|
level.var_10964.var_111BE = 1;
|
|
if(isdefined(param_02))
|
|
{
|
|
level.var_10964.var_2610 playsound("specialist_mode_" + param_00 + "_" + param_01 + "_" + param_02,"vo_over");
|
|
}
|
|
else
|
|
{
|
|
level.var_10964.var_2610 playsound("specialist_mode_" + param_00 + "_" + param_01,"vo_over");
|
|
}
|
|
|
|
level.var_10964.var_2610 waittill("vo_over");
|
|
level.var_10964.var_111BE = 0;
|
|
level.var_10964.var_10B3B--;
|
|
}
|
|
|
|
//Function Number: 67
|
|
ispartinjured(param_00)
|
|
{
|
|
switch(param_00)
|
|
{
|
|
case "legs":
|
|
case "leg":
|
|
return self.var_2C19["leg_left"].health != self.var_2C19["leg_left"].maxhealth || self.var_2C19["leg_right"].health != self.var_2C19["leg_right"].maxhealth;
|
|
|
|
case "arms":
|
|
case "arm":
|
|
return self.var_2C19["arm_left"].health != self.var_2C19["arm_left"].maxhealth || self.var_2C19["arm_right"].health != self.var_2C19["arm_right"].maxhealth;
|
|
|
|
case "chest":
|
|
return self.var_2C19["chest"].health != self.var_2C19["chest"].maxhealth;
|
|
|
|
case "oxygen":
|
|
return scripts\common\utility::istrue(self.var_D430);
|
|
|
|
case "helmet":
|
|
return scripts\common\utility::istrue(level.var_10964.var_8E1B);
|
|
|
|
default:
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
//Function Number: 68
|
|
func_25FD()
|
|
{
|
|
level.player endon("death");
|
|
level.player endon("headshot_death");
|
|
func_137D2();
|
|
thread func_2608();
|
|
for(;;)
|
|
{
|
|
wait(0.05);
|
|
if(func_2C97())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_00 = length(level.player getvelocity());
|
|
if(func_2C90() && var_00 > 0)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(func_2C98())
|
|
{
|
|
level.var_10964.var_2610 func_25E1(var_00);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 69
|
|
func_2608()
|
|
{
|
|
level.player endon("death");
|
|
level.player endon("headshot_death");
|
|
for(;;)
|
|
{
|
|
wait(0.05);
|
|
if(func_2C97())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!func_2C95())
|
|
{
|
|
if(level.var_10964.var_D430)
|
|
{
|
|
thread func_25E9("injury","oxygen");
|
|
}
|
|
else
|
|
{
|
|
thread func_25E9("nag","helmet");
|
|
if(!func_2C96("helmet",0,0))
|
|
{
|
|
wait(13);
|
|
}
|
|
}
|
|
|
|
wait(13);
|
|
continue;
|
|
}
|
|
|
|
if(func_2C98())
|
|
{
|
|
if(func_2C96("nanoshot",0,1))
|
|
{
|
|
thread func_25E9("nag","nano");
|
|
}
|
|
else
|
|
{
|
|
thread func_25E9("nag","status");
|
|
wait(13);
|
|
}
|
|
|
|
wait(13);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 70
|
|
func_25E1(param_00)
|
|
{
|
|
var_01 = func_25E2(param_00);
|
|
var_02 = func_25FE(var_01);
|
|
var_03 = randomint(100);
|
|
if(var_01 == "sprint" || var_03 > 75)
|
|
{
|
|
var_04 = "breathing_limp";
|
|
}
|
|
else if(var_02 == "run" || var_04 > 50)
|
|
{
|
|
var_04 = "breathing_limp_better";
|
|
}
|
|
else if(var_02 == "walk" || var_04 > 25)
|
|
{
|
|
var_04 = "breathing_hurt";
|
|
}
|
|
else
|
|
{
|
|
var_04 = "breathing_hurt_alt";
|
|
}
|
|
|
|
if(randomint(100) > 50)
|
|
{
|
|
self playsound(var_04);
|
|
func_25BD(var_02);
|
|
return;
|
|
}
|
|
|
|
func_25BD(var_02);
|
|
self playsound(var_04);
|
|
}
|
|
|
|
//Function Number: 71
|
|
func_25BD(param_00)
|
|
{
|
|
wait(param_00 * 0.5);
|
|
level.player playrumbleonentity("damage_light");
|
|
if(randomint(100) > 50)
|
|
{
|
|
self playsound("breathing_heartbeat_fade1");
|
|
}
|
|
else
|
|
{
|
|
self playsound("breathing_heartbeat_fade2");
|
|
}
|
|
|
|
wait(param_00 * 0.5);
|
|
}
|
|
|
|
//Function Number: 72
|
|
func_25E2(param_00)
|
|
{
|
|
if(level.player method_81BD())
|
|
{
|
|
return "sprint";
|
|
}
|
|
|
|
if(param_00 <= 0.1)
|
|
{
|
|
return "idle";
|
|
}
|
|
|
|
if(param_00 <= 0.5)
|
|
{
|
|
return "walk";
|
|
}
|
|
|
|
return "run";
|
|
}
|
|
|
|
//Function Number: 73
|
|
func_25FE(param_00)
|
|
{
|
|
switch(param_00)
|
|
{
|
|
case "idle":
|
|
return randomfloatrange(3.5,4.5);
|
|
|
|
case "walk":
|
|
return randomfloatrange(2.5,3.5);
|
|
|
|
case "run":
|
|
return randomfloatrange(1.5,2.5);
|
|
|
|
case "sprint":
|
|
return randomfloatrange(0.75,1.5);
|
|
}
|
|
}
|
|
|
|
//Function Number: 74
|
|
func_25E3()
|
|
{
|
|
level.player endon("death");
|
|
level.player endon("headshot_death");
|
|
if(!self.var_D467)
|
|
{
|
|
self.var_D467 = 1;
|
|
scripts\sp\_utility::func_D020();
|
|
if(scripts\common\utility::func_4347())
|
|
{
|
|
var_00 = "plr_death_generic";
|
|
}
|
|
else
|
|
{
|
|
var_00 = "plr_death_explosion";
|
|
}
|
|
|
|
level.player playsound(var_00,"player_done_yelling");
|
|
level.player waittill("player_done_yelling");
|
|
self.var_D467 = 0;
|
|
}
|
|
}
|
|
|
|
//Function Number: 75
|
|
func_9150(param_00)
|
|
{
|
|
level.var_10964.var_98F1 = [];
|
|
param_00[param_00.size] = "pristine";
|
|
param_00[param_00.size] = "skull";
|
|
foreach(var_02 in param_00)
|
|
{
|
|
var_03 = newhudelem();
|
|
var_03.x = 15;
|
|
var_03.y = -40;
|
|
var_03.width = 70;
|
|
var_03.height = 135;
|
|
var_03.alignx = "left";
|
|
var_03.aligny = "bottom";
|
|
var_03.horzalign = "left";
|
|
var_03.vertalign = "bottom";
|
|
var_03.sort = 1;
|
|
var_03.alpha_req = 1;
|
|
var_03.hidewheninmenu = 1;
|
|
var_03 setshader("hud_injury_" + var_02,var_03.width,var_03.height);
|
|
if(var_02 != "pristine")
|
|
{
|
|
var_03.alpha_req = 0;
|
|
var_03.alpha = 0;
|
|
var_03.foreground = 1;
|
|
}
|
|
|
|
level.var_10964.var_98F1[var_02] = var_03;
|
|
}
|
|
|
|
thread hud_thread();
|
|
}
|
|
|
|
//Function Number: 76
|
|
hudcanshow()
|
|
{
|
|
if(!level.player method_843C())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_00 = level.player getcurrentweapon();
|
|
if(var_00 == "none" || var_00 == "iw7_gunless")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(getomnvar("ui_hide_hud"))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!isalive(level.player))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(scripts\sp\_utility::func_7B8C() == "safe")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 77
|
|
usingspecialequipment()
|
|
{
|
|
if(level.var_10964.hidehelmetimpacts)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
var_00 = ["transitiontorobot","controllingrobot","selfdestruct"];
|
|
var_01 = lib_0E29::func_87A7();
|
|
foreach(var_03 in var_00)
|
|
{
|
|
if(var_01 == var_03)
|
|
{
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 78
|
|
hud_thread()
|
|
{
|
|
level endon("stop_updating_specialist_hud");
|
|
for(;;)
|
|
{
|
|
var_00 = usingspecialequipment();
|
|
if(hudcanshow() && !var_00)
|
|
{
|
|
foreach(var_02 in level.var_10964.var_98F1)
|
|
{
|
|
var_02 fadeovertime(0.3);
|
|
if(var_02.alpha != var_02.alpha_req)
|
|
{
|
|
var_02.alpha = var_02.alpha_req;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
foreach(var_02 in level.var_10964.var_98F1)
|
|
{
|
|
var_02 fadeovertime(0.3);
|
|
if(var_02.alpha != 0)
|
|
{
|
|
var_02.alpha = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
if(!var_00)
|
|
{
|
|
foreach(var_07 in level.var_10964.helmetimpacts)
|
|
{
|
|
foreach(var_02 in var_07)
|
|
{
|
|
if(!isdefined(var_02))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(var_02.og_y))
|
|
{
|
|
var_02.y = var_02.og_y;
|
|
var_02.og_y = undefined;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
foreach(var_07 in level.var_10964.helmetimpacts)
|
|
{
|
|
foreach(var_02 in var_07)
|
|
{
|
|
if(!isdefined(var_02))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(var_02.og_y))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_02.og_y = var_02.y;
|
|
var_02.y = var_02.y - 5000;
|
|
}
|
|
}
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 79
|
|
destroyhelmetimpacts()
|
|
{
|
|
level notify("stop_updating_specialist_hud");
|
|
foreach(var_01 in level.var_10964.helmetimpacts)
|
|
{
|
|
foreach(var_03 in var_01)
|
|
{
|
|
if(!isdefined(var_03))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_03 destroy();
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 80
|
|
func_9160(param_00,param_01)
|
|
{
|
|
if(!isdefined(level.var_10964.var_98F1))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(isdefined(param_01))
|
|
{
|
|
wait(param_01);
|
|
}
|
|
|
|
foreach(var_03 in level.var_10964.var_98F1)
|
|
{
|
|
if(param_00)
|
|
{
|
|
var_03.x = 15;
|
|
continue;
|
|
}
|
|
|
|
var_03.x = -985;
|
|
}
|
|
}
|
|
|
|
//Function Number: 81
|
|
func_9151()
|
|
{
|
|
level notify("kill_injury_hud_scanner");
|
|
level endon("kill_injury_hud_scanner");
|
|
if(isdefined(self.var_914B))
|
|
{
|
|
self.var_914B destroy();
|
|
}
|
|
|
|
var_00 = scripts\sp\_hud_util::createicon("hud_injury_scanner",70,20);
|
|
var_00.x = 15;
|
|
var_00.y = self.var_98F1["pristine"].y - self.var_98F1["pristine"].height + var_00.height;
|
|
var_00.alignx = "left";
|
|
var_00.aligny = "bottom";
|
|
var_00.horzalign = "left";
|
|
var_00.vertalign = "bottom";
|
|
var_00.sort = 1;
|
|
var_00.foreground = 1;
|
|
var_00.alpha_req = 0;
|
|
self.var_914B = var_00;
|
|
self.var_914B thread scripts\sp\_hud_util::func_6AAB(0.7,0.25);
|
|
while(self.var_914B.y < self.var_98F1["pristine"].y - 10)
|
|
{
|
|
wait(0.05);
|
|
self.var_914B.y = self.var_914B.y + 7;
|
|
}
|
|
|
|
self.var_914B thread scripts\sp\_hud_util::func_6AAB(0,0.25);
|
|
}
|
|
|
|
//Function Number: 82
|
|
func_9146()
|
|
{
|
|
if(isdefined(self.var_914B))
|
|
{
|
|
level notify("kill_injury_hud_scanner");
|
|
self.var_914B destroy();
|
|
}
|
|
|
|
self.var_8E12 = 1;
|
|
foreach(var_01 in self.var_98F1)
|
|
{
|
|
var_01 thread func_9144(3);
|
|
}
|
|
|
|
for(var_03 = 0;var_03 < 3;var_03++)
|
|
{
|
|
setomnvar("ui_hide_hud",1);
|
|
wait(randomfloatrange(0.05,0.15));
|
|
setomnvar("ui_hide_hud",0);
|
|
wait(randomfloatrange(0.15,0.25));
|
|
}
|
|
|
|
wait(3);
|
|
self.var_8E12 = 0;
|
|
}
|
|
|
|
//Function Number: 83
|
|
func_9144(param_00,param_01)
|
|
{
|
|
self endon("death");
|
|
self endon("hud_flicker_stop");
|
|
self.var_8E12 = 1;
|
|
var_02 = self.alpha_req;
|
|
self.alpha_req = 0;
|
|
for(var_03 = 0;var_03 < param_00;var_03++)
|
|
{
|
|
wait(randomfloatrange(0.05,0.1));
|
|
self.alpha_req = randomfloatrange(0.25,0.75);
|
|
wait(randomfloatrange(0.1,0.15));
|
|
self.alpha_req = 0;
|
|
}
|
|
|
|
wait(randomfloatrange(0.05,0.15));
|
|
if(isdefined(param_01) && param_01)
|
|
{
|
|
self.alpha_req = 1;
|
|
}
|
|
else
|
|
{
|
|
self.alpha_req = var_02;
|
|
}
|
|
|
|
self.var_8E12 = 0;
|
|
}
|
|
|
|
//Function Number: 84
|
|
hud_fade_cracks(param_00,param_01,param_02)
|
|
{
|
|
foreach(var_04 in param_01)
|
|
{
|
|
if(!isdefined(param_00[var_04]))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
param_00[var_04] fadeovertime(param_02);
|
|
param_00[var_04].alpha = 0;
|
|
}
|
|
|
|
wait(param_02);
|
|
}
|
|
|
|
//Function Number: 85
|
|
func_915F(param_00)
|
|
{
|
|
var_01 = param_00["crack"].x + 80;
|
|
param_00["crack"] moveovertime(0.1);
|
|
param_00["crack"].x = var_01;
|
|
if(isdefined(param_00["burn"]))
|
|
{
|
|
param_00["burn"] moveovertime(0.1);
|
|
param_00["burn"].x = var_01;
|
|
}
|
|
|
|
wait(0.35);
|
|
var_02 = -200;
|
|
param_00["crack"] moveovertime(0.2);
|
|
param_00["crack"].y = var_02;
|
|
if(isdefined(param_00["burn"]))
|
|
{
|
|
param_00["burn"] moveovertime(0.2);
|
|
param_00["burn"].y = var_02;
|
|
}
|
|
|
|
wait(0.25);
|
|
self.var_BB4A = 0;
|
|
}
|
|
|
|
//Function Number: 86
|
|
func_9175(param_00)
|
|
{
|
|
level.player endon("death");
|
|
self endon("death");
|
|
var_01 = gettime() + param_00 * 1000;
|
|
var_02 = param_00 / 0.05;
|
|
var_03 = -1 / var_02;
|
|
while(gettime() < var_01)
|
|
{
|
|
var_04 = self.color[0];
|
|
var_05 = self.color[1];
|
|
var_06 = self.color[2];
|
|
self.color = (var_04 + var_03,var_05 + var_03,var_06 + var_03);
|
|
wait(0.05);
|
|
}
|
|
|
|
self destroy();
|
|
scripts\common\utility::func_22BC(level.var_10964.helmetimpacts);
|
|
}
|
|
|
|
//Function Number: 87
|
|
func_2296(param_00)
|
|
{
|
|
var_01 = [];
|
|
foreach(var_03 in level.var_10964.var_2C19)
|
|
{
|
|
if(param_00)
|
|
{
|
|
if(func_2C94(var_03.name))
|
|
{
|
|
var_01 = scripts\common\utility::array_add_safe(var_01,var_03);
|
|
}
|
|
|
|
continue;
|
|
}
|
|
|
|
if(var_03.health < var_03.maxhealth)
|
|
{
|
|
var_01 = scripts\common\utility::array_add_safe(var_01,var_03);
|
|
}
|
|
}
|
|
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 88
|
|
func_2683()
|
|
{
|
|
scripts\sp\_utility::func_266B("specialist_mode",undefined,undefined,scripts\sp\_utility::func_93AB());
|
|
}
|
|
|
|
//Function Number: 89
|
|
func_2C87()
|
|
{
|
|
if(!func_2C96("nanoshot",1,1))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(func_2C97())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_00 = level.player getweaponammostock("nanoshot");
|
|
if(!isdefined(var_00))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(isdefined(var_00) && var_00 <= 0)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 90
|
|
func_2C88()
|
|
{
|
|
if(level.player isgestureplaying())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(func_2C97())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(level.var_10964.var_4C97)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(level.player method_81C6())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(level.player fragbuttonpressed())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(level.player islinked())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!level.player method_843C())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(isdefined(level.player.inrodeo) && level.player.inrodeo)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 91
|
|
func_2C89()
|
|
{
|
|
if(level.player.var_55DE > 1)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(self.var_4C97)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(func_2C97())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_00 = level.player getcurrentprimaryweapon();
|
|
var_01 = weaponclipsize(var_00);
|
|
var_02 = level.player method_8118();
|
|
if(var_02 >= var_01)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_03 = level.player getweaponammostock(var_00);
|
|
if(var_03 <= 0)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 92
|
|
func_2C8A()
|
|
{
|
|
if(self.var_BF7E >= gettime())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(self.var_86F4 <= 0)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(func_2C94("arm_left"))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!isalive(level.player))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(scripts\sp\_utility::func_93AC())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(level.player method_81BD())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(level.player method_81C6())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(level.player method_8448())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(level.player ismeleeing())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(level.player islinked())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(level.player.var_C337.var_19)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_00 = lib_0E29::func_87A7();
|
|
if(var_00 != "none")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(getomnvar("ui_jackal_call_down_active") > 0)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(getomnvar("ui_c12_active") > 0)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(scripts\common\utility::func_6E34("player_in_mars_killstreak") && scripts\common\utility::flag("player_in_mars_killstreak"))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_01 = level.player geteye();
|
|
var_02 = anglestoforward(level.player.angles);
|
|
if(!scripts\common\trace::func_DCF1(var_01,var_01 + var_02 * 40,level.player))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_03 = level.player getcurrentweapon();
|
|
if(var_03 == "none")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(issubstr(var_03,"steeldragon"))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(issubstr(var_03,"fist"))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(issubstr(var_03,"gunless"))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(issubstr(var_03,"knife"))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 93
|
|
func_2C8B()
|
|
{
|
|
if(!func_2C8E())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(func_2C95() && !bool_player_helmet_damaged_enough())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!func_2C96("helmet",1,1))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!isalive(level.player))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(level.player method_81C6())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(level.player method_8448())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(level.player ismeleeing())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(level.player islinked())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!level.player method_843C())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!level.player scripts\common\utility::func_9EC1())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(func_2C97())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 94
|
|
func_2C8C()
|
|
{
|
|
if(lib_0E29::func_87A7() != "none")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(func_2C97())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(getomnvar("ui_jackal_call_down_active") > 0)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(getomnvar("ui_c12_active") > 0)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(scripts\common\utility::func_6E34("player_in_mars_killstreak") && scripts\common\utility::flag("player_in_mars_killstreak"))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 95
|
|
func_2C8D()
|
|
{
|
|
return level.var_10964.var_1BFC;
|
|
}
|
|
|
|
//Function Number: 96
|
|
func_2C8E()
|
|
{
|
|
return level.var_10964.var_8E1F;
|
|
}
|
|
|
|
//Function Number: 97
|
|
func_2C8F()
|
|
{
|
|
return level.script == "phspace" || level.script == "moonjackal" || issubstr(level.script,"ja_");
|
|
}
|
|
|
|
//Function Number: 98
|
|
func_2C90()
|
|
{
|
|
return func_2C94("leg_left") || func_2C94("leg_right");
|
|
}
|
|
|
|
//Function Number: 99
|
|
func_2C92()
|
|
{
|
|
return issubstr(level.script,"sa_") && isdefined(level.var_10533) && isdefined(level.var_10532);
|
|
}
|
|
|
|
//Function Number: 100
|
|
func_2C91()
|
|
{
|
|
return level.script == "europa" || level.script == "phparade" || level.script == "phstreets" || level.script == "phspace";
|
|
}
|
|
|
|
//Function Number: 101
|
|
func_2C93()
|
|
{
|
|
if(func_2C8F() || level.script == "heist" || level.script == "sa_wounded" || level.script == "sa_empambush")
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 102
|
|
func_2C94(param_00)
|
|
{
|
|
return func_993F(param_00) <= 30;
|
|
}
|
|
|
|
//Function Number: 103
|
|
func_2C95()
|
|
{
|
|
return level.var_10964.var_8E16;
|
|
}
|
|
|
|
//Function Number: 104
|
|
bool_player_helmet_damaged_enough()
|
|
{
|
|
if(level.var_10964.var_8E1B > 0)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 105
|
|
func_2C96(param_00,param_01,param_02)
|
|
{
|
|
if(!scripts\sp\_utility::func_D0BD(param_00,1))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(param_01 && !scripts\sp\_utility::func_D0BD(param_00,0))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(param_02 && !scripts\sp\_utility::func_799C(param_00))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 106
|
|
func_2C97()
|
|
{
|
|
return level.var_10964.var_98EC;
|
|
}
|
|
|
|
//Function Number: 107
|
|
halt_specialist_hints()
|
|
{
|
|
if(isdefined(level.var_10964))
|
|
{
|
|
level.var_10964.allowhints = undefined;
|
|
}
|
|
}
|
|
|
|
//Function Number: 108
|
|
continue_specialist_hints()
|
|
{
|
|
if(isdefined(level.var_10964))
|
|
{
|
|
level.var_10964.allowhints = 1;
|
|
}
|
|
}
|
|
|
|
//Function Number: 109
|
|
func_2C98()
|
|
{
|
|
return level.player.health <= level.player.maxhealth * 0.4;
|
|
}
|
|
|
|
//Function Number: 110
|
|
func_2C99()
|
|
{
|
|
var_00 = level.player scripts\sp\_utility::func_7BD6();
|
|
if(func_2C97())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!isdefined(var_00))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(var_00 != "nanoshot")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(level.player.health != level.player.maxhealth)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(level.player.disable_nanoshot_hint))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 111
|
|
func_993F(param_00)
|
|
{
|
|
return level.var_10964.var_2C19[param_00].health;
|
|
}
|
|
|
|
//Function Number: 112
|
|
func_F2A6(param_00)
|
|
{
|
|
level.var_10964.var_1BFC = param_00;
|
|
}
|
|
|
|
//Function Number: 113
|
|
func_F2D2(param_00)
|
|
{
|
|
level.var_10964.var_2687 = param_00;
|
|
}
|
|
|
|
//Function Number: 114
|
|
func_F3FF(param_00)
|
|
{
|
|
level.var_10964.var_8E16 = param_00;
|
|
if(param_00)
|
|
{
|
|
level.var_10964 notify("helmet_on");
|
|
setomnvar("ui_helmet_state",1);
|
|
}
|
|
else
|
|
{
|
|
level.var_10964 notify("helmet_off");
|
|
setomnvar("ui_helmet_state",0);
|
|
}
|
|
|
|
func_9160(param_00);
|
|
}
|
|
|
|
//Function Number: 115
|
|
func_F400(param_00)
|
|
{
|
|
level.var_10964.var_8E1F = param_00;
|
|
}
|
|
|
|
//Function Number: 116
|
|
func_F49E(param_00,param_01)
|
|
{
|
|
level.player endon("damage");
|
|
if(isdefined(param_01))
|
|
{
|
|
wait(param_01);
|
|
}
|
|
|
|
level.var_10964.var_BFAA = param_00;
|
|
}
|
|
|
|
//Function Number: 117
|
|
func_F52C(param_00)
|
|
{
|
|
param_00 = clamp(param_00,1,level.player.maxhealth);
|
|
level.player setnormalhealth(param_00 / level.player.maxhealth);
|
|
}
|
|
|
|
//Function Number: 118
|
|
func_F52F(param_00)
|
|
{
|
|
if(!isdefined(level.var_10964.var_8DDA))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(param_00)
|
|
{
|
|
level.var_10964.var_8DDA show();
|
|
return;
|
|
}
|
|
|
|
level.var_10964.var_8DDA hide();
|
|
}
|
|
|
|
//Function Number: 119
|
|
func_F530(param_00)
|
|
{
|
|
level.var_10964.var_98EC = param_00;
|
|
func_F53C(param_00);
|
|
level.var_10964.jackalhelmetcrackfade = param_00;
|
|
func_F3FF(!param_00);
|
|
if(param_00)
|
|
{
|
|
level.var_10964 notify("in_jackal");
|
|
return;
|
|
}
|
|
|
|
level.var_10964 notify("out_of_jackal");
|
|
}
|
|
|
|
//Function Number: 120
|
|
func_F531(param_00)
|
|
{
|
|
level.player specialist_allow_invulnerability(1);
|
|
wait(param_00);
|
|
level.player specialist_allow_invulnerability(0);
|
|
}
|
|
|
|
//Function Number: 121
|
|
specialist_allow_invulnerability(param_00)
|
|
{
|
|
if(!isdefined(level.var_10964.allowinvulnerability))
|
|
{
|
|
level.var_10964.allowinvulnerability = 0;
|
|
}
|
|
|
|
if(param_00)
|
|
{
|
|
level.var_10964.allowinvulnerability++;
|
|
self method_80D1();
|
|
return;
|
|
}
|
|
|
|
level.var_10964.allowinvulnerability--;
|
|
if(level.var_10964.allowinvulnerability == 0)
|
|
{
|
|
self method_80A1();
|
|
}
|
|
}
|
|
|
|
//Function Number: 122
|
|
func_F53C(param_00)
|
|
{
|
|
level.player.var_8C0F = param_00;
|
|
}
|
|
|
|
//Function Number: 123
|
|
func_1381A()
|
|
{
|
|
if(!level.var_10964.var_58DE)
|
|
{
|
|
return;
|
|
}
|
|
|
|
level.var_10964 waittill("tutorial_over");
|
|
}
|
|
|
|
//Function Number: 124
|
|
func_137D1()
|
|
{
|
|
if(!func_2C95())
|
|
{
|
|
return;
|
|
}
|
|
|
|
level.var_10964 waittill("helmet_off");
|
|
}
|
|
|
|
//Function Number: 125
|
|
func_137D2()
|
|
{
|
|
if(func_2C95())
|
|
{
|
|
return;
|
|
}
|
|
|
|
level.var_10964 waittill("helmet_on");
|
|
}
|
|
|
|
//Function Number: 126
|
|
func_137D3()
|
|
{
|
|
if(func_2C97())
|
|
{
|
|
return;
|
|
}
|
|
|
|
level.var_10964 waittill("in_jackal");
|
|
}
|
|
|
|
//Function Number: 127
|
|
func_137E4()
|
|
{
|
|
if(!func_2C97())
|
|
{
|
|
return;
|
|
}
|
|
|
|
level.var_10964 waittill("out_of_jackal");
|
|
}
|
|
|
|
//Function Number: 128
|
|
func_137D0()
|
|
{
|
|
if(!func_2C98())
|
|
{
|
|
return;
|
|
}
|
|
|
|
level.player waittill("nanoshot_healing");
|
|
}
|
|
|
|
//Function Number: 129
|
|
func_137F1()
|
|
{
|
|
while(!func_2C98())
|
|
{
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 130
|
|
spawn_nanoshot()
|
|
{
|
|
if(level.player scripts\sp\_utility::func_65DF("zero_gravity") && level.player scripts\sp\_utility::func_65DB("zero_gravity"))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(isdefined(level.last_nanoshot_drop) && gettime() - level.last_nanoshot_drop < 5000)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(randomint(100) > 10)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
level.last_nanoshot_drop = gettime();
|
|
var_00 = vectornormalize(level.player.origin - self.origin);
|
|
var_00 = scripts\common\utility::func_6EE6(var_00);
|
|
var_01 = anglestoforward((randomintrange(-90,-75),0,0));
|
|
var_02 = var_00 + var_01;
|
|
var_03 = self gettagorigin("j_head") + (0,0,10);
|
|
var_04 = spawn("weapon_nanoshot",var_03);
|
|
var_04 setmodel("equipment_mp_nanoshot_wm");
|
|
var_04 scripts\sp\_utility::func_9196(3,1,1,"new_weapon");
|
|
var_04 thread nanoshot_pickup();
|
|
var_04 thread lib_0B77::add_to_grenade_cache("axis");
|
|
var_04 physicslaunchserveritem(var_04.origin,var_02 * randomintrange(100,200));
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 131
|
|
nanoshot_pickup()
|
|
{
|
|
var_00 = scripts\common\utility::spawn_tag_origin();
|
|
var_00 linkto(self);
|
|
self.var_9027 = var_00;
|
|
var_00 lib_0E46::func_48C4(undefined,undefined,&"EQUIPMENT_PICKUP_NANOSHOT",40,300,undefined,undefined,undefined,0,&"hud_interaction_prompt_center_equipment");
|
|
var_00 makeunusable();
|
|
if(!scripts\sp\_utility::func_D0BD("nanoshot",1))
|
|
{
|
|
var_00 makeusable();
|
|
}
|
|
|
|
nanoshot_waittill_trigger_or_delete(var_00);
|
|
var_00 delete();
|
|
if(!isdefined(self))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_01 = 0;
|
|
if(level.player.var_110BD == "")
|
|
{
|
|
var_01 = 1;
|
|
}
|
|
|
|
var_02 = lib_0B4A::func_7C27(scripts\sp\_utility::func_7BD6());
|
|
var_03 = scripts\sp\_utility::func_7BD7();
|
|
level.player giveweapon("nanoshot");
|
|
level.player setweaponammostock("nanoshot",1);
|
|
self delete();
|
|
if(var_01)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(var_03 <= 0)
|
|
{
|
|
return;
|
|
}
|
|
|
|
thread drop_equipment_crate(var_02,var_03);
|
|
}
|
|
|
|
//Function Number: 132
|
|
drop_equipment_crate(param_00,param_01)
|
|
{
|
|
var_02 = spawn("script_model",level.player.origin + (0,0,45));
|
|
var_02 setmodel("mil_grenade_box_dynamic");
|
|
var_02 scripts\sp\_utility::func_9196(3,1,1);
|
|
var_02.dont_spawn_models = 1;
|
|
var_02.script_noteworthy = param_00;
|
|
var_02.var_EDE7 = param_01;
|
|
var_02 thread lib_0B04::func_4842("equipment");
|
|
var_02 thread lib_0B77::add_to_grenade_cache("axis");
|
|
var_02 scripts\common\utility::delaycall(0.05,::physicslaunchserver,var_02.origin,anglestoforward(level.player.angles) * 250);
|
|
var_02.var_99F7 linkto(var_02);
|
|
var_03 = var_02.var_99F7;
|
|
crate_waittill_delete(var_03);
|
|
if(isdefined(var_03))
|
|
{
|
|
var_03 notify("remove_pickup_cache");
|
|
var_03 delete();
|
|
}
|
|
|
|
if(isdefined(var_02))
|
|
{
|
|
var_02 delete();
|
|
}
|
|
}
|
|
|
|
//Function Number: 133
|
|
nanoshot_waittill_trigger_or_delete(param_00)
|
|
{
|
|
self endon("entitydeleted");
|
|
param_00 waittill("trigger");
|
|
}
|
|
|
|
//Function Number: 134
|
|
crate_waittill_delete(param_00)
|
|
{
|
|
self endon("entitydeleted");
|
|
param_00 waittill("entitydeleted");
|
|
}
|
|
|
|
//Function Number: 135
|
|
nanoshot_pickup_watcher()
|
|
{
|
|
if(!isdefined(level.var_8580) || !isdefined(level.var_8580["axis"]))
|
|
{
|
|
level.var_8581["axis"] = 0;
|
|
level.var_8580["axis"] = [];
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
while(scripts\sp\_utility::func_D0BD("nanoshot",1))
|
|
{
|
|
nanoshot_near_pickup_check();
|
|
wait(0.15);
|
|
}
|
|
|
|
foreach(var_01 in level.var_8580["axis"])
|
|
{
|
|
if(isdefined(var_01) && var_01.classname == "weapon_nanoshot")
|
|
{
|
|
var_01.var_9027 makeusable();
|
|
}
|
|
}
|
|
|
|
while(!scripts\sp\_utility::func_D0BD("nanoshot",1))
|
|
{
|
|
nanoshot_near_pickup_check();
|
|
wait(0.15);
|
|
}
|
|
|
|
foreach(var_01 in level.var_8580["axis"])
|
|
{
|
|
if(isdefined(var_01) && var_01.classname == "weapon_nanoshot")
|
|
{
|
|
var_01.var_9027 makeunusable();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 136
|
|
nanoshot_near_pickup_check()
|
|
{
|
|
var_00 = scripts\sp\_utility::func_7CAF();
|
|
if(!isdefined(var_00) || var_00 != "nanoshot")
|
|
{
|
|
return;
|
|
}
|
|
|
|
foreach(var_02 in level.var_8580["axis"])
|
|
{
|
|
if(!isdefined(var_02) || var_02.classname != "weapon_nanoshot")
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(distancesquared(var_02.origin,level.player.origin) > 1600)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_03 = function_0249("nanoshot");
|
|
if(scripts\sp\_utility::func_7CB0() >= var_03)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
level.player.var_110BE++;
|
|
var_02 delete();
|
|
}
|
|
}
|
|
|
|
//Function Number: 137
|
|
spawn_specialist_crates()
|
|
{
|
|
var_00 = scripts\common\utility::func_7CF1();
|
|
var_01 = 13;
|
|
switch(var_00)
|
|
{
|
|
case "europa":
|
|
lib_0B04::spawn_equipment_crate("helmet",(34469.1,-12214.8,-455.859),(0,132,0),1);
|
|
lib_0B04::spawn_equipment_crate("nanoshot",(34440,-12225,-455.859),(0,-64,0),3);
|
|
break;
|
|
|
|
case "phstreets":
|
|
lib_0B04::spawn_equipment_crate("helmet",(50434.4,29394.1,-34280.9),(0,132,0));
|
|
lib_0B04::spawn_equipment_crate("nanoshot",(68113,40290,-34416),(0,274,0),2);
|
|
break;
|
|
|
|
case "titan":
|
|
lib_0B04::spawn_equipment_crate("nanoshot",(-59090.7,-34205,-64624.4),(0,132,0),3);
|
|
lib_0B04::spawn_equipment_crate("nanoshot",(-47402.7,-39197.5,-64154.3),(0,132,0),2);
|
|
lib_0B04::spawn_equipment_crate("nanoshot",(-47482.1,-41287.1,-64375.9),(0,132,0),3);
|
|
lib_0B04::spawn_equipment_crate("helmet",(-47487.9,-41254.2,-64375.9),(0,120,0),1);
|
|
lib_0B04::spawn_equipment_crate("nanoshot",(-35701.4,-41712,-64787.9),(0,132,0),2);
|
|
lib_0B04::spawn_equipment_crate("nanoshot",(-34911.9,-42124.9,-64955.9),(0,-15,0),1);
|
|
lib_0B04::spawn_equipment_crate("helmet",(-30218.4,-41231.9,-64988.4),(0,-15,0),1);
|
|
lib_0B04::spawn_equipment_crate("nanoshot",(-29564.7,-42645,-64988.9),(0,132,0),2);
|
|
break;
|
|
|
|
case "titanjackal":
|
|
lib_0B04::spawn_equipment_crate("helmet",(41986.3,75867.2,-64930.4),(0,132,0),1);
|
|
lib_0B04::spawn_equipment_crate("nanoshot",(41940.8,74503.1,-64930.4),(0,132,0),2);
|
|
break;
|
|
|
|
case "prisoner":
|
|
lib_0B04::spawn_equipment_crate("helmet",(-4685,-14638,585),(0,0,0),1);
|
|
lib_0B04::spawn_equipment_crate("helmet",(912.4,-9570.7,-1774.7),(7.38483,270.432,-1.433),1);
|
|
break;
|
|
|
|
case "heist":
|
|
lib_0B04::spawn_equipment_crate("nanoshot",(-11407,16389,-85536),(0,270,0),2);
|
|
break;
|
|
|
|
case "yard":
|
|
lib_0B04::spawn_equipment_crate("helmet",(385,25919,1856.14),(0,0,0),1);
|
|
lib_0B04::spawn_equipment_crate("nanoshot",(463,25005,2000.12),(0,65,0),2);
|
|
break;
|
|
|
|
case "sa_assassination":
|
|
lib_0B04::spawn_equipment_crate("helmet",(-160,-1326,-51 + var_01),(0,59.9999,0));
|
|
break;
|
|
|
|
case "sa_empambush":
|
|
break;
|
|
|
|
case "sa_moon":
|
|
lib_0B04::spawn_equipment_crate("helmet",(1449.3,628.471,64.0938),(0,345,0));
|
|
break;
|
|
|
|
case "sa_vips":
|
|
lib_0B04::spawn_equipment_crate("helmet",(-142,-1322,-79),(0,183,0));
|
|
lib_0B04::spawn_equipment_crate("nanoshot",(-146,-1280,-79),(0,194,0));
|
|
lib_0B04::spawn_equipment_crate("helmet",(4438,-907,192),(0,263,0));
|
|
lib_0B04::spawn_equipment_crate("helmet",(422,-423,-54),(0,167,0));
|
|
lib_0B04::spawn_equipment_crate("helmet",(816,-1477.6,-142.906),(0,183,0));
|
|
break;
|
|
|
|
case "sa_wounded":
|
|
lib_0B04::spawn_equipment_crate("nanoshot",(157,-177,-171),(0,76,0));
|
|
lib_0B04::spawn_equipment_crate("helmet",(129,-175,-171),(0,91,0));
|
|
break;
|
|
}
|
|
}
|
|
|
|
//Function Number: 138
|
|
move_specialist_crates()
|
|
{
|
|
wait(0.05);
|
|
var_00 = scripts\common\utility::func_7CF1();
|
|
switch(var_00)
|
|
{
|
|
case "europa":
|
|
specialist_crate_move("helmet",(29209,-5997.5,-76),(29095,-7658,-53.8869));
|
|
break;
|
|
|
|
case "phstreets":
|
|
specialist_crate_move("nanoshot",(52106,30285,-34663),(52184.9,29902.6,-34601),undefined,3);
|
|
specialist_crate_move("nanoshot",(57470,32429,-34432),(57520.6,32740.7,-34520.4));
|
|
specialist_crate_move("helmet",(57457.5,32408,-34432),(57520.6,32779.3,-34520.2),undefined,2);
|
|
specialist_crate_move("helmet",(59335,32407.5,-34408),(59472.9,32698.5,-34407.9));
|
|
specialist_crate_move("nanoshot",(59312,32405.5,-34408),(59468.2,32667.1,-34407.9),(0,90,0));
|
|
specialist_crate_move("nanoshot",(64669.7,40194.3,-34352),(65053.3,40130.1,-34352.5));
|
|
specialist_crate_move("helmet",(66061,40092,-34216),(66015.1,40111.5,-34212));
|
|
specialist_crate_move("nanoshot",(65030.5,38658.5,-34088.5),(64308.4,38627.5,-34088));
|
|
specialist_crate_move("nanoshot",(62835,36424,-34073),(63063.1,36480.7,-34078.1));
|
|
specialist_crate_move("nanoshot",(69272,43712,-34532),(69435.9,43885.4,-34531.4));
|
|
specialist_crate_move("helmet",(69281,43690,-34532),(69412.3,43873.3,-34531.4));
|
|
break;
|
|
|
|
case "moon_port":
|
|
specialist_crate_move("helmet",(5773.65,9054.83,-54584),(5714.62,9173.35,-54583.9));
|
|
specialist_crate_move("helmet",(9244.27,9918.77,-54504),(9441.8,10121.2,-54503.9));
|
|
specialist_crate_move("nanoshot",(9021.34,10880.6,-54335),(9064.3,10664.3,-54333.9));
|
|
break;
|
|
|
|
case "prisoner":
|
|
specialist_crate_move("nanoshot",(-1622.6,-13669.7,-1757),(-1238,-13988,-1685),undefined,3);
|
|
break;
|
|
|
|
case "marsbase":
|
|
specialist_crate_move("nanoshot",(29648,18802,-11512),(31392,18503.8,-11535.9));
|
|
specialist_crate_move("helmet",(29680,18794,-11512),(31382.9,18477,-11535.9));
|
|
break;
|
|
|
|
case "yard":
|
|
specialist_crate_move("nanoshot",(118.5,19241.5,702.5),(136,19241.6,702.6));
|
|
break;
|
|
}
|
|
}
|
|
|
|
//Function Number: 139
|
|
delete_specialist_crates()
|
|
{
|
|
wait(0.05);
|
|
var_00 = scripts\common\utility::func_7CF1();
|
|
switch(var_00)
|
|
{
|
|
case "phstreets":
|
|
specialist_crate_delete((55514,28810,-34608.5));
|
|
specialist_crate_delete((61964,34582,-34184));
|
|
specialist_crate_delete((61990,34582,-34184));
|
|
break;
|
|
|
|
case "moon_port":
|
|
specialist_crate_delete((5760.82,9076.98,-54584));
|
|
specialist_crate_delete((9047.96,10888.6,-54335));
|
|
specialist_crate_delete((9220.76,9902.43,-54504));
|
|
break;
|
|
|
|
case "marsbase":
|
|
specialist_crate_delete((31926,20838,-11464));
|
|
specialist_crate_delete((32854,19813,-11316));
|
|
specialist_crate_delete((32822,19794,-11316));
|
|
break;
|
|
}
|
|
}
|
|
|
|
//Function Number: 140
|
|
specialist_crate_move(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
var_05 = (0,0,13);
|
|
param_01 = param_01 + var_05;
|
|
var_06 = scripts\common\utility::getstructarray("equipment_pickup","targetname");
|
|
var_07 = scripts\common\utility::getclosest(param_01,var_06);
|
|
if(!isdefined(param_03))
|
|
{
|
|
param_03 = var_07.angles;
|
|
}
|
|
|
|
if(!isdefined(param_04) && isdefined(var_07.var_EDE7))
|
|
{
|
|
param_04 = var_07.var_EDE7;
|
|
}
|
|
|
|
var_08 = getentarray("specialist_mode_only","targetname");
|
|
var_09 = sortbydistance(var_08,var_07.origin);
|
|
var_0A = undefined;
|
|
var_0B = undefined;
|
|
foreach(var_0D in var_09)
|
|
{
|
|
if(!isdefined(var_0A) && var_0D.classname == "script_model")
|
|
{
|
|
var_0A = var_0D;
|
|
}
|
|
else if(!isdefined(var_0B) && var_0D.classname == "script_brushmodel")
|
|
{
|
|
var_0B = var_0D;
|
|
}
|
|
|
|
if(isdefined(var_0A) && isdefined(var_0B))
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
|
|
if(isdefined(var_07.var_99F7.var_6698))
|
|
{
|
|
foreach(var_10 in var_07.var_99F7.var_6698)
|
|
{
|
|
if(isdefined(var_10))
|
|
{
|
|
var_10 delete();
|
|
}
|
|
}
|
|
}
|
|
|
|
var_07.var_99F7 notify("remove_pickup_cache");
|
|
var_07.var_99F7 delete();
|
|
var_0B delete();
|
|
var_0A delete();
|
|
var_07 = undefined;
|
|
thread lib_0B04::spawn_equipment_crate(param_00,param_02,param_03,param_04);
|
|
}
|
|
|
|
//Function Number: 141
|
|
specialist_crate_delete(param_00)
|
|
{
|
|
var_01 = (0,0,13);
|
|
param_00 = param_00 + var_01;
|
|
var_02 = scripts\common\utility::getstructarray("equipment_pickup","targetname");
|
|
var_03 = scripts\common\utility::getclosest(param_00,var_02);
|
|
var_04 = getentarray("specialist_mode_only","targetname");
|
|
var_05 = sortbydistance(var_04,var_03.origin);
|
|
var_06 = undefined;
|
|
var_07 = undefined;
|
|
foreach(var_09 in var_05)
|
|
{
|
|
if(!isdefined(var_06) && var_09.classname == "script_model")
|
|
{
|
|
var_06 = var_09;
|
|
}
|
|
else if(!isdefined(var_07) && var_09.classname == "script_brushmodel")
|
|
{
|
|
var_07 = var_09;
|
|
}
|
|
|
|
if(isdefined(var_06) && isdefined(var_07))
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
|
|
if(isdefined(var_03.var_99F7.var_6698))
|
|
{
|
|
foreach(var_0C in var_03.var_99F7.var_6698)
|
|
{
|
|
if(isdefined(var_0C))
|
|
{
|
|
var_0C delete();
|
|
}
|
|
}
|
|
}
|
|
|
|
var_03.var_99F7 notify("remove_pickup_cache");
|
|
var_03.var_99F7 delete();
|
|
var_07 delete();
|
|
var_06 delete();
|
|
var_03 = undefined;
|
|
} |