mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-07 17:17:50 -05:00
837 lines
18 KiB
Plaintext
837 lines
18 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: fusion_utility.gsc
|
|
* Game: Call of Duty: Advanced Warfare
|
|
* Platform: PC
|
|
* Function Count: 48
|
|
* Decompile Time: 736 ms
|
|
* Timestamp: 4/22/2024 2:30:14 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
delete_spawners(param_00)
|
|
{
|
|
if(!isarray(param_00))
|
|
{
|
|
param_00 = [param_00];
|
|
}
|
|
|
|
foreach(var_02 in param_00)
|
|
{
|
|
foreach(var_04 in getentarray(var_02,"script_noteworthy"))
|
|
{
|
|
if(isspawner(var_04))
|
|
{
|
|
var_04 delete();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 2
|
|
spawn_metrics_init_for_noteworthy(param_00)
|
|
{
|
|
if(!isdefined(level.spawn_metrics_spawn_count))
|
|
{
|
|
level.spawn_metrics_spawn_count = [];
|
|
}
|
|
|
|
if(!isdefined(level.spawn_metrics_death_count))
|
|
{
|
|
level.spawn_metrics_death_count = [];
|
|
}
|
|
|
|
maps\_utility::array_spawn_function_noteworthy(param_00,::spawn_metrics_spawn_func);
|
|
foreach(var_02 in getentarray(param_00,"script_noteworthy"))
|
|
{
|
|
if(!isspawner(var_02) && isalive(var_02))
|
|
{
|
|
var_02 spawn_metrics_spawn_func();
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 3
|
|
spawn_metrics_spawn_func()
|
|
{
|
|
if(isdefined(self.script_noteworthy))
|
|
{
|
|
if(isdefined(level.spawn_metrics_spawn_count[self.script_noteworthy]))
|
|
{
|
|
level.spawn_metrics_spawn_count[self.script_noteworthy] = level.spawn_metrics_spawn_count[self.script_noteworthy] + 1;
|
|
}
|
|
else
|
|
{
|
|
level.spawn_metrics_spawn_count[self.script_noteworthy] = 1;
|
|
}
|
|
|
|
thread spawn_metrics_death_watcher();
|
|
}
|
|
}
|
|
|
|
//Function Number: 4
|
|
spawn_metrics_death_watcher()
|
|
{
|
|
var_00 = self.script_noteworthy;
|
|
self waittill("death");
|
|
if(isdefined(level.spawn_metrics_death_count[var_00]))
|
|
{
|
|
level.spawn_metrics_death_count[var_00] = level.spawn_metrics_death_count[var_00] + 1;
|
|
return;
|
|
}
|
|
|
|
level.spawn_metrics_death_count[var_00] = 1;
|
|
}
|
|
|
|
//Function Number: 5
|
|
spawn_metrics_number_spawned(param_00)
|
|
{
|
|
if(isarray(param_00))
|
|
{
|
|
var_01 = 0;
|
|
foreach(var_03 in param_00)
|
|
{
|
|
var_01 = var_01 + spawn_metrics_number_spawned(var_03);
|
|
}
|
|
|
|
return var_01;
|
|
}
|
|
|
|
if(isdefined(level.spawn_metrics_spawn_count[var_04]))
|
|
{
|
|
return level.spawn_metrics_spawn_count[var_04];
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 6
|
|
spawn_metrics_number_died(param_00)
|
|
{
|
|
if(isarray(param_00))
|
|
{
|
|
var_01 = 0;
|
|
foreach(var_03 in param_00)
|
|
{
|
|
var_01 = var_01 + spawn_metrics_number_died(var_03);
|
|
}
|
|
|
|
return var_01;
|
|
}
|
|
|
|
if(isdefined(level.spawn_metrics_death_count[var_04]))
|
|
{
|
|
return level.spawn_metrics_death_count[var_04];
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 7
|
|
spawn_metrics_number_alive(param_00)
|
|
{
|
|
return spawn_metrics_number_spawned(param_00) - spawn_metrics_number_died(param_00);
|
|
}
|
|
|
|
//Function Number: 8
|
|
spawn_metrics_waittill_count_reaches(param_00,param_01,param_02)
|
|
{
|
|
if(!isarray(param_01))
|
|
{
|
|
param_01 = [param_01];
|
|
}
|
|
|
|
waittillframeend;
|
|
for(;;)
|
|
{
|
|
var_03 = 0;
|
|
foreach(var_05 in param_01)
|
|
{
|
|
var_03 = var_03 + spawn_metrics_number_alive(var_05);
|
|
}
|
|
|
|
if(var_03 <= param_00)
|
|
{
|
|
break;
|
|
}
|
|
|
|
wait(1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 9
|
|
spawn_metrics_waittill_deaths_reach(param_00,param_01,param_02)
|
|
{
|
|
if(!isarray(param_01))
|
|
{
|
|
param_01 = [param_01];
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
var_03 = 0;
|
|
foreach(var_05 in param_01)
|
|
{
|
|
var_03 = var_03 + spawn_metrics_number_died(var_05);
|
|
}
|
|
|
|
if(var_03 >= param_00)
|
|
{
|
|
break;
|
|
}
|
|
|
|
wait(1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 10
|
|
goto_node(param_00,param_01,param_02)
|
|
{
|
|
self endon("stop_goto_node");
|
|
if(!isdefined(param_02))
|
|
{
|
|
param_02 = 16;
|
|
}
|
|
|
|
maps\_utility::set_goal_radius(param_02);
|
|
if(isstring(param_00))
|
|
{
|
|
var_03 = getnode(param_00,"script_noteworthy");
|
|
}
|
|
else
|
|
{
|
|
var_03 = param_01;
|
|
}
|
|
|
|
if(isdefined(var_03))
|
|
{
|
|
maps\_utility::set_goal_node(var_03);
|
|
}
|
|
else
|
|
{
|
|
var_03 = common_scripts\utility::getstruct(param_00,"script_noteworthy");
|
|
maps\_utility::set_goal_pos(var_03.origin);
|
|
}
|
|
|
|
if(param_01)
|
|
{
|
|
self waittill("goal");
|
|
}
|
|
}
|
|
|
|
//Function Number: 11
|
|
disable_grenades()
|
|
{
|
|
if(isdefined(self.grenadeammo) && !isdefined(self.oldgrenadeammo))
|
|
{
|
|
self.oldgrenadeammo = self.grenadeammo;
|
|
}
|
|
|
|
self.grenadeammo = 0;
|
|
}
|
|
|
|
//Function Number: 12
|
|
enable_grenades()
|
|
{
|
|
if(isdefined(self.oldgrenadeammo))
|
|
{
|
|
self.grenadeammo = self.oldgrenadeammo;
|
|
self.oldgrenadeammo = undefined;
|
|
}
|
|
}
|
|
|
|
//Function Number: 13
|
|
equip_microwave_grenade()
|
|
{
|
|
self.grenadeweapon = "microwave_grenade";
|
|
self.grenadeammo = 2;
|
|
}
|
|
|
|
//Function Number: 14
|
|
bloody_death(param_00)
|
|
{
|
|
self endon("death");
|
|
if(!issentient(self) || !isalive(self))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(isdefined(self.bloody_death) && self.bloody_death)
|
|
{
|
|
return;
|
|
}
|
|
|
|
self.bloody_death = 1;
|
|
if(isdefined(param_00))
|
|
{
|
|
wait(randomfloat(param_00));
|
|
}
|
|
|
|
var_01 = [];
|
|
var_01[0] = "j_hip_le";
|
|
var_01[1] = "j_hip_ri";
|
|
var_01[2] = "j_head";
|
|
var_01[3] = "j_spine4";
|
|
var_01[4] = "j_elbow_le";
|
|
var_01[5] = "j_elbow_ri";
|
|
var_01[6] = "j_clavicle_le";
|
|
var_01[7] = "j_clavicle_ri";
|
|
for(var_02 = 0;var_02 < 3 + randomint(5);var_02++)
|
|
{
|
|
var_03 = randomintrange(0,var_01.size);
|
|
thread bloody_death_fx(var_01[var_03],undefined);
|
|
wait(randomfloat(0.1));
|
|
}
|
|
|
|
self dodamage(self.health + 50,self.origin);
|
|
}
|
|
|
|
//Function Number: 15
|
|
bloody_death_fx(param_00,param_01)
|
|
{
|
|
if(!isdefined(param_01))
|
|
{
|
|
param_01 = level._effect["flesh_hit"];
|
|
}
|
|
|
|
playfxontag(param_01,self,param_00);
|
|
}
|
|
|
|
//Function Number: 16
|
|
teleport_to_scriptstruct(param_00)
|
|
{
|
|
var_01 = common_scripts\utility::getstruct(param_00,"script_noteworthy");
|
|
level.player setorigin(var_01.origin);
|
|
if(isdefined(var_01.angles))
|
|
{
|
|
level.player setplayerangles(var_01.angles);
|
|
}
|
|
|
|
var_02 = getentarray("hero","script_noteworthy");
|
|
foreach(var_04 in var_02)
|
|
{
|
|
if(isspawner(var_04))
|
|
{
|
|
var_02 = common_scripts\utility::array_remove(var_02,var_04);
|
|
}
|
|
}
|
|
|
|
var_06 = common_scripts\utility::getstructarray(var_01.target,"targetname");
|
|
for(var_07 = 0;var_07 < var_02.size;var_07++)
|
|
{
|
|
if(var_07 < var_06.size)
|
|
{
|
|
var_02[var_07] forceteleport(var_06[var_07].origin,var_06[var_07].angles);
|
|
var_02[var_07] setgoalpos(var_06[var_07].origin);
|
|
continue;
|
|
}
|
|
|
|
var_02[var_07] forceteleport(level.player.origin,level.player.angles);
|
|
var_02[var_07] setgoalpos(level.player.origin);
|
|
}
|
|
}
|
|
|
|
//Function Number: 17
|
|
kill_path_on_death()
|
|
{
|
|
wait_to_kill_path();
|
|
self notify("newpath");
|
|
}
|
|
|
|
//Function Number: 18
|
|
wait_to_kill_path()
|
|
{
|
|
self endon("death");
|
|
self endon("driver dead");
|
|
level waittill("eternity");
|
|
}
|
|
|
|
//Function Number: 19
|
|
disable_awareness()
|
|
{
|
|
self.ignoreall = 1;
|
|
self.dontmelee = 1;
|
|
self.ignoresuppression = 1;
|
|
self.suppressionwait_old = self.suppressionwait;
|
|
self.suppressionwait = 0;
|
|
maps\_utility::disable_surprise();
|
|
self.ignorerandombulletdamage = 1;
|
|
maps\_utility::disable_bulletwhizbyreaction();
|
|
maps\_utility::disable_pain();
|
|
self.grenadeawareness = 0;
|
|
self.ignoreme = 1;
|
|
maps\_utility::enable_dontevershoot();
|
|
self.disablefriendlyfirereaction = 1;
|
|
self.dodangerreact = 0;
|
|
}
|
|
|
|
//Function Number: 20
|
|
enable_awareness()
|
|
{
|
|
self.ignoreall = 0;
|
|
self.dontmelee = undefined;
|
|
self.ignoresuppression = 0;
|
|
self.suppressionwait = self.suppressionwait_old;
|
|
self.suppressionwait_old = undefined;
|
|
maps\_utility::enable_surprise();
|
|
self.ignorerandombulletdamage = 0;
|
|
maps\_utility::enable_bulletwhizbyreaction();
|
|
maps\_utility::enable_pain();
|
|
self.grenadeawareness = 1;
|
|
self.ignoreme = 0;
|
|
maps\_utility::disable_dontevershoot();
|
|
self.disablefriendlyfirereaction = undefined;
|
|
self.dodangerreact = 1;
|
|
}
|
|
|
|
//Function Number: 21
|
|
hide_friendname_until_flag_or_notify(param_00)
|
|
{
|
|
if(!isdefined(self.name))
|
|
{
|
|
return;
|
|
}
|
|
|
|
level.player endon("death");
|
|
self endon("death");
|
|
self.old_name = self.name;
|
|
self.name = " ";
|
|
level waittill(param_00);
|
|
self.name = self.old_name;
|
|
}
|
|
|
|
//Function Number: 22
|
|
ignore_badplace(param_00,param_01)
|
|
{
|
|
self endon("death");
|
|
if(isdefined(param_00))
|
|
{
|
|
common_scripts\utility::flag_wait(param_00);
|
|
}
|
|
|
|
self.old_bp_awareness = self.badplaceawareness;
|
|
self.badplaceawareness = 0;
|
|
if(isdefined(param_01))
|
|
{
|
|
common_scripts\utility::flag_wait(param_01);
|
|
self.badplaceawareness = self.old_bp_awareness;
|
|
}
|
|
}
|
|
|
|
//Function Number: 23
|
|
print3duntilnotify(param_00,param_01,param_02,param_03,param_04,param_05)
|
|
{
|
|
self endon(param_05);
|
|
wait(0.05);
|
|
}
|
|
|
|
//Function Number: 24
|
|
printorigin3duntilnotify(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
self endon(param_04);
|
|
wait(0.05);
|
|
}
|
|
|
|
//Function Number: 25
|
|
delete_on_notify(param_00)
|
|
{
|
|
level waittill(param_00);
|
|
self delete();
|
|
}
|
|
|
|
//Function Number: 26
|
|
run_thread_on_notify(param_00,param_01,param_02)
|
|
{
|
|
if(isdefined(param_02))
|
|
{
|
|
self endon(param_02);
|
|
}
|
|
|
|
self waittill(param_01);
|
|
self thread [[ param_00 ]]();
|
|
}
|
|
|
|
//Function Number: 27
|
|
hint_button_string_lookup_fus(param_00)
|
|
{
|
|
switch(param_00)
|
|
{
|
|
case "activate":
|
|
case "usereload":
|
|
case "use":
|
|
case "reload":
|
|
case "x":
|
|
return "^3[{+activate}]^7";
|
|
|
|
case "gostand":
|
|
case "jump":
|
|
case "a":
|
|
return "^3[{+gostand}]^7";
|
|
|
|
case "weapnext":
|
|
case "y":
|
|
return "^3[{weapnext}]^7";
|
|
|
|
case "stance":
|
|
case "crouch":
|
|
case "b":
|
|
return "^3[{+stance}]^7";
|
|
|
|
case "melee":
|
|
return "^3[{+melee}]^7";
|
|
|
|
case "pause":
|
|
case "start":
|
|
return "^3[{pause}]^7";
|
|
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
//Function Number: 28
|
|
hint_button_clear_fus()
|
|
{
|
|
if(isdefined(self.deleteobjectwhendone) && self.deleteobjectwhendone)
|
|
{
|
|
self.object delete();
|
|
}
|
|
|
|
self destroy();
|
|
}
|
|
|
|
//Function Number: 29
|
|
point_is_in_screen_circle(param_00,param_01,param_02)
|
|
{
|
|
return vectordot(vectornormalize(param_00 - param_01 geteye()),anglestoforward(param_01 getplayerangles())) > cos(param_02);
|
|
}
|
|
|
|
//Function Number: 30
|
|
player_in_mt()
|
|
{
|
|
return isdefined(level.player.drivingvehicleandturret);
|
|
}
|
|
|
|
//Function Number: 31
|
|
is_sonar_vision_allowed()
|
|
{
|
|
var_00 = level.player getcurrentweapon();
|
|
if(weaponhasthermalscope(var_00) && level.player playerads() > 0)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 32
|
|
disable_sonar_when_not_allowed()
|
|
{
|
|
level.player endon("sonar_vision_off");
|
|
for(;;)
|
|
{
|
|
if(!is_sonar_vision_allowed())
|
|
{
|
|
break;
|
|
}
|
|
|
|
wait 0.05;
|
|
}
|
|
|
|
sonar_off();
|
|
}
|
|
|
|
//Function Number: 33
|
|
thermal_with_nvg()
|
|
{
|
|
level endon("flag_end_sonar_vision");
|
|
var_00 = undefined;
|
|
var_01 = undefined;
|
|
var_02 = undefined;
|
|
for(;;)
|
|
{
|
|
self waittill("sonar_vision");
|
|
if(!is_sonar_vision_allowed())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!isdefined(level.player.sonar_vision) || !level.player.sonar_vision)
|
|
{
|
|
sonar_on();
|
|
childthread disable_sonar_when_not_allowed();
|
|
continue;
|
|
}
|
|
|
|
sonar_off();
|
|
}
|
|
}
|
|
|
|
//Function Number: 34
|
|
sonar_save_and_set_dvars()
|
|
{
|
|
if(!isdefined(level.player.sonarvisionsaveddvars))
|
|
{
|
|
level.player.sonarvisionsaveddvars = [];
|
|
}
|
|
|
|
level.player.sonarvisionsaveddvars["r_hudoutlineenable"] = getdvarint("r_hudoutlineenable",1);
|
|
level.player.sonarvisionsaveddvars["r_hudoutlinepostmode"] = getdvar("r_hudoutlinepostmode",0);
|
|
level.player.sonarvisionsaveddvars["r_hudoutlinehaloblurradius"] = getdvarfloat("r_hudoutlinehaloblurradius",1);
|
|
level.player.sonarvisionsaveddvars["r_hudoutlinehalolumscale"] = getdvarfloat("r_hudoutlinehalolumscale",1);
|
|
level.player.sonarvisionsaveddvars["r_hudoutlinehalowhen"] = getdvar("r_hudoutlinehalowhen",1);
|
|
setsaveddvar("r_hudoutlineenable",1);
|
|
setsaveddvar("r_hudoutlinepostmode",2);
|
|
setsaveddvar("r_hudoutlinehaloblurradius",0.7);
|
|
setsaveddvar("r_hudoutlinehalolumscale",2);
|
|
setsaveddvar("r_hudoutlinehalowhen",0);
|
|
level.player.sonarvisionsaveddvars["r_ssrBlendScale"] = getdvarfloat("r_ssrBlendScale",1);
|
|
setsaveddvar("r_ssrBlendScale",0);
|
|
}
|
|
|
|
//Function Number: 35
|
|
sonar_reset_dvars()
|
|
{
|
|
if(isdefined(level.player.sonarvisionsaveddvars))
|
|
{
|
|
setsaveddvar("r_hudoutlineenable",level.player.sonarvisionsaveddvars["r_hudoutlineenable"]);
|
|
setsaveddvar("r_hudoutlinepostmode",level.player.sonarvisionsaveddvars["r_hudoutlinepostmode"]);
|
|
setsaveddvar("r_hudoutlinehaloblurradius",level.player.sonarvisionsaveddvars["r_hudoutlinehaloblurradius"]);
|
|
setsaveddvar("r_hudoutlinehalolumscale",level.player.sonarvisionsaveddvars["r_hudoutlinehalolumscale"]);
|
|
setsaveddvar("r_hudoutlinehalowhen",level.player.sonarvisionsaveddvars["r_hudoutlinehalowhen"]);
|
|
setsaveddvar("r_ssrBlendScale",level.player.sonarvisionsaveddvars["r_ssrBlendScale"]);
|
|
}
|
|
}
|
|
|
|
//Function Number: 36
|
|
sonar_on()
|
|
{
|
|
level.overlaysonar = create_hud_sonar_overlay(0,1);
|
|
sonar_save_and_set_dvars();
|
|
thread mark_enemies();
|
|
var_00 = 0.05;
|
|
level.player lightsetoverrideenableforplayer("sanfran_b_sonar_vision",var_00);
|
|
level.player setclutoverrideenableforplayer("clut_sonar",var_00);
|
|
soundscripts\_snd::snd_message("aud_sonar_vision_on");
|
|
level.player.sonar_vision = 1;
|
|
level notify("sonar_update");
|
|
}
|
|
|
|
//Function Number: 37
|
|
sonar_off()
|
|
{
|
|
var_00 = 0.05;
|
|
level.player lightsetoverrideenableforplayer(var_00);
|
|
level.player setclutoverridedisableforplayer(var_00);
|
|
soundscripts\_snd::snd_message("aud_sonar_vision_off");
|
|
level.player.sonar_vision = 0;
|
|
level notify("sonar_update");
|
|
if(isdefined(level.overlay))
|
|
{
|
|
level.overlay destroy();
|
|
}
|
|
|
|
if(isdefined(level.overlaythreat))
|
|
{
|
|
level.overlaythreat destroy();
|
|
}
|
|
|
|
if(isdefined(level.overlaysonar))
|
|
{
|
|
level.overlaysonar destroy();
|
|
}
|
|
|
|
sonar_reset_dvars();
|
|
foreach(var_02 in getaiarray("axis","allies"))
|
|
{
|
|
if(isdefined(var_02.hudoutlineenabledbysonarvision))
|
|
{
|
|
var_02 hudoutlinedisable();
|
|
var_02.hudoutlineenabledbysonarvision = undefined;
|
|
}
|
|
}
|
|
|
|
level.player notify("sonar_vision_off");
|
|
}
|
|
|
|
//Function Number: 38
|
|
mark_enemies()
|
|
{
|
|
level.player endon("sonar_vision_off");
|
|
for(;;)
|
|
{
|
|
foreach(var_01 in getaiarray("axis"))
|
|
{
|
|
var_01 hudoutlineenable(1,1,0);
|
|
var_01.hudoutlineenabledbysonarvision = 1;
|
|
}
|
|
|
|
foreach(var_04 in getaiarray("allies"))
|
|
{
|
|
var_04 hudoutlineenable(2,1,0);
|
|
var_04.hudoutlineenabledbysonarvision = 1;
|
|
}
|
|
|
|
wait(0.1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 39
|
|
create_hud_sonar_overlay(param_00,param_01)
|
|
{
|
|
var_02 = newhudelem();
|
|
var_02.x = 0;
|
|
var_02.y = 0;
|
|
if(level.currentgen)
|
|
{
|
|
var_02.color = (1,0.6,0.2);
|
|
}
|
|
else
|
|
{
|
|
var_02.color = (0.1,0.1,1);
|
|
}
|
|
|
|
var_02.sort = param_00;
|
|
var_02.horzalign = "fullscreen";
|
|
var_02.vertalign = "fullscreen";
|
|
var_02.alpha = param_01;
|
|
var_02 setsonarvision(10);
|
|
return var_02;
|
|
}
|
|
|
|
//Function Number: 40
|
|
should_end_sonar_hint()
|
|
{
|
|
return isdefined(level.player.sonar_vision) && level.player.sonar_vision;
|
|
}
|
|
|
|
//Function Number: 41
|
|
should_end_pdrone_hint()
|
|
{
|
|
if(common_scripts\utility::flag("turbine_room_stop_combat") || common_scripts\utility::flag("flag_player_using_drone"))
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 42
|
|
should_end_pdrone_fail_hint()
|
|
{
|
|
if(common_scripts\utility::flag("turbine_room_stop_combat") || common_scripts\utility::flag("flag_player_using_drone"))
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 43
|
|
spawn_player_drone_think()
|
|
{
|
|
level endon("turbine_room_stop_combat");
|
|
for(;;)
|
|
{
|
|
level.player waittill("use_drone");
|
|
while(level.player isjumping())
|
|
{
|
|
wait 0.05;
|
|
}
|
|
|
|
if(deploy_check_player_in_elevator_think())
|
|
{
|
|
break;
|
|
}
|
|
else
|
|
{
|
|
wait(0.25);
|
|
maps\_utility::hintdisplaymintimehandler("drone_deploy_fail_prompt",2);
|
|
wait(1);
|
|
if(common_scripts\utility::flag("drone_deploy_prompt_displayed"))
|
|
{
|
|
maps\_utility::hintdisplaymintimehandler("drone_deploy_prompt",8);
|
|
}
|
|
}
|
|
}
|
|
|
|
if(common_scripts\utility::flag("player_drone_attack_done") == 0)
|
|
{
|
|
common_scripts\utility::flag_set("player_drone_start");
|
|
level notify("player_drone_start");
|
|
thread spawn_turbine_enemies_tidal_wave();
|
|
thread force_exit_turbine_combat_complete();
|
|
common_scripts\utility::flag_set("flag_player_using_drone");
|
|
thread player_drone_manager();
|
|
}
|
|
}
|
|
|
|
//Function Number: 44
|
|
deploy_check_player_in_elevator_think()
|
|
{
|
|
var_00 = undefined;
|
|
if(common_scripts\utility::flag("player_is_in_turbine_room"))
|
|
{
|
|
return vehicle_scripts\_pdrone_player::pdrone_deploy_check(70,undefined,10);
|
|
}
|
|
|
|
return vehicle_scripts\_pdrone_player::pdrone_deploy_check(180,undefined,40);
|
|
}
|
|
|
|
//Function Number: 45
|
|
spawn_turbine_enemies_tidal_wave()
|
|
{
|
|
maps\_utility::activate_trigger("turbine_room_combat_spawn_trigger","script_noteworthy");
|
|
common_scripts\utility::flag_set("turbine_room_all_enemies");
|
|
}
|
|
|
|
//Function Number: 46
|
|
player_drone_manager()
|
|
{
|
|
common_scripts\utility::flag_set("player_drone_start");
|
|
level notify("player_drone_start");
|
|
level.player setweaponhudiconoverride("actionslot1","dpad_icon_drone_off");
|
|
maps\_player_exo::player_exo_deactivate();
|
|
player_drone_control();
|
|
maps\_player_exo::player_exo_activate();
|
|
common_scripts\utility::flag_clear("flag_player_using_drone");
|
|
common_scripts\utility::flag_set("player_drone_attack_done");
|
|
}
|
|
|
|
//Function Number: 47
|
|
player_drone_control()
|
|
{
|
|
var_00 = getent("pdrone_player_spawner","targetname");
|
|
var_01 = common_scripts\utility::getstruct("pdrone_turbine_in_elevator_safe_spawn","targetname");
|
|
if(common_scripts\utility::flag("player_is_in_turbine_room"))
|
|
{
|
|
var_02 = vehicle_scripts\_pdrone_player::pdrone_deploy(var_00,0,var_01);
|
|
}
|
|
else
|
|
{
|
|
var_02 = vehicle_scripts\_pdrone_player::pdrone_deploy(var_01,0);
|
|
}
|
|
|
|
vehicle_scripts\_pdrone_player::pdrone_player_use(var_02,"player_drone_airspace_turbine",undefined,undefined);
|
|
var_02 vehicle_scripts\_pdrone_player::pdrone_player_add_vehicle_target("script_noteworthy","training_s2_patio_vehicles");
|
|
thread maps\fusion_lighting::setup_lighting_fly_drone_turbine();
|
|
level.player.drone = var_02;
|
|
var_02 vehicle_scripts\_pdrone_player::pdrone_player_enter(1);
|
|
soundscripts\_snd::snd_message("rec_player_drone_start",var_02);
|
|
var_02 vehicle_scripts\_pdrone_player::pdrone_player_loop();
|
|
soundscripts\_snd::snd_message("rec_player_drone_end");
|
|
thread maps\fusion_lighting::setup_lighting_fly_drone_off_turbine();
|
|
var_02 vehicle_scripts\_pdrone_player::pdrone_player_exit(1);
|
|
var_02 delete();
|
|
}
|
|
|
|
//Function Number: 48
|
|
force_exit_turbine_combat_complete()
|
|
{
|
|
waittillframeend;
|
|
var_00 = getaiarray("axis");
|
|
maps\_utility::waittill_dead_or_dying(var_00);
|
|
common_scripts\utility::flag_set("flag_turbine_pdrone_combat_complete");
|
|
wait(2);
|
|
level.player.drone vehicle_scripts\_pdrone_player::pdrone_player_force_exit();
|
|
} |