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

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

19
AW/PC/MP/1341.gsc Normal file
View File

@ -0,0 +1,19 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: 1341.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 0 ms
* Timestamp: 10/27/2023 1:46:51 AM
*******************************************************************/
//Function Number: 1
main()
{
wait(0);
if(isdefined(self))
{
self delete();
}
}

23
AW/PC/MP/1342.gsc Normal file
View File

@ -0,0 +1,23 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: 1342.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 2
* Decompile Time: 0 ms
* Timestamp: 10/27/2023 1:46:52 AM
*******************************************************************/
//Function Number: 1
initstructs()
{
level.struct = [];
}
//Function Number: 2
createstruct()
{
var_00 = spawnstruct();
level.struct[level.struct.size] = var_00;
return var_00;
}

249
AW/PC/MP/1344.gsc Normal file
View File

@ -0,0 +1,249 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: 1344.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 22
* Decompile Time: 1 ms
* Timestamp: 10/27/2023 1:46:52 AM
*******************************************************************/
//Function Number: 1
codecallback_startgametype()
{
if(getdvar("r_reflectionProbeGenerate") == "1")
{
level waittill("eternity");
}
if(!isdefined(level.gametypestarted) || !level.gametypestarted)
{
[[ level.callbackstartgametype ]]();
level.gametypestarted = 1;
}
}
//Function Number: 2
codecallback_playerconnect()
{
if(getdvar("r_reflectionProbeGenerate") == "1")
{
level waittill("eternity");
}
self endon("disconnect");
[[ level.callbackplayerconnect ]]();
}
//Function Number: 3
codecallback_playerdisconnect(param_00)
{
self notify("disconnect");
[[ level.callbackplayerdisconnect ]](param_00);
}
//Function Number: 4
codecallback_playerdamage(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
{
self endon("disconnect");
[[ level.callbackplayerdamage ]](param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09);
}
//Function Number: 5
codecallback_playerkilled(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
{
self endon("disconnect");
[[ level.callbackplayerkilled ]](param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
}
//Function Number: 6
codecallback_playergrenadesuicide(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
{
self endon("disconnect");
[[ level.callbackplayergrenadesuicide ]](param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07);
}
//Function Number: 7
codecallback_entityoutofworld()
{
self endon("disconnect");
[[ level.callbackentityoutofworld ]]();
}
//Function Number: 8
codecallback_bullethitentity(param_00,param_01,param_02,param_03,param_04,param_05)
{
self endon("disconnect");
if(isdefined(self.bullethitcallback))
{
[[ self.bullethitcallback ]](param_00,param_01,param_02,param_03,param_04,param_05);
}
}
//Function Number: 9
codecallback_vehicledamage(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B)
{
if(isdefined(self.damagecallback))
{
self [[ self.damagecallback ]](param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B);
return;
}
self vehicle_finishdamage(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B);
}
//Function Number: 10
codecallback_entitydamage(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B)
{
if(isdefined(self.damagecallback))
{
self [[ self.damagecallback ]](param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B);
return;
}
self finishentitydamage(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B);
}
//Function Number: 11
codecallback_codeendgame()
{
self endon("disconnect");
[[ level.callbackcodeendgame ]]();
}
//Function Number: 12
codecallback_playerlaststand(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
{
self endon("disconnect");
[[ level.callbackplayerlaststand ]](param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
}
//Function Number: 13
codecallback_playermigrated()
{
self endon("disconnect");
[[ level.callbackplayermigrated ]]();
}
//Function Number: 14
codecallback_hostmigration()
{
[[ level.callbackhostmigration ]]();
}
//Function Number: 15
codecallback_givekillstreak(param_00,param_01)
{
if(isbot(param_00) || istestclient(param_00) || param_00.team == "spectator" || param_00.sessionstate == "spectator")
{
return;
}
if((isdefined(level.killstreakfuncs[param_01]) && tablelookup("mp/killstreakTable.csv",1,param_01,0) != "") || issubstr(param_01,"turrethead"))
{
if(issubstr(param_01,"turrethead"))
{
param_00 thread maps\mp\killstreaks\_rippedturret::playergiveturrethead(param_01);
return;
}
var_02 = param_00 maps\mp\killstreaks\_killstreaks::getstreakcost(param_01);
var_03 = param_00 maps\mp\killstreaks\_killstreaks::getkillstreakmodules(param_00,param_01);
var_04 = param_00 maps\mp\killstreaks\_killstreaks::getnextkillstreakslotindex(param_01);
param_00 thread maps\mp\gametypes\_hud_message::killstreaksplashnotify(param_01,var_02,undefined,var_03,var_04);
param_00 maps\mp\killstreaks\_killstreaks::givekillstreak(param_01);
}
}
//Function Number: 16
codecallback_givekillstreakmodule(param_00,param_01)
{
if(isbot(param_00) || istestclient(param_00) || param_00.team == "spectator" || param_00.sessionstate == "spectator")
{
return;
}
var_02 = maps\mp\killstreaks\_killstreaks::getstreakmodulebasekillstreak(param_01);
if(isdefined(var_02) && var_02 != "")
{
if(!isdefined(param_00.killstreakmodules[param_01]))
{
var_03 = maps\mp\killstreaks\_killstreaks::getstreakmodulecost(param_01);
param_00.killstreakmodules[param_01] = var_03;
return;
}
param_00.killstreakmodules[param_01] = undefined;
}
}
//Function Number: 17
codecallback_partymembers(param_00)
{
if(isdefined(level.partymembers_cb))
{
[[ level.partymembers_cb ]](param_00);
}
}
//Function Number: 18
setupdamageflags()
{
level.idflags_radius = 1;
level.idflags_no_armor = 2;
level.idflags_no_knockback = 4;
level.idflags_penetration = 8;
level.idflags_stun = 16;
level.idflags_shield_explosive_impact = 32;
level.idflags_shield_explosive_impact_huge = 64;
level.idflags_shield_explosive_splash = 128;
level.idflags_no_team_protection = 256;
level.idflags_no_protection = 512;
level.idflags_passthru = 1024;
}
//Function Number: 19
setupcallbacks()
{
setdefaultcallbacks();
setupdamageflags();
}
//Function Number: 20
setdefaultcallbacks()
{
level.callbackstartgametype = ::maps\mp\gametypes\_gamelogic::callback_startgametype;
level.callbackplayerconnect = ::maps\mp\gametypes\_playerlogic::callback_playerconnect;
level.callbackplayerdisconnect = ::maps\mp\gametypes\_playerlogic::callback_playerdisconnect;
level.callbackplayerdamage = ::maps\mp\gametypes\_damage::callback_playerdamage;
level.callbackplayerkilled = ::maps\mp\gametypes\_damage::callback_playerkilled;
level.callbackentityoutofworld = ::maps\mp\gametypes\_damage::callback_entityoutofworld;
level.callbackplayergrenadesuicide = ::maps\mp\gametypes\_damage::callback_playergrenadesuicide;
level.callbackcodeendgame = ::maps\mp\gametypes\_gamelogic::callback_codeendgame;
level.callbackplayerlaststand = ::maps\mp\gametypes\_damage::callback_playerlaststand;
level.callbackplayermigrated = ::maps\mp\gametypes\_playerlogic::callback_playermigrated;
level.callbackhostmigration = ::maps\mp\gametypes\_hostmigration::callback_hostmigration;
}
//Function Number: 21
abortlevel()
{
level.callbackstartgametype = ::callbackvoid;
level.callbackplayerconnect = ::callbackvoid;
level.callbackplayerdisconnect = ::callbackvoid;
level.callbackplayerdamage = ::callbackvoid;
level.callbackplayerkilled = ::callbackvoid;
level.callbackentityoutofworld = ::callbackvoid;
level.callbackplayergrenadesuicide = ::callbackvoid;
level.callbackcodeendgame = ::callbackvoid;
level.callbackplayerlaststand = ::callbackvoid;
level.callbackplayermigrated = ::callbackvoid;
level.callbackhostmigration = ::callbackvoid;
setdvar("g_gametype","dm");
exitlevel(0);
}
//Function Number: 22
callbackvoid()
{
}

View File

@ -0,0 +1,28 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: character/mp_character_cloak_test.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 2
* Decompile Time: 29 ms
* Timestamp: 10/27/2023 1:46:53 AM
*******************************************************************/
//Function Number: 1
main()
{
self setmodel("mp_body_cloak_test");
self attach("mp_head_cloak_test","",1);
self.headmodel = "mp_head_cloak_test";
self setviewmodel("mp_viewhands_cloak_test");
self.voice = "american";
self setclothtype("vestlight");
}
//Function Number: 2
precache()
{
precachemodel("mp_body_cloak_test");
precachemodel("mp_head_cloak_test");
precachemodel("mp_viewhands_cloak_test");
}

View File

@ -0,0 +1,27 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: character/mp_character_sentinel.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 2
* Decompile Time: 29 ms
* Timestamp: 10/27/2023 1:46:53 AM
*******************************************************************/
//Function Number: 1
main()
{
self setmodel("mp_sentinel_body_nojet_b");
codescripts\character::attachhead("alias_mp_sentinel_heads",xmodelalias\alias_mp_sentinel_heads::main());
self setviewmodel("viewhands_s1_pmc");
self.voice = "american";
self setclothtype("vestlight");
}
//Function Number: 2
precache()
{
precachemodel("mp_sentinel_body_nojet_b");
codescripts\character::precachemodelarray(xmodelalias\alias_mp_sentinel_heads::main());
precachemodel("viewhands_s1_pmc");
}

View File

@ -0,0 +1,281 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: codescripts/character.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 14
* Decompile Time: 231 ms
* Timestamp: 10/27/2023 1:46:54 AM
*******************************************************************/
//Function Number: 1
setmodelfromarray(param_00)
{
self setmodel(param_00[randomint(param_00.size)]);
}
//Function Number: 2
precachemodelarray(param_00)
{
for(var_01 = 0;var_01 < param_00.size;var_01++)
{
precachemodel(param_00[var_01]);
}
}
//Function Number: 3
attachhead(param_00,param_01)
{
if(!isdefined(level.character_head_index))
{
level.character_head_index = [];
}
if(!isdefined(level.character_head_index[param_00]))
{
level.character_head_index[param_00] = randomint(param_01.size);
}
var_02 = level.character_head_index[param_00] + 1 % param_01.size;
if(isdefined(self.script_char_index))
{
var_02 = self.script_char_index % param_01.size;
}
level.character_head_index[param_00] = var_02;
setheadmodel(param_01[var_02]);
}
//Function Number: 4
setheadmodel(param_00)
{
if(isdefined(self.headmodel))
{
self detach(self.headmodel);
}
self attach(param_00,"",1);
self.headmodel = param_00;
}
//Function Number: 5
attachhat(param_00,param_01)
{
if(!isdefined(level.character_hat_index))
{
level.character_hat_index = [];
}
if(!isdefined(level.character_hat_index[param_00]))
{
level.character_hat_index[param_00] = randomint(param_01.size);
}
var_02 = level.character_hat_index[param_00] + 1 % param_01.size;
level.character_hat_index[param_00] = var_02;
self attach(param_01[var_02]);
self.hatmodel = param_01[var_02];
}
//Function Number: 6
new()
{
self detachall();
var_00 = self.anim_gunhand;
if(!isdefined(var_00))
{
return;
}
self.anim_gunhand = "none";
self [[ level.putguninhand ]](var_00);
}
//Function Number: 7
save()
{
var_00["gunHand"] = self.anim_gunhand;
var_00["gunInHand"] = self.anim_guninhand;
var_00["model"] = self.model;
var_00["hatModel"] = self.hatmodel;
if(isdefined(self.name))
{
var_00["name"] = self.name;
}
else
{
}
var_01 = self getattachsize();
for(var_02 = 0;var_02 < var_01;var_02++)
{
var_00["attach"][var_02]["model"] = self getattachmodelname(var_02);
var_00["attach"][var_02]["tag"] = self getattachtagname(var_02);
}
return var_00;
}
//Function Number: 8
load(param_00)
{
self detachall();
self.anim_gunhand = param_00["gunHand"];
self.anim_guninhand = param_00["gunInHand"];
self setmodel(param_00["model"]);
self.hatmodel = param_00["hatModel"];
if(isdefined(param_00["name"]))
{
self.name = param_00["name"];
}
else
{
}
var_01 = param_00["attach"];
var_02 = var_01.size;
for(var_03 = 0;var_03 < var_02;var_03++)
{
self attach(var_01[var_03]["model"],var_01[var_03]["tag"]);
}
}
//Function Number: 9
precache(param_00)
{
if(isdefined(param_00["name"]))
{
}
else
{
}
precachemodel(param_00["model"]);
var_01 = param_00["attach"];
var_02 = var_01.size;
for(var_03 = 0;var_03 < var_02;var_03++)
{
precachemodel(var_01[var_03]["model"]);
}
}
//Function Number: 10
get_random_character(param_00)
{
if(isdefined(self.classname))
{
var_01 = strtok(self.classname,"_");
}
else
{
var_01 = [];
}
if(!common_scripts\utility::issp())
{
if(isdefined(self.pers["modelIndex"]) && self.pers["modelIndex"] < param_00)
{
return self.pers["modelIndex"];
}
var_02 = randomint(param_00);
self.pers["modelIndex"] = var_02;
return var_02;
}
else if(var_02.size <= 2)
{
return randomint(var_01);
}
var_03 = "auto";
var_02 = undefined;
var_04 = var_01[2];
if(isdefined(self.script_char_index))
{
var_03 = self.script_char_index;
}
if(isdefined(self.script_char_group))
{
var_05 = "grouped";
var_02 = "group_" + self.script_char_group;
}
if(!isdefined(level.character_index_cache))
{
level.character_index_cache = [];
}
if(!isdefined(level.character_index_cache[var_04]))
{
level.character_index_cache[var_04] = [];
}
if(!isdefined(level.character_index_cache[var_04][var_02]))
{
initialize_character_group(var_04,var_02,param_00);
}
if(!isdefined(var_03))
{
var_03 = get_least_used_index(var_04,var_02);
if(!isdefined(var_03))
{
var_03 = randomint(5000);
}
}
while(var_03 >= param_00)
{
var_03 = var_03 - param_00;
}
level.character_index_cache[var_04][var_02][var_03]++;
return var_03;
}
//Function Number: 11
get_least_used_index(param_00,param_01)
{
var_02 = [];
var_03 = level.character_index_cache[param_00][param_01][0];
var_02[0] = 0;
for(var_04 = 1;var_04 < level.character_index_cache[param_00][param_01].size;var_04++)
{
if(level.character_index_cache[param_00][param_01][var_04] > var_03)
{
continue;
}
if(level.character_index_cache[param_00][param_01][var_04] < var_03)
{
var_02 = [];
var_03 = level.character_index_cache[param_00][param_01][var_04];
}
var_02[var_02.size] = var_04;
}
return random(var_02);
}
//Function Number: 12
initialize_character_group(param_00,param_01,param_02)
{
for(var_03 = 0;var_03 < param_02;var_03++)
{
level.character_index_cache[param_00][param_01][var_03] = 0;
}
}
//Function Number: 13
get_random_weapon(param_00)
{
return randomint(param_00);
}
//Function Number: 14
random(param_00)
{
return param_00[randomint(param_00.size)];
}

View File

@ -0,0 +1,19 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: codescripts\delete.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 22 ms
* Timestamp: 10/27/2023 1:40:12 AM
*******************************************************************/
//Function Number: 1
main()
{
wait(0);
if(isdefined(self))
{
self delete();
}
}

View File

@ -0,0 +1,23 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: codescripts\struct.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 2
* Decompile Time: 33 ms
* Timestamp: 10/27/2023 1:40:13 AM
*******************************************************************/
//Function Number: 1
initstructs()
{
level.struct = [];
}
//Function Number: 2
createstruct()
{
var_00 = spawnstruct();
level.struct[level.struct.size] = var_00;
return var_00;
}

View File

@ -0,0 +1,14 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: common_scripts/_artcommon.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 14 ms
* Timestamp: 10/27/2023 1:46:55 AM
*******************************************************************/
//Function Number: 1
setfogsliders()
{
}

View File

@ -0,0 +1,811 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: common_scripts/_bcs_location_trigs.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 34
* Decompile Time: 531 ms
* Timestamp: 10/27/2023 1:46:57 AM
*******************************************************************/
//Function Number: 1
bcs_location_trigs_init()
{
if(isdefined(level.dds) && isdefined(level.bcs_locations))
{
return;
}
level.bcs_location_mappings = [];
bcs_location_trigger_mapping();
bcs_trigs_assign_aliases();
level.bcs_location_mappings = undefined;
anim.locationlastcallouttimes = [];
}
//Function Number: 2
bcs_trigs_assign_aliases()
{
anim.bcs_locations = [];
var_00 = getentarray();
var_01 = [];
foreach(var_03 in var_00)
{
if(isdefined(var_03.classname) && issubstr(var_03.classname,"trigger_multiple_bcs"))
{
var_01[var_01.size] = var_03;
}
}
foreach(var_03 in var_01)
{
if(!isdefined(level.bcs_location_mappings[var_03.classname]))
{
continue;
}
var_06 = parselocationaliases(level.bcs_location_mappings[var_03.classname]);
if(var_06.size > 1)
{
var_06 = common_scripts\utility::array_randomize(var_06);
}
var_03.locationaliases = var_06;
}
anim.bcs_locations = var_01;
}
//Function Number: 3
parselocationaliases(param_00)
{
var_01 = strtok(param_00," ");
return var_01;
}
//Function Number: 4
add_bcs_location_mapping(param_00,param_01)
{
if(isdefined(level.bcs_location_mappings[param_00]))
{
var_02 = level.bcs_location_mappings[param_00];
var_03 = parselocationaliases(var_02);
var_04 = parselocationaliases(param_01);
foreach(var_06 in var_04)
{
foreach(var_08 in var_03)
{
if(var_06 == var_08)
{
return;
}
}
}
var_02 = var_02 + " " + param_01;
level.bcs_location_mappings[param_00] = var_02;
return;
}
level.bcs_location_mappings[var_09] = var_0A;
}
//Function Number: 5
bcs_location_trigger_mapping()
{
if(common_scripts\utility::issp())
{
generic_locations();
fusion_locations();
sanfran_locations();
sanfran_b_locations();
greece_locations();
seoul_locations();
detroit_locations();
betrayal_locations();
lab_locations();
recovery_locations();
lagos_locations();
merida();
old_locations();
return;
}
laser2_mp();
lab2_mp();
mp_refraction();
mp_prison();
mp_dam();
mp_detroit();
mp_greenband();
mp_instinct();
mp_levity();
mp_recovery();
mp_solar();
mp_terrace();
mp_torqued();
mp_venus();
mp_comeback();
old_locations_mp();
}
//Function Number: 6
generic_locations()
{
add_bcs_location_mapping("trigger_multiple_bcs_generic_doorway_generic","doorway_generic");
add_bcs_location_mapping("trigger_multiple_bcs_generic_window_generic","window_generic");
add_bcs_location_mapping("trigger_multiple_bcs_generic_1stfloor_generic","1stfloor_generic");
add_bcs_location_mapping("trigger_multiple_bcs_generic_1stfloor_doorway","1stfloor_doorway");
add_bcs_location_mapping("trigger_multiple_bcs_generic_1stfloor_window","1stfloor_window");
add_bcs_location_mapping("trigger_multiple_bcs_generic_2ndfloor_generic","2ndfloor_generic");
add_bcs_location_mapping("trigger_multiple_bcs_generic_2ndfloor_window","2ndfloor_window");
add_bcs_location_mapping("trigger_multiple_bcs_generic_rooftop","rooftop");
add_bcs_location_mapping("trigger_multiple_bcs_generic_2ndfloor_balcony","2ndfloor_balcony");
}
//Function Number: 7
fusion_locations()
{
add_bcs_location_mapping("trigger_multiple_bcs_fus_truck","fus_truck");
add_bcs_location_mapping("trigger_multiple_bcs_fus_tower","fus_tower");
add_bcs_location_mapping("trigger_multiple_bcs_fus_generator","fus_generator");
add_bcs_location_mapping("trigger_multiple_bcs_fus_mt","fus_mt");
add_bcs_location_mapping("trigger_multiple_bcs_fus_titan","fus_titan");
add_bcs_location_mapping("trigger_multiple_bcs_fus_hill","fus_hill");
add_bcs_location_mapping("trigger_multiple_bcs_fus_garage","fus_garage");
add_bcs_location_mapping("trigger_multiple_bcs_fus_crane","fus_crane");
add_bcs_location_mapping("trigger_multiple_bcs_fus_forklift","fus_forklift");
add_bcs_location_mapping("trigger_multiple_bcs_fus_pillar","fus_pillar");
add_bcs_location_mapping("trigger_multiple_bcs_fus_pipes","fus_pipes");
add_bcs_location_mapping("trigger_multiple_bcs_fus_balcony","fus_balcony");
add_bcs_location_mapping("trigger_multiple_bcs_fus_catwalk","fus_catwalk");
add_bcs_location_mapping("trigger_multiple_bcs_fus_fueltrucks","fus_fueltrucks");
add_bcs_location_mapping("trigger_multiple_bcs_fus_walkway","fus_walkway");
add_bcs_location_mapping("trigger_multiple_bcs_fus_stairs","fus_stairs");
}
//Function Number: 8
sanfran_locations()
{
add_bcs_location_mapping("trigger_multiple_bcs_sfa_bus","sfa_bus");
add_bcs_location_mapping("trigger_multiple_bcs_sfa_cardoor","sfa_cardoor");
add_bcs_location_mapping("trigger_multiple_bcs_sfa_cargovan","sfa_cargovan");
add_bcs_location_mapping("trigger_multiple_bcs_sfa_policecar","sfa_policecar");
add_bcs_location_mapping("trigger_multiple_bcs_sfa_roadsign","sfa_roadsign");
add_bcs_location_mapping("trigger_multiple_bcs_sfa_sidewalk","sfa_sidewalk");
add_bcs_location_mapping("trigger_multiple_bcs_sfa_sportscar","sfa_sportscar");
add_bcs_location_mapping("trigger_multiple_bcs_sfa_topbus","sfa_topbus");
add_bcs_location_mapping("trigger_multiple_bcs_sfa_tower","sfa_tower");
add_bcs_location_mapping("trigger_multiple_bcs_sfa_trailer","sfa_trailer");
add_bcs_location_mapping("trigger_multiple_bcs_sfa_truck","sfa_truck");
}
//Function Number: 9
sanfran_b_locations()
{
add_bcs_location_mapping("trigger_multiple_bcs_sfb_above","above");
add_bcs_location_mapping("trigger_multiple_bcs_sfb_containers","sfb_containers");
add_bcs_location_mapping("trigger_multiple_bcs_sfb_doors","doors");
add_bcs_location_mapping("trigger_multiple_bcs_sfb_helipad","helipad");
add_bcs_location_mapping("trigger_multiple_bcs_sfb_missileturret","missileturret");
add_bcs_location_mapping("trigger_multiple_bcs_sfb_table","table");
add_bcs_location_mapping("trigger_multiple_bcs_sfb_truck","sfb_truck");
add_bcs_location_mapping("trigger_multiple_bcs_sfb_vtol","vtol");
add_bcs_location_mapping("trigger_multiple_bcs_sfb_wreckage","wreckage");
add_bcs_location_mapping("trigger_multiple_bcs_sfb_cargocrane","cargocrane");
add_bcs_location_mapping("trigger_multiple_bcs_sfb_catwalk","sfb_catwalk");
add_bcs_location_mapping("trigger_multiple_bcs_sfb_console","sfb_console");
add_bcs_location_mapping("trigger_multiple_bcs_sfb_jammer","sfb_jammer");
add_bcs_location_mapping("trigger_multiple_bcs_sfb_launchpad","sfb_launchpad");
add_bcs_location_mapping("trigger_multiple_bcs_sfb_jet","sfb_jet");
}
//Function Number: 10
greece_locations()
{
add_bcs_location_mapping("trigger_multiple_bcs_grk_balcony","grk_balcony");
add_bcs_location_mapping("trigger_multiple_bcs_grk_1stfloor_window","grk_1stfloor_window");
add_bcs_location_mapping("trigger_multiple_bcs_grk_2ndfloor_window","grk_2ndfloor_window");
add_bcs_location_mapping("trigger_multiple_bcs_grk_3rdfloor_window","grk_3rdfloor_window");
add_bcs_location_mapping("trigger_multiple_bcs_grk_cafe","grk_cafe");
add_bcs_location_mapping("trigger_multiple_bcs_grk_rooftop","grk_rooftop");
add_bcs_location_mapping("trigger_multiple_bcs_grk_doorway","grk_doorway");
add_bcs_location_mapping("trigger_multiple_bcs_gre_vehic","gre_vehic");
add_bcs_location_mapping("trigger_multiple_bcs_gre_statue","gre_statue");
}
//Function Number: 11
seoul_locations()
{
add_bcs_location_mapping("trigger_multiple_bcs_seo_balcony","seo_balcony");
add_bcs_location_mapping("trigger_multiple_bcs_seo_bus","seo_bus");
add_bcs_location_mapping("trigger_multiple_bcs_seo_stairs","seo_stairs");
add_bcs_location_mapping("trigger_multiple_bcs_seo_2ndwindow","seo_2ndwindow");
add_bcs_location_mapping("trigger_multiple_bcs_seo_3rdbalcony","seo_3rdbalcony");
add_bcs_location_mapping("trigger_multiple_bcs_seo_sculpture","seo_sculpture");
add_bcs_location_mapping("trigger_multiple_bcs_seo_window","seo_window");
add_bcs_location_mapping("trigger_multiple_bcs_seo_window","seo_window");
add_bcs_location_mapping("trigger_multiple_bcs_seo_cafe","seo_cafe");
add_bcs_location_mapping("trigger_multiple_bcs_seo_counter","seo_counter");
}
//Function Number: 12
detroit_locations()
{
add_bcs_location_mapping("trigger_multiple_bcs_det_bar","det_bar");
add_bcs_location_mapping("trigger_multiple_bcs_det_balcony","det_balcony");
add_bcs_location_mapping("trigger_multiple_bcs_det_walkway","det_walkway");
add_bcs_location_mapping("trigger_multiple_bcs_det_ambulance","det_ambulance");
}
//Function Number: 13
betrayal_locations()
{
add_bcs_location_mapping("trigger_multiple_bcs_bet_plaza","bet_plaza");
add_bcs_location_mapping("trigger_multiple_bcs_bet_way","bet_way");
add_bcs_location_mapping("trigger_multiple_bcs_bet_1stfloor","bet_1stfloor");
add_bcs_location_mapping("trigger_multiple_bcs_bet_2ndfloor","bet_2ndfloor");
add_bcs_location_mapping("trigger_multiple_bcs_bet_3rdfloor","bet_3rdfloor");
add_bcs_location_mapping("trigger_multiple_bcs_bet_above","bet_above");
add_bcs_location_mapping("trigger_multiple_bcs_bet_balcony","bet_balcony");
add_bcs_location_mapping("trigger_multiple_bcs_bet_barge","bet_barge");
add_bcs_location_mapping("trigger_multiple_bcs_bet_checkpt","bet_checkpt");
add_bcs_location_mapping("trigger_multiple_bcs_bet_doorway","bet_doorway");
add_bcs_location_mapping("trigger_multiple_bcs_bet_open","bet_open");
add_bcs_location_mapping("trigger_multiple_bcs_bet_patio","bet_patio");
add_bcs_location_mapping("trigger_multiple_bcs_bet_rooftop","bet_rooftop");
add_bcs_location_mapping("trigger_multiple_bcs_bet_street","bet_street");
add_bcs_location_mapping("trigger_multiple_bcs_bet_drones","bet_drones");
add_bcs_location_mapping("trigger_multiple_bcs_bet_fountain","bet_fountain");
add_bcs_location_mapping("trigger_multiple_bcs_bet_skybridge","bet_skybridge");
add_bcs_location_mapping("trigger_multiple_bcs_bet_below","bet_below");
add_bcs_location_mapping("trigger_multiple_bcs_bet_bldng","bet_bldng");
add_bcs_location_mapping("trigger_multiple_bcs_bet_bridge","bet_bridge");
add_bcs_location_mapping("trigger_multiple_bcs_bet_deplycover","bet_deplycover");
add_bcs_location_mapping("trigger_multiple_bcs_bet_pallets","bet_pallets");
add_bcs_location_mapping("trigger_multiple_bcs_bet_catwalk","bet_catwalk");
add_bcs_location_mapping("trigger_multiple_bcs_bet_table","bet_table");
add_bcs_location_mapping("trigger_multiple_bcs_bet_crates","bet_crates");
add_bcs_location_mapping("trigger_multiple_bcs_bet_dock","bet_dock");
add_bcs_location_mapping("trigger_multiple_bcs_bet_leftshore","bet_leftshore");
add_bcs_location_mapping("trigger_multiple_bcs_bet_rightshore","bet_rightshore");
}
//Function Number: 14
lab_locations()
{
add_bcs_location_mapping("trigger_multiple_bcs_lab_canisters","lab_canisters");
add_bcs_location_mapping("trigger_multiple_bcs_lab_camera","lab_camera");
add_bcs_location_mapping("trigger_multiple_bcs_lab_van","lab_van");
add_bcs_location_mapping("trigger_multiple_bcs_lab_lwrcatwalk","lab_lwrcatwalk");
add_bcs_location_mapping("trigger_multiple_bcs_lab_uprcatwalk","lab_uprcatwalk");
add_bcs_location_mapping("trigger_multiple_bcs_lab_forklift","lab_forklift");
add_bcs_location_mapping("trigger_multiple_bcs_lab_rooftop","lab_rooftop");
}
//Function Number: 15
recovery_locations()
{
add_bcs_location_mapping("trigger_multiple_bcs_rec_firepit","rec_firepit");
add_bcs_location_mapping("trigger_multiple_bcs_rec_hill","rec_hill");
add_bcs_location_mapping("trigger_multiple_bcs_rec_pool","rec_pool");
add_bcs_location_mapping("trigger_multiple_bcs_rec_road","rec_road");
add_bcs_location_mapping("trigger_multiple_bcs_rec_patio","rec_patio");
add_bcs_location_mapping("trigger_multiple_bcs_rec_table","rec_table");
add_bcs_location_mapping("trigger_multiple_bcs_rec_couch","rec_couch");
}
//Function Number: 16
lagos_locations()
{
add_bcs_location_mapping("trigger_multiple_bcs_lag_street","lag_street");
add_bcs_location_mapping("trigger_multiple_bcs_lag_dogs","lag_dogs");
add_bcs_location_mapping("trigger_multiple_bcs_lag_median","lag_median");
add_bcs_location_mapping("trigger_multiple_bcs_lag_rpgbus","lag_rpgbus");
add_bcs_location_mapping("trigger_multiple_bcs_lag_overpass","lag_overpass");
add_bcs_location_mapping("trigger_multiple_bcs_lag_suv","lag_suv");
add_bcs_location_mapping("trigger_multiple_bcs_lag_suvapproach","lag_suvapproach");
add_bcs_location_mapping("trigger_multiple_bcs_lag_topvan","lag_topvan");
}
//Function Number: 17
merida()
{
add_bcs_location_mapping("trigger_multiple_bcs_mp_merida_radiotower","radiotower");
add_bcs_location_mapping("trigger_multiple_bcs_mp_merida_embassy_generic","embassy_generic");
add_bcs_location_mapping("trigger_multiple_bcs_mp_merida_aaguns","aaguns");
add_bcs_location_mapping("trigger_multiple_bcs_mp_merida_tunnel","tunnel");
add_bcs_location_mapping("trigger_multiple_bcs_mp_merida_cannons_generic","cannons_generic");
add_bcs_location_mapping("trigger_multiple_bcs_mp_merida_pool","pool");
add_bcs_location_mapping("trigger_multiple_bcs_mp_merida_embassy_north","embassy_north");
add_bcs_location_mapping("trigger_multiple_bcs_mp_merida_embassy_south","embassy_south");
add_bcs_location_mapping("trigger_multiple_bcs_mp_merida_embassy_east","embassy_east");
add_bcs_location_mapping("trigger_multiple_bcs_mp_merida_embassy_west","embassy_west");
add_bcs_location_mapping("trigger_multiple_bcs_mp_merida_cannons_embassy","cannons_embassy");
add_bcs_location_mapping("trigger_multiple_bcs_mp_merida_cannons_radiotower","cannons_radiotower");
}
//Function Number: 18
laser2_mp()
{
add_bcs_location_mapping("trigger_multiple_bcs_mp_lsr_radardish","lsr_radardish");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lsr_laserairdefensegun","lsr_laserairdefensegun");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lsr_razorback","lsr_razorback");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lsr_underhelipad","lsr_underhelipad");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lsr_bunkerlookout","lsr_bunkerlookout");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lsr_inradartower","lsr_inradartower");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lsr_byradartower","lsr_byradartower");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lsr_shippingcontainer","lsr_shippingcontainer");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lsr_onhelipad","lsr_onhelipad");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lsr_onbeach","lsr_onbeach");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lsr_onbeach","lsr_bybridge");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lsr_bylasergenerator","lsr_bylasergenerator");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lsr_underlaser","lsr_underlaser");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lsr_byhelipad","lsr_byhelipad");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lsr_electricalroom","lsr_electricalroom");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lsr_piperoom","lsr_piperoom");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lsr_bybuoy","lsr_bybuoy");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lsr_bygenerator","lsr_bygenerator");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lsr_offswitch","lsr_offswitch");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lsr_missilerack","lsr_missilerack");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lsr_underchains","lsr_underchains");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lsr_beachbunkerrooftop","lsr_beachbunkerrooftop");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lsr_bunkerrooftop","lsr_bunkerrooftop");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lsr_nettedcargo","lsr_nettedcargo");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lsr_cagedcargo","lsr_cagedcargo");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lsr_overturnedcar","lsr_overturnedcar");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lsr_bridgebase","lsr_bridgebase");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lsr_cornerbunker","lsr_cornerbunker");
}
//Function Number: 19
lab2_mp()
{
add_bcs_location_mapping("trigger_multiple_bcs_mp_lab_parkinglot","lab_parkinglot");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lab_serverroom","lab_serverroom");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lab_holoroom","lab_holoroom");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lab_dryingroom","lab_dryingroom");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lab_chemvats","lab_chemvats");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lab_generator","lab_generator");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lab_lobby","lab_lobby");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lab_behindcrates","lab_behindcrates");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lab_scienceroom","lab_scienceroom");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lab_storageroom","lab_storageroom");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lab_trench","lab_trench");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lab_behindvehicle","lab_behindvehicle");
}
//Function Number: 20
mp_refraction()
{
add_bcs_location_mapping("trigger_multiple_bcs_mp_ref_oncrane","ref_oncrane");
add_bcs_location_mapping("trigger_multiple_bcs_mp_ref_byloadingdocks","ref_byloadingdocks");
add_bcs_location_mapping("trigger_multiple_bcs_mp_ref_nearelevatorentrance","ref_nearelevatorentrance");
add_bcs_location_mapping("trigger_multiple_bcs_mp_ref_inelevator","ref_inelevator");
add_bcs_location_mapping("trigger_multiple_bcs_mp_ref_oncatwalks","ref_oncatwalks");
add_bcs_location_mapping("trigger_multiple_bcs_mp_ref_seccheckpoint","ref_seccheckpoint");
add_bcs_location_mapping("trigger_multiple_bcs_mp_ref_helopadentrance","ref_helopadentracne");
add_bcs_location_mapping("trigger_multiple_bcs_mp_ref_checkinstation","ref_checkinstation");
add_bcs_location_mapping("trigger_multiple_bcs_mp_ref_maintenceentrance","ref_maintenceentrance");
add_bcs_location_mapping("trigger_multiple_bcs_mp_ref_insidelounge","ref_insidelounge");
add_bcs_location_mapping("trigger_multiple_bcs_mp_ref_bylockmechanism","ref_bylockmechanism");
add_bcs_location_mapping("trigger_multiple_bcs_mp_ref_inelevatorshaft","ref_inelevatorshaft");
add_bcs_location_mapping("trigger_multiple_bcs_mp_ref_underhelipad","ref_underhelipad");
add_bcs_location_mapping("trigger_multiple_bcs_mp_ref_bylgcontainers","ref_bylgcontainers");
add_bcs_location_mapping("trigger_multiple_bcs_mp_ref_bylockers","ref_bylockers");
add_bcs_location_mapping("trigger_multiple_bcs_mp_ref_abovelockers","ref_abovelockers");
add_bcs_location_mapping("trigger_multiple_bcs_mp_ref_byadtowers","ref_byadtowers");
}
//Function Number: 21
mp_prison()
{
add_bcs_location_mapping(" trigger_multiple_bcs_mp_psn_insidecellblock","psn_insidecellblock");
add_bcs_location_mapping("trigger_multiple_bcs_mp_psn_psnfrontentrance","psn_psnfrontentrance");
add_bcs_location_mapping("trigger_multiple_bcs_mp_psn_insidemaintenancebldg","psn_insidemaintenancebldg");
add_bcs_location_mapping("trigger_multiple_bcs_mp_psn_onmaintenancebldgroof","psn_onmaintenancebldgroof");
add_bcs_location_mapping("trigger_multiple_bcs_mp_psn_prisonyard","psn_prisonyard");
add_bcs_location_mapping("trigger_multiple_bcs_mp_psn_bballcourt","psn_bballcourt");
add_bcs_location_mapping("trigger_multiple_bcs_mp_psn_psnbus","psn_psnbus");
add_bcs_location_mapping("trigger_multiple_bcs_mp_psn_sectower","psn_sectower");
add_bcs_location_mapping("trigger_multiple_bcs_mp_psn_insidegarage","psn_insidegarage");
add_bcs_location_mapping("trigger_multiple_bcs_mp_psn_topofgarage","psn_topofgarage");
add_bcs_location_mapping("trigger_multiple_bcs_mp_psn_destroyedwall","psn_destroyedwall");
add_bcs_location_mapping("trigger_multiple_bcs_mp_psn_cellblockcatwalk","psn_cellblockcatwalk");
add_bcs_location_mapping("trigger_multiple_bcs_mp_psn_lobbyentrance","psn_lobbyentrance");
add_bcs_location_mapping("trigger_multiple_bcs_mp_psn_electricalbox","psn_electricalbox");
add_bcs_location_mapping("trigger_multiple_bcs_mp_psn_policecar","psn_policecar");
add_bcs_location_mapping("trigger_multiple_bcs_mp_psn_behinddumpster","psn_behinddumpster");
add_bcs_location_mapping("trigger_multiple_bcs_mp_psn_catwalk","psn_catwalk");
add_bcs_location_mapping("trigger_multiple_bcs_mp_psn_laundrybin","psn_laundrybin");
add_bcs_location_mapping("trigger_multiple_bcs_mp_psn_psnrooftop","psn_psnrooftop");
add_bcs_location_mapping("trigger_multiple_bcs_mp_psn_behindac","psn_behindac");
add_bcs_location_mapping("trigger_multiple_bcs_mp_psn_insidelockerbldg","psn_insidelockerbldg");
}
//Function Number: 22
mp_dam()
{
add_bcs_location_mapping("trigger_multiple_bcs_mp_dam_frontgate","dam_frontgate");
add_bcs_location_mapping("trigger_multiple_bcs_mp_dam_semitruck","dam_semitruck");
add_bcs_location_mapping("trigger_multiple_bcs_mp_dam_contructionsite","dam_contructionsite");
add_bcs_location_mapping("trigger_multiple_bcs_mp_dam_insideoffice","dam_insideoffice");
add_bcs_location_mapping("trigger_multiple_bcs_mp_dam_oncatwalks","dam_oncatwalks");
add_bcs_location_mapping("trigger_multiple_bcs_mp_dam_centerstreet","dam_centerstreet");
add_bcs_location_mapping("trigger_multiple_bcs_mp_dam_onminigun","dam_onminigun");
add_bcs_location_mapping("trigger_multiple_bcs_mp_dam_cranebase","dam_cranebase");
add_bcs_location_mapping("trigger_multiple_bcs_mp_dam_infactory","dam_infactory");
add_bcs_location_mapping("trigger_multiple_bcs_mp_dam_inturbinebldg","dam_inturbinebldg");
add_bcs_location_mapping("trigger_multiple_bcs_mp_dam_movingpipe","dam_movingpipe");
add_bcs_location_mapping("trigger_multiple_bcs_mp_dam_electricalgrid","dam_electricalgrid");
add_bcs_location_mapping("trigger_multiple_bcs_dam_insidelounge","dam_insidelounge");
add_bcs_location_mapping("trigger_multiple_bcs_mp_dam_inpipes","dam_inpipes");
add_bcs_location_mapping("trigger_multiple_bcs_mp_dam_underground","dam_underground");
add_bcs_location_mapping("trigger_multiple_bcs_mp_dam_factoryrooftop","dam_factoryrooftop");
}
//Function Number: 23
mp_detroit()
{
add_bcs_location_mapping("trigger_multiple_bcs_mp_det_inschool","det_inschool");
add_bcs_location_mapping("trigger_multiple_bcs_mp_det_bylockers","det_bylockers");
add_bcs_location_mapping("trigger_multiple_bcs_mp_det_hospitalentrance","det_hospitalentrance");
add_bcs_location_mapping("trigger_multiple_bcs_mp_det_hospitallobby","det_hospitallobby");
add_bcs_location_mapping("trigger_multiple_bcs_mp_det_inparkinggarage","det_inparkinggarage");
add_bcs_location_mapping("trigger_multiple_bcs_mp_det_garageentrance","det_garageentrance");
add_bcs_location_mapping("trigger_multiple_bcs_mp_det_piperoom","det_piperoom");
add_bcs_location_mapping("trigger_multiple_bcs_mp_det_onramp","det_onramp");
add_bcs_location_mapping("trigger_multiple_bcs_mp_det_inalley","det_inalley");
add_bcs_location_mapping("trigger_multiple_bcs_mp_det_bytrailers","det_bytrailers");
add_bcs_location_mapping("trigger_multiple_bcs_mp_det_ontrailers","det_ontrailers");
add_bcs_location_mapping("trigger_multiple_bcs_mp_det_inthepod","det_inthepod");
add_bcs_location_mapping("trigger_multiple_bcs_mp_det_throughpark","det_throughpark");
add_bcs_location_mapping("trigger_multiple_bcs_mp_det_byplayground","det_byplayground");
add_bcs_location_mapping("triger_multiple_bcs_mp_det_garageoverlook","det_garageoverlook");
add_bcs_location_mapping("trigger_multiple_bcs_mp_det_backalley","det_backalley");
add_bcs_location_mapping("trigger_multiple_bcs_mp_det_parkoffice","det_parkoffice");
add_bcs_location_mapping("trigger_multiple_bcs_mp_hospitaloffice","det_hospitaloffice");
add_bcs_location_mapping("trigger_multiple_bcs_mp_det_throughstreet","det_throughstreet");
add_bcs_location_mapping("trigger_multiple_bcs_mp_det_upperstreet","det_upperstreet");
add_bcs_location_mapping("trigger_multiple_bcs_mp_det_lowerstreet","det_lowerstreet");
add_bcs_location_mapping("trigger_multiple_bcs_mp_det_bycontainers","det_bycontainers");
add_bcs_location_mapping("trigger_multiple_bcs_mp_det_bydiner","det_bydiner");
}
//Function Number: 24
mp_greenband()
{
add_bcs_location_mapping("trigger_multiple_bcs_mp_grn_2ndflooraquarium","grn_2ndflooraquarium");
add_bcs_location_mapping("trigger_multiple_bcs_mp_grn_hotelbar","grn_hotelbar");
add_bcs_location_mapping("trigger_multiple_bcs_mp_grn_incafe","grn_incafe");
add_bcs_location_mapping("trigger_multiple_bcs_mp_grn_behindcherrytree","grn_behindcherrytree");
add_bcs_location_mapping("trigger_multiple_bcs_mp_grn_aquariumhallway","grn_aquariumhallway");
add_bcs_location_mapping("trigger_multiple_bcs_mp_grn_aquariumpatio","grn_aquariumpatio");
add_bcs_location_mapping("trigger_multiple_bcs_mp_grn_inelevator","grn_inelevator");
add_bcs_location_mapping("trigger_multiple_bcs_mp_grn_behindaquariumdesk","grn_behindaquariumdesk");
add_bcs_location_mapping("trigger_multiple_bcs_mp_grn_inzengarden","grn_inzengarden");
add_bcs_location_mapping("trigger_multiple_bcs_mp_grn_topofzengarden","grn_topofzengarden");
add_bcs_location_mapping("trigger_multiple_bcs_mp_grn_hotelentrance","grn_hotelentrance");
add_bcs_location_mapping("trigger_multiple_bcs_mp_grn_hotellobby","grn_hotellobby");
add_bcs_location_mapping("trigger_multiple_bcs_mp_grn_inaquarium","grn_aquarium");
add_bcs_location_mapping("trigger_multiple_bcs_mp_grn_inlounge","grn_inlounge");
add_bcs_location_mapping("trigger_multiple_bcs_mp_grn_behindstatue","grn_behindstatue");
add_bcs_location_mapping("trigger_multiple_bcs_mp_grn_insidewalkway","grn_insidewalkway");
add_bcs_location_mapping("trigger_multiple_bcs_mp_grn_underawning","grn_underawning");
add_bcs_location_mapping("trigger_multiple_bcs_mp_grn_topofawning","grn_topofawning");
add_bcs_location_mapping("trigger_multiple_bcs_mp_grn_behindlargerock","grn_behindlargerock");
add_bcs_location_mapping("trigger_multiple_bcs_mp_grn_nearsculpture","grn_nearsculpture");
add_bcs_location_mapping("trigger_multiple_bcs_mp_grn_behindsmallplanter","grn_behindsmallplanter");
}
//Function Number: 25
mp_instinct()
{
add_bcs_location_mapping("trigger_multiple_bcs_mp_ins_byriverbed","ins_byriverbed");
add_bcs_location_mapping("trigger_multiple_bcs_mp_ins_underexcavator","ins_underexcavator");
add_bcs_location_mapping("trigger_multiple_bcs_mp_ins_oncliffs","ins_oncliffs");
add_bcs_location_mapping("trigger_multiple_bcs_mp_ins_centertemple","ins_centertemple");
add_bcs_location_mapping("trigger_multiple_bcs_mp_ins_towerofruins","ins_towerofruins");
add_bcs_location_mapping("triger_multiple_bcs_mp_ins_nearpryramidhall","ins_nearpryramidhall");
add_bcs_location_mapping("trigger_multiple_bcs_mp_ins_insidepryramid","ins_insidepryramid");
add_bcs_location_mapping("trigger_multiple_bcs_mp_ins_behindtrailers","ins_behindtrailers");
add_bcs_location_mapping("trigger_multiple_bcs_mp_ins_powergenerators","ins_powergenerators");
add_bcs_location_mapping("trigger_multiple_bcs_mp_ins_onrubble","ins_onrubble");
}
//Function Number: 26
mp_levity()
{
add_bcs_location_mapping("trigger_multiple_bcs_mp_lev_secgates","lev_secgates");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lev_controlroom","lev_controlroom");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lev_accessroofs","lev_accessroofs");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lev_mainhangar","lev_mainhangar");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lev_dronestorage","lev_dronestorage");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lev_inflightcontrol","lev_flightcontrol");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lev_flightcontrolroof","lev_flightcontrolroof");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lev_flightcontrolalley","lev_flightcontrolalley");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lev_observationdeck","lev_observationdeck");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lev_serveraccessroof","lev_serveraccessroof");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lev_hangarlounge","lev_hangarlounge");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lev_powercontrol","lev_powercontrol");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lev_readyrooms","lev_readyrooms");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lev_rearhangar","lev_rearhangar");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lev_serveraccess","lev_serveraccess");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lev_nearwaterfall","lev_nearwaterfall");
add_bcs_location_mapping("trigger_multiple_bcs_mp_lev_nearrockslide","lev_nearrockslide");
}
//Function Number: 27
mp_recovery()
{
add_bcs_location_mapping("trigger_multiple_bcs_mp_rec_inobservatory","rec_inobservatory");
add_bcs_location_mapping("trigger_multiple_bcs_mp_rec_bytram","rec_bytram");
add_bcs_location_mapping("trigger_multiple_bcs_mp_rec_byskywalk","rec_byskywalk");
add_bcs_location_mapping("trigger_multiple_bcs_mp_rec_inravine","rec_inravine");
add_bcs_location_mapping("trigger_multiple_bcs_mp_rec_insiderockhall","rec_insiderockhall");
add_bcs_location_mapping("trigger_multiple_bcs_mp_rec_byhangardoor","rec_byhangardoor");
add_bcs_location_mapping("trigger_multiple_bcs_mp_rec_inplaza","rec_inplaza");
add_bcs_location_mapping("trigger_multiple_bcs_mp_rec_bychopper","rec_bychopper");
add_bcs_location_mapping("trigger_multiple_bcs_mp_rec_onlaunchdeck","rec_onlaunchdeck");
add_bcs_location_mapping("trigger_multiple_bcs_mp_rec_nearridge","rec_nearridge");
add_bcs_location_mapping("trigger_multiple_bcs_mp_rec_undercontroltower","rec_undercontroltower");
add_bcs_location_mapping("trigger_multiple_bcs_mp_rec_gatecontrolroom","rec_gatecontrolroom");
add_bcs_location_mapping("trigger_multiple_bcs_mp_rec_underdeck","rec_underdeck");
add_bcs_location_mapping("trigger_multiple_bcs_mp_rec_observationdeck","rec_observationdeck");
add_bcs_location_mapping("trigger_multiple_bcs_mp_rec_byrustedvan","rec_byrustedvan");
}
//Function Number: 28
mp_solar()
{
add_bcs_location_mapping("trigger_multiple_bcs_mp_slr_inparkinglot","slr_inparkinglot");
add_bcs_location_mapping("trigger_multiple_bcs_mp_slr_bymainentry","slr_bymainentry");
add_bcs_location_mapping("trigger_multiple_bcs_mp_slr_atpool","slr_atpool");
add_bcs_location_mapping("trigger_multiple_bcs_mp_slr_indraintunnel","slr_indraintunnel");
add_bcs_location_mapping("trigger_multiple_bcs_mp_slr_inoffice","slr_inoffice");
add_bcs_location_mapping("trigger_multiple_bcs_mp_slr_bysmalltanks","slr_bysmalltanks");
add_bcs_location_mapping("trigger_multiple_bcs_mp_slr_intowercontrolroom","slr_intowercontrolroom");
add_bcs_location_mapping("trigger_multiple_bcs_mp_slr_bytransformers","slr_bytransformers");
add_bcs_location_mapping("trigger_multiple_bcs_mp_slr_condensercontrolroom","slr_condensercontrolroom");
add_bcs_location_mapping("trigger_multiple_bcs_mp_slr_inbacklot","slr_inbacklot");
add_bcs_location_mapping("trigger_multiple_bcs_mp_slr_bycyclonetank","slr_bycyclonetank");
add_bcs_location_mapping("trigger_multiple_bcs_mp_slr_indrainarea","slr_indrainarea");
add_bcs_location_mapping("trigger_multiple_bcs_mp_slr_indriveway","slr_indriveway");
add_bcs_location_mapping("trigger_multiple_bcs_mp_slr_visitorcenter","slr_visitorcenter");
add_bcs_location_mapping("trigger_multiple_bcs_mp_slr_inpumproom","slr_inpumproom");
add_bcs_location_mapping("trigger_multiple_bcs_mp_slr_sciencearea","slr_sciencearea");
add_bcs_location_mapping("trigger_multiple_bcs_mp_slr_ingarage","slr_ingarage");
add_bcs_location_mapping("trigger_multiple_bcs_mp_slr_oncatwalks","slr_oncatwalks");
add_bcs_location_mapping("trigger_multiple_bcs_mp_slr_bycondensers","slr_bycondensers");
add_bcs_location_mapping("trigger_multiple_bcs_mp_slr_inutilityroom","slr_inutilityroom");
add_bcs_location_mapping("trigger_multiple_bcs_mp_slr_onutilityroof","slr_onutilityroof");
}
//Function Number: 29
mp_terrace()
{
add_bcs_location_mapping("trigger_multiple_bcs_mp_trc_hotellobby","trc_hotellobby");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trc_atgrotto","trc_atgrotto");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trc_insaunatunnel","trc_insaunatunnel");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trc_saunaentrance","trc_saunaentrance");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trc_inlowerruins","trc_inlowerruins");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trc_inupperruins","trc_inupperruins");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trc_onupperterrace","trc_onupperterrace");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trc_incafe","trc_incafe");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trc_undertower","trc_undertower");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trc_nightclubentrance","trc_nightclubentrance");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trc_yellowroom","trc_yellowroom");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trc_redroom","trc_redroom");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trc_lowerterrace","trc_lowerterrace");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trc_atbonfire","trc_atbonfire");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trc_poseidonspool","trc_poseidonspool");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trc_saunaroof","trc_saunaroof");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trc_inshowers","trc_inshowers");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trc_topofminervamall","trc_topofminervamall");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trc_sixbellspatio","trc_sixbellspatio");
}
//Function Number: 30
mp_torqued()
{
add_bcs_location_mapping("trigger_multiple_bcs_mp_trq_nearbusstop","trq_nearbusstop");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trq_incafe","trq_incafe");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trq_chocolateshop","trq_chocolateshop");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trq_baseofclocktower","trq_baseofclocktower");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trq_inclocktower","trq_inclocktower");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trq_nearfountain","trq_nearfountain");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trq_outdoorcafe","trq_outdoorcafe");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trq_parkinglot","trq_parkinglot");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trq_gatedpatio","trq_gatedpatio");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trq_nearrestaurant","trq_nearrestaurant");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trq_insemi","trq_insemi");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trq_nearsnackbar","trq_nearsnackbar");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trq_insideticketcounter","trq_insideticketcounter");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trq_frontoftrain","trq_frontoftrain");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trq_backoftrain","trq_backoftrain");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trq_utilitywalkway","trq_utilitywalkway");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trq_onskywalk","trq_onskywalk");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trq_topofawning","trq_topofawning");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trq_behindbearstatue","trq_behindbearstatue");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trq_behindcar","trq_behindcar");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trq_incoffeeshop","trq_incoffeeshop");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trq_inconstructionblgd","trq_inconstructionblgd");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trq_inelevator","trq_inelevator");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trq_onroof","trq_onroof");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trq_behindsecuritytruck","trq_behindsecuritytruck");
add_bcs_location_mapping("trigger_multiple_bcs_mp_trq_aboveticketcounter","trq_aboveticketcounter");
}
//Function Number: 31
mp_venus()
{
add_bcs_location_mapping("trigger_multiple_bcs_mp_vns_inpool","vns_inpool");
add_bcs_location_mapping("trigger_multiple_bcs_mp_vns_bypool","vns_bypool");
add_bcs_location_mapping("trigger_multiple_bcs_mp_vns_inlounge","vns_inlounge");
add_bcs_location_mapping("trigger_multiple_bcs_mp_vns_inlobby","vns_inlobby");
add_bcs_location_mapping("trigger_multiple_bcs_mp_vns_onbalcony","vns_onbalcony");
add_bcs_location_mapping("trigger_multiple_bcs_mp_vns_byhelipad","vns_byhelipad");
add_bcs_location_mapping("trigger_multiple_bcs_mp_vns_onfountain","vns_onfountain");
add_bcs_location_mapping("trigger_multiple_bcs_mp_vns_byfountain","vns_byfountain");
add_bcs_location_mapping("trigger_multiple_bcs_mp_vns_onpoolshade","vns_onpoolshade");
add_bcs_location_mapping("trigger_multiple_bcs_mp_vns_inzengarden","vns_inzengarden");
add_bcs_location_mapping("trigger_multiple_bcs_mp_vns_inbar","vns_inbar");
add_bcs_location_mapping("trigger_multiple_bcs_mp_vns_bybar","vns_bybar");
add_bcs_location_mapping("trigger_multiple_bcs_mp_vns_onwoodendeck","vns_onwoodendeck");
add_bcs_location_mapping("trigger_multiple_bcs_mp_vns_inobservationlounge","vns_inobservationlounge");
add_bcs_location_mapping("trigger_multiple_bcs_mp_vns_bywaterfall","vns_bywaterfall");
add_bcs_location_mapping("trigger_multiple_bcs_mp_vns_incentercourtyard","vns_incentercourtyard");
add_bcs_location_mapping("trigger_multiple_bcs_mp_vns_onpatio","vns_onpatio");
add_bcs_location_mapping("trigger_multiple_bcs_mp_vns_byfallentree","vns_byfallentree");
add_bcs_location_mapping("trigger_multiple_bcs_mp_vns_inbansaigarden","vns_inbansaigarden");
add_bcs_location_mapping("trigger_multiple_bcs_mp_vns_bypenthouse","vns_bypenthouse");
add_bcs_location_mapping("trigger_multiple_bcs_mp_vns_byhorsestatue","vns_byhorsestatue");
add_bcs_location_mapping("trigger_multiple_bcs_mp_vns_bysoliderstatue","vns_bysoliderstatue");
add_bcs_location_mapping("trigger_multiple_bcs_mp_vns_onhallwayrooftop","vns_onhallwayrooftop");
add_bcs_location_mapping("trigger_multiple_bcs_mp_vns_onbalconystaircase","vns_onbalconystaircase");
add_bcs_location_mapping("trigger_multiple_bcs_mp_vns_onoutsidebalconystaircase","vns_onoutsidebalconystaircase");
add_bcs_location_mapping("trigger_multiple_bcs_mp_vns_onobservationdeck","vns_onobservationdeck");
add_bcs_location_mapping("trigger_multiple_bcs_mp_vns_onobservationrooftop","vns_onobservationrooftop");
add_bcs_location_mapping("trigger_multiple_bcs_mp_vns_underwaterfall","vns_underwaterfall");
add_bcs_location_mapping("trigger_multiple_bcs_mp_vns_insaunalobby","vns_insaunalobby");
add_bcs_location_mapping("trigger_multiple_bcs_mp_vns_underkeyholearchway","vns_underkeyholearchway");
add_bcs_location_mapping("trigger_multiple_bcs_mp_vns_onoverhang","vns_onoverhang");
add_bcs_location_mapping("trigger_multiple_bcs_mp_vns_bylanterns","vns_bylanterns");
add_bcs_location_mapping("trigger_multiple_bcs_mp_vns_onpenthouseroof","vns_onpenthouseroof");
}
//Function Number: 32
mp_comeback()
{
add_bcs_location_mapping("trigger_multiple_bcs_mp_cbk_rearentrancenetcafe","cbk_rearentrancenetcafe");
add_bcs_location_mapping("trigger_multiple_bcs_mp_cbk_netcafe","cbk_netcafe");
add_bcs_location_mapping("trigger_multiple_bcs_mp_cbk_videostore","cbk_videostore");
add_bcs_location_mapping("trigger_multiple_bcs_mp_cbk_videostoreroof","cbk_videostoreroof");
add_bcs_location_mapping("trigger_multiple_bcs_mp_cbk_byshanty","cbk_byshanty");
add_bcs_location_mapping("trigger_multiple_bcs_mp_cbk_powerstationroof","cbk_powerstationroof");
add_bcs_location_mapping("trigger_multiple_bcs_mp_cbk_centercoil","cbk_centercoil");
add_bcs_location_mapping("trigger_multiple_bcs_mp_cbk_glassoffices","cbk_glassoffices");
add_bcs_location_mapping("trigger_multiple_bcs_mp_cbk_grassybalcony","cbk_grassybalcony");
add_bcs_location_mapping("trigger_multiple_bcs_mp_cbk_fabricsshop","cbk_fabricsshop");
add_bcs_location_mapping("trigger_multiple_bcs_mp_cbk_fabricsshoproof","cbk_fabricsshoproof");
add_bcs_location_mapping("trigger_multiple_bcs_mp_cbk_westcourtyard","cbk_westcourtyard");
add_bcs_location_mapping("trigger_multiple_bcs_mp_cbk_nearskywalk","cbk_nearskywalk");
add_bcs_location_mapping("trigger_multiple_bcs_mp_cbk_baseofapttower","cbk_baseofapttower");
add_bcs_location_mapping("trigger_multiple_bcs_mp_cbk_northcourtyard","cbk_northcourtyard");
add_bcs_location_mapping("trigger_multiple_bcs_mp_cbk_atopensewer","cbk_atopensewer");
add_bcs_location_mapping("trigger_multiple_bcs_mp_cbk_eastcourtyard","cbk_eastcourtyard");
add_bcs_location_mapping("trigger_multiple_bcs_mp_cbk_nearmarket","cbk_nearmarket");
add_bcs_location_mapping("trigger_multiple_bcs_mp_cbk_oneonezero","cbk_oneonezero");
add_bcs_location_mapping("trigger_multiple_bcs_mp_cbk_southcourtyard","cbk_southcourtyard");
add_bcs_location_mapping("trigger_multiple_bcs_mp_cbk_southerncourtyard","cbk_southerncourtyard");
add_bcs_location_mapping("trigger_multiple_bcs_mp_cbk_outsideofficebldg","cbk_outsideofficebldg");
}
//Function Number: 33
old_locations()
{
add_bcs_location_mapping("trigger_multiple_bcs_ns_acrosschasm","acrosschasm");
add_bcs_location_mapping("trigger_multiple_bcs_ns_amcrt_stck","amcrt_stck");
add_bcs_location_mapping("trigger_multiple_bcs_ns_barr_conc","barr_conc");
add_bcs_location_mapping("trigger_multiple_bcs_ns_brls","brls");
add_bcs_location_mapping("trigger_multiple_bcs_ns_catwlk","catwlk");
add_bcs_location_mapping("trigger_multiple_bcs_ns_cell_l","cell_l");
add_bcs_location_mapping("trigger_multiple_bcs_ns_cell_r","cell_r");
add_bcs_location_mapping("trigger_multiple_bcs_ns_celldr_endhl","celldr_endhl");
add_bcs_location_mapping("trigger_multiple_bcs_ns_corrgatedmtl","corrgatedmtl");
add_bcs_location_mapping("trigger_multiple_bcs_ns_cot","cot");
add_bcs_location_mapping("trigger_multiple_bcs_ns_crt_stck","crt_stck");
add_bcs_location_mapping("trigger_multiple_bcs_ns_crtstk_nrldge","crtstk_nrldge");
add_bcs_location_mapping("trigger_multiple_bcs_ns_cv_cent","cv_cent");
add_bcs_location_mapping("trigger_multiple_bcs_ns_cv_cent_concsup","cv_cent_concsup");
add_bcs_location_mapping("trigger_multiple_bcs_ns_cv_cent_tv","cv_cent_tv");
add_bcs_location_mapping("trigger_multiple_bcs_ns_cv_small_l","cv_small_l");
add_bcs_location_mapping("trigger_multiple_bcs_ns_cv_wall_inside","cv_wall_inside");
add_bcs_location_mapping("trigger_multiple_bcs_ns_cv_wall_outside","cv_wall_outside");
add_bcs_location_mapping("trigger_multiple_bcs_ns_dpstr","dpstr");
add_bcs_location_mapping("trigger_multiple_bcs_ns_drvwy","drvwy");
add_bcs_location_mapping("trigger_multiple_bcs_ns_dsk_lg","dsk_lg");
add_bcs_location_mapping("trigger_multiple_bcs_ns_dsk_stck","dsk_stck");
add_bcs_location_mapping("trigger_multiple_bcs_ns_fuelcont","fuelcont");
add_bcs_location_mapping("trigger_multiple_bcs_ns_fuelconts","fuelconts");
add_bcs_location_mapping("trigger_multiple_bcs_ns_gbgcns","gbgcns");
add_bcs_location_mapping("trigger_multiple_bcs_ns_hdghog","hdghog");
add_bcs_location_mapping("trigger_multiple_bcs_ns_hesco_nrledge","hesco_nrledge");
add_bcs_location_mapping("trigger_multiple_bcs_ns_hescobarr","hescobarr");
add_bcs_location_mapping("trigger_multiple_bcs_ns_icemach","icemach");
add_bcs_location_mapping("trigger_multiple_bcs_ns_intsec_3w","intsec_3w");
add_bcs_location_mapping("trigger_multiple_bcs_ns_lckr_cntr","lckr_cntr");
add_bcs_location_mapping("trigger_multiple_bcs_ns_lckr_l","lckr_l");
add_bcs_location_mapping("trigger_multiple_bcs_ns_lckr_ne","lckr_ne");
add_bcs_location_mapping("trigger_multiple_bcs_ns_lckr_r","lckr_r");
add_bcs_location_mapping("trigger_multiple_bcs_ns_lckr_sw","lckr_sw");
add_bcs_location_mapping("trigger_multiple_bcs_ns_lowwall_bwire","lowwall_bwire");
add_bcs_location_mapping("trigger_multiple_bcs_ns_newsbox","newsbox");
add_bcs_location_mapping("trigger_multiple_bcs_ns_phnbth","phnbth");
add_bcs_location_mapping("trigger_multiple_bcs_ns_pipes_behind","pipes_behind");
add_bcs_location_mapping("trigger_multiple_bcs_ns_pipes_nside","pipes_nside");
add_bcs_location_mapping("trigger_multiple_bcs_ns_rappel_left","rappel_left");
add_bcs_location_mapping("trigger_multiple_bcs_ns_samlnchr","samlnchr");
add_bcs_location_mapping("trigger_multiple_bcs_ns_sentrygun","sentrygun");
add_bcs_location_mapping("trigger_multiple_bcs_ns_shwr_cntr","shwr_cntr");
add_bcs_location_mapping("trigger_multiple_bcs_ns_shwr_ne","shwr_ne");
add_bcs_location_mapping("trigger_multiple_bcs_ns_shwr_sw","shwr_sw");
add_bcs_location_mapping("trigger_multiple_bcs_ns_sndbgs","sndbgs");
add_bcs_location_mapping("trigger_multiple_bcs_ns_stairs_down","stairs_down");
add_bcs_location_mapping("trigger_multiple_bcs_ns_stairs_up","stairs_up");
add_bcs_location_mapping("trigger_multiple_bcs_ns_stairs_ylw","stairs_ylw");
add_bcs_location_mapping("trigger_multiple_bcs_ns_tun_leadoutside","tun_leadoutside");
add_bcs_location_mapping("trigger_multiple_bcs_ns_vendmach","vendmach");
add_bcs_location_mapping("trigger_multiple_bcs_ns_wirespl_lg","wirespl_lg");
add_bcs_location_mapping("trigger_multiple_bcs_ns_wlkwy_abv_archs","wlkwy_abv_archs");
add_bcs_location_mapping("trigger_multiple_bcs_df_monument_courtyard","monument_courtyard");
add_bcs_location_mapping("trigger_multiple_bcs_df_monument_top","monument_top");
add_bcs_location_mapping("trigger_multiple_bcs_df_car_parked","car_parked");
add_bcs_location_mapping("trigger_multiple_bcs_df_embassy","embassy");
add_bcs_location_mapping("trigger_multiple_bcs_df_embassy_1st","embassy_1st");
add_bcs_location_mapping("trigger_multiple_bcs_df_embassy_3rd","embassy_3rd");
add_bcs_location_mapping("trigger_multiple_bcs_df_vehicle_snowcat","vehicle_snowcat");
add_bcs_location_mapping("trigger_multiple_bcs_df_vehicle_dumptruck","vehicle_dumptruck");
add_bcs_location_mapping("trigger_multiple_bcs_df_building_red","building_red");
add_bcs_location_mapping("trigger_multiple_bcs_df_vehicle_snowmobile","vehicle_snowmobile");
add_bcs_location_mapping("trigger_multiple_bcs_df_scaffolding_generic","scaffolding_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_container_red","container_red");
add_bcs_location_mapping("trigger_multiple_bcs_df_tires_large","tires_large");
add_bcs_location_mapping("trigger_multiple_bcs_df_memorial_building","memorial_building");
add_bcs_location_mapping("trigger_multiple_bcs_df_stand_hotdog","stand_hotdog");
add_bcs_location_mapping("trigger_multiple_bcs_df_stand_trading","stand_trading");
add_bcs_location_mapping("trigger_multiple_bcs_df_subway_entrance","subway_entrance");
add_bcs_location_mapping("trigger_multiple_bcs_df_rubble_generic","rubble_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_cases_right","cases_right");
add_bcs_location_mapping("trigger_multiple_bcs_df_cases_left","cases_left");
add_bcs_location_mapping("trigger_multiple_bcs_df_cases_generic","cases_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_barrier_orange","barrier_orange");
add_bcs_location_mapping("trigger_multiple_bcs_df_barrier_hesco","barrier_hesco");
add_bcs_location_mapping("trigger_multiple_bcs_df_stryker_destroyed","stryker_destroyed");
add_bcs_location_mapping("trigger_multiple_bcs_df_fan_exhaust","fan_exhaust");
add_bcs_location_mapping("trigger_multiple_bcs_df_tower_jamming","tower_jamming");
add_bcs_location_mapping("trigger_multiple_bcs_df_ac_generic","ac_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_table_computer","table_computer");
add_bcs_location_mapping("trigger_multiple_bcs_df_bulkhead_generic","bulkhead_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_bunk_generic","bunk_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_console_generic","console_generic");
add_bcs_location_mapping("trigger_multiple_bcs_df_deck_generic","deck_generic");
}
//Function Number: 34
old_locations_mp()
{
add_bcs_location_mapping("trigger_multiple_bcs_mp_dome_bunker","bunker");
add_bcs_location_mapping("trigger_multiple_bcs_mp_dome_bunker_back","bunker_back");
add_bcs_location_mapping("trigger_multiple_bcs_mp_dome_office","office");
add_bcs_location_mapping("trigger_multiple_bcs_mp_dome_dome","dome");
add_bcs_location_mapping("trigger_multiple_bcs_mp_dome_catwalk","catwalk");
add_bcs_location_mapping("trigger_multiple_bcs_mp_dome_loadingbay","loadingbay");
add_bcs_location_mapping("trigger_multiple_bcs_mp_dome_hallway","hallway");
add_bcs_location_mapping("trigger_multiple_bcs_mp_dome_hallway_loadingbay","hallway_loadingbay");
add_bcs_location_mapping("trigger_multiple_bcs_mp_dome_hallway_office","hallway_office");
add_bcs_location_mapping("trigger_multiple_bcs_mp_dome_wall_broken","wall_broken");
add_bcs_location_mapping("trigger_multiple_bcs_mp_dome_tank","tank");
add_bcs_location_mapping("trigger_multiple_bcs_mp_dome_radar","radar");
add_bcs_location_mapping("trigger_multiple_bcs_mp_dome_humvee","humvee");
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,977 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: common_scripts/_createfxmenu.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 40
* Decompile Time: 600 ms
* Timestamp: 10/27/2023 1:47:06 AM
*******************************************************************/
//Function Number: 1
init_menu()
{
level._createfx.options = [];
addoption("vector","origin","Origin",(0,0,0),"fx",1);
addoption("vector","angles","Angles",(0,0,0),"fx",1);
addoption("string","fxid","FX id","nil","fx");
addoption("float","delay","Repeat rate/start delay",0.5,"fx");
addoption("string","flag","Flag","nil","exploder");
addoption("string","platform","Platform","all","all");
if(!level.mp_createfx)
{
addoption("string","firefx","2nd FX id","nil","exploder");
addoption("float","firefxdelay","2nd FX id repeat rate",0.5,"exploder");
addoption("float","firefxtimeout","2nd FX timeout",5,"exploder");
addoption("string","firefxsound","2nd FX soundalias","nil","exploder");
addoption("float","damage","Radius damage",150,"exploder");
addoption("float","damage_radius","Radius of radius damage",250,"exploder");
addoption("string","earthquake","Earthquake","nil","exploder");
addoption("string","ender","Level notify for ending 2nd FX","nil","exploder");
}
addoption("float","delay_min","Minimimum time between repeats",1,"soundfx_interval");
addoption("float","delay_max","Maximum time between repeats",2,"soundfx_interval");
addoption("int","repeat","Number of times to repeat",5,"exploder");
addoption("string","exploder","Exploder","1","exploder");
setup_help_keys();
addoption("string","soundalias","Soundalias","nil","all");
addoption("string","loopsound","Loopsound","nil","exploder");
addoption("int","reactive_radius","Reactive Radius",100,"reactive_fx",undefined,::input_reactive_radius);
addoption("string","ambiencename","Ambience Name","nil","soundfx_dynamic");
addoption("int","dynamic_distance","Dynamic Max Distance",1000,"soundfx_dynamic");
if(!level.mp_createfx)
{
addoption("string","rumble","Rumble","nil","exploder");
addoption("int","stoppable","Can be stopped from script","1","all");
}
level.effect_list_offset = 0;
level.effect_list_offset_max = 10;
level.effect_list_current_size = 0;
level.help_list_offset = 0;
level.help_list_offset_max = 20;
level.createfx_help_active = 0;
level.createfx_menu_list_active = 0;
level.createfxmasks = [];
level.createfxmasks["all"] = [];
level.createfxmasks["all"]["exploder"] = 1;
level.createfxmasks["all"]["oneshotfx"] = 1;
level.createfxmasks["all"]["loopfx"] = 1;
level.createfxmasks["all"]["soundfx"] = 1;
level.createfxmasks["all"]["soundfx_interval"] = 1;
level.createfxmasks["all"]["reactive_fx"] = 1;
level.createfxmasks["all"]["soundfx_dynamic"] = 1;
level.createfxmasks["fx"] = [];
level.createfxmasks["fx"]["exploder"] = 1;
level.createfxmasks["fx"]["oneshotfx"] = 1;
level.createfxmasks["fx"]["loopfx"] = 1;
level.createfxmasks["exploder"] = [];
level.createfxmasks["exploder"]["exploder"] = 1;
level.createfxmasks["loopfx"] = [];
level.createfxmasks["loopfx"]["loopfx"] = 1;
level.createfxmasks["oneshotfx"] = [];
level.createfxmasks["oneshotfx"]["oneshotfx"] = 1;
level.createfxmasks["soundfx"] = [];
level.createfxmasks["soundfx"]["soundalias"] = 1;
level.createfxmasks["soundfx_interval"] = [];
level.createfxmasks["soundfx_interval"]["soundfx_interval"] = 1;
level.createfxmasks["reactive_fx"] = [];
level.createfxmasks["reactive_fx"]["reactive_fx"] = 1;
level.createfxmasks["soundfx_dynamic"] = [];
level.createfxmasks["soundfx_dynamic"]["soundfx_dynamic"] = 1;
var_00 = [];
var_00["creation"] = ::menu_create_select;
var_00["create_oneshot"] = ::menu_create;
var_00["create_loopfx"] = ::menu_create;
var_00["change_fxid"] = ::menu_create;
var_00["none"] = ::menu_none;
var_00["add_options"] = ::menu_add_options;
var_00["select_by_name"] = ::menu_select_by_name;
level._createfx.menus = var_00;
}
//Function Number: 2
menu(param_00)
{
return level.create_fx_menu == param_00;
}
//Function Number: 3
setmenu(param_00)
{
level.create_fx_menu = param_00;
}
//Function Number: 4
create_fx_menu()
{
if(common_scripts\_createfx::button_is_clicked("escape","x"))
{
_exit_menu();
return;
}
if(isdefined(level._createfx.menus[level.create_fx_menu]))
{
[[ level._createfx.menus[level.create_fx_menu] ]]();
}
}
//Function Number: 5
menu_create_select()
{
if(common_scripts\_createfx::button_is_clicked("1"))
{
setmenu("create_oneshot");
draw_effects_list();
return;
}
if(common_scripts\_createfx::button_is_clicked("2"))
{
setmenu("create_loopfx");
draw_effects_list();
return;
}
if(common_scripts\_createfx::button_is_clicked("3"))
{
setmenu("create_loopsound");
var_00 = common_scripts\_createfx::createloopsound();
finish_creating_entity(var_00);
return;
}
if(common_scripts\_createfx::button_is_clicked("4"))
{
setmenu("create_exploder");
var_00 = common_scripts\_createfx::createnewexploder();
finish_creating_entity(var_00);
return;
}
if(common_scripts\_createfx::button_is_clicked("5"))
{
setmenu("create_interval_sound");
var_00 = common_scripts\_createfx::createintervalsound();
finish_creating_entity(var_00);
return;
}
if(common_scripts\_createfx::button_is_clicked("6"))
{
var_00 = common_scripts\_createfx::createreactiveent();
finish_creating_entity(var_00);
return;
}
if(common_scripts\_createfx::button_is_clicked("7"))
{
var_00 = common_scripts\_createfx::createdynamicambience();
finish_creating_entity(var_00);
return;
}
}
//Function Number: 6
menu_create()
{
level.createfx_menu_list_active = 1;
if(next_button())
{
increment_list_offset();
draw_effects_list();
}
else if(previous_button())
{
decrement_list_offset();
draw_effects_list();
}
menu_fx_creation();
}
//Function Number: 7
menu_none()
{
if(common_scripts\_createfx::button_is_clicked("m"))
{
increment_list_offset();
}
menu_change_selected_fx();
if(entities_are_selected())
{
var_00 = get_last_selected_ent();
if(!isdefined(level.last_displayed_ent) || var_00 != level.last_displayed_ent || level._createfx.justconvertedoneshot == 1)
{
display_fx_info(var_00);
level.last_displayed_ent = var_00;
level._createfx.justconvertedoneshot = 0;
}
if(common_scripts\_createfx::button_is_clicked("a"))
{
common_scripts\_createfx::clear_settable_fx();
setmenu("add_options");
return;
}
return;
}
level.last_displayed_ent = undefined;
}
//Function Number: 8
menu_add_options()
{
if(!entities_are_selected())
{
common_scripts\_createfx::clear_fx_hudelements();
setmenu("none");
return;
}
display_fx_add_options(get_last_selected_ent());
if(next_button())
{
increment_list_offset();
}
}
//Function Number: 9
menu_select_by_name()
{
if(next_button())
{
increment_list_offset();
draw_effects_list("Select by name");
}
else if(previous_button())
{
decrement_list_offset();
draw_effects_list("Select by name");
}
select_by_name();
}
//Function Number: 10
next_button()
{
return common_scripts\_createfx::button_is_clicked("rightarrow");
}
//Function Number: 11
previous_button()
{
return common_scripts\_createfx::button_is_clicked("leftarrow");
}
//Function Number: 12
_exit_menu()
{
common_scripts\_createfx::clear_fx_hudelements();
common_scripts\_createfx::clear_entity_selection();
common_scripts\_createfx::update_selected_entities();
setmenu("none");
}
//Function Number: 13
menu_fx_creation()
{
var_00 = 0;
var_01 = undefined;
var_02 = common_scripts\_createfx::func_get_level_fx();
for(var_03 = level.effect_list_offset;var_03 < var_02.size;var_03++)
{
var_00 = var_00 + 1;
var_04 = var_00;
if(var_04 == 10)
{
var_04 = 0;
}
if(common_scripts\_createfx::button_is_clicked(var_04 + ""))
{
var_01 = var_02[var_03];
break;
}
if(var_00 > level.effect_list_offset_max)
{
break;
}
}
if(!isdefined(var_01))
{
return;
}
if(menu("change_fxid"))
{
apply_option_to_selected_fx(get_option("fxid"),var_01);
level.effect_list_offset = 0;
common_scripts\_createfx::clear_fx_hudelements();
setmenu("none");
level.createfx_menu_list_active = 0;
level.createfx_last_movement_timer = 0;
return;
}
var_05 = undefined;
if(menu("create_loopfx"))
{
var_05 = common_scripts\utility::createloopeffect(var_01);
}
if(menu("create_oneshot"))
{
var_05 = common_scripts\utility::createoneshoteffect(var_01);
}
finish_creating_entity(var_05);
}
//Function Number: 14
finish_creating_entity(param_00)
{
param_00.v["angles"] = vectortoangles(param_00.v["origin"] + (0,0,100) - param_00.v["origin"]);
param_00 common_scripts\_createfx::post_entity_creation_function();
common_scripts\_createfx::clear_entity_selection();
common_scripts\_createfx::select_last_entity();
common_scripts\_createfx::move_selection_to_cursor();
common_scripts\_createfx::update_selected_entities();
setmenu("none");
level.createfx_menu_list_active = 0;
}
//Function Number: 15
entities_are_selected()
{
return level._createfx.selected_fx_ents.size > 0;
}
//Function Number: 16
menu_change_selected_fx()
{
if(!level._createfx.selected_fx_ents.size)
{
return;
}
var_00 = 0;
var_01 = 0;
var_02 = get_last_selected_ent();
for(var_03 = 0;var_03 < level._createfx.options.size;var_03++)
{
var_04 = level._createfx.options[var_03];
if(!isdefined(var_02.v[var_04["name"]]))
{
continue;
}
var_00++;
if(var_00 < level.effect_list_offset)
{
continue;
}
var_01++;
var_05 = var_01;
if(var_05 == 10)
{
var_05 = 0;
}
if(common_scripts\_createfx::button_is_clicked(var_05 + ""))
{
prepare_option_for_change(var_04,var_01);
break;
}
if(var_01 > level.effect_list_offset_max)
{
var_06 = 1;
break;
}
}
}
//Function Number: 17
prepare_option_for_change(param_00,param_01)
{
if(param_00["name"] == "fxid")
{
setmenu("change_fxid");
draw_effects_list();
return;
}
level.createfx_inputlocked = 1;
level._createfx.hudelems[param_01 + 1][0].color = (1,1,0);
if(isdefined(param_00["input_func"]))
{
thread [[ param_00["input_func"] ]](param_01 + 1);
}
else
{
common_scripts\_createfx::createfx_centerprint("To set " + param_00["description"] + ", type /fx newvalue. To remove " + param_00["description"] + ", type /fx del");
}
set_option_index(param_00["name"]);
setdvar("fx","nil");
}
//Function Number: 18
menu_fx_option_set()
{
if(getdvar("fx") == "nil")
{
return;
}
if(getdvar("fx") == "del")
{
common_scripts\_createfx::remove_selected_option();
return;
}
var_00 = get_selected_option();
var_01 = undefined;
if(var_00["type"] == "string")
{
var_01 = getdvar("fx");
}
if(var_00["type"] == "int")
{
var_01 = getdvarint("fx");
}
if(var_00["type"] == "float")
{
var_01 = getdvarfloat("fx");
}
if(var_00["type"] == "vector")
{
var_01 = getdvarvector("fx");
}
if(isdefined(var_01))
{
apply_option_to_selected_fx(var_00,var_01);
return;
}
setdvar("fx","nil");
}
//Function Number: 19
apply_option_to_selected_fx(param_00,param_01)
{
common_scripts\_createfx::save_undo_buffer();
for(var_02 = 0;var_02 < level._createfx.selected_fx_ents.size;var_02++)
{
var_03 = level._createfx.selected_fx_ents[var_02];
if(mask(param_00["mask"],var_03.v["type"]))
{
var_03.v[param_00["name"]] = param_01;
}
}
level.last_displayed_ent = undefined;
common_scripts\_createfx::update_selected_entities();
common_scripts\_createfx::clear_settable_fx();
if(param_00["name"] == "origin")
{
level.createfx_last_movement_timer = 0;
common_scripts\_createfx::frame_selected();
}
if(param_00["name"] == "angles")
{
level.createfx_last_movement_timer = 0;
}
common_scripts\_createfx::save_redo_buffer();
}
//Function Number: 20
set_option_index(param_00)
{
for(var_01 = 0;var_01 < level._createfx.options.size;var_01++)
{
if(level._createfx.options[var_01]["name"] != param_00)
{
continue;
}
level._createfx.selected_fx_option_index = var_01;
return;
}
}
//Function Number: 21
get_selected_option()
{
return level._createfx.options[level._createfx.selected_fx_option_index];
}
//Function Number: 22
mask(param_00,param_01)
{
return isdefined(level.createfxmasks[param_00][param_01]);
}
//Function Number: 23
addoption(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
var_07 = [];
var_07["type"] = param_00;
var_07["name"] = param_01;
var_07["description"] = param_02;
var_07["default"] = param_03;
var_07["mask"] = param_04;
if(isdefined(param_05) && param_05)
{
var_07["nowrite"] = 1;
}
else
{
var_07["nowrite"] = 0;
}
if(isdefined(param_06))
{
var_07["input_func"] = param_06;
}
level._createfx.options[level._createfx.options.size] = var_07;
}
//Function Number: 24
get_option(param_00)
{
for(var_01 = 0;var_01 < level._createfx.options.size;var_01++)
{
if(level._createfx.options[var_01]["name"] == param_00)
{
return level._createfx.options[var_01];
}
}
}
//Function Number: 25
input_reactive_radius(param_00)
{
for(;;)
{
wait(0.05);
if(level.player buttonpressed("escape") || level.player buttonpressed("x"))
{
break;
}
var_01 = 0;
if(level.player buttonpressed("-"))
{
var_01 = -10;
}
else if(level.player buttonpressed("="))
{
var_01 = 10;
}
if(var_01 != 0)
{
foreach(var_03 in level._createfx.selected_fx_ents)
{
if(isdefined(var_03.v["reactive_radius"]))
{
var_03.v["reactive_radius"] = var_03.v["reactive_radius"] + var_01;
var_03.v["reactive_radius"] = clamp(var_03.v["reactive_radius"],10,1000);
}
}
}
}
level.last_displayed_ent = undefined;
common_scripts\_createfx::update_selected_entities();
common_scripts\_createfx::clear_settable_fx();
}
//Function Number: 26
display_fx_add_options(param_00)
{
level.createfx_menu_list_active = 1;
common_scripts\_createfx::clear_fx_hudelements();
common_scripts\_createfx::set_fx_hudelement("Name: " + param_00.v["fxid"]);
common_scripts\_createfx::set_fx_hudelement("Type: " + param_00.v["type"]);
common_scripts\_createfx::set_fx_hudelement("Origin: " + param_00.v["origin"]);
common_scripts\_createfx::set_fx_hudelement("Angles: " + param_00.v["angles"]);
var_01 = 0;
var_02 = 0;
var_03 = 0;
if(level.effect_list_offset >= level._createfx.options.size)
{
level.effect_list_offset = 0;
}
for(var_04 = 0;var_04 < level._createfx.options.size;var_04++)
{
var_05 = level._createfx.options[var_04];
if(isdefined(param_00.v[var_05["name"]]))
{
continue;
}
if(!mask(var_05["mask"],param_00.v["type"]))
{
continue;
}
var_01++;
if(var_01 < level.effect_list_offset)
{
continue;
}
if(var_02 >= level.effect_list_offset_max)
{
continue;
}
var_02++;
var_06 = var_02;
if(var_06 == 10)
{
var_06 = 0;
}
if(common_scripts\_createfx::button_is_clicked(var_06 + ""))
{
add_option_to_selected_entities(var_05);
menunone();
level.last_displayed_ent = undefined;
return;
}
common_scripts\_createfx::set_fx_hudelement(var_06 + ". " + var_05["description"]);
}
if(var_01 > level.effect_list_offset_max)
{
level.effect_list_current_size = var_01;
common_scripts\_createfx::set_fx_hudelement("(->) More >");
}
common_scripts\_createfx::set_fx_hudelement("(x) Exit >");
}
//Function Number: 27
add_option_to_selected_entities(param_00)
{
var_01 = undefined;
for(var_02 = 0;var_02 < level._createfx.selected_fx_ents.size;var_02++)
{
var_03 = level._createfx.selected_fx_ents[var_02];
if(mask(param_00["mask"],var_03.v["type"]))
{
var_03.v[param_00["name"]] = param_00["default"];
}
}
}
//Function Number: 28
menunone()
{
level.effect_list_offset = 0;
common_scripts\_createfx::clear_fx_hudelements();
setmenu("none");
}
//Function Number: 29
display_fx_info(param_00)
{
if(!menu("none"))
{
return;
}
if(level.createfx_help_active)
{
return;
}
common_scripts\_createfx::clear_fx_hudelements();
common_scripts\_createfx::set_fx_hudelement("Name: " + param_00.v["fxid"]);
common_scripts\_createfx::set_fx_hudelement("Type: " + param_00.v["type"]);
if(entities_are_selected())
{
var_01 = 0;
var_02 = 0;
var_03 = 0;
for(var_04 = 0;var_04 < level._createfx.options.size;var_04++)
{
var_05 = level._createfx.options[var_04];
if(!isdefined(param_00.v[var_05["name"]]))
{
continue;
}
var_01++;
if(var_01 < level.effect_list_offset)
{
continue;
}
var_02++;
common_scripts\_createfx::set_fx_hudelement(var_02 + ". " + var_05["description"] + ": " + param_00.v[var_05["name"]]);
if(var_02 > level.effect_list_offset_max)
{
var_03 = 1;
break;
}
}
if(var_01 > level.effect_list_offset_max)
{
level.effect_list_current_size = var_01;
common_scripts\_createfx::set_fx_hudelement("(->) More >");
}
common_scripts\_createfx::set_fx_hudelement("(a) Add >");
common_scripts\_createfx::set_fx_hudelement("(x) Exit >");
return;
}
var_01 = 0;
var_03 = 0;
for(var_04 = 0;var_04 < level._createfx.options.size;var_04++)
{
var_05 = level._createfx.options[var_04];
if(!isdefined(param_00.v[var_05["name"]]))
{
continue;
}
var_01++;
common_scripts\_createfx::set_fx_hudelement(var_05["description"] + ": " + param_00.v[var_05["name"]]);
if(var_01 > level._createfx.hudelem_count)
{
break;
}
}
}
//Function Number: 30
display_current_translation()
{
var_00 = get_last_selected_ent();
if(isdefined(var_00))
{
display_fx_info(var_00);
}
}
//Function Number: 31
draw_effects_list(param_00)
{
common_scripts\_createfx::clear_fx_hudelements();
var_01 = 0;
var_02 = 0;
var_03 = common_scripts\_createfx::func_get_level_fx();
level.effect_list_current_size = var_03.size;
if(!isdefined(param_00))
{
param_00 = "Pick an effect";
}
common_scripts\_createfx::set_fx_hudelement(param_00 + " [" + level.effect_list_offset + " - " + var_03.size + "]:");
for(var_04 = level.effect_list_offset;var_04 < var_03.size;var_04++)
{
var_01 = var_01 + 1;
common_scripts\_createfx::set_fx_hudelement(var_01 + ". " + var_03[var_04]);
if(var_01 >= level.effect_list_offset_max)
{
var_02 = 1;
break;
}
}
if(var_03.size > level.effect_list_offset_max)
{
common_scripts\_createfx::set_fx_hudelement("(->) More >");
common_scripts\_createfx::set_fx_hudelement("(<-) Previous >");
}
}
//Function Number: 32
increment_list_offset()
{
if(level.effect_list_offset >= level.effect_list_current_size - level.effect_list_offset_max)
{
level.effect_list_offset = 0;
return;
}
level.effect_list_offset = level.effect_list_offset + level.effect_list_offset_max;
}
//Function Number: 33
decrement_list_offset()
{
if(level.effect_list_current_size < level.effect_list_offset_max)
{
level.effect_list_offset = 0;
return;
}
level.effect_list_offset = level.effect_list_offset - level.effect_list_offset_max;
if(level.effect_list_offset < 0)
{
level.effect_list_offset = level.effect_list_current_size - level.effect_list_offset_max;
}
}
//Function Number: 34
draw_help_list(param_00)
{
common_scripts\_createfx::clear_fx_hudelements();
var_01 = 0;
var_02 = level.createfx_help_keys;
if(!isdefined(param_00))
{
param_00 = "Help";
}
common_scripts\_createfx::set_fx_hudelement("[" + param_00 + "]");
for(var_03 = level.help_list_offset;var_03 < var_02.size;var_03++)
{
var_01 = var_01 + 1;
common_scripts\_createfx::set_fx_hudelement(var_02[var_03]);
if(var_01 >= level.help_list_offset_max)
{
var_04 = 1;
break;
}
}
if(var_02.size > level.help_list_offset_max)
{
level.effect_list_current_size = var_02.size;
common_scripts\_createfx::set_fx_hudelement("(->) More >");
common_scripts\_createfx::set_fx_hudelement("(<-) Previous >");
}
}
//Function Number: 35
increment_help_list_offset()
{
var_00 = level.createfx_help_keys;
if(level.help_list_offset >= var_00.size - level.help_list_offset_max)
{
level.help_list_offset = 0;
return;
}
level.help_list_offset = level.help_list_offset + level.help_list_offset_max;
}
//Function Number: 36
decrement_help_list_offset()
{
level.help_list_offset = level.help_list_offset - level.help_list_offset_max;
if(level.help_list_offset < 0)
{
var_00 = level.createfx_help_keys;
level.help_list_offset = var_00.size - level.help_list_offset_max;
}
}
//Function Number: 37
help_navigation_buttons()
{
while(level.createfx_help_active == 1)
{
if(next_button())
{
increment_help_list_offset();
draw_help_list();
wait(0.1);
continue;
}
if(previous_button())
{
decrement_help_list_offset();
draw_help_list();
wait(0.1);
}
wait 0.05;
}
}
//Function Number: 38
setup_help_keys()
{
level.createfx_help_keys = ["Insert Insert entity","F2 Toggle createfx dot and text drawing","F5 SAVES your work","Z Undo","Shift-Z Redo","F Frames currently selected entities in camera view","END Drop selected entities to the ground","A Add option to the selected entities","P Reset the rotation of the selected entities","V Copy the angles from the most recently selected fx onto all selected fx.","O Orient all selected fx to point at most recently selected fx.","S Toggle Snap2Normal mode.","L Toggle 90deg Snap mode.","G Select all effects in level of same exploder or flag as selected.","U Select by name list.","C Convert One-Shot to Exploder.","Delete Kill the selected entities","ESCAPE Cancel out of option-modify-mode, must have console open","SPACE or -> Turn on exploders","<- Turn off exploders","Dpad Move selected entities on X/Y or rotate pitch/yaw","A button Toggle the selection of the current entity","X button Toggle entity rotation mode","Y button Move selected entites up or rotate roll","B button Move selected entites down or rotate roll","R Shoulder Move selected entities to the cursor","L Shoulder Hold to select multiple entites","L JoyClick Copy","R JoyClick Paste","Ctrl-C Copy","Ctrl-V Paste","N UFO","T Toggle Timescale FAST","Y Toggle Timescale SLOW","[ Toggle FX Visibility","] Toggle ShowTris","F11 Toggle FX Profile"];
}
//Function Number: 39
select_by_name()
{
var_00 = 0;
var_01 = undefined;
var_02 = common_scripts\_createfx::func_get_level_fx();
for(var_03 = level.effect_list_offset;var_03 < var_02.size;var_03++)
{
var_00 = var_00 + 1;
var_04 = var_00;
if(var_04 == 10)
{
var_04 = 0;
}
if(common_scripts\_createfx::button_is_clicked(var_04 + ""))
{
var_01 = var_02[var_03];
break;
}
if(var_00 > level.effect_list_offset_max)
{
break;
}
}
if(!isdefined(var_01))
{
return;
}
var_05 = [];
foreach(var_03, var_07 in level.createfxent)
{
if(issubstr(var_07.v["fxid"],var_01))
{
var_05[var_05.size] = var_03;
}
}
common_scripts\_createfx::deselect_all_ents();
common_scripts\_createfx::select_index_array(var_05);
level._createfx.select_by_name = 1;
}
//Function Number: 40
get_last_selected_ent()
{
return level._createfx.selected_fx_ents[level._createfx.selected_fx_ents.size - 1];
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,857 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: common_scripts/_fx.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 39
* Decompile Time: 614 ms
* Timestamp: 10/27/2023 1:47:25 AM
*******************************************************************/
//Function Number: 1
initfx()
{
if(!isdefined(level.func))
{
level.func = [];
}
if(!isdefined(level.func["create_triggerfx"]))
{
level.func["create_triggerfx"] = ::create_triggerfx;
}
if(!isdefined(level._fx))
{
level._fx = spawnstruct();
}
common_scripts\utility::create_lock("createfx_looper",20);
level.fxfireloopmod = 1;
level._fx.exploderfunction = ::common_scripts\_exploder::exploder_before_load;
waittillframeend;
waittillframeend;
level._fx.exploderfunction = ::common_scripts\_exploder::exploder_after_load;
level._fx.server_culled_sounds = 0;
if(getdvarint("serverCulledSounds") == 1)
{
level._fx.server_culled_sounds = 1;
}
if(level.createfx_enabled)
{
level._fx.server_culled_sounds = 0;
}
if(level.createfx_enabled)
{
level waittill("createfx_common_done");
}
var_00 = 0;
if(var_00 < level.createfxent.size)
{
var_01 = level.createfxent[var_00];
var_01 common_scripts\_createfx::set_forward_and_up_vectors();
switch(var_01.v["type"])
{
case "loopfx":
break;
case "oneshotfx":
break;
case "soundfx":
break;
case "soundfx_interval":
break;
case "reactive_fx":
break;
case "soundfx_dynamic":
break;
}
}
}
//Function Number: 2
remove_dupes()
{
}
//Function Number: 3
check_createfx_limit()
{
}
//Function Number: 4
check_limit_type(param_00,param_01)
{
}
//Function Number: 5
print_org(param_00,param_01,param_02,param_03)
{
if(getdvar("debug") == "1")
{
}
}
//Function Number: 6
platformmatches()
{
if(isdefined(self.v["platform"]) && isdefined(level.currentgen))
{
var_00 = self.v["platform"];
if((var_00 == "cg" && !level.currentgen) || var_00 == "ng" && !level.nextgen || var_00 == "xenon" && !level.xenon || var_00 == "ps3" && !level.ps3 || var_00 == "pc" && !level.pc || var_00 == "xb3" && !level.xb3 || var_00 == "ps4" && !level.ps4 || var_00 == "pccg" && !level.pccg || var_00 == "!cg" && level.currentgen || var_00 == "!ng" && level.nextgen || var_00 == "!xenon" && level.xenon || var_00 == "!ps3" && level.ps3 || var_00 == "!pc" && level.pc || var_00 == "!xb3" && level.xb3 || var_00 == "!ps4" && level.ps4 || var_00 == "!pccg" && level.pccg)
{
return 0;
}
}
return 1;
}
//Function Number: 7
oneshotfx(param_00,param_01,param_02,param_03)
{
}
//Function Number: 8
exploderfx(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B,param_0C,param_0D,param_0E,param_0F,param_10,param_11)
{
if(1)
{
var_12 = common_scripts\utility::createexploder(param_01);
var_12.v["origin"] = param_02;
var_12.v["angles"] = (0,0,0);
if(isdefined(param_04))
{
var_12.v["angles"] = vectortoangles(param_04 - param_02);
}
var_12.v["delay"] = param_03;
var_12.v["exploder"] = param_00;
if(isdefined(level.createfxexploders))
{
var_13 = level.createfxexploders[var_12.v["exploder"]];
if(!isdefined(var_13))
{
var_13 = [];
}
var_13[var_13.size] = var_12;
level.createfxexploders[var_12.v["exploder"]] = var_13;
}
return;
}
var_14 = spawn("script_origin",(0,0,0));
var_14.origin = param_03;
var_14.angles = vectortoangles(param_05 - param_03);
var_14.script_exploder = param_01;
var_14.script_fxid = param_02;
var_14.script_delay = param_04;
var_14.script_firefx = param_06;
var_14.script_firefxdelay = param_07;
var_14.script_firefxsound = param_08;
var_14.script_sound = param_09;
var_14.script_earthquake = param_0A;
var_14.script_damage = param_0B;
var_14.script_radius = param_10;
var_14.script_soundalias = param_0C;
var_14.script_firefxtimeout = param_11;
var_14.script_repeat = param_0D;
var_14.script_delay_min = param_0E;
var_14.script_delay_max = param_0F;
var_14.script_exploder_group = var_12;
var_15 = anglestoforward(var_14.angles);
var_15 = var_15 * 150;
var_14.targetpos = param_03 + var_15;
if(!isdefined(level._script_exploders))
{
level._script_exploders = [];
}
level._script_exploders[level._script_exploders.size] = var_14;
}
//Function Number: 9
loopfx(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
var_07 = common_scripts\utility::createloopeffect(param_00);
var_07.v["origin"] = param_01;
var_07.v["angles"] = (0,0,0);
if(isdefined(param_03))
{
var_07.v["angles"] = vectortoangles(param_03 - param_01);
}
var_07.v["delay"] = param_02;
}
//Function Number: 10
create_looper()
{
self.looper = playloopedfx(level._effect[self.v["fxid"]],self.v["delay"],self.v["origin"],0,self.v["forward"],self.v["up"]);
create_loopsound();
}
//Function Number: 11
create_loopsound()
{
if(!platformmatches())
{
return;
}
self notify("stop_loop");
if(!isdefined(self.v["soundalias"]))
{
return;
}
if(self.v["soundalias"] == "nil")
{
return;
}
var_00 = 0;
var_01 = undefined;
if(isdefined(self.v["stopable"]) && self.v["stopable"])
{
if(isdefined(self.looper))
{
var_01 = "death";
}
else
{
var_01 = "stop_loop";
}
}
else if(level._fx.server_culled_sounds && isdefined(self.v["server_culled"]))
{
var_00 = self.v["server_culled"];
}
var_02 = self;
if(isdefined(self.looper))
{
var_02 = self.looper;
}
var_03 = undefined;
if(level.createfx_enabled)
{
var_03 = self;
}
var_02 common_scripts\utility::loop_fx_sound_with_angles(self.v["soundalias"],self.v["origin"],self.v["angles"],var_00,var_01,var_03);
}
//Function Number: 12
create_interval_sound()
{
if(!platformmatches())
{
return;
}
self notify("stop_loop");
if(!isdefined(self.v["soundalias"]))
{
return;
}
if(self.v["soundalias"] == "nil")
{
return;
}
var_00 = undefined;
var_01 = self;
if((isdefined(self.v["stopable"]) && self.v["stopable"]) || level.createfx_enabled)
{
if(isdefined(self.looper))
{
var_01 = self.looper;
var_00 = "death";
}
else
{
var_00 = "stop_loop";
}
}
var_01 thread common_scripts\utility::loop_fx_sound_interval_with_angles(self.v["soundalias"],self.v["origin"],self.v["angles"],var_00,undefined,self.v["delay_min"],self.v["delay_max"]);
}
//Function Number: 13
create_dynamicambience()
{
if(!platformmatches())
{
return;
}
if(!isdefined(self.v["ambiencename"]))
{
return;
}
if(self.v["ambiencename"] == "nil")
{
return;
}
if(common_scripts\utility::issp())
{
return;
}
if(getdvar("createfx") == "on")
{
common_scripts\utility::flag_wait("createfx_started");
}
if(isdefined(self.dambinfostruct))
{
level.player stopdynamicambience(self.dambinfostruct.unique_id);
}
self.dambinfostruct = spawnstruct();
self.dambinfostruct common_scripts\utility::assign_unique_id();
level.player playdynamicambience(self.v["ambiencename"],self.v["origin"],self.v["dynamic_distance"],self.dambinfostruct.unique_id);
}
//Function Number: 14
loopfxthread()
{
wait 0.05;
if(isdefined(self.fxstart))
{
level waittill("start fx" + self.fxstart);
}
for(;;)
{
create_looper();
if(isdefined(self.timeout))
{
thread loopfxstop(self.timeout);
}
if(isdefined(self.fxstop))
{
level waittill("stop fx" + self.fxstop);
}
else
{
return;
}
if(isdefined(self.looper))
{
self.looper delete();
}
if(isdefined(self.fxstart))
{
level waittill("start fx" + self.fxstart);
continue;
}
}
}
//Function Number: 15
loopfxchangeid(param_00)
{
self endon("death");
param_00 waittill("effect id changed",var_01);
}
//Function Number: 16
loopfxchangeorg(param_00)
{
self endon("death");
for(;;)
{
param_00 waittill("effect org changed",var_01);
self.origin = var_01;
}
}
//Function Number: 17
loopfxchangedelay(param_00)
{
self endon("death");
param_00 waittill("effect delay changed",var_01);
}
//Function Number: 18
loopfxdeletion(param_00)
{
self endon("death");
param_00 waittill("effect deleted");
self delete();
}
//Function Number: 19
loopfxstop(param_00)
{
self endon("death");
wait(param_00);
self.looper delete();
}
//Function Number: 20
loopsound(param_00,param_01,param_02)
{
level thread loopsoundthread(param_00,param_01,param_02);
}
//Function Number: 21
loopsoundthread(param_00,param_01,param_02)
{
var_03 = spawn("script_origin",param_01);
var_03.origin = param_01;
var_03 playloopsound(param_00);
}
//Function Number: 22
gunfireloopfx(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
{
thread gunfireloopfxthread(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07);
}
//Function Number: 23
gunfireloopfxthread(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
{
level endon("stop all gunfireloopfx");
wait 0.05;
if(param_07 < param_06)
{
var_08 = param_07;
param_07 = param_06;
param_06 = var_08;
}
var_09 = param_06;
var_0A = param_07 - param_06;
if(param_05 < param_04)
{
var_08 = param_05;
param_05 = param_04;
param_04 = var_08;
}
var_0B = param_04;
var_0C = param_05 - param_04;
if(param_03 < param_02)
{
var_08 = param_03;
param_03 = param_02;
param_02 = var_08;
}
var_0D = param_02;
var_0E = param_03 - param_02;
var_0F = spawnfx(level._effect[param_00],param_01);
if(!level.createfx_enabled)
{
var_0F willneverchange();
}
for(;;)
{
var_10 = var_0D + randomint(var_0E);
for(var_11 = 0;var_11 < var_10;var_11++)
{
triggerfx(var_0F);
wait(var_0B + randomfloat(var_0C));
}
wait(var_09 + randomfloat(var_0A));
}
}
//Function Number: 24
gunfireloopfxvec(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
{
thread gunfireloopfxvecthread(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
}
//Function Number: 25
gunfireloopfxvecthread(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
{
level endon("stop all gunfireloopfx");
wait 0.05;
if(param_08 < param_07)
{
var_09 = param_08;
param_08 = param_07;
param_07 = var_09;
}
var_0A = param_07;
var_0B = param_08 - param_07;
if(param_06 < param_05)
{
var_09 = param_06;
param_06 = param_05;
param_05 = var_09;
}
var_0C = param_05;
var_0D = param_06 - param_05;
if(param_04 < param_03)
{
var_09 = param_04;
param_04 = param_03;
param_03 = var_09;
}
var_0E = param_03;
var_0F = param_04 - param_03;
param_02 = vectornormalize(param_02 - param_01);
var_10 = spawnfx(level._effect[param_00],param_01,param_02);
if(!level.createfx_enabled)
{
var_10 willneverchange();
}
for(;;)
{
var_11 = var_0E + randomint(var_0F);
for(var_12 = 0;var_12 < int(var_11 / level.fxfireloopmod);var_12++)
{
triggerfx(var_10);
var_13 = var_0C + randomfloat(var_0D) * level.fxfireloopmod;
if(var_13 < 0.05)
{
var_13 = 0.05;
}
wait(var_13);
}
wait(var_0C + randomfloat(var_0D));
wait(var_0A + randomfloat(var_0B));
}
}
//Function Number: 26
setfireloopmod(param_00)
{
level.fxfireloopmod = 1 / param_00;
}
//Function Number: 27
setup_fx()
{
if(!isdefined(self.script_fxid) || !isdefined(self.script_fxcommand) || !isdefined(self.script_delay))
{
return;
}
if(isdefined(self.model))
{
if(self.model == "toilet")
{
thread burnville_paratrooper_hack();
return;
}
}
var_00 = undefined;
if(isdefined(self.target))
{
var_01 = getent(self.target,"targetname");
if(isdefined(var_01))
{
var_00 = var_01.origin;
}
}
var_02 = undefined;
if(isdefined(self.script_fxstart))
{
var_02 = self.script_fxstart;
}
var_03 = undefined;
if(isdefined(self.script_fxstop))
{
var_03 = self.script_fxstop;
}
if(self.script_fxcommand == "OneShotfx")
{
oneshotfx(self.script_fxid,self.origin,self.script_delay,var_00);
}
if(self.script_fxcommand == "loopfx")
{
loopfx(self.script_fxid,self.origin,self.script_delay,var_00,var_02,var_03);
}
if(self.script_fxcommand == "loopsound")
{
loopsound(self.script_fxid,self.origin,self.script_delay);
}
self delete();
}
//Function Number: 28
burnville_paratrooper_hack()
{
var_00 = (0,0,self.angles[1]);
var_01 = level._effect[self.script_fxid];
var_02 = self.origin;
wait(1);
level thread burnville_paratrooper_hack_loop(var_00,var_02,var_01);
self delete();
}
//Function Number: 29
burnville_paratrooper_hack_loop(param_00,param_01,param_02)
{
for(;;)
{
playfx(param_02,param_01);
wait(30 + randomfloat(40));
}
}
//Function Number: 30
create_triggerfx()
{
if(!verify_effects_assignment(self.v["fxid"]))
{
return;
}
self.looper = spawnfx(level._effect[self.v["fxid"]],self.v["origin"],self.v["forward"],self.v["up"]);
triggerfx(self.looper,self.v["delay"]);
if(!level.createfx_enabled)
{
self.looper willneverchange();
}
create_loopsound();
}
//Function Number: 31
verify_effects_assignment(param_00)
{
if(isdefined(level._effect[param_00]))
{
return 1;
}
if(!isdefined(level._missing_fx))
{
level._missing_fx = [];
}
level._missing_fx[self.v["fxid"]] = param_00;
verify_effects_assignment_print(param_00);
return 0;
}
//Function Number: 32
verify_effects_assignment_print(param_00)
{
level notify("verify_effects_assignment_print");
level endon("verify_effects_assignment_print");
wait(0.05);
var_01 = getarraykeys(level._missing_fx);
foreach(var_03 in var_01)
{
}
}
//Function Number: 33
oneshotfxthread()
{
wait(0.05);
if(!platformmatches())
{
return;
}
if(self.v["delay"] > 0)
{
wait(self.v["delay"]);
}
[[ level.func["create_triggerfx"] ]]();
}
//Function Number: 34
add_reactive_fx()
{
if(!platformmatches())
{
return;
}
if(!common_scripts\utility::issp() && getdvar("createfx") == "")
{
return;
}
if(!isdefined(level._fx.reactive_thread))
{
level._fx.reactive_thread = 1;
level thread reactive_fx_thread();
}
if(!isdefined(level._fx.reactive_fx_ents))
{
level._fx.reactive_fx_ents = [];
}
level._fx.reactive_fx_ents[level._fx.reactive_fx_ents.size] = self;
self.next_reactive_time = 3000;
}
//Function Number: 35
reactive_fx_thread()
{
if(!common_scripts\utility::issp())
{
if(getdvar("createfx") == "on")
{
common_scripts\utility::flag_wait("createfx_started");
}
}
level._fx.reactive_sound_ents = [];
var_00 = 256;
for(;;)
{
level waittill("code_damageradius",var_01,var_00,var_02,var_03);
var_04 = sort_reactive_ents(var_02,var_00);
foreach(var_07, var_06 in var_04)
{
var_06 thread play_reactive_fx(var_07);
}
}
}
//Function Number: 36
vector2d(param_00)
{
return (param_00[0],param_00[1],0);
}
//Function Number: 37
sort_reactive_ents(param_00,param_01)
{
var_02 = [];
var_03 = gettime();
foreach(var_05 in level._fx.reactive_fx_ents)
{
if(var_05.next_reactive_time > var_03)
{
continue;
}
var_06 = var_05.v["reactive_radius"] + param_01;
var_06 = var_06 * var_06;
if(distancesquared(param_00,var_05.v["origin"]) < var_06)
{
var_02[var_02.size] = var_05;
}
}
foreach(var_05 in var_02)
{
var_09 = vector2d(var_05.v["origin"] - level.player.origin);
var_0A = vector2d(param_00 - level.player.origin);
var_0B = vectornormalize(var_09);
var_0C = vectornormalize(var_0A);
var_05.dot = vectordot(var_0B,var_0C);
}
for(var_0E = 0;var_0E < var_02.size - 1;var_0E++)
{
for(var_0F = var_0E + 1;var_0F < var_02.size;var_0F++)
{
if(var_02[var_0E].dot > var_02[var_0F].dot)
{
var_10 = var_02[var_0E];
var_02[var_0E] = var_02[var_0F];
var_02[var_0F] = var_10;
}
}
}
foreach(var_05 in var_02)
{
var_05.origin = undefined;
var_05.dot = undefined;
}
for(var_0E = 4;var_0E < var_02.size;var_0E++)
{
var_02[var_0E] = undefined;
}
return var_02;
}
//Function Number: 38
play_reactive_fx(param_00)
{
var_01 = get_reactive_sound_ent();
if(!isdefined(var_01))
{
return;
}
self.next_reactive_time = gettime() + 3000;
var_01.origin = self.v["origin"];
var_01.is_playing = 1;
wait(param_00 * randomfloatrange(0.05,0.1));
if(common_scripts\utility::issp())
{
var_01 playsound(self.v["soundalias"],"sounddone");
var_01 waittill("sounddone");
}
else
{
var_01 playsound(self.v["soundalias"]);
wait(2);
}
wait(0.1);
var_01.is_playing = 0;
}
//Function Number: 39
get_reactive_sound_ent()
{
foreach(var_01 in level._fx.reactive_sound_ents)
{
if(!var_01.is_playing)
{
return var_01;
}
}
if(level._fx.reactive_sound_ents.size < 4)
{
var_01 = spawn("script_origin",(0,0,0));
var_01.is_playing = 0;
level._fx.reactive_sound_ents[level._fx.reactive_sound_ents.size] = var_01;
return var_01;
}
return undefined;
}

File diff suppressed because it is too large Load Diff

13322
AW/PC/MP/maps/_utility.gsc Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,25 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/createart/mp_venus_art.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 14 ms
* Timestamp: 10/27/2023 1:48:20 AM
*******************************************************************/
//Function Number: 1
main()
{
level.tweakfile = 1;
if(isusinghdr())
{
maps\createart\mp_venus_fog_hdr::setupfog();
}
else
{
maps\createart\mp_venus_fog::setupfog();
}
visionsetnaked("mp_venus",0);
}

View File

@ -0,0 +1,28 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/createart/mp_venus_fog.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 2
* Decompile Time: 29 ms
* Timestamp: 10/27/2023 1:48:20 AM
*******************************************************************/
//Function Number: 1
main()
{
var_00 = maps\mp\_art::create_vision_set_fog("mp_venus");
var_00.startdist = 17346.26;
var_00.halfwaydist = 32487.6;
var_00.red = 0.583682;
var_00.green = 0.52939;
var_00.blue = 0.302793;
var_00.maxopacity = 1;
var_00.transitiontime = 0;
var_00.sunfogenabled = 0;
}
//Function Number: 2
setupfog()
{
}

View File

@ -0,0 +1,286 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/createart/mp_venus_fog_hdr.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 2
* Decompile Time: 31 ms
* Timestamp: 10/27/2023 1:48:21 AM
*******************************************************************/
//Function Number: 1
main()
{
var_00 = maps\mp\_art::create_vision_set_fog("mp_venus");
var_00.startdist = 433.669;
var_00.halfwaydist = 7943.9;
var_00.red = 0.164795;
var_00.green = 0.195313;
var_00.blue = 0.234375;
var_00.hdrcolorintensity = 0;
var_00.maxopacity = 0.523438;
var_00.transitiontime = 0;
var_00.sunfogenabled = 0;
var_00.sunred = 1;
var_00.sungreen = 0;
var_00.sunblue = 0;
var_00.hdrsuncolorintensity = 1;
var_00.sundir = (1,0,0);
var_00.sunbeginfadeangle = 0;
var_00.sunendfadeangle = 180;
var_00.normalfogscale = 1;
var_00.skyfogintensity = 1;
var_00.skyfogminangle = 0;
var_00.skyfogmaxangle = 0;
var_00.heightfogenabled = 0;
var_00.heightfogbaseheight = 0;
var_00.heightfoghalfplanedistance = 1000;
var_00.atmosfogenabled = 1;
var_00.atmosfogsunfogcolor = (0.348353,0.412634,0.470651);
var_00.atmosfoghazecolor = (0.312744,0.328125,0.328125);
var_00.atmosfoghazestrength = 0.898438;
var_00.atmosfoghazespread = 0.671875;
var_00.atmosfogextinctionstrength = 1;
var_00.atmosfoginscatterstrength = 15.3972;
var_00.atmosfoghalfplanedistance = 3485.87;
var_00.atmosfogstartdistance = 4565.7;
var_00.atmosfogdistancescale = 2.73074;
var_00.atmosfogskydistance = 114703;
var_00.atmosfogskyangularfalloffenabled = 0;
var_00.atmosfogskyfalloffstartangle = -6;
var_00.atmosfogskyfalloffanglerange = 24;
var_00.atmosfogsundirection = (-0.762741,0.492203,0.419478);
var_00.atmosfogheightfogenabled = 0;
var_00.atmosfogheightfogbaseheight = 3116.26;
var_00.atmosfogheightfoghalfplanedistance = 473.149;
var_00 = maps\mp\_art::create_vision_set_fog("mp_venus_cg");
var_00.startdist = 1356.09;
var_00.halfwaydist = 7943.9;
var_00.red = 0.267197;
var_00.green = 0.142491;
var_00.blue = 0.210256;
var_00.hdrcolorintensity = 12.2951;
var_00.maxopacity = 0.555085;
var_00.transitiontime = 0;
var_00.sunfogenabled = 0;
var_00.sunred = 1;
var_00.sungreen = 0;
var_00.sunblue = 0;
var_00.hdrsuncolorintensity = 1;
var_00.sundir = (1,0,0);
var_00.sunbeginfadeangle = 0;
var_00.sunendfadeangle = 180;
var_00.normalfogscale = 1;
var_00.skyfogintensity = 1;
var_00.skyfogminangle = 0;
var_00.skyfogmaxangle = 0;
var_00.heightfogenabled = 0;
var_00.heightfogbaseheight = 0;
var_00.heightfoghalfplanedistance = 1000;
var_00.atmosfogenabled = 1;
var_00.atmosfogsunfogcolor = (0.398438,0.387669,0.344595);
var_00.atmosfoghazecolor = (0.312744,0.328125,0.328125);
var_00.atmosfoghazestrength = 0.578125;
var_00.atmosfoghazespread = 0.84375;
var_00.atmosfogextinctionstrength = 1;
var_00.atmosfoginscatterstrength = 14.8973;
var_00.atmosfoghalfplanedistance = 8283.64;
var_00.atmosfogstartdistance = 294.664;
var_00.atmosfogdistancescale = 1.75;
var_00.atmosfogskydistance = 131648;
var_00.atmosfogskyangularfalloffenabled = 0;
var_00.atmosfogskyfalloffstartangle = -15;
var_00.atmosfogskyfalloffanglerange = 144;
var_00.atmosfogsundirection = (-0.762741,0.492203,0.419478);
var_00.atmosfogheightfogenabled = 0;
var_00.atmosfogheightfogbaseheight = -2515.74;
var_00.atmosfogheightfoghalfplanedistance = 104.814;
var_00 = maps\mp\_art::create_vision_set_fog("mp_venus_osp");
var_00.startdist = 433.669;
var_00.halfwaydist = 7943.9;
var_00.red = 0.164795;
var_00.green = 0.195313;
var_00.blue = 0.234375;
var_00.hdrcolorintensity = 0;
var_00.maxopacity = 0.523438;
var_00.transitiontime = 0;
var_00.sunfogenabled = 0;
var_00.sunred = 1;
var_00.sungreen = 0;
var_00.sunblue = 0;
var_00.hdrsuncolorintensity = 1;
var_00.sundir = (1,0,0);
var_00.sunbeginfadeangle = 0;
var_00.sunendfadeangle = 180;
var_00.normalfogscale = 1;
var_00.skyfogintensity = 1;
var_00.skyfogminangle = 0;
var_00.skyfogmaxangle = 0;
var_00.heightfogenabled = 0;
var_00.heightfogbaseheight = 0;
var_00.heightfoghalfplanedistance = 1000;
var_00.atmosfogenabled = 1;
var_00.atmosfogsunfogcolor = (0.348353,0.412634,0.470651);
var_00.atmosfoghazecolor = (0.312744,0.328125,0.328125);
var_00.atmosfoghazestrength = 0.898438;
var_00.atmosfoghazespread = 0.671875;
var_00.atmosfogextinctionstrength = 1;
var_00.atmosfoginscatterstrength = 13.3972;
var_00.atmosfoghalfplanedistance = 3485.87;
var_00.atmosfogstartdistance = 4565.7;
var_00.atmosfogdistancescale = 2.73074;
var_00.atmosfogskydistance = 114703;
var_00.atmosfogskyangularfalloffenabled = 0;
var_00.atmosfogskyfalloffstartangle = -6;
var_00.atmosfogskyfalloffanglerange = 24;
var_00.atmosfogsundirection = (-0.762741,0.492203,0.419478);
var_00.atmosfogheightfogenabled = 0;
var_00.atmosfogheightfogbaseheight = 3116.26;
var_00.atmosfogheightfoghalfplanedistance = 473.149;
var_00 = maps\mp\_art::create_vision_set_fog("mp_venus_underwater");
var_00.startdist = 433.669;
var_00.halfwaydist = 7943.9;
var_00.red = 0.164795;
var_00.green = 0.195313;
var_00.blue = 0.234375;
var_00.hdrcolorintensity = 0;
var_00.maxopacity = 0.523438;
var_00.transitiontime = 0;
var_00.sunfogenabled = 0;
var_00.sunred = 1;
var_00.sungreen = 0;
var_00.sunblue = 0;
var_00.hdrsuncolorintensity = 1;
var_00.sundir = (1,0,0);
var_00.sunbeginfadeangle = 0;
var_00.sunendfadeangle = 180;
var_00.normalfogscale = 1;
var_00.skyfogintensity = 1;
var_00.skyfogminangle = 0;
var_00.skyfogmaxangle = 0;
var_00.heightfogenabled = 0;
var_00.heightfogbaseheight = 0;
var_00.heightfoghalfplanedistance = 1000;
var_00.atmosfogenabled = 1;
var_00.atmosfogsunfogcolor = (0.348353,0.412634,0.470651);
var_00.atmosfoghazecolor = (0.312744,0.328125,0.328125);
var_00.atmosfoghazestrength = 0.898438;
var_00.atmosfoghazespread = 0.671875;
var_00.atmosfogextinctionstrength = 1;
var_00.atmosfoginscatterstrength = 15.3972;
var_00.atmosfoghalfplanedistance = 3485.87;
var_00.atmosfogstartdistance = 4565.7;
var_00.atmosfogdistancescale = 2.73074;
var_00.atmosfogskydistance = 114703;
var_00.atmosfogskyangularfalloffenabled = 0;
var_00.atmosfogskyfalloffstartangle = -6;
var_00.atmosfogskyfalloffanglerange = 24;
var_00.atmosfogsundirection = (-0.762741,0.492203,0.419478);
var_00.atmosfogheightfogenabled = 0;
var_00.atmosfogheightfogbaseheight = 3116.26;
var_00.atmosfogheightfoghalfplanedistance = 473.149;
var_00 = maps\mp\_art::create_vision_set_fog("dna_bomb");
var_00.startdist = 670.438;
var_00.halfwaydist = 2489.07;
var_00.red = 0.802175;
var_00.green = 0.697121;
var_00.blue = 0.750972;
var_00.hdrcolorintensity = 10.5;
var_00.maxopacity = 0.649765;
var_00.transitiontime = 0;
var_00.sunfogenabled = 1;
var_00.sunred = 1;
var_00.sungreen = 0;
var_00.sunblue = 0;
var_00.hdrsuncolorintensity = 1;
var_00.sundir = (-0.273734,-0.956553,-0.100377);
var_00.sunbeginfadeangle = 0;
var_00.sunendfadeangle = 180;
var_00.normalfogscale = 1;
var_00.skyfogintensity = 0;
var_00.skyfogminangle = 0;
var_00.skyfogmaxangle = 90;
var_00.heightfogenabled = 0;
var_00.heightfogbaseheight = 0;
var_00.heightfoghalfplanedistance = 1000;
var_00.atmosfogenabled = 1;
var_00.atmosfogsunfogcolor = (0.484637,0.920391,0.255807);
var_00.atmosfoghazecolor = (1,0.778993,0.417681);
var_00.atmosfoghazestrength = 0;
var_00.atmosfoghazespread = 0.0322783;
var_00.atmosfogextinctionstrength = 0.916667;
var_00.atmosfoginscatterstrength = 15.9317;
var_00.atmosfoghalfplanedistance = 1640.34;
var_00.atmosfogstartdistance = 71.7805;
var_00.atmosfogdistancescale = 9.42623;
var_00.atmosfogskydistance = 24590;
var_00.atmosfogskyangularfalloffenabled = 0;
var_00.atmosfogskyfalloffstartangle = -8;
var_00.atmosfogskyfalloffanglerange = 0;
var_00.atmosfogsundirection = (-0.474168,-0.865133,0.163429);
var_00.atmosfogheightfogenabled = 1;
var_00.atmosfogheightfogbaseheight = 293.646;
var_00.atmosfogheightfoghalfplanedistance = 1471.65;
var_00 = maps\mp\_art::create_vision_set_fog("dna_bomb_cg");
var_00.startdist = 0;
var_00.halfwaydist = 1232.4;
var_00.red = 0.563022;
var_00.green = 0.920391;
var_00.blue = 0.375355;
var_00.hdrcolorintensity = 15.9699;
var_00.maxopacity = 0.870537;
var_00.transitiontime = 0;
var_00.sunfogenabled = 0;
var_00.sunred = 0.291899;
var_00.sungreen = 0.435754;
var_00.sunblue = 0.1819;
var_00.hdrsuncolorintensity = 16.6475;
var_00.sundir = (-0.546391,-0.14727,0.824481);
var_00.sunbeginfadeangle = 0;
var_00.sunendfadeangle = 36.694;
var_00.normalfogscale = 2.78604;
var_00.skyfogintensity = 0;
var_00.skyfogminangle = 0;
var_00.skyfogmaxangle = 90;
var_00.heightfogenabled = 0;
var_00.heightfogbaseheight = 0;
var_00.heightfoghalfplanedistance = 1000;
var_00.atmosfogenabled = 0;
var_00.atmosfogsunfogcolor = (0.484637,0.920391,0.255807);
var_00.atmosfoghazecolor = (1,0.778993,0.417681);
var_00.atmosfoghazestrength = 0;
var_00.atmosfoghazespread = 0.0322783;
var_00.atmosfogextinctionstrength = 0.916667;
var_00.atmosfoginscatterstrength = 16.3525;
var_00.atmosfoghalfplanedistance = 1640.34;
var_00.atmosfogstartdistance = 71.7805;
var_00.atmosfogdistancescale = 9.42623;
var_00.atmosfogskydistance = 24590;
var_00.atmosfogskyangularfalloffenabled = 0;
var_00.atmosfogskyfalloffstartangle = -8;
var_00.atmosfogskyfalloffanglerange = 0;
var_00.atmosfogsundirection = (-0.474168,-0.865133,0.163429);
var_00.atmosfogheightfogenabled = 1;
var_00.atmosfogheightfogbaseheight = 293.646;
var_00.atmosfogheightfoghalfplanedistance = 1471.65;
var_00 = maps\mp\_art::create_vision_set_fog("");
var_00.startdist = 3764.17;
var_00.halfwaydist = 19391;
var_00.red = 1;
var_00.green = 0.925269;
var_00.blue = 0.847076;
var_00.hdrcolorintensity = 12.2088;
var_00.maxopacity = 0.7;
var_00.transitiontime = 0;
var_00.skyfogintensity = 0;
var_00.skyfogminangle = 0;
var_00.skyfogmaxangle = 0;
var_00.heightfogenabled = 0;
var_00.heightfogbaseheight = 0;
var_00.heightfoghalfplanedistance = 1000;
}
//Function Number: 2
setupfog()
{
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,268 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_adrenaline.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 11
* Decompile Time: 170 ms
* Timestamp: 10/27/2023 1:48:22 AM
*******************************************************************/
//Function Number: 1
watchadrenalineusage()
{
self notify("exo_overclock_taken");
level endon("game_ended");
self endon("death");
self endon("disconnect");
self endon("joined_team");
self endon("faux_spawn");
self endon("exo_overclock_taken");
if(!self hasweapon("adrenaline_mp"))
{
return;
}
adrenalineinit();
thread monitorplayerdeath();
thread wait_for_game_end();
for(;;)
{
self waittill("exo_adrenaline_fire");
if(!isalive(self))
{
return;
}
thread tryuseadrenaline();
}
}
//Function Number: 2
adrenalineinit()
{
self.overclock_on = 0;
self batterysetdischargescale("adrenaline_mp",1);
var_00 = self batterygetsize("adrenaline_mp");
if(self gettacticalweapon() == "adrenaline_mp")
{
self setclientomnvar("exo_ability_nrg_req0",0);
self setclientomnvar("exo_ability_nrg_total0",var_00);
self setclientomnvar("ui_exo_battery_level0",var_00);
}
else if(self getlethalweapon() == "adrenaline_mp")
{
self setclientomnvar("exo_ability_nrg_req1",0);
self setclientomnvar("exo_ability_nrg_total1",var_00);
self setclientomnvar("ui_exo_battery_level1",var_00);
}
if(!isdefined(level.exo_overclock_vfx_le_active))
{
level.exo_overclock_vfx_le_active = loadfx("vfx/lights/exo_overclock_hip_le_start");
}
if(!isdefined(level.exo_overclock_vfx_ri_active))
{
level.exo_overclock_vfx_ri_active = loadfx("vfx/lights/exo_overclock_hip_ri_start");
}
if(!isdefined(level.exo_overclock_vfx_le_inactive))
{
level.exo_overclock_vfx_le_inactive = loadfx("vfx/lights/exo_overclock_hip_le_inactive");
}
if(!isdefined(level.exo_overclock_vfx_ri_inactive))
{
level.exo_overclock_vfx_ri_inactive = loadfx("vfx/lights/exo_overclock_hip_ri_inactive");
}
wait(0.05);
if(!maps\mp\_utility::invirtuallobby())
{
playfxontag(level.exo_overclock_vfx_le_inactive,self,"J_Hip_LE");
playfxontag(level.exo_overclock_vfx_ri_inactive,self,"J_Hip_RI");
}
}
//Function Number: 3
tryuseadrenaline()
{
self endon("exo_overclock_taken");
if(self.overclock_on == 1)
{
thread stopadrenaline(1);
return;
}
thread startadrenaline();
}
//Function Number: 4
killoverclockfx()
{
if(isdefined(self.overclock_fx_l))
{
self.overclock_fx_l delete();
self.overclock_fx_l = undefined;
}
if(isdefined(self.overclock_fx_r))
{
self.overclock_fx_r delete();
self.overclock_fx_r = undefined;
}
}
//Function Number: 5
startadrenaline()
{
self endon("death");
self endon("disconnect");
self endon("joined_team");
self endon("faux_spawn");
self endon("exo_overclock_taken");
self endon("EndAdrenaline");
self.overclock_on = 1;
maps\mp\gametypes\_gamelogic::sethasdonecombat(self,1);
self.adrenaline_speed_scalar = 1.12;
if(maps\mp\_utility::_hasperk("specialty_lightweight"))
{
self.movespeedscaler = self.adrenaline_speed_scalar + maps\mp\_utility::lightweightscalar() - 1;
}
else
{
self.movespeedscaler = self.adrenaline_speed_scalar;
}
if(isdefined(level.ishorde) && level.ishorde)
{
var_00 = self getclientomnvar("ui_horde_player_class");
self.movespeedscaler = min(level.classsettings[var_00]["speed"] + 0.25,1.12);
}
maps\mp\gametypes\_weapons::updatemovespeedscale();
self batterydischargebegin("adrenaline_mp");
maps\mp\_exo_battery::set_exo_ability_hud_omnvar("adrenaline_mp","ui_exo_battery_toggle",1);
thread maps\mp\_exo_battery::update_exo_battery_hud("adrenaline_mp");
thread monitor_overclock_battery_charge();
maps\mp\_snd_common_mp::snd_message("mp_exo_overclock_activate");
killoverclockfx();
wait(0.05);
if(!self.overclock_on)
{
return;
}
if(!isdefined(self.exo_cloak_on) || self.exo_cloak_on == 0)
{
self.overclock_fx_l = spawnlinkedfx(level.exo_overclock_vfx_le_active,self,"J_Hip_LE");
self.overclock_fx_r = spawnlinkedfx(level.exo_overclock_vfx_ri_active,self,"J_Hip_RI");
triggerfx(self.overclock_fx_l);
triggerfx(self.overclock_fx_r);
}
}
//Function Number: 6
stopadrenaline(param_00)
{
if(!isdefined(self.overclock_on) || !self.overclock_on)
{
return;
}
if(!isdefined(param_00))
{
param_00 = 1;
}
self notify("EndAdrenaline");
self.overclock_on = 0;
if(maps\mp\_utility::_hasperk("specialty_lightweight"))
{
self.movespeedscaler = maps\mp\_utility::lightweightscalar();
}
else
{
self.movespeedscaler = level.baseplayermovescale;
}
if(isdefined(level.ishorde) && level.ishorde)
{
var_01 = self getclientomnvar("ui_horde_player_class");
self.movespeedscaler = level.classsettings[var_01]["speed"];
}
maps\mp\gametypes\_weapons::updatemovespeedscale();
self.adrenaline_speed_scalar = undefined;
self batterydischargeend("adrenaline_mp");
maps\mp\_exo_battery::set_exo_ability_hud_omnvar("adrenaline_mp","ui_exo_battery_toggle",0);
killoverclockfx();
if(param_00 == 1)
{
maps\mp\_snd_common_mp::snd_message("mp_exo_overclock_deactivate");
wait(0.05);
if(!isdefined(self.exo_cloak_on) || self.exo_cloak_on == 0)
{
self.overclock_fx_l = spawnlinkedfx(level.exo_overclock_vfx_le_inactive,self,"J_Hip_LE");
self.overclock_fx_r = spawnlinkedfx(level.exo_overclock_vfx_ri_inactive,self,"J_Hip_RI");
triggerfx(self.overclock_fx_l);
triggerfx(self.overclock_fx_r);
}
}
}
//Function Number: 7
monitorplayerdeath()
{
self endon("disconnect");
common_scripts\utility::waittill_any("death","joined_team","faux_spawn","exo_overclock_taken");
thread stopadrenaline(0);
}
//Function Number: 8
monitor_overclock_battery_charge()
{
self endon("death");
self endon("disconnect");
self endon("joined_team");
self endon("faux_spawn");
self endon("exo_overclock_taken");
self endon("EndAdrenaline");
while(self.overclock_on == 1)
{
if(self batterygetcharge("adrenaline_mp") <= 0)
{
thread stopadrenaline(1);
}
wait(0.05);
}
}
//Function Number: 9
take_exo_overclock()
{
self notify("kill_battery");
self notify("exo_overclock_taken");
self takeweapon("adrenaline_mp");
}
//Function Number: 10
give_exo_overclock()
{
self giveweapon("adrenaline_mp");
thread watchadrenalineusage();
}
//Function Number: 11
wait_for_game_end()
{
self endon("death");
self endon("disconnect");
self endon("joined_team");
self endon("faux_spawn");
self endon("exo_overclock_taken");
level waittill("game_ended");
thread stopadrenaline(0);
}

View File

@ -0,0 +1,480 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_aerial_pathnodes.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 13
* Decompile Time: 206 ms
* Timestamp: 10/27/2023 1:48:23 AM
*******************************************************************/
//Function Number: 1
waittill_aerial_pathnodes_calculated()
{
while(!isdefined(level.calculated_aerial_nodes_done) || !level.calculated_aerial_nodes_done)
{
wait(0.5);
}
}
//Function Number: 2
get_aerial_offset()
{
if(isdefined(level.aerial_pathnode_offset))
{
return (0,0,level.aerial_pathnode_offset);
}
return (0,0,500);
}
//Function Number: 3
get_group_connect_dist()
{
if(isdefined(level.aerial_pathnode_group_connect_dist))
{
if(level.nextgen)
{
}
else
{
}
return level.aerial_pathnode_group_connect_dist;
}
return 250;
}
//Function Number: 4
node_is_valid__to_convert_to_aerial_pathnode(param_00)
{
return (param_00.type == "Path" && nodeexposedtosky(param_00,1) && !param_00 nodeisdisconnected()) || isdefined(param_00.forceenableaerialnode) && param_00.forceenableaerialnode;
}
//Function Number: 5
calculate_aerial_pathnodes()
{
if(isdefined(level.calculated_aerial_nodes_in_progress) || isdefined(level.calculated_aerial_nodes_done))
{
return;
}
var_00 = getdvar("mapname");
if(var_00 == getdvar("virtualLobbyMap") || var_00 == "mp_character_room" || getdvarint("virtualLobbyActive") == 1)
{
return;
}
level.calculated_aerial_nodes_in_progress = 1;
level.calculated_aerial_nodes_done = 0;
wait(0.5);
level.aerial_pathnodes = [];
var_01 = getallnodes();
foreach(var_03 in var_01)
{
if(node_is_valid__to_convert_to_aerial_pathnode(var_03))
{
level.aerial_pathnodes[level.aerial_pathnodes.size] = var_03;
if(!isdefined(var_03.aerial_neighbors))
{
var_03.aerial_neighbors = [];
}
var_04 = getlinkednodes(var_03);
foreach(var_06 in var_04)
{
if(node_is_valid__to_convert_to_aerial_pathnode(var_06) && !common_scripts\utility::array_contains(var_03.aerial_neighbors,var_06))
{
var_03.aerial_neighbors[var_03.aerial_neighbors.size] = var_06;
if(!isdefined(var_06.aerial_neighbors))
{
var_06.aerial_neighbors = [];
}
if(!common_scripts\utility::array_contains(var_06.aerial_neighbors,var_03))
{
var_06.aerial_neighbors[var_06.aerial_neighbors.size] = var_03;
}
}
}
}
}
var_01 = undefined;
wait(0.05);
var_09 = divide_nodes_into_groups(level.aerial_pathnodes,1);
var_0A = 3;
if(!0)
{
var_0B = get_group_connect_dist();
var_0C = [];
var_0D = 0;
for(var_0E = 0;var_0E < var_09.size;var_0E++)
{
if(!isdefined(var_0C[var_0E]))
{
var_0C[var_0E] = [];
}
foreach(var_03 in var_09[var_0E])
{
for(var_10 = var_0E + 1;var_10 < var_09.size;var_10++)
{
if(!isdefined(var_0C[var_0E][var_10]))
{
var_0C[var_0E][var_10] = [];
}
var_11 = [];
foreach(var_13 in var_09[var_10])
{
var_14 = distance(var_03.origin,var_13.origin);
var_15 = var_14 < var_0B;
var_16 = 0;
if(!var_15)
{
if(isdefined(level.aerial_pathnodes_force_connect))
{
foreach(var_18 in level.aerial_pathnodes_force_connect)
{
var_19 = squared(var_18.radius);
if(distance2dsquared(var_18.origin,var_03.origin) < var_19 && distance2dsquared(var_18.origin,var_13.origin) < var_19)
{
var_16 = 1;
break;
}
}
}
}
var_1B = var_11.size < var_0A || var_14 < var_11[var_0A - 1][2];
if(var_15 && var_1B)
{
if(var_11.size == var_0A)
{
var_11[var_0A - 1] = undefined;
}
var_11[var_11.size] = [var_03,var_13,var_14];
var_11 = common_scripts\utility::array_sort_with_func(var_11,::is_pair_a_closer_than_pair_b);
continue;
}
if(var_16)
{
var_0C[var_0E][var_10][var_0C[var_0E][var_10].size] = [var_03,var_13,-1];
}
}
foreach(var_1E in var_11)
{
var_0C[var_0E][var_10][var_0C[var_0E][var_10].size] = var_1E;
}
}
var_0D++;
if(var_0D >= 50)
{
var_0D = 0;
wait(0.05);
}
}
}
wait(0.05);
var_21 = 0;
for(var_0E = 0;var_0E < var_09.size;var_0E++)
{
for(var_10 = var_0E + 1;var_10 < var_09.size;var_10++)
{
var_21 = var_21 + var_0C[var_0E][var_10].size;
var_0C[var_0E][var_10] = common_scripts\utility::array_sort_with_func(var_0C[var_0E][var_10],::is_pair_a_closer_than_pair_b,150);
if(var_21 > 500)
{
wait(0.05);
var_21 = 0;
}
}
}
wait(0.05);
var_22 = get_aerial_offset();
var_23 = 10;
var_24 = 0;
if(0)
{
level.added_aerial_links = [];
}
for(var_0E = 0;var_0E < var_09.size;var_0E++)
{
for(var_10 = var_0E + 1;var_10 < var_09.size;var_10++)
{
foreach(var_26 in var_0C[var_0E][var_10])
{
var_27 = var_26[0];
var_28 = var_26[1];
if(!node0_has_neighbor_connected_to_node1(var_27,var_28))
{
var_29 = num_node_connections_to_group(var_27,var_28.aerial_group);
var_2A = num_node_connections_to_group(var_28,var_27.aerial_group);
if(var_29 < var_0A && var_2A < var_0A)
{
var_2B = playerphysicstrace(var_27.origin + var_22,var_28.origin + var_22);
var_24++;
var_2C = distancesquared(var_2B,var_28.origin + var_22) < 1;
if(!var_2C && var_26[2] == -1)
{
var_2C = bullettracepassed(var_27.origin + var_22,var_28.origin + var_22,0,undefined);
}
if(var_2C)
{
var_27.aerial_neighbors[var_27.aerial_neighbors.size] = var_28;
var_28.aerial_neighbors[var_28.aerial_neighbors.size] = var_27;
if(0)
{
level.added_aerial_links[level.added_aerial_links.size] = [var_27,var_28];
}
}
if(var_24 % var_23 == 0)
{
wait(0.05);
}
}
}
}
}
}
var_0C = undefined;
var_09 = divide_nodes_into_groups(level.aerial_pathnodes);
if(0)
{
var_09 = common_scripts\utility::array_sort_with_func(var_09,::is_group_a_larger_than_group_b);
for(var_0E = 0;var_0E < var_09.size;var_0E++)
{
foreach(var_03 in var_09[var_0E])
{
var_03.aerial_group = var_0E;
}
}
}
else
{
foreach(var_03 in level.aerial_pathnodes)
{
var_03.aerial_group = undefined;
}
}
var_32 = 0;
for(var_0E = 0;var_0E < var_09.size;var_0E++)
{
var_32 = max(var_09[var_0E].size,var_32);
}
for(var_0E = 0;var_0E < var_09.size;var_0E++)
{
if(var_09[var_0E].size < 0.1 * var_32)
{
foreach(var_03 in var_09[var_0E])
{
level.aerial_pathnodes = common_scripts\utility::array_remove(level.aerial_pathnodes,var_03);
foreach(var_06 in var_03.aerial_neighbors)
{
for(var_10 = 0;var_10 < var_06.aerial_neighbors.size;var_10++)
{
var_35 = var_06.aerial_neighbors[var_10];
if(var_35 == var_03)
{
var_06.aerial_neighbors[var_10] = var_06.aerial_neighbors[var_06.aerial_neighbors.size - 1];
var_06.aerial_neighbors[var_06.aerial_neighbors.size - 1] = undefined;
var_10--;
}
}
}
var_03.aerial_neighbors = undefined;
}
}
}
}
level.calculated_aerial_nodes_done = 1;
level.calculated_aerial_nodes_in_progress = 0;
}
//Function Number: 6
is_group_a_larger_than_group_b(param_00,param_01)
{
return param_00.size > param_01.size;
}
//Function Number: 7
is_pair_a_closer_than_pair_b(param_00,param_01)
{
return param_00[2] < param_01[2];
}
//Function Number: 8
num_node_connections_to_group(param_00,param_01)
{
var_02 = 0;
foreach(var_04 in param_00.aerial_neighbors)
{
if(var_04.aerial_group == param_01)
{
var_02++;
}
}
return var_02;
}
//Function Number: 9
node0_has_neighbor_connected_to_node1(param_00,param_01)
{
foreach(var_03 in param_00.aerial_neighbors)
{
foreach(var_05 in var_03.aerial_neighbors)
{
if(var_05 == param_01)
{
return 1;
}
}
}
return 0;
}
//Function Number: 10
divide_nodes_into_groups(param_00,param_01)
{
if(!isdefined(param_01))
{
param_01 = 0;
}
foreach(var_03 in param_00)
{
var_03.aerial_group = undefined;
}
var_05 = param_00;
var_06 = [];
while(var_05.size > 0)
{
var_07 = var_06.size;
var_06[var_07] = [];
var_05[0].aerial_group = -1;
var_08 = [var_05[0]];
var_09 = 0;
while(var_08.size > 0)
{
var_0A = var_08[0];
var_06[var_07][var_06[var_07].size] = var_0A;
var_0A.aerial_group = var_07;
var_08[0] = var_08[var_08.size - 1];
var_08[var_08.size - 1] = undefined;
foreach(var_0C in var_0A.aerial_neighbors)
{
if(!isdefined(var_0C.aerial_group))
{
var_0C.aerial_group = -1;
var_08[var_08.size] = var_0C;
}
}
for(var_0E = 0;var_0E < var_05.size;var_0E++)
{
if(var_05[var_0E] == var_0A)
{
var_05[var_0E] = var_05[var_05.size - 1];
var_05[var_05.size - 1] = undefined;
break;
}
}
var_09++;
if(var_09 > 100)
{
wait(0.05);
var_09 = 0;
}
}
if(var_06[var_07].size <= param_01)
{
var_06[var_07] = undefined;
continue;
}
wait(0.05);
}
wait(0.05);
return var_06;
}
//Function Number: 11
node_is_aerial(param_00)
{
return isdefined(param_00.aerial_neighbors);
}
//Function Number: 12
get_ent_closest_aerial_node(param_00,param_01)
{
if(!isdefined(param_00))
{
param_00 = 1500;
}
if(!isdefined(param_01))
{
param_01 = 0;
}
var_02 = getnodesinradiussorted(self.origin,param_00,param_01,get_aerial_offset()[2] * 2,"path");
for(var_03 = 0;var_03 < var_02.size;var_03++)
{
if(node_is_aerial(var_02[var_03]))
{
return var_02[var_03];
}
}
}
//Function Number: 13
find_path_between_aerial_nodes(param_00,param_01)
{
param_00.path_to_this_node = [];
var_02 = [param_00];
var_03 = [param_00];
while(!isdefined(param_01.path_to_this_node))
{
var_04 = var_02[0];
var_02 = common_scripts\utility::array_remove(var_02,var_04);
foreach(var_06 in var_04.aerial_neighbors)
{
if(!isdefined(var_06.path_to_this_node))
{
var_06.path_to_this_node = common_scripts\utility::array_add(var_04.path_to_this_node,var_04);
var_02[var_02.size] = var_06;
var_03[var_03.size] = var_06;
}
}
}
var_08 = common_scripts\utility::array_add(param_01.path_to_this_node,param_01);
foreach(var_0A in var_03)
{
var_0A.path_to_this_node = undefined;
}
return var_08;
}

View File

@ -0,0 +1,52 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_animatedmodels.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 2
* Decompile Time: 29 ms
* Timestamp: 10/27/2023 1:48:24 AM
*******************************************************************/
//Function Number: 1
main()
{
if(!isdefined(level.anim_prop_models))
{
level.anim_prop_models = [];
}
var_00 = getarraykeys(level.anim_prop_models);
foreach(var_02 in var_00)
{
var_03 = getarraykeys(level.anim_prop_models[var_02]);
foreach(var_05 in var_03)
{
precachempanim(level.anim_prop_models[var_02][var_05]);
}
}
waittillframeend;
level.init_animatedmodels = [];
var_08 = getentarray("animated_model","targetname");
common_scripts\utility::array_thread(var_08,::animatemodel);
level.init_animatedmodels = undefined;
}
//Function Number: 2
animatemodel()
{
if(isdefined(self.animation))
{
var_00 = self.animation;
}
else
{
var_01 = getarraykeys(level.anim_prop_models[self.model]);
var_02 = var_01[randomint(var_01.size)];
var_00 = level.anim_prop_models[self.model][var_02];
}
self scriptmodelplayanim(var_00);
self willneverchange();
}

View File

@ -0,0 +1,72 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_areas.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 5
* Decompile Time: 74 ms
* Timestamp: 10/27/2023 1:48:24 AM
*******************************************************************/
//Function Number: 1
init()
{
level.softlandingtriggers = getentarray("trigger_multiple_softlanding","classname");
var_00 = getentarray("destructible_vehicle","targetname");
foreach(var_02 in level.softlandingtriggers)
{
if(var_02.script_type != "car")
{
continue;
}
foreach(var_04 in var_00)
{
if(distance(var_02.origin,var_04.origin) > 64)
{
continue;
}
var_02.destructible = var_04;
}
}
thread onplayerconnect();
}
//Function Number: 2
onplayerconnect()
{
for(;;)
{
level waittill("connected",var_00);
var_00.softlanding = undefined;
var_00 thread softlandingwaiter();
}
}
//Function Number: 3
playerentersoftlanding(param_00)
{
self.softlanding = param_00;
}
//Function Number: 4
playerleavesoftlanding(param_00)
{
self.softlanding = undefined;
}
//Function Number: 5
softlandingwaiter()
{
self endon("disconnect");
for(;;)
{
self waittill("soft_landing",var_00,var_01);
if(!isdefined(var_00.destructible))
{
continue;
}
}
}

508
AW/PC/MP/maps/mp/_art.gsc Normal file
View File

@ -0,0 +1,508 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_art.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 36
* Decompile Time: 555 ms
* Timestamp: 10/27/2023 1:48:27 AM
*******************************************************************/
//Function Number: 1
main()
{
if(!isdefined(level.dofdefault))
{
level.dofdefault["nearStart"] = 0;
level.dofdefault["nearEnd"] = 0;
level.dofdefault["farStart"] = 0;
level.dofdefault["farEnd"] = 0;
level.dofdefault["nearBlur"] = 6;
level.dofdefault["farBlur"] = 1.8;
}
}
//Function Number: 2
setup_fog_tweak()
{
}
//Function Number: 3
inittweaks()
{
}
//Function Number: 4
tweaklightset()
{
}
//Function Number: 5
tweakart()
{
}
//Function Number: 6
fovslidercheck()
{
}
//Function Number: 7
construct_vision_ents()
{
if(!isdefined(level.vision_set_fog))
{
level.vision_set_fog = [];
}
var_00 = getentarray("trigger_multiple_visionset","classname");
foreach(var_02 in var_00)
{
if(isdefined(var_02.script_visionset))
{
construct_vision_set(var_02.script_visionset);
}
if(isdefined(var_02.script_visionset_start))
{
construct_vision_set(var_02.script_visionset_start);
}
if(isdefined(var_02.script_visionset_end))
{
construct_vision_set(var_02.script_visionset_end);
}
}
}
//Function Number: 8
construct_vision_set(param_00)
{
if(isdefined(level.vision_set_fog[param_00]))
{
return;
}
create_default_vision_set_fog(param_00);
create_vision_set_vision(param_00);
iprintlnbold("new vision: " + param_00);
}
//Function Number: 9
create_vision_set_vision(param_00)
{
if(!isdefined(level.vision_set_vision))
{
level.vision_set_vision = [];
}
var_01 = spawnstruct();
var_01.name = param_00;
level.vision_set_vision[param_00] = var_01;
return var_01;
}
//Function Number: 10
add_vision_sets_from_triggers()
{
}
//Function Number: 11
add_vision_set(param_00)
{
}
//Function Number: 12
create_default_vision_set_fog(param_00)
{
var_01 = create_vision_set_fog(param_00);
var_01.startdist = 3764.17;
var_01.halfwaydist = 19391;
var_01.red = 0.661137;
var_01.green = 0.554261;
var_01.blue = 0.454014;
var_01.maxopacity = 0.7;
var_01.transitiontime = 0;
var_01.skyfogintensity = 0;
var_01.skyfogminangle = 0;
var_01.skyfogmaxangle = 0;
var_01.heightfogenabled = 0;
var_01.heightfogbaseheight = 0;
var_01.heightfoghalfplanedistance = 1000;
}
//Function Number: 13
create_vision_set_fog(param_00)
{
if(!isdefined(level.vision_set_fog))
{
level.vision_set_fog = [];
}
var_01 = spawnstruct();
var_01.name = param_00;
var_01.skyfogintensity = 0;
var_01.skyfogminangle = 0;
var_01.skyfogmaxangle = 0;
var_01.heightfogenabled = 0;
var_01.heightfogbaseheight = 0;
var_01.heightfoghalfplanedistance = 1000;
level.vision_set_fog[tolower(param_00)] = var_01;
return var_01;
}
//Function Number: 14
set_fog(param_00,param_01)
{
level.vision_set_transition_ent.vision_set = param_00;
level.vision_set_transition_ent.time = param_01;
var_02 = get_fog(param_00);
if(getdvarint("scr_art_tweak") != 0)
{
translateenttosliders(var_02);
param_01 = 0;
}
common_scripts\utility::set_fog_to_ent_values(var_02,param_01);
}
//Function Number: 15
translateenttosliders(param_00)
{
}
//Function Number: 16
hud_init()
{
var_00 = 7;
var_01 = [];
var_02 = 15;
var_03 = int(var_00 / 2);
var_04 = 240 + var_03 * var_02;
var_05 = 0.5 / var_03;
var_06 = var_05;
for(var_07 = 0;var_07 < var_00;var_07++)
{
var_01[var_07] = _newhudelem();
var_01[var_07].location = 0;
var_01[var_07].alignx = "left";
var_01[var_07].aligny = "middle";
var_01[var_07].foreground = 1;
var_01[var_07].fontscale = 2;
var_01[var_07].sort = 20;
if(var_07 == var_03)
{
var_01[var_07].alpha = 1;
}
else
{
var_01[var_07].alpha = var_06;
}
var_01[var_07].x = 20;
var_01[var_07].y = var_04;
var_01[var_07] _settext(".");
if(var_07 == var_03)
{
var_05 = var_05 * -1;
}
var_06 = var_06 + var_05;
var_04 = var_04 - var_02;
}
level.spam_group_hudelems = var_01;
}
//Function Number: 17
_newhudelem()
{
if(!isdefined(level.scripted_elems))
{
level.scripted_elems = [];
}
var_00 = newhudelem();
level.scripted_elems[level.scripted_elems.size] = var_00;
return var_00;
}
//Function Number: 18
_settext(param_00)
{
self.realtext = param_00;
self settext("_");
thread _clearalltextafterhudelem();
var_01 = 0;
foreach(var_03 in level.scripted_elems)
{
if(isdefined(var_03.realtext))
{
var_01 = var_01 + var_03.realtext.size;
var_03 settext(var_03.realtext);
}
}
}
//Function Number: 19
_clearalltextafterhudelem()
{
if(getdvar("netconststrings_enabled") != "0")
{
return;
}
if(level._clearalltextafterhudelem)
{
return;
}
level._clearalltextafterhudelem = 1;
self clearalltextafterhudelem();
wait(0.05);
level._clearalltextafterhudelem = 0;
}
//Function Number: 20
setgroup_up()
{
reset_cmds();
var_00 = undefined;
var_01 = getarraykeys(level.vision_set_fog);
for(var_02 = 0;var_02 < var_01.size;var_02++)
{
if(var_01[var_02] == level.vision_set_transition_ent.vision_set)
{
var_00 = var_02 + 1;
break;
}
}
if(var_00 == var_01.size)
{
return;
}
setcurrentgroup(var_01[var_00]);
}
//Function Number: 21
setgroup_down()
{
reset_cmds();
var_00 = undefined;
var_01 = getarraykeys(level.vision_set_fog);
for(var_02 = 0;var_02 < var_01.size;var_02++)
{
if(var_01[var_02] == level.vision_set_transition_ent.vision_set)
{
var_00 = var_02 - 1;
break;
}
}
if(var_00 < 0)
{
return;
}
setcurrentgroup(var_01[var_00]);
}
//Function Number: 22
reset_cmds()
{
}
//Function Number: 23
vision_set_fog_changes_mp(param_00,param_01)
{
foreach(var_03 in level.players)
{
var_03 visionsetnakedforplayer(param_00,param_01);
var_03 openpopupmenu("dev_vision_exec");
wait(0.05);
var_03 closepopupmenu("dev_vision_exec");
}
set_fog(param_00,param_01);
}
//Function Number: 24
setcurrentgroup(param_00)
{
var_01 = getarraykeys(level.vision_set_fog);
if(level.currentgen)
{
var_02 = param_00 + "_cg";
var_03 = common_scripts\utility::array_find(var_01,var_02);
if(isdefined(var_03))
{
param_00 = var_02;
}
}
level.spam_model_current_group = param_00;
var_04 = 0;
var_05 = int(level.spam_group_hudelems.size / 2);
for(var_06 = 0;var_06 < var_01.size;var_06++)
{
if(var_01[var_06] == param_00)
{
var_04 = var_06;
break;
}
}
level.spam_group_hudelems[var_05] _settext(var_01[var_04]);
for(var_06 = 1;var_06 < level.spam_group_hudelems.size - var_05;var_06++)
{
if(var_04 - var_06 < 0)
{
level.spam_group_hudelems[var_05 + var_06] _settext(".");
continue;
}
level.spam_group_hudelems[var_05 + var_06] _settext(var_01[var_04 - var_06]);
}
for(var_06 = 1;var_06 < level.spam_group_hudelems.size - var_05;var_06++)
{
if(var_04 + var_06 > var_01.size - 1)
{
level.spam_group_hudelems[var_05 - var_06] _settext(".");
continue;
}
level.spam_group_hudelems[var_05 - var_06] _settext(var_01[var_04 + var_06]);
}
vision_set_fog_changes_mp(var_01[var_04],0);
}
//Function Number: 25
get_fog(param_00)
{
if(!isdefined(level.vision_set_fog))
{
level.vision_set_fog = [];
}
var_01 = level.vision_set_fog[param_00];
return var_01;
}
//Function Number: 26
init_fog_transition()
{
if(!isdefined(level.fog_transition_ent))
{
level.fog_transition_ent = spawnstruct();
level.fog_transition_ent.fogset = "";
level.fog_transition_ent.time = 0;
}
}
//Function Number: 27
playerinit()
{
var_00 = level.vision_set_transition_ent.vision_set;
level.vision_set_transition_ent.vision_set = "";
level.vision_set_transition_ent.time = "";
init_fog_transition();
level.fog_transition_ent.fogset = "";
level.fog_transition_ent.time = "";
setcurrentgroup(var_00);
}
//Function Number: 28
button_down(param_00,param_01)
{
var_02 = level.player buttonpressed(param_00);
if(!var_02)
{
var_02 = level.player buttonpressed(param_01);
}
if(!isdefined(level.buttons[param_00]))
{
level.buttons[param_00] = 0;
}
if(gettime() < level.buttons[param_00])
{
return 0;
}
level.buttons[param_00] = gettime() + 400;
return var_02;
}
//Function Number: 29
dumpsettings()
{
}
//Function Number: 30
artstartvisionfileexport()
{
common_scripts\utility::fileprint_launcher_start_file();
}
//Function Number: 31
artendvisionfileexport()
{
return common_scripts\utility::fileprint_launcher_end_file("\\share\\raw\\vision\\" + level.script + ".vision",1);
}
//Function Number: 32
artstartfogfileexport()
{
common_scripts\utility::fileprint_launcher_start_file();
}
//Function Number: 33
artendfogfileexport()
{
return common_scripts\utility::fileprint_launcher_end_file("\\share\\raw\\maps\\createart\\" + level.script + "_art.gsc",1);
}
//Function Number: 34
artfxprintlnfog()
{
common_scripts\utility::fileprint_launcher("");
common_scripts\utility::fileprint_launcher("\t//* Fog section * ");
common_scripts\utility::fileprint_launcher("");
common_scripts\utility::fileprint_launcher("\tsetDevDvar( \"scr_fog_disable\", \" + getdvarint("scr_fog_disable") + "\" + " );");
common_scripts\utility::fileprint_launcher("");
common_scripts\utility::fileprint_launcher("\t/$");
if(isusinghdr())
{
common_scripts\utility::fileprint_launcher("\tlevel._art_fog_setup = maps\\createart\\" + level.script + "_fog_hdr::main;");
}
else
{
common_scripts\utility::fileprint_launcher("\tlevel._art_fog_setup = maps\\createart\\" + level.script + "_fog::main;");
}
common_scripts\utility::fileprint_launcher("\t$/");
}
//Function Number: 35
art_print_fog()
{
}
//Function Number: 36
create_light_set(param_00)
{
if(!isdefined(level.light_set))
{
level.light_set = [];
}
var_01 = spawnstruct();
var_01.name = param_00;
level.light_set[param_00] = var_01;
return var_01;
}

573
AW/PC/MP/maps/mp/_audio.gsc Normal file
View File

@ -0,0 +1,573 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_audio.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 34
* Decompile Time: 644 ms
* Timestamp: 10/27/2023 1:48:29 AM
*******************************************************************/
//Function Number: 1
init_audio()
{
if(!isdefined(level.audio))
{
level.audio = spawnstruct();
}
init_reverb();
init_whizby();
level.onplayerconnectaudioinit = ::onplayerconnectaudioinit;
}
//Function Number: 2
onplayerconnectaudioinit()
{
apply_reverb("default");
}
//Function Number: 3
init_reverb()
{
add_reverb("default","generic",0.15,0.9,2);
}
//Function Number: 4
add_reverb(param_00,param_01,param_02,param_03,param_04)
{
var_05 = [];
is_roomtype_valid(param_01);
var_05["roomtype"] = param_01;
var_05["wetlevel"] = param_02;
var_05["drylevel"] = param_03;
var_05["fadetime"] = param_04;
level.audio.reverb_settings[param_00] = var_05;
}
//Function Number: 5
is_roomtype_valid(param_00)
{
}
//Function Number: 6
apply_reverb(param_00)
{
if(!isdefined(level.audio.reverb_settings[param_00]))
{
var_01 = level.audio.reverb_settings["default"];
}
else
{
var_01 = level.audio.reverb_settings[var_01];
}
self setreverb("snd_enveffectsprio_level",var_01["roomtype"],var_01["drylevel"],var_01["wetlevel"],var_01["fadetime"]);
}
//Function Number: 7
init_whizby()
{
level.audio.whizby_settings = [];
set_whizby_radius(15,30,50);
set_whizby_spread(150,250,350);
}
//Function Number: 8
set_whizby_radius(param_00,param_01,param_02)
{
level.audio.whizby_settings["radius"] = [param_00,param_01,param_02];
}
//Function Number: 9
set_whizby_spread(param_00,param_01,param_02)
{
level.audio.whizby_settings["spread"] = [param_00,param_01,param_02];
}
//Function Number: 10
apply_whizby()
{
var_00 = level.audio.whizby_settings;
var_01 = var_00["spread"];
var_02 = var_00["radius"];
self setwhizbyspreads(var_01[0],var_01[1],var_01[2]);
self setwhizbyradii(var_02[0],var_02[1],var_02[2]);
}
//Function Number: 11
snd_play_team_splash(param_00,param_01)
{
if(!isdefined(param_00))
{
param_00 = "null";
}
if(!isdefined(param_01))
{
param_01 = "null";
}
if(level.teambased)
{
foreach(var_03 in level.players)
{
if(isdefined(var_03) && issentient(var_03) && issentient(self) && var_03.team != self.team)
{
if(soundexists(param_01))
{
var_03 playlocalsound(param_01);
}
continue;
}
if(isdefined(var_03) && issentient(var_03) && issentient(self) && var_03.team == self.team)
{
if(soundexists(param_00))
{
var_03 playlocalsound(param_00);
}
}
}
}
}
//Function Number: 12
snd_play_on_notetrack_timer(param_00,param_01,param_02,param_03)
{
}
//Function Number: 13
snd_play_on_notetrack(param_00,param_01,param_02)
{
self endon("stop_sequencing_notetracks");
self endon("death");
sndx_play_on_notetrack_internal(param_00,param_01,param_02);
}
//Function Number: 14
sndx_play_on_notetrack_internal(param_00,param_01,param_02)
{
for(;;)
{
self waittill(param_01,var_03);
if(isdefined(var_03) && var_03 != "end")
{
if(isarray(param_00))
{
var_04 = param_00[var_03];
if(isdefined(var_04))
{
self playsound(var_04);
}
continue;
}
if(param_01 == var_03)
{
self playsound(param_00);
}
}
}
}
//Function Number: 15
scriptmodelplayanimwithnotify(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
if(isdefined(param_04))
{
level endon(param_04);
}
param_00 scriptmodelplayanimdeltamotion(param_01,param_02);
thread scriptmodelplayanimwithnotify_notetracks(param_00,param_02,param_03,param_04,param_05,param_06);
}
//Function Number: 16
scriptmodelplayanimwithnotify_notetracks(param_00,param_01,param_02,param_03,param_04,param_05)
{
if(isdefined(param_03))
{
level endon(param_03);
}
if(isdefined(param_04))
{
param_00 endon(param_04);
}
if(isdefined(param_05))
{
param_00 endon(param_05);
}
param_00 endon("death");
for(;;)
{
param_00 waittill(param_01,var_06);
if(isdefined(var_06) && var_06 == param_01)
{
param_00 playsound(param_02);
}
}
}
//Function Number: 17
scriptmodelplayanimwithnotify_uniquename(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
{
if(isdefined(param_05))
{
level endon(param_05);
}
param_00 scriptmodelplayanimdeltamotion(param_01,param_02);
thread scriptmodelplayanimwithnotify_notetracks_uniquename(param_00,param_02,param_03,param_04,param_05,param_06,param_07);
}
//Function Number: 18
scriptmodelplayanimwithnotify_notetracks_uniquename(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
if(isdefined(param_04))
{
level endon(param_04);
}
if(isdefined(param_05))
{
param_00 endon(param_05);
}
if(isdefined(param_06))
{
param_00 endon(param_06);
}
param_00 endon("death");
if(isarray(param_02))
{
var_07 = param_02.size;
for(;;)
{
param_00 waittill(param_01,var_08);
if(isdefined(var_08))
{
for(var_09 = 0;var_09 < var_07;var_09++)
{
if(var_08 == param_02[var_09])
{
param_00 playsound(param_03[var_09]);
}
}
}
}
return;
}
for(;;)
{
param_00 waittill(param_01,var_08);
if(isdefined(var_08) && var_08 == param_02)
{
param_00 playsound(param_03);
}
}
}
//Function Number: 19
snd_veh_play_loops(param_00,param_01,param_02)
{
var_03 = self;
var_04 = [param_00,param_01,param_02];
var_05[0] = spawn("script_origin",var_03.origin);
var_05[0] vehicle_jetbikesethoverforcescale(var_03);
var_05[0] playloopsound(param_00);
var_05[1] = spawn("script_origin",var_03.origin);
var_05[1] vehicle_jetbikesethoverforcescale(var_03);
var_05[1] playloopsound(param_01);
var_05[2] = spawn("script_origin",var_03.origin);
var_05[2] vehicle_jetbikesethoverforcescale(var_03);
var_05[2] playloopsound(param_02);
var_03 waittill("death");
foreach(var_07 in var_05)
{
if(isdefined(var_07))
{
wait(0.06);
var_07 delete();
}
}
}
//Function Number: 20
deprecated_aud_map(param_00,param_01)
{
var_02 = 0;
var_03 = param_01.size;
var_04 = param_01[0];
for(var_05 = 1;var_05 < param_01.size;var_05++)
{
var_06 = param_01[var_05];
if(param_00 >= var_04[0] && param_00 <= var_06[0])
{
var_07 = var_04[0];
var_08 = var_06[0];
var_09 = var_04[1];
var_0A = var_06[1];
var_0B = param_00 - var_07 / var_08 - var_07;
var_02 = var_09 + var_0B * var_0A - var_09;
break;
}
else
{
var_04 = var_06;
}
}
return var_02;
}
//Function Number: 21
snd_play_loop_in_space(param_00,param_01,param_02,param_03)
{
var_04 = 0.2;
if(isdefined(param_03))
{
var_04 = param_03;
}
var_05 = spawn("script_origin",param_01);
var_05 playloopsound(param_00);
thread sndx_play_loop_in_space_internal(var_05,param_02,var_04);
return var_05;
}
//Function Number: 22
sndx_play_loop_in_space_internal(param_00,param_01,param_02)
{
level waittill(param_01);
if(isdefined(param_00))
{
param_00 scalevolume(0,param_02);
wait(param_02 + 0.05);
param_00 delete();
}
}
//Function Number: 23
snd_script_timer(param_00)
{
level.timer_number = 0;
if(!isdefined(param_00))
{
param_00 = 0.1;
}
for(;;)
{
iprintln(level.timer_number);
wait(param_00);
level.timer_number = level.timer_number + param_00;
}
}
//Function Number: 24
snd_play_in_space(param_00,param_01,param_02,param_03)
{
var_04 = 9;
var_05 = 0.75;
var_06 = spawn("script_origin",param_01);
var_06 playsound(param_00);
var_06 thread sndx_play_in_space_internal(var_04,var_05);
return var_06;
}
//Function Number: 25
sndx_play_in_space_internal(param_00,param_01)
{
var_02 = 9;
var_03 = 0.05;
var_04 = self;
if(isdefined(param_00))
{
var_02 = param_00;
}
if(isdefined(param_01))
{
var_03 = param_01;
}
wait(var_02);
if(isdefined(var_04))
{
var_04 scalevolume(0,var_03);
wait(var_03 + 0.05);
if(isdefined(var_04))
{
var_04 delete();
}
}
}
//Function Number: 26
snd_play_in_space_delayed(param_00,param_01,param_02,param_03,param_04)
{
var_05 = 9;
var_06 = 0.75;
var_07 = spawn("script_origin",param_01);
var_07 thread sndx_play_in_space_delayed_internal(param_00,param_02,param_03,param_04);
return var_07;
}
//Function Number: 27
sndx_play_in_space_delayed_internal(param_00,param_01,param_02,param_03)
{
wait(param_01);
var_04 = 9;
var_05 = 0.05;
var_06 = self;
var_06 playsound(param_00);
if(isdefined(param_02))
{
var_04 = param_02;
}
if(isdefined(param_03))
{
var_05 = param_03;
}
wait(var_04);
if(isdefined(var_06))
{
var_06 scalevolume(0,var_05);
wait(var_05 + 0.05);
if(isdefined(var_06))
{
var_06 delete();
}
}
}
//Function Number: 28
snd_play_linked(param_00,param_01,param_02,param_03)
{
var_04 = spawn("script_origin",param_01.origin);
var_04 linkto(param_01);
var_04 thread sndx_play_linked_internal(param_00,param_01,param_02,param_03);
return var_04;
}
//Function Number: 29
sndx_play_linked_internal(param_00,param_01,param_02,param_03)
{
var_04 = 9;
var_05 = 0.05;
var_06 = self;
var_06 playsound(param_00);
if(isdefined(param_02))
{
var_04 = param_02;
}
if(isdefined(param_03))
{
var_05 = param_03;
}
wait(var_04);
if(isdefined(var_06))
{
var_06 scalevolume(0,var_05);
wait(var_05 + 0.05);
var_06 delete();
}
}
//Function Number: 30
snd_play_linked_loop(param_00,param_01,param_02)
{
var_03 = spawn("script_origin",param_01.origin);
var_03 linkto(param_01);
var_03 thread sndx_play_linked_loop_internal(param_00,param_01,param_02);
return var_03;
}
//Function Number: 31
sndx_play_linked_loop_internal(param_00,param_01,param_02)
{
var_03 = 0.05;
var_04 = self;
var_04 playloopsound(param_00);
if(isdefined(param_02))
{
var_03 = param_02;
}
param_01 waittill("death");
if(isdefined(var_04))
{
var_04 scalevolume(0,var_03);
wait(var_03 + 0.05);
var_04 delete();
}
}
//Function Number: 32
aud_print_3d_on_ent(param_00,param_01,param_02,param_03,param_04)
{
if(isdefined(self))
{
var_05 = (1,1,1);
var_06 = (1,0,0);
var_07 = (0,1,0);
var_08 = (0,1,1);
var_09 = 5;
var_0A = var_05;
if(isdefined(param_01))
{
var_09 = param_01;
}
if(isdefined(param_02))
{
var_0A = param_02;
switch(var_0A)
{
case "red":
break;
case "white":
break;
case "blue":
break;
case "green":
break;
default:
break;
}
}
}
}
//Function Number: 33
audx_print_3d_timer(param_00)
{
self endon("death");
wait(param_00);
if(isdefined(self))
{
self notify("aud_stop_3D_print");
}
}
//Function Number: 34
snd_vehicle_mp()
{
}

View File

@ -0,0 +1,448 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_awards.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 19
* Decompile Time: 295 ms
* Timestamp: 10/27/2023 1:48:30 AM
*******************************************************************/
//Function Number: 1
init()
{
initawards();
level thread onplayerconnect();
}
//Function Number: 2
onplayerconnect()
{
for(;;)
{
level waittill("connected",var_00);
if(!isdefined(var_00.pers["stats"]))
{
var_00.pers["stats"] = [];
}
var_00.stats = var_00.pers["stats"];
if(!var_00.stats.size)
{
foreach(var_03, var_02 in level.awards)
{
var_00 maps\mp\_utility::initplayerstat(var_03,level.awards[var_03].defaultvalue);
}
}
}
}
//Function Number: 3
initawards()
{
initstataward("headshots",0,1,::highesetwinsupdateplayerdata);
initstataward("multikill",0,1,::highesetwinsupdateplayerdata);
initstataward("avengekills",0,1,::highesetwinsupdateplayerdata);
initstataward("comebacks",0,1,::highesetwinsupdateplayerdata);
initstataward("rescues",0,1,::highesetwinsupdateplayerdata);
initstataward("longshots",0,1,::highesetwinsupdateplayerdata);
initstataward("revengekills",0,1,::highesetwinsupdateplayerdata);
initstataward("bulletpenkills",0,1,::highesetwinsupdateplayerdata);
initstataward("throwback_kill",0,1,::highesetwinsupdateplayerdata);
initstataward("firstblood",0,1,::highesetwinsupdateplayerdata);
initstataward("posthumous",0,1,::highesetwinsupdateplayerdata);
initstataward("assistedsuicide",0,1,::highesetwinsupdateplayerdata);
initstataward("buzzkill",0,1,::highesetwinsupdateplayerdata);
initstataward("oneshotkill",0,1,::highesetwinsupdateplayerdata);
initstataward("air_to_air_kill",0,1,::highesetwinsupdateplayerdata);
initstataward("air_to_ground_kill",0,1,::highesetwinsupdateplayerdata);
initstataward("ground_to_air_kill",0,1,::highesetwinsupdateplayerdata);
initstataward("doublekill",0,1,::highesetwinsupdateplayerdata);
initstataward("triplekill",0,1,::highesetwinsupdateplayerdata);
initstataward("fourkill",0,1,::highesetwinsupdateplayerdata);
initstataward("fivekill",0,1,::highesetwinsupdateplayerdata);
initstataward("sixkill",0,1,::highesetwinsupdateplayerdata);
initstataward("sevenkill",0,1,::highesetwinsupdateplayerdata);
initstataward("eightkill",0,1,::highesetwinsupdateplayerdata);
initstataward("hijacker",0,1,::highesetwinsupdateplayerdata);
initstataward("backstab",0,1,::highesetwinsupdateplayerdata);
initstataward("5killstreak",0,1,::highesetwinsupdateplayerdata);
initstataward("10killstreak",0,1,::highesetwinsupdateplayerdata);
initstataward("15killstreak",0,1,::highesetwinsupdateplayerdata);
initstataward("20killstreak",0,1,::highesetwinsupdateplayerdata);
initstataward("25killstreak",0,1,::highesetwinsupdateplayerdata);
initstataward("30killstreak",0,1,::highesetwinsupdateplayerdata);
initstataward("30pluskillstreak",0,1,::highesetwinsupdateplayerdata);
initstataward("pointblank",0,1,::highesetwinsupdateplayerdata);
initstataward("firstplacekill",0,1,::highesetwinsupdateplayerdata);
initstataward("boostslamkill",0,1,::highesetwinsupdateplayerdata);
initstataward("assault",0,1,::highesetwinsupdateplayerdata);
initstataward("defends",0,1,::highesetwinsupdateplayerdata);
initstataward("exo_knife_kill",0,1,::highesetwinsupdateplayerdata);
initstataward("exo_knife_recall_kill",0,1,::highesetwinsupdateplayerdata);
initstataward("near_death_kill",0,1,::highesetwinsupdateplayerdata);
initstataward("slide_kill",0,1,::highesetwinsupdateplayerdata);
initstataward("flash_kill",0,1,::highesetwinsupdateplayerdata);
initstataward("riot_kill",0,1,::highesetwinsupdateplayerdata);
initstataward("melee_air_to_air",0,1,::highesetwinsupdateplayerdata);
initstataward("assist_riot_shield",0,1,::highesetwinsupdateplayerdata);
initstataward("semtex_stick",0,1,::highesetwinsupdateplayerdata);
initstataward("stuck_with_explosive",0,1,::highesetwinsupdateplayerdata);
initstataward("crossbow_stick",0,1,::highesetwinsupdateplayerdata);
initstataward("multiKillOneBullet",0,1,::highesetwinsupdateplayerdata);
initstataward("think_fast",0,1,::highesetwinsupdateplayerdata);
initstataward("take_and_kill",0,1,::highesetwinsupdateplayerdata);
initstataward("four_play",0,1,::highesetwinsupdateplayerdata);
initstataward("sharepackage",0,1,::highesetwinsupdateplayerdata);
initstataward("map_killstreak",0,1,::highesetwinsupdateplayerdata);
initstataward("killstreak_tag",0,1,::highesetwinsupdateplayerdata);
initstataward("killstreak_join",0,1,::highesetwinsupdateplayerdata);
initstataward("kills",0,0,::highestwins);
initstataward("longestkillstreak",0,0,::highestwins);
initstataward("knifekills",0,0,::highestwins);
initstataward("kdratio",0,0,::highestwins);
initstataward("deaths",0,0,::lowestwithhalfplayedtime);
initstataward("assists",0,0,::highestwins);
initstataward("totalGameScore",0,0,::highestwins);
initstataward("scorePerMinute",0,0,::highestwins);
initstataward("mostScorePerLife",0,0,::highestwins);
initstataward("killStreaksUsed",0,0,::highestwins);
initstataward("humiliation",0,1,::highesetwinsupdateplayerdata);
initstataward("regicide",0,1,::highesetwinsupdateplayerdata);
initstataward("gunslinger",0,1,::highesetwinsupdateplayerdata);
initstataward("dejavu",0,1,::highesetwinsupdateplayerdata);
initstataward("levelup",0,1,::highesetwinsupdateplayerdata);
initstataward("omegaman",0,1,::highesetwinsupdateplayerdata);
initstataward("plague",0,1,::highesetwinsupdateplayerdata);
initstataward("patientzero",0,1,::highesetwinsupdateplayerdata);
initstataward("careless",0,1,::highesetwinsupdateplayerdata);
initstataward("survivor",0,1,::highesetwinsupdateplayerdata);
initstataward("contagious",0,1,::highesetwinsupdateplayerdata);
initstataward("flagscaptured",0,1,::highesetwinsupdateplayerdata);
initstataward("flagsreturned",0,1,::highesetwinsupdateplayerdata);
initstataward("flagcarrierkills",0,1,::highesetwinsupdateplayerdata);
initstataward("flagscarried",0,1,::highesetwinsupdateplayerdata);
initstataward("killsasflagcarrier",0,1,::highesetwinsupdateplayerdata);
initstataward("pointscaptured",0,1,::highesetwinsupdateplayerdata);
initstataward("kill_while_capture",0,1,::highesetwinsupdateplayerdata);
initstataward("opening_move",0,1,::highesetwinsupdateplayerdata);
initstataward("hp_secure",0,1,::highesetwinsupdateplayerdata);
initstataward("targetsdestroyed",0,1,::highesetwinsupdateplayerdata);
initstataward("bombsplanted",0,1,::highesetwinsupdateplayerdata);
initstataward("bombsdefused",0,1,::highesetwinsupdateplayerdata);
initstataward("ninja_defuse",0,1,::highesetwinsupdateplayerdata);
initstataward("last_man_defuse",0,1,::highesetwinsupdateplayerdata);
initstataward("elimination",0,1,::highesetwinsupdateplayerdata);
initstataward("last_man_standing",0,1,::highesetwinsupdateplayerdata);
initstataward("sr_tag_elimination",0,1,::highesetwinsupdateplayerdata);
initstataward("sr_tag_revive",0,1,::highesetwinsupdateplayerdata);
initstataward("killsconfirmed",0,1,::highesetwinsupdateplayerdata);
initstataward("killsdenied",0,1,::highesetwinsupdateplayerdata);
initstataward("kill_denied_retrieved",0,1,::highesetwinsupdateplayerdata);
initstataward("tag_collector",0,1,::highesetwinsupdateplayerdata);
initstataward("touchdown",0,1,::highesetwinsupdateplayerdata);
initstataward("fieldgoal",0,1,::highesetwinsupdateplayerdata);
initstataward("interception",0,1,::highesetwinsupdateplayerdata);
initstataward("kill_with_ball",0,1,::highesetwinsupdateplayerdata);
initstataward("ball_score_assist",0,1,::highesetwinsupdateplayerdata);
initstataward("pass_kill_pickup",0,1,::highesetwinsupdateplayerdata);
initstataward("killedBallCarrier",0,1,::highesetwinsupdateplayerdata);
initstataward("uav_destroyed",0,1,::highesetwinsupdateplayerdata);
initstataward("warbird_destroyed",0,1,::highesetwinsupdateplayerdata);
initstataward("paladin_destroyed",0,1,::highesetwinsupdateplayerdata);
initstataward("vulcan_destroyed",0,1,::highesetwinsupdateplayerdata);
initstataward("goliath_destroyed",0,1,::highesetwinsupdateplayerdata);
initstataward("missile_strike_destroyed",0,1,::highesetwinsupdateplayerdata);
initstataward("sentry_gun_destroyed",0,1,::highesetwinsupdateplayerdata);
initstataward("strafing_run_destroyed",0,1,::highesetwinsupdateplayerdata);
initstataward("assault_drone_destroyed",0,1,::highesetwinsupdateplayerdata);
initstataward("recon_drone_destroyed",0,1,::highesetwinsupdateplayerdata);
initstataward("map_killstreak_destroyed",0,1,::highesetwinsupdateplayerdata);
initstataward("assist_killstreak_destroyed",0,1,::highesetwinsupdateplayerdata);
initstataward("warbird_kill",0,1,::highesetwinsupdateplayerdata);
initstataward("paladin_kill",0,1,::highesetwinsupdateplayerdata);
initstataward("vulcan_kill",0,1,::highesetwinsupdateplayerdata);
initstataward("goliath_kill",0,1,::highesetwinsupdateplayerdata);
initstataward("airdrop_kill",0,1,::highesetwinsupdateplayerdata);
initstataward("airdrop_trap_kill",0,1,::highesetwinsupdateplayerdata);
initstataward("missile_strike_kill",0,1,::highesetwinsupdateplayerdata);
initstataward("sentry_gun_kill",0,1,::highesetwinsupdateplayerdata);
initstataward("strafing_run_kill",0,1,::highesetwinsupdateplayerdata);
initstataward("assault_drone_kill",0,1,::highesetwinsupdateplayerdata);
initstataward("map_killstreak_kill",0,1,::highesetwinsupdateplayerdata);
initstataward("coop_killstreak_kill",0,1,::highesetwinsupdateplayerdata);
initstataward("uav_earned",0,1,::highesetwinsupdateplayerdata);
initstataward("warbird_earned",0,1,::highesetwinsupdateplayerdata);
initstataward("orbitalsupport_earned",0,1,::highesetwinsupdateplayerdata);
initstataward("orbital_strike_laser_earned",0,1,::highesetwinsupdateplayerdata);
initstataward("orbital_carepackage_earned",0,1,::highesetwinsupdateplayerdata);
initstataward("heavy_exosuit_earned",0,1,::highesetwinsupdateplayerdata);
initstataward("missile_strike_earned",0,1,::highesetwinsupdateplayerdata);
initstataward("remote_mg_sentry_turret_earned",0,1,::highesetwinsupdateplayerdata);
initstataward("strafing_run_airstrike_earned",0,1,::highesetwinsupdateplayerdata);
initstataward("assault_ugv_earned",0,1,::highesetwinsupdateplayerdata);
initstataward("recon_ugv_earned",0,1,::highesetwinsupdateplayerdata);
initstataward("emp_earned",0,1,::highesetwinsupdateplayerdata);
initstataward("numMatchesRecorded",0,0,::highestwins);
}
//Function Number: 4
initstataward(param_00,param_01,param_02,param_03,param_04,param_05)
{
level.awards[param_00] = spawnstruct();
level.awards[param_00].defaultvalue = param_01;
if(isdefined(param_03))
{
level.awards[param_00].process = param_03;
}
if(isdefined(param_02))
{
level.awards[param_00].saveonupdate = param_02;
}
if(isdefined(param_04))
{
level.awards[param_00].var1 = param_04;
}
if(isdefined(param_05))
{
level.awards[param_00].var2 = param_05;
}
}
//Function Number: 5
setpersonalbestifgreater(param_00)
{
var_01 = self getcommonplayerdata("bests",param_00);
var_02 = maps\mp\_utility::getplayerstat(param_00);
var_02 = getformattedvalue(param_00,var_02);
if(var_01 == 0 || var_02 > var_01)
{
self setcommonplayerdata("bests",param_00,var_02);
}
}
//Function Number: 6
setpersonalbestiflower(param_00)
{
var_01 = self getcommonplayerdata("bests",param_00);
var_02 = maps\mp\_utility::getplayerstat(param_00);
var_02 = getformattedvalue(param_00,var_02);
if(var_01 == 0 || var_02 < var_01)
{
self setcommonplayerdata("bests",param_00,var_02);
}
}
//Function Number: 7
calculatekd(param_00)
{
var_01 = param_00 maps\mp\_utility::getplayerstat("kills");
var_02 = param_00 maps\mp\_utility::getplayerstat("deaths");
if(var_02 == 0)
{
var_02 = 1;
}
param_00 maps\mp\_utility::setplayerstat("kdratio",var_01 / var_02);
}
//Function Number: 8
gettotalscore(param_00)
{
var_01 = param_00.score;
if(!level.teambased)
{
var_01 = param_00.extrascore0;
}
return var_01;
}
//Function Number: 9
calculatespm(param_00)
{
if(param_00.timeplayed["total"] < 1)
{
return;
}
var_01 = gettotalscore(param_00);
var_02 = param_00.timeplayed["total"];
var_03 = var_01 / var_02 / 60;
param_00 maps\mp\_utility::setplayerstat("totalGameScore",var_01);
param_00 maps\mp\_utility::setplayerstat("scorePerMinute",var_03);
}
//Function Number: 10
assignawards()
{
foreach(var_01 in level.players)
{
if(!var_01 maps\mp\_utility::rankingenabled())
{
return;
}
var_01 maps\mp\_utility::incplayerstat("numMatchesRecorded",1);
calculatekd(var_01);
calculatespm(var_01);
}
foreach(var_08, var_04 in level.awards)
{
if(!isdefined(level.awards[var_08].process) || isdefined(level.awards[var_08].saveonupdate) && level.awards[var_08].saveonupdate)
{
continue;
}
var_05 = level.awards[var_08].process;
var_06 = level.awards[var_08].var1;
var_07 = level.awards[var_08].var2;
if(isdefined(var_06) && isdefined(var_07))
{
[[ var_05 ]](var_08,var_06,var_07);
continue;
}
if(isdefined(var_06))
{
[[ var_05 ]](var_08,var_06);
continue;
}
[[ var_05 ]](var_08);
}
}
//Function Number: 11
giveaward(param_00,param_01)
{
param_01 = getformattedvalue(param_00,param_01);
var_02 = self getcommonplayerdata("round","awards",param_00);
self setcommonplayerdata("round","awards",param_00,var_02 + param_01);
if(maps\mp\_utility::practiceroundgame())
{
return;
}
if(shouldaveragetotal(param_00))
{
var_03 = self getcommonplayerdata("awards","numMatchesRecorded");
var_04 = self getcommonplayerdata("awards",param_00);
var_05 = var_04 * var_03;
var_06 = int(var_05 + param_01 / var_03 + 1);
self setcommonplayerdata("awards",param_00,var_06);
return;
}
var_02 = self getcommonplayerdata("awards",param_00);
self setcommonplayerdata("awards",param_00,var_02 + param_01);
}
//Function Number: 12
shouldaveragetotal(param_00)
{
switch(param_00)
{
case "scorePerMinute":
case "kdratio":
break;
}
}
//Function Number: 13
getformattedvalue(param_00,param_01)
{
var_02 = tablelookup("mp/awardTable.csv",1,param_00,5);
switch(var_02)
{
case "float":
break;
case "multi":
case "ratio":
case "time":
case "count":
case "distance":
case "none":
default:
break;
}
}
//Function Number: 14
highesetwinsupdateplayerdata(param_00,param_01)
{
if(maps\mp\_utility::rankingenabled())
{
giveaward(param_00,param_01);
setpersonalbestifgreater(param_00);
}
}
//Function Number: 15
lowestwinsupdateplayerdata(param_00,param_01)
{
if(maps\mp\_utility::rankingenabled())
{
giveaward(param_00,param_01);
setpersonalbestiflower(param_00);
}
}
//Function Number: 16
highestwins(param_00,param_01)
{
foreach(var_03 in level.players)
{
if(var_03 maps\mp\_utility::rankingenabled() && var_03 statvaluechanged(param_00) && !isdefined(param_01) || var_03 maps\mp\_utility::getplayerstat(param_00) >= param_01)
{
var_04 = var_03 maps\mp\_utility::getplayerstat(param_00);
var_03 highesetwinsupdateplayerdata(param_00,var_04);
}
}
}
//Function Number: 17
lowestwins(param_00,param_01)
{
foreach(var_03 in level.players)
{
if(var_03 maps\mp\_utility::rankingenabled() && var_03 statvaluechanged(param_00) && !isdefined(param_01) || var_03 maps\mp\_utility::getplayerstat(param_00) <= param_01)
{
var_04 = var_03 maps\mp\_utility::getplayerstat(param_00);
var_03 lowestwinsupdateplayerdata(param_00,var_04);
}
}
}
//Function Number: 18
lowestwithhalfplayedtime(param_00)
{
var_01 = maps\mp\_utility::gettimepassed() / 1000;
var_02 = var_01 * 0.5;
foreach(var_04 in level.players)
{
if(var_04.hasspawned && var_04.timeplayed["total"] >= var_02)
{
var_05 = var_04 maps\mp\_utility::getplayerstat(param_00);
var_04 lowestwinsupdateplayerdata(param_00,var_05);
}
}
}
//Function Number: 19
statvaluechanged(param_00)
{
var_01 = maps\mp\_utility::getplayerstat(param_00);
var_02 = level.awards[param_00].defaultvalue;
if(var_01 == var_02)
{
return 0;
}
return 1;
}

View File

@ -0,0 +1,99 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_braggingrights.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 2
* Decompile Time: 28 ms
* Timestamp: 10/27/2023 1:48:31 AM
*******************************************************************/
//Function Number: 1
resolvebraggingrights()
{
var_00 = getnumbraggingrights();
var_01 = [];
for(var_02 = 0;var_02 < var_00;var_02++)
{
var_01[var_02] = [];
}
foreach(var_04 in level.players)
{
if(isalive(var_04))
{
var_05 = var_04 getbraggingright();
if(var_05 < var_00)
{
var_06 = var_01[var_05].size;
var_01[var_05][var_06] = var_04;
}
}
}
foreach(var_02, var_05 in var_01)
{
if(var_05.size > 1)
{
var_09 = tablelookupbyrow("mp/braggingrights.csv",var_02,2);
var_0A = undefined;
var_0B = undefined;
foreach(var_0D in var_05)
{
var_0E = var_0D maps\mp\_utility::getplayerstat(var_09);
if(!isdefined(var_0A) || var_0E > var_0A)
{
var_0B = var_0D;
var_0A = var_0E;
}
}
foreach(var_0D in var_05)
{
if(var_0D == var_0B)
{
if(!isdefined(var_0D.matchbonus))
{
var_0D.matchbonus = 0;
}
var_11 = 0;
foreach(var_04 in var_05)
{
if(isdefined(var_04.matchbonus))
{
var_11 = var_11 + var_04.matchbonus;
}
}
var_0D.matchbonus = var_0D.matchbonus + var_11;
continue;
}
var_0D.braggingrightsloser = 1;
}
}
}
foreach(var_04 in level.players)
{
if(isdefined(var_04.braggingrightsloser) && var_04.braggingrightsloser)
{
var_04.matchbonus = 0;
}
}
}
//Function Number: 2
getnumbraggingrights()
{
var_00 = -1;
var_01 = "temp";
while(var_01 != "")
{
var_00++;
var_01 = tablelookupbyrow("mp/braggingrights.csv",var_00,0);
}
return var_00;
}

View File

@ -0,0 +1,80 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_compass.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 2
* Decompile Time: 37 ms
* Timestamp: 10/27/2023 1:48:31 AM
*******************************************************************/
//Function Number: 1
setupminimap(param_00)
{
var_01 = level.requiredmapaspectratio;
var_02 = getentarray("minimap_corner","targetname");
if(var_02.size != 2)
{
return;
}
var_03 = (var_02[0].origin[0],var_02[0].origin[1],0);
var_04 = (var_02[1].origin[0],var_02[1].origin[1],0);
var_05 = var_04 - var_03;
var_06 = (cos(getnorthyaw()),sin(getnorthyaw()),0);
var_07 = (0 - var_06[1],var_06[0],0);
if(vectordot(var_05,var_07) > 0)
{
if(vectordot(var_05,var_06) > 0)
{
var_08 = var_04;
var_09 = var_03;
}
else
{
var_0A = vecscale(var_08,vectordot(var_07,var_08));
var_08 = var_04 - var_0A;
var_09 = var_03 + var_0A;
}
}
else if(vectordot(var_07,var_08) > 0)
{
var_0A = vecscale(var_08,vectordot(var_07,var_08));
var_08 = var_03 + var_0A;
var_09 = var_04 - var_0A;
}
else
{
var_08 = var_05;
var_09 = var_05;
}
if(var_01 > 0)
{
var_0B = vectordot(var_08 - var_09,var_06);
var_0C = vectordot(var_08 - var_09,var_07);
var_0D = var_0C / var_0B;
if(var_0D < var_01)
{
var_0E = var_01 / var_0D;
var_0F = vecscale(var_07,var_0C * var_0E - 1 * 0.5);
}
else
{
var_0E = var_0F / var_03;
var_0F = vecscale(var_07,var_0C * var_0F - 1 * 0.5);
}
var_08 = var_08 + var_0F;
var_09 = var_09 - var_0F;
}
level.mapsize = vectordot(var_08 - var_09,var_06);
setminimap(param_00,var_08[0],var_08[1],var_09[0],var_09[1]);
}
//Function Number: 2
vecscale(param_00,param_01)
{
return (param_00[0] * param_01,param_00[1] * param_01,param_00[2] * param_01);
}

View File

@ -0,0 +1,70 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_createfx.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 4
* Decompile Time: 62 ms
* Timestamp: 10/27/2023 1:48:32 AM
*******************************************************************/
//Function Number: 1
createfx()
{
level.func_position_player = ::common_scripts\utility::void;
level.func_position_player_get = ::func_position_player_get;
level.func_loopfxthread = ::common_scripts\_fx::loopfxthread;
level.func_oneshotfxthread = ::common_scripts\_fx::oneshotfxthread;
level.func_create_loopsound = ::common_scripts\_fx::create_loopsound;
level.func_updatefx = ::common_scripts\_createfx::restart_fx_looper;
level.func_process_fx_rotater = ::common_scripts\_createfx::process_fx_rotater;
level.func_player_speed = ::func_player_speed;
level.mp_createfx = 1;
level.callbackstartgametype = ::common_scripts\utility::void;
level.callbackplayerconnect = ::common_scripts\utility::void;
level.callbackplayerdisconnect = ::common_scripts\utility::void;
level.callbackplayerdamage = ::common_scripts\utility::void;
level.callbackplayerkilled = ::common_scripts\utility::void;
level.callbackentityoutofworld = ::common_scripts\utility::void;
level.callbackcodeendgame = ::common_scripts\utility::void;
level.callbackplayerlaststand = ::common_scripts\utility::void;
level.callbackplayerconnect = ::callback_playerconnect;
level.callbackplayermigrated = ::common_scripts\utility::void;
maps\mp\gametypes\_gameobjects::main([]);
thread common_scripts\_createfx::func_get_level_fx();
common_scripts\_createfx::createfx_common();
level waittill("eternity");
}
//Function Number: 2
func_position_player_get(param_00)
{
return level.player.origin;
}
//Function Number: 3
callback_playerconnect()
{
self waittill("begin");
if(!isdefined(level.player))
{
var_00 = getentarray("mp_global_intermission","classname");
var_01 = (var_00[0].angles[0],var_00[0].angles[1],0);
self spawn(var_00[0].origin,var_01);
maps\mp\_utility::updatesessionstate("playing");
self.maxhealth = 10000000;
self.health = 10000000;
level.player = self;
thread common_scripts\_createfx::createfxlogic();
return;
}
kick(self getentitynumber());
}
//Function Number: 4
func_player_speed()
{
var_00 = level._createfx.player_speed / 190;
level.player setmovespeedscale(var_00);
}

653
AW/PC/MP/maps/mp/_crib.gsc Normal file
View File

@ -0,0 +1,653 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_crib.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 36
* Decompile Time: 588 ms
* Timestamp: 10/27/2023 1:48:34 AM
*******************************************************************/
//Function Number: 1
init()
{
precacheshellshock("frag_grenade_mp");
radial_button_definitions();
radial_init();
view_path_setup();
player_init();
}
//Function Number: 2
radial_button_definitions()
{
newradialbuttongroup("main","player_view1_start","player_view1_end");
var_00 = newradialbutton("main","Primary Weapon","radial_weapons_primary",::action_weapons_primary);
var_01 = newradialbutton("main","Secondary Weapon","radial_weapons_secondary",::action_weapons_secondary);
var_02 = newradialbutton("main","Gears","radial_gears",::action_gears);
var_03 = newradialbutton("main","Kill Streaks","radial_killstreaks",::action_killstreak);
var_04 = newradialbutton("main","Leaderboards","radial_leaderboards",::action_leaderboards);
newradialbuttongroup("gears","player_view2_start","player_view2_end");
newradialbuttongroup("weapons_primary","player_view3_start","player_view3_end");
newradialbuttongroup("weapons_secondary","player_view3_start","player_view3_end");
newradialbuttongroup("killstreak","player_view4_start","player_view4_end");
newradialbuttongroup("leaderboards","player_view5_start","player_view5_end");
}
//Function Number: 3
radial_init()
{
foreach(var_01 in level.radial_button_group)
{
sort_buttons_by_angle(var_01);
for(var_02 = 0;var_02 < var_01.size;var_02++)
{
if(isdefined(var_01[var_02 + 1]))
{
var_03 = getmidangle(var_01[var_02].pos_angle,var_01[var_02 + 1].pos_angle);
var_01[var_02].end_angle = var_03;
var_01[var_02 + 1].start_angle = var_03;
continue;
}
var_03 = getmidangle(var_01[var_02].pos_angle,var_01[0].pos_angle) + 180;
if(var_03 > 360)
{
var_03 = var_03 - 360;
}
var_01[var_02].end_angle = var_03;
var_01[0].start_angle = var_03;
}
}
thread updateselectedbutton();
thread watchselectbuttonpress();
thread watchbackbuttonpress();
thread debug_toggle();
}
//Function Number: 4
debug_toggle()
{
level endon("game_ended");
level.crib_debug = 1;
for(;;)
{
if(!isdefined(level.observer))
{
wait(0.05);
continue;
}
var_00 = 1;
while(!level.observer buttonpressed("BUTTON_Y"))
{
wait(0.05);
}
level.observer playsound("mouse_click");
if(var_00)
{
level.crib_debug = level.crib_debug * -1;
var_00 = 0;
}
while(level.observer buttonpressed("BUTTON_Y"))
{
wait(0.05);
}
}
}
//Function Number: 5
player_init()
{
level thread onplayerconnect();
level thread return_hud();
}
//Function Number: 6
return_hud()
{
level waittill("game_ended");
setdvar("cg_draw2d",1);
}
//Function Number: 7
onplayerconnect()
{
level waittill("connected",var_00);
var_00 thread readyplayer();
var_00 waittill("spawned_player");
wait(1);
var_00 takeallweapons();
setdvar("cg_draw2d",0);
if(!isdefined(var_00))
{
return;
}
else
{
level.observer = var_00;
}
var_00 thread get_right_stick_angle();
zoom_to_radial_menu("main");
}
//Function Number: 8
readyplayer()
{
self endon("disconnect");
var_00 = "autoassign";
while(!isdefined(self.pers["team"]))
{
wait(0.05);
}
self notify("menuresponse",game["menu_team"],var_00);
wait(0.5);
var_01 = getarraykeys(level.classmap);
var_02 = [];
for(var_03 = 0;var_03 < var_01.size;var_03++)
{
if(!issubstr(var_01[var_03],"custom"))
{
var_02[var_02.size] = var_01[var_03];
}
}
for(;;)
{
var_04 = var_02[0];
self notify("menuresponse","changeclass",var_04);
self waittill("spawned_player");
wait(0.1);
}
}
//Function Number: 9
get_right_stick_angle()
{
level endon("game_ended");
self endon("disconnect");
for(;;)
{
var_00 = self getnormalizedmovement();
var_01 = vectortoangles(var_00);
level.rs_angle = int(var_01[1]);
wait(0.05);
}
}
//Function Number: 10
newradialbuttongroup(param_00,param_01,param_02)
{
if(isdefined(level.radial_button_group) && level.radial_button_group.size)
{
}
var_03 = getent(param_02,"targetname");
var_04 = vectornormalize(anglestoforward(var_03.angles)) * 40;
level.radial_button_group[param_00] = [];
level.radial_button_group_info[param_00]["view_start"] = param_01;
level.radial_button_group_info[param_00]["view_pos"] = var_03.origin + var_04;
level.radial_button_group_info[param_00]["player_view_pos"] = var_03.origin;
level.radial_button_group_info[param_00]["view_angles"] = var_03.angles;
}
//Function Number: 11
newradialbutton(param_00,param_01,param_02,param_03)
{
var_04 = getent(param_02,"targetname");
var_05 = getradialanglefroment(param_00,var_04);
var_06 = spawnstruct();
var_06.pos = var_04.origin;
var_06.label = param_01;
var_06.font_size = 1;
var_06.font_color = (0.5,0.5,1);
var_06.pos_angle = var_05;
var_06.action_func = param_03;
var_06.radius_pos = 8;
level.radial_button_group[param_00][level.radial_button_group[param_00].size] = var_06;
return var_06;
}
//Function Number: 12
updateselectedbutton()
{
level endon("game_ended");
for(;;)
{
if(!isdefined(level.radial_button_current_group))
{
wait(0.05);
continue;
}
var_00 = level.active_button;
foreach(var_02 in level.radial_button_group[level.radial_button_current_group])
{
if(isinrange(var_02.start_angle,var_02.end_angle))
{
level.active_button = var_02;
continue;
}
var_02.font_color = (0.5,0.5,1);
}
if(isdefined(level.active_button))
{
level.active_button.font_color = (1,1,0.5);
if(isdefined(var_00) && var_00 != level.active_button)
{
level.observer playsound("mouse_over");
}
}
wait(0.05);
}
}
//Function Number: 13
watchselectbuttonpress()
{
level endon("game_ended");
for(;;)
{
if(!isdefined(level.observer))
{
wait(0.05);
continue;
}
var_00 = 1;
while(!level.observer buttonpressed("BUTTON_A"))
{
wait(0.05);
}
level.observer playsound("mouse_click");
if(isdefined(level.active_button) && var_00)
{
level.active_button notify("select_button_pressed");
[[ level.active_button.action_func ]]();
var_00 = 0;
}
while(level.observer buttonpressed("BUTTON_A"))
{
wait(0.05);
}
}
}
//Function Number: 14
watchbackbuttonpress()
{
level endon("game_ended");
for(;;)
{
if(!isdefined(level.observer))
{
wait(0.05);
continue;
}
var_00 = 1;
while(!level.observer buttonpressed("BUTTON_X"))
{
wait(0.05);
}
level.observer playsound("mouse_click");
if(var_00)
{
action_back();
var_00 = 0;
}
while(level.observer buttonpressed("BUTTON_X"))
{
wait(0.05);
}
}
}
//Function Number: 15
sort_buttons_by_angle(param_00)
{
for(var_01 = 0;var_01 < param_00.size - 1;var_01++)
{
for(var_02 = 0;var_02 < param_00.size - 1 - var_01;var_02++)
{
if(param_00[var_02 + 1].pos_angle < param_00[var_02].pos_angle)
{
button_switch(param_00[var_02],param_00[var_02 + 1]);
}
}
}
}
//Function Number: 16
button_switch(param_00,param_01)
{
var_02 = param_00.pos;
var_03 = param_00.label;
var_04 = param_00.pos_angle;
var_05 = param_00.action_func;
var_06 = param_00.radius_pos;
param_00.pos = param_01.pos;
param_00.label = param_01.label;
param_00.pos_angle = param_01.pos_angle;
param_00.action_func = param_01.action_func;
param_00.radius_pos = param_01.radius_pos;
param_01.pos = var_02;
param_01.label = var_03;
param_01.pos_angle = var_04;
param_01.action_func = var_05;
param_01.radius_pos = var_06;
}
//Function Number: 17
draw_radial_buttons(param_00)
{
foreach(var_02 in level.radial_button_group[param_00])
{
var_02 thread draw_radial_button(param_00);
}
}
//Function Number: 18
draw_radial_button(param_00)
{
level endon("game_ended");
self endon("remove_button");
var_01 = level.radial_button_group_info[param_00]["view_pos"];
var_02 = var_01 + radial_angle_to_vector(self.pos_angle,4);
for(;;)
{
var_03 = (1,0,0);
if(isinrange(self.start_angle,self.end_angle))
{
var_03 = (1,1,0);
}
if(isdefined(level.crib_debug) && level.crib_debug > 0)
{
var_04 = var_01 + radial_angle_to_vector(level.rs_angle,2);
}
wait(0.05);
}
}
//Function Number: 19
zoom_to_radial_menu(param_00,param_01)
{
level.active_button = undefined;
if(isdefined(level.radial_button_current_group) && level.radial_button_current_group != "")
{
level.radial_button_previous_group = level.radial_button_current_group;
}
else
{
level.radial_button_previous_group = "main";
level.radial_button_current_group = "main";
}
foreach(var_03 in level.radial_button_group[level.radial_button_previous_group])
{
var_03 notify("remove_button");
}
if(isdefined(param_01) && param_01)
{
level.observer go_path_by_targetname_reverse(level.radial_button_group_info[level.radial_button_previous_group]["view_start"],param_00);
}
else
{
level.observer go_path_by_targetname(level.radial_button_group_info[param_00]["view_start"]);
}
level thread draw_radial_buttons(param_00);
level.radial_button_current_group = param_00;
}
//Function Number: 20
getradialanglefroment(param_00,param_01)
{
var_02 = level.radial_button_group_info[param_00]["view_angles"];
var_03 = level.radial_button_group_info[param_00]["view_pos"];
var_03 = var_03 + vectornormalize(anglestoforward(var_02)) * 40;
var_04 = anglestoforward(var_02);
var_05 = vectornormalize(anglestoup(var_02));
var_06 = param_01.angles;
var_07 = param_01.origin;
var_08 = vectornormalize(vectorfromlinetopoint(var_03,var_03 + var_04,var_07));
var_09 = acos(vectordot(var_08,var_05));
if(vectordot(anglestoright(var_02),var_08) < 0)
{
var_09 = 360 - var_09;
}
return var_09;
}
//Function Number: 21
radial_angle_to_vector(param_00,param_01)
{
var_02 = (270 - param_00,0,0);
var_03 = anglestoforward(var_02);
var_04 = vectornormalize(var_03);
var_05 = var_04 * param_01;
return var_05;
}
//Function Number: 22
getmidangle(param_00,param_01)
{
var_02 = param_00 + param_01 + 720 / 2 - 360;
return var_02;
}
//Function Number: 23
isinrange(param_00,param_01)
{
var_02 = level.rs_angle > param_00 && level.rs_angle < 360;
var_03 = level.rs_angle > 0 && level.rs_angle < param_01;
if(param_00 > param_01)
{
var_04 = var_02 || var_03;
}
else
{
var_04 = level.rs_angle > param_01 && level.rs_angle < var_02;
}
return var_04;
}
//Function Number: 24
action_back()
{
if(isdefined(level.radial_button_current_group) && level.radial_button_current_group != "main")
{
zoom_to_radial_menu("main",1);
return;
}
}
//Function Number: 25
action_weapons_primary()
{
iprintlnbold("action_weapons_primary");
zoom_to_radial_menu("weapons_primary");
}
//Function Number: 26
action_weapons_secondary()
{
iprintlnbold("action_weapons_secondary");
zoom_to_radial_menu("weapons_secondary");
}
//Function Number: 27
action_gears()
{
iprintlnbold("action_gears");
zoom_to_radial_menu("gears");
}
//Function Number: 28
action_killstreak()
{
iprintlnbold("action_killstreak");
zoom_to_radial_menu("killstreak");
}
//Function Number: 29
action_leaderboards()
{
iprintlnbold("action_leaderboards");
zoom_to_radial_menu("leaderboards");
}
//Function Number: 30
view_path_setup()
{
level.view_paths = [];
build_path_by_targetname("player_view1_start");
build_path_by_targetname("player_view2_start");
build_path_by_targetname("player_view3_start");
build_path_by_targetname("player_view4_start");
build_path_by_targetname("player_view5_start");
}
//Function Number: 31
build_path_by_targetname(param_00)
{
level.view_paths[param_00] = [];
var_01 = getent(param_00,"targetname");
level.view_paths[param_00][level.view_paths[param_00].size] = var_01;
while(isdefined(var_01) && isdefined(var_01.target))
{
var_02 = getent(var_01.target,"targetname");
level.view_paths[param_00][level.view_paths[param_00].size] = var_02;
var_01 = var_02;
}
}
//Function Number: 32
go_path_by_targetname(param_00)
{
if(!isdefined(level.dummy_mover))
{
var_01 = level.view_paths[param_00][0];
level.dummy_mover = spawn("script_model",var_01.origin);
level.dummy_mover.angles = var_01.angles;
self setorigin(level.dummy_mover.origin - (0,0,65));
self linkto(level.dummy_mover);
wait(0.05);
self setplayerangles(level.dummy_mover.angles);
thread force_player_angles();
}
var_02 = 1;
var_03 = abs(distance(level.dummy_mover.origin,level.view_paths[param_00][level.view_paths[param_00].size - 1].origin));
var_02 = var_02 * var_03 / 1200;
var_02 = max(var_02,0.1);
var_04 = var_02;
if(!1)
{
var_04 = var_04 * var_02 * level.view_paths[param_00].size + 1;
}
thread blur_sine(3,var_04);
foreach(var_07, var_06 in level.view_paths[param_00])
{
if(1)
{
if(var_07 != level.view_paths[param_00].size - 1)
{
continue;
}
}
level.dummy_mover moveto(var_06.origin,var_02,var_02 * 0.5,0);
level.dummy_mover rotateto(var_06.angles,var_02,var_02 * 0.5,0);
wait(var_02);
}
}
//Function Number: 33
go_path_by_targetname_reverse(param_00,param_01)
{
var_02 = 1;
var_03 = abs(distance(level.dummy_mover.origin,level.radial_button_group_info[param_01]["player_view_pos"]));
var_02 = var_02 * var_03 / 1200;
var_02 = max(var_02,0.1);
var_04 = var_02;
if(!1)
{
var_04 = var_04 * var_02 * level.view_paths[param_00].size + 1;
}
thread blur_sine(3,var_04);
if(!1)
{
for(var_05 = level.view_paths[param_00].size - 1;var_05 >= 0;var_05--)
{
var_06 = level.view_paths[param_00][var_05];
level.dummy_mover moveto(var_06.origin,var_02);
level.dummy_mover rotateto(var_06.angles,var_02);
wait(var_02);
}
}
thread blur_sine(3,var_02);
var_07 = level.radial_button_group_info[param_01]["player_view_pos"];
var_08 = level.radial_button_group_info[param_01]["view_angles"];
level.dummy_mover moveto(var_07,var_02,var_02 * 0.5,0);
level.dummy_mover rotateto(var_08,var_02,var_02 * 0.5,0);
wait(var_02);
}
//Function Number: 34
travel_view_fx(param_00)
{
self setblurforplayer(20,param_00 + 0.2 / 2);
self setblurforplayer(0,param_00 + 0.2 / 2);
self shellshock("frag_grenade_mp",param_00 + 0.2);
}
//Function Number: 35
blur_sine(param_00,param_01)
{
var_02 = int(param_01 / 0.05);
for(var_03 = 0;var_03 < var_02;var_03++)
{
var_04 = var_03 / var_02;
var_05 = sin(180 * var_04);
var_06 = param_00 * var_05;
setdvar("r_blur",var_06);
wait(0.05);
}
setdvar("r_blur",0);
}
//Function Number: 36
force_player_angles()
{
level endon("game_ended");
self endon("disconnect");
level.dummy_mover endon("remove_dummy");
for(;;)
{
self setplayerangles(level.dummy_mover.angles);
wait(0.05);
}
}

View File

@ -0,0 +1,116 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_destructables.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 7
* Decompile Time: 109 ms
* Timestamp: 10/27/2023 1:48:35 AM
*******************************************************************/
//Function Number: 1
init()
{
var_00 = getentarray("destructable","targetname");
if(getdvar("scr_destructables") == "0")
{
for(var_01 = 0;var_01 < var_00.size;var_01++)
{
var_00[var_01] delete();
}
return;
}
for(var_01 = 0;var_01 < var_00.size;var_01++)
{
var_00[var_01] thread destructable_think();
}
}
//Function Number: 2
destructable_think()
{
var_00 = 40;
var_01 = 0;
if(isdefined(self.script_accumulate))
{
var_00 = self.script_accumulate;
}
if(isdefined(self.script_threshold))
{
var_01 = self.script_threshold;
}
if(isdefined(self.script_destructable_area))
{
var_02 = strtok(self.script_destructable_area," ");
for(var_03 = 0;var_03 < var_02.size;var_03++)
{
blockarea(var_02[var_03]);
}
}
if(isdefined(self.script_fxid))
{
self.fx = loadfx(self.script_fxid);
}
var_04 = 0;
self setcandamage(1);
for(;;)
{
self waittill("damage",var_05,var_06);
if(var_05 >= var_01)
{
var_04 = var_04 + var_05;
if(var_04 >= var_00)
{
thread destructable_destruct();
return;
}
}
}
}
//Function Number: 3
destructable_destruct()
{
var_00 = self;
if(isdefined(self.script_destructable_area))
{
var_01 = strtok(self.script_destructable_area," ");
for(var_02 = 0;var_02 < var_01.size;var_02++)
{
unblockarea(var_01[var_02]);
}
}
if(isdefined(var_00.fx))
{
playfx(var_00.fx,var_00.origin + (0,0,6));
}
var_00 delete();
}
//Function Number: 4
blockarea(param_00)
{
}
//Function Number: 5
blockentsinarea(param_00,param_01)
{
}
//Function Number: 6
unblockarea(param_00)
{
}
//Function Number: 7
unblockentsinarea(param_00,param_01)
{
}

View File

@ -0,0 +1,267 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_dynamic_events.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 9
* Decompile Time: 137 ms
* Timestamp: 10/27/2023 1:48:35 AM
*******************************************************************/
//Function Number: 1
dynamicevent(param_00,param_01,param_02)
{
if(getdvarint("r_reflectionProbeGenerate"))
{
return;
}
if(isdefined(level.dynamiceventstype))
{
if(level.dynamiceventstype == 1)
{
return;
}
if(level.dynamiceventstype == 2)
{
if(isdefined(param_02))
{
level [[ param_02 ]]();
}
return;
}
}
setdvarifuninitialized("scr_dynamic_event_state","on");
if(getdvar("scr_dynamic_event_state","on") == "off")
{
return;
}
else if(getdvar("scr_dynamic_event_state","on") == "endstate")
{
if(isdefined(param_02))
{
level [[ param_02 ]]();
}
return;
}
if(!isdefined(level.dynamicevent))
{
level.dynamicevent = [];
}
if(level.gametype == "sd" || level.gametype == "sr")
{
level thread handle_sd_dynamicevent(param_00,param_02);
}
else
{
level thread handle_dynamicevent(param_00,param_01,0);
}
level thread logdynamiceventstarttime();
}
//Function Number: 2
logdynamiceventstarttime()
{
level endon("game_ended");
level waittill("dynamic_event_starting");
var_00 = maps\mp\_utility::gettimepasseddecisecondsincludingrounds();
setmatchdata("dynamicEventTimeDeciSecondsFromMatchStart",maps\mp\_utility::clamptoshort(var_00));
}
//Function Number: 3
handle_sd_dynamicevent(param_00,param_01)
{
game["dynamicEvent_switchedsides"] = game["switchedsides"];
if(level.gametype == "sd")
{
game["dynamicEvent_scorelimit"] = getdvarint("scr_sd_winlimit",6);
}
else if(level.gametype == "sr")
{
game["dynamicEvent_scorelimit"] = getdvarint("scr_sr_winlimit",6);
}
if(!isdefined(game["dynamicEvent_switchedsides"]))
{
game["dynamicEvent_switchedsides"] = 0;
}
if(!isdefined(game["dynamicEvent_teamA_RoundTally"]))
{
game["dynamicEvent_teamA_RoundTally"] = 0;
}
if(!isdefined(game["dynamicEvent_teamB_RoundTally"]))
{
game["dynamicEvent_teamB_RoundTally"] = 0;
}
if(game["dynamicEvent_switchedsides"] == 0)
{
game["dynamicEvent_teamA_RoundTally"]++;
check_do_event(param_00,param_01,game["dynamicEvent_teamA_RoundTally"]);
return;
}
if(game["dynamicEvent_switchedsides"] == 1)
{
game["dynamicEvent_teamB_RoundTally"]++;
check_do_event(param_00,param_01,game["dynamicEvent_teamB_RoundTally"]);
}
}
//Function Number: 4
check_do_event(param_00,param_01,param_02)
{
var_03 = int(game["dynamicEvent_scorelimit"] / 2);
if(var_03 == 0)
{
var_03 = 3;
}
if(param_02 == var_03)
{
wait(10);
level notify("dynamic_event_starting");
if(isdefined(param_00) && isdefined(param_01))
{
level [[ param_00 ]]();
return;
}
return;
}
if(param_02 > var_03)
{
if(isdefined(param_00) && isdefined(param_01))
{
level [[ param_01 ]]();
return;
}
}
}
//Function Number: 5
handle_dynamicevent(param_00,param_01,param_02)
{
var_03 = getdynamiceventtimelimit();
var_04 = getdynamiceventstarttime();
var_05 = undefined;
var_06 = maps\mp\_utility::getscorelimit();
if(!isdefined(param_02))
{
param_02 = 1;
}
while(var_03 > var_04 && !param_02 || !isdefined(var_05) || var_05 <= var_06 * level.dynamicevent["start_percent"])
{
if(isdefined(level.ishorde) && level.ishorde)
{
if(isdefined(level.dynamiceventstartnow) && level.dynamiceventstartnow)
{
var_03 = var_04;
}
}
wait(1);
maps\mp\gametypes\_hostmigration::waittillhostmigrationdone();
var_03 = var_03 - 1;
var_05 = getdynamiceventhighestscore();
}
level notify("dynamic_event_starting");
if(isdefined(param_00))
{
level [[ param_00 ]]();
}
}
//Function Number: 6
setdynamiceventstartpercent(param_00)
{
if(!isdefined(param_00))
{
param_00 = 0.5;
}
if(param_00 < 0 || param_00 > 1)
{
}
level.dynamicevent["start_percent"] = param_00;
}
//Function Number: 7
getdynamiceventstarttime()
{
if(!isdefined(level.dynamicevent["start_percent"]))
{
setdynamiceventstartpercent();
}
var_00 = getdynamiceventtimelimit();
var_01 = var_00 - var_00 * level.dynamicevent["start_percent"];
return var_01;
}
//Function Number: 8
getdynamiceventhighestscore()
{
var_00 = undefined;
if(level.teambased)
{
var_01 = maps\mp\gametypes\_gamescore::getwinningteam();
if(isdefined(var_01) && var_01 == "none" && isdefined(level.teamnamelist))
{
var_00 = maps\mp\gametypes\_gamescore::_getteamscore(level.teamnamelist[0]);
}
else if(isdefined(var_01))
{
var_00 = maps\mp\gametypes\_gamescore::_getteamscore(var_01);
}
}
else
{
var_02 = maps\mp\gametypes\_gamescore::gethighestscoringplayer();
if(!isdefined(var_02) && isdefined(level.players) && level.players.size > 0)
{
var_00 = maps\mp\gametypes\_gamescore::_getplayerscore(level.players[0]);
}
else if(isdefined(var_02))
{
var_00 = maps\mp\gametypes\_gamescore::_getplayerscore(var_02);
}
}
return var_00;
}
//Function Number: 9
getdynamiceventtimelimit()
{
var_00 = maps\mp\_utility::gettimelimit();
if(var_00 == 0)
{
var_00 = 600;
}
else
{
var_00 = var_00 * 60;
}
var_01 = maps\mp\_utility::gethalftime();
if(isdefined(var_01) && var_01)
{
var_00 = var_00 / 2;
}
return var_00;
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,232 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_empgrenade.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 12
* Decompile Time: 189 ms
* Timestamp: 10/27/2023 1:48:36 AM
*******************************************************************/
//Function Number: 1
init()
{
precachedigitaldistortcodeassets();
thread onplayerconnect();
precachestring(&"MP_EMP_REBOOTING");
}
//Function Number: 2
onplayerconnect()
{
for(;;)
{
level waittill("connected",var_00);
var_00 thread onplayerspawned();
}
}
//Function Number: 3
onplayerspawned()
{
self endon("disconnect");
for(;;)
{
self waittill("spawned_player");
thread monitorempgrenade();
}
}
//Function Number: 4
monitorempgrenade()
{
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
self.empendtime = 0;
for(;;)
{
self waittill("emp_grenaded",var_00);
if(!isalive(self))
{
continue;
}
if(isdefined(self.usingremote))
{
continue;
}
if(maps\mp\_utility::_hasperk("specialty_empimmune"))
{
continue;
}
var_01 = 1;
var_02 = 0;
if(level.teambased && isdefined(var_00) && isdefined(var_00.pers["team"]) && var_00.pers["team"] == self.pers["team"] && var_00 != self)
{
if(level.friendlyfire == 0)
{
continue;
}
else if(level.friendlyfire == 1)
{
var_02 = 0;
var_01 = 1;
}
else if(level.friendlyfire == 2)
{
var_01 = 0;
var_02 = 1;
}
else if(level.friendlyfire == 3)
{
var_02 = 1;
var_01 = 1;
}
}
else if(isdefined(var_00))
{
var_00 notify("emp_hit");
if(var_00 != self)
{
var_00 maps\mp\gametypes\_missions::processchallenge("ch_onthepulse");
}
}
if(var_01 && isdefined(self))
{
thread applyemp();
}
if(var_02 && isdefined(var_00))
{
var_00 thread applyemp();
}
}
}
//Function Number: 5
emp_hide_hud(param_00)
{
maps\mp\gametypes\_scrambler::playersethudempscrambledoff(param_00);
}
//Function Number: 6
applyemp()
{
self notify("applyEmp");
self endon("applyEmp");
self endon("death");
self endon("disconnect");
wait(0.05);
self.empduration = 3;
var_00 = 2;
if(maps\mp\_utility::isaugmentedgamemode())
{
var_00 = 1;
maps\mp\_utility::playerallowhighjump(0,"empgrenade");
maps\mp\_utility::playerallowhighjumpdrop(0,"empgrenade");
maps\mp\_utility::playerallowboostjump(0,"empgrenade");
maps\mp\_utility::playerallowpowerslide(0,"empgrenade");
maps\mp\_utility::playerallowdodge(0,"empgrenade");
}
self.empgrenaded = 1;
self.empendtime = gettime() + self.empduration * 1000;
var_01 = maps\mp\gametypes\_scrambler::playersethudempscrambled(self.empendtime,var_00,"emp");
thread digitaldistort(self.empduration,var_01);
thread emprumbleloop(0.75);
self setempjammed(1);
thread empgrenadedeathwaiter(var_01);
wait(self.empduration);
self notify("empGrenadeTimedOut");
checktoturnoffemp(var_01);
}
//Function Number: 7
digitaldistort(param_00,param_01)
{
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
self endon("joined_team");
self digitaldistortsetmaterial("digital_distort_mp");
self digitaldistortsetparams(1,1);
thread watchdistortdisconnectdeath(param_01);
wait(0.1);
var_02 = param_00;
var_03 = 0.95;
var_04 = 0.2;
var_05 = var_03 - var_04;
var_06 = 0.1;
var_07 = var_03;
while(var_02 > 0)
{
var_07 = var_05 * var_02 / param_00 + var_04;
self digitaldistortsetparams(var_07,1);
var_02 = var_02 - var_06;
wait(var_06);
}
self digitaldistortsetparams(0,0);
}
//Function Number: 8
watchdistortdisconnectdeath(param_00)
{
common_scripts\utility::waittill_any("death","disconnect","faux_spawn","joined_team");
if(isdefined(self))
{
self digitaldistortsetparams(0,0);
emp_hide_hud(param_00);
}
}
//Function Number: 9
empgrenadedeathwaiter(param_00)
{
self notify("empGrenadeDeathWaiter");
self endon("empGrenadeDeathWaiter");
self endon("empGrenadeTimedOut");
self waittill("death");
checktoturnoffemp(param_00);
}
//Function Number: 10
checktoturnoffemp(param_00)
{
self.empgrenaded = 0;
self setempjammed(0);
if(maps\mp\_utility::isaugmentedgamemode())
{
maps\mp\_utility::playerallowhighjump(1,"empgrenade");
maps\mp\_utility::playerallowhighjumpdrop(1,"empgrenade");
maps\mp\_utility::playerallowboostjump(1,"empgrenade");
maps\mp\_utility::playerallowpowerslide(1,"empgrenade");
maps\mp\_utility::playerallowdodge(1,"empgrenade");
}
self digitaldistortsetparams(0,0);
emp_hide_hud(param_00);
}
//Function Number: 11
emprumbleloop(param_00)
{
self endon("emp_rumble_loop");
self notify("emp_rumble_loop");
var_01 = gettime() + param_00 * 1000;
while(gettime() < var_01)
{
self playrumbleonentity("damage_heavy");
wait(0.05);
}
}
//Function Number: 12
isempgrenaded()
{
return isdefined(self.empendtime) && gettime() < self.empendtime;
}

View File

@ -0,0 +1,457 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_entityheadicons.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 10
* Decompile Time: 158 ms
* Timestamp: 10/27/2023 1:48:37 AM
*******************************************************************/
//Function Number: 1
init()
{
if(isdefined(level.initedentityheadicons))
{
return;
}
level.initedentityheadicons = 1;
if(level.multiteambased)
{
foreach(var_01 in level.teamnamelist)
{
var_02 = "entity_headicon_" + var_01;
game[var_02] = maps\mp\gametypes\_teams::mt_getteamheadicon(var_01);
precacheshader(game[var_02]);
}
return;
}
game["entity_headicon_allies"] = maps\mp\gametypes\_teams::getteamheadicon("allies");
game["entity_headicon_axis"] = maps\mp\gametypes\_teams::getteamheadicon("axis");
precacheshader(game["entity_headicon_allies"]);
precacheshader(game["entity_headicon_axis"]);
}
//Function Number: 2
setheadicon(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B)
{
if(maps\mp\_utility::isgameparticipant(param_00) && !isplayer(param_00))
{
return;
}
if(!isdefined(self.entityheadicons))
{
self.entityheadicons = [];
}
if(!isdefined(param_05))
{
param_05 = 1;
}
if(!isdefined(param_06))
{
param_06 = 0.05;
}
if(!isdefined(param_07))
{
param_07 = 1;
}
if(!isdefined(param_08))
{
param_08 = 1;
}
if(!isdefined(param_09))
{
param_09 = 0;
}
if(!isdefined(param_0A))
{
param_0A = 1;
}
if(!isdefined(param_0B))
{
param_0B = "";
}
if(!isplayer(param_00) && param_00 == "none")
{
foreach(var_0E, var_0D in self.entityheadicons)
{
if(isdefined(var_0D))
{
var_0D destroy();
}
self.entityheadicons[var_0E] = undefined;
}
return;
}
if(isplayer(param_03))
{
if(isdefined(self.entityheadicons[param_03.guid]))
{
self.entityheadicons[param_03.guid] destroy();
self.entityheadicons[param_03.guid] = undefined;
}
if(param_04 == "")
{
return;
}
if(isdefined(self.entityheadicons[param_03.team]))
{
self.entityheadicons[param_03.team] destroy();
self.entityheadicons[param_03.team] = undefined;
}
var_0D = newclienthudelem(param_03);
self.entityheadicons[param_02.guid] = var_0E;
}
else
{
if(isdefined(self.entityheadicons[param_03]))
{
self.entityheadicons[param_03] destroy();
self.entityheadicons[param_03] = undefined;
}
if(param_04 == "")
{
return;
}
foreach(var_0F in self.entityheadicons)
{
if(var_11 == "axis" || var_11 == "allies")
{
continue;
}
var_10 = maps\mp\_utility::getplayerforguid(var_11);
if(var_10.team == param_01)
{
self.entityheadicons[var_11] destroy();
self.entityheadicons[var_11] = undefined;
}
}
var_0D = newteamhudelem(param_01);
self.entityheadicons[param_01] = var_0D;
}
if(!isdefined(param_04) || !isdefined(param_05))
{
param_04 = 10;
param_05 = 10;
}
var_0D.archived = param_06;
var_0D.alpha = 0.85;
var_0D setshader(param_02,param_04,param_05);
var_0D setwaypoint(param_08,param_09,param_0A,param_0B);
if(var_0C == "")
{
var_0D.x = self.origin[0] + param_03[0];
var_0D.y = self.origin[1] + param_03[1];
var_0D.z = self.origin[2] + param_03[2];
var_0D thread keeppositioned(self,param_03,param_07);
}
else
{
var_0D.x = param_03[0];
var_0D.y = param_03[1];
var_0D.z = param_03[2];
var_0D settargetent(self,var_0C);
}
thread destroyiconsondeath();
if(isplayer(param_01))
{
var_0D thread destroyonownerdisconnect(param_01);
}
if(isplayer(self))
{
var_0D thread destroyonownerdisconnect(self);
}
return var_0D;
}
//Function Number: 3
destroyonownerdisconnect(param_00)
{
self endon("death");
param_00 waittill("disconnect");
self destroy();
}
//Function Number: 4
destroyiconsondeath()
{
self notify("destroyIconsOnDeath");
self endon("destroyIconsOnDeath");
self waittill("death");
foreach(var_01 in self.entityheadicons)
{
if(!isdefined(var_01))
{
continue;
}
var_01 destroy();
}
}
//Function Number: 5
keeppositioned(param_00,param_01,param_02)
{
self endon("death");
param_00 endon("death");
param_00 endon("disconnect");
var_03 = param_00.origin;
for(;;)
{
if(!isdefined(param_00))
{
return;
}
if(var_03 != param_00.origin)
{
var_03 = param_00.origin;
self.x = var_03[0] + param_01[0];
self.y = var_03[1] + param_01[1];
self.z = var_03[2] + param_01[2];
}
if(param_02 > 0.05)
{
self.alpha = 0.85;
self fadeovertime(param_02);
self.alpha = 0;
}
wait(param_02);
}
}
//Function Number: 6
setteamheadicon(param_00,param_01,param_02,param_03)
{
if(!level.teambased)
{
return;
}
if(!isdefined(param_02))
{
param_02 = "";
}
if(!isdefined(self.entityheadiconteam))
{
self.entityheadiconteam = "none";
self.entityheadicon = undefined;
}
if(isdefined(param_03) && param_03 == 0)
{
var_04 = undefined;
}
var_05 = game["entity_headicon_" + param_00];
self.entityheadiconteam = param_00;
if(isdefined(param_01))
{
self.entityheadiconoffset = param_01;
}
else
{
self.entityheadiconoffset = (0,0,0);
}
self notify("kill_entity_headicon_thread");
if(param_00 == "none")
{
if(isdefined(self.entityheadicon))
{
self.entityheadicon destroy();
}
return;
}
var_06 = newteamhudelem(param_00);
var_06.archived = 1;
var_06.alpha = 0.8;
var_06 setshader(var_05,10,10);
var_06 setwaypoint(0,0,0,1);
self.entityheadicon = var_06;
if(!isdefined(param_03))
{
if(param_02 == "")
{
var_06.x = self.origin[0] + self.entityheadiconoffset[0];
var_06.y = self.origin[1] + self.entityheadiconoffset[1];
var_06.z = self.origin[2] + self.entityheadiconoffset[2];
thread keepiconpositioned();
}
else
{
var_06.x = self.entityheadiconoffset[0];
var_06.y = self.entityheadiconoffset[1];
var_06.z = self.entityheadiconoffset[2];
var_06 settargetent(self,param_02);
}
}
else
{
var_07 = anglestoup(self.angles);
var_08 = self.origin + var_07 * 28;
if(param_02 == "")
{
var_06.x = var_08[0];
var_06.y = var_08[1];
var_06.z = var_08[2];
thread keepiconpositioned(param_03);
}
else
{
var_06.x = var_08[0];
var_06.y = var_08[1];
var_06.z = var_08[2];
var_06 settargetent(self,param_02);
}
}
thread destroyheadiconsondeath();
}
//Function Number: 7
setplayerheadicon(param_00,param_01,param_02)
{
if(level.teambased)
{
return;
}
if(!isdefined(param_02))
{
param_02 = "";
}
if(!isdefined(self.entityheadiconteam))
{
self.entityheadiconteam = "none";
self.entityheadicon = undefined;
}
self notify("kill_entity_headicon_thread");
if(!isdefined(param_00))
{
if(isdefined(self.entityheadicon))
{
self.entityheadicon destroy();
}
return;
}
var_03 = param_00.team;
self.entityheadiconteam = var_03;
if(isdefined(param_01))
{
self.entityheadiconoffset = param_01;
}
else
{
self.entityheadiconoffset = (0,0,0);
}
var_04 = game["entity_headicon_" + var_03];
var_05 = newclienthudelem(param_00);
var_05.archived = 1;
var_05.alpha = 0.8;
var_05 setshader(var_04,10,10);
var_05 setwaypoint(0,0,0,1);
self.entityheadicon = var_05;
if(param_02 == "")
{
var_05.x = self.origin[0] + self.entityheadiconoffset[0];
var_05.y = self.origin[1] + self.entityheadiconoffset[1];
var_05.z = self.origin[2] + self.entityheadiconoffset[2];
thread keepiconpositioned();
}
else
{
var_05.x = self.entityheadiconoffset[0];
var_05.y = self.entityheadiconoffset[1];
var_05.z = self.entityheadiconoffset[2];
var_05 settargetent(self,param_02);
}
thread destroyheadiconsondeath();
}
//Function Number: 8
keepiconpositioned(param_00)
{
self endon("kill_entity_headicon_thread");
self endon("death");
var_01 = self.origin;
for(;;)
{
if(var_01 != self.origin)
{
updateheadiconorigin(param_00);
var_01 = self.origin;
}
wait(0.05);
}
}
//Function Number: 9
destroyheadiconsondeath()
{
self endon("kill_entity_headicon_thread");
self waittill("death");
if(!isdefined(self.entityheadicon))
{
return;
}
self.entityheadicon destroy();
}
//Function Number: 10
updateheadiconorigin(param_00)
{
if(!isdefined(param_00))
{
self.entityheadicon.x = self.origin[0] + self.entityheadiconoffset[0];
self.entityheadicon.y = self.origin[1] + self.entityheadiconoffset[1];
self.entityheadicon.z = self.origin[2] + self.entityheadiconoffset[2];
return;
}
var_01 = anglestoup(self.angles);
var_02 = self.origin + var_01 * 28;
self.entityheadicon.x = var_02[0];
self.entityheadicon.y = var_02[1];
self.entityheadicon.z = var_02[2];
}

1992
AW/PC/MP/maps/mp/_events.gsc Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,141 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_exo_battery.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 5
* Decompile Time: 81 ms
* Timestamp: 10/27/2023 1:48:43 AM
*******************************************************************/
//Function Number: 1
update_exo_battery_hud(param_00)
{
level endon("game_ended");
self endon("death");
self endon("disconnect");
self endon("joined_team");
self endon("faux_spawn");
self endon("kill_battery");
if(!isplayer(self))
{
return;
}
while(get_exo_ability_hud_omnvar_value(param_00,"ui_exo_battery_toggle") == 1)
{
var_01 = self batterygetcharge(param_00);
set_exo_ability_hud_omnvar(param_00,"ui_exo_battery_level",var_01);
wait(0.05);
}
}
//Function Number: 2
set_exo_ability_hud_omnvar(param_00,param_01,param_02)
{
if(self gettacticalweapon() == param_00)
{
self setclientomnvar(param_01 + "0",param_02);
if(param_01 == "ui_exo_battery_toggle")
{
if(param_02 == 1)
{
self setclientomnvar("ui_exo_battery_iconA",param_00);
return;
}
return;
}
return;
}
if(self getlethalweapon() == param_00)
{
self setclientomnvar(param_01 + "1",param_02);
if(param_01 == "ui_exo_battery_toggle")
{
if(param_02 == 1)
{
self setclientomnvar("ui_exo_battery_iconB",param_00);
return;
}
return;
}
return;
}
self setclientomnvar("ui_exo_battery_iconA","reset");
self setclientomnvar("ui_exo_battery_iconB","reset");
self setclientomnvar("ui_exo_battery_toggle0",0);
self setclientomnvar("ui_exo_battery_toggle1",0);
}
//Function Number: 3
get_exo_ability_hud_omnvar_value(param_00,param_01)
{
if(self gettacticalweapon() == param_00)
{
return self getclientomnvar(param_01 + "0");
}
else if(self getlethalweapon() == param_00)
{
return self getclientomnvar(param_01 + "1");
}
return -1;
}
//Function Number: 4
play_insufficient_tactical_energy_sfx()
{
level endon("game_ended");
self endon("disconnect");
self endon("death");
self endon("faux_spawn");
self endon("joined_team");
self endon("kill_battery");
self notifyonplayercommandremove("tried_left_exo_ability","+smoke");
wait(0.05);
self notifyonplayercommand("tried_left_exo_ability","+smoke");
for(;;)
{
self waittill("tried_left_exo_ability");
var_00 = self gettacticalweapon();
if(maps\mp\_utility::is_exo_ability_weapon(var_00))
{
if(self batterygetcharge(var_00) < batteryreqtouse(var_00))
{
self playlocalsound("mp_exo_bat_empty");
}
}
}
}
//Function Number: 5
play_insufficient_lethal_energy_sfx()
{
level endon("game_ended");
self endon("disconnect");
self endon("death");
self endon("faux_spawn");
self endon("joined_team");
self endon("kill_battery");
self notifyonplayercommandremove("tried_right_exo_ability","+frag");
wait(0.05);
self notifyonplayercommand("tried_right_exo_ability","+frag");
for(;;)
{
self waittill("tried_right_exo_ability");
var_00 = self getlethalweapon();
if(maps\mp\_utility::is_exo_ability_weapon(var_00))
{
if(self batterygetcharge(var_00) < batteryreqtouse(var_00))
{
self playlocalsound("mp_exo_bat_empty");
}
}
}
}

View File

@ -0,0 +1,331 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_exo_cloak.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 12
* Decompile Time: 180 ms
* Timestamp: 10/27/2023 1:48:44 AM
*******************************************************************/
//Function Number: 1
give_exo_cloak()
{
var_00 = get_exo_cloak_weapon();
if(self hasweapon(var_00))
{
return;
}
self giveweapon(var_00);
self batterysetdischargescale(var_00,1);
self.exo_cloak_on = 0;
self.exo_cloak_off_time = undefined;
if(self gettacticalweapon() == var_00)
{
self setclientomnvar("ui_exo_battery_level0",self batterygetcharge(var_00));
self setclientomnvar("exo_ability_nrg_req0",batteryreqtouse(var_00));
self setclientomnvar("exo_ability_nrg_total0",self batterygetsize(var_00));
}
else if(self getlethalweapon() == var_00)
{
self setclientomnvar("ui_exo_battery_level1",self batterygetcharge(var_00));
self setclientomnvar("exo_ability_nrg_req1",batteryreqtouse(var_00));
self setclientomnvar("exo_ability_nrg_total1",self batterygetsize(var_00));
}
if(!isdefined(self.exocloak))
{
self.exocloak = spawnstruct();
}
self.exocloak.costume = [];
self.exocloak.costume["viewmodel"] = self getviewmodel();
self.exocloak.costume["body"] = self getmodelfromentity();
self notify("exo_cloak_reset");
thread wait_for_exocloak_cancel();
thread wait_for_exocloak_pressed();
thread wait_for_player_death();
thread wait_for_game_end();
}
//Function Number: 2
wait_for_exocloak_pressed()
{
level endon("game_ended");
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
self endon("joined_team");
self endon("exo_cloak_reset");
for(;;)
{
self waittill("exo_ability_activate",var_00);
if(var_00 == level.cloakweapon)
{
if(!self iscloaked())
{
thread handle_exocloak();
}
else
{
active_cloaking_disable(1);
}
continue;
}
if(!maps\mp\_utility::is_exo_ability_weapon(var_00))
{
active_cloaking_disable(1);
}
}
}
//Function Number: 3
wait_for_exocloak_cancel()
{
level endon("game_ended");
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
self endon("joined_team");
self endon("exo_cloak_reset");
for(;;)
{
common_scripts\utility::waittill_any("using_remote","weapon_fired","melee_fired","ground_slam","grenade_fire");
active_cloaking_disable(1);
}
}
//Function Number: 4
wait_for_player_death()
{
level endon("game_ended");
self endon("disconnect");
self endon("exo_cloak_reset");
common_scripts\utility::waittill_any("death","faux_spawn","joined_team");
active_cloaking_disable(1);
}
//Function Number: 5
handle_exocloak()
{
level endon("game_ended");
self endon("disconnect");
self endon("death");
self endon("faux_spawn");
self endon("joined_team");
self endon("exo_cloak_disabled");
self endon("exo_cloak_reset");
if(self batterygetcharge(level.cloakweapon) > 0)
{
active_cloaking_enable();
while(self batterygetcharge(level.cloakweapon) > 0)
{
wait(0.05);
}
active_cloaking_disable(1);
}
}
//Function Number: 6
active_cloaking_enable()
{
self.exo_cloak_on = 1;
self.exo_cloak_off_time = undefined;
self cloakingenable();
hideattachmentswhilecloaked();
self batterydischargebegin(level.cloakweapon);
maps\mp\_exo_battery::set_exo_ability_hud_omnvar(level.cloakweapon,"ui_exo_battery_toggle",1);
thread maps\mp\_exo_battery::update_exo_battery_hud(level.cloakweapon);
maps\mp\_snd_common_mp::snd_message("mp_exo_cloak_activate");
self.pers["numberOfTimesCloakingUsed"]++;
if(isdefined(level.ishorde))
{
wait(2);
self.ignoreme = 1;
}
}
//Function Number: 7
active_cloaking_disable(param_00)
{
if(!isdefined(param_00))
{
param_00 = 1;
}
if(!self iscloaked())
{
return;
}
self.exo_cloak_on = 0;
self.exo_cloak_off_time = gettime();
self cloakingdisable();
showattachmentsaftercloak();
if(isdefined(level.ishorde))
{
self.ignoreme = 0;
}
self batterydischargeend(level.cloakweapon);
maps\mp\_exo_battery::set_exo_ability_hud_omnvar(level.cloakweapon,"ui_exo_battery_toggle",0);
if(param_00)
{
maps\mp\_snd_common_mp::snd_message("mp_exo_cloak_deactivate");
}
self notify("exo_cloak_disabled");
}
//Function Number: 8
take_exo_cloak()
{
var_00 = get_exo_cloak_weapon();
self notify("kill_battery");
active_cloaking_disable(0);
self takeweapon(var_00);
self notify("exo_cloak_reset");
}
//Function Number: 9
wait_for_game_end()
{
self endon("death");
self endon("disconnect");
self endon("joined_team");
self endon("faux_spawn");
self endon("exo_cloak_reset");
level waittill("game_ended");
active_cloaking_disable(1);
}
//Function Number: 10
hideattachmentswhilecloaked()
{
if(self hasweapon("adrenaline_mp"))
{
if(isdefined(self.overclock_on) && self.overclock_on == 1)
{
killfxontag(level.exo_overclock_vfx_le_active,self,"J_Hip_LE");
killfxontag(level.exo_overclock_vfx_ri_active,self,"J_Hip_RI");
}
else
{
killfxontag(level.exo_overclock_vfx_le_inactive,self,"J_Hip_LE");
killfxontag(level.exo_overclock_vfx_ri_inactive,self,"J_Hip_RI");
}
}
if(self hasweapon("exorepulsor_equipment_mp"))
{
if(isdefined(self.repulsoractive) && self.repulsoractive == 1)
{
killfxontag(level.exo_repulsor_player_vfx_active,self,"TAG_JETPACK");
}
else
{
killfxontag(level.exo_repulsor_player_vfx_inactive,self,"TAG_JETPACK");
}
}
if(self hasweapon("exoping_equipment_mp"))
{
if(isdefined(self.exo_ping_on) && self.exo_ping_on == 1)
{
killfxontag(level.exo_ping_vfx_active,self,"J_SpineUpper");
}
else
{
killfxontag(level.exo_ping_vfx_inactive,self,"J_SpineUpper");
}
}
if(self hasweapon("extra_health_mp"))
{
if(isdefined(self.exo_health_on) && self.exo_health_on == 1)
{
killfxontag(level.exo_health_le_active_vfx,self,"J_Shoulder_LE");
killfxontag(level.exo_health_rt_active_vfx,self,"J_Shoulder_RI");
return;
}
killfxontag(level.exo_health_le_inactive_vfx,self,"J_Shoulder_LE");
killfxontag(level.exo_health_rt_inactive_vfx,self,"J_Shoulder_RI");
}
}
//Function Number: 11
showattachmentsaftercloak()
{
if(self hasweapon("adrenaline_mp"))
{
if(isdefined(self.overclock_on) && self.overclock_on == 1)
{
playfxontag(level.exo_overclock_vfx_le_active,self,"J_Hip_LE");
playfxontag(level.exo_overclock_vfx_ri_active,self,"J_Hip_RI");
}
else
{
playfxontag(level.exo_overclock_vfx_le_inactive,self,"J_Hip_LE");
playfxontag(level.exo_overclock_vfx_ri_inactive,self,"J_Hip_RI");
}
}
if(self hasweapon("exorepulsor_equipment_mp"))
{
if(isdefined(self.repulsoractive) && self.repulsoractive == 1)
{
playfxontag(level.exo_repulsor_player_vfx_active,self,"TAG_JETPACK");
}
else
{
playfxontag(level.exo_repulsor_player_vfx_inactive,self,"TAG_JETPACK");
}
}
if(self hasweapon("exoping_equipment_mp"))
{
if(isdefined(self.exo_ping_on) && self.exo_ping_on == 1)
{
playfxontag(level.exo_ping_vfx_active,self,"J_SpineUpper");
}
else
{
playfxontag(level.exo_ping_vfx_inactive,self,"J_SpineUpper");
}
}
if(self hasweapon("extra_health_mp"))
{
if(isdefined(self.exo_health_on) && self.exo_health_on == 1)
{
playfxontag(level.exo_health_le_active_vfx,self,"J_Shoulder_LE");
playfxontag(level.exo_health_rt_active_vfx,self,"J_Shoulder_RI");
return;
}
playfxontag(level.exo_health_le_inactive_vfx,self,"J_Shoulder_LE");
playfxontag(level.exo_health_rt_inactive_vfx,self,"J_Shoulder_RI");
}
}
//Function Number: 12
get_exo_cloak_weapon()
{
if(isdefined(level.cloakweapon))
{
return level.cloakweapon;
}
level.cloakweapon = "exocloak_equipment_mp";
if(isdefined(level.ishorde))
{
level.cloakweapon = "exocloakhorde_equipment_mp";
}
return level.cloakweapon;
}

View File

@ -0,0 +1,187 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_exo_hover.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 7
* Decompile Time: 109 ms
* Timestamp: 10/27/2023 1:48:45 AM
*******************************************************************/
//Function Number: 1
exo_hover_think()
{
level endon("game_ended");
self endon("death");
self endon("disconnect");
self endon("joined_team");
self endon("faux_spawn");
self endon("exo_hover_taken");
if(!self hasweapon(level.hoverweapon))
{
return;
}
exo_hover_init();
for(;;)
{
if(self batteryisinuse(level.hoverweapon) == 0)
{
self waittillmatch(level.hoverweapon,"battery_discharge_begin");
}
self.exo_hover_on = 1;
maps\mp\gametypes\_gamelogic::sethasdonecombat(self,1);
self.pers["numberOfTimesHoveringUsed"]++;
maps\mp\_exo_battery::set_exo_ability_hud_omnvar(level.hoverweapon,"ui_exo_battery_toggle",1);
thread maps\mp\_exo_battery::update_exo_battery_hud(level.hoverweapon);
thread exo_hover_update();
thread play_exo_hover_vfx();
if(maps\mp\_utility::_hasperk("specialty_exo_blastsuppressor"))
{
maps\mp\_snd_common_mp::snd_message("mp_suppressed_exo_hover");
}
else
{
maps\mp\_snd_common_mp::snd_message("mp_regular_exo_hover");
}
thread end_exo_hover_on_notifies();
if(self batteryisinuse(level.hoverweapon) == 1)
{
self waittillmatch(level.hoverweapon,"battery_discharge_end");
}
maps\mp\_exo_battery::set_exo_ability_hud_omnvar(level.hoverweapon,"ui_exo_battery_toggle",0);
self.exo_hover_on = 0;
self notify("stop_exo_hover_effects");
}
}
//Function Number: 2
exo_hover_init()
{
self batterysetdischargescale(level.hoverweapon,1);
var_00 = self batterygetsize(level.hoverweapon);
if(self gettacticalweapon() == level.hoverweapon)
{
self setclientomnvar("exo_ability_nrg_req0",0);
self setclientomnvar("exo_ability_nrg_total0",var_00);
self setclientomnvar("ui_exo_battery_level0",var_00);
}
else if(self getlethalweapon() == level.hoverweapon)
{
self setclientomnvar("exo_ability_nrg_req1",0);
self setclientomnvar("exo_ability_nrg_total1",var_00);
self setclientomnvar("ui_exo_battery_level1",var_00);
}
if(!isdefined(level.regular_exo_hover_vfx))
{
level.regular_exo_hover_vfx = loadfx("vfx/smoke/exohover_exhaust_continuous");
}
if(!isdefined(level.suppressed_exo_hover_vfx))
{
level.suppressed_exo_hover_vfx = loadfx("vfx/smoke/exohover_exhaust_continuous_suppressed");
}
if(level.gametype == "horde")
{
setdynamicdvar("hover_max_travel_distance",1000);
return;
}
setdynamicdvar("hover_max_travel_distance",350);
}
//Function Number: 3
end_exo_hover_on_notifies()
{
self endon("stop_exo_hover_effects");
common_scripts\utility::waittill_any("death","disconnect","joined_team","faux_spawn","exo_hover_taken");
maps\mp\_exo_battery::set_exo_ability_hud_omnvar(level.hoverweapon,"ui_exo_battery_toggle",0);
self.exo_hover_on = 0;
self notify("stop_exo_hover_effects");
}
//Function Number: 4
take_exo_hover()
{
level.hoverweapon = "exohover_equipment_mp";
if(isdefined(level.ishorde))
{
level.hoverweapon = "exohoverhorde_equipment_mp";
}
self notify("kill_battery");
self notify("exo_hover_taken");
self takeweapon(level.hoverweapon);
}
//Function Number: 5
give_exo_hover()
{
level.hoverweapon = "exohover_equipment_mp";
if(isdefined(level.ishorde))
{
level.hoverweapon = "exohoverhorde_equipment_mp";
}
self giveweapon(level.hoverweapon);
thread exo_hover_think();
}
//Function Number: 6
exo_hover_update()
{
level endon("game_ended");
self endon("disconnect");
self endon("death");
self endon("joined_team");
self endon("faux_spawn");
self endon("exo_hover_taken");
self endon("stop_exo_hover_effects");
var_00 = self batterygetdischargerate(level.hoverweapon);
var_01 = self batterygetsize(level.hoverweapon);
for(;;)
{
self playrumbleonentity("damage_heavy");
var_02 = self getvelocity();
var_03 = length2d(var_02);
var_04 = 1;
if(level.gametype == "horde")
{
if(isdefined(self.hordeexobattery))
{
var_04 = 1 + self.hordeexobattery * -0.1;
}
}
self batterysetdischargescale(level.hoverweapon,max(var_04,var_01 * var_03 / getdvarint("hover_max_travel_distance",350) * var_00));
wait(0.1);
}
}
//Function Number: 7
play_exo_hover_vfx()
{
level endon("game_ended");
var_00 = 0;
if(maps\mp\_utility::_hasperk("specialty_exo_blastsuppressor"))
{
var_00 = 1;
var_01 = spawnlinkedfx(level.suppressed_exo_hover_vfx,self,"tag_jetpack");
}
else
{
var_01 = spawnlinkedfx(level.regular_exo_hover_vfx,self,"tag_jetpack");
}
triggerfx(var_01);
common_scripts\utility::waittill_any("disconnect","death","joined_team","faux_spawn","exo_hover_taken","stop_exo_hover_effects");
if(isdefined(var_01))
{
var_01 delete();
}
}

View File

@ -0,0 +1,203 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_exo_mute.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 11
* Decompile Time: 174 ms
* Timestamp: 10/27/2023 1:48:46 AM
*******************************************************************/
//Function Number: 1
exo_mute_think()
{
self notify("exo_mute_taken");
level endon("game_ended");
self endon("death");
self endon("disconnect");
self endon("joined_team");
self endon("faux_spawn");
self endon("exo_mute_taken");
if(!self hasweapon("exomute_equipment_mp"))
{
return;
}
exo_mute_init();
thread monitor_player_death();
thread wait_for_game_end();
for(;;)
{
self waittill("exo_ability_activate",var_00);
if(var_00 == "exomute_equipment_mp")
{
thread try_use_exo_mute();
}
}
}
//Function Number: 2
exo_mute_init()
{
self.mute_on = 0;
self batterysetdischargescale("exomute_equipment_mp",1);
var_00 = self batterygetsize("exomute_equipment_mp");
if(self gettacticalweapon() == "exomute_equipment_mp")
{
self setclientomnvar("exo_ability_nrg_req0",0);
self setclientomnvar("exo_ability_nrg_total0",var_00);
self setclientomnvar("ui_exo_battery_level0",var_00);
}
else if(self getlethalweapon() == "exomute_equipment_mp")
{
self setclientomnvar("exo_ability_nrg_req1",0);
self setclientomnvar("exo_ability_nrg_total1",var_00);
self setclientomnvar("ui_exo_battery_level1",var_00);
}
if(!isdefined(level.exo_mute_3p))
{
level.exo_mute_3p = loadfx("vfx/unique/exo_mute_3p");
}
wait(0.05);
if(!maps\mp\_utility::invirtuallobby())
{
}
}
//Function Number: 3
try_use_exo_mute()
{
self endon("exo_mute_taken");
if(self.mute_on == 1)
{
thread stop_exo_mute(1);
return;
}
thread start_exo_mute();
}
//Function Number: 4
killmutefx()
{
if(isdefined(self.mute_fx))
{
self.mute_fx delete();
self.mute_fx = undefined;
}
}
//Function Number: 5
start_exo_mute()
{
self endon("death");
self endon("disconnect");
self endon("joined_team");
self endon("faux_spawn");
self endon("exo_mute_taken");
self endon("end_exo_mute");
self.mute_on = 1;
maps\mp\_utility::giveperk("specialty_quieter",0);
self batterydischargebegin("exomute_equipment_mp");
maps\mp\_exo_battery::set_exo_ability_hud_omnvar("exomute_equipment_mp","ui_exo_battery_toggle",1);
thread maps\mp\_exo_battery::update_exo_battery_hud("exomute_equipment_mp");
thread monitor_mute_battery_charge();
maps\mp\_snd_common_mp::snd_message("mp_exo_mute_activate");
wait(0.05);
if(!self.mute_on)
{
return;
}
if(!isdefined(self.exo_cloak_on) || self.exo_cloak_on == 0)
{
self.mute_fx = spawnlinkedfx(level.exo_mute_3p,self,"TAG_ORIGIN");
triggerfx(self.mute_fx);
}
}
//Function Number: 6
stop_exo_mute(param_00)
{
if(!isdefined(self.mute_on) || !self.mute_on)
{
return;
}
if(!isdefined(param_00))
{
param_00 = 1;
}
self notify("end_exo_mute");
self.mute_on = 0;
self unsetperk("specialty_quieter",1);
self batterydischargeend("exomute_equipment_mp");
maps\mp\_exo_battery::set_exo_ability_hud_omnvar("exomute_equipment_mp","ui_exo_battery_toggle",0);
killmutefx();
if(param_00 == 1)
{
maps\mp\_snd_common_mp::snd_message("mp_exo_mute_deactivate");
wait(0.05);
if(!isdefined(self.exo_cloak_on) || self.exo_cloak_on == 0)
{
}
}
}
//Function Number: 7
monitor_player_death()
{
self endon("disconnect");
common_scripts\utility::waittill_any("death","joined_team","faux_spawn","exo_mute_taken");
thread stop_exo_mute(0);
}
//Function Number: 8
monitor_mute_battery_charge()
{
self endon("death");
self endon("disconnect");
self endon("joined_team");
self endon("faux_spawn");
self endon("exo_mute_taken");
self endon("end_exo_mute");
while(self.mute_on == 1)
{
if(self batterygetcharge("exomute_equipment_mp") <= 0)
{
thread stop_exo_mute(1);
}
wait(0.05);
}
}
//Function Number: 9
take_exo_mute()
{
self notify("kill_battery");
self notify("exo_mute_taken");
self takeweapon("exomute_equipment_mp");
}
//Function Number: 10
give_exo_mute()
{
self giveweapon("exomute_equipment_mp");
thread exo_mute_think();
}
//Function Number: 11
wait_for_game_end()
{
self endon("death");
self endon("disconnect");
self endon("joined_team");
self endon("faux_spawn");
self endon("exo_mute_taken");
level waittill("game_ended");
thread stop_exo_mute(0);
}

View File

@ -0,0 +1,227 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_exo_ping.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 11
* Decompile Time: 176 ms
* Timestamp: 10/27/2023 1:48:47 AM
*******************************************************************/
//Function Number: 1
exo_ping_think()
{
self notify("exo_ping_taken");
level endon("game_ended");
self endon("death");
self endon("disconnect");
self endon("joined_team");
self endon("faux_spawn");
self endon("exo_ping_taken");
if(!self hasweapon("exoping_equipment_mp"))
{
return;
}
exo_ping_init();
thread toggle_exo_ping();
thread wait_for_player_death();
thread wait_for_game_end();
}
//Function Number: 2
exo_ping_init()
{
self.exo_ping_on = 0;
self batterysetdischargescale("exoping_equipment_mp",1);
var_00 = self batterygetsize("exoping_equipment_mp");
if(self gettacticalweapon() == "exoping_equipment_mp")
{
self setclientomnvar("ui_exo_battery_level0",var_00);
self setclientomnvar("exo_ability_nrg_req0",batteryreqtouse("exoping_equipment_mp"));
self setclientomnvar("exo_ability_nrg_total0",var_00);
}
else if(self getlethalweapon() == "exoping_equipment_mp")
{
self setclientomnvar("ui_exo_battery_level1",var_00);
self setclientomnvar("exo_ability_nrg_req1",batteryreqtouse("exoping_equipment_mp"));
self setclientomnvar("exo_ability_nrg_total1",var_00);
}
if(!isdefined(level.exo_ping_vfx_inactive))
{
level.exo_ping_vfx_inactive = loadfx("vfx/unique/exo_ping_inactive");
}
if(!isdefined(level.exo_ping_vfx_active))
{
level.exo_ping_vfx_active = loadfx("vfx/unique/exo_ping_active");
}
wait(0.05);
if(!maps\mp\_utility::invirtuallobby())
{
playfxontag(level.exo_ping_vfx_inactive,self,"J_SpineUpper");
}
}
//Function Number: 3
toggle_exo_ping()
{
self endon("death");
self endon("disconnect");
self endon("joined_team");
self endon("faux_spawn");
self endon("exo_ping_taken");
for(;;)
{
self waittill("exo_ability_activate",var_00);
if(var_00 != "exoping_equipment_mp")
{
continue;
}
if(self.exo_ping_on == 1)
{
thread stop_exo_ping();
continue;
}
if(self hasweapon("exoping_equipment_mp"))
{
if(self batterygetcharge("exoping_equipment_mp") > 0)
{
start_exo_ping();
}
}
}
}
//Function Number: 4
monitor_exoping_battery_charge()
{
level endon("game_ended");
self endon("death");
self endon("disconnect");
self endon("joined_team");
self endon("faux_spawn");
self endon("exo_ping_taken");
self endon("stop_exo_ping");
while(self.exo_ping_on == 1)
{
if(self batterygetcharge("exoping_equipment_mp") <= 0)
{
thread stop_exo_ping();
}
wait(0.05);
}
}
//Function Number: 5
take_exo_ping()
{
self notify("kill_battery");
self notify("exo_ping_taken");
self takeweapon("exoping_equipment_mp");
}
//Function Number: 6
give_exo_ping()
{
self giveweapon("exoping_equipment_mp");
thread exo_ping_think();
}
//Function Number: 7
killpingfx()
{
if(isdefined(self.ping_fx))
{
self.ping_fx delete();
self.ping_fx = undefined;
}
}
//Function Number: 8
start_exo_ping()
{
self endon("death");
self endon("disconnect");
self endon("joined_team");
self endon("faux_spawn");
self endon("exo_ping_taken");
self endon("stop_exo_ping");
self.exo_ping_on = 1;
self.highlight_effect = maps\mp\_threatdetection::detection_highlight_hud_effect_on(self,-1);
self setperk("specialty_exo_ping",1,0);
self batterydischargeonce("exoping_equipment_mp",batteryusepershot("exoping_equipment_mp"));
self batterydischargebegin("exoping_equipment_mp");
maps\mp\_exo_battery::set_exo_ability_hud_omnvar("exoping_equipment_mp","ui_exo_battery_toggle",1);
thread maps\mp\_exo_battery::update_exo_battery_hud("exoping_equipment_mp");
thread monitor_exoping_battery_charge();
maps\mp\_snd_common_mp::snd_message("mp_exo_ping_activate");
killpingfx();
if(!isdefined(self.exo_cloak_on) || self.exo_cloak_on == 0)
{
self.ping_fx = spawnlinkedfx(level.exo_ping_vfx_active,self,"J_SpineUpper");
triggerfx(self.ping_fx);
}
}
//Function Number: 9
stop_exo_ping(param_00)
{
if(!isdefined(self.exo_ping_on) || !self.exo_ping_on)
{
return;
}
if(!isdefined(param_00))
{
param_00 = 1;
}
self notify("stop_exo_ping");
self.exo_ping_on = 0;
if(isdefined(self.highlight_effect))
{
maps\mp\_threatdetection::detection_highlight_hud_effect_off(self.highlight_effect);
}
self unsetperk("specialty_exo_ping",1);
self batterydischargeend("exoping_equipment_mp");
maps\mp\_exo_battery::set_exo_ability_hud_omnvar("exoping_equipment_mp","ui_exo_battery_toggle",0);
killpingfx();
if(param_00 == 1)
{
maps\mp\_snd_common_mp::snd_message("mp_exo_ping_deactivate");
wait(0.05);
if(!isdefined(self.exo_cloak_on) || self.exo_cloak_on == 0)
{
self.ping_fx = spawnlinkedfx(level.exo_ping_vfx_inactive,self,"J_SpineUpper");
triggerfx(self.ping_fx);
}
}
}
//Function Number: 10
wait_for_player_death()
{
level endon("game_ended");
self endon("disconnect");
common_scripts\utility::waittill_any("death","joined_team","faux_spawn","exo_ping_taken");
thread stop_exo_ping(0);
}
//Function Number: 11
wait_for_game_end()
{
self endon("death");
self endon("disconnect");
self endon("joined_team");
self endon("faux_spawn");
self endon("exo_ping_taken");
level waittill("game_ended");
thread stop_exo_ping(0);
}

View File

@ -0,0 +1,465 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_exo_repulsor.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 13
* Decompile Time: 299 ms
* Timestamp: 10/27/2023 1:48:48 AM
*******************************************************************/
//Function Number: 1
exo_repulsor_think()
{
self notify("exo_repulsor_taken");
level endon("game_ended");
self endon("death");
self endon("disconnect");
self endon("joined_team");
self endon("faux_spawn");
self endon("exo_repulsor_taken");
if(!self hasweapon("exorepulsor_equipment_mp"))
{
return;
}
exorepulsorinit();
thread monitorplayerdeath();
thread wait_for_game_end();
for(;;)
{
self waittill("exo_ability_activate",var_00);
if(var_00 == "exorepulsor_equipment_mp")
{
thread tryuserepulsor();
}
}
}
//Function Number: 2
exorepulsorinit()
{
self.repulsoractive = 0;
self batterysetdischargescale("exorepulsor_equipment_mp",1);
var_00 = self batterygetsize("exorepulsor_equipment_mp");
self.projectilesstopped = 0;
if(self gettacticalweapon() == "exorepulsor_equipment_mp")
{
self setclientomnvar("exo_ability_nrg_req0",0);
self setclientomnvar("exo_ability_nrg_total0",var_00);
self setclientomnvar("ui_exo_battery_level0",var_00);
}
else if(self getlethalweapon() == "exorepulsor_equipment_mp")
{
self setclientomnvar("exo_ability_nrg_req1",0);
self setclientomnvar("exo_ability_nrg_total1",var_00);
self setclientomnvar("ui_exo_battery_level1",var_00);
}
if(!isdefined(level.exo_repulsor_impact))
{
level.exo_repulsor_impact = loadfx("vfx/explosion/exo_repulsor_impact");
}
if(!isdefined(level.exo_repulsor_activate_vfx))
{
level.exo_repulsor_activate_vfx = loadfx("vfx/unique/repulsor_bubble");
}
if(!isdefined(level.exo_repulsor_deactivate_vfx))
{
level.exo_repulsor_deactivate_vfx = loadfx("vfx/unique/repulsor_bubble_deactivate");
}
if(!isdefined(level.exo_repulsor_player_vfx_active))
{
level.exo_repulsor_player_vfx_active = loadfx("vfx/unique/exo_repulsor_emitter");
}
if(!isdefined(level.exo_repulsor_player_vfx_inactive))
{
level.exo_repulsor_player_vfx_inactive = loadfx("vfx/unique/exo_repulsor_inactive");
}
wait(0.05);
if(!maps\mp\_utility::invirtuallobby())
{
playfxontag(level.exo_repulsor_player_vfx_inactive,self,getrepulsortag());
}
}
//Function Number: 3
getrepulsortag()
{
if(isdefined(level.getrepulsortagfunc))
{
return self [[ level.getrepulsortagfunc ]]();
}
return "TAG_JETPACK";
}
//Function Number: 4
tryuserepulsor(param_00)
{
self endon("exo_repulsor_taken");
if(self.repulsoractive == 1)
{
thread stop_repulsor(1);
return;
}
thread start_repulsor();
}
//Function Number: 5
killrepulsorfx()
{
if(isdefined(self.repulsor_fx))
{
self.repulsor_fx delete();
self.repulsor_fx = undefined;
}
}
//Function Number: 6
start_repulsor()
{
self endon("death");
self endon("disconnect");
self endon("joined_team");
self endon("faux_spawn");
self endon("stop_exo_repulsor");
self endon("exo_repulsor_taken");
self.repulsoractive = 1;
thread do_exo_repulsor();
self batterydischargebegin("exorepulsor_equipment_mp");
maps\mp\_exo_battery::set_exo_ability_hud_omnvar("exorepulsor_equipment_mp","ui_exo_battery_toggle",1);
thread maps\mp\_exo_battery::update_exo_battery_hud("exorepulsor_equipment_mp");
maps\mp\_snd_common_mp::snd_message("mp_exo_repulsor_activate");
killrepulsorfx();
if(!isdefined(self.exo_cloak_on) || self.exo_cloak_on == 0)
{
self.repulsor_fx = spawnlinkedfx(level.exo_repulsor_player_vfx_active,self,getrepulsortag());
triggerfx(self.repulsor_fx);
}
wait(0.05);
if(!self.repulsoractive)
{
return;
}
if(isdefined(level.exo_repulsor_activate_vfx))
{
playfxontagforclients(level.exo_repulsor_activate_vfx,self,"j_head",self);
}
}
//Function Number: 7
stop_repulsor(param_00)
{
if(!isdefined(self.repulsoractive) || !self.repulsoractive)
{
return;
}
if(!isdefined(param_00))
{
param_00 = 1;
}
self notify("stop_exo_repulsor");
self.repulsoractive = 0;
self batterydischargeend("exorepulsor_equipment_mp");
maps\mp\_exo_battery::set_exo_ability_hud_omnvar("exorepulsor_equipment_mp","ui_exo_battery_toggle",0);
killrepulsorfx();
if(param_00 == 1)
{
maps\mp\_snd_common_mp::snd_message("mp_exo_repulsor_deactivate");
if(!isdefined(self.exo_cloak_on) || self.exo_cloak_on == 0)
{
self.repulsor_fx = spawnlinkedfx(level.exo_repulsor_player_vfx_inactive,self,getrepulsortag());
triggerfx(self.repulsor_fx);
}
wait(0.05);
if(isdefined(level.exo_repulsor_deactivate_vfx))
{
playfxontagforclients(level.exo_repulsor_deactivate_vfx,self,"j_head",self);
}
}
}
//Function Number: 8
monitorplayerdeath()
{
level endon("game_ended");
self endon("disconnect");
common_scripts\utility::waittill_any("death","joined_team","faux_spawn","exo_repulsor_taken");
self.projectilesstopped = 0;
thread stop_repulsor(0);
}
//Function Number: 9
update_exo_battery_hud()
{
var_00 = self batterygetcharge("exorepulsor_equipment_mp");
maps\mp\_exo_battery::set_exo_ability_hud_omnvar("exorepulsor_equipment_mp","ui_exo_battery_level",var_00);
}
//Function Number: 10
do_exo_repulsor()
{
level endon("game_ended");
self endon("death");
self endon("disconnect");
self endon("joined_team");
self endon("faux_spawn");
self endon("stop_exo_repulsor");
self endon("exo_repulsor_taken");
while(self batterygetcharge("exorepulsor_equipment_mp") > 0)
{
for(var_00 = 0;var_00 < level.grenades.size;var_00++)
{
var_01 = level.grenades[var_00];
if(!isdefined(var_01.weaponname))
{
continue;
}
if(isdefined(var_01.weaponname) && maps\mp\_utility::is_exo_ability_weapon(var_01.weaponname))
{
continue;
}
if(!isdefined(var_01.owner))
{
continue;
}
if(isdefined(var_01.owner) && var_01.owner == self)
{
continue;
}
if(level.teambased && isdefined(var_01.owner.team) && var_01.owner.team == self.team)
{
continue;
}
var_02 = distance(var_01.origin,self.origin);
if(var_02 < 385)
{
if(sighttracepassed(self geteye(),var_01.origin,0,self))
{
var_03 = var_01.origin - self.origin;
var_04 = vectortoangles(var_03);
var_05 = anglestoup(var_04);
var_06 = anglestoforward(var_04);
var_07 = vectornormalize(var_06);
var_08 = var_01.origin - 0.2 * var_02 * var_07;
playfx(level.exo_repulsor_impact,var_08,var_07,var_05);
var_01 maps\mp\_snd_common_mp::snd_message("mp_exo_repulsor_repel");
if(var_01.weaponname == "explosive_drone_mp")
{
var_01 notify("mp_exo_repulsor_repel");
var_01 thread maps\mp\_explosive_drone::explosivegrenadedeath();
}
else
{
if(isdefined(level.iszombiegame) && level.iszombiegame)
{
var_01 notify("repulsor_repel");
}
var_01 delete();
}
self.projectilesstopped++;
maps\mp\gametypes\_missions::processchallenge("ch_exoability_repulser");
self batterydischargeonce("exorepulsor_equipment_mp",int(self batterygetsize("exorepulsor_equipment_mp") / 2));
update_exo_battery_hud();
}
}
}
for(var_00 = 0;var_00 < level.missiles.size;var_00++)
{
var_09 = level.missiles[var_00];
if(!isdefined(var_09.owner))
{
continue;
}
if(isdefined(var_09.owner) && var_09.owner == self)
{
continue;
}
if(level.teambased && isdefined(var_09.owner.team) && var_09.owner.team == self.team)
{
continue;
}
var_0A = distance(var_09.origin,self.origin);
if(var_0A < 385)
{
if(sighttracepassed(self geteye(),var_09.origin,0,self))
{
var_0B = var_09.origin - self.origin;
var_0C = vectortoangles(var_0B);
var_0D = anglestoup(var_0C);
var_0E = anglestoforward(var_0C);
var_0F = vectornormalize(var_0E);
var_08 = var_09.origin - 0.2 * var_0A * var_0F;
playfx(level.exo_repulsor_impact,var_08,var_0F,var_0D);
var_09 maps\mp\_snd_common_mp::snd_message("mp_exo_repulsor_repel");
if(isdefined(var_09.weaponname) && var_09.weaponname == "iw5_exocrossbow_mp")
{
stopfxontag(common_scripts\utility::getfx("exocrossbow_sticky_blinking"),var_09.fx_origin,"tag_origin");
}
var_09 delete();
self.projectilesstopped++;
maps\mp\gametypes\_missions::processchallenge("ch_exoability_repulser");
self batterydischargeonce("exorepulsor_equipment_mp",int(self batterygetsize("exorepulsor_equipment_mp") / 2));
update_exo_battery_hud();
}
}
}
for(var_00 = 0;var_00 < level.explosivedrones.size;var_00++)
{
var_10 = level.explosivedrones[var_00];
if(isdefined(var_10))
{
if(!isdefined(var_10.owner))
{
continue;
}
if(isdefined(var_10.owner) && var_10.owner == self)
{
continue;
}
if(level.teambased && isdefined(var_10.owner.team) && var_10.owner.team == self.team)
{
continue;
}
var_11 = distance(var_10.origin,self.origin);
if(var_11 < 385)
{
if(sighttracepassed(self geteye(),var_10.origin,0,self))
{
var_12 = var_10.origin - self.origin;
var_13 = vectortoangles(var_12);
var_14 = anglestoup(var_13);
var_15 = anglestoforward(var_13);
var_16 = vectornormalize(var_15);
var_08 = var_10.origin - 0.2 * var_11 * var_16;
playfx(level.exo_repulsor_impact,var_08,var_16,var_14);
var_10 maps\mp\_snd_common_mp::snd_message("mp_exo_repulsor_repel");
if(isdefined(var_10.explosivedrone))
{
var_10.explosivedrone delete();
}
var_10 delete();
self.projectilesstopped++;
maps\mp\gametypes\_missions::processchallenge("ch_exoability_repulser");
self batterydischargeonce("exorepulsor_equipment_mp",int(self batterygetsize("exorepulsor_equipment_mp") / 2));
update_exo_battery_hud();
}
}
}
}
foreach(var_18 in level.trackingdrones)
{
if(!isdefined(var_18.owner))
{
continue;
}
if(isdefined(var_18.owner) && var_18.owner == self)
{
continue;
}
if(level.teambased && isdefined(var_18.owner.team) && var_18.owner.team == self.team)
{
continue;
}
var_19 = distance(var_18.origin,self.origin);
if(var_19 < 385)
{
if(sighttracepassed(self geteye(),var_18.origin,0,self))
{
var_1A = var_18.origin - self.origin;
var_1B = vectortoangles(var_1A);
var_1C = anglestoup(var_1B);
var_1D = anglestoforward(var_1B);
var_1E = vectornormalize(var_1D);
var_08 = var_18.origin - 0.2 * var_19 * var_1E;
playfx(level.exo_repulsor_impact,var_08,var_1E,var_1C);
var_18 maps\mp\_snd_common_mp::snd_message("mp_exo_repulsor_repel");
if(!isremovedentity(var_18) && isdefined(var_18))
{
var_18 notify("death");
maps\mp\_utility::decrementfauxvehiclecount();
}
self.projectilesstopped++;
maps\mp\gametypes\_missions::processchallenge("ch_exoability_repulser");
self batterydischargeonce("exorepulsor_equipment_mp",int(self batterygetsize("exorepulsor_equipment_mp") / 2));
update_exo_battery_hud();
}
}
}
if(self.projectilesstopped >= 2)
{
if(!isdefined(level.ishorde))
{
thread maps\mp\_events::fourplayevent();
}
self.projectilesstopped = self.projectilesstopped - 2;
}
wait(0.05);
}
thread stop_repulsor(1);
}
//Function Number: 11
take_exo_repulsor()
{
self notify("kill_battery");
self notify("exo_repulsor_taken");
self takeweapon("exorepulsor_equipment_mp");
}
//Function Number: 12
give_exo_repulsor()
{
self giveweapon("exorepulsor_equipment_mp");
thread exo_repulsor_think();
}
//Function Number: 13
wait_for_game_end()
{
self endon("death");
self endon("disconnect");
self endon("joined_team");
self endon("faux_spawn");
self endon("exo_repulsor_taken");
level waittill("game_ended");
thread stop_repulsor(0);
}

View File

@ -0,0 +1,109 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_exo_shield.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 5
* Decompile Time: 75 ms
* Timestamp: 10/27/2023 1:48:49 AM
*******************************************************************/
//Function Number: 1
exo_shield_think()
{
level endon("game_ended");
self endon("death");
self endon("disconnect");
self endon("joined_team");
self endon("faux_spawn");
self endon("exo_shield_taken");
self notify("exo_shield_think_end");
self endon("exo_shield_think_end");
var_00 = get_exo_shield_weapon();
if(!self hasweapon(var_00))
{
return;
}
self batterysetdischargescale(var_00,1);
var_01 = batteryusepershot(var_00);
var_02 = self batterygetsize(var_00);
if(self gettacticalweapon() == var_00)
{
self setclientomnvar("ui_exo_battery_level0",var_02);
self setclientomnvar("exo_ability_nrg_req0",var_01);
self setclientomnvar("exo_ability_nrg_total0",var_02);
}
else if(self getlethalweapon() == var_00)
{
self setclientomnvar("ui_exo_battery_level1",var_02);
self setclientomnvar("exo_ability_nrg_req1",var_01);
self setclientomnvar("exo_ability_nrg_total1",var_02);
}
thread wait_for_player_death(var_00);
for(;;)
{
self waittillmatch(var_00,"grenade_pullback");
maps\mp\_snd_common_mp::snd_message("mp_exo_shield_activate");
self.pers["numberOfTimesShieldUsed"]++;
maps\mp\_exo_battery::set_exo_ability_hud_omnvar(var_00,"ui_exo_battery_toggle",1);
self.exo_shield_on = 1;
if(!isagent(self))
{
thread maps\mp\_exo_battery::update_exo_battery_hud(var_00);
}
if(self batteryisinuse(var_00) == 1)
{
self waittillmatch(var_00,"battery_discharge_end");
}
maps\mp\_snd_common_mp::snd_message("mp_exo_shield_deactivate");
maps\mp\_exo_battery::set_exo_ability_hud_omnvar(var_00,"ui_exo_battery_toggle",0);
self.exo_shield_on = 0;
}
}
//Function Number: 2
take_exo_shield()
{
self notify("kill_battery");
self notify("exo_shield_taken");
self takeweapon(get_exo_shield_weapon());
}
//Function Number: 3
give_exo_shield()
{
self giveweapon(get_exo_shield_weapon());
thread exo_shield_think();
}
//Function Number: 4
get_exo_shield_weapon()
{
if(isdefined(level.exoshieldweapon))
{
return level.exoshieldweapon;
}
level.exoshieldweapon = "exoshield_equipment_mp";
if(isdefined(level.ishorde))
{
level.exoshieldweapon = "exoshieldhorde_equipment_mp";
}
return level.exoshieldweapon;
}
//Function Number: 5
wait_for_player_death(param_00)
{
level endon("game_ended");
self endon("disconnect");
common_scripts\utility::waittill_any("death","joined_team","faux_spawn","exo_shield_taken");
maps\mp\_exo_battery::set_exo_ability_hud_omnvar(param_00,"ui_exo_battery_toggle",0);
self.exo_shield_on = 0;
self refreshshieldmodels();
}

View File

@ -0,0 +1,169 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_exo_suit.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 12
* Decompile Time: 189 ms
* Timestamp: 10/27/2023 1:48:50 AM
*******************************************************************/
//Function Number: 1
getgroundslamminheight()
{
return 120;
}
//Function Number: 2
getgroundslammaxheight()
{
return 380;
}
//Function Number: 3
getgroundslammindamage()
{
return 50;
}
//Function Number: 4
getgroundslammaxdamage()
{
return 110;
}
//Function Number: 5
getgroundslamminradius()
{
return 75;
}
//Function Number: 6
getgroundslammaxradius()
{
return 125;
}
//Function Number: 7
init()
{
level._effect["exo_slam_kneeslide_fx"] = loadfx("vfx/code/slam_jetpack_kneeslide");
level thread onplayerconnect();
}
//Function Number: 8
onplayerconnect()
{
for(;;)
{
level waittill("connected",var_00);
var_00 thread monitorgroundslam();
var_00 thread monitorgroundslamhitplayer();
}
}
//Function Number: 9
monitorgroundslam()
{
self endon("disconnect");
var_00 = 10;
var_01 = 4;
var_02 = (1,0,0);
var_03 = (0,1,0);
var_04 = (0,0,1);
var_05 = 16;
for(;;)
{
self waittill("ground_slam",var_06);
if(isdefined(level.groundslam) && self [[ level.groundslam ]](var_06))
{
continue;
}
var_07 = getdvarfloat("ground_slam_min_height",getgroundslamminheight());
var_08 = getdvarfloat("ground_slam_max_height",getgroundslammaxheight());
var_09 = getdvarfloat("ground_slam_min_damage",getgroundslammindamage());
var_0A = getdvarfloat("ground_slam_max_damage",getgroundslammaxdamage());
var_0B = getdvarfloat("ground_slam_min_radius",getgroundslamminradius());
var_0C = getdvarfloat("ground_slam_max_radius",getgroundslammaxradius());
if(var_06 < var_07)
{
continue;
}
var_0D = var_06 - var_07 / var_08 - var_07;
var_0D = clamp(var_0D,0,1);
var_0E = var_0C - var_0B * var_0D + var_0B;
var_0F = var_0E + 60;
var_10 = var_0F * var_0F;
self radiusdamage(self.origin,var_0E,var_0A,var_09,self,"MOD_TRIGGER_HURT","boost_slam_mp");
if(maps\mp\_utility::_hasperk("specialty_exo_slamboots"))
{
playfxontag(level._effect["exo_slam_kneeslide_fx"],self,"j_knee_ri");
physicsexplosionsphere(self.origin,var_0E,20,1);
foreach(var_12 in level.players)
{
if(maps\mp\_utility::isreallyalive(var_12) && var_12 != self && !level.teambased || var_12.team != self.team && !var_12 maps\mp\_utility::isusingremote())
{
if(distancesquared(self.origin,var_12.origin) < var_10)
{
var_12 shellshock("concussion_grenade_mp",1.5);
maps\mp\gametypes\_missions::processchallenge("ch_perk_overcharge");
}
}
}
}
else
{
physicsexplosionsphere(self.origin,var_0E,20,0.9);
}
if(getdvarint("ground_slam_debug"))
{
thread draw_circle_for_time(self.origin,var_0E + var_05,(0,1,0),0,16,var_00);
var_14 = 100;
var_15 = var_14 - var_09 * var_0E / var_0A - var_09;
thread draw_circle_for_time(self.origin,var_15 + var_05,(1,0,0),0,16,var_00);
foreach(var_12 in level.players)
{
}
}
}
}
//Function Number: 10
draw_circle_for_time(param_00,param_01,param_02,param_03,param_04,param_05)
{
var_06 = param_05 / 0.05;
for(var_07 = 0;var_07 < var_06;var_07++)
{
maps\mp\bots\_bots_util::bot_draw_circle(param_00,param_01,param_02,param_03,param_04);
wait(0.05);
}
}
//Function Number: 11
monitorgroundslamhitplayer()
{
self endon("disconnect");
for(;;)
{
self waittill("ground_slam_hit_player",var_00);
if(isdefined(level.groundslamhitplayer) && self [[ level.groundslamhitplayer ]](var_00))
{
continue;
}
var_00 dodamage(var_00.health,self.origin,self,self,"MOD_CRUSH","boost_slam_mp");
}
}
//Function Number: 12
exo_power_cooldown(param_00)
{
var_01 = int(param_00 * 1000);
self setclientomnvar("ui_exo_cooldown_time",var_01);
wait(param_00);
self setclientomnvar("ui_exo_cooldown_time",0);
self playlocalsound("exo_power_recharged");
}

View File

@ -0,0 +1,136 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_exocrossbow.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 8
* Decompile Time: 145 ms
* Timestamp: 10/27/2023 1:48:51 AM
*******************************************************************/
//Function Number: 1
monitor_exocrossbow_launch()
{
level endon("game_ended");
self endon("death");
self endon("disconnect");
self endon("joined_team");
self endon("faux_spawn");
level._effect["exocrossbow_sticky_explosion"] = loadfx("vfx/explosion/frag_grenade_default");
level._effect["exocrossbow_sticky_blinking"] = loadfx("vfx/lights/light_beacon_crossbow");
for(;;)
{
self waittill("missile_fire",var_00,var_01);
var_02 = 0;
if(issubstr(var_01,"iw5_exocrossbow"))
{
var_02 = 1;
}
else if(issubstr(var_01,"dlcgun11loot0"))
{
var_02 = 1;
}
if(!var_02)
{
continue;
}
var_00 setotherent(self);
var_00.ch_crossbow_player_jumping = self ishighjumping();
thread wait_for_stuck(var_00);
}
}
//Function Number: 2
wait_for_stuck(param_00)
{
level endon("game_ended");
self endon("death");
self endon("disconnect");
self endon("joined_team");
self endon("faux_spawn");
param_00 endon("death");
param_00 waittill("missile_stuck",var_01);
param_00 thread determine_sticky_position(self,var_01);
}
//Function Number: 3
determine_sticky_position(param_00,param_01)
{
self endon("death");
param_00 endon("disconnect");
param_00 endon("faux_spawn");
if(!isdefined(self))
{
return;
}
if(isdefined(param_01) && !maps\mp\_utility::invirtuallobby() && isplayer(param_01))
{
self.ch_crossbow_victim_jumping = param_01 ishighjumping();
if(param_00 maps\mp\gametypes\_weapons::isstucktofriendly(param_01))
{
self.isstuck = "friendly";
}
else
{
self.isstuck = "enemy";
self.stuckenemyentity = param_01;
param_00 maps\mp\_events::crossbowstickevent(param_01);
param_00 notify("process","ch_bullseye");
}
}
thread sticky_timer(param_00);
thread sticky_fx(param_00);
thread remove_sticky_on_explosion(param_00);
thread cleanup_sticky_on_death();
thread maps\mp\gametypes\_weapons::stickyhandlemovers("detonate");
}
//Function Number: 4
sticky_timer(param_00)
{
self endon("death");
wait(1.5);
self notify("exocrossbow_exploded");
}
//Function Number: 5
sticky_fx(param_00)
{
self endon("exocrossbow_exploded");
self endon("death");
self.fx_origin = common_scripts\utility::spawn_tag_origin();
self.fx_origin.origin = self.origin;
self.fx_origin.angles = self.angles;
self.fx_origin show();
self.fx_origin linkto(self);
wait(0.1);
playfxontag(common_scripts\utility::getfx("exocrossbow_sticky_blinking"),self.fx_origin,"tag_origin");
self playsound("exocrossbow_warning");
}
//Function Number: 6
remove_sticky_on_explosion(param_00)
{
self endon("death");
self waittill("exocrossbow_exploded");
cleanup_sticky();
}
//Function Number: 7
cleanup_sticky_on_death()
{
self endon("exocrossbow_exploded");
self waittill("death");
cleanup_sticky();
}
//Function Number: 8
cleanup_sticky()
{
stopfxontag(common_scripts\utility::getfx("exocrossbow_sticky_blinking"),self.fx_origin,"tag_origin");
self.fx_origin delete();
}

View File

@ -0,0 +1,263 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_exoknife.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 15
* Decompile Time: 223 ms
* Timestamp: 10/27/2023 1:48:52 AM
*******************************************************************/
//Function Number: 1
init()
{
level._effect["exo_knife_blood"] = loadfx("vfx/weaponimpact/flesh_impact_head_fatal_exit");
}
//Function Number: 2
exo_knife_think()
{
thread exo_knife_throw_watch();
}
//Function Number: 3
exo_knife_throw_watch()
{
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
for(;;)
{
self waittill("grenade_fire",var_00,var_01);
var_02 = maps\mp\_utility::strip_suffix(var_01,"_lefthand");
if(var_02 != "exoknife_mp" && var_02 != "exoknife_jug_mp")
{
continue;
}
var_00.manuallydetonatefunc = ::exo_knife_manually_detonate;
var_00.flying = 1;
var_00.weaponname = var_01;
if(!isdefined(var_00.recall))
{
var_00.recall = 0;
}
var_00.owner = self;
thread exo_knife_enable_detonate(var_00);
var_00 thread exo_knife_touch_watch();
var_00 thread exo_knife_stuck_watch();
var_00 thread exo_knife_recall_watch();
var_00 thread exo_knife_emp_watch();
}
}
//Function Number: 4
exo_knife_emp_watch()
{
self endon("death");
for(;;)
{
level waittill("emp_update");
if(isdefined(level.empequipmentdisabled) && level.empequipmentdisabled && self.owner maps\mp\_utility::isempedbykillstreak())
{
thread exo_knife_delete();
}
}
}
//Function Number: 5
exo_knife_enable_detonate(param_00)
{
self endon("disconnect");
if(!isdefined(self.exoknife_count))
{
self.exoknife_count = 0;
}
if(!self.exoknife_count)
{
common_scripts\utility::_enabledetonate(param_00.weaponname,1);
}
self.exoknife_count++;
param_00 waittill("death");
self.exoknife_count--;
if(!self.exoknife_count)
{
common_scripts\utility::_enabledetonate(param_00.weaponname,0);
}
}
//Function Number: 6
exo_knife_passed_target()
{
self endon("death");
self.owner endon("disconnect");
self waittill("missile_passed_target");
exo_knife_restock();
}
//Function Number: 7
exo_knife_touch_watch()
{
if(!isdefined(self.owner))
{
return;
}
self endon("death");
self.owner endon("disconnect");
var_00 = spawn("trigger_radius",self.origin,0,15,5);
var_00 enablelinkto();
var_00 linkto(self);
var_00.knife = self;
thread common_scripts\utility::delete_on_death(var_00);
for(;;)
{
var_00 waittill("trigger",var_01);
if(var_01 != self.owner)
{
continue;
}
if(var_01 getfractionmaxammo(self.weaponname) >= 1)
{
continue;
}
break;
}
exo_knife_restock();
}
//Function Number: 8
exo_knife_restock()
{
self.owner setclientomnvar("damage_feedback","throwingknife");
self.owner setweaponammostock(self.weaponname,self.owner setweaponammostock(self.weaponname) + 1);
exo_knife_delete();
}
//Function Number: 9
exo_knife_stuck_watch()
{
self endon("death");
for(;;)
{
self waittill("missile_stuck",var_00);
var_01 = maps\mp\_riotshield::entisstucktoshield();
self.flying = 0;
self.recall = 0;
if(isdefined(self.owner) && isdefined(var_00) && (isdefined(level.ishorde) && level.ishorde && var_00.model == "animal_dobernan") || maps\mp\_utility::isgameparticipant(var_00) && !var_01)
{
if(isdefined(var_00.team) && isdefined(self.owner.team) && var_00.team != self.owner.team)
{
playimpactheadfatalfx(self.origin,self.origin - self.owner.origin);
}
var_00 maps\mp\_snd_common_mp::snd_message("exo_knife_player_impact");
var_02 = getdvarfloat("exo_knife_return_delay",0.5);
self.owner thread exo_knife_recall(var_02);
continue;
}
thread maps\mp\gametypes\_weapons::stickyhandlemovers(undefined,"exo_knife_recall");
}
}
//Function Number: 10
exo_knife_recall_stuck_watch()
{
self endon("death");
for(;;)
{
self waittill("missile_stuck",var_00);
if(isdefined(self.owner) && isdefined(var_00) && var_00 maps\mp\_utility::isjuggernaut())
{
if(!level.teambased || isdefined(self.owner.team) && isdefined(var_00.team) && var_00.team != self.owner.team)
{
thread exo_knife_delete();
}
}
}
}
//Function Number: 11
exo_knife_recall(param_00)
{
self endon("death");
self endon("disconnect");
self endon("exo_knife_recall");
if(isdefined(param_00) && param_00 > 0)
{
wait(param_00);
}
self notify("exo_knife_recall");
}
//Function Number: 12
exo_knife_manually_detonate(param_00)
{
if(isdefined(param_00) && !param_00.recall)
{
exo_knife_recall();
}
}
//Function Number: 13
exo_knife_recall_watch()
{
self endon("death");
if(!isdefined(self.owner))
{
return;
}
self.owner endon("disconnect");
self.owner endon("death");
self.owner waittill("exo_knife_recall");
var_00 = self.origin;
var_01 = self.owner geteye();
if(self.owner getstance() != "prone")
{
var_01 = var_01 - (0,0,20);
}
var_02 = getdvarfloat("exo_knife_speed",1200);
var_03 = distance(var_00,var_01);
var_04 = var_03 / var_02;
var_05 = self.owner getvelocity();
var_01 = var_01 + var_05 * var_04;
var_06 = var_01 - var_00;
var_06 = vectornormalize(var_06);
var_07 = 0;
if(var_07 != 0)
{
var_00 = var_00 + var_06 * var_07;
}
var_08 = var_06 * var_02;
var_09 = magicgrenademanual(self.weaponname,var_00,var_08,30,self.owner,1);
var_09.owner = self.owner;
var_09.recall = 1;
var_09 missile_settargetent(self.owner);
var_09 thread exo_knife_recall_stuck_watch();
var_09 thread exo_knife_passed_target();
exo_knife_delete();
}
//Function Number: 14
exo_knife_clean_up_attractor(param_00,param_01,param_02)
{
common_scripts\utility::waittill_any_ents(param_01,"disconnect",param_01,"death",param_02,"death",param_02,"missile_stuck");
missile_deleteattractor(param_00);
}
//Function Number: 15
exo_knife_delete()
{
self delete();
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,373 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_explosive_gel.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 15
* Decompile Time: 244 ms
* Timestamp: 10/27/2023 1:48:57 AM
*******************************************************************/
//Function Number: 1
watchexplosivegelusage()
{
self endon("spawned_player");
self endon("disconnect");
self endon("death");
self endon("faux_spawn");
for(;;)
{
self waittill("grenade_fire",var_00,var_01);
if(var_01 == "explosive_gel_mp")
{
if(!isalive(self))
{
var_00 delete();
return;
}
thread tryuseexplosivegel(var_00);
}
}
}
//Function Number: 2
init()
{
precachemodel("weapon_c4");
precachemodel("weapon_c4_bombsquad");
level.explosivegelsettings = spawnstruct();
level.explosivegelsettings.stuckmesh = "weapon_c4";
level.explosivegelsettings.gelbombsquadmesh = "weapon_c4_bombsquad";
level.explosivegelsettings.gelexplosionfx = loadfx("vfx/explosion/frag_grenade_default");
level.explosivegelsettings.beacon["enemy"] = loadfx("vfx/lights/light_c4_blink");
level.explosivegelsettings.beacon["friendly"] = loadfx("vfx/lights/light_mine_blink_friendly");
}
//Function Number: 3
tryuseexplosivegel(param_00)
{
thread launchexplosivegel(param_00);
return 1;
}
//Function Number: 4
launchexplosivegel(param_00)
{
thread watchexplosivegelaltdetonate(param_00);
var_01 = stickexplosivegel(param_00);
}
//Function Number: 5
watchexplosivegelaltdetonate(param_00)
{
self endon("death");
self endon("disconnect");
level endon("game_ended");
self endon("change_owner");
param_00 endon("missile_stuck");
param_00 endon("death");
var_01 = 0;
for(;;)
{
if(self usebuttonpressed())
{
var_01 = 0;
while(self usebuttonpressed())
{
var_01 = var_01 + 0.05;
wait(0.05);
}
if(var_01 >= 0.5)
{
continue;
}
var_01 = 0;
while(!self usebuttonpressed() && var_01 < 0.5)
{
var_01 = var_01 + 0.05;
wait(0.05);
}
if(var_01 >= 0.5)
{
continue;
}
thread earlydetonate(param_00);
}
wait(0.05);
}
}
//Function Number: 6
stickexplosivegel(param_00)
{
self endon("earlyNotify");
param_00 waittill("missile_stuck");
var_01 = bullettrace(param_00.origin,param_00.origin - (0,0,4),0,param_00);
var_02 = bullettrace(param_00.origin,param_00.origin + (0,0,4),0,param_00);
var_03 = anglestoforward(param_00.angles);
var_04 = bullettrace(param_00.origin + (0,0,4),param_00.origin + var_03 * 4,0,param_00);
var_05 = undefined;
var_06 = 0;
var_07 = 0;
if(var_04["surfacetype"] != "none")
{
var_05 = var_04;
var_07 = 1;
}
else if(var_02["surfacetype"] != "none")
{
var_05 = var_02;
var_06 = 1;
}
else if(var_01["surfacetype"] != "none")
{
var_05 = var_01;
}
else
{
var_05 = var_01;
}
var_08 = var_05["position"];
if(var_08 == var_02["position"])
{
var_08 = var_08 + (0,0,-5);
}
var_09 = spawn("script_model",var_08);
var_09.isup = var_06;
var_09.isforward = var_07;
var_0A = vectornormalize(var_05["normal"]);
var_0B = vectortoangles(var_0A);
var_0B = var_0B + (90,0,0);
var_09.angles = var_0B;
var_09 setmodel(level.explosivegelsettings.stuckmesh);
var_09.owner = self;
var_09 setotherent(self);
var_09.killcamoffset = (0,0,55);
var_09.killcament = spawn("script_model",var_09.origin + var_09.killcamoffset);
var_09.stunned = 0;
var_09.weaponname = "explosive_gel_mp";
param_00 delete();
level.mines[level.mines.size] = var_09;
var_09 thread createbombsquadmodel(level.explosivegelsettings.gelbombsquadmesh,"tag_origin",self);
var_09 thread minebeacon();
var_09 thread setexplosivegelteamheadicon(self.team);
var_09 thread minedamagemonitor();
var_09 thread explosivegelcountdowndetonation(self);
return var_09;
}
//Function Number: 7
createbombsquadmodel(param_00,param_01,param_02)
{
var_03 = spawn("script_model",(0,0,0));
var_03 hide();
wait(0.05);
var_03 thread maps\mp\gametypes\_weapons::bombsquadvisibilityupdater(param_02);
var_03 setmodel(param_00);
var_03 linkto(self,param_01,(0,0,0),(0,0,0));
var_03 setcontents(0);
self waittill("death");
if(isdefined(self.trigger))
{
self.trigger delete();
}
var_03 delete();
}
//Function Number: 8
minebeacon()
{
var_00["friendly"] = spawnfx(level.explosivegelsettings.beacon["friendly"],self gettagorigin("tag_fx"));
var_00["enemy"] = spawnfx(level.explosivegelsettings.beacon["enemy"],self gettagorigin("tag_fx"));
thread minebeaconteamupdater(var_00);
self waittill("death");
var_00["friendly"] delete();
var_00["enemy"] delete();
}
//Function Number: 9
minebeaconteamupdater(param_00,param_01)
{
self endon("death");
var_02 = self.owner.team;
wait(0.05);
triggerfx(param_00["friendly"]);
triggerfx(param_00["enemy"]);
for(;;)
{
param_00["friendly"] hide();
param_00["enemy"] hide();
foreach(var_04 in level.players)
{
if(level.teambased)
{
if(var_04.team == var_02)
{
param_00["friendly"] showtoplayer(var_04);
}
else
{
param_00["enemy"] showtoplayer(var_04);
}
continue;
}
if(var_04 == self.owner)
{
param_00["friendly"] showtoplayer(var_04);
continue;
}
param_00["enemy"] showtoplayer(var_04);
}
level common_scripts\utility::waittill_either("joined_team","player_spawned");
}
}
//Function Number: 10
setexplosivegelteamheadicon(param_00)
{
self endon("death");
wait(0.05);
if(level.teambased)
{
if(self.isup == 1 || self.isforward == 1)
{
maps\mp\_entityheadicons::setteamheadicon(param_00,(0,0,28),undefined,1);
return;
}
maps\mp\_entityheadicons::setteamheadicon(param_00,(0,0,28));
return;
}
if(isdefined(self.owner))
{
if(self.isup == 1)
{
maps\mp\_entityheadicons::setplayerheadicon(self.owner,(28,0,28));
return;
}
maps\mp\_entityheadicons::setplayerheadicon(self.owner,(0,0,28));
return;
}
}
//Function Number: 11
minedamagemonitor()
{
self endon("mine_triggered");
self endon("mine_selfdestruct");
self endon("death");
self setcandamage(1);
self.maxhealth = 100000;
self.health = self.maxhealth;
var_00 = undefined;
self waittill("damage",var_01,var_00,var_02,var_03,var_04,var_05,var_06,var_07,var_08,var_09);
if(!isplayer(var_00))
{
continue;
}
if(!maps\mp\gametypes\_weapons::friendlyfirecheck(self.owner,var_00))
{
continue;
}
if(isdefined(var_09))
{
var_0A = maps\mp\_utility::strip_suffix(var_09,"_lefthand");
switch(var_0A)
{
case "smoke_grenade_var_mp":
case "smoke_grenade_mp":
break;
}
}
}
//Function Number: 12
mineexplode(param_00)
{
if(!isdefined(self) || !isdefined(self.owner))
{
return;
}
if(!isdefined(param_00))
{
param_00 = self.owner;
}
self playsound("null");
var_01 = self gettagorigin("tag_fx");
playfx(level.explosivegelsettings.gelexplosionfx,var_01);
wait(0.05);
if(!isdefined(self) || !isdefined(self.owner))
{
return;
}
self hide();
self radiusdamage(self.origin,192,100,100,param_00,"MOD_EXPLOSIVE");
if(isdefined(self.owner) && isdefined(level.leaderdialogonplayer_func))
{
self.owner thread [[ level.leaderdialogonplayer_func ]]("mine_destroyed",undefined,undefined,self.origin);
}
wait(0.2);
if(!isdefined(self) || !isdefined(self.owner))
{
return;
}
thread apm_mine_deletekillcament();
self notify("death");
if(isdefined(self.pickuptrigger))
{
self.pickuptrigger delete();
}
self hide();
}
//Function Number: 13
earlydetonate(param_00)
{
self notify("earlyNotify");
var_01 = param_00 gettagorigin("tag_fx");
playfx(level.explosivegelsettings.gelexplosionfx,var_01);
param_00 detonate();
}
//Function Number: 14
apm_mine_deletekillcament()
{
wait(3);
self.killcament delete();
self delete();
level.mines = common_scripts\utility::array_removeundefined(level.mines);
}
//Function Number: 15
explosivegelcountdowndetonation(param_00)
{
self endon("mine_destroyed");
self endon("mine_selfdestruct");
self endon("death");
wait(3);
self notify("mine_triggered");
thread mineexplode();
}

View File

@ -0,0 +1,262 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_extrahealth.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 11
* Decompile Time: 160 ms
* Timestamp: 10/27/2023 1:48:58 AM
*******************************************************************/
//Function Number: 1
watchextrahealthusage()
{
self notify("exo_health_taken");
level endon("game_ended");
self endon("disconnect");
self endon("death");
self endon("joined_team");
self endon("faux_spawn");
self endon("exo_health_taken");
if(!self hasweapon("extra_health_mp"))
{
return;
}
extrahealthinit();
thread monitorplayerdeath();
thread wait_for_game_end();
for(;;)
{
self waittill("exo_ability_activate",var_00);
if(var_00 == "extra_health_mp")
{
if(!isalive(self))
{
return;
}
thread tryuseextrahealth();
}
}
}
//Function Number: 2
extrahealthinit()
{
self.exo_health_on = 0;
self batterysetdischargescale("extra_health_mp",1);
var_00 = self batterygetsize("extra_health_mp");
if(self gettacticalweapon() == "extra_health_mp")
{
self setclientomnvar("exo_ability_nrg_req0",0);
self setclientomnvar("exo_ability_nrg_total0",var_00);
self setclientomnvar("ui_exo_battery_level0",var_00);
}
else if(self getlethalweapon() == "extra_health_mp")
{
self setclientomnvar("exo_ability_nrg_req1",0);
self setclientomnvar("exo_ability_nrg_total1",var_00);
self setclientomnvar("ui_exo_battery_level1",var_00);
}
if(!isdefined(level.exo_health_le_inactive_vfx))
{
level.exo_health_le_inactive_vfx = loadfx("vfx/unique/exo_health_le_inactive");
}
if(!isdefined(level.exo_health_le_active_vfx))
{
level.exo_health_le_active_vfx = loadfx("vfx/unique/exo_health_le_active");
}
if(!isdefined(level.exo_health_rt_inactive_vfx))
{
level.exo_health_rt_inactive_vfx = loadfx("vfx/unique/exo_health_rt_inactive");
}
if(!isdefined(level.exo_health_rt_active_vfx))
{
level.exo_health_rt_active_vfx = loadfx("vfx/unique/exo_health_rt_active");
}
wait(0.05);
if(!maps\mp\_utility::invirtuallobby())
{
playfxontag(level.exo_health_le_inactive_vfx,self,"J_Shoulder_LE");
playfxontag(level.exo_health_rt_inactive_vfx,self,"J_Shoulder_RI");
}
}
//Function Number: 3
tryuseextrahealth()
{
self endon("exo_health_taken");
if(self.exo_health_on == 1)
{
thread stopextrahealth(1);
return;
}
thread startextrahealth();
}
//Function Number: 4
killstimfx()
{
if(isdefined(self.stim_fx_l))
{
self.stim_fx_l delete();
self.stim_fx_l = undefined;
}
if(isdefined(self.stim_fx_r))
{
self.stim_fx_r delete();
self.stim_fx_r = undefined;
}
}
//Function Number: 5
startextrahealth()
{
self endon("death");
self endon("disconnect");
self endon("joined_team");
self endon("faux_spawn");
self endon("exo_health_taken");
self endon("EndExtraHealth");
self.exo_health_on = 1;
self.maxhealth = int(self.maxhealth * 1.4);
self.ignoreregendelay = 1;
self.healthregenlevel = 0.99;
self notify("damage");
self batterydischargebegin("extra_health_mp");
maps\mp\_exo_battery::set_exo_ability_hud_omnvar("extra_health_mp","ui_exo_battery_toggle",1);
thread maps\mp\_exo_battery::update_exo_battery_hud("extra_health_mp");
thread monitory_health_battery_charge();
maps\mp\_snd_common_mp::snd_message("mp_exo_health_activate");
killstimfx();
wait(0.05);
if(!self.exo_health_on)
{
return;
}
if(!isdefined(self.exo_cloak_on) || self.exo_cloak_on == 0)
{
self.stim_fx_l = spawnlinkedfx(level.exo_health_le_active_vfx,self,"J_Shoulder_LE");
self.stim_fx_r = spawnlinkedfx(level.exo_health_rt_active_vfx,self,"J_Shoulder_RI");
triggerfx(self.stim_fx_l);
triggerfx(self.stim_fx_r);
}
}
//Function Number: 6
stopextrahealth(param_00)
{
self endon("death");
self endon("disconnect");
self endon("joined_team");
self endon("faux_spawn");
self endon("exo_health_taken");
if(!isdefined(self.exo_health_on) || !self.exo_health_on)
{
return;
}
self notify("EndExtraHealth");
self endon("EndExtraHealth");
if(!isdefined(param_00))
{
param_00 = 1;
}
self.exo_health_on = 0;
if(isdefined(level.ishorde))
{
self.maxhealth = self.classmaxhealth + self.hordearmor * 40;
}
else
{
self.maxhealth = int(self.maxhealth / 1.4);
}
if(self.health > self.maxhealth)
{
self.health = self.maxhealth;
}
self.healthregenlevel = undefined;
self batterydischargeend("extra_health_mp");
maps\mp\_exo_battery::set_exo_ability_hud_omnvar("extra_health_mp","ui_exo_battery_toggle",0);
killstimfx();
if(param_00 == 1)
{
maps\mp\_snd_common_mp::snd_message("mp_exo_health_deactivate");
wait(0.05);
if(!isdefined(self.exo_cloak_on) || self.exo_cloak_on == 0)
{
self.stim_fx_l = spawnlinkedfx(level.exo_health_le_inactive_vfx,self,"J_Shoulder_LE");
self.stim_fx_r = spawnlinkedfx(level.exo_health_rt_inactive_vfx,self,"J_Shoulder_RI");
triggerfx(self.stim_fx_l);
triggerfx(self.stim_fx_r);
}
}
}
//Function Number: 7
monitorplayerdeath()
{
level endon("game_ended");
self endon("disconnect");
common_scripts\utility::waittill_any("death","joined_team","faux_spawn","exo_health_taken");
thread stopextrahealth(0);
}
//Function Number: 8
monitory_health_battery_charge()
{
level endon("game_ended");
self endon("death");
self endon("disconnect");
self endon("joined_team");
self endon("faux_spawn");
self endon("exo_health_taken");
while(self.exo_health_on == 1)
{
if(self batterygetcharge("extra_health_mp") <= 0)
{
thread stopextrahealth(1);
}
wait(0.05);
}
}
//Function Number: 9
take_exo_health()
{
self notify("kill_battery");
self notify("exo_health_taken");
self takeweapon("extra_health_mp");
}
//Function Number: 10
give_exo_health()
{
self giveweapon("extra_health_mp");
thread watchextrahealthusage();
}
//Function Number: 11
wait_for_game_end()
{
self endon("death");
self endon("disconnect");
self endon("joined_team");
self endon("faux_spawn");
self endon("exo_health_taken");
level waittill("game_ended");
thread stopextrahealth(0);
}

View File

@ -0,0 +1,126 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_fastheal.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 7
* Decompile Time: 103 ms
* Timestamp: 10/27/2023 1:48:58 AM
*******************************************************************/
//Function Number: 1
watchfasthealusage()
{
self endon("spawned_player");
self endon("disconnect");
self endon("death");
self endon("faux_spawn");
if(!isdefined(level.fasthealsettings))
{
fasthealinit();
}
for(;;)
{
self waittill("grenade_fire",var_00,var_01);
if(var_01 == "fast_heal_mp")
{
if(!isalive(self))
{
var_00 delete();
return;
}
thread tryusefastheal();
}
}
}
//Function Number: 2
fasthealinit()
{
self.fasthealsettings = spawnstruct();
}
//Function Number: 3
tryusefastheal()
{
if(!isdefined(self.fasthealsettings))
{
fasthealinit();
}
resetfastheal();
thread startfastheal();
thread monitorplayerdeath();
return 1;
}
//Function Number: 4
startfastheal()
{
self endon("ClearFastHeal");
self endon("death");
self playlocalsound("earn_superbonus");
self.fasthealsettings.overlay = newclienthudelem(self);
self.fasthealsettings.overlay.x = 0;
self.fasthealsettings.overlay.y = 0;
self.fasthealsettings.overlay.horzalign = "fullscreen";
self.fasthealsettings.overlay.vertalign = "fullscreen";
self.fasthealsettings.overlay setshader("exo_hud_cloak_overlay",640,480);
self.fasthealsettings.overlay.archive = 1;
self.fasthealsettings.overlay.alpha = 1;
self.isfastheal = 1;
self.ignoreregendelay = 1;
self.healthregenlevel = 0.99;
self notify("damage");
wait(10);
self.healthregenlevel = undefined;
self.isfastheal = 0;
if(isdefined(self.fasthealsettings.overlay))
{
self.fasthealsettings.overlay destroy();
}
self notify("EndFastHeal");
}
//Function Number: 5
resetfastheal()
{
if(isdefined(self.isfastheal) && self.isfastheal == 1)
{
if(isdefined(self.fasthealsettings.overlay))
{
self.fasthealsettings.overlay destroy();
}
self.healthregenlevel = undefined;
self notify("ClearFastHeal");
}
}
//Function Number: 6
monitorplayerdeath()
{
self endon("EndFastHeal");
self waittill("death");
self.healthregenlevel = undefined;
self.isfastheal = 0;
if(isdefined(self.fasthealsettings.overlay))
{
self.fasthealsettings.overlay destroy();
}
}
//Function Number: 7
printhealthtoscreen()
{
self endon("EndFastHeal");
self endon("death");
for(;;)
{
iprintlnbold(self.health);
wait(1);
}
}

View File

@ -0,0 +1,193 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_flashgrenades.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 7
* Decompile Time: 103 ms
* Timestamp: 10/27/2023 1:48:59 AM
*******************************************************************/
//Function Number: 1
main()
{
precacheshellshock("flashbang_mp");
}
//Function Number: 2
startmonitoringflash()
{
thread monitorflash();
}
//Function Number: 3
stopmonitoringflash(param_00)
{
self notify("stop_monitoring_flash");
}
//Function Number: 4
flashrumbleloop(param_00)
{
self endon("stop_monitoring_flash");
self endon("flash_rumble_loop");
self notify("flash_rumble_loop");
var_01 = gettime() + param_00 * 1000;
while(gettime() < var_01)
{
self playrumbleonentity("damage_heavy");
wait(0.05);
}
}
//Function Number: 5
monitorflash()
{
self endon("disconnect");
self notify("monitorFlash");
self endon("monitorFlash");
self.flashendtime = 0;
var_00 = 2.5;
for(;;)
{
self waittill("flashbang",var_01,var_02,var_03,var_04,var_05,var_06);
if(!isalive(self))
{
break;
}
if(isdefined(self.usingremote))
{
continue;
}
if(!isdefined(var_06))
{
var_06 = 0;
}
var_07 = 0;
var_08 = 1;
if(var_03 < 0.25)
{
var_03 = 0.25;
}
else if(var_03 > 0.8)
{
var_03 = 1;
}
var_09 = var_02 * var_03 * var_00;
var_09 = var_09 + var_06;
if(isdefined(self.stunscaler))
{
var_09 = var_09 * self.stunscaler;
}
if(var_09 < 0.25)
{
continue;
}
var_0A = undefined;
if(var_09 > 2)
{
var_0A = 0.75;
}
else
{
var_0A = 0.25;
}
if(level.teambased && isdefined(var_04) && isdefined(var_04.team) && var_04.team == self.team && var_04 != self)
{
if(level.friendlyfire == 0)
{
continue;
}
else if(level.friendlyfire == 1)
{
}
else if(level.friendlyfire == 2)
{
var_09 = var_09 * 0.5;
var_0A = var_0A * 0.5;
var_08 = 0;
var_07 = 1;
}
else if(level.friendlyfire == 3)
{
var_09 = var_09 * 0.5;
var_0A = var_0A * 0.5;
var_07 = 1;
}
}
else if(isdefined(var_04))
{
if(var_04 != self)
{
var_04 maps\mp\gametypes\_missions::processchallenge("ch_indecentexposure");
}
}
if(var_08 && isdefined(self))
{
thread applyflash(var_09,var_0A);
if(isdefined(var_04) && var_04 != self)
{
var_04 thread maps\mp\gametypes\_damagefeedback::updatedamagefeedback("flash");
var_0B = self;
if(isplayer(var_04) && var_04 isitemunlocked("specialty_paint") && var_04 maps\mp\_utility::_hasperk("specialty_paint"))
{
if(!var_0B maps\mp\perks\_perkfunctions::ispainted())
{
var_04 maps\mp\gametypes\_missions::processchallenge("ch_paint_pro");
}
var_0B thread maps\mp\perks\_perkfunctions::setpainted(var_04);
}
}
}
if(var_07 && isdefined(var_04))
{
var_04 thread applyflash(var_09,var_0A);
}
}
}
//Function Number: 6
applyflash(param_00,param_01)
{
if(!isdefined(self.flashduration) || param_00 > self.flashduration)
{
self.flashduration = param_00;
}
if(!isdefined(self.flashrumbleduration) || param_01 > self.flashrumbleduration)
{
self.flashrumbleduration = param_01;
}
wait(0.05);
if(isdefined(self.flashduration))
{
self shellshock("flashbang_mp",self.flashduration);
self.flashendtime = gettime() + self.flashduration * 1000;
thread maps\mp\_utility::light_set_override_for_player("flashed",0.1,0.1,self.flashduration - 0.1);
}
if(isdefined(self.flashrumbleduration))
{
thread flashrumbleloop(self.flashrumbleduration);
}
self.flashduration = undefined;
self.flashrumbleduration = undefined;
}
//Function Number: 7
isflashbanged()
{
return isdefined(self.flashendtime) && gettime() < self.flashendtime;
}

73
AW/PC/MP/maps/mp/_fx.gsc Normal file
View File

@ -0,0 +1,73 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_fx.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 5
* Decompile Time: 72 ms
* Timestamp: 10/27/2023 1:49:00 AM
*******************************************************************/
//Function Number: 1
script_print_fx()
{
if(!isdefined(self.script_fxid) || !isdefined(self.script_fxcommand) || !isdefined(self.script_delay))
{
self delete();
return;
}
if(isdefined(self.target))
{
var_00 = getent(self.target).origin;
}
else
{
var_00 = "undefined";
}
if(self.script_fxcommand == "OneShotfx")
{
}
if(self.script_fxcommand == "loopfx")
{
}
if(self.script_fxcommand == "loopsound")
{
}
}
//Function Number: 2
grenadeexplosionfx(param_00)
{
playfx(level._effect["mechanical explosion"],param_00);
earthquake(0.15,0.5,param_00,250);
}
//Function Number: 3
soundfx(param_00,param_01,param_02)
{
var_03 = spawn("script_origin",(0,0,0));
var_03.origin = param_01;
var_03 playloopsound(param_00);
if(isdefined(param_02))
{
var_03 thread soundfxdelete(param_02);
}
}
//Function Number: 4
soundfxdelete(param_00)
{
level waittill(param_00);
self delete();
}
//Function Number: 5
blenddelete(param_00)
{
self waittill("death");
param_00 delete();
}

View File

@ -0,0 +1,43 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_global_fx.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 14 ms
* Timestamp: 10/27/2023 1:49:00 AM
*******************************************************************/
//Function Number: 1
main()
{
maps\mp\_global_fx_code::global_fx("ch_streetlight_02_FX_origin","fx/misc/lighthaze");
maps\mp\_global_fx_code::global_fx("me_streetlight_01_FX_origin","fx/misc/lighthaze_bog_a");
maps\mp\_global_fx_code::global_fx("ch_street_light_01_on","fx/misc/light_glow_white");
maps\mp\_global_fx_code::global_fx("lamp_post_globe_on","fx/misc/light_glow_white");
maps\mp\_global_fx_code::global_fx("highway_lamp_post","fx/misc/lighthaze_villassault");
maps\mp\_global_fx_code::global_fx("cs_cargoship_spotlight_on_FX_origin","fx/misc/lighthaze");
maps\mp\_global_fx_code::global_fx("com_tires_burning01_FX_origin","fx/fire/tire_fire_med");
maps\mp\_global_fx_code::global_fx("icbm_powerlinetower_FX_origin","fx/misc/power_tower_light_red_blink");
maps\mp\_global_fx_code::global_fx("icbm_mainframe_FX_origin","fx/props/icbm_mainframe_lightblink");
maps\mp\_global_fx_code::global_fx("lighthaze_oilrig_FX_origin","fx/misc/lighthaze_oilrig");
maps\mp\_global_fx_code::global_fx("lighthaze_white_FX_origin","fx/misc/lighthaze_white");
maps\mp\_global_fx_code::global_fx("light_glow_walllight_white_FX_origin","fx/misc/light_glow_walllight_white");
maps\mp\_global_fx_code::global_fx("fluorescent_glow_FX_origin","fx/misc/fluorescent_glow");
maps\mp\_global_fx_code::global_fx("light_glow_industrial_FX_origin","fx/misc/light_glow_industrial");
maps\mp\_global_fx_code::global_fx("highrise_blinky_tower","fx/misc/power_tower_light_red_blink_large");
maps\mp\_global_fx_code::global_fx("light_glow_white_bulb_FX_origin","fx/misc/light_glow_white_bulb");
maps\mp\_global_fx_code::global_fx("light_glow_white_lamp_FX_origin","fx/misc/light_glow_white_lamp");
maps\mp\_global_fx_code::global_fx("light_red_steady_FX_origin","fx/misc/tower_light_red_steady",-2);
maps\mp\_global_fx_code::global_fx("light_blue_steady_FX_origin","vfx/lights/tower_light_glow_blue_steady",-2);
maps\mp\_global_fx_code::global_fx("light_orange_steady_FX_origin","fx/misc/tower_light_orange_steady",-2);
maps\mp\_global_fx_code::global_fx("glow_stick_pile_FX_origin","fx/misc/glow_stick_glow_pile",-2);
maps\mp\_global_fx_code::global_fx("glow_stick_orange_pile_FX_origin","fx/misc/glow_stick_glow_pile_orange",-2);
maps\mp\_global_fx_code::global_fx("light_pulse_red_FX_origin","fx/misc/light_glow_red_generic_pulse",-2);
maps\mp\_global_fx_code::global_fx("light_pulse_red_FX_origin","fx/misc/light_glow_red_generic_pulse",-2);
maps\mp\_global_fx_code::global_fx("light_pulse_orange_FX_origin","fx/misc/light_glow_orange_generic_pulse",-2);
maps\mp\_global_fx_code::global_fx("light_red_blink_FX_origin","fx/misc/power_tower_light_red_blink",-2);
maps\mp\_global_fx_code::global_fx("flare_ambient_FX_origin","fx/misc/flare_ambient",undefined,undefined,"emt_road_flare_burn");
maps\mp\_global_fx_code::global_fx("me_dumpster_fire_FX_origin","fx/fire/firelp_med_pm",undefined,undefined,"fire_dumpster_medium");
maps\mp\_global_fx_code::global_fx("barrel_fireFX_origin","fx/fire/firelp_barrel_pm",undefined,undefined,"fire_barrel_small");
}

View File

@ -0,0 +1,57 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_global_fx_code.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 13 ms
* Timestamp: 10/27/2023 1:49:00 AM
*******************************************************************/
//Function Number: 1
global_fx(param_00,param_01,param_02,param_03,param_04)
{
var_05 = common_scripts\utility::getstructarray(param_00,"targetname");
if(var_05.size <= 0)
{
return;
}
if(!isdefined(param_02))
{
param_02 = randomfloatrange(-20,-15);
}
if(!isdefined(param_03))
{
param_03 = param_01;
}
foreach(var_07 in var_05)
{
if(!isdefined(level._effect))
{
level._effect = [];
}
if(!isdefined(level._effect[param_03]))
{
level._effect[param_03] = loadfx(param_01);
}
if(!isdefined(var_07.angles))
{
var_07.angles = (0,0,0);
}
var_08 = common_scripts\utility::createoneshoteffect(param_03);
var_08.v["origin"] = var_07.origin;
var_08.v["angles"] = var_07.angles;
var_08.v["fxid"] = param_03;
var_08.v["delay"] = param_02;
if(isdefined(param_04))
{
var_08.v["soundalias"] = param_04;
}
}
}

View File

@ -0,0 +1,220 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\mp\_grappling_hook.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 12
* Decompile Time: 211 ms
* Timestamp: 10/27/2023 1:45:42 AM
*******************************************************************/
//Function Number: 1
init()
{
if(maps\mp\_utility::isgrapplinghookgamemode())
{
level thread grappling_hook_on_player_connect();
}
}
//Function Number: 2
grappling_hook_on_player_connect()
{
level endon("game_ended");
for(;;)
{
level waittill("connected",var_00);
var_00 thread grappling_hook_on_loadout_given();
}
}
//Function Number: 3
grappling_hook_on_loadout_given()
{
level endon("game_ended");
for(;;)
{
self waittill("applyLoadout");
if(!maps\mp\_utility::isjuggernaut())
{
give_grappling_hook();
thread grappling_hook_wait_for_death();
thread grappling_hook_wait_for_game_end();
}
}
}
//Function Number: 4
grappling_hook_wait_for_death()
{
level endon("game_ended");
self endon("disconnect");
common_scripts\utility::waittill_any("death","joined_team","faux_spawn","grappling_hook_reset","entering_juggernaut");
maps\mp\_exo_battery::set_exo_ability_hud_omnvar(level.grapplinghookweapon,"ui_exo_battery_toggle",0);
}
//Function Number: 5
grappling_hook_wait_for_game_end()
{
self endon("death");
self endon("disconnect");
self endon("joined_team");
self endon("faux_spawn");
self endon("grappling_hook_reset");
self endon("grappling_hook_battery_hud_reset");
level waittill("game_ended");
maps\mp\_exo_battery::set_exo_ability_hud_omnvar(level.grapplinghookweapon,"ui_exo_battery_toggle",0);
}
//Function Number: 6
give_grappling_hook()
{
var_00 = get_grappling_hook_weapon();
if(self hasweapon(var_00))
{
return;
}
self settacticalweapon(var_00);
self giveweapon(var_00);
self notify("grappling_hook_reset");
var_01 = spawn("script_model",(0,0,0));
var_01 setentityowner(self);
var_01 setotherent(self);
self setgrapplinghooktarget(var_01);
thread common_scripts\utility::delete_on_death(var_01);
thread delete_on_reset(var_01);
var_02 = self batterygetsize(level.grapplinghookweapon);
self setclientomnvar("ui_exo_battery_level0",var_02);
self setclientomnvar("exo_ability_nrg_req0",batteryreqtouse(level.grapplinghookweapon));
self setclientomnvar("exo_ability_nrg_total0",var_02);
self setclientomnvar("ui_invalid_grapple",0);
thread wait_for_grappling_hook_pressed();
}
//Function Number: 7
wait_for_full_battery()
{
level endon("game_ended");
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
self endon("joined_team");
self endon("grappling_hook_reset");
self endon("grappling_hook_battery_hud_reset");
var_00 = self batterygetsize(level.grapplinghookweapon);
for(;;)
{
var_01 = self batterygetcharge(level.grapplinghookweapon);
if(var_01 >= var_00)
{
maps\mp\_exo_battery::set_exo_ability_hud_omnvar(level.grapplinghookweapon,"ui_exo_battery_toggle",0);
return;
}
wait(0.1);
}
}
//Function Number: 8
wait_for_grappling_hook_pressed()
{
level endon("game_ended");
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
self endon("joined_team");
self endon("grappling_hook_reset");
for(;;)
{
self waittill("exo_ability_activate",var_00,var_01);
if(var_00 == level.grapplinghookweapon && isdefined(var_01))
{
if(var_01 == 1)
{
self notify("grappling_hook_battery_hud_reset");
if(isdefined(self.last_grapple_time))
{
self.last_grapple_time_prev = self.last_grapple_time;
}
self.last_grapple_time = gettime();
maps\mp\_exo_battery::set_exo_ability_hud_omnvar(level.grapplinghookweapon,"ui_exo_battery_toggle",1);
thread maps\mp\_exo_battery::update_exo_battery_hud(level.grapplinghookweapon);
thread wait_for_full_battery();
maps\mp\gametypes\_missions::processchallenge("ch_tier2_2_iw5_dlcgun12");
if(isdefined(self.lastdamagedtime) && isdefined(self.last_grapple_time))
{
if(self.last_grapple_time - self.lastdamagedtime < 1500)
{
maps\mp\gametypes\_missions::processchallenge("ch_tier2_5_iw5_dlcgun12");
}
}
continue;
}
if(var_01 == 0)
{
thread pulse_grapple_hud_message(2);
continue;
}
if(var_01 == -1)
{
thread pulse_grapple_hud_message(1);
}
}
}
}
//Function Number: 9
pulse_grapple_hud_message(param_00)
{
level endon("game_ended");
self endon("disconnect");
self setclientomnvar("ui_invalid_grapple",param_00);
if(param_00 == 1)
{
self setclientomnvar("ui_border_warning_toggle",0);
wait(0.6);
}
else if(param_00 == 2)
{
wait(1);
}
self setclientomnvar("ui_invalid_grapple",0);
}
//Function Number: 10
take_grappling_hook()
{
var_00 = get_grappling_hook_weapon();
self settacticalweapon("none");
self takeweapon(var_00);
self notify("grappling_hook_reset");
}
//Function Number: 11
get_grappling_hook_weapon()
{
if(isdefined(level.grapplinghookweapon))
{
return level.grapplinghookweapon;
}
level.grapplinghookweapon = "iw5_dlcgun12loot7_mp";
return level.grapplinghookweapon;
}
//Function Number: 12
delete_on_reset(param_00)
{
param_00 endon("death");
self waittill("grappling_hook_reset");
if(isdefined(param_00))
{
param_00 delete();
}
}

View File

@ -0,0 +1,493 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\mp\_javelin.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 15
* Decompile Time: 254 ms
* Timestamp: 10/27/2023 1:45:43 AM
*******************************************************************/
//Function Number: 1
stingerm7_think()
{
thread stingerm7_targeting();
thread stingerm7_monitor_fire();
}
//Function Number: 2
stingerm7_targeting()
{
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
self endon("joined_team");
self.stingerm7_info = spawnstruct();
self.stingerm7_info.locked_targets = [];
self.stingerm7_info.locking_time = 0;
var_00 = 0;
for(;;)
{
var_01 = self getcurrentweapon();
var_02 = 0;
if(issubstr(var_01,"stingerm7"))
{
var_02 = 1;
}
else if(issubstr(var_01,"dlcgun11loot2"))
{
var_02 = 1;
}
if(var_02 && self playerads() > 0.99)
{
var_00 = 1;
if(self.stingerm7_info.locked_targets.size > 0)
{
remove_invalid_locks();
}
self.stingerm7_info.locked_targets = array_remove_dead(common_scripts\utility::array_removeundefined(self.stingerm7_info.locked_targets));
if(isdefined(self.stingerm7_info.locking_target))
{
if(!locking_target_still_valid(self.stingerm7_info.locking_target))
{
self.stingerm7_info.locking_target = undefined;
self notify("stop_javelin_locking_feedback");
}
}
if(isdefined(self.stingerm7_info.locking_target))
{
self.stingerm7_info.locking_time = self.stingerm7_info.locking_time + 0.05;
}
else
{
self.stingerm7_info.locking_time = 0;
if(self.stingerm7_info.locked_targets.size < 4)
{
self.stingerm7_info.locking_target = get_best_locking_target();
if(isdefined(self.stingerm7_info.locking_target))
{
thread locking_feedback();
}
}
}
if(self.stingerm7_info.locking_time >= 1 && isdefined(self.stingerm7_info.locking_target) && self.stingerm7_info.locked_targets.size < 4)
{
self notify("stop_javelin_locking_feedback");
self.stingerm7_info.locked_targets[self.stingerm7_info.locked_targets.size] = self.stingerm7_info.locking_target;
thread locked_feedback();
self.stingerm7_info.locking_target = undefined;
}
if(self.stingerm7_info.locked_targets.size > 0)
{
self weaponlockfinalize(self.stingerm7_info.locked_targets[0]);
}
else
{
self weaponlockfree();
self notify("stop_javelin_locked_feedback");
}
}
else if(var_00 == 1)
{
var_00 = 0;
self weaponlockfree();
self notify("stop_javelin_locking_feedback");
self notify("stop_javelin_locked_feedback");
self.stingerm7_info.locked_targets = [];
if(isdefined(self.stingerm7_info.locking_target))
{
self.stingerm7_info.locking_target = undefined;
}
self.stingerm7_info.locking_time = 0;
}
wait(0.05);
}
}
//Function Number: 3
stingerm7_monitor_fire()
{
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
self endon("joined_team");
for(;;)
{
self waittill("missile_fire",var_00,var_01);
if(issubstr(var_01,"stingerm7") || issubstr(var_01,"dlcgun11loot2"))
{
thread stinger_fire(self,var_00,var_01);
}
}
}
//Function Number: 4
stinger_fire(param_00,param_01,param_02)
{
var_03 = (0,0,0);
var_04 = (0,0,0);
if(isdefined(param_01))
{
var_03 = param_01.origin;
var_04 = param_01.angles;
param_01 delete();
}
else
{
return;
}
param_00.stingerm7_info.locked_targets = array_remove_dead(common_scripts\utility::array_removeundefined(self.stingerm7_info.locked_targets));
var_05 = [];
for(var_06 = 0;var_06 < 4;var_06++)
{
var_07 = var_04 + random_vector(20,20,20);
var_08 = anglestoforward(var_07);
var_09 = magicbullet(param_02,var_03,var_03 + var_08,param_00);
var_09.owner = param_00;
if(param_00.stingerm7_info.locked_targets.size > 0)
{
var_0A = undefined;
if(var_06 < param_00.stingerm7_info.locked_targets.size)
{
var_0A = param_00.stingerm7_info.locked_targets[var_06];
}
else
{
var_0A = param_00.stingerm7_info.locked_targets[randomint(param_00.stingerm7_info.locked_targets.size)];
}
var_09 missile_settargetent(var_0A,stingerm7_get_target_offset(var_0A));
var_09.lockedstingertarget = var_0A;
}
var_05[var_05.size] = var_09;
}
level notify("stinger_fired",param_00,var_05);
param_00 setweaponammoclip(param_02,0);
}
//Function Number: 5
anystingermissilelockedon(param_00,param_01)
{
foreach(var_03 in param_00)
{
if(isdefined(var_03.lockedstingertarget) && var_03.lockedstingertarget == param_01)
{
return 1;
}
}
return 0;
}
//Function Number: 6
get_best_locking_target()
{
var_00 = maps\mp\_utility::getotherteam(self.team);
var_01 = [];
foreach(var_03 in level.players)
{
if(level.teambased && var_03.team == self.team)
{
continue;
}
if(!maps\mp\_utility::isreallyalive(var_03))
{
continue;
}
var_01[var_01.size] = var_03;
}
var_05 = vehicle_getarray();
var_06 = [];
foreach(var_08 in var_05)
{
if(!isdefined(var_08.owner))
{
continue;
}
if(var_08 maps\mp\killstreaks\_aerial_utility::vehicleiscloaked())
{
continue;
}
if(level.teambased && var_08.owner.team == self.team)
{
continue;
}
var_06[var_06.size] = var_08;
}
if(isdefined(level.ishorde) && level.ishorde)
{
foreach(var_0B in level.agentarray)
{
if(level.teambased && var_0B.team == self.team)
{
continue;
}
if(!maps\mp\_utility::isreallyalive(var_0B))
{
continue;
}
var_01[var_01.size] = var_0B;
}
foreach(var_08 in var_05)
{
if(var_08 maps\mp\killstreaks\_aerial_utility::vehicleiscloaked())
{
continue;
}
if(level.teambased && var_08.team == self.team)
{
continue;
}
var_06[var_06.size] = var_08;
}
}
var_0F = maps\mp\killstreaks\_killstreaks::getaerialkillstreakarray(var_00);
var_10 = common_scripts\utility::array_combine(var_01,var_06);
var_10 = common_scripts\utility::array_combine(var_10,var_0F);
if(isdefined(level.stingerlockonentsfunc))
{
var_10 = common_scripts\utility::array_combine(var_10,[[ level.stingerlockonentsfunc ]](self));
}
var_11 = self geteye();
var_12 = anglestoforward(self getplayerangles());
var_13 = undefined;
var_14 = cos(5);
foreach(var_16 in var_10)
{
if(!common_scripts\utility::array_contains(self.stingerm7_info.locked_targets,var_16))
{
var_17 = stingerm7_get_target_pos(var_16);
var_18 = vectordot(vectornormalize(var_17 - var_11),var_12);
if(var_18 > var_14)
{
var_19 = undefined;
var_1A = !1;
if(!var_1A)
{
var_1B = bullettracepassed(var_11,var_17,0,var_16);
if(var_1B)
{
var_1A = 1;
}
}
if(var_1A)
{
var_13 = var_16;
var_14 = var_18;
}
}
}
}
return var_13;
}
//Function Number: 7
locking_target_still_valid(param_00)
{
var_01 = self geteye();
var_02 = anglestoforward(self getplayerangles());
var_03 = stingerm7_get_target_pos(param_00);
if((isplayer(param_00) || isbot(param_00) || isdefined(level.ishorde) && level.ishorde && isagent(param_00)) && !maps\mp\_utility::isreallyalive(param_00))
{
return 0;
}
if(vectordot(vectornormalize(var_03 - var_01),var_02) > cos(5))
{
if(!1 || bullettracepassed(var_01,var_03,0,param_00))
{
return 1;
}
}
return 0;
}
//Function Number: 8
remove_invalid_locks()
{
for(var_00 = 0;var_00 <= self.stingerm7_info.locked_targets.size;var_00++)
{
if(isdefined(self.stingerm7_info.locked_targets[var_00]) && isdefined(self.stingerm7_info.locked_targets[var_00].origin))
{
if(!isdefined(self.stingerm7_info.locked_targets[var_00].sight_lost_time))
{
self.stingerm7_info.locked_targets[var_00].sight_lost_time = -1;
}
var_01 = (0,0,0);
if(isplayer(self.stingerm7_info.locked_targets[var_00]) || isbot(self.stingerm7_info.locked_targets[var_00]))
{
var_01 = (0,0,64);
}
if(self worldpointinreticle_rect(self.stingerm7_info.locked_targets[var_00].origin + var_01,50,400,200))
{
if(bullettracepassed(self geteye(),self.stingerm7_info.locked_targets[var_00].origin + var_01,0,self.stingerm7_info.locked_targets[var_00]))
{
self.stingerm7_info.locked_targets[var_00].sight_lost_time = -1;
continue;
}
}
if(self.stingerm7_info.locked_targets[var_00].sight_lost_time == -1)
{
self.stingerm7_info.locked_targets[var_00].sight_lost_time = gettime();
continue;
}
if(gettime() - self.stingerm7_info.locked_targets[var_00].sight_lost_time >= 500)
{
self.stingerm7_info.locked_targets[var_00].sight_lost_time = -1;
self.stingerm7_info.locked_targets[var_00] = undefined;
}
}
}
}
//Function Number: 9
stingerm7_get_target_pos(param_00)
{
if(isdefined(param_00.getstingertargetposfunc))
{
return param_00 [[ param_00.getstingertargetposfunc ]]();
}
return param_00 getpointinbounds(0,0,0);
}
//Function Number: 10
stingerm7_get_target_offset(param_00)
{
return stingerm7_get_target_pos(param_00) - param_00.origin;
}
//Function Number: 11
locking_feedback()
{
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
self endon("joined_team");
self endon("stop_javelin_locking_feedback");
for(;;)
{
if(isdefined(level.spawnedwarbirds))
{
foreach(var_01 in level.spawnedwarbirds)
{
if(isdefined(var_01.owner) && isdefined(var_01.player) && isdefined(self.stingerm7_info.locking_target) && self.stingerm7_info.locking_target == var_01)
{
var_01.owner playlocalsound("wpn_stingerm7_enemy_locked");
}
}
}
if(isdefined(level.orbitalsupport_player) && isdefined(self.stingerm7_info.locking_target) && self.stingerm7_info.locking_target == level.orbitalsupport_planemodel)
{
level.orbitalsupport_player playlocalsound("wpn_stingerm7_enemy_locked");
}
self playlocalsound("wpn_stingerm7_locking");
self playrumbleonentity("heavygun_fire");
wait(0.6);
}
}
//Function Number: 12
locked_feedback()
{
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
self endon("joined_team");
self endon("stop_javelin_locked_feedback");
for(;;)
{
if(isdefined(level.spawnedwarbirds))
{
foreach(var_01 in level.spawnedwarbirds)
{
if(isdefined(var_01.owner) && isdefined(var_01.player) && isdefined(self.stingerm7_info.locked_targets) && isinarray(self.stingerm7_info.locked_targets,var_01))
{
var_01.owner playlocalsound("wpn_stingerm7_enemy_locked");
}
}
}
if(isdefined(level.orbitalsupport_player) && isdefined(self.stingerm7_info.locked_targets) && isinarray(self.stingerm7_info.locked_targets,level.orbitalsupport_planemodel))
{
level.orbitalsupport_player playlocalsound("wpn_stingerm7_enemy_locked");
}
self playlocalsound("wpn_stingerm7_locked");
self playrumbleonentity("heavygun_fire");
wait(0.25);
}
}
//Function Number: 13
array_remove_dead(param_00)
{
var_01 = [];
foreach(var_03 in param_00)
{
if(!isalive(var_03))
{
continue;
}
var_01[var_01.size] = var_03;
}
return var_01;
}
//Function Number: 14
random_vector(param_00,param_01,param_02)
{
return (randomfloat(param_00) - param_00 * 0.5,randomfloat(param_01) - param_01 * 0.5,randomfloat(param_02) - param_02 * 0.5);
}
//Function Number: 15
isinarray(param_00,param_01)
{
if(isdefined(param_00))
{
foreach(var_03 in param_00)
{
if(var_03 == param_01)
{
return 1;
}
}
}
return 0;
}

View File

@ -0,0 +1,95 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_lasersight.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 2
* Decompile Time: 31 ms
* Timestamp: 10/27/2023 1:49:01 AM
*******************************************************************/
//Function Number: 1
lasersight_think()
{
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
self.laser_on = undefined;
self.wasemp = 0;
self.has_laser = 0;
for(;;)
{
while(maps\mp\_utility::isemped() && self.has_laser)
{
wait(0.05);
self laseroff();
self.wasemp = 1;
continue;
}
if(self.wasemp && self.has_laser)
{
self.wasemp = 0;
self laseron(get_laser_name());
}
if(issubstr(self getcurrentweapon(),"maaws") || issubstr(self getcurrentweapon(),"dlcgun11loot3"))
{
self.has_laser = 1;
}
if(self.has_laser && self isthrowinggrenade())
{
if(isdefined(self.laser_on) && self.laser_on)
{
self laseroff();
self.laser_on = 0;
while(!self isusingoffhand() && self isthrowinggrenade())
{
wait(0.05);
}
while(self isusingoffhand() && self isthrowinggrenade())
{
wait(0.05);
}
while(self isthrowinggrenade())
{
wait(0.05);
}
self laseron(get_laser_name());
self.laser_on = 1;
}
}
if(!self.has_laser)
{
if(isdefined(self.laser_on) && self.laser_on)
{
self laseroff();
self.laser_on = 0;
}
}
else if(!isdefined(self.laser_on) || !self.laser_on)
{
self laseron(get_laser_name());
self.laser_on = 1;
}
wait(0.05);
}
}
//Function Number: 2
get_laser_name()
{
var_00 = self getcurrentweapon();
if(issubstr(var_00,"_dlcgun10loot5") || maps\mp\gametypes\_class::isexoxmg(var_00) || maps\mp\gametypes\_class::issac3(var_00))
{
return "mp_attachment_lasersight_short";
}
return "mp_attachment_lasersight";
}

432
AW/PC/MP/maps/mp/_load.gsc Normal file
View File

@ -0,0 +1,432 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_load.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 9
* Decompile Time: 153 ms
* Timestamp: 10/27/2023 1:49:02 AM
*******************************************************************/
//Function Number: 1
main()
{
if(isdefined(level._loadstarted))
{
return;
}
level._loadstarted = 1;
level.virtuallobbyactive = getdvarint("virtualLobbyActive",0);
maps\mp\_utility::set_console_status();
level.createfx_enabled = getdvar("createfx") != "";
common_scripts\utility::struct_class_init();
maps\mp\_utility::initgameflags();
maps\mp\_utility::initlevelflags();
maps\mp\_utility::initglobals();
level.generic_index = 0;
level.flag_struct = spawnstruct();
level.flag_struct common_scripts\utility::assign_unique_id();
if(!isdefined(level.flag))
{
level.flag = [];
level.flags_lock = [];
}
level.requiredmapaspectratio = getdvarfloat("scr_RequiredMapAspectratio",1);
level.createclientfontstring_func = ::maps\mp\gametypes\_hud_util::createfontstring;
level.hudsetpoint_func = ::maps\mp\gametypes\_hud_util::setpoint;
level.leaderdialogonplayer_func = ::maps\mp\_utility::leaderdialogonplayer;
thread maps\mp\gametypes\_tweakables::init();
if(!isdefined(level.func))
{
level.func = [];
}
level.func["precacheMpAnim"] = ::precachempanim;
level.func["scriptModelPlayAnim"] = ::scriptmodelplayanim;
level.func["scriptModelClearAnim"] = ::scriptmodelclearanim;
if(!level.createfx_enabled)
{
thread maps\mp\_movers::init();
thread maps\mp\_shutter::main();
thread maps\mp\_destructables::init();
thread common_scripts\_elevator::init();
thread maps\mp\_dynamic_world::init();
thread common_scripts\_destructible::init();
}
game["thermal_vision"] = "default";
visionsetnaked("",0);
visionsetnight("default_night_mp");
visionsetmissilecam("orbital_strike");
visionsetthermal(game["thermal_vision"]);
visionsetpain("near_death_mp",0);
var_00 = getentarray("lantern_glowFX_origin","targetname");
for(var_01 = 0;var_01 < var_00.size;var_01++)
{
var_00[var_01] thread lanterns();
}
maps\mp\_audio::init_audio();
maps\mp\_art::main();
setupexploders();
thread common_scripts\_fx::initfx();
if(level.createfx_enabled)
{
maps\mp\gametypes\_spawnlogic::setmapcenterfordev();
maps\mp\_createfx::createfx();
}
if(getdvar("r_reflectionProbeGenerate") == "1")
{
deleteduringreflectionprobegeneration();
maps\mp\gametypes\_spawnlogic::setmapcenterfordev();
maps\mp\_global_fx::main();
level waittill("eternity");
}
thread maps\mp\_global_fx::main();
var_02 = 0;
if(var_02 < 6)
{
switch(var_02)
{
case 0:
break;
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
default:
break;
}
}
}
//Function Number: 2
exploder_load(param_00)
{
level endon("killexplodertridgers" + param_00.script_exploder);
param_00 waittill("trigger");
if(isdefined(param_00.script_chance) && randomfloat(1) > param_00.script_chance)
{
if(isdefined(param_00.script_delay))
{
wait(param_00.script_delay);
}
else
{
wait(4);
}
level thread exploder_load(param_00);
return;
}
common_scripts\_exploder::exploder(param_00.script_exploder);
level notify("killexplodertridgers" + param_00.script_exploder);
}
//Function Number: 3
setupexploders()
{
var_00 = getentarray("script_brushmodel","classname");
var_01 = getentarray("script_model","classname");
for(var_02 = 0;var_02 < var_01.size;var_02++)
{
var_00[var_00.size] = var_01[var_02];
}
for(var_02 = 0;var_02 < var_00.size;var_02++)
{
if(isdefined(var_00[var_02].script_prefab_exploder))
{
var_00[var_02].script_exploder = var_00[var_02].script_prefab_exploder;
}
if(isdefined(var_00[var_02].script_exploder))
{
if(var_00[var_02].model == "fx" && !isdefined(var_00[var_02].targetname) || var_00[var_02].targetname != "exploderchunk")
{
var_00[var_02] hide();
continue;
}
if(isdefined(var_00[var_02].targetname) && var_00[var_02].targetname == "exploder")
{
var_00[var_02] hide();
var_00[var_02] notsolid();
continue;
}
if(isdefined(var_00[var_02].targetname) && var_00[var_02].targetname == "exploderchunk")
{
var_00[var_02] hide();
var_00[var_02] notsolid();
}
}
}
var_03 = [];
var_04 = getentarray("script_brushmodel","classname");
for(var_02 = 0;var_02 < var_04.size;var_02++)
{
if(isdefined(var_04[var_02].script_prefab_exploder))
{
var_04[var_02].script_exploder = var_04[var_02].script_prefab_exploder;
}
if(isdefined(var_04[var_02].script_exploder))
{
var_03[var_03.size] = var_04[var_02];
}
}
var_04 = getentarray("script_model","classname");
for(var_02 = 0;var_02 < var_04.size;var_02++)
{
if(isdefined(var_04[var_02].script_prefab_exploder))
{
var_04[var_02].script_exploder = var_04[var_02].script_prefab_exploder;
}
if(isdefined(var_04[var_02].script_exploder))
{
var_03[var_03.size] = var_04[var_02];
}
}
var_04 = getentarray("item_health","classname");
for(var_02 = 0;var_02 < var_04.size;var_02++)
{
if(isdefined(var_04[var_02].script_prefab_exploder))
{
var_04[var_02].script_exploder = var_04[var_02].script_prefab_exploder;
}
if(isdefined(var_04[var_02].script_exploder))
{
var_03[var_03.size] = var_04[var_02];
}
}
if(!isdefined(level.createfxent))
{
level.createfxent = [];
}
var_05 = [];
var_05["exploderchunk visible"] = 1;
var_05["exploderchunk"] = 1;
var_05["exploder"] = 1;
for(var_02 = 0;var_02 < var_03.size;var_02++)
{
var_06 = var_03[var_02];
var_07 = common_scripts\utility::createexploder(var_06.script_fxid);
var_07.v = [];
var_07.v["origin"] = var_06.origin;
var_07.v["angles"] = var_06.angles;
var_07.v["delay"] = var_06.script_delay;
var_07.v["firefx"] = var_06.script_firefx;
var_07.v["firefxdelay"] = var_06.script_firefxdelay;
var_07.v["firefxsound"] = var_06.script_firefxsound;
var_07.v["firefxtimeout"] = var_06.script_firefxtimeout;
var_07.v["earthquake"] = var_06.script_earthquake;
var_07.v["damage"] = var_06.script_damage;
var_07.v["damage_radius"] = var_06.script_radius;
var_07.v["soundalias"] = var_06.script_soundalias;
var_07.v["repeat"] = var_06.script_repeat;
var_07.v["delay_min"] = var_06.script_delay_min;
var_07.v["delay_max"] = var_06.script_delay_max;
var_07.v["target"] = var_06.target;
var_07.v["ender"] = var_06.script_ender;
var_07.v["type"] = "exploder";
if(!isdefined(var_06.script_fxid))
{
var_07.v["fxid"] = "No FX";
}
else
{
var_07.v["fxid"] = var_06.script_fxid;
}
var_07.v["exploder"] = var_06.script_exploder;
if(!isdefined(var_07.v["delay"]))
{
var_07.v["delay"] = 0;
}
if(isdefined(var_06.target))
{
var_08 = getentarray(var_07.v["target"],"targetname")[0];
if(isdefined(var_08))
{
var_09 = var_08.origin;
var_07.v["angles"] = vectortoangles(var_09 - var_07.v["origin"]);
}
else
{
var_08 = common_scripts\utility::get_target_ent(var_07.v["target"]);
if(isdefined(var_08))
{
var_09 = var_08.origin;
var_07.v["angles"] = vectortoangles(var_09 - var_07.v["origin"]);
}
}
}
if(var_06.classname == "script_brushmodel" || isdefined(var_06.model))
{
var_07.model = var_06;
var_07.model.disconnect_paths = var_06.script_disconnectpaths;
}
if(isdefined(var_06.targetname) && isdefined(var_05[var_06.targetname]))
{
var_07.v["exploder_type"] = var_06.targetname;
}
else
{
var_07.v["exploder_type"] = "normal";
}
var_07 common_scripts\_createfx::post_entity_creation_function();
}
}
//Function Number: 4
lanterns()
{
common_scripts\_fx::loopfx("lantern_light",self.origin,0.3,self.origin + (0,0,1));
}
//Function Number: 5
hurtplayersthink()
{
level endon("game_ended");
wait(randomfloat(1));
for(;;)
{
foreach(var_01 in level.players)
{
if(var_01 istouching(self) && maps\mp\_utility::isreallyalive(var_01))
{
var_01 maps\mp\_utility::_suicide();
}
}
wait(0.5);
}
}
//Function Number: 6
setupdestructiblekillcaments()
{
var_00 = getentarray("destructible_vehicle","targetname");
var_01 = var_00;
var_06 = getfirstarraykey(var_01);
if(isdefined(var_06))
{
var_02 = var_01[var_06];
switch(getdvar("mapname"))
{
case "mp_interchange":
break;
}
}
}
//Function Number: 7
deletedestructiblekillcament()
{
level endon("game_ended");
var_00 = self.killcament;
var_00 endon("death");
self waittill("death");
wait(10);
if(isdefined(var_00))
{
var_00 delete();
}
}
//Function Number: 8
deleteduringreflectionprobegeneration()
{
var_00 = getentarray("boost_jump_border","targetname");
foreach(var_02 in var_00)
{
var_02 delete();
}
var_00 = getentarray("mp_recovery_signage","targetname");
foreach(var_02 in var_00)
{
var_02 delete();
}
var_06 = getentarray("horde_dome","targetname");
foreach(var_08 in var_06)
{
var_08 delete();
}
var_0A = getentarray("hp_zone_center","targetname");
foreach(var_0C in var_0A)
{
if(isdefined(var_0C.target))
{
var_00 = getentarray(var_0C.target,"targetname");
foreach(var_02 in var_00)
{
var_02 delete();
}
}
}
var_10 = getentarray("orbital_bad_spawn_overlay","targetname");
foreach(var_12 in var_10)
{
var_12 delete();
}
}
//Function Number: 9
load_costume_indices()
{
if(isdefined(level.costumecategories))
{
return;
}
level.costumecategories = ["gender","shirt","head","pants","gloves","shoes","kneepads","gear","hat","eyewear","exo"];
level.costumecat2idx = [];
for(var_00 = 0;var_00 < level.costumecategories.size;var_00++)
{
var_01 = level.costumecategories[var_00];
level.costumecat2idx[var_01] = var_00;
}
level.costumetypehexids = [];
level.costumetypehexids["gender"] = "0x61";
level.costumetypehexids["shirt"] = "0x62";
level.costumetypehexids["head"] = "0x63";
level.costumetypehexids["pants"] = "0x64";
level.costumetypehexids["gloves"] = "0x69";
level.costumetypehexids["shoes"] = "0x6a";
level.costumetypehexids["kneepads"] = "0x68";
level.costumetypehexids["gear"] = "0x67";
level.costumetypehexids["hat"] = "0x66";
level.costumetypehexids["eyewear"] = "0x6c";
level.costumetypehexids["exo"] = "0x6b";
}

View File

@ -0,0 +1,75 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_lsrmissileguidance.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 3
* Decompile Time: 45 ms
* Timestamp: 10/27/2023 1:49:02 AM
*******************************************************************/
//Function Number: 1
monitor_lsr_missile_launch()
{
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
for(;;)
{
self waittill("missile_fire",var_00,var_01);
if(issubstr(var_01,"maaws") || issubstr(var_01,"dlcgun11loot3"))
{
if(!isdefined(self.lsr_target_ent))
{
self.lsr_target_ent = spawn("script_origin",self.origin);
self.lsr_target_ent.targetname = "lsr_missile";
}
self.lsr_target_ent thread lsr_target_monitor_and_cleanup(var_00);
var_00 thread lsr_rocket_think(self);
}
}
}
//Function Number: 2
lsr_rocket_think(param_00)
{
self endon("death");
param_00 endon("death");
param_00 endon("disconnect");
param_00 endon("faux_spawn");
for(;;)
{
if(param_00 playerads() > 0.3)
{
var_01 = anglestoforward(param_00 getplayerangles());
var_02 = param_00 geteye();
var_03 = var_02 + var_01 * 15000;
var_04 = bullettrace(var_02,var_03,1,param_00,1,0,0,0,0);
param_00.lsr_target_ent.origin = var_04["position"];
self missile_settargetent(param_00.lsr_target_ent);
}
wait(0.05);
}
}
//Function Number: 3
lsr_target_monitor_and_cleanup(param_00)
{
if(!isdefined(self.lsr_rocket_count))
{
self.lsr_rocket_count = 1;
}
else
{
self.lsr_rocket_count++;
}
param_00 waittill("death");
self.lsr_rocket_count--;
if(self.lsr_rocket_count == 0)
{
self delete();
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_menus.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 13 ms
* Timestamp: 10/27/2023 1:49:05 AM
*******************************************************************/
//Function Number: 1
init()
{
}

View File

@ -0,0 +1,334 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_microdronelauncher.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 18
* Decompile Time: 281 ms
* Timestamp: 10/27/2023 1:49:06 AM
*******************************************************************/
//Function Number: 1
monitor_microdrone_launch()
{
level._effect["mdl_sticky_explosion"] = loadfx("vfx/explosion/frag_grenade_default");
level._effect["mdl_sticky_blinking"] = loadfx("vfx/lights/light_semtex_blinking");
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
for(;;)
{
self waittill("missile_fire",var_00,var_01);
if(issubstr(var_01,"iw5_microdronelauncher_mp"))
{
var_00 setotherent(self);
}
}
}
//Function Number: 2
determine_projectile_position(param_00)
{
self endon("death");
for(;;)
{
if(!isdefined(self.previous_position))
{
self.previous_position = self.origin;
}
wait(0.05);
self.previous_position = self.origin;
}
}
//Function Number: 3
determine_sticky_position(param_00)
{
param_00 endon("spawned_player");
if(!isdefined(self.previous_position))
{
return;
}
if(!isdefined(self))
{
return;
}
var_01 = self.origin - self.previous_position;
var_02 = vectortoangles(var_01);
var_03 = anglestoforward(var_02) * 8000;
var_04 = self.origin + var_03;
var_05 = bullettrace(self.previous_position,var_04,1,param_00,1,1);
if(var_05["fraction"] < 1 && isdefined(var_05["position"]))
{
var_06 = spawn("script_model",var_05["position"]);
var_06 setmodel("projectile_semtex_grenade");
if(isdefined(var_05["entity"]))
{
if(isplayer(var_05["entity"]))
{
param_00 thread show_stuck_fanfare();
var_05["entity"] thread show_stuck_fanfare();
}
var_06 linkto(var_05["entity"]);
}
var_06 thread sticky_timer(param_00);
var_06 thread sticky_fx(param_00);
var_06 thread remove_sticky(param_00);
}
}
//Function Number: 4
microdronelauncher_cleanup()
{
common_scripts\utility::waittill_any("death","disconnect","faux_spawn");
if(isdefined(self.huditem))
{
foreach(var_01 in self.huditem)
{
var_01 destroy();
}
self.huditem = undefined;
}
}
//Function Number: 5
show_stuck_fanfare()
{
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
if(!isdefined(self.huditem))
{
self.huditem = [];
}
if(isdefined(self.huditem) && !isdefined(self.huditem["mdlStuckText"]))
{
self.huditem["mdlStuckText"] = newclienthudelem(self);
self.huditem["mdlStuckText"].x = 0;
self.huditem["mdlStuckText"].y = -170;
self.huditem["mdlStuckText"].alignx = "center";
self.huditem["mdlStuckText"].aligny = "middle";
self.huditem["mdlStuckText"].horzalign = "center";
self.huditem["mdlStuckText"].vertalign = "middle";
self.huditem["mdlStuckText"].fontscale = 3;
self.huditem["mdlStuckText"].alpha = 0;
self.huditem["mdlStuckText"] settext("STUCK!");
thread microdronelauncher_cleanup();
}
if(isdefined(self.huditem["mdlStuckText"]))
{
self.huditem["mdlStuckText"].alpha = 1;
wait(2);
self.huditem["mdlStuckText"].alpha = 0;
}
}
//Function Number: 6
sticky_timer(param_00)
{
param_00 endon("spawned_player");
wait(3);
playfx(common_scripts\utility::getfx("mdl_sticky_explosion"),self.origin);
physicsexplosionsphere(self.origin,256,32,1);
radiusdamage(self.origin,256,130,15,param_00,"MOD_EXPLOSIVE","iw5_microdronelauncher_mp");
self notify("exploded");
}
//Function Number: 7
sticky_fx(param_00)
{
param_00 endon("spawned_player");
self endon("exploded");
self.fx_origin = common_scripts\utility::spawn_tag_origin();
self.fx_origin.origin = self.origin;
self.fx_origin show();
wait(0.1);
playfxontag(common_scripts\utility::getfx("mdl_sticky_blinking"),self.fx_origin,"tag_origin");
}
//Function Number: 8
remove_sticky(param_00)
{
thread remove_sticky_on_explosion(param_00);
thread remove_sticky_on_respawn(param_00);
}
//Function Number: 9
remove_sticky_on_explosion(param_00)
{
param_00 endon("spawned_player");
self waittill("exploded");
if(isdefined(self))
{
cleanup_sticky();
}
}
//Function Number: 10
remove_sticky_on_respawn(param_00)
{
self endon("exploded");
param_00 waittill("spawned_player");
if(isdefined(self))
{
cleanup_sticky();
}
}
//Function Number: 11
cleanup_sticky()
{
stopfxontag(common_scripts\utility::getfx("mdl_sticky_blinking"),self.fx_origin,"tag_origin");
self delete();
}
//Function Number: 12
microdrone_think(param_00)
{
self endon("death");
param_00 endon("death");
param_00 endon("disconnect");
param_00 endon("faux_spawn");
var_01 = self.origin;
get_differentiated_velocity();
wait(0.05);
get_differentiated_velocity();
wait(0.05);
var_02 = 0.1;
var_03 = get_differentiated_velocity();
for(;;)
{
var_04 = get_differentiated_velocity();
var_05 = 0;
if(var_02 >= 0.35)
{
var_06 = microdrone_get_best_target(var_01,vectornormalize(var_03),var_04,param_00);
if(isdefined(var_06))
{
self missile_settargetent(var_06,microdrone_get_target_offset(var_06));
var_05 = 1;
var_03 = var_04;
}
}
else
{
}
if(!var_05)
{
var_07 = vectornormalize(var_03 + (0,0,-400 * squared(var_02)));
self missile_settargetpos(self.origin + var_07 * 10000);
}
wait(0.05);
var_02 = var_02 + 0.05;
}
}
//Function Number: 13
microdrone_get_best_target(param_00,param_01,param_02,param_03)
{
var_04 = cos(15);
var_05 = undefined;
var_06 = cos(15);
foreach(var_08 in level.players)
{
if(var_08 == param_03)
{
continue;
}
if(var_08.team == param_03.team)
{
continue;
}
var_09 = microdrone_get_target_pos(var_08);
var_0A = vectordot(vectornormalize(param_02),vectornormalize(var_09 - self.origin));
if(var_0A > var_06)
{
if(bullettracepassed(self.origin,var_09,0,var_08))
{
var_05 = var_08;
var_06 = var_0A;
continue;
}
}
}
return var_05;
}
//Function Number: 14
is_enemy_target(param_00,param_01)
{
var_02 = undefined;
if(isai(param_00))
{
var_02 = param_00.team;
}
else if(isdefined(param_00.script_team))
{
var_02 = param_00.script_team;
}
return isenemyteam(var_02,param_01.team);
}
//Function Number: 15
microdrone_get_target_pos(param_00)
{
return param_00 getpointinbounds(0,0,0);
}
//Function Number: 16
microdrone_get_target_offset(param_00)
{
return microdrone_get_target_pos(param_00) - param_00.origin;
}
//Function Number: 17
get_differentiated_velocity()
{
differentiate_motion();
return self.differentiated_velocity;
}
//Function Number: 18
differentiate_motion()
{
var_00 = gettime() * 0.001;
if(!isdefined(self.differentiated_last_update))
{
self.differentiated_last_update = var_00;
self.differentiated_last_origin = self.origin;
self.differentiated_last_velocity = (0,0,0);
self.differentiated_last_acceleration = (0,0,0);
self.differentiated_jerk = (0,0,0);
self.differentiated_acceleration = (0,0,0);
self.differentiated_velocity = (0,0,0);
self.differentiated_speed = 0;
return;
}
if(self.differentiated_last_update != var_00)
{
var_01 = var_00 - self.differentiated_last_update;
self.differentiated_last_update = var_00;
self.differentiated_jerk = self.differentiated_acceleration - self.differentiated_last_acceleration / var_01;
self.differentiated_last_acceleration = self.differentiated_acceleration;
self.differentiated_acceleration = self.differentiated_velocity - self.differentiated_last_velocity / var_01;
self.differentiated_last_velocity = self.differentiated_velocity;
self.differentiated_velocity = self.origin - self.differentiated_last_origin / var_01;
self.differentiated_last_origin = self.origin;
self.differentiated_speed = length(self.differentiated_velocity);
}
}

1241
AW/PC/MP/maps/mp/_movers.gsc Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,536 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_mp_lights.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 23
* Decompile Time: 364 ms
* Timestamp: 10/27/2023 1:49:11 AM
*******************************************************************/
//Function Number: 1
init()
{
if(!isdefined(level.sunenable))
{
level.sunenable = getdvarint("sm_sunenable",1);
}
if(!isdefined(level.sunshadowscale))
{
level.sunshadowscale = getdvarfloat("sm_sunshadowscale",1);
}
if(!isdefined(level.spotlimit))
{
level.spotlimit = getdvarint("sm_spotlimit",4);
}
if(!isdefined(level.sunsamplesizenear))
{
level.sunsamplesizenear = getdvarfloat("sm_sunsamplesizenear",0.25);
}
if(!isdefined(level.qualityspotshadow))
{
level.qualityspotshadow = getdvarfloat("sm_qualityspotshadow",1);
}
thread monitorplayerspawns();
if(!isdefined(level._light))
{
level._light = spawnstruct();
light_setup_common_flickerlight_presets();
light_message_init();
}
var_00 = getentarray("trigger_multiple_light_sunshadow","classname");
for(var_01 = 0;var_01 < var_00.size;var_01++)
{
level thread sun_shadow_trigger(var_00[var_01]);
}
}
//Function Number: 2
set_smdvars(param_00,param_01,param_02,param_03,param_04)
{
if(isdefined(param_00))
{
level.sunenable = param_00;
}
if(isdefined(param_01))
{
level.sunshadowscale = param_01;
}
if(isdefined(param_02))
{
level.spotlimit = param_02;
}
if(isdefined(param_03))
{
level.sunsamplesizenear = param_03;
}
if(isdefined(param_04))
{
level.qualityspotshadow = param_04;
}
}
//Function Number: 3
monitorplayerspawns()
{
if(isdefined(level.players))
{
foreach(var_01 in level.players)
{
var_01 initplayer();
}
}
for(;;)
{
level waittill("connected",var_01);
var_01 initplayer();
var_01 thread monitordeath();
}
}
//Function Number: 4
initplayer()
{
self.sunenable = level.sunenable;
self.sunshadowscale = level.sunshadowscale;
self.spotlimit = level.spotlimit;
self.sunsamplesizenear = level.sunsamplesizenear;
self.qualityspotshadow = level.qualityspotshadow;
self setclientdvars("sm_sunenable",self.sunenable,"sm_sunshadowscale",self.sunshadowscale,"sm_spotlimit",self.spotlimit,"sm_qualityspotshadow",self.qualityspotshadow,"sm_sunSampleSizeNear",self.sunsamplesizenear);
}
//Function Number: 5
monitordeath()
{
self waittill("spawned");
initplayer();
}
//Function Number: 6
sun_shadow_trigger(param_00)
{
var_01 = 1;
if(isdefined(param_00.script_duration))
{
var_01 = param_00.script_duration;
}
for(;;)
{
param_00 waittill("trigger",var_02);
param_00 set_sun_shadow_params(var_01,var_02);
}
}
//Function Number: 7
set_sun_shadow_params(param_00,param_01)
{
var_02 = param_01.sunenable;
var_03 = param_01.sunshadowscale;
var_04 = param_01.spotlimit;
var_05 = param_01.sunsamplesizenear;
var_06 = param_01.qualityspotshadow;
if(isdefined(self.script_sunenable))
{
var_02 = self.script_sunenable;
}
if(isdefined(self.script_sunshadowscale))
{
var_03 = self.script_sunshadowscale;
}
if(isdefined(self.script_spotlimit))
{
var_04 = self.script_spotlimit;
}
if(isdefined(self.script_sunsamplesizenear))
{
var_05 = self.script_sunsamplesizenear;
}
var_05 = min(max(0.016,var_05),32);
if(isdefined(self.script_qualityspotshadow))
{
var_06 = self.script_qualityspotshadow;
}
param_01 setclientdvars("sm_sunenable",var_02,"sm_sunshadowscale",var_03,"sm_spotlimit",var_04,"sm_qualityspotshadow",var_06);
param_01.sunenable = var_02;
param_01.sunshadowscale = var_03;
param_01.spotlimit = var_04;
var_07 = param_01.sunsamplesizenear;
param_01.sunsamplesizenear = var_05;
param_01.qualityspotshadow = var_06;
thread lerp_sunsamplesizenear_overtime(var_05,var_07,param_00,param_01);
}
//Function Number: 8
lerp_sunsamplesizenear_overtime(param_00,param_01,param_02,param_03)
{
level notify("changing_sunsamplesizenear" + param_03.name);
level endon("changing_sunsamplesizenear" + param_03.name);
if(param_00 == param_01)
{
return;
}
var_04 = param_00 - param_01;
var_05 = 0.1;
var_06 = param_02 / var_05;
if(var_06 > 0)
{
var_07 = var_04 / var_06;
var_08 = param_01;
for(var_09 = 0;var_09 < var_06;var_09++)
{
var_08 = var_08 + var_07;
param_03 setclientdvar("sm_sunSampleSizeNear",var_08);
param_03.sunsamplesizenear = var_08;
wait(var_05);
}
}
param_03 setclientdvar("sm_sunSampleSizeNear",param_00);
param_03.sunsamplesizenear = param_00;
}
//Function Number: 9
light_setup_common_flickerlight_presets()
{
create_flickerlight_preset("fire",(0.972549,0.62451,0.345098),(0.2,0.1462746,0.0878432),0.005,0.2,8);
create_flickerlight_preset("blue_fire",(0.445098,0.62451,0.972549),(0.05,0.150451,0.3078432),0.005,0.2,8);
create_flickerlight_preset("white_fire",(0.972549,0.972549,0.972549),(0.2,0.2,0.2),0.005,0.2,8);
create_flickerlight_preset("pulse",(0,0,0),(255,107,107),0.2,1,8);
create_flickerlight_preset("lightbulb",(0.972549,0.62451,0.345098),(0.2,0.1462746,0.0878432),0.005,0.2,6);
create_flickerlight_preset("fluorescent",(0.972549,0.62451,0.345098),(0.2,0.1462746,0.0878432),0.005,0.2,7);
create_flickerlight_preset("static_screen",(0.63,0.72,0.92),(0.4,0.43,0.48),0.005,0.2,7);
}
//Function Number: 10
create_flickerlight_preset(param_00,param_01,param_02,param_03,param_04,param_05)
{
if(!isdefined(level._light.flicker_presets))
{
level._light.flicker_presets = [];
}
var_06 = spawnstruct();
var_06.color0 = param_01;
var_06.color1 = param_02;
var_06.mindelay = param_03;
var_06.maxdelay = param_04;
var_06.intensity = param_05;
level._light.flicker_presets[param_00] = var_06;
}
//Function Number: 11
get_flickerlight_preset(param_00)
{
if(isdefined(level._light.flicker_presets) && isdefined(level._light.flicker_presets[param_00]))
{
return level._light.flicker_presets[param_00];
}
return undefined;
}
//Function Number: 12
play_flickerlight_preset(param_00,param_01,param_02)
{
var_03 = getent(param_01,"targetname");
if(!isdefined(var_03))
{
return;
}
var_04 = get_flickerlight_preset(param_00);
if(!isdefined(var_04))
{
return;
}
if(isdefined(param_02))
{
if(param_02 < 0)
{
param_02 = 0;
}
var_04.intensity = param_02;
}
var_03 setlightintensity(var_04.intensity);
var_03.islightflickering = 1;
var_03.islightflickerpaused = 0;
var_03 thread dyn_flickerlight(var_04.color0,var_04.color1,var_04.mindelay,var_04.maxdelay);
return var_03;
}
//Function Number: 13
stop_flickerlight(param_00,param_01,param_02)
{
var_03 = getent(param_01,"targetname");
if(!isdefined(var_03))
{
return;
}
if(!isdefined(var_03.islightflickering))
{
return;
}
if(isdefined(param_02))
{
if(param_02 < 0)
{
param_02 = 0;
}
}
var_03 setlightintensity(param_02);
var_03 notify("kill_flicker");
var_03.islightflickering = undefined;
}
//Function Number: 14
pause_flickerlight(param_00,param_01)
{
var_02 = getent(param_01,"targetname");
if(!isdefined(var_02))
{
return;
}
if(!isdefined(var_02.islightflickering))
{
return;
}
var_02.islightflickerpaused = 1;
}
//Function Number: 15
unpause_flickerlight(param_00,param_01)
{
var_02 = getent(param_01,"targetname");
if(!isdefined(var_02))
{
return;
}
if(!isdefined(var_02.islightflickering))
{
return;
}
var_02.islightflickerpaused = 0;
}
//Function Number: 16
dyn_flickerlight(param_00,param_01,param_02,param_03)
{
self endon("kill_flicker");
var_04 = param_00;
var_05 = 0;
for(;;)
{
if(self.islightflickerpaused)
{
wait(0.05);
continue;
}
var_06 = var_04;
var_04 = param_00 + param_01 - param_00 * randomfloat(1);
if(param_02 != param_03)
{
var_05 = var_05 + randomfloatrange(param_02,param_03);
}
else
{
var_05 = var_05 + param_02;
}
if(var_05 == 0)
{
var_05 = var_05 + 1E-07;
}
var_07 = var_06 - var_04 * 1 / var_05;
while(var_05 > 0 && !self.islightflickerpaused)
{
self setlightcolor(var_04 + var_07 * var_05);
wait(0.05);
var_05 = var_05 - 0.05;
}
}
}
//Function Number: 17
model_flicker_preset(param_00,param_01,param_02,param_03)
{
var_04 = getentarray(param_00,"script_noteworthy");
if(!isdefined(var_04))
{
return;
}
self endon("death");
var_05 = 0;
var_06 = randomfloatrange(0.1,0.25);
if(isdefined(param_02))
{
exploder(param_02);
}
while(var_05 < param_01)
{
if(isdefined(param_03))
{
exploder(param_03);
}
foreach(var_08 in var_04)
{
var_08 show();
}
wait(var_06);
if(isdefined(param_03))
{
stop_exploder(param_03);
}
foreach(var_08 in var_04)
{
var_08 hide();
}
var_05++;
wait(var_06);
}
}
//Function Number: 18
light_message_init()
{
level._light.messages = [];
}
//Function Number: 19
light_debug_dvar_init()
{
}
//Function Number: 20
light_register_message(param_00,param_01)
{
level._light.messages[param_00] = param_01;
}
//Function Number: 21
light_message(param_00,param_01,param_02,param_03)
{
if(isdefined(level._light.messages[param_00]))
{
if(isdefined(param_03))
{
thread [[ level._light.messages[param_00] ]](param_01,param_02,param_03);
return;
}
if(isdefined(param_02))
{
thread [[ level._light.messages[param_00] ]](param_01,param_02);
return;
}
if(isdefined(param_01))
{
thread [[ level._light.messages[param_00] ]](param_01);
return;
}
thread [[ level._light.messages[param_00] ]]();
return;
}
}
//Function Number: 22
stop_exploder(param_00)
{
param_00 = param_00 + "";
if(isdefined(level.createfxexploders))
{
var_01 = level.createfxexploders[param_00];
if(isdefined(var_01))
{
foreach(var_03 in var_01)
{
if(!isdefined(var_03.looper))
{
continue;
}
var_03.looper delete();
}
return;
}
return;
}
var_05 = 0;
while(var_03 < level.createfxent.size)
{
var_05 = level.createfxent[var_03];
if(!isdefined(var_05))
{
continue;
}
if(var_05.v["type"] != "exploder")
{
continue;
}
if(!isdefined(var_05.v["exploder"]))
{
continue;
}
if(var_05.v["exploder"] + "" != var_02)
{
continue;
}
if(!isdefined(var_05.looper))
{
continue;
}
var_05.looper delete();
var_03++;
}
}
//Function Number: 23
exploder(param_00)
{
[[ level.exploderfunction ]](param_00);
}

View File

@ -0,0 +1,134 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_mutebomb.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 7
* Decompile Time: 103 ms
* Timestamp: 10/27/2023 1:49:12 AM
*******************************************************************/
//Function Number: 1
watchmutebombusage()
{
self endon("spawned_player");
self endon("disconnect");
self endon("death");
self endon("faux_spawn");
if(!isdefined(level.adrenalinesettings))
{
mutebombinit();
}
for(;;)
{
self waittill("grenade_fire",var_00,var_01);
if(var_01 == "mute_bomb_mp")
{
if(!isalive(self))
{
var_00 delete();
return;
}
thread tryusemutebomb(var_00);
}
}
}
//Function Number: 2
mutebombinit()
{
self.adrenalinesettings = spawnstruct();
}
//Function Number: 3
tryusemutebomb(param_00)
{
if(!isdefined(self.adrenalinesettings))
{
mutebombinit();
}
thread startmutebomb(param_00);
thread monitorplayerdeath(param_00);
param_00 thread monitormutebombdeath();
return 1;
}
//Function Number: 4
startmutebomb(param_00)
{
self endon("ClearMuteBomb");
self endon("death");
param_00 endon("death");
param_00 playsound("mute_device_activate");
wait(0.75);
param_00 addsoundmutedevice(350,600,0.25);
param_00 playloopsound("mute_device_active_lp");
param_00 thread monitormutebombplayers();
wait(20);
param_00 scalevolume(0,0.25);
param_00 removesoundmutedevice(0.25);
param_00 notify("ShutdownMuteBomb");
wait(0.25);
param_00 stoploopsound();
}
//Function Number: 5
monitorplayerdeath(param_00)
{
param_00 endon("ShutdownMuteBomb");
self waittill("death");
if(isdefined(param_00))
{
param_00 removesoundmutedevice(0.25);
param_00 notify("ShutdownMuteBomb");
}
}
//Function Number: 6
monitormutebombdeath()
{
self endon("ShutdownMuteBomb");
self waittill("death");
if(isdefined(self))
{
self removesoundmutedevice(0.25);
self notify("ShutdownMuteBomb");
}
}
//Function Number: 7
monitormutebombplayers()
{
self endon("ShutdownMuteBomb");
var_00 = 475;
self.touchingplayers = [];
for(;;)
{
foreach(var_02 in level.players)
{
var_03 = distance(self.origin,var_02.origin);
var_04 = common_scripts\utility::array_contains(self.touchingplayers,var_02);
if(var_03 <= var_00)
{
if(!var_04)
{
self.touchingplayers = common_scripts\utility::array_add(self.touchingplayers,var_02);
var_02 playlocalsound("mute_device_active_enter");
}
continue;
}
if(var_04)
{
self.touchingplayers = common_scripts\utility::array_remove(self.touchingplayers,var_02);
var_02 playlocalsound("mute_device_active_exit");
}
}
wait(0.05);
}
}

274
AW/PC/MP/maps/mp/_na45.gsc Normal file
View File

@ -0,0 +1,274 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_na45.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 12
* Decompile Time: 174 ms
* Timestamp: 10/27/2023 1:49:13 AM
*******************************************************************/
//Function Number: 1
main()
{
level._effect["primer_light"] = loadfx("vfx/lights/light_beacon_m990_spike");
level._effect["na45_explosion"] = loadfx("vfx/explosion/frag_grenade_default");
level._effect["na45_explosion_body"] = loadfx("vfx/explosion/frag_grenade_default_nodecal");
thread monitor_na45_use();
}
//Function Number: 2
is_na45(param_00)
{
if(issubstr(param_00,"m990") || issubstr(param_00,"dlcgun10loot0"))
{
return 1;
}
return 0;
}
//Function Number: 3
monitor_na45_use()
{
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
childthread reset_shot_on_reload();
for(;;)
{
var_00 = self getcurrentweapon();
if(is_na45(var_00))
{
self.bullethitcallback = ::m990_hit;
}
else
{
self.bullethitcallback = undefined;
}
self waittill("weapon_change");
}
}
//Function Number: 4
transfer_primer_to_corpse(param_00,param_01)
{
self endon("primer_deleted");
param_00 waittill("death");
var_02 = param_00 getcorpseentity();
if(isdefined(var_02))
{
if(isdefined(param_01))
{
self.primer linkto(var_02,param_01);
}
else
{
self.primer linkto(var_02);
}
self.primer thread show_primer_fx(self);
}
}
//Function Number: 5
m990_hit(param_00,param_01,param_02,param_03,param_04,param_05)
{
if(!is_na45(param_00))
{
return;
}
if(self getcurrentweapon() != param_00)
{
return;
}
var_06 = get_current_shot();
if(var_06 == "primer")
{
if(isdefined(self.primer))
{
delete_primer();
}
self.primer = common_scripts\utility::spawn_tag_origin();
if(isdefined(param_03) && isplayer(param_03) || isagent(param_03))
{
self.primer.origin = param_01 + param_04;
self.primer.angles = vectortoangles(param_04 * -1);
}
else
{
self.primer.origin = param_01;
self.primer.angles = vectortoangles(param_02);
}
self.primer show();
self.primer thread show_primer_fx(self);
if(isdefined(param_03))
{
var_07 = param_03;
if(isplayer(param_03) || isagent(param_03))
{
if(isalive(param_03))
{
thread transfer_primer_to_corpse(param_03,param_05);
}
else
{
var_08 = param_03 getcorpseentity();
if(isdefined(var_08))
{
var_07 = var_08;
}
}
self.primer.onbody = 1;
}
if(isdefined(param_05))
{
self.primer linkto(var_07,param_05);
}
else
{
self.primer linkto(var_07);
}
}
thread cleanup_primer();
return;
}
if(isdefined(self.primer))
{
if(distance(param_01,self.primer.origin) <= 64)
{
if(isdefined(self.primer.onbody))
{
playfx(common_scripts\utility::getfx("na45_explosion_body"),self.primer.origin,anglestoforward(self.primer.angles));
}
else
{
playfx(common_scripts\utility::getfx("na45_explosion"),self.primer.origin,anglestoforward(self.primer.angles));
}
playsoundatpos(self.origin,"wpn_na45_exp");
param_00 = self getcurrentweapon();
var_09 = 256;
var_0A = 130;
var_0B = 15;
if(issubstr(param_00,"m990loot2"))
{
var_0B = 30;
}
if(issubstr(param_00,"m990loot5"))
{
var_0A = 100;
var_09 = 196;
}
if(issubstr(param_00,"m990loot8"))
{
var_0A = 100;
}
if(issubstr(param_00,"m990loot9") || issubstr(param_00,"dlcgun10loot0"))
{
var_0B = 30;
var_0A = 150;
var_09 = 300;
}
physicsexplosionsphere(self.primer.origin,256,32,1);
radiusdamage(self.primer.origin,var_09,var_0A,var_0B,self,"MOD_EXPLOSIVE",param_00);
}
delete_primer();
}
}
//Function Number: 6
reset_shot_on_reload()
{
for(;;)
{
self waittill("reload_start");
var_00 = self getcurrentweapon();
if(!is_na45(var_00))
{
self waittill("weapon_change");
continue;
}
cleanup_primer_reload();
}
}
//Function Number: 7
cleanup_primer()
{
self endon("primer_deleted");
common_scripts\utility::waittill_any("death","disconnect","faux_spawn");
if(isdefined(self) && isdefined(self.primer))
{
thread delete_primer();
}
}
//Function Number: 8
cleanup_primer_reload()
{
self endon("primer_deleted");
if(isdefined(self) && isdefined(self.primer))
{
thread delete_primer();
}
}
//Function Number: 9
get_current_shot()
{
var_00 = self getcurrentweaponclipammo();
if(var_00 % 2 == 1)
{
return "primer";
}
return "catalyst";
}
//Function Number: 10
show_primer_fx(param_00)
{
self endon("death");
wait(0.1);
playfxontagforclients(common_scripts\utility::getfx("primer_light"),self,"TAG_ORIGIN",param_00);
}
//Function Number: 11
delete_primer()
{
self notify("primer_deleted");
stopfxontag(common_scripts\utility::getfx("primer_light"),self.primer,"TAG_ORIGIN");
self.primer delete();
self.primer = undefined;
}
//Function Number: 12
draw_distance_line(param_00,param_01,param_02,param_03)
{
if(!isdefined(param_03))
{
param_03 = (1,0,0);
}
while(param_02 > 0)
{
param_02 = param_02 - 0.05;
wait(0.05);
}
}

View File

@ -0,0 +1,68 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_opticsthermal.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 3
* Decompile Time: 44 ms
* Timestamp: 10/27/2023 1:49:13 AM
*******************************************************************/
//Function Number: 1
opticsthermal_think()
{
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
if(isagent(self))
{
return;
}
var_00 = 0.65;
self.opticsthermalenabled = 0;
self.orbitalthermalmode = 0;
self.has_opticsthermal = 0;
for(;;)
{
var_01 = !self.has_opticsthermal;
var_01 = var_01 | self.has_opticsthermal && self playerads() < var_00;
var_01 = var_01 | self isusingturret();
var_01 = var_01 | self.orbitalthermalmode;
if(var_01)
{
opticsthermal_blur_off(self);
}
else
{
opticsthermal_blur(self,0.05);
}
wait(0.05);
}
}
//Function Number: 2
opticsthermal_blur(param_00,param_01)
{
if(param_00.opticsthermalenabled)
{
return;
}
param_00 enablephysicaldepthoffieldscripting(3);
param_00 setphysicaldepthoffield(70,0,40,80);
param_00.opticsthermalenabled = 1;
}
//Function Number: 3
opticsthermal_blur_off(param_00)
{
if(!param_00.opticsthermalenabled)
{
return;
}
param_00 disablephysicaldepthoffieldscripting();
param_00.opticsthermalenabled = 0;
}

View File

@ -0,0 +1,250 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_reinforcements.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 14
* Decompile Time: 218 ms
* Timestamp: 10/27/2023 1:49:14 AM
*******************************************************************/
//Function Number: 1
init()
{
if(level.rankedmatch && !getdvarint("scr_game_division",0) > 0)
{
level thread onplayerconnect();
}
}
//Function Number: 2
onplayerconnect()
{
level endon("game_ended");
level waittill("prematch_over");
wait 0.05;
foreach(var_01 in level.players)
{
if(isbot(var_01))
{
continue;
}
var_01 resetreinforcements();
var_01 thread checkforreinforcements();
}
for(;;)
{
level waittill("connected",var_01);
if(isbot(var_01))
{
continue;
}
var_01 resetreinforcements();
var_01 thread checkforreinforcements();
}
}
//Function Number: 3
resetreinforcements()
{
self setclientomnvar("ui_reinforcement_timer_type",0);
self setclientomnvar("ui_reinforcement_timer",0);
}
//Function Number: 4
storependingreinforcement(param_00)
{
self.pers["reinforcements"] = spawnstruct();
self.pers["reinforcements"].type = param_00;
self.pers["reinforcements"].starttimepassed = maps\mp\_utility::getgametimepassedms();
}
//Function Number: 5
cancelpendingreinforcement()
{
self.pers["reinforcements"].type = 0;
}
//Function Number: 6
pendingreinforcementavailable()
{
return isdefined(self.pers["reinforcements"]);
}
//Function Number: 7
checkforreinforcements()
{
self endon("disconnect");
level endon("game_ended");
if(!maps\mp\_utility::allowclasschoice())
{
return;
}
if(self.health <= 0)
{
self waittill("spawned_player");
}
if(pendingreinforcementavailable())
{
thread continuereinforcements();
return;
}
var_00 = 0;
if(maps\mp\_utility::practiceroundgame())
{
var_00 = 4;
}
else
{
var_00 = self consumereinforcement();
}
storependingreinforcement(var_00);
if(var_00 == 0)
{
return;
}
var_02 = gettimetoreinforcementfortypems(var_00);
var_03 = gettimeremainingincludingrounds();
if(var_03 < var_02)
{
cancelpendingreinforcement();
return;
}
thread waitforreinforcementoftype(var_00,var_02);
}
//Function Number: 8
continuereinforcements()
{
var_00 = self.pers["reinforcements"].type;
if(var_00 == 0)
{
return;
}
var_01 = gettimetoreinforcementfortypems(var_00);
var_02 = maps\mp\_utility::getgametimepassedms();
var_03 = self.pers["reinforcements"].starttimepassed;
var_01 = var_01 - var_02;
var_01 = var_01 + var_03;
thread waitforreinforcementoftype(var_00,var_01);
}
//Function Number: 9
gettimeremainingincludingrounds()
{
if(maps\mp\_utility::isroundbased())
{
var_00 = maps\mp\_utility::getscorelimit();
var_01 = min(var_00 - maps\mp\_utility::getroundswon("allies"),var_00 - maps\mp\_utility::getroundswon("axis"));
var_02 = maps\mp\_utility::gettimelimit() * var_01;
return var_02 * 60 * 1000 - maps\mp\_utility::gettimepassed();
}
return maps\mp\gametypes\_gamelogic::gettimeremaining();
}
//Function Number: 10
gettimetoreinforcementfortypems(param_00)
{
switch(param_00)
{
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
default:
break;
}
}
//Function Number: 11
geticontypeforreinforcementoftype(param_00)
{
switch(param_00)
{
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
default:
break;
}
}
//Function Number: 12
getcarepackagestreakforreinforcementoftype(param_00)
{
switch(param_00)
{
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
default:
break;
}
}
//Function Number: 13
waitforreinforcementoftype(param_00,param_01)
{
self endon("disconnect");
level endon("game_ended");
var_02 = geticontypeforreinforcementoftype(param_00);
self setclientomnvar("ui_reinforcement_timer_type",var_02);
self setclientomnvar("ui_reinforcement_timer",gettime() + param_01);
maps\mp\gametypes\_hostmigration::waitlongdurationwithhostmigrationpause(param_01 / 1000);
self setclientomnvar("ui_reinforcement_timer_type",0);
self setclientomnvar("ui_reinforcement_timer",0);
givereinforcementoftype(param_00);
}
//Function Number: 14
givereinforcementoftype(param_00)
{
if(!isplayer(self))
{
return;
}
var_01 = getcarepackagestreakforreinforcementoftype(param_00);
var_02 = 500;
var_03 = maps\mp\killstreaks\_killstreaks::getnextkillstreakslotindex(var_01);
thread maps\mp\gametypes\_hud_message::killstreaksplashnotify(var_01,var_02,undefined,undefined,var_03);
maps\mp\killstreaks\_killstreaks::givekillstreak(var_01);
cancelpendingreinforcement();
}

View File

@ -0,0 +1,765 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_riotshield.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 36
* Decompile Time: 548 ms
* Timestamp: 10/27/2023 1:49:16 AM
*******************************************************************/
//Function Number: 1
init()
{
level.riot_shield_names = [];
level.riot_shield_names[level.riot_shield_names.size] = "riotshield_mp";
level.riot_shield_names[level.riot_shield_names.size] = "iw5_riotshieldt6_mp";
level.riot_shield_names[level.riot_shield_names.size] = "iw5_riotshieldt6loot0_mp";
level.riot_shield_names[level.riot_shield_names.size] = "iw5_riotshieldt6loot1_mp";
level.riot_shield_names[level.riot_shield_names.size] = "iw5_riotshieldt6loot2_mp";
level.riot_shield_names[level.riot_shield_names.size] = "iw5_riotshieldt6loot3_mp";
level.riot_shield_names[level.riot_shield_names.size] = "iw5_riotshieldjugg_mp";
precacheanims();
level.riot_shield_collision = getent("riot_shield_collision","targetname");
level._effect["riot_shield_shock_fx"] = loadfx("vfx/explosion/riotshield_stun");
level._effect["riot_shield_deploy_smoke"] = loadfx("vfx/smoke/riotshield_deploy_smoke");
level._effect["riot_shield_deploy_lights"] = loadfx("vfx/lights/riotshield_deploy_lights");
}
//Function Number: 2
precacheanims()
{
precachempanim("npc_deployable_riotshield_stand_deploy");
precachempanim("npc_deployable_riotshield_stand_destroyed");
precachempanim("npc_deployable_riotshield_stand_shot");
precachempanim("npc_deployable_riotshield_stand_shot_back");
precachempanim("npc_deployable_riotshield_stand_melee_front");
precachempanim("npc_deployable_riotshield_stand_melee_back");
}
//Function Number: 3
hasriotshield()
{
return isdefined(self.frontshieldmodel) || isdefined(self.backshieldmodel);
}
//Function Number: 4
hasriotshieldequipped()
{
return isdefined(self.frontshieldmodel);
}
//Function Number: 5
weaponisriotshield(param_00)
{
if(!isdefined(level.riot_shield_names))
{
return 0;
}
var_01 = getweaponbasename(param_00);
if(!isdefined(var_01))
{
var_01 = param_00;
}
foreach(var_03 in level.riot_shield_names)
{
if(var_03 == var_01)
{
return 1;
}
}
return 0;
}
//Function Number: 6
weaponisshockplantriotshield(param_00)
{
if(!weaponisriotshield(param_00))
{
return 0;
}
return issubstr(param_00,"shockplant");
}
//Function Number: 7
getotherriotshieldname(param_00)
{
var_01 = 0;
var_02 = self getweaponslistprimaries();
foreach(var_04 in var_02)
{
if(weaponisriotshield(var_04))
{
if(var_04 == param_00 && !var_01)
{
var_01 = 1;
continue;
}
return var_04;
}
}
return undefined;
}
//Function Number: 8
updatefrontandbackshields(param_00)
{
self.frontshieldmodel = undefined;
self.backshieldmodel = undefined;
if(!isdefined(param_00))
{
param_00 = self getcurrentprimaryweapon();
}
if(weaponisriotshield(param_00))
{
self.frontshieldmodel = getweaponmodel(param_00);
}
var_01 = getotherriotshieldname(param_00);
if(isdefined(var_01))
{
self.backshieldmodel = getweaponmodel(var_01);
}
self refreshshieldmodels(param_00);
}
//Function Number: 9
riotshield_clear()
{
self.frontshieldmodel = undefined;
self.backshieldmodel = undefined;
}
//Function Number: 10
entisstucktoshield()
{
if(!self islinked())
{
return 0;
}
var_00 = self getlinkedtagname();
if(!isdefined(var_00))
{
return 0;
}
switch(var_00)
{
case "tag_shield_back":
case "tag_weapon_left":
case "tag_inhand":
break;
}
}
//Function Number: 11
watchriotshielduse()
{
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
thread trackriotshield();
for(;;)
{
self waittill("raise_riotshield");
thread startriotshielddeploy();
}
}
//Function Number: 12
riotshield_watch_for_change_weapon()
{
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
self endon("riotshield_change_weapon");
var_00 = undefined;
self waittill("weapon_change",var_00);
self notify("riotshield_change_weapon",var_00);
}
//Function Number: 13
riotshield_watch_for_start_change_weapon()
{
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
self endon("riotshield_change_weapon");
var_00 = undefined;
for(;;)
{
self waittill("weapon_switch_started",var_00);
if(self isonladder())
{
thread riotshield_watch_for_ladder_early_exit();
break;
}
if(isdefined(self.frontshieldmodel) && isdefined(self.backshieldmodel))
{
wait(0.5);
break;
}
}
self notify("riotshield_change_weapon",var_00);
}
//Function Number: 14
riotshield_watch_for_ladder_early_exit()
{
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
self endon("weapon_change");
while(self isonladder())
{
wait 0.05;
}
self notify("riotshield_change_weapon",self getcurrentprimaryweapon());
}
//Function Number: 15
riotshield_watch_for_exo_shield_pullback()
{
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
self endon("riotshield_change_weapon");
var_00 = undefined;
var_01 = maps\mp\_exo_shield::get_exo_shield_weapon();
self waittillmatch(var_01,"grenade_pullback");
while(!isdefined(self.exo_shield_on) || !self.exo_shield_on)
{
wait 0.05;
}
self notify("riotshield_change_weapon",var_01);
}
//Function Number: 16
riotshield_watch_for_exo_shield_release()
{
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
self endon("riotshield_change_weapon");
if(!isdefined(self.exo_shield_on) || !self.exo_shield_on)
{
return;
}
var_00 = undefined;
var_01 = maps\mp\_exo_shield::get_exo_shield_weapon();
self waittillmatch(var_01,"battery_discharge_end");
while(isdefined(self.exo_shield_on) && self.exo_shield_on)
{
wait 0.05;
}
self notify("riotshield_change_weapon",self getcurrentweapon());
}
//Function Number: 17
watchriotshieldloadout()
{
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
self endon("track_riot_shield");
self waittill("applyLoadout");
updatefrontandbackshields(self getcurrentweapon());
}
//Function Number: 18
trackriotshield()
{
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
self notify("track_riot_shield");
self endon("track_riot_shield");
updatefrontandbackshields(self.currentweaponatspawn);
thread watchriotshieldloadout();
self.lastnonshieldweapon = "none";
for(;;)
{
thread watchriotshieldpickup();
var_00 = self getcurrentweapon();
if(isdefined(self.exo_shield_on) && self.exo_shield_on)
{
var_00 = maps\mp\_exo_shield::get_exo_shield_weapon();
}
thread riotshield_watch_for_change_weapon();
thread riotshield_watch_for_start_change_weapon();
thread riotshield_watch_for_exo_shield_pullback();
thread riotshield_watch_for_exo_shield_release();
self waittill("riotshield_change_weapon",var_01);
if(weaponisriotshield(var_01))
{
if(hasriotshield())
{
if(isdefined(self.riotshieldtakeweapon))
{
self takeweapon(self.riotshieldtakeweapon);
self.riotshieldtakeweapon = undefined;
}
}
if(isvalidnonshieldweapon(var_00))
{
self.lastnonshieldweapon = var_00;
}
}
updateriotshieldattachfornewweapon(var_01);
}
}
//Function Number: 19
updateriotshieldattachfornewweapon(param_00)
{
if(self ismantling() && param_00 == "none")
{
return;
}
updatefrontandbackshields(param_00);
}
//Function Number: 20
watchriotshieldpickup()
{
self endon("death");
self endon("disconnect");
self endon("track_riot_shield");
self notify("watch_riotshield_pickup");
self endon("watch_riotshield_pickup");
self waittill("pickup_riotshield");
self endon("weapon_change");
wait(0.5);
updateriotshieldattachfornewweapon(self getcurrentweapon());
}
//Function Number: 21
isvalidnonshieldweapon(param_00)
{
if(maps\mp\_utility::iskillstreakweapon(param_00))
{
return 0;
}
if(param_00 == "none")
{
return 0;
}
if(maps\mp\gametypes\_class::isvalidequipment(param_00,1) || maps\mp\gametypes\_class::isvalidequipment(param_00,0))
{
return 0;
}
if(weaponisriotshield(param_00))
{
return 0;
}
if(weaponclass(param_00) == "ball")
{
return 0;
}
return 1;
}
//Function Number: 22
startriotshielddeploy()
{
thread watchriotshielddeploy();
}
//Function Number: 23
handleriotshieldshockplant()
{
var_00 = self.riotshieldentity;
var_01 = 10;
var_02 = 50;
var_03 = 150;
var_04 = var_03 * var_03;
var_05 = self.riotshieldentity.origin + (0,0,-25);
self radiusdamage(var_05,var_03,var_02,var_01,self,"MOD_EXPLOSIVE");
playfx(level._effect["riot_shield_shock_fx"],var_05,anglestoforward(self.riotshieldentity.angles + (-90,0,0)));
foreach(var_07 in level.players)
{
if(maps\mp\_utility::isreallyalive(var_07) && !isalliedsentient(var_07,self))
{
if(distancesquared(var_05,var_07.origin) < var_04)
{
var_07 shellshock("concussion_grenade_mp",1);
}
}
}
}
//Function Number: 24
watchriotshielddeploy()
{
self endon("death");
self endon("disconnect");
self notify("start_riotshield_deploy");
self endon("start_riotshield_deploy");
self waittill("startdeploy_riotshield");
self playsound("wpn_riot_shield_plant_mech");
self waittill("deploy_riotshield",var_00);
if(isdefined(self.riotshieldentity))
{
self.riotshieldentity thread damagethendestroyriotshield();
wait 0.05;
}
var_01 = self getcurrentweapon();
self setweaponmodelvariant(var_01,0);
var_02 = weaponisshockplantriotshield(var_01);
self playsound("wpn_riot_shield_plant_punch");
if(var_02)
{
self playsound("wpn_riot_shield_blast_punch");
}
var_03 = 0;
if(var_00)
{
var_04 = self canplaceriotshield();
if(var_04["result"] && riotshielddistancetest(var_04["origin"]))
{
var_05 = 28;
var_06 = spawnriotshieldcover(var_04["origin"] + (0,0,var_05),var_04["angles"]);
var_07 = spawnriotshieldcollision(var_04["origin"] + (0,0,var_05),var_04["angles"],var_06);
var_08 = deployriotshield(self,var_06);
var_09 = self getweaponslistprimaries();
self.riotshieldretrievetrigger = var_08;
self.riotshieldentity = var_06;
self.riotshieldcollisionentity = var_07;
if(var_02)
{
thread handleriotshieldshockplant();
}
else
{
playfxontag(common_scripts\utility::getfx("riot_shield_deploy_smoke"),var_06,"tag_weapon");
}
var_06 scriptmodelplayanimdeltamotion("npc_deployable_riotshield_stand_deploy");
thread spawnshieldlights(var_06);
var_0A = 0;
if(self.lastnonshieldweapon != "none" && self hasweapon(self.lastnonshieldweapon))
{
self switchtoweaponimmediate(self.lastnonshieldweapon);
}
else if(var_09.size > 0)
{
self switchtoweaponimmediate(var_09[0]);
}
else
{
var_0A = 1;
}
if(!self hasweapon("iw5_combatknife_mp"))
{
self giveweapon("iw5_combatknife_mp");
self.riotshieldtakeweapon = "iw5_combatknife_mp";
}
if(var_0A)
{
self switchtoweaponimmediate("iw5_combatknife_mp");
}
var_0B = spawnstruct();
var_0B.deathoverridecallback = ::damagethendestroyriotshield;
var_06 thread maps\mp\_movers::handle_moving_platforms(var_0B);
thread watchdeployedriotshieldents();
thread deleteshieldontriggerdeath(self.riotshieldretrievetrigger);
thread deleteshieldontriggerpickup(self.riotshieldretrievetrigger,self.riotshieldentity);
thread deleteshieldonplayerdeathordisconnect(var_06);
if(isdefined(var_04["entity"]))
{
thread deleteshieldongrounddelete(var_04["entity"]);
}
self.riotshieldentity thread watchdeployedriotshielddamage();
level notify("riotshield_planted",self);
}
else
{
var_03 = 1;
var_0C = weaponclipsize(var_01);
self setweaponammoclip(var_01,var_0C);
}
}
else
{
var_03 = 1;
}
if(var_03)
{
self setriotshieldfailhint();
}
}
//Function Number: 25
spawnshieldlights(param_00)
{
level endon("game_ended");
param_00 endon("death");
wait(0.6);
playfxontag(common_scripts\utility::getfx("riot_shield_deploy_lights"),param_00,"tag_weapon");
}
//Function Number: 26
riotshielddistancetest(param_00)
{
var_01 = getdvarfloat("riotshield_deploy_limit_radius");
var_01 = var_01 * var_01;
foreach(var_03 in level.players)
{
if(isdefined(var_03.riotshieldentity))
{
var_04 = distancesquared(var_03.riotshieldentity.origin,param_00);
if(var_01 > var_04)
{
return 0;
}
}
}
return 1;
}
//Function Number: 27
spawnriotshieldcover(param_00,param_01)
{
var_02 = spawn("script_model",param_00);
var_02.targetname = "riotshield_mp";
var_02.angles = param_01;
var_03 = undefined;
var_04 = self getcurrentprimaryweapon();
if(weaponisriotshield(var_04))
{
var_03 = getweaponmodel(var_04);
}
if(!isdefined(var_03))
{
var_03 = "npc_deployable_riot_shield_base";
}
var_02 setmodel(var_03);
var_02.owner = self;
var_02.team = self.team;
return var_02;
}
//Function Number: 28
spawnriotshieldcollision(param_00,param_01,param_02)
{
var_03 = spawn("script_model",param_00,1);
var_03.targetname = "riotshield_coll_mp";
var_03.angles = param_01;
var_03 setmodel("tag_origin");
var_03.owner = self;
var_03.team = self.team;
var_03 clonebrushmodeltoscriptmodel(level.riot_shield_collision);
var_03 disconnectpaths();
var_03 sethighjumpresetallowed(0);
return var_03;
}
//Function Number: 29
watchdeployedriotshieldents()
{
self waittill("destroy_riotshield");
if(isdefined(self.riotshieldretrievetrigger))
{
self.riotshieldretrievetrigger delete();
}
if(isdefined(self.riotshieldcollisionentity))
{
self.riotshieldcollisionentity connectpaths();
self.riotshieldcollisionentity delete();
}
if(isdefined(self.riotshieldentity))
{
self.riotshieldentity delete();
}
}
//Function Number: 30
deleteshieldontriggerpickup(param_00,param_01)
{
level endon("game_ended");
param_00 endon("death");
param_00 waittill("trigger",var_02);
handlepickupdeployedriotshields(var_02,param_01);
self notify("destroy_riotshield");
}
//Function Number: 31
deleteshieldontriggerdeath(param_00)
{
level endon("game_ended");
param_00 waittill("death");
self notify("destroy_riotshield");
}
//Function Number: 32
deleteshieldonplayerdeathordisconnect(param_00)
{
param_00 endon("death");
param_00 endon("damageThenDestroyRiotshield");
common_scripts\utility::waittill_any("death","disconnect","remove_planted_weapons");
param_00 thread damagethendestroyriotshield();
}
//Function Number: 33
deleteshieldongrounddelete(param_00)
{
level endon("game_ended");
param_00 common_scripts\utility::waittill_any("death","hidingLightingState");
self notify("destroy_riotshield");
}
//Function Number: 34
watchdeployedriotshielddamage()
{
self endon("death");
var_00 = getdvarint("riotshield_deployed_health");
self.damagetaken = 0;
var_01 = 0;
for(;;)
{
self.maxhealth = 100000;
self.health = self.maxhealth;
self waittill("damage",var_02,var_03,var_04,var_05,var_06,var_07,var_08,var_09,var_0A,var_0B);
if(!isdefined(var_03))
{
continue;
}
if(isplayer(var_03))
{
if(level.teambased && var_03.team == self.owner.team && var_03 != self.owner)
{
continue;
}
}
var_0C = 0;
var_0D = 0;
if(maps\mp\_utility::ismeleemod(var_06))
{
var_0C = 1;
var_02 = var_02 * getdvarfloat("riotshield_melee_damage_scale");
}
else if(var_06 == "MOD_PISTOL_BULLET" || var_06 == "MOD_RIFLE_BULLET")
{
var_0D = 1;
var_02 = var_02 * getdvarfloat("riotshield_bullet_damage_scale");
}
else if(var_06 == "MOD_GRENADE" || var_06 == "MOD_GRENADE_SPLASH" || var_06 == "MOD_EXPLOSIVE" || var_06 == "MOD_EXPLOSIVE_SPLASH" || var_06 == "MOD_PROJECTILE" || var_06 == "MOD_PROJECTILE_SPLASH")
{
var_02 = var_02 * getdvarfloat("riotshield_explosive_damage_scale");
}
else if(var_06 == "MOD_IMPACT")
{
var_02 = var_02 * getdvarfloat("riotshield_projectile_damage_scale");
}
else if(var_06 == "MOD_CRUSH")
{
var_02 = var_00;
}
self.damagetaken = self.damagetaken + var_02;
if(self.damagetaken >= var_00)
{
thread damagethendestroyriotshield(var_03,var_0B);
break;
}
else if((var_0C || var_0D) && gettime() >= var_01)
{
var_01 = gettime() + 500;
var_0E = 0;
var_0F = anglestoforward(self.angles);
if(vectordot(var_04,var_0F) > 0)
{
var_0E = 1;
}
if(var_0C)
{
if(var_0E)
{
self scriptmodelplayanimdeltamotion("npc_deployable_riotshield_stand_melee_back");
}
else
{
self scriptmodelplayanimdeltamotion("npc_deployable_riotshield_stand_melee_front");
}
}
else if(var_0E)
{
self scriptmodelplayanimdeltamotion("npc_deployable_riotshield_stand_shot_back");
}
else
{
self scriptmodelplayanimdeltamotion("npc_deployable_riotshield_stand_shot");
}
}
}
}
//Function Number: 35
damagethendestroyriotshield(param_00,param_01)
{
self notify("damageThenDestroyRiotshield");
self endon("death");
if(isdefined(self.owner.riotshieldretrievetrigger))
{
self.owner.riotshieldretrievetrigger delete();
}
if(isdefined(self.owner.riotshieldcollisionentity))
{
self.owner.riotshieldcollisionentity connectpaths();
self.owner.riotshieldcollisionentity delete();
}
self.owner.riotshieldentity = undefined;
self notsolid();
self scriptmodelplayanimdeltamotion("npc_deployable_riotshield_stand_destroyed");
wait(getdvarfloat("riotshield_destroyed_cleanup_time"));
self delete();
}
//Function Number: 36
watchriotshieldstuckentitydeath(param_00,param_01)
{
param_00 endon("death");
common_scripts\utility::waittill_any("damageThenDestroyRiotshield","death","disconnect","weapon_change","deploy_riotshield");
param_00 detonate(param_01);
}

View File

@ -0,0 +1,199 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_scoreboard.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 3
* Decompile Time: 47 ms
* Timestamp: 10/27/2023 1:49:17 AM
*******************************************************************/
//Function Number: 1
processlobbyscoreboards()
{
foreach(var_01 in level.placement["all"])
{
var_01 setplayerscoreboardinfo();
}
if(level.multiteambased)
{
buildscoreboardtype("multiteam");
foreach(var_01 in level.players)
{
var_01 setcommonplayerdata("round","scoreboardType","multiteam");
}
setclientmatchdata("alliesScore",-1);
setclientmatchdata("axisScore",-1);
}
else if(level.teambased)
{
var_05 = getteamscore("allies");
var_06 = getteamscore("axis");
if(var_05 == var_06)
{
var_07 = "tied";
}
else if(var_06 > var_07)
{
var_07 = "allies";
}
else
{
var_07 = "axis";
}
setclientmatchdata("alliesScore",var_05);
setclientmatchdata("axisScore",var_06);
if(var_07 == "tied")
{
buildscoreboardtype("allies");
buildscoreboardtype("axis");
foreach(var_01 in level.players)
{
var_09 = var_01.pers["team"];
if(!isdefined(var_09))
{
continue;
}
if(var_09 == "spectator")
{
var_01 setcommonplayerdata("round","scoreboardType","allies");
continue;
}
var_01 setcommonplayerdata("round","scoreboardType",var_09);
}
}
else
{
buildscoreboardtype(var_07);
foreach(var_01 in level.players)
{
var_01 setcommonplayerdata("round","scoreboardType",var_07);
}
}
}
else
{
buildscoreboardtype("neutral");
foreach(var_01 in level.players)
{
var_01 setcommonplayerdata("round","scoreboardType","neutral");
}
setclientmatchdata("alliesScore",-1);
setclientmatchdata("axisScore",-1);
}
foreach(var_01 in level.players)
{
var_10 = 0;
if(!var_01 maps\mp\_utility::rankingenabled() || maps\mp\_utility::practiceroundgame())
{
var_10 = var_01.pers["summary"]["xp"];
}
else
{
var_10 = var_01 gettotalmpxp() - var_01.pers["summary"]["matchStartXp"];
}
var_01 setcommonplayerdata("round","totalXp",var_10);
var_01 setcommonplayerdata("round","scoreXp",var_01.pers["summary"]["score"]);
var_01 setcommonplayerdata("round","challengeXp",var_01.pers["summary"]["challenge"]);
var_01 setcommonplayerdata("round","matchXp",var_01.pers["summary"]["match"]);
var_01 setcommonplayerdata("round","miscXp",var_01.pers["summary"]["misc"]);
var_01 setcommonplayerdata("round","entitlementXp",var_01.pers["summary"]["entitlementXP"]);
var_01 setcommonplayerdata("round","clanWarsXp",var_01.pers["summary"]["clanWarsXP"]);
}
}
//Function Number: 2
setplayerscoreboardinfo()
{
var_00 = getclientmatchdata("scoreboardPlayerCount");
if(var_00 <= 24)
{
setclientmatchdata("players",self.clientmatchdataid,"score",self.pers["score"]);
var_01 = self.pers["kills"];
setclientmatchdata("players",self.clientmatchdataid,"kills",var_01);
if(level.gametype == "ctf" || level.gametype == "sr" || level.gametype == "gun")
{
var_02 = self.assists;
}
else
{
var_02 = self.pers["assists"];
}
setclientmatchdata("players",self.clientmatchdataid,"assists",var_02);
var_03 = self.pers["deaths"];
setclientmatchdata("players",self.clientmatchdataid,"deaths",var_03);
var_04 = self.pers["headshots"];
setclientmatchdata("players",self.clientmatchdataid,"headshots",var_04);
var_05 = self.pers["team"];
setclientmatchdata("players",self.clientmatchdataid,"team",var_05);
var_06 = game[self.pers["team"]];
setclientmatchdata("players",self.clientmatchdataid,"faction",var_06);
var_07 = self.pers["extrascore0"];
setclientmatchdata("players",self.clientmatchdataid,"extrascore0",var_07);
var_08 = self.pers["extrascore1"];
setclientmatchdata("players",self.clientmatchdataid,"extrascore1",var_08);
var_09 = 0;
if(isdefined(self.pers["division"]) && isdefined(self.pers["division"]["index"]))
{
var_09 = self.pers["division"]["index"];
}
setclientmatchdata("players",self.clientmatchdataid,"division",var_09);
var_00++;
setclientmatchdata("scoreboardPlayerCount",var_00);
}
}
//Function Number: 3
buildscoreboardtype(param_00)
{
if(param_00 == "multiteam")
{
var_01 = 0;
foreach(var_03 in level.teamnamelist)
{
foreach(var_05 in level.placement[var_03])
{
setclientmatchdata("scoreboards","multiteam",var_01,var_05.clientmatchdataid);
var_01++;
}
}
return;
}
if(var_05 == "neutral")
{
var_01 = 0;
foreach(var_05 in level.placement["all"])
{
setclientmatchdata("scoreboards",param_00,var_01,var_05.clientmatchdataid);
var_01++;
}
return;
}
var_0A = maps\mp\_utility::getotherteam(var_05);
var_01 = 0;
foreach(var_05 in level.placement[param_00])
{
setclientmatchdata("scoreboards",param_00,var_01,var_05.clientmatchdataid);
var_01++;
}
foreach(var_05 in level.placement[var_0A])
{
setclientmatchdata("scoreboards",param_00,var_01,var_05.clientmatchdataid);
var_01++;
}
}

View File

@ -0,0 +1,191 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_shutter.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 5
* Decompile Time: 82 ms
* Timestamp: 10/27/2023 1:49:18 AM
*******************************************************************/
//Function Number: 1
main()
{
level.inc = 0;
common_scripts\utility::array_levelthread(getentarray("wire","targetname"),::wirewander);
var_00 = getentarray("shutter_left","targetname");
var_01 = getentarray("shutter_right_open","targetname");
for(var_02 = 0;var_02 < var_01.size;var_02++)
{
var_00[var_00.size] = var_01[var_02];
}
var_01 = getentarray("shutter_left_closed","targetname");
for(var_02 = 0;var_02 < var_01.size;var_02++)
{
var_00[var_00.size] = var_01[var_02];
}
for(var_02 = 0;var_02 < var_00.size;var_02++)
{
var_03 = var_00[var_02];
var_03 rotateto((var_03.angles[0],var_03.angles[1] + 180,var_03.angles[2]),0.1);
}
wait(0.2);
for(var_02 = 0;var_02 < var_00.size;var_02++)
{
var_00[var_02].startyaw = var_00[var_02].angles[1];
}
var_04 = getentarray("shutter_right","targetname");
var_01 = getentarray("shutter_left_open","targetname");
for(var_02 = 0;var_02 < var_01.size;var_02++)
{
var_04[var_04.size] = var_01[var_02];
}
var_01 = getentarray("shutter_right_closed","targetname");
for(var_02 = 0;var_02 < var_01.size;var_02++)
{
var_04[var_04.size] = var_01[var_02];
}
for(var_02 = 0;var_02 < var_04.size;var_02++)
{
var_04[var_02].startyaw = var_04[var_02].angles[1];
}
var_01 = undefined;
var_05 = "left";
for(;;)
{
common_scripts\utility::array_levelthread(var_00,::shutterwanderleft,var_05);
common_scripts\utility::array_levelthread(var_04,::shutterwanderright,var_05);
level waittill("wind blows",var_05);
}
}
//Function Number: 2
windcontroller()
{
for(;;)
{
var_00 = "left";
if(randomint(100) > 50)
{
var_00 = "right";
}
level notify("wind blows",var_00);
wait(2 + randomfloat(10));
}
}
//Function Number: 3
shutterwanderleft(param_00,param_01)
{
level.inc++;
level endon("wind blows");
var_02 = param_00.startyaw;
if(param_01 == "left")
{
var_02 = var_02 + 179.9;
}
var_03 = 0.2;
param_00 rotateto((param_00.angles[0],var_02,param_00.angles[2]),var_03);
wait(var_03 + 0.1);
for(;;)
{
var_04 = randomint(80);
if(randomint(100) > 50)
{
var_04 = var_04 * -1;
}
var_02 = param_00.angles[1] + var_04;
var_05 = param_00.angles[1] + var_04 * -1;
if(var_02 < param_00.startyaw || var_02 > param_00.startyaw + 179)
{
var_02 = var_05;
}
var_06 = abs(param_00.angles[1] - var_02);
var_03 = var_06 * 0.02 + randomfloat(2);
if(var_03 < 0.3)
{
var_03 = 0.3;
}
param_00 rotateto((param_00.angles[0],var_02,param_00.angles[2]),var_03,var_03 * 0.5,var_03 * 0.5);
wait(var_03);
}
}
//Function Number: 4
shutterwanderright(param_00,param_01)
{
level.inc++;
level endon("wind blows");
var_02 = param_00.startyaw;
if(param_01 == "left")
{
var_02 = var_02 + 179.9;
}
var_03 = 0.2;
param_00 rotateto((param_00.angles[0],var_02,param_00.angles[2]),var_03);
wait(var_03 + 0.1);
for(;;)
{
var_04 = randomint(80);
if(randomint(100) > 50)
{
var_04 = var_04 * -1;
}
var_02 = param_00.angles[1] + var_04;
var_05 = param_00.angles[1] + var_04 * -1;
if(var_02 < param_00.startyaw || var_02 > param_00.startyaw + 179)
{
var_02 = var_05;
}
var_06 = abs(param_00.angles[1] - var_02);
var_03 = var_06 * 0.02 + randomfloat(2);
if(var_03 < 0.3)
{
var_03 = 0.3;
}
param_00 rotateto((param_00.angles[0],var_02,param_00.angles[2]),var_03,var_03 * 0.5,var_03 * 0.5);
wait(var_03);
}
}
//Function Number: 5
wirewander(param_00)
{
var_01 = getentarray(param_00.target,"targetname");
var_02 = var_01[0].origin;
var_03 = var_01[1].origin;
var_04 = vectortoangles(var_02 - var_03);
var_05 = spawn("script_model",(0,0,0));
var_05.origin = var_02 * 0.5 + var_03 * 0.5;
var_05.angles = var_04;
param_00 linkto(var_05);
var_06 = 2;
var_07 = 0.9;
var_08 = 4 + randomfloat(2);
var_05 rotateroll(var_08 * 0.5,0.2);
wait(0.2);
for(;;)
{
var_09 = var_06 + randomfloat(var_07) - var_07 * 0.5;
var_05 rotateroll(var_08,var_09,var_09 * 0.5,var_09 * 0.5);
wait(var_09);
var_05 rotateroll(var_08 * -1,var_09,var_09 * 0.5,var_09 * 0.5);
wait(var_09);
}
}

View File

@ -0,0 +1,291 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_snd_common_mp.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 30
* Decompile Time: 473 ms
* Timestamp: 10/27/2023 1:49:19 AM
*******************************************************************/
//Function Number: 1
init()
{
snd_message_init();
register_common_mp_snd_messages();
thread snd_mp_mix_init();
}
//Function Number: 2
snd_mp_mix_init()
{
level._snd.dynamic_event_happened = 0;
if(isdefined(level.players) && level.players.size > 0)
{
foreach(var_01 in level.players)
{
var_01 clientaddsoundsubmix("mp_init_mix");
wait(0.05);
var_01 clientaddsoundsubmix("mp_pre_event_mix");
wait(0.05);
}
}
}
//Function Number: 3
snd_mp_mix_post_event()
{
level._snd.dynamic_event_happened = 1;
if(isdefined(level.players) && level.players.size > 0)
{
foreach(var_01 in level.players)
{
var_01 clientclearsoundsubmix("mp_pre_event_mix");
wait(0.05);
var_01 clientaddsoundsubmix("mp_post_event_mix");
wait(0.05);
}
}
}
//Function Number: 4
snd_mp_player_join()
{
self clientaddsoundsubmix("mp_init_mix");
if(!isdefined(level._snd.dynamic_event_happened) || !level._snd.dynamic_event_happened)
{
self clientaddsoundsubmix("mp_pre_event_mix");
return;
}
self clientclearsoundsubmix("mp_pre_event_mix");
self clientaddsoundsubmix("mp_post_event_mix");
}
//Function Number: 5
snd_message_init()
{
if(!isdefined(level._snd))
{
level._snd = spawnstruct();
}
if(!isdefined(level._snd.messages))
{
level._snd.messages = [];
}
}
//Function Number: 6
snd_register_message(param_00,param_01)
{
level._snd.messages[param_00] = param_01;
}
//Function Number: 7
snd_music_message(param_00,param_01,param_02)
{
level notify("stop_other_music");
level endon("stop_other_music");
if(isdefined(param_02))
{
childthread snd_message("snd_music_handler",param_00,param_01,param_02);
return;
}
if(isdefined(param_01))
{
childthread snd_message("snd_music_handler",param_00,param_01);
return;
}
childthread snd_message("snd_music_handler",param_00);
}
//Function Number: 8
snd_message(param_00,param_01,param_02,param_03)
{
if(isdefined(level._snd.messages[param_00]))
{
if(isdefined(param_03))
{
thread [[ level._snd.messages[param_00] ]](param_01,param_02,param_03);
return;
}
if(isdefined(param_02))
{
thread [[ level._snd.messages[param_00] ]](param_01,param_02);
return;
}
if(isdefined(param_01))
{
thread [[ level._snd.messages[param_00] ]](param_01);
return;
}
thread [[ level._snd.messages[param_00] ]]();
return;
}
}
//Function Number: 9
register_common_mp_snd_messages()
{
snd_register_message("mp_exo_cloak_activate",::mp_exo_cloak_activate);
snd_register_message("mp_exo_cloak_deactivate",::mp_exo_cloak_deactivate);
snd_register_message("mp_exo_health_activate",::mp_exo_health_activate);
snd_register_message("mp_exo_health_deactivate",::mp_exo_health_deactivate);
snd_register_message("mp_regular_exo_hover",::mp_regular_exo_hover);
snd_register_message("mp_suppressed_exo_hover",::mp_suppressed_exo_hover);
snd_register_message("mp_exo_mute_activate",::mp_exo_mute_activate);
snd_register_message("mp_exo_mute_deactivate",::mp_exo_mute_deactivate);
snd_register_message("mp_exo_overclock_activate",::mp_exo_overclock_activate);
snd_register_message("mp_exo_overclock_deactivate",::mp_exo_overclock_deactivate);
snd_register_message("mp_exo_ping_activate",::mp_exo_ping_activate);
snd_register_message("mp_exo_ping_deactivate",::mp_exo_ping_deactivate);
snd_register_message("mp_exo_repulsor_activate",::mp_exo_repulsor_activate);
snd_register_message("mp_exo_repulsor_deactivate",::mp_exo_repulsor_deactivate);
snd_register_message("mp_exo_repulsor_repel",::mp_exo_repulsor_repel);
snd_register_message("mp_exo_shield_activate",::mp_exo_shield_activate);
snd_register_message("mp_exo_shield_deactivate",::mp_exo_shield_deactivate);
snd_register_message("goliath_pod_burst",::mp_ks_goliath_pod_burst);
snd_register_message("goliath_death_explosion",::mp_ks_goliath_death_explosion);
snd_register_message("goliath_self_destruct",::mp_ks_goliath_self_destruct);
snd_register_message("exo_knife_player_impact",::mp_wpn_exo_knife_player_impact);
}
//Function Number: 10
mp_exo_cloak_activate()
{
self playsound("mp_exo_cloak_activate");
}
//Function Number: 11
mp_exo_cloak_deactivate()
{
self playsound("mp_exo_cloak_deactivate");
}
//Function Number: 12
mp_exo_health_activate()
{
self playsound("mp_exo_stim_activate");
}
//Function Number: 13
mp_exo_health_deactivate()
{
self playsound("mp_exo_stim_deactivate");
}
//Function Number: 14
mp_regular_exo_hover()
{
self playlocalsound("mp_exo_hover_activate");
self playlocalsound("mp_exo_hover_fuel");
self waittill("stop_exo_hover_effects");
self playlocalsound("mp_exo_hover_deactivate");
self stoplocalsound("mp_exo_hover_sup_fuel");
}
//Function Number: 15
mp_suppressed_exo_hover()
{
self playlocalsound("mp_exo_hover_sup_activate");
self playlocalsound("mp_exo_hover_sup_fuel");
self waittill("stop_exo_hover_effects");
self playlocalsound("mp_exo_hover_sup_deactivate");
self stoplocalsound("mp_exo_hover_sup_fuel");
}
//Function Number: 16
mp_exo_mute_activate()
{
self playlocalsound("mp_exo_mute_activate");
}
//Function Number: 17
mp_exo_mute_deactivate()
{
self playlocalsound("mp_exo_mute_deactivate");
}
//Function Number: 18
mp_exo_overclock_activate()
{
self playsound("mp_exo_overclock_activate");
}
//Function Number: 19
mp_exo_overclock_deactivate()
{
self playsound("mp_exo_overclock_deactivate");
}
//Function Number: 20
mp_exo_ping_activate()
{
self playlocalsound("mp_exo_ping_activate");
}
//Function Number: 21
mp_exo_ping_deactivate()
{
self playsound("mp_exo_ping_deactivate");
}
//Function Number: 22
mp_exo_repulsor_activate()
{
self playsound("mp_exo_trophy_activate");
}
//Function Number: 23
mp_exo_repulsor_deactivate()
{
self playsound("mp_exo_trophy_deactivate");
}
//Function Number: 24
mp_exo_repulsor_repel()
{
playsoundatpos(self.origin,"mp_exo_trophy_intercept");
}
//Function Number: 25
mp_exo_shield_activate()
{
self playsound("mp_exo_shield_activate");
}
//Function Number: 26
mp_exo_shield_deactivate()
{
self playsound("mp_exo_shield_deactivate");
}
//Function Number: 27
mp_wpn_exo_knife_player_impact()
{
playsoundatpos(self.origin,"wpn_combatknife_stab_npc");
}
//Function Number: 28
mp_ks_goliath_pod_burst()
{
self playlocalsound("goliath_suit_up_pod_burst");
}
//Function Number: 29
mp_ks_goliath_death_explosion()
{
self playsound("goliath_death_destruct");
}
//Function Number: 30
mp_ks_goliath_self_destruct()
{
self playsound("goliath_death_destruct");
}

View File

@ -0,0 +1,473 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_stinger.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 11
* Decompile Time: 182 ms
* Timestamp: 10/27/2023 1:49:20 AM
*******************************************************************/
//Function Number: 1
initstingerusage()
{
self.stingerstage = undefined;
self.stingertarget = undefined;
self.stingerlockstarttime = undefined;
self.stingerlostsightlinetime = undefined;
thread resetstingerlockingondeath();
}
//Function Number: 2
resetstingerlocking()
{
if(!isdefined(self.stingeruseentered))
{
return;
}
self.stingeruseentered = undefined;
self notify("stop_javelin_locking_feedback");
self notify("stop_javelin_locked_feedback");
self weaponlockfree();
initstingerusage();
}
//Function Number: 3
resetstingerlockingondeath()
{
self endon("disconnect");
self notify("ResetStingerLockingOnDeath");
self endon("ResetStingerLockingOnDeath");
for(;;)
{
self waittill("death");
resetstingerlocking();
}
}
//Function Number: 4
stillvalidstingerlock(param_00)
{
if(!isdefined(param_00))
{
return 0;
}
if(!self worldpointinreticle_circle(param_00.origin,65,85))
{
return 0;
}
if(isdefined(level.ac130) && self.stingertarget == level.ac130.planemodel && !isdefined(level.ac130player))
{
return 0;
}
if(isdefined(level.orbitalsupport_planemodel) && self.stingertarget == level.orbitalsupport_planemodel && !isdefined(level.orbitalsupport_player))
{
return 0;
}
return 1;
}
//Function Number: 5
loopstingerlockingfeedback()
{
self endon("faux_spawn");
self endon("stop_javelin_locking_feedback");
for(;;)
{
if(isdefined(level.chopper) && isdefined(level.chopper.gunner) && isdefined(self.stingertarget) && self.stingertarget == level.chopper.gunner)
{
level.chopper.gunner playlocalsound("missile_locking");
}
if(isdefined(level.ac130player) && isdefined(self.stingertarget) && self.stingertarget == level.ac130.planemodel)
{
level.ac130player playlocalsound("missile_locking");
}
self playlocalsound("stinger_locking");
self playrumbleonentity("ac130_25mm_fire");
wait(0.6);
}
}
//Function Number: 6
loopstingerlockedfeedback()
{
self endon("faux_spawn");
self endon("stop_javelin_locked_feedback");
for(;;)
{
if(isdefined(level.chopper) && isdefined(level.chopper.gunner) && isdefined(self.stingertarget) && self.stingertarget == level.chopper.gunner)
{
level.chopper.gunner playlocalsound("missile_locking");
}
if(isdefined(level.ac130player) && isdefined(self.stingertarget) && self.stingertarget == level.ac130.planemodel)
{
level.ac130player playlocalsound("missile_locking");
}
self playlocalsound("stinger_locked");
self playrumbleonentity("ac130_25mm_fire");
wait(0.25);
}
}
//Function Number: 7
locksighttest(param_00)
{
var_01 = self geteye();
if(!isdefined(param_00))
{
return 0;
}
var_02 = sighttracepassed(var_01,param_00.origin,0,param_00);
if(var_02)
{
return 1;
}
var_03 = param_00 getpointinbounds(1,0,0);
var_02 = sighttracepassed(var_01,var_03,0,param_00);
if(var_02)
{
return 1;
}
var_04 = param_00 getpointinbounds(-1,0,0);
var_02 = sighttracepassed(var_01,var_04,0,param_00);
if(var_02)
{
return 1;
}
return 0;
}
//Function Number: 8
stingerdebugdraw(param_00)
{
}
//Function Number: 9
softsighttest()
{
var_00 = 500;
if(locksighttest(self.stingertarget))
{
self.stingerlostsightlinetime = 0;
return 1;
}
if(self.stingerlostsightlinetime == 0)
{
self.stingerlostsightlinetime = gettime();
}
var_01 = gettime() - self.stingerlostsightlinetime;
if(var_01 >= var_00)
{
resetstingerlocking();
return 0;
}
return 1;
}
//Function Number: 10
gettargetlist()
{
var_00 = [];
if(maps\mp\_utility::invirtuallobby())
{
return var_00;
}
if(level.teambased)
{
if(isdefined(level.chopper) && level.chopper.team != self.team || isdefined(level.chopper.owner) && level.chopper.owner == self)
{
var_00[var_00.size] = level.chopper;
}
if(isdefined(level.ac130player) && level.ac130player.team != self.team)
{
var_00[var_00.size] = level.ac130.planemodel;
}
if(isdefined(level.orbitalsupport_player) && level.orbitalsupport_player.team != self.team)
{
var_00[var_00.size] = level.orbitalsupport_planemodel;
}
if(isdefined(level.spawnedwarbirds))
{
foreach(var_02 in level.spawnedwarbirds)
{
if(isdefined(var_02) && var_02.team != self.team)
{
var_00[var_00.size] = var_02;
}
}
}
if(isdefined(level.harriers))
{
foreach(var_05 in level.harriers)
{
if(isdefined(var_05) && var_05.team != self.team || isdefined(var_05.owner) && var_05.owner == self)
{
var_00[var_00.size] = var_05;
}
}
}
if(level.multiteambased)
{
for(var_07 = 0;var_07 < level.teamnamelist.size;var_07++)
{
if(self.team != level.teamnamelist[var_07])
{
if(level.uavmodels[level.teamnamelist[var_07]].size)
{
foreach(var_09 in level.uavmodels[level.teamnamelist[var_07]])
{
var_00[var_00.size] = var_09;
}
}
}
}
}
else if(level.uavmodels[level.otherteam[self.team]].size)
{
foreach(var_09 in level.uavmodels[level.otherteam[self.team]])
{
var_00[var_00.size] = var_09;
}
}
if(isdefined(level.littlebirds))
{
foreach(var_0E in level.littlebirds)
{
if(isdefined(var_0E) && var_0E.team != self.team || isdefined(var_0E.owner) && var_0E.owner == self)
{
var_00[var_00.size] = var_0E;
}
}
}
if(isdefined(level.ugvs))
{
foreach(var_11 in level.ugvs)
{
if(isdefined(var_11) && var_11.team != self.team || isdefined(var_11.owner) && var_11.owner == self)
{
var_00[var_00.size] = var_11;
}
}
}
}
else
{
if(isdefined(level.chopper))
{
var_00[var_00.size] = level.chopper;
}
if(isdefined(level.ac130player))
{
var_00[var_00.size] = level.ac130.planemodel;
}
if(isdefined(level.harriers))
{
foreach(var_05 in level.harriers)
{
if(isdefined(var_05))
{
var_00[var_00.size] = var_05;
}
}
}
if(level.uavmodels.size)
{
foreach(var_09 in level.uavmodels)
{
if(isdefined(var_09.owner) && var_09.owner == self)
{
continue;
}
var_00[var_00.size] = var_09;
}
}
if(isdefined(level.littlebirds))
{
foreach(var_0E in level.littlebirds)
{
if(!isdefined(var_0E))
{
continue;
}
var_00[var_00.size] = var_0E;
}
}
if(isdefined(level.ugvs))
{
foreach(var_11 in level.ugvs)
{
if(!isdefined(var_11))
{
continue;
}
var_00[var_00.size] = var_11;
}
}
}
return var_00;
}
//Function Number: 11
stingerusageloop()
{
if(!isplayer(self))
{
return;
}
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
var_00 = 1000;
initstingerusage();
for(;;)
{
wait(0.05);
if(self playerads() < 0.95)
{
resetstingerlocking();
continue;
}
var_01 = self getcurrentweapon();
if(issubstr(var_01,"stingerm7"))
{
continue;
}
if(var_01 != "stinger_mp" && var_01 != "iw5_maaws_mp")
{
resetstingerlocking();
continue;
}
self.stingeruseentered = 1;
if(!isdefined(self.stingerstage))
{
self.stingerstage = 0;
}
stingerdebugdraw(self.stingertarget);
if(self.stingerstage == 0)
{
var_02 = gettargetlist();
if(var_02.size == 0)
{
continue;
}
var_03 = [];
foreach(var_05 in var_02)
{
if(!isdefined(var_05))
{
continue;
}
var_06 = self worldpointinreticle_circle(var_05.origin,65,75);
if(var_06)
{
var_03[var_03.size] = var_05;
}
}
if(var_03.size == 0)
{
continue;
}
var_08 = sortbydistance(var_03,self.origin);
if(!locksighttest(var_08[0]))
{
continue;
}
thread loopstingerlockingfeedback();
self.stingertarget = var_08[0];
self.stingerlockstarttime = gettime();
self.stingerstage = 1;
self.stingerlostsightlinetime = 0;
}
if(self.stingerstage == 1)
{
if(!stillvalidstingerlock(self.stingertarget))
{
resetstingerlocking();
continue;
}
var_09 = softsighttest();
if(!var_09)
{
continue;
}
var_0A = gettime() - self.stingerlockstarttime;
if(maps\mp\_utility::_hasperk("specialty_fasterlockon"))
{
if(var_0A < var_00 * 0.5)
{
continue;
}
}
else if(var_0A < var_00)
{
continue;
}
self notify("stop_javelin_locking_feedback");
thread loopstingerlockedfeedback();
self weaponlockfinalize(self.stingertarget);
self.stingerstage = 2;
}
if(self.stingerstage == 2)
{
var_09 = softsighttest();
if(!var_09)
{
continue;
}
if(!stillvalidstingerlock(self.stingertarget))
{
resetstingerlocking();
continue;
}
}
}
}

View File

@ -0,0 +1,493 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_stingerm7.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 15
* Decompile Time: 228 ms
* Timestamp: 10/27/2023 1:49:21 AM
*******************************************************************/
//Function Number: 1
stingerm7_think()
{
thread stingerm7_targeting();
thread stingerm7_monitor_fire();
}
//Function Number: 2
stingerm7_targeting()
{
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
self endon("joined_team");
self.stingerm7_info = spawnstruct();
self.stingerm7_info.locked_targets = [];
self.stingerm7_info.locking_time = 0;
var_00 = 0;
for(;;)
{
var_01 = self getcurrentweapon();
var_02 = 0;
if(issubstr(var_01,"stingerm7"))
{
var_02 = 1;
}
else if(issubstr(var_01,"dlcgun11loot2"))
{
var_02 = 1;
}
if(var_02 && self playerads() > 0.99)
{
var_00 = 1;
if(self.stingerm7_info.locked_targets.size > 0)
{
remove_invalid_locks();
}
self.stingerm7_info.locked_targets = array_remove_dead(common_scripts\utility::array_removeundefined(self.stingerm7_info.locked_targets));
if(isdefined(self.stingerm7_info.locking_target))
{
if(!locking_target_still_valid(self.stingerm7_info.locking_target))
{
self.stingerm7_info.locking_target = undefined;
self notify("stop_javelin_locking_feedback");
}
}
if(isdefined(self.stingerm7_info.locking_target))
{
self.stingerm7_info.locking_time = self.stingerm7_info.locking_time + 0.05;
}
else
{
self.stingerm7_info.locking_time = 0;
if(self.stingerm7_info.locked_targets.size < 4)
{
self.stingerm7_info.locking_target = get_best_locking_target();
if(isdefined(self.stingerm7_info.locking_target))
{
thread locking_feedback();
}
}
}
if(self.stingerm7_info.locking_time >= 1 && isdefined(self.stingerm7_info.locking_target) && self.stingerm7_info.locked_targets.size < 4)
{
self notify("stop_javelin_locking_feedback");
self.stingerm7_info.locked_targets[self.stingerm7_info.locked_targets.size] = self.stingerm7_info.locking_target;
thread locked_feedback();
self.stingerm7_info.locking_target = undefined;
}
if(self.stingerm7_info.locked_targets.size > 0)
{
self weaponlockfinalize(self.stingerm7_info.locked_targets[0]);
}
else
{
self weaponlockfree();
self notify("stop_javelin_locked_feedback");
}
}
else if(var_00 == 1)
{
var_00 = 0;
self weaponlockfree();
self notify("stop_javelin_locking_feedback");
self notify("stop_javelin_locked_feedback");
self.stingerm7_info.locked_targets = [];
if(isdefined(self.stingerm7_info.locking_target))
{
self.stingerm7_info.locking_target = undefined;
}
self.stingerm7_info.locking_time = 0;
}
wait(0.05);
}
}
//Function Number: 3
stingerm7_monitor_fire()
{
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
self endon("joined_team");
for(;;)
{
self waittill("missile_fire",var_00,var_01);
if(issubstr(var_01,"stingerm7") || issubstr(var_01,"dlcgun11loot2"))
{
thread stinger_fire(self,var_00,var_01);
}
}
}
//Function Number: 4
stinger_fire(param_00,param_01,param_02)
{
var_03 = (0,0,0);
var_04 = (0,0,0);
if(isdefined(param_01))
{
var_03 = param_01.origin;
var_04 = param_01.angles;
param_01 delete();
}
else
{
return;
}
param_00.stingerm7_info.locked_targets = array_remove_dead(common_scripts\utility::array_removeundefined(self.stingerm7_info.locked_targets));
var_05 = [];
for(var_06 = 0;var_06 < 4;var_06++)
{
var_07 = var_04 + random_vector(20,20,20);
var_08 = anglestoforward(var_07);
var_09 = magicbullet(param_02,var_03,var_03 + var_08,param_00);
var_09.owner = param_00;
if(param_00.stingerm7_info.locked_targets.size > 0)
{
var_0A = undefined;
if(var_06 < param_00.stingerm7_info.locked_targets.size)
{
var_0A = param_00.stingerm7_info.locked_targets[var_06];
}
else
{
var_0A = param_00.stingerm7_info.locked_targets[randomint(param_00.stingerm7_info.locked_targets.size)];
}
var_09 missile_settargetent(var_0A,stingerm7_get_target_offset(var_0A));
var_09.lockedstingertarget = var_0A;
}
var_05[var_05.size] = var_09;
}
level notify("stinger_fired",param_00,var_05);
param_00 setweaponammoclip(param_02,0);
}
//Function Number: 5
anystingermissilelockedon(param_00,param_01)
{
foreach(var_03 in param_00)
{
if(isdefined(var_03.lockedstingertarget) && var_03.lockedstingertarget == param_01)
{
return 1;
}
}
return 0;
}
//Function Number: 6
get_best_locking_target()
{
var_00 = maps\mp\_utility::getotherteam(self.team);
var_01 = [];
foreach(var_03 in level.players)
{
if(level.teambased && var_03.team == self.team)
{
continue;
}
if(!maps\mp\_utility::isreallyalive(var_03))
{
continue;
}
var_01[var_01.size] = var_03;
}
var_05 = vehicle_getarray();
var_06 = [];
foreach(var_08 in var_05)
{
if(!isdefined(var_08.owner))
{
continue;
}
if(var_08 maps\mp\killstreaks\_aerial_utility::vehicleiscloaked())
{
continue;
}
if(level.teambased && var_08.owner.team == self.team)
{
continue;
}
var_06[var_06.size] = var_08;
}
if(isdefined(level.ishorde) && level.ishorde)
{
foreach(var_0B in level.agentarray)
{
if(level.teambased && var_0B.team == self.team)
{
continue;
}
if(!maps\mp\_utility::isreallyalive(var_0B))
{
continue;
}
var_01[var_01.size] = var_0B;
}
foreach(var_08 in var_05)
{
if(var_08 maps\mp\killstreaks\_aerial_utility::vehicleiscloaked())
{
continue;
}
if(level.teambased && var_08.team == self.team)
{
continue;
}
var_06[var_06.size] = var_08;
}
}
var_0F = maps\mp\killstreaks\_killstreaks::getaerialkillstreakarray(var_00);
var_10 = common_scripts\utility::array_combine(var_01,var_06);
var_10 = common_scripts\utility::array_combine(var_10,var_0F);
if(isdefined(level.stingerlockonentsfunc))
{
var_10 = common_scripts\utility::array_combine(var_10,[[ level.stingerlockonentsfunc ]](self));
}
var_11 = self geteye();
var_12 = anglestoforward(self getplayerangles());
var_13 = undefined;
var_14 = cos(5);
foreach(var_16 in var_10)
{
if(!common_scripts\utility::array_contains(self.stingerm7_info.locked_targets,var_16))
{
var_17 = stingerm7_get_target_pos(var_16);
var_18 = vectordot(vectornormalize(var_17 - var_11),var_12);
if(var_18 > var_14)
{
var_19 = undefined;
var_1A = !1;
if(!var_1A)
{
var_1B = bullettracepassed(var_11,var_17,0,var_16);
if(var_1B)
{
var_1A = 1;
}
}
if(var_1A)
{
var_13 = var_16;
var_14 = var_18;
}
}
}
}
return var_13;
}
//Function Number: 7
locking_target_still_valid(param_00)
{
var_01 = self geteye();
var_02 = anglestoforward(self getplayerangles());
var_03 = stingerm7_get_target_pos(param_00);
if((isplayer(param_00) || isbot(param_00) || isdefined(level.ishorde) && level.ishorde && isagent(param_00)) && !maps\mp\_utility::isreallyalive(param_00))
{
return 0;
}
if(vectordot(vectornormalize(var_03 - var_01),var_02) > cos(5))
{
if(!1 || bullettracepassed(var_01,var_03,0,param_00))
{
return 1;
}
}
return 0;
}
//Function Number: 8
remove_invalid_locks()
{
for(var_00 = 0;var_00 <= self.stingerm7_info.locked_targets.size;var_00++)
{
if(isdefined(self.stingerm7_info.locked_targets[var_00]) && isdefined(self.stingerm7_info.locked_targets[var_00].origin))
{
if(!isdefined(self.stingerm7_info.locked_targets[var_00].sight_lost_time))
{
self.stingerm7_info.locked_targets[var_00].sight_lost_time = -1;
}
var_01 = (0,0,0);
if(isplayer(self.stingerm7_info.locked_targets[var_00]) || isbot(self.stingerm7_info.locked_targets[var_00]))
{
var_01 = (0,0,64);
}
if(self worldpointinreticle_rect(self.stingerm7_info.locked_targets[var_00].origin + var_01,50,400,200))
{
if(bullettracepassed(self geteye(),self.stingerm7_info.locked_targets[var_00].origin + var_01,0,self.stingerm7_info.locked_targets[var_00]))
{
self.stingerm7_info.locked_targets[var_00].sight_lost_time = -1;
continue;
}
}
if(self.stingerm7_info.locked_targets[var_00].sight_lost_time == -1)
{
self.stingerm7_info.locked_targets[var_00].sight_lost_time = gettime();
continue;
}
if(gettime() - self.stingerm7_info.locked_targets[var_00].sight_lost_time >= 500)
{
self.stingerm7_info.locked_targets[var_00].sight_lost_time = -1;
self.stingerm7_info.locked_targets[var_00] = undefined;
}
}
}
}
//Function Number: 9
stingerm7_get_target_pos(param_00)
{
if(isdefined(param_00.getstingertargetposfunc))
{
return param_00 [[ param_00.getstingertargetposfunc ]]();
}
return param_00 getpointinbounds(0,0,0);
}
//Function Number: 10
stingerm7_get_target_offset(param_00)
{
return stingerm7_get_target_pos(param_00) - param_00.origin;
}
//Function Number: 11
locking_feedback()
{
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
self endon("joined_team");
self endon("stop_javelin_locking_feedback");
for(;;)
{
if(isdefined(level.spawnedwarbirds))
{
foreach(var_01 in level.spawnedwarbirds)
{
if(isdefined(var_01.owner) && isdefined(var_01.player) && isdefined(self.stingerm7_info.locking_target) && self.stingerm7_info.locking_target == var_01)
{
var_01.owner playlocalsound("wpn_stingerm7_enemy_locked");
}
}
}
if(isdefined(level.orbitalsupport_player) && isdefined(self.stingerm7_info.locking_target) && self.stingerm7_info.locking_target == level.orbitalsupport_planemodel)
{
level.orbitalsupport_player playlocalsound("wpn_stingerm7_enemy_locked");
}
self playlocalsound("wpn_stingerm7_locking");
self playrumbleonentity("heavygun_fire");
wait(0.6);
}
}
//Function Number: 12
locked_feedback()
{
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
self endon("joined_team");
self endon("stop_javelin_locked_feedback");
for(;;)
{
if(isdefined(level.spawnedwarbirds))
{
foreach(var_01 in level.spawnedwarbirds)
{
if(isdefined(var_01.owner) && isdefined(var_01.player) && isdefined(self.stingerm7_info.locked_targets) && isinarray(self.stingerm7_info.locked_targets,var_01))
{
var_01.owner playlocalsound("wpn_stingerm7_enemy_locked");
}
}
}
if(isdefined(level.orbitalsupport_player) && isdefined(self.stingerm7_info.locked_targets) && isinarray(self.stingerm7_info.locked_targets,level.orbitalsupport_planemodel))
{
level.orbitalsupport_player playlocalsound("wpn_stingerm7_enemy_locked");
}
self playlocalsound("wpn_stingerm7_locked");
self playrumbleonentity("heavygun_fire");
wait(0.25);
}
}
//Function Number: 13
array_remove_dead(param_00)
{
var_01 = [];
foreach(var_03 in param_00)
{
if(!isalive(var_03))
{
continue;
}
var_01[var_01.size] = var_03;
}
return var_01;
}
//Function Number: 14
random_vector(param_00,param_01,param_02)
{
return (randomfloat(param_00) - param_00 * 0.5,randomfloat(param_01) - param_01 * 0.5,randomfloat(param_02) - param_02 * 0.5);
}
//Function Number: 15
isinarray(param_00,param_01)
{
if(isdefined(param_00))
{
foreach(var_03 in param_00)
{
if(var_03 == param_01)
{
return 1;
}
}
}
return 0;
}

View File

@ -0,0 +1,38 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_stock.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 14 ms
* Timestamp: 10/27/2023 1:49:22 AM
*******************************************************************/
//Function Number: 1
stock_think()
{
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
self.has_stock = 0;
for(;;)
{
if(!self.has_stock)
{
if(self hasperk("specialty_stalker",1))
{
self unsetperk("specialty_stalker",1);
}
wait(0.05);
continue;
}
if(!self hasperk("specialty_stalker",1))
{
self setperk("specialty_stalker",1,0);
}
wait(0.05);
}
}

View File

@ -0,0 +1,53 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_target_enhancer.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 14 ms
* Timestamp: 10/27/2023 1:49:22 AM
*******************************************************************/
//Function Number: 1
target_enhancer_think()
{
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
var_00 = 10;
var_01 = cos(var_00);
var_02 = 0.5;
self.has_target_enhancer = 0;
for(;;)
{
while(self.has_target_enhancer && self playerads() < var_02)
{
wait(0.05);
}
if(!self.has_target_enhancer)
{
wait(0.05);
continue;
}
if(self isusingturret())
{
wait(0.05);
continue;
}
if(isdefined(self.empon) && self.empon)
{
wait 0.05;
continue;
}
if(isplayer(self))
{
childthread maps\mp\_threatdetection::detection_highlight_hud_effect(self,0.05,1);
}
wait(0.05);
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,936 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_threatdetection.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 38
* Decompile Time: 599 ms
* Timestamp: 10/27/2023 1:49:28 AM
*******************************************************************/
//Function Number: 1
init()
{
level._threatdetection = spawnstruct();
level._threatdetection.default_style = "stencil_outline";
level._threatdetection.activestyle = getdvar("threat_detection_highlight_style",level._threatdetection.default_style);
level thread onplayerconnect();
level thread watchagentspawn();
}
//Function Number: 2
changethreatstyle(param_00)
{
if(param_00 == level._threatdetection.activestyle)
{
return;
}
foreach(var_02 in level.players)
{
if(isdefined(var_02._threatdetection.mark_enemy_model))
{
var_02._threatdetection.mark_enemy_model delete();
}
if(isdefined(var_02._threatdetection.mark_friendly_model))
{
var_02._threatdetection.mark_friendly_model delete();
}
if(isdefined(var_02.mark_fx) && isdefined(var_02.mark_fx.fx_ent))
{
foreach(var_04 in var_02.mark_fx.fx_ent)
{
if(isdefined(var_04.enemymarker))
{
var_04.enemymarker delete();
}
if(isdefined(var_04.friendlymarker))
{
var_04.friendlymarker delete();
}
if(isdefined(var_04.enemylosmarker))
{
var_04.enemylosmarker delete();
}
if(isdefined(var_04.friendlylosmarker))
{
var_04.friendlylosmarker delete();
}
}
}
}
foreach(var_02 in level.players)
{
var_02 threat_init(param_00);
}
level._threatdetection.activestyle = param_00;
}
//Function Number: 3
getthreatstyle()
{
var_00 = getdvar("threat_detection_highlight_style",level._threatdetection.default_style);
if(var_00 != level._threatdetection.activestyle)
{
changethreatstyle(var_00);
}
return var_00;
}
//Function Number: 4
onplayerconnect()
{
for(;;)
{
level waittill("connected",var_00);
var_00 thread onplayerspawned();
}
}
//Function Number: 5
watchagentspawn()
{
for(;;)
{
level waittill("spawned_agent",var_00);
var_00._threatdetection = spawnstruct();
var_00._threatdetection.showlist = [];
var_00 thread onagentspawned();
}
}
//Function Number: 6
onagentspawned()
{
self endon("death");
childthread monitorthreathighlight();
childthread cleanupondeath();
}
//Function Number: 7
onplayerspawned()
{
self endon("disconnect");
self._threatdetection = spawnstruct();
self._threatdetection.showlist = [];
self waittill("spawned_player");
childthread monitorthreathighlight();
childthread cleanupondeath();
childthread monitorthreathighlightnotification();
for(;;)
{
self waittill("spawned_player");
var_00 = getthreatstyle();
if(var_00 == "attached_glow")
{
visitfxent(::visitorrelink,::gethostilemarker,undefined);
}
}
}
//Function Number: 8
monitorthreathighlightnotification()
{
var_00 = newclienthudelem(self);
var_00.x = 0;
var_00.y = 0;
var_00.alignx = "left";
var_00.aligny = "top";
var_00.horzalign = "fullscreen";
var_00.vertalign = "fullscreen";
var_00 setshader("paint_overlay",640,480);
var_00.alpha = 0;
var_00.color = (0,0,0);
var_00.sort = -3;
var_00.hidden = 1;
var_01 = 0.5;
var_02 = 0.3;
for(;;)
{
if(self._threatdetection.showlist.size != 0)
{
if(var_00.hidden)
{
var_00.hidden = 0;
var_00 childthread threatnotificationoverlayflash(var_01,var_02);
}
}
else if(!var_00.hidden)
{
var_00.hidden = 1;
var_00 notify("stop_overlay_flash");
if(var_00.alpha > 0)
{
var_00 fadeovertime(var_02);
var_00.color = (0,0,0);
var_00.alpha = 0;
wait(var_02);
}
}
wait(0.05);
}
}
//Function Number: 9
threatnotificationoverlayflash(param_00,param_01)
{
self endon("stop_overlay_flash");
self fadeovertime(param_00);
self.color = (1,1,1);
self.alpha = 1;
}
//Function Number: 10
debughelper()
{
for(;;)
{
var_00 = distance(self.origin,level.players[0].origin);
thread common_scripts\utility::draw_line_for_time(level.players[0].origin,self.origin,1,1,1,0.3);
if(isdefined(self._threatdetection.mark_enemy_model))
{
thread common_scripts\utility::draw_line_for_time(level.players[0].origin,self._threatdetection.mark_enemy_model.origin,1,1,1,0.3);
}
wait(0.3);
}
}
//Function Number: 11
cleanupondeath()
{
self endon("disconnect");
for(;;)
{
self waittill("death");
removethreatevents();
}
}
//Function Number: 12
removethreatevents()
{
foreach(var_01 in level.players)
{
foreach(var_03 in var_01._threatdetection.showlist)
{
if(var_03.player == self)
{
var_03.endtime = 0;
}
}
}
var_06 = getthreatstyle();
if(var_06 == "attached_glow")
{
visitfxent(::visitorhideall,::gethostilemarker,undefined);
}
}
//Function Number: 13
detection_highlight_hud_effect_on(param_00,param_01,param_02)
{
var_03 = newclienthudelem(param_00);
if(isdefined(param_02) && param_02)
{
var_03.color = (0.1,0.0015,0.0015);
}
else
{
var_03.color = (1,0.015,0.015);
}
var_03.alpha = 1;
var_03 setradarhighlight(param_01);
return var_03;
}
//Function Number: 14
detection_highlight_hud_effect_off(param_00)
{
if(isdefined(param_00))
{
param_00 destroy();
}
}
//Function Number: 15
detection_highlight_hud_effect(param_00,param_01,param_02,param_03)
{
var_04 = detection_highlight_hud_effect_on(param_00,param_01,param_02);
if(isdefined(param_03))
{
param_00 common_scripts\utility::waittill_notify_or_timeout(param_03,param_01);
}
else
{
wait(param_01);
}
detection_highlight_hud_effect_off(var_04);
}
//Function Number: 16
detection_grenade_hud_effect(param_00,param_01,param_02,param_03)
{
var_04 = newhudelem();
var_04.x = param_01[0];
var_04.y = param_01[1];
var_04.z = param_01[2];
var_04.color = (getdvarfloat("scr_paintexplosionred"),getdvarfloat("scr_paintexplosiongreen"),getdvarfloat("scr_paintexplosionblue"));
var_04.alpha = getdvarfloat("scr_paintexplosionalpha");
var_05 = getdvarint("paintexplosionwidth");
var_04 setradarping(int(param_03 + var_05 / 2),int(var_05),param_02 + 0.05);
wait(param_02);
if(isdefined(var_04))
{
var_04 destroy();
}
}
//Function Number: 17
exo_ping_hud_effect(param_00,param_01,param_02,param_03,param_04)
{
var_05 = undefined;
if(isdefined(param_03))
{
var_05 = newclienthudelem(param_03);
}
else
{
var_05 = newhudelem();
}
var_05.x = param_00[0];
var_05.y = param_00[1];
var_05.z = param_00[2];
if(isdefined(param_04) && param_04)
{
var_05.color = (0.05,0.05,0.05);
}
else
{
var_05.color = (0.8,0.8,0.8);
}
var_05.alpha = 0.05;
var_06 = getdvarint("scr_exopingwidth",100);
var_05 setradarping(int(param_02),int(var_06),param_01 + 0.05);
wait(param_01);
if(isdefined(var_05))
{
var_05 destroy();
}
}
//Function Number: 18
addthreatevent(param_00,param_01,param_02,param_03,param_04,param_05)
{
if(!isalive(self))
{
return;
}
var_06 = gettime();
var_07 = var_06 + param_01 * 1000;
var_08 = var_07 - 9 * param_01 * 1000 / 10;
var_09 = getthreatstyle();
if(var_07 - var_08 < 250)
{
var_08 = 250 + var_06;
}
if(var_09 == "model")
{
var_08 = var_06;
}
else if(var_09 == "vfx_model")
{
var_08 = var_06;
}
else if(var_09 == "attached_glow")
{
var_08 = var_07;
}
else if(var_09 == "stencil_outline")
{
var_08 = var_07;
}
foreach(var_0B in param_00)
{
var_0C = 0;
foreach(var_0E in self._threatdetection.showlist)
{
if(var_0E.player == var_0B)
{
if(var_07 > var_0E.endtime)
{
var_0E.endtime = var_07;
var_0E.losendtime = var_08;
var_0E.eventtype = param_02;
}
var_0C = 1;
break;
}
}
if(!var_0C)
{
var_10 = self._threatdetection.showlist.size;
self._threatdetection.showlist[var_10] = spawnstruct();
self._threatdetection.showlist[var_10].player = var_0B;
self._threatdetection.showlist[var_10].endtime = var_07;
self._threatdetection.showlist[var_10].losendtime = var_08;
self._threatdetection.showlist[var_10].eventtype = param_02;
if(isplayer(self))
{
if(!isdefined(param_05) || param_05)
{
self playlocalsound("flag_spawned");
}
}
}
}
if(isplayer(self))
{
if(param_04)
{
visitfxent(::visitorupdatemarkerpos,::getfriendlymarker,undefined);
}
if(param_03)
{
visitfxent(::visitorupdatemarkerpos,::gethostilemarker,undefined);
}
}
}
//Function Number: 19
stopthreateventtype(param_00)
{
foreach(var_02 in self._threatdetection.showlist)
{
if(var_02.eventtype == param_00)
{
var_02.endtime = 0;
}
}
var_04 = getthreatstyle();
if(var_04 == "attached_glow")
{
visitfxent(::visitorhideall,::gethostilemarker,undefined);
}
}
//Function Number: 20
visitfxent(param_00,param_01,param_02)
{
var_03 = getthreatstyle();
if(var_03 == "glow")
{
foreach(var_06, var_05 in self.mark_fx.fx_ent)
{
[[ param_00 ]]([[ param_01 ]](var_05),param_02,level._threatdetection.fx_data[var_06][0]);
}
return;
}
if(var_03 == "model")
{
[[ param_00 ]]([[ param_01 ]](self._threatdetection),param_02,"tag_origin");
return;
}
if(var_03 == "vfx_model")
{
[[ param_00 ]]([[ param_01 ]](self._threatdetection),param_02,"tag_origin");
return;
}
if(var_03 == "attached_glow")
{
foreach(var_06, var_05 in self.mark_fx.fx_ent)
{
[[ param_00 ]]([[ param_01 ]](var_05),param_02,level._threatdetection.fx_data[var_06][0]);
}
return;
}
if(var_03 == "stencil_outline")
{
[[ param_00 ]](self,param_02,"tag_origin");
return;
}
}
//Function Number: 21
visitorrelink(param_00,param_01,param_02)
{
param_00 unlink();
param_00.origin = self gettagorigin(param_02);
param_00.angles = self gettagangles(param_02);
param_00 linkto(self,param_02);
wait(0.05);
playfxontag(param_00.fx,param_00,"tag_origin");
}
//Function Number: 22
visitorhideall(param_00,param_01,param_02)
{
var_03 = getthreatstyle();
if(var_03 == "attached_glow")
{
stopfxontag(param_00.fx,param_00,"tag_origin");
}
}
//Function Number: 23
visitorupdatemarkerpos(param_00,param_01,param_02)
{
var_03 = getthreatstyle();
param_00.origin = self gettagorigin(param_02);
param_00.angles = self gettagangles(param_02);
if(var_03 == "glow")
{
triggerfx(param_00);
return;
}
if(var_03 == "model")
{
var_04 = "mp_hud_" + self getstance() + "_char";
var_05 = param_00 != self._threatdetection.mark_friendly_model;
if(var_05)
{
var_04 = var_04 + "_hostile";
}
var_06 = param_00.model;
if(var_04 != var_06)
{
param_00 setmodel(var_04);
return;
}
return;
}
if(var_03 == "vfx_model")
{
switch(self getstance())
{
case "prone":
break;
case "crouch":
break;
case "stand":
default:
break;
}
}
}
//Function Number: 24
gethostilemarker(param_00)
{
var_01 = getthreatstyle();
if(var_01 == "glow")
{
return param_00.enemymarker;
}
if(var_01 == "model")
{
return param_00.mark_enemy_model;
}
if(var_01 == "vfx_model")
{
return param_00.mark_enemy_model;
}
if(var_01 == "attached_glow")
{
return param_00;
}
if(var_01 == "stencil_outline")
{
return param_00;
}
}
//Function Number: 25
getfriendlymarker(param_00)
{
var_01 = getthreatstyle();
if(var_01 == "glow")
{
return param_00.friendlymarker;
}
if(var_01 == "model")
{
return param_00.mark_friendly_model;
}
if(var_01 == "vfx_model")
{
return param_00.mark_friendly_model;
}
}
//Function Number: 26
getfriendlylosmarker(param_00)
{
var_01 = getthreatstyle();
if(var_01 == "glow")
{
return param_00.friendlylosmarker;
}
if(var_01 == "model")
{
return param_00.mark_friendly_model;
}
if(var_01 == "vfx_model")
{
return param_00.mark_friendly_model;
}
}
//Function Number: 27
gethostilelosmarker(param_00)
{
var_01 = getthreatstyle();
if(var_01 == "glow")
{
return param_00.enemylosmarker;
}
if(var_01 == "model")
{
return param_00.mark_enemy_model;
}
if(var_01 == "vfx_model")
{
return param_00.mark_enemy_model;
}
if(var_01 == "attached_glow")
{
return param_00;
}
if(var_01 == "stencil_outline")
{
return param_00;
}
}
//Function Number: 28
visithideallmarkers(param_00,param_01,param_02)
{
foreach(var_04 in param_00)
{
var_04 hide();
}
}
//Function Number: 29
accessallmarkers(param_00)
{
return [param_00.friendlymarker,param_00.enemymarker,param_00.friendlylosmarker,param_00.enemylosmarker];
}
//Function Number: 30
getnormaldirectionvec(param_00)
{
return vectornormalize(common_scripts\utility::flat_origin(param_00));
}
//Function Number: 31
monitorthreathighlight()
{
threat_init(getthreatstyle());
var_00 = (0,0,32);
var_01 = 0;
for(;;)
{
wait(0.05);
var_02 = gettime();
var_03 = 0;
foreach(var_05 in self._threatdetection.showlist)
{
if(var_05.endtime >= var_02)
{
if(!isdefined(var_05.player))
{
self._threatdetection.showlist = common_scripts\utility::array_remove(self._threatdetection.showlist,var_05);
continue;
}
var_05.los = 0;
var_06 = getnormaldirectionvec(anglestoforward(var_05.player.angles));
var_07 = getnormaldirectionvec(self.origin - var_05.player.origin);
var_08 = vectordot(var_07,var_06);
if(var_08 < 0)
{
continue;
}
if(check_los(var_05))
{
var_05.los = 1;
if(var_05.losendtime <= var_02)
{
self._threatdetection.showlist = common_scripts\utility::array_remove(self._threatdetection.showlist,var_05);
continue;
}
}
var_03 = 1;
continue;
}
self._threatdetection.showlist = common_scripts\utility::array_remove(self._threatdetection.showlist,var_05);
}
var_0A = getthreatstyle();
if(!var_01)
{
var_01 = 1;
if(var_0A == "glow")
{
foreach(var_0C in self.mark_fx.fx_ent)
{
var_0C.enemymarker hide();
var_0C.friendlymarker hide();
var_0C.enemylosmarker hide();
var_0C.friendlylosmarker hide();
}
}
else if(var_0A == "model")
{
self._threatdetection.mark_friendly_model hide();
self._threatdetection.mark_enemy_model hide();
}
else if(var_0A == "vfx_model")
{
self._threatdetection.mark_friendly_model hide();
self._threatdetection.mark_enemy_model hide();
}
else if(var_0A == "attached_glow")
{
foreach(var_05 in self.mark_fx.fx_ent)
{
stopfxontag(var_05.fx,var_05,"tag_origin");
var_05 hide();
}
}
else if(var_0A == "stencil_outline")
{
self clearthreatdetected();
}
else
{
}
}
if(!var_03)
{
continue;
}
foreach(var_10 in self._threatdetection.showlist)
{
if(var_10.los)
{
showthreat(var_10.player,::getfriendlylosmarker,::gethostilelosmarker,::visitorupdatelosmarker);
prepare_show_threat(var_01,var_0A,var_10.player);
var_01 = 0;
continue;
}
var_11 = bullettrace(var_10.player.origin + var_00,self.origin + var_00,1,var_10.player);
if(var_11["fraction"] < 1 && !isplayer(var_11["entity"]))
{
showthreat(var_10.player,::getfriendlymarker,::gethostilemarker,::visitorshowtoplayer);
prepare_show_threat(var_01,var_0A,var_10.player);
var_01 = 0;
}
}
}
}
//Function Number: 32
prepare_show_threat(param_00,param_01,param_02)
{
if(param_00)
{
if(param_01 == "attached_glow")
{
showthreat(param_02,::getfriendlylosmarker,::gethostilelosmarker,::visitorretriggerfx);
}
}
}
//Function Number: 33
visitorretriggerfx(param_00,param_01,param_02)
{
playfxontag(param_00.fx,param_00,"tag_origin");
}
//Function Number: 34
check_los(param_00)
{
if(bullettracepassed(param_00.player geteye(),self geteye(),0,param_00.player))
{
return 1;
}
return 0;
}
//Function Number: 35
threat_init(param_00)
{
var_01 = spawnstruct();
var_01.fx_ent = [];
if(param_00 == "glow")
{
foreach(var_05, var_03 in level._threatdetection.fx_data)
{
var_04 = spawnstruct();
var_04.origin = self gettagorigin(var_03[0]);
var_04.angles = self gettagangles(var_03[0]);
var_04.enemymarker = spawnfx(var_03[1],var_04.origin);
triggerfx(var_04.enemymarker);
var_04.enemymarker hide();
var_04.enemylosmarker = spawnfx(var_03[3],var_04.origin);
triggerfx(var_04.enemylosmarker);
var_04.enemylosmarker hide();
var_04.friendlymarker = spawnfx(var_03[2],var_04.origin);
triggerfx(var_04.friendlymarker);
var_04.friendlymarker hide();
var_04.friendlylosmarker = spawnfx(var_03[4],var_04.origin);
triggerfx(var_04.friendlylosmarker);
var_04.friendlylosmarker hide();
var_01.fx_ent[var_05] = var_04;
}
self.mark_fx = var_01;
return;
}
if(param_00 == "model")
{
var_06 = spawn("script_model",self.origin);
var_06.origin = self.origin;
var_06.angles = self.angles;
var_06 setmodel(level._threatdetection.friendlymodel);
var_06 setcontents(0);
self._threatdetection.mark_friendly_model = var_06;
var_06 = spawn("script_model",self.origin);
var_06.origin = self.origin;
var_06.angles = self.angles;
var_06 setmodel(level._threatdetection.hostilemodel);
var_06 setcontents(0);
self._threatdetection.mark_enemy_model = var_06;
return;
}
if(param_00 == "vfx_model")
{
self._threatdetection.mark_friendly_model = spawnstruct();
self._threatdetection.mark_friendly_model = spawnfx(common_scripts\utility::getfx("threat_detect_model_stand"),self.origin,anglestoforward(self.angles),anglestoup(self.angles));
self._threatdetection.friendly_pose = "threat_detect_model_stand";
self._threatdetection.mark_enemy_model = spawnstruct();
self._threatdetection.mark_enemy_model = spawnfx(common_scripts\utility::getfx("threat_detect_model_stand_hostile"),self.origin,anglestoforward(self.angles),anglestoup(self.angles));
self._threatdetection.hostile_pose = "threat_detect_model_stand_hostile";
return;
}
if(param_00 == "attached_glow")
{
foreach(var_05, var_03 in level._threatdetection.fx_data)
{
var_08 = common_scripts\utility::spawn_tag_origin();
var_08 show();
var_08.origin = self gettagorigin(var_03[0]);
var_08.angles = self gettagangles(var_03[0]);
var_08 linkto(self,var_03[0]);
var_08.fx = var_03[1];
var_01.fx_ent[var_05] = var_08;
}
self.mark_fx = var_01;
return;
}
if(param_00 == "stencil_outline")
{
return;
}
}
//Function Number: 36
visitorupdatelosmarker(param_00,param_01,param_02)
{
visitorupdatemarkerpos(param_00,param_01,param_02);
visitorshowtoplayer(param_00,param_01,param_02);
}
//Function Number: 37
visitorshowtoplayer(param_00,param_01,param_02)
{
var_03 = getthreatstyle();
if(var_03 == "stencil_outline")
{
param_00 threatdetectedtoplayer(param_01);
return;
}
param_00 showtoplayer(param_01);
}
//Function Number: 38
showthreat(param_00,param_01,param_02,param_03)
{
if(param_00 == self)
{
return;
}
var_04 = param_02;
if((level.teambased || level.multiteambased) && param_00.team == self.team)
{
var_04 = param_01;
}
else if(param_00 == self)
{
var_04 = param_01;
}
visitfxent(param_03,var_04,param_00);
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,125 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_trackrounds.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 5
* Decompile Time: 70 ms
* Timestamp: 10/27/2023 1:49:31 AM
*******************************************************************/
//Function Number: 1
trackrounds_think()
{
if(getdvar("mapname") == getdvar("virtualLobbyMap"))
{
return;
}
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
self.trackrounds = spawnstruct();
self.trackrounds.has_paint_pro = 0;
self.trackrounds.has_trackrounds = 0;
if(maps\mp\_utility::_hasperk("specialty_paint_pro"))
{
self.trackrounds.has_paint_pro = 1;
}
var_00 = self getcurrentweapon();
toggle_has_trackrounds(var_00);
for(;;)
{
self waittill("weapon_change",var_00);
if(var_00 == "none")
{
wait(0.4);
var_00 = self getcurrentweapon();
if(var_00 == "none")
{
return;
}
}
toggle_has_trackrounds(var_00);
wait(0.05);
}
}
//Function Number: 2
toggle_has_trackrounds(param_00)
{
var_01 = undefined;
if(isdefined(param_00))
{
var_01 = getweaponattachments(param_00);
}
if(isdefined(var_01))
{
foreach(var_03 in var_01)
{
if(var_03 == "trackrounds")
{
self.trackrounds.has_trackrounds = 1;
maps\mp\_utility::giveperk("specialty_paint_pro",0,0);
return;
}
}
self.trackrounds.has_trackrounds = 0;
if(!self.trackrounds.has_paint_pro)
{
maps\mp\_utility::_unsetperk("specialty_paint_pro");
}
}
}
//Function Number: 3
set_painted_trackrounds(param_00)
{
if(isplayer(self))
{
if(isdefined(self.painted_tracked) && self.painted_tracked)
{
return;
}
self.painted_tracked = 1;
thread trackrounds_mark_till_death();
}
}
//Function Number: 4
trackrounds_death()
{
self endon("disconnect");
level endon("game_ended");
self waittill("death");
self.painted_tracked = 0;
}
//Function Number: 5
trackrounds_mark_till_death()
{
self endon("disconnect");
self endon("death");
level endon("game_ended");
thread trackrounds_death();
for(;;)
{
wait(0.1);
if(self hasperk("specialty_radararrow",1))
{
continue;
}
if(self hasperk("specialty_radarblip",1))
{
continue;
}
self setperk("specialty_radarblip",1,0);
}
}

View File

@ -0,0 +1,632 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_tridrone.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 27
* Decompile Time: 444 ms
* Timestamp: 10/27/2023 1:49:33 AM
*******************************************************************/
//Function Number: 1
watchtridroneusage()
{
self endon("spawned_player");
self endon("disconnect");
self endon("death");
self endon("faux_spawn");
tridroneammoinit();
for(;;)
{
self waittill("grenade_fire",var_00,var_01);
if(var_01 == "tri_drone_mp")
{
if(!isalive(self))
{
var_00 delete();
return;
}
thread tryusetridrone(var_00);
}
}
}
//Function Number: 2
init()
{
precacheshellshock("flashbang_mp");
precachemodel("projectile_bouncing_betty_grenade_small");
precachemodel("projectile_bouncing_betty_grenade_small_bombsquad");
level.tridronesettings = spawnstruct();
level.tridronesettings.minecountdown = 1;
level.tridronesettings.blastradius = 132;
level.tridronesettings.dronebounceheight = 128;
level.tridronesettings.dronemesh = "projectile_bouncing_betty_grenade_small";
level.tridronesettings.dronebombsquadmesh = "projectile_bouncing_betty_grenade_small_bombsquad";
level.tridronesettings.droneexplosionfx = loadfx("vfx/explosion/frag_grenade_default");
level.tridronesettings.beacon["enemy"] = loadfx("vfx/lights/light_c4_blink");
level.tridronesettings.beacon["friendly"] = loadfx("vfx/lights/light_mine_blink_friendly");
level.tridronesettings.dome = loadfx("vfx/unique/orbital_dome_ground_friendly");
}
//Function Number: 3
tridroneammoinit()
{
if(!isdefined(self.tridroneammo))
{
self.tridroneammo = 0;
thread showammocount();
}
self.tridroneammo = 0;
self.tridroneammo = self.tridroneammo + 3;
if(!isdefined(self.tridronedeployed))
{
self.tridronedeployed = [];
}
}
//Function Number: 4
tryusetridrone(param_00)
{
if(self.tridroneammo <= 0)
{
tridroneammoinit();
}
if(self.tridroneammo > 0)
{
thread launchtridrone(param_00);
self.tridroneammo--;
if(self.tridroneammo >= 1)
{
self giveweapon("tri_drone_mp");
}
}
return 1;
}
//Function Number: 5
launchtridrone(param_00)
{
var_01 = spawnmine(param_00);
self.tridronedeployed = common_scripts\utility::array_add(self.tridronedeployed,var_01);
thread monitorplayerdeath(var_01);
}
//Function Number: 6
activategroupedtridrones(param_00)
{
self endon("death");
foreach(var_02 in param_00.tridronedeployed)
{
if(isdefined(var_02))
{
if(var_02 != self)
{
var_02.trigger notify("trigger");
wait(0.25);
}
}
}
}
//Function Number: 7
removegroupedtridrone()
{
self.owner.tridronedeployed = common_scripts\utility::array_remove(self.owner.tridronedeployed,self);
}
//Function Number: 8
monitorplayerdeath(param_00)
{
param_00 endon("death");
self waittill("death");
self.tridroneammo = 0;
if(isdefined(param_00.pickuptrigger))
{
param_00.pickuptrigger delete();
}
param_00 delete();
}
//Function Number: 9
spawnmine(param_00)
{
param_00 waittill("missile_stuck");
var_01 = bullettrace(param_00.origin,param_00.origin - (0,0,4),0,param_00);
var_02 = bullettrace(param_00.origin,param_00.origin + (0,0,4),0,param_00);
var_03 = anglestoforward(param_00.angles);
var_04 = bullettrace(param_00.origin + (0,0,4),param_00.origin + var_03 * 4,0,param_00);
var_05 = undefined;
var_06 = 0;
var_07 = 0;
if(var_04["surfacetype"] != "none")
{
var_05 = var_04;
var_07 = 1;
}
else if(var_02["surfacetype"] != "none")
{
var_05 = var_02;
var_06 = 1;
}
else if(var_01["surfacetype"] != "none")
{
var_05 = var_01;
}
else
{
var_05 = var_01;
}
var_08 = var_05["position"];
if(var_08 == var_02["position"])
{
var_08 = var_08 + (0,0,-5);
}
var_09 = spawn("script_model",var_08);
var_09.isup = var_06;
var_09.isforward = var_07;
var_0A = vectornormalize(var_05["normal"]);
var_0B = vectortoangles(var_0A);
var_0B = var_0B + (90,0,0);
var_09.angles = var_0B;
var_09 setmodel(level.tridronesettings.dronemesh);
var_09.owner = self;
var_09 setotherent(self);
var_09.killcamoffset = (0,0,55);
var_09.killcament = spawn("script_model",var_09.origin + var_09.killcamoffset);
var_09.stunned = 0;
var_09.weaponname = "tri_drone_mp";
param_00 delete();
level.mines[level.mines.size] = var_09;
var_09 thread createbombsquadmodel(level.tridronesettings.dronebombsquadmesh,"tag_origin",self);
var_09 thread minebeacon();
var_09 thread settridroneteamheadicon(self.team);
var_09 thread minedamagemonitor();
var_09 thread mineproximitytrigger(self);
var_09 thread mineselfdestruct();
var_09 thread deletemineonteamswitch(self);
var_09 thread handleemp(self,"apm_mine");
return var_09;
}
//Function Number: 10
showdebugradius()
{
var_00["dome"] = spawnfx(level.tridronesettings.dome,self gettagorigin("tag_fx"));
triggerfx(var_00["dome"]);
self waittill("death");
var_00["dome"] delete();
}
//Function Number: 11
showammocount()
{
self endon("disconnect");
for(;;)
{
if("tri_drone_mp" == self getlethalweapon())
{
self setclientomnvar("ui_tri_drone_count",self.tridroneammo);
}
wait 0.05;
}
}
//Function Number: 12
createbombsquadmodel(param_00,param_01,param_02)
{
var_03 = spawn("script_model",(0,0,0));
var_03 hide();
wait(0.05);
var_03 thread maps\mp\gametypes\_weapons::bombsquadvisibilityupdater(param_02);
var_03 setmodel(param_00);
var_03 linkto(self,param_01,(0,0,0),(0,0,0));
var_03 setcontents(0);
self waittill("death");
if(isdefined(self.trigger))
{
self.trigger delete();
}
var_03 delete();
}
//Function Number: 13
minebeacon()
{
var_00["friendly"] = spawnfx(level.tridronesettings.beacon["friendly"],self gettagorigin("tag_fx"));
var_00["enemy"] = spawnfx(level.tridronesettings.beacon["enemy"],self gettagorigin("tag_fx"));
thread minebeaconteamupdater(var_00);
self waittill("death");
var_00["friendly"] delete();
var_00["enemy"] delete();
}
//Function Number: 14
minebeaconteamupdater(param_00,param_01)
{
self endon("death");
var_02 = self.owner.team;
wait(0.05);
triggerfx(param_00["friendly"]);
triggerfx(param_00["enemy"]);
for(;;)
{
param_00["friendly"] hide();
param_00["enemy"] hide();
foreach(var_04 in level.players)
{
if(level.teambased)
{
if(var_04.team == var_02)
{
param_00["friendly"] showtoplayer(var_04);
}
else
{
param_00["enemy"] showtoplayer(var_04);
}
continue;
}
if(var_04 == self.owner)
{
param_00["friendly"] showtoplayer(var_04);
continue;
}
param_00["enemy"] showtoplayer(var_04);
}
level common_scripts\utility::waittill_either("joined_team","player_spawned");
}
}
//Function Number: 15
settridroneteamheadicon(param_00)
{
self endon("death");
wait(0.05);
if(level.teambased)
{
if(self.isup == 1 || self.isforward == 1)
{
maps\mp\_entityheadicons::setteamheadicon(param_00,(0,0,28),undefined,1);
return;
}
maps\mp\_entityheadicons::setteamheadicon(param_00,(0,0,28));
return;
}
if(isdefined(self.owner))
{
if(self.isup == 1)
{
maps\mp\_entityheadicons::setplayerheadicon(self.owner,(28,0,28));
return;
}
maps\mp\_entityheadicons::setplayerheadicon(self.owner,(0,0,28));
return;
}
}
//Function Number: 16
minedamagemonitor()
{
self endon("mine_triggered");
self endon("mine_selfdestruct");
self endon("death");
self setcandamage(1);
self.maxhealth = 100000;
self.health = self.maxhealth;
var_00 = undefined;
self waittill("damage",var_01,var_00,var_02,var_03,var_04,var_05,var_06,var_07,var_08,var_09);
if(!isplayer(var_00))
{
continue;
}
if(!maps\mp\gametypes\_weapons::friendlyfirecheck(self.owner,var_00))
{
continue;
}
if(isdefined(var_09))
{
var_0A = maps\mp\_utility::strip_suffix(var_09,"_lefthand");
switch(var_0A)
{
case "smoke_grenade_var_mp":
case "smoke_grenade_mp":
break;
}
}
}
//Function Number: 17
mineexplode(param_00)
{
if(!isdefined(self) || !isdefined(self.owner))
{
return;
}
if(!isdefined(param_00))
{
param_00 = self.owner;
}
self playsound("null");
var_01 = self gettagorigin("tag_fx");
playfx(level.tridronesettings.droneexplosionfx,var_01);
wait(0.05);
if(!isdefined(self) || !isdefined(self.owner))
{
return;
}
self hide();
self radiusdamage(self.origin,192,60,60,param_00,"MOD_EXPLOSIVE","bouncingbetty_mp");
foreach(var_03 in level.players)
{
var_04 = distance(self.origin,var_03.origin);
if(var_04 < 192)
{
var_03 shellshock("flashbang_mp",2.5);
}
}
if(isdefined(self.owner) && isdefined(level.leaderdialogonplayer_func))
{
self.owner thread [[ level.leaderdialogonplayer_func ]]("mine_destroyed",undefined,undefined,self.origin);
}
wait(0.2);
if(!isdefined(self) || !isdefined(self.owner))
{
return;
}
thread apm_mine_deletekillcament();
self notify("death");
if(isdefined(self.pickuptrigger))
{
self.pickuptrigger delete();
}
self hide();
}
//Function Number: 18
apm_mine_deletekillcament()
{
wait(3);
self.killcament delete();
self delete();
level.mines = common_scripts\utility::array_removeundefined(level.mines);
}
//Function Number: 19
equipmentwatchuse()
{
self endon("spawned_player");
self endon("disconnect");
self endon("change_owner");
self.pickuptrigger setcursorhint("HINT_NOICON");
var_00 = self.pickuptrigger.owner;
equipmentenableuse(var_00);
for(;;)
{
self.pickuptrigger waittill("trigger",var_00);
var_00 playlocalsound("scavenger_pack_pickup");
var_00.tridroneammo++;
if(var_00.tridroneammo == 1)
{
var_00 giveweapon("tri_drone_mp");
}
if(isdefined(self.pickuptrigger))
{
self.pickuptrigger delete();
}
self.killcament delete();
self delete();
level.mines = common_scripts\utility::array_removeundefined(level.mines);
}
}
//Function Number: 20
equipmentenableuse(param_00)
{
self notify("equipmentWatchUse");
self endon("spawned_player");
self endon("disconnect");
self endon("equipmentWatchUse");
self endon("change_owner");
self.pickuptrigger setcursorhint("HINT_NOICON");
self.pickuptrigger sethintstring(&"MP_PICKUP_TRI_DRONE");
self.pickuptrigger maps\mp\_utility::setselfusable(param_00);
}
//Function Number: 21
equipmentdisableuse(param_00)
{
self.trigger sethintstring("");
self.trigger maps\mp\_utility::setselfunusuable();
}
//Function Number: 22
mineproximitytrigger(param_00)
{
self endon("mine_destroyed");
self endon("mine_selfdestruct");
self endon("death");
wait(2);
self.pickuptrigger = spawn("script_origin",self.origin);
self.pickuptrigger.owner = param_00;
thread equipmentwatchuse();
var_01 = spawn("trigger_radius",self.origin + (0,0,-96),0,192,192);
var_01.owner = self;
self.trigger = var_01;
thread minedeletetrigger(var_01);
var_02 = undefined;
for(;;)
{
var_01 waittill("trigger",var_02);
if(!isdefined(var_02))
{
break;
}
if(getdvarint("scr_minesKillOwner") != 1)
{
if(isdefined(self.owner))
{
if(var_02 == self.owner)
{
continue;
}
if(isdefined(var_02.owner) && var_02.owner == self.owner)
{
continue;
}
}
if(!maps\mp\gametypes\_weapons::friendlyfirecheck(self.owner,var_02,0))
{
continue;
}
}
if(lengthsquared(var_02 getentityvelocity()) < 10)
{
continue;
}
if(var_02 damageconetrace(self.origin,self) > 0)
{
break;
}
}
removegroupedtridrone();
self notify("mine_triggered");
self playsound("claymore_activated");
self playsound("mine_betty_spin");
playfx(level.mine_launch,self.origin);
var_03 = anglestoup(self.angles);
var_04 = self.origin + var_03 * 64;
self moveto(var_04,0.75,0,0.25);
self.killcament moveto(var_04 + self.killcamoffset,0.75,0,0.25);
self rotatevelocity((0,750,32),0.7,0,0.65);
thread playspinnerfx();
if(isplayer(var_02) && var_02 maps\mp\_utility::_hasperk("specialty_class_engineer"))
{
var_02 notify("triggered_mine");
wait(3);
}
else
{
wait(1);
}
thread mineexplode();
}
//Function Number: 23
playspinnerfx()
{
self endon("death");
var_00 = gettime() + 1000;
while(gettime() < var_00)
{
wait(0.05);
playfxontag(level.mine_spin,self,"tag_fx_spin1");
playfxontag(level.mine_spin,self,"tag_fx_spin3");
wait(0.05);
playfxontag(level.mine_spin,self,"tag_fx_spin2");
playfxontag(level.mine_spin,self,"tag_fx_spin4");
}
}
//Function Number: 24
minedeletetrigger(param_00)
{
common_scripts\utility::waittill_any("mine_triggered","mine_destroyed","death");
param_00 delete();
}
//Function Number: 25
mineselfdestruct()
{
self endon("mine_triggered");
self endon("mine_destroyed");
self endon("death");
wait(120);
self notify("mine_selfdestruct");
if(isdefined(self.killcament))
{
self.killcament delete();
}
playfx(level._effect["equipment_explode"],self.origin);
self delete();
}
//Function Number: 26
deletemineonteamswitch(param_00)
{
level endon("game_ended");
param_00 endon("disconnect");
self endon("death");
param_00 waittill("joined_team");
self delete();
self notify("death");
}
//Function Number: 27
handleemp(param_00,param_01)
{
self endon("death");
if(param_00 maps\mp\_utility::isemped())
{
self notify("death");
if(param_01 == "apm_mine")
{
playfx(level._effect["equipment_explode"],self.origin);
self delete();
}
return;
}
for(;;)
{
level waittill("emp_update");
if(!param_00 maps\mp\_utility::isemped())
{
continue;
}
if(param_01 == "apm_mine")
{
playfx(level._effect["equipment_explode"],self.origin);
self delete();
}
self notify("death");
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,539 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\mp\_vl_base.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 30
* Decompile Time: 521 ms
* Timestamp: 10/27/2023 1:46:37 AM
*******************************************************************/
//Function Number: 1
vlprint(param_00)
{
}
//Function Number: 2
vlprintln(param_00)
{
}
//Function Number: 3
vl_init()
{
level.vl_onspawnplayer = ::onspawnplayer;
vl_main();
}
//Function Number: 4
vl_main()
{
setdvar("r_dof_physical_enable",1);
setdvar("r_dof_physical_bokehEnable",1);
setdvar("r_adaptiveSubdiv",0);
setdvar("r_eyePupil",0.15);
setdvar("r_uiblurdstmode",3);
setdvar("r_blurdstgaussianblurradius",1.5);
resetentplayerxuidforemblems();
level.partymembers_cb = ::maps\mp\_vl_camera::party_members;
level.vlavatars = [];
level.xuid2ownerid = [];
level.vl_focus = 0;
level.avatarinfo = [];
level.vfx_setbonus_crouch_01 = loadfx("vfx/ui/complete_set_crouching");
level.vfx_setbonus_stand_01 = loadfx("vfx/ui/complete_set_standing");
var_00 = 18;
if(level.ps3 || level.xenon)
{
var_00 = 12;
}
for(var_01 = 0;var_01 < var_00;var_01++)
{
level.avatarinfo[var_01] = spawnstruct();
level.avatarinfo[var_01].timetodelete = 0;
level.avatarinfo[var_01].xuid = "";
}
level.maxavatars = var_00;
thread maps\mp\_vl_camera::monitor_member_class_changes();
thread maps\mp\_vl_camera::monitor_member_timeouts();
setdvar("virtuallobbymembers",0);
level.num_lobby_idles = 4;
maps\mp\_vl_firingrange::init_firingrange();
maps\mp\_vl_selfiebooth::init_selfiebooth();
}
//Function Number: 5
init_avatars()
{
var_00 = 4;
var_01 = level.maxavatars + var_00;
level.vlavatarpool = [];
for(var_02 = 0;var_02 < var_01;var_02++)
{
var_03 = maps\mp\agents\_agent_utility::getfreeagent();
level.vlavatarpool[var_02] = var_03;
var_03 spawnagent((0,0,0),(0,0,0));
var_03 maps\mp\_vl_camera::set_agent_values("spectator","none");
var_03 maps\mp\agents\_agent_common::set_agent_health(100);
var_03 botclearscriptenemy();
var_03 botclearscriptgoal();
var_03 maps\mp\_vl_camera::bot_disable_tactical_goals();
var_03 botsetflag("disable_movement",1);
var_03 botsetflag("disable_rotation",1);
var_03.isfree = 1;
}
}
//Function Number: 6
alloc_avatar()
{
if(!isdefined(level.vlavatarpool))
{
init_avatars();
}
foreach(var_01 in level.vlavatarpool)
{
if(var_01.isfree)
{
var_01.isfree = 0;
return var_01;
}
}
}
//Function Number: 7
free_avatar(param_00)
{
param_00 notify("free_avatar");
param_00.isfree = 1;
}
//Function Number: 8
onspawnplayer()
{
level.agent_funcs["player"]["on_killed"] = ::on_agent_player_killed;
thread maps\mp\_vl_camera::vlobby_player();
level.playerstatus[0] = 3;
thread maps\mp\_vl_camera::monitor_member_focus_change();
thread maps\mp\_vl_camera::monitor_create_an_operator(0);
thread maps\mp\_vl_camera::monitor_create_a_class(0);
thread maps\mp\_vl_camera::monitor_clans();
thread monitor_move_btn_fr_vl(self);
disable_player_controls();
self setdemigod(1);
self setmlgspectator(0);
}
//Function Number: 9
on_agent_player_killed(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
{
}
//Function Number: 10
player_sticks_in_lefty_config()
{
if(common_scripts\utility::is_player_gamepad_enabled())
{
var_00 = self getlocalplayerprofiledata("gpadSticksConfig");
return isdefined(var_00) && var_00 == "thumbstick_southpaw" || var_00 == "thumbstick_legacy";
}
return 0;
}
//Function Number: 11
player_setup_lefty_angle(param_00)
{
if(!isdefined(param_00.fakeangle))
{
if(isdefined(param_00.storedrightsticky))
{
param_00.fakeangle = param_00.storedrightsticky;
return;
}
param_00.fakeangle = 0;
}
}
//Function Number: 12
player_get_right_stick_y(param_00)
{
if(player_sticks_in_lefty_config())
{
player_setup_lefty_angle(param_00);
return param_00.fakeangle;
}
var_01 = self getunnormalizedcameramovement();
return var_01[1];
}
//Function Number: 13
player_update_right_stick_y(param_00)
{
var_01 = 0;
if(player_sticks_in_lefty_config())
{
player_setup_lefty_angle(param_00);
var_02 = self getnormalizedmovement();
var_03 = -12;
var_04 = var_02[1] * var_03;
param_00.fakeangle = angleclamp(param_00.fakeangle + var_04);
var_01 = param_00.fakeangle;
}
else
{
var_02 = self getunnormalizedcameramovement();
var_01 = var_02[1];
if(isdefined(param_00.fakeangle))
{
param_00.fakeangle = undefined;
}
}
return var_01;
}
//Function Number: 14
prep_for_controls(param_00,param_01)
{
param_00.storedrightsticky = player_get_right_stick_y(param_00);
param_00.rotation_total = 0;
param_00.storedangley = param_00.angles[1];
param_00.mouserot = 0;
param_00.positivewrap = 0;
param_00.negativewrap = 0;
param_00.addtobaseangle = 0;
param_01 = (0,param_01[1],0);
if(isdefined(param_01))
{
if(isagent(param_00))
{
param_00 maps\mp\_vl_camera::hackagentangles(param_01);
return;
}
param_00.angles = param_01;
}
}
//Function Number: 15
avatar_scheduled_for_removal(param_00)
{
return level.avatarinfo[param_00].timetodelete > 0;
}
//Function Number: 16
schedule_remove_avatar(param_00,param_01)
{
maps\mp\_vl_camera::remove_avatar(param_00);
}
//Function Number: 17
all_avatars_scheduled_for_delete()
{
if(level.vlavatars.size == 0)
{
return 0;
}
foreach(var_02, var_01 in level.avatarinfo)
{
if(!isdefined(level.vlavatars[var_02]))
{
continue;
}
if(var_01.timetodelete == 0)
{
return 0;
}
}
return 1;
}
//Function Number: 18
reuse_avatar(param_00)
{
var_01 = undefined;
foreach(var_04, var_03 in level.xuid2ownerid)
{
var_01 = level.vlavatars[var_03];
level.vlavatars[var_03] = undefined;
setentplayerxuidforemblem(var_01,var_04,1);
level.xuid2ownerid[var_04] = undefined;
}
level.xuid2ownerid[param_00] = 0;
level.avatarinfo[0].timetodelete = 0;
level.avatarinfo[0].xuid = param_00;
if(isdefined(var_01))
{
setentplayerxuidforemblem(var_01,param_00);
level.vlavatars[0] = var_01;
}
}
//Function Number: 19
add_avatar(param_00)
{
var_01 = -1;
var_02 = -1;
while(var_02 == var_01)
{
var_01++;
foreach(var_02 in level.xuid2ownerid)
{
if(var_02 == var_01)
{
break;
}
}
}
vlprint("Adding new xuid " + param_00 + " with ownerId=" + var_01 + "\n");
level.xuid2ownerid[param_00] = var_01;
level.avatarinfo[var_01].xuid = param_00;
level.avatarinfo[var_01].timetodelete = 0;
return var_01;
}
//Function Number: 20
avatar_after_spawn(param_00)
{
if(isdefined(level.needtopresent))
{
thread maps\mp\_vl_camera::setvirtuallobbypresentable();
}
}
//Function Number: 21
update_avatars()
{
var_00 = 0;
foreach(var_03, var_02 in level.avatarinfo)
{
if(var_02.timetodelete > 0 && gettime() > var_02.timetodelete)
{
vlprint("update_avatars removing ownerId" + var_03 + "\n");
maps\mp\_vl_camera::remove_avatar(var_03);
var_00 = 1;
}
}
if(var_00)
{
wait(0.1);
}
}
//Function Number: 22
hide_non_owner_avatars()
{
foreach(var_02, var_01 in level.vlavatars)
{
if(var_02 == 0)
{
continue;
}
maps\mp\_vl_camera::hide_avatar(var_01);
}
if(level.camparams.mode != "prelobby")
{
level.camparams.camera.cut = 1;
}
level.vl_focus = 0;
level.old_vl_focus = level.vl_focus;
}
//Function Number: 23
show_non_owner_avatars()
{
foreach(var_02, var_01 in level.vlavatars)
{
if(var_02 == 0)
{
continue;
}
maps\mp\_vl_camera::show_avatar(var_01);
}
}
//Function Number: 24
rightstickrotateavatar(param_00,param_01)
{
var_02 = player_update_right_stick_y(param_00);
var_03 = angleclamp(var_02 - param_00.storedrightsticky);
var_04 = getdvarfloat("ui_mouse_char_rot",0);
if(var_04 != 0)
{
param_00.mouserot = angleclamp(param_00.mouserot + var_04);
setdynamicdvar("ui_mouse_char_rot",0);
}
var_05 = maps\mp\_vl_camera::getmodifiedrotationangle(param_00,var_03,param_01);
var_05 = var_05 * -1;
var_06 = angleclamp(param_00.storedangley + var_05 + param_00.mouserot);
var_07 = (0,var_06,0);
if(isagent(param_00))
{
param_00 setplayerangles(var_07);
return;
}
param_00.angles = var_07;
}
//Function Number: 25
playerhastouchedstick(param_00)
{
var_01 = player_get_right_stick_y(param_00);
var_02 = angleclamp(var_01 - param_00.storedrightsticky);
if(self.hastouchedstick == 0)
{
if(abs(var_02) >= 1)
{
param_00.storedangley = param_00.angles[1];
return 1;
}
return 0;
}
return 1;
}
//Function Number: 26
disable_player_controls()
{
self notify("kill_enable_weapons");
self allowfire(0);
}
//Function Number: 27
enable_player_controls()
{
self endon("enter_lobby");
self endon("kill_enable_weapons");
var_00 = getdvarint("virtualLobbyInFiringRange",0);
if(var_00 == 1 && level.in_firingrange == 1)
{
self allowfire(1);
}
}
//Function Number: 28
enter_vlobby(param_00)
{
maps\mp\_vl_firingrange::deactivate_targets();
var_01 = param_00.camera;
param_00 setorigin(var_01.origin);
param_00 playerlinkto(var_01,"tag_player");
param_00 cameralinkto(var_01,"tag_player");
param_00 setclientdvar("cg_fovscale","0.6153");
param_00 visionsetnakedforplayer("mp_virtual_lobby_cac",0);
if(isdefined(level.vlavatars) && isdefined(level.old_vl_focus) && isdefined(level.vlavatars[level.old_vl_focus]))
{
param_00 prep_for_controls(level.vlavatars[level.old_vl_focus],level.vlavatars[level.old_vl_focus].angles);
}
level.in_firingrange = 0;
param_00 allowfire(0);
maps\mp\_utility::updatesessionstate("spectator");
}
//Function Number: 29
monitor_move_btn_fr_vl(param_00)
{
for(;;)
{
if(isdefined(level.in_firingrange))
{
var_01 = getdvarint("virtualLobbyInFiringRange",0);
if(var_01 == 1 && !level.in_firingrange)
{
var_02 = maps\mp\_utility::getclassindex("lobby" + param_00.currentselectedclass + 1);
var_03 = maps\mp\_utility::cac_getcustomclassloc();
var_04 = param_00.loadouts[var_03][var_02];
var_05 = var_04["primary"];
var_06 = var_04["secondary"];
if(isdefined(level.vlavatars) && isdefined(level.old_vl_focus) && isdefined(level.vlavatars[level.old_vl_focus]))
{
param_00 prep_for_controls(level.vlavatars[level.old_vl_focus],level.vlavatars[level.old_vl_focus].angles);
}
var_07 = [];
if(isdefined(var_05) && var_05 != "specialty_null")
{
var_07[var_07.size] = maps\mp\gametypes\_class::buildweaponname(var_05,var_04["primaryAttachment1"],var_04["primaryAttachment2"],var_04["primaryAttachment3"],0,0);
}
if(isdefined(var_06) && var_06 != "specialty_null")
{
var_07[var_07.size] = maps\mp\gametypes\_class::buildweaponname(var_06,var_04["secondaryAttachment1"],var_04["secondaryAttachment2"],var_04["secondaryAttachment3"],0,0);
}
while(var_07.size > 0)
{
var_08 = param_00 loadweapons(var_07);
if(var_08 == 1)
{
break;
}
wait(0.05);
}
param_00 showviewmodel();
maps\mp\_vl_firingrange::enter_firingrange(param_00);
param_00 clientclearsoundsubmix("mp_no_foley",1);
setdvar("r_dof_physical_bokehEnable",0);
setdvar("r_dof_physical_enable",0);
setdvar("r_uiblurdstmode",0);
setdvar("r_blurdstgaussianblurradius",1);
}
else if(var_01 == 0 && level.in_firingrange)
{
param_00 hideviewmodel();
param_00 firingrangecleanup();
param_00 disable_player_controls();
if(isdefined(param_00.primaryweapon))
{
param_00 switchtoweapon(param_00.primaryweapon);
}
param_00 notify("enter_lobby");
enter_vlobby(param_00);
param_00 clientaddsoundsubmix("mp_no_foley",1);
setdvar("r_dof_physical_enable",1);
setdvar("r_dof_physical_bokehEnable",1);
setdvar("r_uiblurdstmode",3);
setdvar("r_blurdstgaussianblurradius",1.5);
}
}
wait(0.05);
}
}
//Function Number: 30
firingrangecleanup()
{
var_00 = self;
var_00 maps\mp\_vl_firingrange::grenadecleanup();
var_00 thread maps\mp\_vl_firingrange::riotshieldcleanup();
var_01 = var_00 getweaponslistoffhands();
foreach(var_03 in var_01)
{
var_00 maps\mp\gametypes\_class::takeoffhand(var_03);
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,147 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\mp\_vl_selfiebooth.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 5
* Decompile Time: 95 ms
* Timestamp: 10/27/2023 1:46:48 AM
*******************************************************************/
//Function Number: 1
init_selfiebooth()
{
var_00 = getent("selfie_player_pos","targetname");
if(!isdefined(var_00))
{
return;
}
var_01 = getent(var_00.target,"targetname");
var_02 = getent(var_01.target,"targetname");
level.selfiebooth = spawnstruct();
level.selfiebooth.player_pos = var_00;
level.selfiebooth.camera_pos = var_02;
setdvarifuninitialized("scr_vlobby_selfie_correction_y",32);
setdvarifuninitialized("scr_vlobby_selfie_collision_z",10);
level thread run_selfiebooth();
}
//Function Number: 2
run_selfiebooth()
{
while(!isdefined(level.player))
{
wait 0.05;
}
level.player spawnselfieavatar();
wait(5);
for(;;)
{
wait 0.05;
if(issystemlink() || !isonlinegame() || getdvarint("practiceroundgame"))
{
continue;
}
if(!should_take_selfie())
{
continue;
}
take_selfie();
}
}
//Function Number: 3
spawnselfieavatar()
{
while(!isdefined(level.player.spawned_avatar) || !isdefined(level.player.spawned_avatar.costume))
{
wait 0.05;
}
var_00 = level.selfiebooth.player_pos.origin;
var_01 = getdvarfloat("scr_vlobby_selfie_collision_z",0);
var_02 = getdvarfloat("scr_vlobby_selfie_correction_y",0);
var_03 = (0,var_02,var_01);
var_00 = var_00 + var_03;
var_04 = level.selfiebooth.player_pos.angles;
var_05 = maps\mp\agents\_agent_utility::getfreeagent("selfie_clone");
var_05.isactive = 1;
var_05 spawnagent(var_00,var_04,undefined,undefined,undefined,undefined,1);
var_06 = level.player getxuid();
setentplayerxuidforemblem(var_05,var_06);
var_05 enableanimstate(1);
var_05 setanimclass("vlobby_animclass");
var_05 setanimstate("lobby_idle","selfie_01",1);
var_05 setcostumemodels(level.player.spawned_avatar.costume);
var_05 linkto(level.selfiebooth.player_pos);
level.selfiebooth.clone = var_05;
self.selfie_clone = var_05;
}
//Function Number: 4
should_take_selfie()
{
if(!isdefined(level.player))
{
return 0;
}
if(!isdefined(level.player.spawned_avatar) || !isdefined(level.player.spawned_avatar.costume))
{
return 0;
}
if(!level.player selfieaccessselfiecustomassetsarestreamed())
{
return 0;
}
if(level.player selfieaccessselfievalidflaginplayerdef())
{
return 0;
}
return 1;
}
//Function Number: 5
take_selfie()
{
if(!isdefined(level.selfiebooth.clone))
{
return;
}
if(!isdefined(level.player))
{
return;
}
if(!isdefined(level.player.spawned_avatar))
{
return;
}
if(!isdefined(level.player.spawned_avatar.costume))
{
return;
}
var_00 = level.selfiebooth.clone.origin;
var_01 = level.selfiebooth.clone geteye();
level.selfiebooth.clone setcostumemodels(level.player.spawned_avatar.costume);
wait 0.05;
if(!level.player selfierequestupdate(level.selfiebooth.camera_pos.origin,var_00,var_01[2] - var_00[2],0,0))
{
return;
}
while(isdefined(level.player) && !level.player selfiescreenshottaken())
{
wait 0.05;
}
}

729
AW/PC/MP/maps/mp/_water.gsc Normal file
View File

@ -0,0 +1,729 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_water.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 27
* Decompile Time: 441 ms
* Timestamp: 10/27/2023 1:49:53 AM
*******************************************************************/
//Function Number: 1
init()
{
level._effect["water_wake"] = loadfx("vfx/treadfx/body_wake_water");
level._effect["water_wake_stationary"] = loadfx("vfx/treadfx/body_wake_water_stationary");
level._effect["water_splash_emerge"] = loadfx("vfx/water/body_splash_exit");
level._effect["water_splash_enter"] = loadfx("vfx/water/body_splash");
precacheshellshock("underwater");
if(!isdefined(level.waterline_ents))
{
level.waterline_ents = [];
}
if(!isdefined(level.waterline_offset))
{
level.waterline_offset = 0;
}
if(!isdefined(level.shallow_water_weapon))
{
setshallowwaterweapon("iw5_combatknife_mp");
}
if(!isdefined(level.deep_water_weapon))
{
setdeepwaterweapon("iw5_underwater_mp");
}
if(!isdefined(level.allow_swimming))
{
level.allow_swimming = 1;
}
if(level.deep_water_weapon == level.shallow_water_weapon)
{
level.allow_swimming = 0;
}
if(!isdefined(level.swimming_depth))
{
level.swimming_depth = 48;
}
var_00 = getentarray("trigger_underwater","targetname");
level.water_triggers = var_00;
foreach(var_02 in var_00)
{
var_02 create_clientside_water_ents();
var_02 thread watchplayerenterwater();
level thread clearwatervarsonspawn(var_02);
}
level thread onplayerconnectfunctions();
setdvar("scr_ball_water_drop_delay",10);
}
//Function Number: 2
player_set_in_water(param_00)
{
if(param_00)
{
self.inwater = 1;
if(!isscriptedagent(self) && maps\mp\_utility::isaigameparticipant(self) && !isdefined(level.bots_ignore_water))
{
self botsetflag("in_water",1);
return;
}
return;
}
self.inwater = undefined;
if(!isscriptedagent(self) && maps\mp\_utility::isaigameparticipant(self) && !isdefined(level.bots_ignore_water))
{
self botsetflag("in_water",0);
}
}
//Function Number: 3
watchforhostmigration()
{
level endon("game_ended");
self endon("disconnect");
for(;;)
{
self waittill("player_migrated");
foreach(var_01 in level.waterline_ents)
{
self initwaterclienttrigger(var_01.script_noteworthy,var_01);
}
}
}
//Function Number: 4
onplayerconnectfunctions()
{
level endon("game_ended");
for(;;)
{
level waittill("connected",var_00);
var_00 thread watchforhostmigration();
foreach(var_02 in level.waterline_ents)
{
var_00 initwaterclienttrigger(var_02.script_noteworthy,var_02);
}
}
}
//Function Number: 5
create_clientside_water_ents()
{
var_00 = common_scripts\utility::getstruct(self.target,"targetname");
var_00.origin = var_00.origin + (0,0,level.waterline_offset);
var_01 = var_00 common_scripts\utility::spawn_tag_origin();
var_01 show();
if(isdefined(self.script_noteworthy))
{
var_01.script_noteworthy = self.script_noteworthy;
level.waterline_ents = common_scripts\utility::array_add(level.waterline_ents,var_01);
}
}
//Function Number: 6
clearwatervarsonspawn(param_00)
{
level endon("game_ended");
for(;;)
{
level waittill("player_spawned",var_01);
if(!var_01 istouching(param_00))
{
var_01 player_set_in_water(0);
var_01.underwater = undefined;
var_01.inthickwater = undefined;
var_01.isswimming = undefined;
var_01.iswading = undefined;
var_01.water_last_weapon = undefined;
var_01.isshocked = undefined;
var_01 notify("out_of_water");
}
}
}
//Function Number: 7
watchplayerenterwater()
{
level endon("game_ended");
for(;;)
{
self waittill("trigger",var_00);
if(isdefined(level.ishorde) && level.ishorde && isagent(var_00) && isdefined(var_00.horde_type) && var_00.horde_type == "Quad" && !isdefined(var_00.inwater))
{
var_00 thread hordedoginwater(self);
}
if(!isplayer(var_00) && !isai(var_00))
{
continue;
}
if(!isalive(var_00))
{
continue;
}
if(!isdefined(var_00.inwater))
{
var_00 player_set_in_water(1);
var_00 thread playerinwater(self);
}
}
}
//Function Number: 8
hordedoginwater(param_00)
{
level endon("game_ended");
self endon("death");
self endon("disconnect");
player_set_in_water(1);
for(;;)
{
if(!inshallowwater(param_00,40))
{
wait(2.5);
if(!inshallowwater(param_00,20))
{
self dodamage(self.health,self.origin);
}
}
wait 0.05;
}
}
//Function Number: 9
playerinwater(param_00)
{
level endon("game_ended");
self endon("death");
self endon("disconnect");
thread inwaterwake(param_00);
thread playerwaterclearwait();
self.eyeheightlastframe = 0;
self.eye_velocity = 0;
for(;;)
{
if(maps\mp\_utility::isusingremote())
{
if(isdefined(self.underwater) && isdefined(self.isshocked))
{
self stopshellshock();
self.isshocked = undefined;
}
}
else if(isdefined(self.underwater) && !isdefined(self.isshocked))
{
self shellshock("underwater",19,0,0);
self.isshocked = 1;
}
if(!self istouching(param_00))
{
player_set_in_water(0);
self.underwater = undefined;
self.inthickwater = undefined;
self.isswimming = undefined;
self.movespeedscaler = level.baseplayermovescale;
maps\mp\gametypes\_weapons::updatemovespeedscale();
self notify("out_of_water");
break;
}
if(isdefined(self.inthickwater) && inshallowwater(param_00,32))
{
self.inthickwater = undefined;
self.movespeedscaler = level.baseplayermovescale;
maps\mp\gametypes\_weapons::updatemovespeedscale();
}
if(inshallowwater(param_00,32))
{
self.inthickwater = undefined;
if(isdefined(level.watermovescale))
{
self.movespeedscaler = level.baseplayermovescale * level.watermovescale;
}
else
{
self.movespeedscaler = level.baseplayermovescale;
}
maps\mp\gametypes\_weapons::updatemovespeedscale();
}
if(!isdefined(self.inthickwater) && !inshallowwater(param_00,32))
{
self.inthickwater = 1;
self.movespeedscaler = 0.7 * level.baseplayermovescale;
maps\mp\gametypes\_weapons::updatemovespeedscale();
}
if(!isdefined(self.underwater) && !isabovewaterline(param_00,0))
{
if(isdefined(self.balldropdelay) && self.balldropdelay > 0)
{
self.balldropdelay--;
wait 0.05;
continue;
}
self.underwater = 1;
if(isdefined(level.waterplayerhandledamagefunc))
{
self thread [[ level.waterplayerhandledamagefunc ]]();
}
else
{
thread playerhandledamage();
}
if(maps\mp\_utility::isaugmentedgamemode())
{
disableexo();
}
if(!maps\mp\_utility::isusingremote())
{
self shellshock("underwater",19,0,0);
self.isshocked = 1;
}
var_01 = self getcurrentweapon();
if(var_01 != "none")
{
var_02 = weaponinventorytype(var_01);
if(var_02 == "primary" || var_02 == "altmode")
{
self.water_last_weapon = var_01;
}
else if(isdefined(self.lastnonuseweapon) && self hasweapon(self.lastnonuseweapon))
{
self.water_last_weapon = self.lastnonuseweapon;
}
}
if(isdefined(level.gamemodeonunderwater))
{
self [[ level.gamemodeonunderwater ]](param_00);
}
if(isdefined(level.hordeonunderwater))
{
self [[ level.hordeonunderwater ]](param_00);
}
if(!level.iszombiegame)
{
maps\mp\killstreaks\_coop_util::playerstoppromptforstreaksupport();
}
}
if(isdefined(self.underwater) && isdefined(self.isswimming) || !isdefined(self.iswading) && inshallowwater(param_00,level.swimming_depth) || self getstance() == "prone" || !level.allow_swimming)
{
self.iswading = 1;
self.isswimming = undefined;
playerdisableunderwater();
if(isdefined(self.isjuggernaut) && self.isjuggernaut == 1)
{
playerenableunderwater("none");
self allowfire(0);
self disableoffhandsecondaryweapons();
}
else if(!isdefined(level.iszombiegame) || !isscriptedagent(self))
{
playerenableunderwater("shallow");
}
}
if(isdefined(self.underwater) && isdefined(self.iswading) || !isdefined(self.isswimming) && !inshallowwater(param_00,level.swimming_depth) && self getstance() != "prone" && level.allow_swimming)
{
self.isswimming = 1;
self.iswading = undefined;
playerdisableunderwater();
if(isdefined(self.isjuggernaut) && self.isjuggernaut == 1)
{
playerenableunderwater("none");
self allowfire(0);
self disableoffhandsecondaryweapons();
}
else if(!isdefined(level.iszombiegame) || !isscriptedagent(self))
{
playerenableunderwater("deep");
}
}
if(isdefined(self.balldropdelay))
{
self.balldropdelay = getdvarint("scr_ball_water_drop_delay",10);
}
if(isdefined(self.underwater) && isabovewaterline(param_00,0))
{
self.underwater = undefined;
self.isswimming = undefined;
self.iswading = undefined;
self notify("above_water");
var_03 = distance(self getvelocity(),(0,0,0));
var_04 = (self.origin[0],self.origin[1],getwaterline(param_00));
playfx(level._effect["water_splash_emerge"],var_04,anglestoforward((0,self.angles[1],0) + (270,180,0)));
if(!maps\mp\_utility::isusingremote())
{
self stopshellshock();
self.isshocked = undefined;
}
playerdisableunderwater();
if(maps\mp\_utility::isaugmentedgamemode())
{
enableexo();
}
if(!level.iszombiegame)
{
maps\mp\killstreaks\_coop_util::playerstartpromptforstreaksupport();
}
}
wait(0.05);
}
}
//Function Number: 10
isactivekillstreakwaterrestricted(param_00)
{
if(isdefined(param_00.killstreakindexweapon))
{
var_01 = self.pers["killstreaks"][self.killstreakindexweapon].streakname;
if(isdefined(var_01))
{
if(common_scripts\utility::string_find(var_01,"turret") > 0 || common_scripts\utility::string_find(var_01,"sentry") > 0)
{
return 1;
}
}
}
return 0;
}
//Function Number: 11
playerwaterclearwait()
{
var_00 = common_scripts\utility::waittill_any_return("death","out_of_water");
self.underwatermotiontype = undefined;
self.dont_give_or_take_weapon = undefined;
player_set_in_water(0);
self.underwater = undefined;
self.inthickwater = undefined;
self.water_last_weapon = undefined;
self.movespeedscaler = level.baseplayermovescale;
maps\mp\gametypes\_weapons::updatemovespeedscale();
}
//Function Number: 12
inwaterwake(param_00)
{
level endon("game_ended");
self endon("death");
self endon("disconnect");
self endon("out_of_water");
var_01 = distance(self getvelocity(),(0,0,0));
if(var_01 > 90)
{
var_02 = (self.origin[0],self.origin[1],getwaterline(param_00));
playfx(level._effect["water_splash_enter"],var_02,anglestoforward((0,self.angles[1],0) + (270,180,0)));
}
for(;;)
{
var_03 = self getvelocity();
var_01 = distance(var_03,(0,0,0));
if(var_01 > 0)
{
wait(max(1 - var_01 / 120,0.1));
}
else
{
wait(0.3);
}
if(var_01 > 5)
{
var_04 = vectornormalize((var_03[0],var_03[1],0));
var_05 = anglestoforward(vectortoangles(var_04) + (270,180,0));
var_02 = (self.origin[0],self.origin[1],getwaterline(param_00)) + var_01 / 4 * var_04;
playfx(level._effect["water_wake"],var_02,var_05);
continue;
}
var_02 = (self.origin[0],self.origin[1],getwaterline(param_00));
playfx(level._effect["water_wake_stationary"],var_02,anglestoforward((0,self.angles[1],0) + (270,180,0)));
}
}
//Function Number: 13
playerhandledamage()
{
level endon("game_ended");
self endon("death");
self endon("stopped_using_remote");
self endon("disconnect");
self endon("above_water");
if(isdefined(level.ishorde) && level.ishorde)
{
self endon("becameSpectator");
}
thread onplayerdeath();
wait(13);
for(;;)
{
if(!isdefined(self.isjuggernaut) || self.isjuggernaut == 0)
{
radiusdamage(self.origin + anglestoforward(self.angles) * 5,1,20,20,undefined,"MOD_TRIGGER_HURT");
}
wait(1);
}
}
//Function Number: 14
onplayerdeath()
{
level endon("game_ended");
self endon("disconnect");
self endon("above_water");
if(isdefined(level.ishorde) && level.ishorde)
{
common_scripts\utility::waittill_any("death","becameSpectator");
}
else
{
self waittill("death");
}
player_set_in_water(0);
self.underwater = undefined;
self.inthickwater = undefined;
self.isswimming = undefined;
self.iswading = undefined;
self.water_last_weapon = undefined;
self.underwatermotiontype = undefined;
self.eye_velocity = 0;
self.eyeheightlastframe = 0;
if(!level.iszombiegame)
{
maps\mp\killstreaks\_coop_util::playerstartpromptforstreaksupport();
}
}
//Function Number: 15
inshallowwater(param_00,param_01)
{
if(!isdefined(param_01))
{
param_01 = 32;
}
if(level getwaterline(param_00) - self.origin[2] <= param_01)
{
return 1;
}
return 0;
}
//Function Number: 16
isabovewaterline(param_00,param_01)
{
if(getplayereyeheight() + param_01 >= level getwaterline(param_00))
{
return 1;
}
return 0;
}
//Function Number: 17
getplayereyeheight()
{
var_00 = self geteye();
self.eye_velocity = var_00[2] - self.eyeheightlastframe;
self.eyeheightlastframe = var_00[2];
return var_00[2];
}
//Function Number: 18
getwaterline(param_00)
{
var_01 = common_scripts\utility::getstruct(param_00.target,"targetname");
var_02 = var_01.origin[2];
return var_02;
}
//Function Number: 19
playerenableunderwater(param_00)
{
level endon("game_ended");
self endon("death");
self endon("disconnect");
self endon("end_swimming");
if(!isdefined(param_00))
{
param_00 = "shallow";
}
if((param_00 == "shallow" && self hasweapon(level.shallow_water_weapon)) || param_00 == "deep" && self hasweapon(level.deep_water_weapon) || isdefined(level.disable_water_weapon_swap))
{
self.dont_give_or_take_weapon = 1;
}
switch(param_00)
{
case "deep":
break;
case "shallow":
break;
case "none":
break;
default:
break;
}
}
//Function Number: 20
playerdisableunderwater()
{
level endon("game_ended");
self endon("death");
self endon("disconnect");
if(isdefined(self.underwatermotiontype))
{
var_00 = self.underwatermotiontype;
self notify("end_swimming");
self enableweaponpickup();
common_scripts\utility::_enableweaponswitch();
common_scripts\utility::_enableoffhandweapons();
if(isdefined(self.isjuggernaut) && self.isjuggernaut == 1 && isdefined(self.heavyexodata))
{
self allowfire(1);
if(!isdefined(self.heavyexodata.haslongpunch) || self.heavyexodata.haslongpunch == 0)
{
self disableoffhandweapons();
}
if(!isdefined(self.heavyexodata.hasrockets) || self.heavyexodata.hasrockets == 0)
{
self disableoffhandsecondaryweapons();
}
else
{
self enableoffhandsecondaryweapons();
}
}
if(isdefined(level.ishorde) && isplayer(self))
{
maps\mp\gametypes\_weapons::restoreweapon("underwater");
}
else if(isdefined(self.water_last_weapon))
{
maps\mp\_utility::switch_to_last_weapon(self.water_last_weapon);
}
switch(var_00)
{
case "deep":
break;
case "shallow":
break;
case "none":
break;
default:
break;
}
}
}
//Function Number: 21
give_water_weapon(param_00)
{
if(!isdefined(self.dont_give_or_take_weapon) || !self.dont_give_or_take_weapon)
{
self giveweapon(param_00);
}
}
//Function Number: 22
take_water_weapon(param_00)
{
if(!isdefined(self.dont_give_or_take_weapon) || !self.dont_give_or_take_weapon)
{
self takeweapon(param_00);
}
}
//Function Number: 23
enableexo()
{
maps\mp\_utility::playerallowhighjump(1);
maps\mp\_utility::playerallowhighjumpdrop(1);
maps\mp\_utility::playerallowboostjump(1);
maps\mp\_utility::playerallowpowerslide(1);
maps\mp\_utility::playerallowdodge(1);
}
//Function Number: 24
disableexo()
{
maps\mp\_utility::playerallowhighjump(0);
maps\mp\_utility::playerallowhighjumpdrop(0);
maps\mp\_utility::playerallowboostjump(0);
maps\mp\_utility::playerallowpowerslide(0);
maps\mp\_utility::playerallowdodge(0);
}
//Function Number: 25
setshallowwaterweapon(param_00)
{
level.shallow_water_weapon = param_00;
}
//Function Number: 26
setdeepwaterweapon(param_00)
{
level.deep_water_weapon = param_00;
}
//Function Number: 27
isvalidunderwaterweapon(param_00)
{
switch(param_00)
{
case "iw5_underwater_mp":
case "iw5_combatknife_mp":
case "none":
break;
default:
break;
}
}

View File

@ -0,0 +1,266 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/mp/_zipline.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 13
* Decompile Time: 203 ms
* Timestamp: 10/27/2023 1:49:54 AM
*******************************************************************/
//Function Number: 1
init()
{
var_00 = [];
var_01 = getentarray("zipline","targetname");
for(var_02 = 0;var_02 < var_01.size;var_02++)
{
var_03 = maps\mp\gametypes\_gameobjects::createuseobject("neutral",var_01[var_02],var_00,(0,0,0));
var_03 maps\mp\gametypes\_gameobjects::allowuse("any");
var_03 maps\mp\gametypes\_gameobjects::setusetime(0.25);
var_03 maps\mp\gametypes\_gameobjects::setusetext(&"MP_ZIPLINE_USE");
var_03 maps\mp\gametypes\_gameobjects::setusehinttext(&"MP_ZIPLINE_USE");
var_03 maps\mp\gametypes\_gameobjects::setvisibleteam("any");
var_03.onbeginuse = ::onbeginuse;
var_03.onuse = ::onuse;
var_04 = [];
var_05 = getent(var_01[var_02].target,"targetname");
if(!isdefined(var_05))
{
}
while(isdefined(var_05))
{
var_04[var_04.size] = var_05;
if(isdefined(var_05.target))
{
var_05 = getent(var_05.target,"targetname");
continue;
}
break;
}
var_03.targets = var_04;
}
precachemodel("tag_player");
init_elevator();
}
//Function Number: 2
onbeginuse(param_00)
{
param_00 playsound("scrambler_pullout_lift_plr");
}
//Function Number: 3
onuse(param_00)
{
param_00 thread zip(self);
}
//Function Number: 4
zip(param_00)
{
self endon("death");
self endon("disconnect");
self endon("zipline_drop");
level endon("game_ended");
var_01 = spawn("script_origin",param_00.trigger.origin);
var_01.origin = param_00.trigger.origin;
var_01.angles = self.angles;
var_01 setmodel("tag_player");
self playerlinktodelta(var_01,"tag_player",1,180,180,180,180);
thread watchdeath(var_01);
thread watchdrop(var_01);
var_02 = param_00.targets;
for(var_03 = 0;var_03 < var_02.size;var_03++)
{
var_04 = distance(var_01.origin,var_02[var_03].origin) / 600;
var_05 = 0;
if(var_03 == 0)
{
var_05 = var_04 * 0.2;
}
var_01 moveto(var_02[var_03].origin,var_04,var_05);
if(var_01.angles != var_02[var_03].angles)
{
var_01 rotateto(var_02[var_03].angles,var_04 * 0.8);
}
wait(var_04);
}
self notify("destination");
self unlink();
var_01 delete();
}
//Function Number: 5
watchdrop(param_00)
{
self endon("death");
self endon("disconnect");
self endon("destination");
level endon("game_ended");
self notifyonplayercommand("zipline_drop","+gostand");
self waittill("zipline_drop");
self unlink();
param_00 delete();
}
//Function Number: 6
watchdeath(param_00)
{
self endon("disconnect");
self endon("destination");
self endon("zipline_drop");
level endon("game_ended");
self waittill("death");
self unlink();
param_00 delete();
}
//Function Number: 7
init_elevator()
{
var_00 = [];
var_01 = getentarray("elevator_button","targetname");
level.elevator = spawnstruct();
level.elevator.location = "floor1";
level.elevator.states = [];
level.elevator.states["elevator"] = "closed";
level.elevator.destinations = [];
for(var_02 = 0;var_02 < var_01.size;var_02++)
{
var_03 = maps\mp\gametypes\_gameobjects::createuseobject("neutral",var_01[var_02],var_00,(0,0,0));
var_03 maps\mp\gametypes\_gameobjects::allowuse("any");
var_03 maps\mp\gametypes\_gameobjects::setusetime(0.25);
var_03 maps\mp\gametypes\_gameobjects::setusetext(&"MP_ZIPLINE_USE");
var_03 maps\mp\gametypes\_gameobjects::setusehinttext(&"MP_ZIPLINE_USE");
var_03 maps\mp\gametypes\_gameobjects::setvisibleteam("any");
var_03.onbeginuse = ::onbeginuse_elevator;
var_03.onuse = ::onuse_elevator;
var_03.location = var_01[var_02].script_label;
level.elevator.states[var_01[var_02].script_label] = "closed";
if(isdefined(var_01[var_02].target))
{
var_04 = common_scripts\utility::getstruct(var_01[var_02].target,"targetname");
if(isdefined(var_04))
{
level.elevator.destinations[var_01[var_02].script_label] = var_04;
}
}
}
}
//Function Number: 8
onbeginuse_elevator(param_00)
{
}
//Function Number: 9
onuse_elevator(param_00)
{
switch(self.location)
{
case "floor1":
break;
case "floor2":
break;
case "elevator":
break;
}
}
//Function Number: 10
open(param_00)
{
level.elevator.states[param_00] = "opening";
var_01 = getent("e_door_" + param_00 + "_left","targetname");
var_02 = getent("e_door_" + param_00 + "_right","targetname");
if(isdefined(var_01.script_noteworthy) && var_01.script_noteworthy == "fahrenheit")
{
var_01 moveto(var_01.origin - anglestoforward(var_01.angles) * 35,2);
var_02 moveto(var_02.origin + anglestoforward(var_02.angles) * 35,2);
var_01 playsound("elev_door_open");
}
else
{
var_01 moveto(var_01.origin - anglestoright(var_01.angles) * 35,2);
var_02 moveto(var_02.origin + anglestoright(var_02.angles) * 35,2);
}
wait(2);
level.elevator.states[param_00] = "opened";
if(param_00 == "elevator")
{
level thread autoclose();
}
}
//Function Number: 11
close(param_00)
{
level.elevator.states[param_00] = "closing";
var_01 = getent("e_door_" + param_00 + "_left","targetname");
var_02 = getent("e_door_" + param_00 + "_right","targetname");
if(isdefined(var_01.script_noteworthy) && var_01.script_noteworthy == "fahrenheit")
{
var_01 moveto(var_01.origin + anglestoforward(var_01.angles) * 35,2);
var_02 moveto(var_02.origin - anglestoforward(var_02.angles) * 35,2);
var_01 playsound("elev_door_close");
}
else
{
var_01 moveto(var_01.origin + anglestoright(var_01.angles) * 35,2);
var_02 moveto(var_02.origin - anglestoright(var_02.angles) * 35,2);
}
wait(2);
level.elevator.states[param_00] = "closed";
}
//Function Number: 12
autoclose()
{
level endon("stop_autoClose");
wait(10);
level thread close(level.elevator.location);
level thread close("elevator");
}
//Function Number: 13
move()
{
level.elevator.states["elevator"] = "moving";
var_00 = getent("e_door_elevator_left","targetname");
var_01 = getent("e_door_elevator_right","targetname");
var_02 = getent("elevator","targetname");
if(level.elevator.location == "floor1")
{
level.elevator.location = "floor2";
var_03 = var_00.origin[2] - level.elevator.destinations["floor1"].origin[2];
var_00 moveto((var_00.origin[0],var_00.origin[1],level.elevator.destinations["floor2"].origin[2] + var_03),5);
var_03 = var_01.origin[2] - level.elevator.destinations["floor1"].origin[2];
var_01 moveto((var_01.origin[0],var_01.origin[1],level.elevator.destinations["floor2"].origin[2] + var_03),5);
var_02 moveto(level.elevator.destinations["floor2"].origin,5);
}
else
{
level.elevator.location = "floor1";
var_03 = var_01.origin[2] - level.elevator.destinations["floor2"].origin[2];
var_00 moveto((var_00.origin[0],var_00.origin[1],level.elevator.destinations["floor1"].origin[2] + var_03),5);
var_03 = var_01.origin[2] - level.elevator.destinations["floor2"].origin[2];
var_01 moveto((var_01.origin[0],var_01.origin[1],level.elevator.destinations["floor1"].origin[2] + var_03),5);
var_02 moveto(level.elevator.destinations["floor1"].origin,5);
}
wait(5);
var_02 playsound("elev_bell_ding");
level.elevator.states["elevator"] = "closed";
}

View File

@ -0,0 +1,109 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\mp\agents\_agent_common.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 8
* Decompile Time: 141 ms
* Timestamp: 10/27/2023 1:40:57 AM
*******************************************************************/
//Function Number: 1
codecallback_agentadded()
{
maps\mp\agents\_agent_utility::initagentscriptvariables();
var_00 = "axis";
if(level.numagents % 2 == 0)
{
var_00 = "allies";
}
level.numagents++;
maps\mp\agents\_agent_utility::set_agent_team(var_00);
level.agentarray[level.agentarray.size] = self;
}
//Function Number: 2
codecallback_agentdamaged(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
{
param_01 = maps\mp\_utility::_validateattacker(param_01);
self [[ maps\mp\agents\_agent_utility::agentfunc("on_damaged") ]](param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09);
}
//Function Number: 3
codecallback_agentkilled(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
{
param_01 = maps\mp\_utility::_validateattacker(param_01);
self thread [[ maps\mp\agents\_agent_utility::agentfunc("on_killed") ]](param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
}
//Function Number: 4
init()
{
initagentlevelvariables();
level thread add_agents_to_game();
}
//Function Number: 5
connectnewagent(param_00,param_01,param_02)
{
var_03 = maps\mp\agents\_agent_utility::getfreeagent(param_00);
if(isdefined(var_03))
{
var_03.connecttime = gettime();
if(isdefined(param_01))
{
var_03 maps\mp\agents\_agent_utility::set_agent_team(param_01);
}
else
{
var_03 maps\mp\agents\_agent_utility::set_agent_team(var_03.team);
}
if(isdefined(param_02))
{
var_03.class_override = param_02;
}
if(isdefined(level.agent_funcs[param_00]["onAIConnect"]))
{
var_03 [[ var_03 maps\mp\agents\_agent_utility::agentfunc("onAIConnect") ]]();
}
var_03 maps\mp\gametypes\_spawnlogic::addtocharactersarray();
}
return var_03;
}
//Function Number: 6
initagentlevelvariables()
{
level.agentarray = [];
level.numagents = 0;
}
//Function Number: 7
add_agents_to_game()
{
level endon("game_ended");
level waittill("connected",var_00);
var_01 = getmaxagents();
while(level.agentarray.size < var_01)
{
var_02 = addagent();
if(!isdefined(var_02))
{
wait 0.05;
continue;
}
}
}
//Function Number: 8
set_agent_health(param_00)
{
self.agenthealth = param_00;
self.health = param_00;
self.maxhealth = param_00;
}

View File

@ -0,0 +1,397 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\mp\agents\_agent_utility.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 15
* Decompile Time: 271 ms
* Timestamp: 10/27/2023 1:40:58 AM
*******************************************************************/
//Function Number: 1
agentfunc(param_00)
{
return level.agent_funcs[self.agent_type][param_00];
}
//Function Number: 2
set_agent_team(param_00,param_01)
{
self.team = param_00;
self.agentteam = param_00;
self.pers["team"] = param_00;
self.owner = param_01;
self setotherent(param_01);
self setentityowner(param_01);
}
//Function Number: 3
initagentscriptvariables()
{
self.agent_type = "player";
self.pers = [];
self.hasdied = 0;
self.isactive = 0;
self.isagent = 1;
self.wasti = 0;
self.issniper = 0;
self.spawntime = 0;
self.entity_number = self getentitynumber();
self.agent_teamparticipant = 0;
self.agent_gameparticipant = 0;
self.canperformclienttraces = 0;
self.agentname = undefined;
self.ignoreall = 0;
self.ignoreme = 0;
self detachall();
initplayerscriptvariables(0);
}
//Function Number: 4
initplayerscriptvariables(param_00)
{
if(!param_00)
{
self.class = undefined;
self.lastclass = undefined;
self.movespeedscaler = undefined;
self.avoidkillstreakonspawntimer = undefined;
self.guid = undefined;
self.name = undefined;
self.saved_actionslotdata = undefined;
self.perks = undefined;
self.weaponlist = undefined;
self.omaclasschanged = undefined;
self.objectivescaler = undefined;
self.touchtriggers = undefined;
self.carryobject = undefined;
self.claimtrigger = undefined;
self.canpickupobject = undefined;
self.killedinuse = undefined;
self.sessionteam = undefined;
self.sessionstate = undefined;
self.lastspawntime = undefined;
self.lastspawnpoint = undefined;
self.disabledweapon = undefined;
self.disabledweaponswitch = undefined;
self.disabledoffhandweapons = undefined;
self.disabledusability = undefined;
self.shielddamage = undefined;
self.shieldbullethits = undefined;
}
else
{
self.movespeedscaler = level.baseplayermovescale;
self.avoidkillstreakonspawntimer = 5;
self.guid = maps\mp\_utility::getuniqueid();
self.name = self.guid;
self.sessionteam = self.team;
self.sessionstate = "playing";
self.shielddamage = 0;
self.shieldbullethits = 0;
self.agent_gameparticipant = 1;
maps\mp\gametypes\_playerlogic::setupsavedactionslots();
thread maps\mp\perks\_perks::onplayerspawned();
if(maps\mp\_utility::isgameparticipant(self))
{
self.objectivescaler = 1;
maps\mp\gametypes\_gameobjects::init_player_gameobjects();
self.disabledweapon = 0;
self.disabledweaponswitch = 0;
self.disabledoffhandweapons = 0;
}
}
self.disabledusability = 1;
}
//Function Number: 5
getfreeagent(param_00)
{
var_01 = undefined;
if(isdefined(level.agentarray))
{
foreach(var_03 in level.agentarray)
{
if((!isdefined(var_03.isactive) || !var_03.isactive) && !isdefined(var_03.isreserved) || !var_03.isreserved)
{
if(isdefined(var_03.waitingtodeactivate) && var_03.waitingtodeactivate)
{
continue;
}
if(isdefined(level.despawning_agents) && common_scripts\utility::array_contains(level.despawning_agents,var_03))
{
continue;
}
var_01 = var_03;
var_01 initagentscriptvariables();
if(isdefined(param_00))
{
var_01.agent_type = param_00;
}
break;
}
}
}
return var_01;
}
//Function Number: 6
activateagent()
{
self.isactive = 1;
}
//Function Number: 7
deactivateagent()
{
thread deactivateagentdelayed();
}
//Function Number: 8
deactivateagentdelayed()
{
self notify("deactivateAgentDelayed");
self endon("deactivateAgentDelayed");
if(!isdefined(level.despawning_agents))
{
level.despawning_agents = [];
}
if(!common_scripts\utility::array_contains(level.despawning_agents,self))
{
level.despawning_agents = common_scripts\utility::array_add(level.despawning_agents,self);
}
if(maps\mp\_utility::isgameparticipant(self))
{
maps\mp\gametypes\_spawnlogic::removefromparticipantsarray();
}
maps\mp\gametypes\_spawnlogic::removefromcharactersarray();
wait(0.05);
self.isactive = 0;
self.hasdied = 0;
self.owner = undefined;
self.connecttime = undefined;
self.waitingtodeactivate = undefined;
foreach(var_01 in level.characters)
{
if(isdefined(var_01.attackers))
{
foreach(var_04, var_03 in var_01.attackers)
{
if(var_03 == self)
{
var_01.attackers[var_04] = undefined;
}
}
}
}
self.headmodel = undefined;
self detachall();
self notify("disconnect");
self agentclearscriptvars();
level.despawning_agents = common_scripts\utility::array_remove(level.despawning_agents,self);
}
//Function Number: 9
getnumactiveagents(param_00)
{
if(!isdefined(param_00))
{
param_00 = "all";
}
var_01 = getactiveagentsoftype(param_00);
return var_01.size;
}
//Function Number: 10
getactiveagentsoftype(param_00)
{
var_01 = [];
if(!isdefined(level.agentarray))
{
return var_01;
}
foreach(var_03 in level.agentarray)
{
if(isdefined(var_03.isactive) && var_03.isactive)
{
if(param_00 == "all" || var_03.agent_type == param_00)
{
var_01[var_01.size] = var_03;
}
}
}
return var_01;
}
//Function Number: 11
getnumownedactiveagents(param_00)
{
return getnumownedactiveagentsbytype(param_00,"all");
}
//Function Number: 12
getnumownedactiveagentsbytype(param_00,param_01)
{
var_02 = 0;
if(!isdefined(level.agentarray))
{
return var_02;
}
foreach(var_04 in level.agentarray)
{
if(isdefined(var_04.isactive) && var_04.isactive)
{
if(isdefined(var_04.owner) && var_04.owner == param_00)
{
if(param_01 == "all" || var_04.agent_type == param_01)
{
var_02++;
}
}
}
}
return var_02;
}
//Function Number: 13
getvalidspawnpathnodenearplayer(param_00,param_01)
{
var_02 = getnodesinradius(self.origin,350,64,128,"Path");
if(!isdefined(var_02) || var_02.size == 0)
{
return undefined;
}
if(isdefined(level.waterdeletez) && isdefined(level.trigunderwater))
{
var_03 = var_02;
var_02 = [];
foreach(var_05 in var_03)
{
if(var_05.origin[2] > level.waterdeletez || !ispointinvolume(var_05.origin,level.trigunderwater))
{
var_02[var_02.size] = var_05;
}
}
}
var_07 = anglestoforward(self.angles);
var_08 = -10;
var_09 = maps\mp\gametypes\_spawnlogic::getplayertraceheight(self);
var_0A = (0,0,var_09);
if(!isdefined(param_00))
{
param_00 = 0;
}
if(!isdefined(param_01))
{
param_01 = 0;
}
var_0B = [];
var_0C = [];
foreach(var_0E in var_02)
{
if(!var_0E doesnodeallowstance("stand"))
{
continue;
}
var_0F = vectornormalize(var_0E.origin - self.origin);
var_10 = vectordot(var_07,var_0F);
for(var_11 = 0;var_11 < var_0C.size;var_11++)
{
if(var_10 > var_0C[var_11])
{
for(var_12 = var_0C.size;var_12 > var_11;var_12--)
{
var_0C[var_12] = var_0C[var_12 - 1];
var_0B[var_12] = var_0B[var_12 - 1];
}
break;
}
}
var_0B[var_11] = var_0E;
var_0C[var_11] = var_10;
}
for(var_11 = 0;var_11 < var_0B.size;var_11++)
{
var_0E = var_0B[var_11];
var_14 = self.origin + var_0A;
var_15 = var_0E.origin + var_0A;
if(var_11 > 0)
{
wait(0.05);
}
if(!sighttracepassed(var_14,var_15,0,self))
{
continue;
}
if(param_01)
{
if(var_11 > 0)
{
wait(0.05);
}
var_16 = playerphysicstrace(var_0E.origin + var_0A,var_0E.origin);
if(distancesquared(var_16,var_0E.origin) > 1)
{
continue;
}
}
if(param_00)
{
if(var_11 > 0)
{
wait(0.05);
}
var_16 = physicstrace(var_14,var_15);
if(distancesquared(var_16,var_15) > 1)
{
continue;
}
}
return var_0E;
}
if(var_0B.size > 0 && isdefined(level.ishorde))
{
return var_0B[0];
}
}
//Function Number: 14
killagent(param_00)
{
param_00 dodamage(param_00.health + 500000,param_00.origin);
}
//Function Number: 15
killdog()
{
self [[ agentfunc("on_damaged") ]](level,undefined,self.health + 1,0,"MOD_CRUSH","none",(0,0,0),(0,0,0),"none",0);
}

View File

@ -0,0 +1,499 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\mp\agents\_agents.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 13
* Decompile Time: 238 ms
* Timestamp: 10/27/2023 1:40:59 AM
*******************************************************************/
//Function Number: 1
main()
{
if(isdefined(level.createfx_enabled) && level.createfx_enabled)
{
return;
}
setup_callbacks();
level.badplace_cylinder_func = ::badplace_cylinder;
level.badplace_delete_func = ::badplace_delete;
level thread maps\mp\agents\_agent_common::init();
if(!maps\mp\_utility::invirtuallobby() && !isdefined(level.iszombiegame) && level.iszombiegame)
{
level thread maps\mp\killstreaks\_agent_killstreak::init();
level thread maps\mp\killstreaks\_dog_killstreak::init();
}
}
//Function Number: 2
setup_callbacks()
{
if(!isdefined(level.agent_funcs))
{
level.agent_funcs = [];
}
if(!isdefined(level.iszombiegame) && level.iszombiegame)
{
level.agent_funcs["player"] = [];
level.agent_funcs["player"]["spawn"] = ::spawn_agent_player;
level.agent_funcs["player"]["think"] = ::maps\mp\bots\_bots_gametype_war::bot_war_think;
level.agent_funcs["player"]["on_killed"] = ::on_agent_player_killed;
level.agent_funcs["player"]["on_damaged"] = ::on_agent_player_damaged;
level.agent_funcs["player"]["on_damaged_finished"] = ::agent_damage_finished;
maps\mp\killstreaks\_agent_killstreak::setup_callbacks();
maps\mp\killstreaks\_dog_killstreak::setup_callbacks();
}
}
//Function Number: 3
wait_till_agent_funcs_defined()
{
while(!isdefined(level.agent_funcs))
{
wait(0.05);
}
}
//Function Number: 4
add_humanoid_agent(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
{
var_09 = maps\mp\agents\_agent_common::connectnewagent(param_00,param_01,param_02);
if(isdefined(var_09))
{
var_09 thread [[ var_09 maps\mp\agents\_agent_utility::agentfunc("spawn") ]](param_03,param_04,param_05,param_06,param_07,param_08);
}
return var_09;
}
//Function Number: 5
spawn_agent_player(param_00,param_01,param_02,param_03,param_04,param_05)
{
self endon("disconnect");
while(!isdefined(level.getspawnpoint))
{
wait 0.05;
}
if(self.hasdied)
{
wait(randomintrange(6,10));
}
maps\mp\agents\_agent_utility::initplayerscriptvariables(1);
if(isdefined(param_00) && isdefined(param_01))
{
var_06 = param_00;
var_07 = param_01;
self.lastspawnpoint = spawnstruct();
self.lastspawnpoint.origin = var_06;
self.lastspawnpoint.angles = var_07;
}
else
{
var_08 = self [[ level.getspawnpoint ]]();
var_06 = var_08.origin;
var_07 = var_08.angles;
self.lastspawnpoint = var_08;
}
maps\mp\agents\_agent_utility::activateagent();
self.lastspawntime = gettime();
self.spawntime = gettime();
var_09 = var_06 + (0,0,25);
var_0A = var_06;
var_0B = playerphysicstrace(var_09,var_0A);
if(distancesquared(var_0B,var_09) > 1)
{
var_06 = var_0B;
}
self spawnagent(var_06,var_07);
if(isdefined(param_05))
{
self.agent_override_difficulty = param_05;
}
if(isdefined(self.agent_override_difficulty))
{
if(self.agent_override_difficulty == "follow_code_and_dev_dvar")
{
maps\mp\bots\_bots_util::bot_set_difficulty(self botgetdifficulty(),1);
}
else
{
maps\mp\bots\_bots_util::bot_set_difficulty(param_05);
}
}
else
{
maps\mp\bots\_bots_util::bot_set_difficulty(self botgetdifficulty());
}
if(isdefined(param_03) && param_03)
{
self.use_randomized_personality = 1;
}
if(isdefined(self.use_randomized_personality) && self.use_randomized_personality)
{
if(!self.hasdied)
{
var_0C = self botgetdifficultysetting("advancedPersonality");
if(isdefined(var_0C) && var_0C != 0)
{
maps\mp\bots\_bots_personality::bot_balance_personality();
}
}
maps\mp\bots\_bots_personality::bot_assign_personality_functions();
}
else
{
maps\mp\bots\_bots_util::bot_set_personality("default");
}
initplayerclass();
maps\mp\agents\_agent_common::set_agent_health(100);
if(isdefined(param_04) && param_04)
{
self.respawn_on_death = 1;
}
if(isdefined(param_02))
{
maps\mp\agents\_agent_utility::set_agent_team(param_02.team,param_02);
}
if(isdefined(self.owner))
{
thread destroyonownerdisconnect(self.owner);
}
thread maps\mp\_flashgrenades::monitorflash();
self enableanimstate(0);
self [[ level.onspawnplayer ]]();
maps\mp\gametypes\_class::giveandapplyloadout(self.team,self.class,1);
thread maps\mp\bots\_bots::bot_think_watch_enemy(1);
thread maps\mp\bots\_bots::bot_think_crate();
if(self.agent_type == "player")
{
thread maps\mp\bots\_bots::bot_think_level_actions();
}
else if(self.agent_type == "odin_juggernaut")
{
thread maps\mp\bots\_bots::bot_think_level_actions(128);
}
thread maps\mp\bots\_bots_strategy::bot_think_tactical_goals();
self thread [[ maps\mp\agents\_agent_utility::agentfunc("think") ]]();
if(!self.hasdied)
{
maps\mp\gametypes\_spawnlogic::addtoparticipantsarray();
}
if(!self.hasdied)
{
thread maps\mp\gametypes\_weapons::onplayerspawned();
thread maps\mp\gametypes\_battlechatter_mp::onplayerspawned();
}
self.hasdied = 0;
thread maps\mp\gametypes\_healthoverlay::playerhealthregen();
if(isdefined(self.use_randomized_personality) && self.use_randomized_personality && isdefined(self.respawn_on_death) && self.respawn_on_death)
{
self setagentcostumeindex(1);
}
level notify("spawned_agent_player",self);
level notify("spawned_agent",self);
level notify("player_spawned",self);
self notify("spawned_player");
}
//Function Number: 6
destroyonownerdisconnect(param_00)
{
self endon("death");
param_00 waittill("killstreak_disowned");
self notify("owner_disconnect");
if(maps\mp\gametypes\_hostmigration::waittillhostmigrationdone())
{
wait(0.05);
}
self suicide();
}
//Function Number: 7
agent_damage_finished(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
{
if(isdefined(param_00) || isdefined(param_01))
{
if(!isdefined(param_00))
{
param_00 = param_01;
}
if(isdefined(self.allowvehicledamage) && !self.allowvehicledamage)
{
if(isdefined(param_00.classname) && param_00.classname == "script_vehicle")
{
return 0;
}
}
if(isdefined(param_00.classname) && param_00.classname == "auto_turret")
{
param_01 = param_00;
}
if(isdefined(param_01) && param_04 != "MOD_FALLING" && param_04 != "MOD_SUICIDE")
{
if(level.teambased)
{
if(isdefined(param_01.team) && param_01.team != self.team)
{
self setagentattacker(param_01);
}
}
else
{
self setagentattacker(param_01);
}
}
}
var_0A = maps\mp\gametypes\_damage::shouldplayblastimpact(param_03,param_04,param_05);
var_0B = self finishagentdamage(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,0,var_0A);
if(isdefined(var_0B))
{
thread finishagentdamage_impactfxwrapper(var_0B[0],var_0B[1],var_0B[2],var_0B[3],var_0B[4],var_0B[5],var_0B[6]);
}
if(!isdefined(self.isactive))
{
self.waitingtodeactivate = 1;
}
return 1;
}
//Function Number: 8
finishagentdamage_impactfxwrapper(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
waittillframeend;
if(!isdefined(self) || !isdefined(param_00))
{
return;
}
self finishagentdamage_impactfx(param_00,param_01,param_02,param_03,param_04,param_05,param_06);
}
//Function Number: 9
on_agent_generic_damaged(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
{
var_0A = isdefined(param_01) && isdefined(self.owner) && self.owner == param_01;
var_0B = maps\mp\_utility::attackerishittingteam(self.owner,param_01) || var_0A;
if(level.teambased && var_0B && !level.friendlyfire)
{
return 0;
}
if(!level.teambased && var_0A)
{
return 0;
}
if(isdefined(param_04) && param_04 == "MOD_CRUSH" && isdefined(param_00) && isdefined(param_00.classname) && param_00.classname == "script_vehicle")
{
return 0;
}
if(!isdefined(self) || !maps\mp\_utility::isreallyalive(self))
{
return 0;
}
if(isdefined(param_01) && param_01.classname == "script_origin" && isdefined(param_01.type) && param_01.type == "soft_landing")
{
return 0;
}
if(param_05 == "killstreak_emp_mp")
{
return 0;
}
if(param_05 == "bouncingbetty_mp" && !maps\mp\gametypes\_weapons::minedamageheightpassed(param_00,self))
{
return 0;
}
if((param_05 == "throwingknife_mp" || param_05 == "throwingknifejugg_mp") && param_04 == "MOD_IMPACT")
{
param_02 = self.health + 1;
}
if(isdefined(param_00) && isdefined(param_00.stuckenemyentity) && param_00.stuckenemyentity == self)
{
param_02 = self.health + 1;
}
if(param_02 <= 0)
{
return 0;
}
if(isdefined(level.modifyplayerdamage))
{
param_02 = [[ level.modifyplayerdamage ]](self,param_00,param_01,param_02,param_04,param_05,param_06,param_07,param_08);
}
if(isdefined(param_01) && param_01 != self && param_02 > 0 && !isdefined(param_08) || param_08 != "shield")
{
if(param_03 & level.idflags_stun)
{
var_0C = "stun";
}
else if(!maps\mp\gametypes\_damage::shouldweaponfeedback(param_06))
{
var_0C = "none";
}
else
{
var_0C = "standard";
if(isdefined(level.iszombiegame) && level.iszombiegame)
{
if(param_05 == "trap_zm_mp" || param_05 == "zombie_vaporize_mp" || param_05 == "zombie_trap_turret_mp" || param_05 == "zombie_water_trap_mp")
{
var_0C = "none";
}
else
{
if(param_05 == "iw5_microwavezm_mp")
{
var_0C = "nosound";
}
if(param_02 < self.health)
{
switch(param_08)
{
case "neck":
case "helmet":
case "head":
break;
}
}
}
}
}
}
}
//Function Number: 10
on_agent_player_damaged(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
{
var_0A = isdefined(param_01) && isdefined(self.owner) && self.owner == param_01;
if(!level.teambased && var_0A)
{
return 0;
}
maps\mp\gametypes\_damage::callback_playerdamage(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09);
}
//Function Number: 11
on_agent_player_killed(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
{
on_humanoid_agent_killed_common(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,1);
if(isplayer(param_01) && !isdefined(self.owner) || param_01 != self.owner && !isdefined(self.nonkillstreakagent) || !self.nonkillstreakagent)
{
maps\mp\gametypes\_damage::onkillstreakkilled(param_01,param_04,param_03,param_02,"destroyed_squad_mate");
}
if(isdefined(level.on_agent_player_killed))
{
[[ level.on_agent_player_killed ]](param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
}
thread maps\mp\gametypes\_weapons::dropscavengerfordeath(param_01);
if(self.isactive)
{
self.hasdied = 1;
if(maps\mp\_utility::getgametypenumlives() != 1 && isdefined(self.respawn_on_death) && self.respawn_on_death)
{
self thread [[ maps\mp\agents\_agent_utility::agentfunc("spawn") ]]();
return;
}
maps\mp\agents\_agent_utility::deactivateagent();
}
}
//Function Number: 12
on_humanoid_agent_killed_common(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
{
if(maps\mp\_riotshield::hasriotshieldequipped())
{
maps\mp\gametypes\_damage::launchshield(param_02,param_03);
if(!param_09)
{
var_0A = self dropitem(self getcurrentweapon());
if(isdefined(var_0A))
{
var_0A thread maps\mp\gametypes\_weapons::deletepickupafterawhile();
var_0A.owner = self;
var_0A.ownersattacker = param_01;
var_0A makeunusable();
}
}
}
if(param_09)
{
self thread [[ level.weapondropfunction ]](param_01,param_03);
}
if(!isdefined(self.bypassagentcorpse) || !self.bypassagentcorpse)
{
self.body = self finishagentdamage(param_08);
if(isdefined(level.agentshouldragdollimmediatelyfunc) && [[ level.agentshouldragdollimmediatelyfunc ]](param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09))
{
self.body startragdoll();
if(!self.body isragdoll())
{
thread maps\mp\gametypes\_damage::delaystartragdoll(self.body,param_06,param_05,param_04,param_00,param_03);
}
}
else
{
thread maps\mp\gametypes\_damage::delaystartragdoll(self.body,param_06,param_05,param_04,param_00,param_03);
}
}
maps\mp\_riotshield::riotshield_clear();
}
//Function Number: 13
initplayerclass()
{
if(isdefined(self.class_override))
{
self.class = self.class_override;
return;
}
if(maps\mp\bots\_bots_loadout::bot_setup_loadout_callback())
{
self.class = "callback";
return;
}
self.class = "class1";
}

View File

@ -0,0 +1,14 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\mp\agents\_agents_gametype_vlobby.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 1
* Decompile Time: 31 ms
* Timestamp: 10/27/2023 1:40:59 AM
*******************************************************************/
//Function Number: 1
main()
{
}

View File

@ -0,0 +1,276 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\mp\agents\_scriptedagents.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 21
* Decompile Time: 387 ms
* Timestamp: 10/27/2023 1:41:01 AM
*******************************************************************/
//Function Number: 1
onenterstate(param_00,param_01)
{
if(isdefined(self.onenteranimstate))
{
self [[ self.onenteranimstate ]](param_00,param_01);
}
}
//Function Number: 2
ondeactivate()
{
self notify("killanimscript");
}
//Function Number: 3
playanimuntilnotetrack(param_00,param_01,param_02,param_03)
{
playanimnuntilnotetrack(param_00,0,param_01,param_02,param_03);
}
//Function Number: 4
playanimnuntilnotetrack(param_00,param_01,param_02,param_03,param_04)
{
self setanimstate(param_00,param_01);
if(!isdefined(param_03))
{
param_03 = "end";
}
waituntilnotetrack(param_02,param_03,param_00,param_01,param_04);
}
//Function Number: 5
playanimnatrateuntilnotetrack(param_00,param_01,param_02,param_03,param_04,param_05)
{
self setanimstate(param_00,param_01,param_02);
if(!isdefined(param_04))
{
param_04 = "end";
}
waituntilnotetrack(param_03,param_04,param_00,param_01,param_05);
}
//Function Number: 6
waituntilnotetrack(param_00,param_01,param_02,param_03,param_04)
{
var_05 = gettime();
var_06 = undefined;
var_07 = undefined;
if(isdefined(param_02) && isdefined(param_03))
{
var_07 = getanimlength(self getanimentry(param_02,param_03));
}
for(;;)
{
self waittill(param_00,var_08);
if(isdefined(var_07))
{
var_06 = gettime() - var_05 * 0.001 / var_07;
}
if(!isdefined(var_07) || var_06 > 0)
{
if(var_08 == param_01 || var_08 == "end" || var_08 == "anim_will_finish" || var_08 == "finish")
{
break;
}
}
if(isdefined(param_04))
{
[[ param_04 ]](var_08,param_02,param_03,var_06);
}
}
}
//Function Number: 7
playanimfortime(param_00,param_01)
{
playanimnfortime(param_00,0,param_01);
}
//Function Number: 8
playanimnfortime(param_00,param_01,param_02)
{
self setanimstate(param_00,param_01);
wait(param_02);
}
//Function Number: 9
playanimnatratefortime(param_00,param_01,param_02,param_03)
{
self setanimstate(param_00,param_01,param_02);
wait(param_03);
}
//Function Number: 10
getanimscalefactors(param_00,param_01,param_02)
{
var_03 = length2d(param_00);
var_04 = param_00[2];
var_05 = length2d(param_01);
var_06 = param_01[2];
var_07 = 1;
var_08 = 1;
if(isdefined(param_02) && param_02)
{
var_09 = (param_01[0],param_01[1],0);
var_0A = vectornormalize(var_09);
if(vectordot(var_0A,param_00) < 0)
{
var_07 = 0;
}
else if(var_05 > 0)
{
var_07 = var_03 / var_05;
}
}
else if(var_05 > 0)
{
var_07 = var_03 / var_05;
}
if(abs(var_06) > 0.001 && var_06 * var_04 >= 0)
{
var_08 = var_04 / var_06;
}
var_0B = spawnstruct();
var_0B.xy = var_07;
var_0B.z = var_08;
return var_0B;
}
//Function Number: 11
getangleindex(param_00,param_01)
{
if(!isdefined(param_01))
{
param_01 = 10;
}
if(param_00 < 0)
{
return int(ceil(180 + param_00 - param_01 / 45));
}
return int(floor(180 + param_00 + param_01 / 45));
}
//Function Number: 12
droppostoground(param_00,param_01)
{
if(!isdefined(param_01))
{
param_01 = 18;
}
var_02 = param_00 + (0,0,param_01);
var_03 = param_00 + (0,0,param_01 * -1);
var_04 = self aiphysicstrace(var_02,var_03,self.radius,self.height,1);
if(abs(var_04[2] - var_02[2]) < 0.1)
{
return undefined;
}
if(abs(var_04[2] - var_03[2]) < 0.1)
{
return undefined;
}
return var_04;
}
//Function Number: 13
canmovepointtopoint(param_00,param_01,param_02,param_03)
{
if(!isdefined(param_02))
{
param_02 = 6;
}
if(!isdefined(param_03))
{
param_03 = self.radius;
}
var_04 = (0,0,1) * param_02;
var_05 = param_00 + var_04;
var_06 = param_01 + var_04;
return self aiphysicstracepassed(var_05,var_06,param_03,self.height - param_02,1);
}
//Function Number: 14
getvalidpointtopointmovelocation(param_00,param_01,param_02)
{
if(!isdefined(param_02))
{
param_02 = 6;
}
var_03 = (0,0,1) * param_02;
var_04 = param_00 + var_03;
var_05 = param_01 + var_03;
return self aiphysicstrace(var_04,var_05,self.radius + 4,self.height - param_02,1);
}
//Function Number: 15
getsafeanimmovedeltapercentage(param_00)
{
var_01 = getmovedelta(param_00);
var_02 = self localtoworldcoords(var_01);
var_03 = getvalidpointtopointmovelocation(self.origin,var_02);
var_04 = distance(self.origin,var_03);
var_05 = distance(self.origin,var_02);
return min(1,var_04 / var_05);
}
//Function Number: 16
safelyplayanimuntilnotetrack(param_00,param_01,param_02,param_03)
{
var_04 = getrandomanimentry(param_00);
safelyplayanimnuntilnotetrack(param_00,var_04,param_01,param_02,param_03);
}
//Function Number: 17
safelyplayanimatrateuntilnotetrack(param_00,param_01,param_02,param_03,param_04)
{
var_05 = getrandomanimentry(param_00);
safelyplayanimnatrateuntilnotetrack(param_00,var_05,param_01,param_02,param_03,param_04);
}
//Function Number: 18
safelyplayanimnatrateuntilnotetrack(param_00,param_01,param_02,param_03,param_04,param_05)
{
self setanimstate(param_00,param_01,param_02);
safelyplayanimnuntilnotetrack(param_00,param_01,param_03,param_04,param_05);
}
//Function Number: 19
safelyplayanimnuntilnotetrack(param_00,param_01,param_02,param_03,param_04)
{
var_05 = self getanimentry(param_00,param_01);
var_06 = getsafeanimmovedeltapercentage(var_05);
self scragentsetanimscale(var_06,1);
playanimnuntilnotetrack(param_00,param_01,param_02,param_03,param_04);
self scragentsetanimscale(1,1);
}
//Function Number: 20
getrandomanimentry(param_00)
{
var_01 = self getanimentrycount(param_00);
return randomint(var_01);
}
//Function Number: 21
getangleindexfromselfyaw(param_00)
{
var_01 = vectortoangles(param_00);
var_02 = angleclamp180(var_01[1] - self.angles[1]);
return getangleindex(var_02);
}

View File

@ -0,0 +1,291 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\mp\agents\dog\_dog_idle.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 16
* Decompile Time: 286 ms
* Timestamp: 10/27/2023 1:40:50 AM
*******************************************************************/
//Function Number: 1
main()
{
self.animsubstate = "none";
settimeofnextsound();
self.timeofnextsound = self.timeofnextsound + 2000;
self.bidlehitreaction = 0;
self scragentsetgoalpos(self.origin);
self scragentsetorientmode("face angle abs",self.angles);
self scragentsetanimmode("anim deltas");
self scragentsetphysicsmode("gravity");
updatestate();
}
//Function Number: 2
end_script()
{
if(isdefined(self.prevturnrate))
{
self scragentsetmaxturnspeed(self.prevturnrate);
self.prevturnrate = undefined;
}
}
//Function Number: 3
updatestate()
{
self endon("killanimscript");
self endon("cancelidleloop");
var_00 = self.animsubstate;
var_01 = determinestate();
if(var_01 != self.animsubstate)
{
enterstate(var_01);
}
updateangle();
switch(self.animsubstate)
{
case "idle_combat":
break;
case "idle_noncombat":
break;
default:
break;
}
}
//Function Number: 4
determinestate()
{
if(shouldattackidle())
{
return "idle_combat";
}
return "idle_noncombat";
}
//Function Number: 5
enterstate(param_00)
{
exitstate(self.animsubstate);
self.animsubstate = param_00;
playidleanim();
}
//Function Number: 6
exitstate(param_00)
{
if(isdefined(self.prevturnrate))
{
self scragentsetmaxturnspeed(self.prevturnrate);
self.prevturnrate = undefined;
}
}
//Function Number: 7
playidleanim()
{
if(self.animsubstate == "idle_combat")
{
self setanimstate("attack_idle");
return;
}
self setanimstate("casual_idle");
}
//Function Number: 8
updateangle()
{
var_00 = undefined;
if(isdefined(self.enemy) && distancesquared(self.enemy.origin,self.origin) < 1048576)
{
var_00 = self.enemy;
}
else if(isdefined(self.owner) && distancesquared(self.owner.origin,self.origin) > 576)
{
var_00 = self.owner;
}
if(isdefined(var_00))
{
var_01 = var_00.origin - self.origin;
var_02 = vectortoangles(var_01);
if(abs(angleclamp180(var_02[1] - self.angles[1])) > 1)
{
turntoangle(var_02[1]);
}
}
}
//Function Number: 9
shouldattackidle()
{
return isdefined(self.enemy) && maps\mp\_utility::isreallyalive(self.enemy) && distancesquared(self.origin,self.enemy.origin) < 1000000;
}
//Function Number: 10
getturnanimstate(param_00)
{
if(shouldattackidle())
{
if(param_00 < -135 || param_00 > 135)
{
return "attack_turn_180";
}
if(param_00 < 0)
{
return "attack_turn_right_90";
}
return "attack_turn_left_90";
}
if(param_00 < -135 || param_00 > 135)
{
return "casual_turn_180";
}
if(param_00 < 0)
{
return "casual_turn_right_90";
}
return "casual_turn_left_90";
}
//Function Number: 11
turntoangle(param_00)
{
var_01 = self.angles[1];
var_02 = angleclamp180(param_00 - var_01);
if(-0.5 < var_02 && var_02 < 0.5)
{
return;
}
if(-10 < var_02 && var_02 < 10)
{
rotatetoangle(param_00,2);
return;
}
var_03 = getturnanimstate(var_02);
var_04 = self getanimentry(var_03,0);
var_05 = getanimlength(var_04);
var_06 = getangledelta3d(var_04);
self scragentsetanimmode("anim angle delta");
if(animhasnotetrack(var_04,"turn_begin") && animhasnotetrack(var_04,"turn_end"))
{
maps\mp\agents\_scriptedagents::playanimnuntilnotetrack(var_03,0,"turn_in_place");
var_07 = getnotetracktimes(var_04,"turn_begin");
var_08 = getnotetracktimes(var_04,"turn_end");
var_09 = var_08[0] - var_07[0] * var_05;
var_0A = angleclamp180(var_02 - var_06[1]);
var_0B = abs(var_0A) / var_09 / 20;
var_0B = var_0B * 3.14159 / 180;
var_0C = (0,angleclamp180(self.angles[1] + var_0A),0);
self.prevturnrate = self scragentgetmaxturnspeed();
self scragentsetmaxturnspeed(var_0B);
self scragentsetorientmode("face angle abs",var_0C);
maps\mp\agents\_scriptedagents::waituntilnotetrack("turn_in_place","turn_end");
self scragentsetmaxturnspeed(self.prevturnrate);
self.prevturnrate = undefined;
maps\mp\agents\_scriptedagents::waituntilnotetrack("turn_in_place","end");
}
else
{
self.prevturnrate = self scragentgetmaxturnspeed();
var_0B = abs(angleclamp180(var_04 - var_0C[1])) / var_0B / 20;
var_0C = var_0C * 3.14159 / 180;
self scragentsetmaxturnspeed(var_0C);
var_0C = (0,angleclamp180(var_01 - var_0B[1]),0);
self scragentsetorientmode("face angle abs",var_0C);
maps\mp\agents\_scriptedagents::playanimnuntilnotetrack(var_03,0,"turn_in_place");
self scragentsetmaxturnspeed(self.prevturnrate);
self.prevturnrate = undefined;
}
self scragentsetanimmode("anim deltas");
playidleanim();
}
//Function Number: 12
rotatetoangle(param_00,param_01)
{
if(abs(angleclamp180(param_00 - self.angles[1])) <= param_01)
{
return;
}
var_02 = (0,param_00,0);
self scragentsetorientmode("face angle abs",var_02);
while(angleclamp180(param_00 - self.angles[1]) > param_01)
{
wait(0.1);
}
}
//Function Number: 13
settimeofnextsound()
{
self.timeofnextsound = gettime() + 8000 + randomint(5000);
}
//Function Number: 14
dohitreaction(param_00)
{
self.blockgoalpos = 1;
self.statelocked = 1;
self.bidlehitreaction = 1;
var_01 = angleclamp180(param_00 - self.angles[1]);
if(var_01 > 0)
{
var_02 = 1;
}
else
{
var_02 = 0;
}
self notify("cancelidleloop");
self scragentsetanimmode("anim deltas");
self scragentsetorientmode("face angle abs",self.angles);
maps\mp\agents\_scriptedagents::playanimnuntilnotetrack("stand_pain",var_02,"stand_pain");
self.blockgoalpos = 0;
self.statelocked = 0;
self.bidlehitreaction = 0;
self scragentsetorientmode("face angle abs",self.angles);
self.animsubstate = "none";
thread updatestate();
}
//Function Number: 15
ondamage(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
{
if(self.bidlehitreaction)
{
return;
}
var_0A = vectortoangles(param_07);
var_0B = var_0A[1] - 180;
dohitreaction(var_0B);
}
//Function Number: 16
onflashbanged(param_00,param_01,param_02,param_03,param_04,param_05)
{
if(self.bidlehitreaction)
{
return;
}
dohitreaction(self.angles[1] + 180);
}

View File

@ -0,0 +1,375 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\mp\agents\dog\_dog_melee.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 12
* Decompile Time: 212 ms
* Timestamp: 10/27/2023 1:40:51 AM
*******************************************************************/
//Function Number: 1
main()
{
self endon("death");
self endon("killanimscript");
self.curmeleetarget endon("disconnect");
var_00 = self.curmeleetarget.origin - self.origin;
var_01 = length(var_00);
var_02 = 1;
if(var_01 < self.attackoffset)
{
var_03 = self.origin;
var_02 = 0;
}
else
{
var_01 = var_01 / var_02;
var_03 = self.curmeleetarget.origin - var_01 * self.attackoffset;
}
var_04 = 0;
var_05 = self.origin + (0,0,30);
var_06 = self.curmeleetarget.origin + (0,0,30);
var_07 = physicstrace(var_05,var_06);
if(distancesquared(var_07,var_06) > 1)
{
meleefailed();
return;
}
if(var_02)
{
var_08 = maps\mp\agents\_scriptedagents::canmovepointtopoint(self.origin,var_03);
}
else
{
var_08 = 1;
}
var_09 = undefined;
if(!var_08)
{
var_0A = 0;
}
else
{
var_0A = shoulddoextendedkill(self.curmeleetarget);
var_0A = isdefined(var_0A);
}
self.blockgoalpos = 1;
if(var_0A)
{
doextendedkill(var_09);
return;
}
dostandardkill(var_03,var_08);
}
//Function Number: 2
end_script()
{
self scragentsetanimscale(1,1);
self.blockgoalpos = 0;
}
//Function Number: 3
getmeleeanimstate()
{
return "attack_run_and_jump";
}
//Function Number: 4
shoulddoextendedkill(param_00)
{
if(!self.enableextendedkill)
{
return undefined;
}
var_01 = 4;
if(!maps\mp\_utility::isgameparticipant(param_00))
{
return undefined;
}
if(isprotectedbyriotshield(param_00))
{
return undefined;
}
if(param_00 maps\mp\_utility::isjuggernaut())
{
return undefined;
}
var_02 = self.origin - param_00.origin;
if(abs(var_02[2]) > var_01)
{
return undefined;
}
var_03 = vectornormalize((var_02[0],var_02[1],0));
var_04 = anglestoforward(param_00.angles);
var_05 = vectordot(var_04,var_03);
if(var_05 > 0.707)
{
var_06 = 0;
var_07 = rotatevector((1,0,0),param_00.angles);
}
else if(var_07 < -0.707)
{
var_06 = 1;
var_07 = rotatevector((-1,0,0),var_01.angles);
}
else
{
var_08 = maps\mp\agents\dog\_dog_think::cross2d(var_04,var_06);
if(var_08 > 0)
{
var_06 = 3;
var_07 = rotatevector((0,-1,0),param_00.angles);
}
else
{
var_06 = 2;
var_07 = rotatevector((0,1,0),param_00.angles);
}
}
if(var_06 == 1)
{
var_09 = 128;
}
else
{
var_09 = 96;
}
var_0A = param_00.origin - var_09 * var_07;
var_0B = maps\mp\agents\_scriptedagents::droppostoground(var_0A);
if(!isdefined(var_0B))
{
return undefined;
}
if(abs(var_0B[2] - var_0A[2]) > var_01)
{
return undefined;
}
if(!self aiphysicstracepassed(param_00.origin + (0,0,4),var_0B + (0,0,4),self.radius,self.height))
{
return undefined;
}
return var_06;
}
//Function Number: 5
doextendedkill(param_00)
{
var_01 = "attack_extended";
domeleedamage(self.curmeleetarget,self.curmeleetarget.health,"MOD_MELEE_DOG");
var_02 = self getanimentry(var_01,param_00);
thread extendedkill_sticktovictim(var_02,self.curmeleetarget.origin,self.curmeleetarget.angles);
maps\mp\agents\_scriptedagents::playanimnuntilnotetrack(var_01,param_00,"attack","end");
self notify("kill_stick");
self.curmeleetarget = undefined;
self scragentsetanimmode("anim deltas");
self unlink();
}
//Function Number: 6
extendedkill_sticktovictim(param_00,param_01,param_02)
{
self endon("death");
self endon("killanimscript");
self endon("kill_stick");
wait(0.05);
if(isalive(self.curmeleetarget))
{
return;
}
var_03 = self.curmeleetarget getcorpseentity();
self linkto(var_03);
self scragentdoanimrelative(param_00,param_01,param_02);
}
//Function Number: 7
dostandardkill(param_00,param_01)
{
var_02 = getmeleeanimstate();
var_03 = 0;
if(!param_01)
{
if(self agentcanseesentient(self.curmeleetarget))
{
var_04 = maps\mp\agents\_scriptedagents::droppostoground(self.curmeleetarget.origin);
if(isdefined(var_04))
{
var_03 = 1;
param_00 = var_04;
}
else
{
meleefailed();
return;
}
}
else
{
meleefailed();
return;
}
}
self.lastmeleefailedmypos = undefined;
self.lastmeleefailedpos = undefined;
var_05 = self getanimentry(var_02,0);
var_06 = getanimlength(var_05);
var_07 = getnotetracktimes(var_05,"dog_melee");
if(var_07.size > 0)
{
var_08 = var_07[0] * var_06;
}
else
{
var_08 = var_07;
}
self scragentdoanimlerp(self.origin,param_00,var_08);
thread updatelerppos(self.curmeleetarget,var_08,param_01);
maps\mp\agents\_scriptedagents::playanimnuntilnotetrack(var_02,0,"attack","dog_melee");
self notify("cancel_updatelerppos");
var_09 = 0;
if(isdefined(self.curmeleetarget))
{
var_09 = self.curmeleetarget.health;
}
if(isdefined(self.meleedamage))
{
var_09 = self.meleedamage;
}
if(isdefined(self.curmeleetarget))
{
domeleedamage(self.curmeleetarget,var_09,"MOD_IMPACT");
}
self.curmeleetarget = undefined;
if(var_03)
{
self scragentsetanimscale(0,1);
}
else
{
self scragentsetanimscale(1,1);
}
self scragentsetphysicsmode("gravity");
self scragentsetanimmode("anim deltas");
maps\mp\agents\_scriptedagents::waituntilnotetrack("attack","end");
}
//Function Number: 8
updatelerppos(param_00,param_01,param_02)
{
self endon("killanimscript");
self endon("death");
self endon("cancel_updatelerppos");
param_00 endon("disconnect");
param_00 endon("death");
var_03 = param_01;
var_04 = 0.05;
for(;;)
{
wait(var_04);
var_03 = var_03 - var_04;
if(var_03 <= 0)
{
break;
}
var_05 = getupdatedattackpos(param_00,param_02);
if(!isdefined(var_05))
{
break;
}
self scragentdoanimlerp(self.origin,var_05,var_03);
}
}
//Function Number: 9
getupdatedattackpos(param_00,param_01)
{
if(!param_01)
{
var_02 = maps\mp\agents\_scriptedagents::droppostoground(param_00.origin);
return var_02;
}
var_03 = param_01.origin - self.origin;
var_04 = length(var_03);
if(var_04 < self.attackoffset)
{
return self.origin;
}
var_03 = var_03 / var_04;
var_05 = param_01.origin - var_03 * self.attackoffset;
if(maps\mp\agents\_scriptedagents::canmovepointtopoint(self.origin,var_05))
{
return var_05;
}
return undefined;
}
//Function Number: 10
isprotectedbyriotshield(param_00)
{
if(param_00 maps\mp\_riotshield::hasriotshield())
{
var_01 = self.origin - param_00.origin;
var_02 = vectornormalize((var_01[0],var_01[1],0));
var_03 = anglestoforward(param_00.angles);
var_04 = vectordot(var_03,var_01);
if(param_00 maps\mp\_riotshield::hasriotshieldequipped())
{
if(var_04 > 0.766)
{
return 1;
}
}
else if(var_04 < -0.766)
{
return 1;
}
}
return 0;
}
//Function Number: 11
domeleedamage(param_00,param_01,param_02)
{
if(isprotectedbyriotshield(param_00))
{
return;
}
param_00 dodamage(param_01,self.origin,self,self,param_02);
}
//Function Number: 12
meleefailed()
{
self.lastmeleefailedmypos = self.origin;
self.lastmeleefailedpos = self.curmeleetarget.origin;
}

View File

@ -0,0 +1,432 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\mp\agents\dog\_dog_move.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 23
* Decompile Time: 411 ms
* Timestamp: 10/27/2023 1:40:53 AM
*******************************************************************/
//Function Number: 1
main()
{
self endon("killanimscript");
self.blockgoalpos = 0;
self scragentsetphysicsmode("gravity");
startmove();
continuemovement();
}
//Function Number: 2
end_script()
{
self.blockgoalpos = 0;
cancelallbut(undefined);
self scragentsetanimscale(1,1);
}
//Function Number: 3
setupmovement()
{
thread waitforrunwalkchange();
thread waitforsharpturn();
thread waitforstop();
}
//Function Number: 4
continuemovement()
{
setupmovement();
self scragentsetanimmode("code_move");
self scragentsetorientmode("face motion");
self scragentsetanimscale(1,1);
setmoveanim(self.movemode);
}
//Function Number: 5
setmoveanim(param_00)
{
self setanimstate(param_00);
}
//Function Number: 6
waitforrunwalkchange()
{
self endon("dogmove_endwait_runwalk");
var_00 = self.movemode;
for(;;)
{
if(var_00 != self.movemode)
{
setmoveanim(self.movemode);
var_00 = self.movemode;
}
wait(0.1);
}
}
//Function Number: 7
dosharpturn(param_00)
{
var_01 = vectortoangles(param_00);
var_02 = angleclamp180(var_01[1] - self.angles[1]);
var_03 = maps\mp\agents\_scriptedagents::getangleindex(var_02);
if(var_03 == 4)
{
continuemovement();
return;
}
var_04 = "sharp_turn";
var_05 = self getanimentry(var_04,var_03);
var_06 = getangledelta(var_05);
self scragentsetanimmode("anim deltas");
self scragentsetorientmode("face angle abs",(0,angleclamp180(var_01[1] - var_06),0));
maps\mp\agents\_scriptedagents::playanimnuntilnotetrack(var_04,var_03,"sharp_turn");
continuemovement();
}
//Function Number: 8
waitforsharpturn()
{
self endon("dogmove_endwait_sharpturn");
self waittill("path_dir_change",var_00);
cancelallbut("sharpturn");
dosharpturn(var_00);
}
//Function Number: 9
waitforstop()
{
self endon("dogmove_endwait_stop");
self waittill("stop_soon");
if(isdefined(self.barrivalsenabled) && !self.barrivalsenabled)
{
thread waitforstop();
return;
}
var_00 = getstopanimstate();
var_01 = self getanimentry(var_00.state,var_00.index);
var_02 = getmovedelta(var_01);
var_03 = getangledelta(var_01);
var_04 = self getpathgoalpos();
var_05 = var_04 - self.origin;
if(length(var_05) + 12 < length(var_02))
{
thread waitforstop();
return;
}
var_06 = getstopdata();
var_07 = calcanimstartpos(var_06.pos,var_06.angles[1],var_02,var_03);
var_08 = maps\mp\agents\_scriptedagents::droppostoground(var_07);
if(!isdefined(var_08))
{
thread waitforstop();
return;
}
if(!maps\mp\agents\_scriptedagents::canmovepointtopoint(var_06.pos,var_08))
{
thread waitforstop();
return;
}
cancelallbut("stop");
thread waitforpathsetwhilestopping();
thread waitforsharpturnwhilestopping();
if(distancesquared(var_07,self.origin) > 4)
{
self scragentsetwaypoint(var_07);
thread waitforblockedwhilestopping();
self waittill("waypoint_reached");
self notify("dogmove_endwait_blockedwhilestopping");
}
var_09 = var_04 - self.origin;
var_0A = vectortoangles(var_09);
var_0B = (0,var_0A[1] - var_03,0);
var_0C = maps\mp\agents\_scriptedagents::getanimscalefactors(var_04 - self.origin,var_02);
self scragentsetanimmode("anim deltas");
self scragentsetorientmode("face angle abs",var_0B,(0,var_0A[1],0));
self scragentsetanimscale(var_0C.xy,var_0C.z);
maps\mp\agents\_scriptedagents::playanimnuntilnotetrack(var_00.state,var_00.index,"move_stop");
self scragentsetgoalpos(self.origin);
}
//Function Number: 10
waitforpathsetwhilestopping()
{
self endon("killanimscript");
self endon("dogmove_endwait_pathsetwhilestopping");
var_00 = self scragentgetgoalpos();
self waittill("path_set");
var_01 = self scragentgetgoalpos();
if(distancesquared(var_00,var_01) < 1)
{
thread waitforpathsetwhilestopping();
return;
}
self notify("dogmove_endwait_stop");
self notify("dogmove_endwait_sharpturnwhilestopping");
continuemovement();
}
//Function Number: 11
waitforsharpturnwhilestopping()
{
self endon("killanimscript");
self endon("dogmove_endwait_sharpturnwhilestopping");
self waittill("path_dir_change",var_00);
self notify("dogmove_endwait_pathsetwhilestopping");
self notify("dogmove_endwait_stop");
dosharpturn(var_00);
}
//Function Number: 12
waitforblockedwhilestopping()
{
self endon("killanimscript");
self endon("dogmove_endwait_blockedwhilestopping");
self waittill("path_blocked");
self notify("dogmove_endwait_stop");
self scragentsetwaypoint(undefined);
}
//Function Number: 13
waitforstopearly()
{
self endon("killanimscript");
self endon("dogmove_endwait_stopearly");
var_00 = self getanimentry("move_stop_4",0);
var_01 = getmovedelta(var_00);
var_02 = length(var_01);
var_03 = self.preferredoffsetfromowner + var_02;
var_04 = var_03 * var_03;
if(distancesquared(self.origin,self.owner.origin) <= var_04)
{
return;
}
for(;;)
{
if(!isdefined(self.owner))
{
break;
}
if(distancesquared(self.origin,self.owner.origin) < var_04)
{
var_05 = self localtoworldcoords(var_01);
self scragentsetgoalpos(var_05);
break;
}
wait(0.1);
}
}
//Function Number: 14
cancelallbut(param_00)
{
var_01 = ["runwalk","sharpturn","stop","pathsetwhilestopping","blockedwhilestopping","sharpturnwhilestopping","stopearly"];
var_02 = isdefined(param_00);
foreach(var_04 in var_01)
{
if(var_02 && var_04 == param_00)
{
continue;
}
self notify("dogmove_endwait_" + var_04);
}
}
//Function Number: 15
startmove()
{
var_00 = self getnegotiationstartnode();
if(isdefined(var_00))
{
var_01 = var_00.origin;
}
else
{
var_01 = self getpathgoalpos();
}
if(distancesquared(var_01,self.origin) < 10000)
{
return;
}
var_02 = self getlookaheaddir();
var_03 = vectortoangles(var_02);
var_04 = self getvelocity();
if(length2dsquared(var_04) > 16)
{
var_04 = vectornormalize(var_04);
if(vectordot(var_04,var_02) > 0.707)
{
return;
}
}
var_05 = angleclamp180(var_03[1] - self.angles[1]);
var_06 = maps\mp\agents\_scriptedagents::getangleindex(var_05);
var_07 = self getanimentry("move_start",var_06);
var_08 = getmovedelta(var_07);
var_09 = rotatevector(var_08,self.angles) + self.origin;
if(!maps\mp\agents\_scriptedagents::canmovepointtopoint(self.origin,var_09))
{
return;
}
var_0A = getangledelta3d(var_07);
self scragentsetanimmode("anim deltas");
if(3 <= var_06 && var_06 <= 5)
{
self scragentsetorientmode("face angle abs",(0,angleclamp180(var_03[1] - var_0A[1]),0));
}
else
{
self scragentsetorientmode("face angle abs",self.angles);
}
self.blockgoalpos = 1;
maps\mp\agents\_scriptedagents::playanimnuntilnotetrack("move_start",var_06,"move_start");
self.blockgoalpos = 0;
}
//Function Number: 16
getstopdata()
{
var_00 = spawnstruct();
if(isdefined(self.node))
{
var_00.pos = self.node.origin;
var_00.angles = self.node.angles;
}
else
{
var_01 = self getpathgoalpos();
var_00.pos = var_01;
var_00.angles = vectortoangles(self getlookaheaddir());
}
return var_00;
}
//Function Number: 17
getstopanimstate(param_00)
{
if(isdefined(self.node))
{
var_01 = self.node.angles[1] - self.angles[1];
var_02 = maps\mp\agents\_scriptedagents::getangleindex(var_01);
}
else
{
var_02 = 4;
}
var_03 = spawnstruct();
var_03.state = "move_stop";
var_03.index = var_02;
return var_03;
}
//Function Number: 18
calcanimstartpos(param_00,param_01,param_02,param_03)
{
var_04 = param_01 - param_03;
var_05 = (0,var_04,0);
var_06 = anglestoforward(var_05);
var_07 = anglestoright(var_05);
var_08 = var_06 * param_02[0];
var_09 = var_07 * param_02[1];
return param_00 - var_08 + var_09;
}
//Function Number: 19
dog_addlean()
{
var_00 = clamp(self.leanamount / 25,-1,1);
if(var_00 > 0)
{
}
}
//Function Number: 20
handlefootstepnotetracks(param_00,param_01,param_02,param_03)
{
if(1)
{
return 0;
}
switch(param_00)
{
case "footstep_back_right_large":
case "footstep_back_left_large":
case "footstep_front_right_large":
case "footstep_front_left_large":
case "footstep_back_right_small":
case "footstep_back_left_small":
case "footstep_front_right_small":
case "footstep_front_left_small":
break;
}
}
//Function Number: 21
dohitreaction(param_00)
{
cancelallbut(undefined);
self.blockgoalpos = 1;
self.statelocked = 1;
var_01 = angleclamp180(param_00 - self.angles[1]);
if(var_01 > 0)
{
var_02 = 1;
}
else
{
var_02 = 0;
}
self scragentsetanimmode("anim deltas");
self scragentsetorientmode("face angle abs",self.angles);
maps\mp\agents\_scriptedagents::playanimnuntilnotetrack("run_pain",var_02,"run_pain");
self.blockgoalpos = 0;
self.statelocked = 0;
continuemovement();
}
//Function Number: 22
ondamage(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
{
if(self.statelocked)
{
return;
}
var_0A = vectortoangles(param_07);
var_0B = var_0A[1] - 180;
dohitreaction(var_0B);
}
//Function Number: 23
onflashbanged(param_00,param_01,param_02,param_03,param_04,param_05)
{
if(self.statelocked)
{
return;
}
dohitreaction(self.angles[1] + 180);
}

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