mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-07 17:17:50 -05:00
Full AW Dump
This commit is contained in:
parent
b53c55f0c0
commit
b2389dbcb9
@ -1,249 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* 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()
|
|
||||||
{
|
|
||||||
}
|
|
@ -1,281 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* 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)];
|
|
||||||
}
|
|
@ -1,14 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* 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()
|
|
||||||
{
|
|
||||||
}
|
|
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
File diff suppressed because it is too large
Load Diff
@ -1,857 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* 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
@ -1,72 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* 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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,80 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* 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);
|
|
||||||
}
|
|
@ -1,653 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* 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);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,116 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* 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)
|
|
||||||
{
|
|
||||||
}
|
|
@ -1,267 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* 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;
|
|
||||||
}
|
|
@ -1,232 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* 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;
|
|
||||||
}
|
|
@ -1,457 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* 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];
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load Diff
@ -1,203 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* 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);
|
|
||||||
}
|
|
@ -1,227 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* 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);
|
|
||||||
}
|
|
@ -1,465 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* 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);
|
|
||||||
}
|
|
@ -1,73 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* 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();
|
|
||||||
}
|
|
@ -1,220 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* 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();
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,432 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* 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";
|
|
||||||
}
|
|
@ -1,68 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* 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;
|
|
||||||
}
|
|
@ -1,191 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* 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);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,493 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* 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;
|
|
||||||
}
|
|
@ -1,38 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* 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);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,53 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* 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
@ -1,125 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* 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);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,266 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* 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";
|
|
||||||
}
|
|
@ -1,397 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* 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);
|
|
||||||
}
|
|
@ -1,86 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: maps/mp/gametypes/_damagefeedback.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 3
|
|
||||||
* Decompile Time: 42 ms
|
|
||||||
* Timestamp: 10/27/2023 1:50:10 AM
|
|
||||||
*******************************************************************/
|
|
||||||
|
|
||||||
//Function Number: 1
|
|
||||||
init()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 2
|
|
||||||
updatedamagefeedback(param_00,param_01)
|
|
||||||
{
|
|
||||||
if(!isplayer(self) || !isdefined(param_00))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch(param_00)
|
|
||||||
{
|
|
||||||
case "scavenger":
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "hitspecialarmor":
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "hitjuggernaut":
|
|
||||||
case "hitlightarmor":
|
|
||||||
case "hitblastshield":
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "mp_solar":
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "laser":
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "headshot":
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "hitmorehealth":
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "killshot":
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "killshot_headshot":
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "nosound":
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "none":
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 3
|
|
||||||
setdamagefeedbackclientomnvar(param_00)
|
|
||||||
{
|
|
||||||
var_01 = gettime();
|
|
||||||
if(isdefined(self.damagefeedbacktime))
|
|
||||||
{
|
|
||||||
var_02 = self.damagefeedbacktime;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var_02 = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var_01 - var_02 < 300 && self getclientomnvar("damage_feedback") == param_00)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
self.damagefeedbacktime = var_01;
|
|
||||||
self setclientomnvar("damage_feedback",param_00);
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load Diff
@ -1,595 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: maps\mp\gametypes\_persistance.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 22
|
|
||||||
* Decompile Time: 388 ms
|
|
||||||
* Timestamp: 10/27/2023 1:42:24 AM
|
|
||||||
*******************************************************************/
|
|
||||||
|
|
||||||
//Function Number: 1
|
|
||||||
init()
|
|
||||||
{
|
|
||||||
level.persistentdatainfo = [];
|
|
||||||
maps\mp\gametypes\_class::init();
|
|
||||||
maps\mp\gametypes\_missions::init();
|
|
||||||
maps\mp\gametypes\_playercards::init();
|
|
||||||
maps\mp\gametypes\_rank::init();
|
|
||||||
if(getdvarint("virtualLobbyActive",0) > 0)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
level thread updatebufferedstats();
|
|
||||||
level thread uploadglobalstatcounters();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 2
|
|
||||||
initbufferedstats()
|
|
||||||
{
|
|
||||||
self.bufferedstats = [];
|
|
||||||
if(maps\mp\_utility::rankingenabled())
|
|
||||||
{
|
|
||||||
self.bufferedstats["totalShots"] = self getrankedplayerdata("totalShots");
|
|
||||||
self.bufferedstats["accuracy"] = self getrankedplayerdata("accuracy");
|
|
||||||
self.bufferedstats["misses"] = self getrankedplayerdata("misses");
|
|
||||||
self.bufferedstats["hits"] = self getrankedplayerdata("hits");
|
|
||||||
self.bufferedstats["timePlayedAllies"] = self getrankedplayerdata("timePlayedAllies");
|
|
||||||
self.bufferedstats["timePlayedOpfor"] = self getrankedplayerdata("timePlayedOpfor");
|
|
||||||
self.bufferedstats["timePlayedOther"] = self getrankedplayerdata("timePlayedOther");
|
|
||||||
self.bufferedstats["timePlayedTotal"] = self getrankedplayerdata("timePlayedTotal");
|
|
||||||
}
|
|
||||||
|
|
||||||
self.bufferedchildstats = [];
|
|
||||||
self.bufferedchildstats["round"] = [];
|
|
||||||
self.bufferedchildstats["round"]["timePlayed"] = self getcommonplayerdata("round","timePlayed");
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 3
|
|
||||||
statget(param_00)
|
|
||||||
{
|
|
||||||
return self getrankedplayerdata(param_00);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 4
|
|
||||||
statset(param_00,param_01)
|
|
||||||
{
|
|
||||||
if(!maps\mp\_utility::rankingenabled() || maps\mp\_utility::practiceroundgame())
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
self setrankedplayerdata(param_00,param_01);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 5
|
|
||||||
statadd(param_00,param_01,param_02)
|
|
||||||
{
|
|
||||||
if(!maps\mp\_utility::rankingenabled() || maps\mp\_utility::practiceroundgame())
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(param_02))
|
|
||||||
{
|
|
||||||
var_03 = self getrankedplayerdata(param_00,param_02);
|
|
||||||
self setrankedplayerdata(param_00,param_02,param_01 + var_03);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_03 = self getrankedplayerdata(param_01);
|
|
||||||
self setrankedplayerdata(param_00,param_01 + var_03);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 6
|
|
||||||
statgetchild(param_00,param_01)
|
|
||||||
{
|
|
||||||
if(param_00 == "round")
|
|
||||||
{
|
|
||||||
return self getcommonplayerdata(param_00,param_01);
|
|
||||||
}
|
|
||||||
|
|
||||||
return self getrankedplayerdata(param_00,param_01);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 7
|
|
||||||
statsetchild(param_00,param_01,param_02)
|
|
||||||
{
|
|
||||||
if(isagent(self))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(maps\mp\_utility::invirtuallobby())
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(param_00 == "round")
|
|
||||||
{
|
|
||||||
self setcommonplayerdata(param_00,param_01,param_02);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!maps\mp\_utility::rankingenabled() || maps\mp\_utility::practiceroundgame())
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
self setrankedplayerdata(param_00,param_01,param_02);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 8
|
|
||||||
stataddchild(param_00,param_01,param_02)
|
|
||||||
{
|
|
||||||
if(!maps\mp\_utility::rankingenabled() || maps\mp\_utility::practiceroundgame())
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_03 = self getrankedplayerdata(param_00,param_01);
|
|
||||||
self setrankedplayerdata(param_00,param_01,var_03 + param_02);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 9
|
|
||||||
statgetchildbuffered(param_00,param_01)
|
|
||||||
{
|
|
||||||
if(!maps\mp\_utility::rankingenabled())
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
return self.bufferedchildstats[param_00][param_01];
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 10
|
|
||||||
statsetchildbuffered(param_00,param_01,param_02)
|
|
||||||
{
|
|
||||||
if(!maps\mp\_utility::rankingenabled())
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
self.bufferedchildstats[param_00][param_01] = param_02;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 11
|
|
||||||
stataddchildbuffered(param_00,param_01,param_02)
|
|
||||||
{
|
|
||||||
if(!maps\mp\_utility::rankingenabled())
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_03 = statgetchildbuffered(param_00,param_01);
|
|
||||||
statsetchildbuffered(param_00,param_01,var_03 + param_02);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 12
|
|
||||||
stataddbufferedwithmax(param_00,param_01,param_02)
|
|
||||||
{
|
|
||||||
if(!maps\mp\_utility::rankingenabled())
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_03 = statgetbuffered(param_00) + param_01;
|
|
||||||
if(var_03 > param_02)
|
|
||||||
{
|
|
||||||
var_03 = param_02;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var_03 < statgetbuffered(param_00))
|
|
||||||
{
|
|
||||||
var_03 = param_02;
|
|
||||||
}
|
|
||||||
|
|
||||||
statsetbuffered(param_00,var_03);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 13
|
|
||||||
stataddchildbufferedwithmax(param_00,param_01,param_02,param_03)
|
|
||||||
{
|
|
||||||
if(!maps\mp\_utility::rankingenabled())
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_04 = statgetchildbuffered(param_00,param_01) + param_02;
|
|
||||||
if(var_04 > param_03)
|
|
||||||
{
|
|
||||||
var_04 = param_03;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var_04 < statgetchildbuffered(param_00,param_01))
|
|
||||||
{
|
|
||||||
var_04 = param_03;
|
|
||||||
}
|
|
||||||
|
|
||||||
statsetchildbuffered(param_00,param_01,var_04);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 14
|
|
||||||
statgetbuffered(param_00)
|
|
||||||
{
|
|
||||||
if(!maps\mp\_utility::rankingenabled())
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
return self.bufferedstats[param_00];
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 15
|
|
||||||
statsetbuffered(param_00,param_01)
|
|
||||||
{
|
|
||||||
if(!maps\mp\_utility::rankingenabled())
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
self.bufferedstats[param_00] = param_01;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 16
|
|
||||||
stataddbuffered(param_00,param_01)
|
|
||||||
{
|
|
||||||
if(!maps\mp\_utility::rankingenabled())
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_02 = statgetbuffered(param_00);
|
|
||||||
statsetbuffered(param_00,var_02 + param_01);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 17
|
|
||||||
updatebufferedstats()
|
|
||||||
{
|
|
||||||
wait(0.15);
|
|
||||||
var_00 = 0;
|
|
||||||
while(!level.gameended)
|
|
||||||
{
|
|
||||||
maps\mp\gametypes\_hostmigration::waittillhostmigrationdone();
|
|
||||||
var_00++;
|
|
||||||
if(var_00 >= level.players.size)
|
|
||||||
{
|
|
||||||
var_00 = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(level.players[var_00]))
|
|
||||||
{
|
|
||||||
level.players[var_00] writebufferedstats();
|
|
||||||
level.players[var_00] updateweaponbufferedstats();
|
|
||||||
}
|
|
||||||
|
|
||||||
wait(2);
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach(var_02 in level.players)
|
|
||||||
{
|
|
||||||
var_02 writebufferedstats();
|
|
||||||
var_02 updateweaponbufferedstats();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 18
|
|
||||||
writebufferedstats()
|
|
||||||
{
|
|
||||||
var_00 = maps\mp\_utility::rankingenabled() && !maps\mp\_utility::practiceroundgame();
|
|
||||||
if(var_00)
|
|
||||||
{
|
|
||||||
foreach(var_03, var_02 in self.bufferedstats)
|
|
||||||
{
|
|
||||||
self setrankedplayerdata(var_03,var_02);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach(var_03, var_02 in self.bufferedchildstats)
|
|
||||||
{
|
|
||||||
foreach(var_07, var_06 in var_02)
|
|
||||||
{
|
|
||||||
if(var_03 == "round")
|
|
||||||
{
|
|
||||||
self setcommonplayerdata(var_03,var_07,var_06);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var_00)
|
|
||||||
{
|
|
||||||
self setrankedplayerdata(var_03,var_07,var_06);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 19
|
|
||||||
incrementweaponstat(param_00,param_01,param_02)
|
|
||||||
{
|
|
||||||
if(maps\mp\_utility::iskillstreakweapon(param_00))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(level.disableweaponstats) && level.disableweaponstats)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(maps\mp\_utility::rankingenabled() && !maps\mp\_utility::practiceroundgame())
|
|
||||||
{
|
|
||||||
var_03 = self getrankedplayerdata("weaponStats",param_00,param_01);
|
|
||||||
self setrankedplayerdata("weaponStats",param_00,param_01,var_03 + param_02);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 20
|
|
||||||
incrementattachmentstat(param_00,param_01,param_02)
|
|
||||||
{
|
|
||||||
if(maps\mp\_utility::rankingenabled() && !maps\mp\_utility::practiceroundgame())
|
|
||||||
{
|
|
||||||
var_03 = self getrankedplayerdata("attachmentsStats",param_00,param_01);
|
|
||||||
self setrankedplayerdata("attachmentsStats",param_00,param_01,var_03 + param_02);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 21
|
|
||||||
updateweaponbufferedstats()
|
|
||||||
{
|
|
||||||
if(!isdefined(self.trackingweaponname))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(self.trackingweaponname == "" || self.trackingweaponname == "none")
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_00 = self.trackingweaponname;
|
|
||||||
if(maps\mp\_utility::iskillstreakweapon(var_00) || maps\mp\_utility::isenvironmentweapon(var_00))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_01 = maps\mp\_utility::getweaponnametokens(var_00);
|
|
||||||
if(var_01[0] == "iw5")
|
|
||||||
{
|
|
||||||
var_01[0] = var_01[0] + "_" + var_01[1];
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var_01[0] == "alt")
|
|
||||||
{
|
|
||||||
foreach(var_03 in var_01)
|
|
||||||
{
|
|
||||||
if(var_03 == "gl" || var_03 == "gp25" || var_03 == "m320")
|
|
||||||
{
|
|
||||||
var_01[0] = "gl";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var_03 == "shotgun")
|
|
||||||
{
|
|
||||||
var_01[0] = "shotgun";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var_01[0] == "alt")
|
|
||||||
{
|
|
||||||
var_01[0] = var_01[1] + "_" + var_01[2];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var_01[0] == "gl" || var_01[0] == "shotgun")
|
|
||||||
{
|
|
||||||
if(self.trackingweaponshots > 0)
|
|
||||||
{
|
|
||||||
incrementattachmentstat(var_01[0],"shots",self.trackingweaponshots);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(self.trackingweaponkills > 0)
|
|
||||||
{
|
|
||||||
incrementattachmentstat(var_01[0],"kills",self.trackingweaponkills);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(self.trackingweaponhits > 0)
|
|
||||||
{
|
|
||||||
incrementattachmentstat(var_01[0],"hits",self.trackingweaponhits);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(self.trackingweaponheadshots > 0)
|
|
||||||
{
|
|
||||||
incrementattachmentstat(var_01[0],"headShots",self.trackingweaponheadshots);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(self.trackingweapondeaths > 0)
|
|
||||||
{
|
|
||||||
incrementattachmentstat(var_01[0],"deaths",self.trackingweapondeaths);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(self.trackingweaponhipfirekills > 0)
|
|
||||||
{
|
|
||||||
incrementattachmentstat(var_01[0],"hipfirekills",self.trackingweaponhipfirekills);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(self.trackingweaponusetime > 0)
|
|
||||||
{
|
|
||||||
incrementattachmentstat(var_01[0],"timeInUse",self.trackingweaponusetime);
|
|
||||||
}
|
|
||||||
|
|
||||||
self.trackingweaponname = "none";
|
|
||||||
self.trackingweaponshots = 0;
|
|
||||||
self.trackingweaponkills = 0;
|
|
||||||
self.trackingweaponhits = 0;
|
|
||||||
self.trackingweaponheadshots = 0;
|
|
||||||
self.trackingweapondeaths = 0;
|
|
||||||
self.trackingweaponhipfirekills = 0;
|
|
||||||
self.trackingweaponusetime = 0;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!maps\mp\_utility::iscacprimaryweapon(var_01[0]) && !maps\mp\_utility::iscacsecondaryweapon(var_01[0]))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(self.trackingweaponshots > 0)
|
|
||||||
{
|
|
||||||
incrementweaponstat(var_01[0],"shots",self.trackingweaponshots);
|
|
||||||
maps\mp\_matchdata::logweaponstat(var_01[0],"shots",self.trackingweaponshots);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(self.trackingweaponkills > 0)
|
|
||||||
{
|
|
||||||
incrementweaponstat(var_01[0],"kills",self.trackingweaponkills);
|
|
||||||
maps\mp\_matchdata::logweaponstat(var_01[0],"kills",self.trackingweaponkills);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(self.trackingweaponhits > 0)
|
|
||||||
{
|
|
||||||
incrementweaponstat(var_01[0],"hits",self.trackingweaponhits);
|
|
||||||
maps\mp\_matchdata::logweaponstat(var_01[0],"hits",self.trackingweaponhits);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(self.trackingweaponheadshots > 0)
|
|
||||||
{
|
|
||||||
incrementweaponstat(var_01[0],"headShots",self.trackingweaponheadshots);
|
|
||||||
maps\mp\_matchdata::logweaponstat(var_01[0],"headShots",self.trackingweaponheadshots);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(self.trackingweapondeaths > 0)
|
|
||||||
{
|
|
||||||
incrementweaponstat(var_01[0],"deaths",self.trackingweapondeaths);
|
|
||||||
maps\mp\_matchdata::logweaponstat(var_01[0],"deaths",self.trackingweapondeaths);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(self.trackingweaponhipfirekills > 0)
|
|
||||||
{
|
|
||||||
incrementweaponstat(var_01[0],"hipfirekills",self.trackingweaponhipfirekills);
|
|
||||||
maps\mp\_matchdata::logweaponstat(var_01[0],"hipfirekills",self.trackingweaponhipfirekills);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(self.trackingweaponusetime > 0)
|
|
||||||
{
|
|
||||||
incrementweaponstat(var_01[0],"timeInUse",self.trackingweaponusetime);
|
|
||||||
maps\mp\_matchdata::logweaponstat(var_01[0],"timeInUse",self.trackingweaponusetime);
|
|
||||||
}
|
|
||||||
|
|
||||||
var_05 = getweaponattachments(var_00);
|
|
||||||
foreach(var_07 in var_05)
|
|
||||||
{
|
|
||||||
var_08 = maps\mp\_utility::attachmentmap_tobase(var_07);
|
|
||||||
if(var_08 == "gl" || var_08 == "shotgun")
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(self.trackingweaponshots > 0)
|
|
||||||
{
|
|
||||||
if(var_08 != "tactical")
|
|
||||||
{
|
|
||||||
incrementattachmentstat(var_08,"shots",self.trackingweaponshots);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(self.trackingweaponkills > 0)
|
|
||||||
{
|
|
||||||
if(var_08 != "tactical")
|
|
||||||
{
|
|
||||||
incrementattachmentstat(var_08,"kills",self.trackingweaponkills);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(self.trackingweaponhits > 0)
|
|
||||||
{
|
|
||||||
if(var_08 != "tactical")
|
|
||||||
{
|
|
||||||
incrementattachmentstat(var_08,"hits",self.trackingweaponhits);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(self.trackingweaponheadshots > 0)
|
|
||||||
{
|
|
||||||
if(var_08 != "tactical")
|
|
||||||
{
|
|
||||||
incrementattachmentstat(var_08,"headShots",self.trackingweaponheadshots);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(self.trackingweaponhipfirekills > 0)
|
|
||||||
{
|
|
||||||
if(var_08 != "tactical")
|
|
||||||
{
|
|
||||||
incrementattachmentstat(var_08,"hipfirekills",self.trackingweaponhipfirekills);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(self.trackingweaponusetime > 0)
|
|
||||||
{
|
|
||||||
if(var_08 != "tactical")
|
|
||||||
{
|
|
||||||
incrementattachmentstat(var_08,"timeInUse",self.trackingweaponusetime);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(self.trackingweapondeaths > 0)
|
|
||||||
{
|
|
||||||
incrementattachmentstat(var_08,"deaths",self.trackingweapondeaths);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
self.trackingweaponname = "none";
|
|
||||||
self.trackingweaponshots = 0;
|
|
||||||
self.trackingweaponkills = 0;
|
|
||||||
self.trackingweaponhits = 0;
|
|
||||||
self.trackingweaponheadshots = 0;
|
|
||||||
self.trackingweapondeaths = 0;
|
|
||||||
self.trackingweaponhipfirekills = 0;
|
|
||||||
self.trackingweaponusetime = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 22
|
|
||||||
uploadglobalstatcounters()
|
|
||||||
{
|
|
||||||
level waittill("game_ended");
|
|
||||||
if(!maps\mp\_utility::matchmakinggame())
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_00 = 0;
|
|
||||||
var_01 = 0;
|
|
||||||
var_02 = 0;
|
|
||||||
var_03 = 0;
|
|
||||||
var_04 = 0;
|
|
||||||
var_05 = 0;
|
|
||||||
foreach(var_07 in level.players)
|
|
||||||
{
|
|
||||||
var_05 = var_05 + var_07.timeplayed["total"];
|
|
||||||
}
|
|
||||||
|
|
||||||
incrementcounter("global_minutes",int(var_05 / 60));
|
|
||||||
if(!maps\mp\_utility::waslastround())
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
wait(0.05);
|
|
||||||
foreach(var_07 in level.players)
|
|
||||||
{
|
|
||||||
var_00 = var_00 + var_07.kills;
|
|
||||||
var_01 = var_01 + var_07.deaths;
|
|
||||||
var_02 = var_02 + var_07.assists;
|
|
||||||
var_03 = var_03 + var_07.headshots;
|
|
||||||
var_04 = var_04 + var_07.suicides;
|
|
||||||
}
|
|
||||||
|
|
||||||
incrementcounter("global_kills",var_00);
|
|
||||||
incrementcounter("global_deaths",var_01);
|
|
||||||
incrementcounter("global_assists",var_02);
|
|
||||||
incrementcounter("global_headshots",var_03);
|
|
||||||
incrementcounter("global_suicides",var_04);
|
|
||||||
incrementcounter("global_games",1);
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,653 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: maps/mp/killstreaks/_coop_util.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 31
|
|
||||||
* Decompile Time: 487 ms
|
|
||||||
* Timestamp: 10/27/2023 1:51:35 AM
|
|
||||||
*******************************************************************/
|
|
||||||
|
|
||||||
//Function Number: 1
|
|
||||||
init()
|
|
||||||
{
|
|
||||||
if(!level.teambased)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
level.streaksupportqueueallies = [];
|
|
||||||
level.streaksupportqueueaxis = [];
|
|
||||||
level.streaksuppordisabledcount = [];
|
|
||||||
setdvar("scr_coop_util_delay","1");
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 2
|
|
||||||
promptforstreaksupport(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
|
|
||||||
{
|
|
||||||
if(!level.teambased)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_07 = (0,0,0);
|
|
||||||
if(isdefined(param_05))
|
|
||||||
{
|
|
||||||
var_07 = param_05.origin;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_08 = spawn("script_model",var_07);
|
|
||||||
var_08 hide();
|
|
||||||
var_08.team = param_00;
|
|
||||||
var_08.needsupportvo = param_03;
|
|
||||||
var_08.buddyjoinedvo = param_04;
|
|
||||||
var_08.streakplayer = param_05;
|
|
||||||
var_08.joinedvo = param_06;
|
|
||||||
var_08.jointext = param_01;
|
|
||||||
var_08.splashref = param_02;
|
|
||||||
var_08.active = 0;
|
|
||||||
var_08.promptid = getuniquestreakpromptid();
|
|
||||||
if(isdefined(param_05))
|
|
||||||
{
|
|
||||||
var_08 disableplayeruse(param_05);
|
|
||||||
}
|
|
||||||
|
|
||||||
addstreaksupportprompt(var_08);
|
|
||||||
return var_08.promptid;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 3
|
|
||||||
stoppromptforstreaksupport(param_00)
|
|
||||||
{
|
|
||||||
if(!level.teambased)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach(var_02 in level.streaksupportqueueallies)
|
|
||||||
{
|
|
||||||
if(var_02.promptid == param_00)
|
|
||||||
{
|
|
||||||
thread removestreaksupportprompt(var_02);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach(var_02 in level.streaksupportqueueaxis)
|
|
||||||
{
|
|
||||||
if(var_02.promptid == param_00)
|
|
||||||
{
|
|
||||||
thread removestreaksupportprompt(var_02);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 4
|
|
||||||
waittillbuddyjoinedstreak(param_00)
|
|
||||||
{
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
level waittill("buddyJoinedStreak",var_01,var_02);
|
|
||||||
if(var_02 == param_00)
|
|
||||||
{
|
|
||||||
return var_01;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 5
|
|
||||||
playersetupcoopstreak(param_00)
|
|
||||||
{
|
|
||||||
playersetupcoopstreakinternal(param_00);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 6
|
|
||||||
playerresetaftercoopstreak()
|
|
||||||
{
|
|
||||||
playerresetaftercoopstreakinternal();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 7
|
|
||||||
playerstoppromptforstreaksupport()
|
|
||||||
{
|
|
||||||
if(!level.teambased)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!isdefined(level.streaksuppordisabledcount[self.guid]))
|
|
||||||
{
|
|
||||||
level.streaksuppordisabledcount[self.guid] = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
level.streaksuppordisabledcount[self.guid]++;
|
|
||||||
if(level.streaksuppordisabledcount[self.guid] > 1)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(self.team == "allies")
|
|
||||||
{
|
|
||||||
foreach(var_01 in level.streaksupportqueueallies)
|
|
||||||
{
|
|
||||||
var_01 disableplayeruse(self);
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach(var_01 in level.streaksupportqueueaxis)
|
|
||||||
{
|
|
||||||
var_01 disableplayeruse(self);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 8
|
|
||||||
playerstartpromptforstreaksupport()
|
|
||||||
{
|
|
||||||
if(!level.teambased)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
level.streaksuppordisabledcount[self.guid]--;
|
|
||||||
if(level.streaksuppordisabledcount[self.guid] > 0)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(self.team == "allies")
|
|
||||||
{
|
|
||||||
foreach(var_01 in level.streaksupportqueueallies)
|
|
||||||
{
|
|
||||||
if(self != var_01.streakplayer)
|
|
||||||
{
|
|
||||||
var_01 enableplayeruse(self);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach(var_01 in level.streaksupportqueueaxis)
|
|
||||||
{
|
|
||||||
if(self != var_01.streakplayer)
|
|
||||||
{
|
|
||||||
var_01 enableplayeruse(self);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 9
|
|
||||||
addstreaksupportprompt(param_00)
|
|
||||||
{
|
|
||||||
if(param_00.team == "allies")
|
|
||||||
{
|
|
||||||
level.streaksupportqueueallies[level.streaksupportqueueallies.size] = param_00;
|
|
||||||
if(level.streaksupportqueueallies.size == 1)
|
|
||||||
{
|
|
||||||
level thread startstreaksupportprompt(param_00);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
level.streaksupportqueueaxis[level.streaksupportqueueaxis.size] = param_00;
|
|
||||||
if(level.streaksupportqueueaxis.size == 1)
|
|
||||||
{
|
|
||||||
level thread startstreaksupportprompt(param_00);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 10
|
|
||||||
removestreaksupportprompt(param_00)
|
|
||||||
{
|
|
||||||
var_01 = param_00.active;
|
|
||||||
param_00.active = 0;
|
|
||||||
param_00 notify("streakPromptStopped");
|
|
||||||
if(param_00.team == "allies")
|
|
||||||
{
|
|
||||||
level.streaksupportqueueallies = common_scripts\utility::array_remove(level.streaksupportqueueallies,param_00);
|
|
||||||
if(var_01 && level.streaksupportqueueallies.size > 0)
|
|
||||||
{
|
|
||||||
level thread startstreaksupportprompt(level.streaksupportqueueallies[0]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
level.streaksupportqueueaxis = common_scripts\utility::array_remove(level.streaksupportqueueaxis,param_00);
|
|
||||||
if(var_01 && level.streaksupportqueueaxis.size > 0)
|
|
||||||
{
|
|
||||||
level thread startstreaksupportprompt(level.streaksupportqueueaxis[0]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
thread delaydeleteprompt(param_00);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 11
|
|
||||||
delaydeleteprompt(param_00)
|
|
||||||
{
|
|
||||||
wait(1);
|
|
||||||
param_00 delete();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 12
|
|
||||||
getuniquestreakpromptid(param_00)
|
|
||||||
{
|
|
||||||
var_01 = 0;
|
|
||||||
foreach(var_03 in level.streaksupportqueueallies)
|
|
||||||
{
|
|
||||||
if(var_03.promptid >= var_01)
|
|
||||||
{
|
|
||||||
var_01 = var_03.promptid + 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach(var_03 in level.streaksupportqueueaxis)
|
|
||||||
{
|
|
||||||
if(var_03.promptid >= var_01)
|
|
||||||
{
|
|
||||||
var_01 = var_03.promptid + 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return var_01;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 13
|
|
||||||
startstreaksupportprompt(param_00)
|
|
||||||
{
|
|
||||||
param_00.active = 1;
|
|
||||||
level thread handleprompt(param_00);
|
|
||||||
level thread onconnectprompt(param_00);
|
|
||||||
foreach(var_02 in level.players)
|
|
||||||
{
|
|
||||||
if(isdefined(param_00.streakplayer) && var_02 == param_00.streakplayer)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(maps\mp\_utility::isreallyalive(var_02) && var_02.team == param_00.team)
|
|
||||||
{
|
|
||||||
var_02 thread playersetupstreakprompt(param_00);
|
|
||||||
}
|
|
||||||
|
|
||||||
var_02 thread playeronspawnprompt(param_00);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 14
|
|
||||||
onconnectprompt(param_00)
|
|
||||||
{
|
|
||||||
level endon("game_ended");
|
|
||||||
param_00 endon("streakPromptStopped");
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
level waittill("connected",var_01);
|
|
||||||
var_01 thread playeronspawnprompt(param_00);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 15
|
|
||||||
playeronspawnprompt(param_00)
|
|
||||||
{
|
|
||||||
level endon("game_ended");
|
|
||||||
self endon("disconnect");
|
|
||||||
param_00 endon("streakPromptStopped");
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
self waittill("spawned_player");
|
|
||||||
if(self.team == param_00.team)
|
|
||||||
{
|
|
||||||
thread playersetupstreakprompt(param_00);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 16
|
|
||||||
playersetupstreakprompt(param_00)
|
|
||||||
{
|
|
||||||
level endon("game_ended");
|
|
||||||
self endon("death");
|
|
||||||
self endon("disconnect");
|
|
||||||
param_00 endon("streakPromptStopped");
|
|
||||||
while(maps\mp\_utility::isusingremote() || maps\mp\_utility::isinremotetransition())
|
|
||||||
{
|
|
||||||
wait 0.05;
|
|
||||||
}
|
|
||||||
|
|
||||||
playerdisabledwait(param_00);
|
|
||||||
thread playerdisplayjoinrequest(param_00);
|
|
||||||
thread playertakestreaksupportinput(param_00);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 17
|
|
||||||
playerdisabledwait(param_00)
|
|
||||||
{
|
|
||||||
if(!isdefined(level.streaksuppordisabledcount[self.guid]))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(level.streaksuppordisabledcount[self.guid] > 0)
|
|
||||||
{
|
|
||||||
param_00 disableplayeruse(self);
|
|
||||||
while(level.streaksuppordisabledcount[self.guid] > 0)
|
|
||||||
{
|
|
||||||
wait 0.05;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 18
|
|
||||||
playerdisplayjoinrequest(param_00)
|
|
||||||
{
|
|
||||||
level endon("game_ended");
|
|
||||||
self endon("death");
|
|
||||||
self endon("disconnect");
|
|
||||||
param_00 endon("streakPromptStopped");
|
|
||||||
if(isdefined(param_00.splashref))
|
|
||||||
{
|
|
||||||
thread maps\mp\gametypes\_hud_message::coopkillstreaksplashnotify(param_00.splashref,param_00.needsupportvo);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 19
|
|
||||||
waittillplayercanbebuddy(param_00,param_01)
|
|
||||||
{
|
|
||||||
if(maps\mp\_utility::isinremotetransition())
|
|
||||||
{
|
|
||||||
param_00 maps\mp\killstreaks\_killstreaks::playerwaittillridekillstreakcomplete();
|
|
||||||
}
|
|
||||||
|
|
||||||
wait 0.05;
|
|
||||||
if(maps\mp\_utility::isusingremote())
|
|
||||||
{
|
|
||||||
param_00 waittill("stopped_using_remote");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 20
|
|
||||||
waittillpromptactivated(param_00)
|
|
||||||
{
|
|
||||||
param_00 endon("streakPromptStopped");
|
|
||||||
param_00 waittill("trigger");
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 21
|
|
||||||
playertakestreaksupportinput(param_00)
|
|
||||||
{
|
|
||||||
level endon("game_ended");
|
|
||||||
self endon("death");
|
|
||||||
self endon("disconnect");
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
waittillplayercanbebuddy(self);
|
|
||||||
var_01 = waittillpromptactivated(param_00);
|
|
||||||
if(!isdefined(var_01))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!param_00.active)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(self playergetuseent()) && self playergetuseent() == param_00 && self usebuttonpressed() && self isonground())
|
|
||||||
{
|
|
||||||
var_02 = playergetusetime();
|
|
||||||
var_01 = playerhandlejoining(param_00,var_02);
|
|
||||||
if(var_01 || !param_00.active)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 22
|
|
||||||
playergetusetime()
|
|
||||||
{
|
|
||||||
if(getdvarint("scr_coop_util_delay",1) == 0)
|
|
||||||
{
|
|
||||||
return 1.25;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_00 = self.score;
|
|
||||||
var_01 = self.score;
|
|
||||||
for(var_02 = 1;var_02 < level.players.size;var_02++)
|
|
||||||
{
|
|
||||||
var_03 = level.players[var_02];
|
|
||||||
if(var_03.team != self.team)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var_03.score > var_01)
|
|
||||||
{
|
|
||||||
var_01 = var_03.score;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var_03.score < var_00)
|
|
||||||
{
|
|
||||||
var_00 = var_03.score;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var_04 = var_01 - var_00;
|
|
||||||
if(var_04 == 0)
|
|
||||||
{
|
|
||||||
return 1.25;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_05 = self.score - var_00 / var_04;
|
|
||||||
var_06 = 1.25;
|
|
||||||
var_07 = 1.25 + var_05 * var_06;
|
|
||||||
return var_07;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 23
|
|
||||||
handleprompt(param_00)
|
|
||||||
{
|
|
||||||
param_00 maps\mp\_utility::makegloballyusablebytype("coopStreakPrompt",param_00.jointext,undefined,param_00.team);
|
|
||||||
param_00 waittill("streakPromptStopped");
|
|
||||||
param_00 maps\mp\_utility::makegloballyunusablebytype();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 24
|
|
||||||
playerhandlejoining(param_00,param_01)
|
|
||||||
{
|
|
||||||
var_02 = param_01 * 1000;
|
|
||||||
if(param_00 useholdthink(self,var_02,param_00))
|
|
||||||
{
|
|
||||||
level notify("buddyJoinedStreak",self,param_00.promptid);
|
|
||||||
thread maps\mp\_events::killstreakjoinevent();
|
|
||||||
if(isdefined(param_00.streakplayer) && isalive(param_00.streakplayer))
|
|
||||||
{
|
|
||||||
if(isdefined(param_00.joinedvo))
|
|
||||||
{
|
|
||||||
thread maps\mp\_utility::leaderdialogonplayer(param_00.joinedvo);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(param_00.buddyjoinedvo))
|
|
||||||
{
|
|
||||||
param_00.streakplayer thread maps\mp\_utility::leaderdialogonplayer(param_00.buddyjoinedvo);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(param_00.streakplayer.currentkillstreakindex))
|
|
||||||
{
|
|
||||||
setmatchdata("killstreaks",param_00.streakplayer.currentkillstreakindex,"coopPlayerIndex",self.clientid);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
param_00 notify("streakPromptStopped");
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 25
|
|
||||||
useholdthink(param_00,param_01,param_02)
|
|
||||||
{
|
|
||||||
param_00 playerlinkto(param_02);
|
|
||||||
param_00 playerlinkedoffsetenable();
|
|
||||||
param_00.manuallyjoiningkillstreak = 1;
|
|
||||||
thread useholdthinkcleanuponplayerdeath(param_00);
|
|
||||||
self.curprogress = 0;
|
|
||||||
self.inuse = 1;
|
|
||||||
self.userate = 0;
|
|
||||||
self.usetime = param_01;
|
|
||||||
if(isdefined(param_00.inwater))
|
|
||||||
{
|
|
||||||
param_00 allowcrouch(0);
|
|
||||||
param_00 allowprone(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
param_00 maps\mp\_utility::_giveweapon("killstreak_remote_turret_mp");
|
|
||||||
param_00 switchtoweapon("killstreak_remote_turret_mp");
|
|
||||||
param_00 disableweaponswitch();
|
|
||||||
param_00 thread personalusebar(self,param_02);
|
|
||||||
var_03 = useholdthinkloop(param_00,param_02);
|
|
||||||
if(!isdefined(var_03))
|
|
||||||
{
|
|
||||||
var_03 = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isalive(param_00) && !var_03)
|
|
||||||
{
|
|
||||||
param_00 playerresetaftercoopstreakinternal();
|
|
||||||
}
|
|
||||||
|
|
||||||
self.inuse = 0;
|
|
||||||
self.curprogress = 0;
|
|
||||||
if(isdefined(param_00))
|
|
||||||
{
|
|
||||||
param_00.manuallyjoiningkillstreak = 0;
|
|
||||||
param_00 setclientomnvar("ui_use_bar_text",0);
|
|
||||||
param_00 setclientomnvar("ui_use_bar_end_time",0);
|
|
||||||
param_00 setclientomnvar("ui_use_bar_start_time",0);
|
|
||||||
}
|
|
||||||
|
|
||||||
self notify("coopUtilUseHoldThinkComplete");
|
|
||||||
return var_03;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 26
|
|
||||||
useholdthinkcleanuponplayerdeath(param_00)
|
|
||||||
{
|
|
||||||
self endon("coopUtilUseHoldThinkComplete");
|
|
||||||
param_00 common_scripts\utility::waittill_any("death","disconnect");
|
|
||||||
if(isdefined(param_00))
|
|
||||||
{
|
|
||||||
param_00 playerresetaftercoopstreakinternal();
|
|
||||||
param_00.manuallyjoiningkillstreak = 0;
|
|
||||||
param_00 setclientomnvar("ui_use_bar_text",0);
|
|
||||||
param_00 setclientomnvar("ui_use_bar_end_time",0);
|
|
||||||
param_00 setclientomnvar("ui_use_bar_start_time",0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 27
|
|
||||||
playerresetaftercoopstreakinternal()
|
|
||||||
{
|
|
||||||
maps\mp\killstreaks\_killstreaks::takekillstreakweaponifnodupe("killstreak_predator_missile_mp");
|
|
||||||
maps\mp\killstreaks\_killstreaks::takekillstreakweaponifnodupe("killstreak_remote_turret_mp");
|
|
||||||
self allowcrouch(1);
|
|
||||||
self allowprone(1);
|
|
||||||
self enableweaponswitch();
|
|
||||||
self switchtoweapon(common_scripts\utility::getlastweapon());
|
|
||||||
thread playerdelaycontrol();
|
|
||||||
self unlink();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 28
|
|
||||||
playersetupcoopstreakinternal(param_00)
|
|
||||||
{
|
|
||||||
if(isdefined(param_00))
|
|
||||||
{
|
|
||||||
wait(param_00);
|
|
||||||
}
|
|
||||||
|
|
||||||
self enableweaponswitch();
|
|
||||||
maps\mp\_utility::_giveweapon("killstreak_predator_missile_mp");
|
|
||||||
self switchtoweaponimmediate("killstreak_predator_missile_mp");
|
|
||||||
maps\mp\killstreaks\_killstreaks::takekillstreakweaponifnodupe("killstreak_remote_turret_mp");
|
|
||||||
self disableweaponswitch();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 29
|
|
||||||
playerdelaycontrol()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
maps\mp\_utility::freezecontrolswrapper(1);
|
|
||||||
wait(0.5);
|
|
||||||
maps\mp\_utility::freezecontrolswrapper(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 30
|
|
||||||
personalusebar(param_00,param_01)
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
param_01 endon("streakPromptStopped");
|
|
||||||
self setclientomnvar("ui_use_bar_text",2);
|
|
||||||
self setclientomnvar("ui_use_bar_start_time",int(gettime()));
|
|
||||||
var_02 = -1;
|
|
||||||
while(maps\mp\_utility::isreallyalive(self) && isdefined(param_00) && param_00.inuse && !level.gameended)
|
|
||||||
{
|
|
||||||
if(var_02 != param_00.userate)
|
|
||||||
{
|
|
||||||
if(param_00.curprogress > param_00.usetime)
|
|
||||||
{
|
|
||||||
param_00.curprogress = param_00.usetime;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(param_00.userate > 0)
|
|
||||||
{
|
|
||||||
var_03 = gettime();
|
|
||||||
var_04 = param_00.curprogress / param_00.usetime;
|
|
||||||
var_05 = var_03 + 1 - var_04 * param_00.usetime / param_00.userate;
|
|
||||||
self setclientomnvar("ui_use_bar_end_time",int(var_05));
|
|
||||||
}
|
|
||||||
|
|
||||||
var_02 = param_00.userate;
|
|
||||||
}
|
|
||||||
|
|
||||||
wait(0.05);
|
|
||||||
}
|
|
||||||
|
|
||||||
self setclientomnvar("ui_use_bar_end_time",0);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 31
|
|
||||||
useholdthinkloop(param_00,param_01)
|
|
||||||
{
|
|
||||||
param_01 endon("streakPromptStopped");
|
|
||||||
while(!level.gameended && isdefined(self) && maps\mp\_utility::isreallyalive(param_00) && param_00 usebuttonpressed() && self.curprogress < self.usetime)
|
|
||||||
{
|
|
||||||
self.curprogress = self.curprogress + 50 * self.userate;
|
|
||||||
if(isdefined(self.objectivescaler))
|
|
||||||
{
|
|
||||||
self.userate = 1 * self.objectivescaler;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
self.userate = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(self.curprogress >= self.usetime)
|
|
||||||
{
|
|
||||||
return maps\mp\_utility::isreallyalive(param_00);
|
|
||||||
}
|
|
||||||
|
|
||||||
wait(0.05);
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
@ -1,171 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: maps/mp/killstreaks/_drone_carepackage.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 12
|
|
||||||
* Decompile Time: 182 ms
|
|
||||||
* Timestamp: 10/27/2023 1:51:39 AM
|
|
||||||
*******************************************************************/
|
|
||||||
|
|
||||||
//Function Number: 1
|
|
||||||
init()
|
|
||||||
{
|
|
||||||
level.carepackagedrone = spawnstruct();
|
|
||||||
level.carepackagedrone.health = 999999;
|
|
||||||
level.carepackagedrone.maxhealth = 200;
|
|
||||||
level.carepackagedrone.fxid_explode = loadfx("vfx/explosion/tracking_drone_explosion");
|
|
||||||
level.carepackagedrone.sound_explode = "veh_tracking_drone_explode";
|
|
||||||
level.carepackagedrone.releasestring = &"KILLSTREAKS_DRONE_CAREPACKAGE_RELEASE";
|
|
||||||
level.carepackagedrones = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 2
|
|
||||||
setupcarepackagedrone(param_00,param_01)
|
|
||||||
{
|
|
||||||
param_00 common_scripts\utility::make_entity_sentient_mp(self.team);
|
|
||||||
param_00 makevehiclenotcollidewithplayers(1);
|
|
||||||
param_00 addtocarepackagedronelist();
|
|
||||||
param_00 thread removefromcarepackagedronelistondeath();
|
|
||||||
param_00.health = level.carepackagedrone.health;
|
|
||||||
param_00.maxhealth = level.carepackagedrone.maxhealth;
|
|
||||||
param_00.damagetaken = 0;
|
|
||||||
param_00.speed = 15;
|
|
||||||
param_00.followspeed = 15;
|
|
||||||
param_00.owner = self;
|
|
||||||
param_00.team = self.team;
|
|
||||||
param_00 vehicle_setspeed(param_00.speed,10,10);
|
|
||||||
param_00 setyawspeed(120,90);
|
|
||||||
param_00 setneargoalnotifydist(64);
|
|
||||||
param_00 sethoverparams(4,5,5);
|
|
||||||
param_00.fx_tag0 = "tag_body";
|
|
||||||
if(param_01)
|
|
||||||
{
|
|
||||||
param_00.usableent = spawn("script_model",param_00.origin + (0,0,1));
|
|
||||||
param_00.usableent setmodel("tag_origin");
|
|
||||||
param_00.usableent.owner = self;
|
|
||||||
param_00.usableent maps\mp\_utility::makegloballyusablebytype("killstreakRemote",level.carepackagedrone.releasestring,self);
|
|
||||||
}
|
|
||||||
|
|
||||||
var_02 = 45;
|
|
||||||
var_03 = 45;
|
|
||||||
param_00 setmaxpitchroll(var_02,var_03);
|
|
||||||
var_04 = 10000;
|
|
||||||
var_05 = 150;
|
|
||||||
param_00.attractor = missile_createattractorent(param_00,var_04,var_05);
|
|
||||||
param_00.stunned = 0;
|
|
||||||
param_00 thread carepackagedrone_watchdeath();
|
|
||||||
param_00 thread carepackagedrone_watchownerloss();
|
|
||||||
param_00 thread carepackagedrone_watchroundend();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 3
|
|
||||||
carepackagedrone_deleteonactivate()
|
|
||||||
{
|
|
||||||
self endon("death");
|
|
||||||
var_00 = self.owner;
|
|
||||||
self.usableent waittill("trigger");
|
|
||||||
carepackagedrone_delete();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 4
|
|
||||||
carepackagedrone_watchdeath()
|
|
||||||
{
|
|
||||||
level endon("game_ended");
|
|
||||||
self endon("gone");
|
|
||||||
self waittill("death");
|
|
||||||
if(!isdefined(self))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
carepackagedrone_leave();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 5
|
|
||||||
carepackagedrone_watchownerloss()
|
|
||||||
{
|
|
||||||
level endon("game_ended");
|
|
||||||
self endon("death");
|
|
||||||
self endon("leaving");
|
|
||||||
self.owner common_scripts\utility::waittill_any("disconnect","joined_team","joined_spectators");
|
|
||||||
self notify("owner_gone");
|
|
||||||
thread carepackagedrone_leave();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 6
|
|
||||||
carepackagedrone_watchroundend()
|
|
||||||
{
|
|
||||||
level endon("game_ended");
|
|
||||||
self endon("death");
|
|
||||||
self endon("leaving");
|
|
||||||
self.owner endon("disconnect");
|
|
||||||
self endon("owner_gone");
|
|
||||||
level common_scripts\utility::waittill_any("round_end_finished","game_ended");
|
|
||||||
thread carepackagedrone_leave();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 7
|
|
||||||
carepackagedrone_leave()
|
|
||||||
{
|
|
||||||
self endon("death");
|
|
||||||
self notify("leaving");
|
|
||||||
carepackagedrone_explode();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 8
|
|
||||||
carepackagedrone_explode()
|
|
||||||
{
|
|
||||||
if(isdefined(level.carepackagedrone.fxid_explode))
|
|
||||||
{
|
|
||||||
playfx(level.carepackagedrone.fxid_explode,self.origin);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(level.carepackagedrone.sound_explode))
|
|
||||||
{
|
|
||||||
self playsound(level.carepackagedrone.sound_explode);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(self.usableent))
|
|
||||||
{
|
|
||||||
self.usableent maps\mp\_utility::makegloballyunusablebytype();
|
|
||||||
self.usableent delete();
|
|
||||||
}
|
|
||||||
|
|
||||||
self notify("explode");
|
|
||||||
carepackagedrone_remove();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 9
|
|
||||||
carepackagedrone_delete()
|
|
||||||
{
|
|
||||||
if(isdefined(self.usableent))
|
|
||||||
{
|
|
||||||
self.usableent maps\mp\_utility::makegloballyunusablebytype();
|
|
||||||
self.usableent delete();
|
|
||||||
}
|
|
||||||
|
|
||||||
self notify("explode");
|
|
||||||
carepackagedrone_remove();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 10
|
|
||||||
carepackagedrone_remove()
|
|
||||||
{
|
|
||||||
maps\mp\_utility::decrementfauxvehiclecount();
|
|
||||||
self delete();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 11
|
|
||||||
addtocarepackagedronelist()
|
|
||||||
{
|
|
||||||
level.carepackagedrones[level.carepackagedrones.size] = self;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 12
|
|
||||||
removefromcarepackagedronelistondeath()
|
|
||||||
{
|
|
||||||
var_00 = self getentitynumber();
|
|
||||||
self waittill("death");
|
|
||||||
level.carepackagedrones = common_scripts\utility::array_remove(level.carepackagedrones,self);
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load Diff
@ -1,115 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: maps/mp/killstreaks/_killstreaks_init.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 3
|
|
||||||
* Decompile Time: 55 ms
|
|
||||||
* Timestamp: 10/27/2023 1:51:56 AM
|
|
||||||
*******************************************************************/
|
|
||||||
|
|
||||||
//Function Number: 1
|
|
||||||
init()
|
|
||||||
{
|
|
||||||
level.killstreak_string_table = "mp/killstreakTable.csv";
|
|
||||||
level.killstreak_gimme_slot = 0;
|
|
||||||
level.killstreak_slot_1 = 1;
|
|
||||||
level.killstreak_slot_2 = 2;
|
|
||||||
level.killstreak_slot_3 = 3;
|
|
||||||
level.killstreak_slot_4 = 4;
|
|
||||||
level.killstreak_stacking_start_slot = 5;
|
|
||||||
level.ks_modules_table = "mp/killstreakModules.csv";
|
|
||||||
level.ks_module_ref_column = 1;
|
|
||||||
level.ks_module_killstreak_ref_column = 4;
|
|
||||||
level.ks_module_added_points_column = 5;
|
|
||||||
level.ks_module_slot_column = 6;
|
|
||||||
level.ks_module_support_column = 7;
|
|
||||||
level.killstreakrounddelay = maps\mp\_utility::getintproperty("scr_game_killstreakdelay",10);
|
|
||||||
level.killstreakfuncs = [];
|
|
||||||
level.killstreaksetupfuncs = [];
|
|
||||||
level.killstreakwieldweapons = [];
|
|
||||||
initkillstreakdata();
|
|
||||||
level thread maps\mp\killstreaks\_killstreaks::onplayerconnect();
|
|
||||||
if(isdefined(level.iszombiegame) && level.iszombiegame)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
level thread maps\mp\killstreaks\_aerial_utility::init();
|
|
||||||
level thread maps\mp\killstreaks\_coop_util::init();
|
|
||||||
if(isdefined(level.mapcustomkillstreakfunc))
|
|
||||||
{
|
|
||||||
[[ level.mapcustomkillstreakfunc ]]();
|
|
||||||
}
|
|
||||||
|
|
||||||
level thread maps\mp\killstreaks\_uav::init();
|
|
||||||
level thread maps\mp\killstreaks\_airdrop::init();
|
|
||||||
level thread maps\mp\killstreaks\_remoteturret::init();
|
|
||||||
level thread maps\mp\killstreaks\_rippedturret::init();
|
|
||||||
level thread maps\mp\killstreaks\_emp::init();
|
|
||||||
level thread maps\mp\killstreaks\_nuke::init();
|
|
||||||
level thread maps\mp\killstreaks\_juggernaut::init();
|
|
||||||
level thread maps\mp\killstreaks\_orbital_strike::init();
|
|
||||||
level thread maps\mp\killstreaks\_missile_strike::init();
|
|
||||||
level thread maps\mp\killstreaks\_orbital_carepackage::init();
|
|
||||||
level thread maps\mp\killstreaks\_warbird::init();
|
|
||||||
level thread maps\mp\killstreaks\_drone_assault::init();
|
|
||||||
level thread maps\mp\killstreaks\_drone_recon::init();
|
|
||||||
level thread maps\mp\killstreaks\_orbitalsupport::init();
|
|
||||||
level thread maps\mp\killstreaks\_airstrike::init();
|
|
||||||
level thread maps\mp\killstreaks\_drone_carepackage::init();
|
|
||||||
level thread maps\mp\killstreaks\_orbital_util::initstart();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 2
|
|
||||||
initkillstreakdata()
|
|
||||||
{
|
|
||||||
var_00 = 0;
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
var_01 = tablelookupbyrow(level.killstreak_string_table,var_00,1);
|
|
||||||
if(!isdefined(var_01) || var_01 == "")
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var_01 == "b1" || var_01 == "none")
|
|
||||||
{
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var_02 = tablelookupistringbyrow(level.killstreak_string_table,var_00,5);
|
|
||||||
var_03 = tablelookupbyrow(level.killstreak_string_table,var_00,7);
|
|
||||||
game["dialog"][var_01] = var_03;
|
|
||||||
var_04 = tablelookupbyrow(level.killstreak_string_table,var_00,8);
|
|
||||||
game["dialog"]["allies_friendly_" + var_01 + "_inbound"] = "ks_" + var_04 + "_allyuse";
|
|
||||||
game["dialog"]["allies_enemy_" + var_01 + "_inbound"] = "ks_" + var_04 + "_enemyuse";
|
|
||||||
var_05 = tablelookupbyrow(level.killstreak_string_table,var_00,9);
|
|
||||||
game["dialog"]["axis_friendly_" + var_01 + "_inbound"] = "ks_" + var_05 + "_allyuse";
|
|
||||||
game["dialog"]["axis_enemy_" + var_01 + "_inbound"] = "ks_" + var_05 + "_enemyuse";
|
|
||||||
var_06 = int(tablelookupbyrow(level.killstreak_string_table,var_00,12));
|
|
||||||
maps\mp\gametypes\_rank::registerxpeventinfo(var_01 + "_earned",var_06);
|
|
||||||
}
|
|
||||||
|
|
||||||
var_00++;
|
|
||||||
}
|
|
||||||
|
|
||||||
additionalvo();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 3
|
|
||||||
additionalvo()
|
|
||||||
{
|
|
||||||
var_00 = "allies_friendly_emp_inbound";
|
|
||||||
var_01 = "allies_enemy_emp_inbound";
|
|
||||||
var_02 = "axis_friendly_emp_inbound";
|
|
||||||
var_03 = "axis_enemy_emp_inbound";
|
|
||||||
for(var_04 = 1;var_04 < 9;var_04++)
|
|
||||||
{
|
|
||||||
var_05 = "_0" + var_04;
|
|
||||||
game["dialog"][var_00 + var_05] = game["dialog"][var_00] + var_05;
|
|
||||||
game["dialog"][var_01 + var_05] = game["dialog"][var_01] + var_05;
|
|
||||||
game["dialog"][var_02 + var_05] = game["dialog"][var_02] + var_05;
|
|
||||||
game["dialog"][var_03 + var_05] = game["dialog"][var_03] + var_05;
|
|
||||||
}
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load Diff
@ -1,397 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: maps/mp/killstreaks/_nuke.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 21
|
|
||||||
* Decompile Time: 340 ms
|
|
||||||
* Timestamp: 10/27/2023 1:52:01 AM
|
|
||||||
*******************************************************************/
|
|
||||||
|
|
||||||
//Function Number: 1
|
|
||||||
init()
|
|
||||||
{
|
|
||||||
level._effect["nuke_flash"] = loadfx("vfx/explosion/dna_bomb_flash_mp");
|
|
||||||
level._effect["nuke_aftermath"] = loadfx("vfx/dust/nuke_aftermath_mp");
|
|
||||||
level._effect["dna_bomb_body_gas"] = loadfx("vfx/explosion/dna_bomb_body_gas");
|
|
||||||
game["strings"]["nuclear_strike"] = &"KILLSTREAKS_TACTICAL_NUKE";
|
|
||||||
level.killstreakfuncs["nuke"] = ::tryusenuke;
|
|
||||||
level.killstreakwieldweapons["nuke_mp"] = "nuke";
|
|
||||||
setdvarifuninitialized("scr_nukeTimer",10);
|
|
||||||
setdvarifuninitialized("scr_nukeCancelMode",0);
|
|
||||||
level.nuketimer = getdvarint("scr_nukeTimer");
|
|
||||||
level.cancelmode = getdvarint("scr_nukeCancelMode");
|
|
||||||
level.nukeemptimeout = 60;
|
|
||||||
level.nukeemptimeremaining = int(level.nukeemptimeout);
|
|
||||||
level.nukeinfo = spawnstruct();
|
|
||||||
level.nukeinfo.xpscalar = 2;
|
|
||||||
level.nukedetonated = undefined;
|
|
||||||
level thread onplayerconnect();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 2
|
|
||||||
tryusenuke(param_00,param_01,param_02)
|
|
||||||
{
|
|
||||||
if(isdefined(level.nukeincoming))
|
|
||||||
{
|
|
||||||
self iprintlnbold(&"KILLSTREAKS_NUKE_ALREADY_INBOUND");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(maps\mp\_utility::isusingremote())
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!isdefined(param_02))
|
|
||||||
{
|
|
||||||
param_02 = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
thread donuke(param_02);
|
|
||||||
maps\mp\_matchdata::logkillstreakevent("nuke",self.origin);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 3
|
|
||||||
delaythread_nuke(param_00,param_01)
|
|
||||||
{
|
|
||||||
level endon("nuke_cancelled");
|
|
||||||
maps\mp\gametypes\_hostmigration::waitlongdurationwithhostmigrationpause(param_00);
|
|
||||||
thread [[ param_01 ]]();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 4
|
|
||||||
donuke(param_00)
|
|
||||||
{
|
|
||||||
level endon("nuke_cancelled");
|
|
||||||
level.nukeinfo.player = self;
|
|
||||||
level.nukeinfo.team = self.pers["team"];
|
|
||||||
level.nukeincoming = 1;
|
|
||||||
setomnvar("ui_bomb_timer",4);
|
|
||||||
if(level.teambased)
|
|
||||||
{
|
|
||||||
thread maps\mp\_utility::teamplayercardsplash("used_nuke",self,self.team);
|
|
||||||
}
|
|
||||||
else if(!level.hardcoremode)
|
|
||||||
{
|
|
||||||
self iprintlnbold(&"MP_FRIENDLY_TACTICAL_NUKE");
|
|
||||||
}
|
|
||||||
|
|
||||||
level thread delaythread_nuke(level.nuketimer - 3.3,::nukesoundincoming);
|
|
||||||
level thread delaythread_nuke(level.nuketimer,::nukesoundexplosion);
|
|
||||||
level thread delaythread_nuke(level.nuketimer,::nukeslowmo);
|
|
||||||
level thread delaythread_nuke(level.nuketimer - 0.32,::nukeeffects);
|
|
||||||
level thread delaythread_nuke(level.nuketimer - 0.1,::nukevision);
|
|
||||||
level thread delaythread_nuke(level.nuketimer + 0.5,::nukedeath);
|
|
||||||
level thread delaythread_nuke(level.nuketimer + 1.5,::nukeearthquake);
|
|
||||||
level thread nukeaftermatheffect();
|
|
||||||
level thread update_ui_timers();
|
|
||||||
if(level.cancelmode && param_00)
|
|
||||||
{
|
|
||||||
level thread cancelnukeondeath(self);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!isdefined(level.nuke_clockobject))
|
|
||||||
{
|
|
||||||
level.nuke_clockobject = spawn("script_origin",(0,0,0));
|
|
||||||
level.nuke_clockobject hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!isdefined(level.nuke_soundobject))
|
|
||||||
{
|
|
||||||
level.nuke_soundobject = spawn("script_origin",(0,0,1));
|
|
||||||
level.nuke_soundobject hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
for(var_01 = level.nuketimer;var_01 > 0;var_01--)
|
|
||||||
{
|
|
||||||
level.nuke_clockobject playsound("ks_dna_warn_timer");
|
|
||||||
wait(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 5
|
|
||||||
cancelnukeondeath(param_00)
|
|
||||||
{
|
|
||||||
param_00 common_scripts\utility::waittill_any("death","disconnect");
|
|
||||||
setomnvar("ui_bomb_timer",0);
|
|
||||||
level.nukeincoming = undefined;
|
|
||||||
level notify("nuke_cancelled");
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 6
|
|
||||||
nukesoundincoming()
|
|
||||||
{
|
|
||||||
level endon("nuke_cancelled");
|
|
||||||
if(isdefined(level.nuke_soundobject))
|
|
||||||
{
|
|
||||||
level.nuke_soundobject playsound("ks_dna_incoming");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 7
|
|
||||||
nukesoundexplosion()
|
|
||||||
{
|
|
||||||
level endon("nuke_cancelled");
|
|
||||||
if(isdefined(level.nuke_soundobject))
|
|
||||||
{
|
|
||||||
level.nuke_soundobject playsound("ks_dna_explosion");
|
|
||||||
level.nuke_soundobject playsound("ks_dna_wave");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 8
|
|
||||||
nukeeffects()
|
|
||||||
{
|
|
||||||
level endon("nuke_cancelled");
|
|
||||||
foreach(var_01 in level.players)
|
|
||||||
{
|
|
||||||
var_02 = anglestoforward(var_01.angles);
|
|
||||||
var_02 = (var_02[0],var_02[1],0);
|
|
||||||
var_02 = vectornormalize(var_02);
|
|
||||||
var_03 = 300;
|
|
||||||
var_04 = spawn("script_model",var_01.origin + var_02 * var_03);
|
|
||||||
var_04 setmodel("tag_origin");
|
|
||||||
var_04.angles = (0,var_01.angles[1] + 180,90);
|
|
||||||
var_04 thread nukeeffect(var_01);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 9
|
|
||||||
nukeeffect(param_00)
|
|
||||||
{
|
|
||||||
level endon("nuke_cancelled");
|
|
||||||
param_00 endon("disconnect");
|
|
||||||
wait 0.05;
|
|
||||||
playfxontagforclients(level._effect["nuke_flash"],self,"tag_origin",param_00);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 10
|
|
||||||
nukeaftermatheffect()
|
|
||||||
{
|
|
||||||
level endon("nuke_cancelled");
|
|
||||||
level waittill("spawning_intermission");
|
|
||||||
var_00 = getentarray("mp_global_intermission","classname");
|
|
||||||
var_00 = var_00[0];
|
|
||||||
var_01 = anglestoup(var_00.angles);
|
|
||||||
var_02 = anglestoright(var_00.angles);
|
|
||||||
playfx(level._effect["nuke_aftermath"],var_00.origin,var_01,var_02);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 11
|
|
||||||
nukeslowmo()
|
|
||||||
{
|
|
||||||
level endon("nuke_cancelled");
|
|
||||||
setomnvar("ui_bomb_timer",0);
|
|
||||||
setslowmotion(1,0.25,0.5);
|
|
||||||
level waittill("nuke_death");
|
|
||||||
setslowmotion(0.25,1,2);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 12
|
|
||||||
nukevision()
|
|
||||||
{
|
|
||||||
level endon("nuke_cancelled");
|
|
||||||
var_00 = "dna_bomb";
|
|
||||||
if(isdefined(level.dnavisionset))
|
|
||||||
{
|
|
||||||
var_00 = level.dnavisionset;
|
|
||||||
}
|
|
||||||
|
|
||||||
level.nukevisioninprogress = 1;
|
|
||||||
foreach(var_02 in level.players)
|
|
||||||
{
|
|
||||||
var_02 setclienttriggervisionset(var_00,0.5);
|
|
||||||
var_02 thread maps\mp\_flashgrenades::applyflash(1.6,0.35);
|
|
||||||
}
|
|
||||||
|
|
||||||
level waittill("nuke_death");
|
|
||||||
wait(3);
|
|
||||||
foreach(var_02 in level.players)
|
|
||||||
{
|
|
||||||
var_02 setclienttriggervisionset("",10);
|
|
||||||
}
|
|
||||||
|
|
||||||
level.nukevisioninprogress = undefined;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 13
|
|
||||||
nukedeath()
|
|
||||||
{
|
|
||||||
level endon("nuke_cancelled");
|
|
||||||
level notify("nuke_death");
|
|
||||||
maps\mp\gametypes\_hostmigration::waittillhostmigrationdone();
|
|
||||||
ambientstop(1);
|
|
||||||
var_00 = 0;
|
|
||||||
foreach(var_02 in level.players)
|
|
||||||
{
|
|
||||||
if(level.teambased)
|
|
||||||
{
|
|
||||||
if(isdefined(level.nukeinfo.team) && var_02.team == level.nukeinfo.team)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(isdefined(level.nukeinfo.player) && var_02 == level.nukeinfo.player)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_02.nuked = 1;
|
|
||||||
if(isalive(var_02))
|
|
||||||
{
|
|
||||||
var_02 thread maps\mp\gametypes\_damage::finishplayerdamagewrapper(level.nukeinfo.player,level.nukeinfo.player,999999,0,"MOD_EXPLOSIVE","nuke_mp",var_02.origin,var_02.origin,"none",0,0);
|
|
||||||
if(isdefined(var_02.isjuggernaut) && var_02.isjuggernaut == 1)
|
|
||||||
{
|
|
||||||
var_02 dodamage(1,var_02.origin,level.nukeinfo.player,level.nukeinfo.player,"MOD_EXPLOSIVE","nuke_mp");
|
|
||||||
}
|
|
||||||
|
|
||||||
maps\mp\_utility::delaythread(var_00 + 1,::bodygasfx,var_02.body);
|
|
||||||
var_00 = var_00 + 0.05;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
level thread nuke_empjam();
|
|
||||||
level.nukeincoming = undefined;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 14
|
|
||||||
bodygasfx(param_00)
|
|
||||||
{
|
|
||||||
if(isdefined(param_00))
|
|
||||||
{
|
|
||||||
playfxontag(common_scripts\utility::getfx("dna_bomb_body_gas"),param_00,"J_SPINELOWER");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 15
|
|
||||||
nukeearthquake()
|
|
||||||
{
|
|
||||||
level endon("nuke_cancelled");
|
|
||||||
level waittill("nuke_death");
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 16
|
|
||||||
nuke_empjam()
|
|
||||||
{
|
|
||||||
level endon("game_ended");
|
|
||||||
level notify("nuke_EMPJam");
|
|
||||||
level endon("nuke_EMPJam");
|
|
||||||
if(level.multiteambased)
|
|
||||||
{
|
|
||||||
for(var_00 = 0;var_00 < level.teamnamelist.size;var_00++)
|
|
||||||
{
|
|
||||||
if(level.nukeinfo.team != level.teamnamelist[var_00])
|
|
||||||
{
|
|
||||||
level maps\mp\killstreaks\_emp::destroyactivevehicles(level.nukeinfo.player,level.teamnamelist[var_00]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(level.teambased)
|
|
||||||
{
|
|
||||||
level maps\mp\killstreaks\_emp::destroyactivevehicles(level.nukeinfo.player,maps\mp\_utility::getotherteam(level.nukeinfo.team));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
level maps\mp\killstreaks\_emp::destroyactivevehicles(level.nukeinfo.player,maps\mp\_utility::getotherteam(level.nukeinfo.team));
|
|
||||||
}
|
|
||||||
|
|
||||||
level notify("nuke_emp_update");
|
|
||||||
level notify("nuke_emp_update");
|
|
||||||
level notify("nuke_emp_ended");
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 17
|
|
||||||
keepnukeemptimeremaining()
|
|
||||||
{
|
|
||||||
level notify("keepNukeEMPTimeRemaining");
|
|
||||||
level endon("keepNukeEMPTimeRemaining");
|
|
||||||
level endon("nuke_emp_ended");
|
|
||||||
level.nukeemptimeremaining = int(level.nukeemptimeout);
|
|
||||||
while(level.nukeemptimeremaining)
|
|
||||||
{
|
|
||||||
wait(1);
|
|
||||||
level.nukeemptimeremaining--;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 18
|
|
||||||
nuke_empteamtracker()
|
|
||||||
{
|
|
||||||
level endon("game_ended");
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
level common_scripts\utility::waittill_either("joined_team","nuke_emp_update");
|
|
||||||
foreach(var_01 in level.players)
|
|
||||||
{
|
|
||||||
if(var_01.team == "spectator")
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(level.teambased)
|
|
||||||
{
|
|
||||||
if(isdefined(level.nukeinfo.team) && var_01.team == level.nukeinfo.team)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(isdefined(level.nukeinfo.player) && var_01 == level.nukeinfo.player)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!level.teamnukeemped[var_01.team] && !var_01 maps\mp\_utility::isemped())
|
|
||||||
{
|
|
||||||
var_01 setempjammed(0);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_01 setempjammed(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 19
|
|
||||||
onplayerconnect()
|
|
||||||
{
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
level waittill("connected",var_00);
|
|
||||||
var_00 thread onplayerspawned();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 20
|
|
||||||
onplayerspawned()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
self waittill("spawned_player");
|
|
||||||
if(isdefined(level.nukevisioninprogress))
|
|
||||||
{
|
|
||||||
self setclienttriggervisionset("dna_bomb");
|
|
||||||
wait 0.05;
|
|
||||||
self setclienttriggervisionset("",10);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 21
|
|
||||||
update_ui_timers()
|
|
||||||
{
|
|
||||||
level endon("game_ended");
|
|
||||||
level endon("disconnect");
|
|
||||||
level endon("nuke_cancelled");
|
|
||||||
level endon("nuke_death");
|
|
||||||
var_00 = level.nuketimer * 1000 + gettime();
|
|
||||||
setomnvar("ui_nuke_end_milliseconds",var_00);
|
|
||||||
level waittill("host_migration_begin");
|
|
||||||
var_01 = maps\mp\gametypes\_hostmigration::waittillhostmigrationdone();
|
|
||||||
if(var_01 > 0)
|
|
||||||
{
|
|
||||||
setomnvar("ui_nuke_end_milliseconds",var_00 + var_01);
|
|
||||||
}
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,835 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: maps/mp/killstreaks/_uav.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 33
|
|
||||||
* Decompile Time: 519 ms
|
|
||||||
* Timestamp: 10/27/2023 1:52:25 AM
|
|
||||||
*******************************************************************/
|
|
||||||
|
|
||||||
//Function Number: 1
|
|
||||||
init()
|
|
||||||
{
|
|
||||||
level._effect["uav_explode"] = loadfx("vfx/explosion/vehicle_uav_explosion");
|
|
||||||
level._effect["uav_exit"] = loadfx("vfx/trail/smoketrail_uav");
|
|
||||||
level._effect["uav_trail"] = loadfx("vfx/trail/smoketrail_uav");
|
|
||||||
level.killstreakfuncs["uav"] = ::tryuseuav;
|
|
||||||
level.killstreakfuncs["uav_support"] = ::tryuseuav;
|
|
||||||
level.killstreakfuncs["counter_uav"] = ::tryuseuav;
|
|
||||||
var_00 = getentarray("minimap_corner","targetname");
|
|
||||||
if(var_00.size)
|
|
||||||
{
|
|
||||||
var_01 = maps\mp\gametypes\_spawnlogic::findboxcenter(var_00[0].origin,var_00[1].origin);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var_01 = (0,0,0);
|
|
||||||
}
|
|
||||||
|
|
||||||
level.uavrig = spawn("script_model",var_01);
|
|
||||||
level.uavrig setmodel("c130_zoomrig");
|
|
||||||
level.uavrig.angles = (0,115,0);
|
|
||||||
level.uavrig hide();
|
|
||||||
level.uavrig.targetname = "uavrig_script_model";
|
|
||||||
level.uavrig thread rotateuavrig();
|
|
||||||
if(level.teambased)
|
|
||||||
{
|
|
||||||
level.radarmode["allies"] = "normal_radar";
|
|
||||||
level.radarmode["axis"] = "normal_radar";
|
|
||||||
level.activeuavs["allies"] = 0;
|
|
||||||
level.activeuavs["axis"] = 0;
|
|
||||||
level.activecounteruavs["allies"] = 0;
|
|
||||||
level.activecounteruavs["axis"] = 0;
|
|
||||||
level.uavmodels["allies"] = [];
|
|
||||||
level.uavmodels["axis"] = [];
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
level.radarmode = [];
|
|
||||||
level.activeuavs = [];
|
|
||||||
level.activecounteruavs = [];
|
|
||||||
level.uavmodels = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
level thread onplayerconnect();
|
|
||||||
level thread uavtracker();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 2
|
|
||||||
onplayerconnect()
|
|
||||||
{
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
level waittill("connected",var_00);
|
|
||||||
if(!level.teambased)
|
|
||||||
{
|
|
||||||
level.activeuavs[var_00.guid] = 0;
|
|
||||||
level.activeuavs[var_00.guid + "_radarStrength"] = 0;
|
|
||||||
level.activecounteruavs[var_00.guid] = 0;
|
|
||||||
level.radarmode[var_00.guid] = "normal_radar";
|
|
||||||
}
|
|
||||||
|
|
||||||
var_00 thread onplayerspawned();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 3
|
|
||||||
onplayerspawned()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
self waittill("spawned_player");
|
|
||||||
level notify("uav_update");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 4
|
|
||||||
rotateuavrig()
|
|
||||||
{
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
self rotateyaw(-360,60);
|
|
||||||
wait(60);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 5
|
|
||||||
playtrailfx()
|
|
||||||
{
|
|
||||||
self endon("death");
|
|
||||||
level endon("game_ended");
|
|
||||||
playfxontag(level._effect["uav_trail"],self,"tag_origin");
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 6
|
|
||||||
launchuav(param_00,param_01,param_02,param_03)
|
|
||||||
{
|
|
||||||
var_04 = spawn("script_model",level.uavrig gettagorigin("tag_origin"));
|
|
||||||
var_04.modules = param_03;
|
|
||||||
var_04.value = 1;
|
|
||||||
if(common_scripts\utility::array_contains(var_04.modules,"uav_advanced_updates"))
|
|
||||||
{
|
|
||||||
var_04.value = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(common_scripts\utility::array_contains(var_04.modules,"uav_enemy_direction"))
|
|
||||||
{
|
|
||||||
var_04.value = 3;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(common_scripts\utility::array_contains(var_04.modules,"uav_scrambler"))
|
|
||||||
{
|
|
||||||
var_05 = 1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var_05 = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_04 setmodel("uav_drone_static");
|
|
||||||
var_04 thread playtrailfx();
|
|
||||||
var_04 thread maps\mp\gametypes\_damage::setentitydamagecallback(1000,undefined,::uavondeath,undefined,1);
|
|
||||||
var_04.team = param_01;
|
|
||||||
var_04.owner = param_00;
|
|
||||||
var_04.timetoadd = 0;
|
|
||||||
var_04.orbit = common_scripts\utility::array_contains(var_04.modules,"uav_orbit");
|
|
||||||
var_04.paintoutline = common_scripts\utility::array_contains(var_04.modules,"uav_paint_outline");
|
|
||||||
var_04.assistpoints = common_scripts\utility::array_contains(var_04.modules,"uav_assist_points");
|
|
||||||
var_04 common_scripts\utility::make_entity_sentient_mp(param_01);
|
|
||||||
var_04 thread handleincomingstinger();
|
|
||||||
var_04.streakcustomization = param_00.streakcustomization;
|
|
||||||
var_04 adduavmodel();
|
|
||||||
thread flyin(var_04);
|
|
||||||
var_04 thread updateuavmodelvisibility();
|
|
||||||
var_04 thread maps\mp\killstreaks\_killstreaks::updateaerialkillstreakmarker();
|
|
||||||
var_04 addactiveuav();
|
|
||||||
if(var_05)
|
|
||||||
{
|
|
||||||
var_04 addactivecounteruav();
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(level.activeuavs[param_01]))
|
|
||||||
{
|
|
||||||
foreach(var_07 in level.uavmodels[param_01])
|
|
||||||
{
|
|
||||||
if(var_07 == var_04)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var_05)
|
|
||||||
{
|
|
||||||
var_07.timetoadd = var_07.timetoadd + 5;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!var_05)
|
|
||||||
{
|
|
||||||
var_07.timetoadd = var_07.timetoadd + 5;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
wait 0.05;
|
|
||||||
level notify("uav_update");
|
|
||||||
var_09 = 30;
|
|
||||||
if(common_scripts\utility::array_contains(var_04.modules,"uav_increased_time"))
|
|
||||||
{
|
|
||||||
var_09 = var_09 + 15;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_04 waittill_notify_or_timeout_hostmigration_pause("death",var_09);
|
|
||||||
if(var_04.damagetaken < var_04.maxhealth)
|
|
||||||
{
|
|
||||||
var_04 unlink();
|
|
||||||
var_0A = var_04.origin + anglestoforward(var_04.angles) * 20000;
|
|
||||||
var_04 moveto(var_0A,60);
|
|
||||||
playfxontag(common_scripts\utility::getfx("uav_exit"),var_04,"tag_origin");
|
|
||||||
var_04 waittill_notify_or_timeout_hostmigration_pause("death",3);
|
|
||||||
if(var_04.damagetaken < var_04.maxhealth)
|
|
||||||
{
|
|
||||||
var_04 notify("leaving");
|
|
||||||
var_04.isleaving = 1;
|
|
||||||
var_04 moveto(var_0A,4,4,0);
|
|
||||||
}
|
|
||||||
|
|
||||||
var_04 waittill_notify_or_timeout_hostmigration_pause("death",4 + var_04.timetoadd);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var_05)
|
|
||||||
{
|
|
||||||
var_04 removeactivecounteruav();
|
|
||||||
}
|
|
||||||
|
|
||||||
var_04 removeactiveuav();
|
|
||||||
var_04 delete();
|
|
||||||
var_04 removeuavmodel();
|
|
||||||
level notify("uav_update");
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 7
|
|
||||||
flyin(param_00)
|
|
||||||
{
|
|
||||||
param_00 hide();
|
|
||||||
var_01 = randomintrange(3000,5000);
|
|
||||||
if(isdefined(level.spawnpoints))
|
|
||||||
{
|
|
||||||
var_02 = level.spawnpoints;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var_02 = level.startspawnpoints;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_03 = var_02[0];
|
|
||||||
foreach(var_05 in var_02)
|
|
||||||
{
|
|
||||||
if(var_05.origin[2] < var_03.origin[2])
|
|
||||||
{
|
|
||||||
var_03 = var_05;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var_07 = var_03.origin[2];
|
|
||||||
var_08 = level.uavrig.origin[2];
|
|
||||||
if(var_07 < 0)
|
|
||||||
{
|
|
||||||
var_08 = var_08 + var_07 * -1;
|
|
||||||
var_07 = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_09 = var_08 - var_07;
|
|
||||||
if(var_09 + var_01 > 8100)
|
|
||||||
{
|
|
||||||
var_01 = var_01 - var_09 + var_01 - 8100;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_0A = randomint(360);
|
|
||||||
var_0B = randomint(2000) + 5000;
|
|
||||||
var_0C = cos(var_0A) * var_0B;
|
|
||||||
var_0D = sin(var_0A) * var_0B;
|
|
||||||
var_0E = vectornormalize((var_0C,var_0D,var_01));
|
|
||||||
var_0E = var_0E * randomintrange(6000,7000);
|
|
||||||
param_00 linkto(level.uavrig,"tag_origin",var_0E,(0,var_0A - 90,135));
|
|
||||||
wait 0.05;
|
|
||||||
var_0F = param_00.origin;
|
|
||||||
param_00 unlink();
|
|
||||||
param_00.origin = var_0F + anglestoforward(param_00.angles) * -20000;
|
|
||||||
param_00 moveto(var_0F,4,0,2);
|
|
||||||
wait(4);
|
|
||||||
if(isdefined(param_00))
|
|
||||||
{
|
|
||||||
param_00 linkto(level.uavrig,"tag_origin");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 8
|
|
||||||
waittill_notify_or_timeout_hostmigration_pause(param_00,param_01)
|
|
||||||
{
|
|
||||||
self endon(param_00);
|
|
||||||
maps\mp\gametypes\_hostmigration::waitlongdurationwithhostmigrationpause(param_01);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 9
|
|
||||||
updateuavmodelvisibility()
|
|
||||||
{
|
|
||||||
self endon("death");
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
level common_scripts\utility::waittill_either("joined_team","uav_update");
|
|
||||||
self hide();
|
|
||||||
foreach(var_01 in level.players)
|
|
||||||
{
|
|
||||||
if(level.teambased)
|
|
||||||
{
|
|
||||||
if(var_01.team != self.team && !self.orbit)
|
|
||||||
{
|
|
||||||
self showtoplayer(var_01);
|
|
||||||
}
|
|
||||||
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if((isdefined(self.owner) && var_01 == self.owner) || self.orbit)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
self showtoplayer(var_01);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 10
|
|
||||||
uavondeath(param_00,param_01,param_02,param_03)
|
|
||||||
{
|
|
||||||
self hide();
|
|
||||||
self notify("death");
|
|
||||||
var_04 = anglestoright(self.angles) * 200;
|
|
||||||
playfx(common_scripts\utility::getfx("uav_explode"),self.origin,var_04);
|
|
||||||
playsoundatpos(self.origin,"uav_air_death");
|
|
||||||
maps\mp\gametypes\_damage::onkillstreakkilled(param_00,param_01,param_02,param_03,"uav_destroyed",undefined,"callout_destroyed_uav",1);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 11
|
|
||||||
tryuseuav(param_00,param_01)
|
|
||||||
{
|
|
||||||
if(isdefined(self.pers["killstreaks"][self.killstreakindexweapon].streakname))
|
|
||||||
{
|
|
||||||
var_02 = self.pers["killstreaks"][self.killstreakindexweapon].streakname;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var_02 = "uav_support";
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(level.ishorde) && level.ishorde && self.killstreakindexweapon == 1)
|
|
||||||
{
|
|
||||||
self notify("used_horde_uav");
|
|
||||||
}
|
|
||||||
|
|
||||||
return useuav(var_02,param_01);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 12
|
|
||||||
useuav(param_00,param_01)
|
|
||||||
{
|
|
||||||
maps\mp\_matchdata::logkillstreakevent(param_00,self.origin);
|
|
||||||
var_02 = self.pers["team"];
|
|
||||||
level thread launchuav(self,var_02,param_00,param_01);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 13
|
|
||||||
uavtracker()
|
|
||||||
{
|
|
||||||
level endon("game_ended");
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
level waittill("uav_update");
|
|
||||||
if(level.teambased)
|
|
||||||
{
|
|
||||||
updateteamuavstatus("allies");
|
|
||||||
updateteamuavstatus("axis");
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
updateplayersuavstatus();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 14
|
|
||||||
_getradarstrength(param_00,param_01,param_02)
|
|
||||||
{
|
|
||||||
var_03 = 0;
|
|
||||||
var_04 = 0;
|
|
||||||
foreach(var_06 in level.uavmodels[param_00])
|
|
||||||
{
|
|
||||||
var_03 = var_03 + var_06.value;
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach(var_06 in level.uavmodels[level.otherteam[param_00]])
|
|
||||||
{
|
|
||||||
if(var_06.uavtype != "counter")
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_04 = var_04 + var_06.value;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var_04 > 0)
|
|
||||||
{
|
|
||||||
var_0A = -3;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var_0A = var_04;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_0B = getuavstrengthmin();
|
|
||||||
var_0C = getuavstrengthmax();
|
|
||||||
if(var_0A <= var_0B)
|
|
||||||
{
|
|
||||||
var_0A = var_0B;
|
|
||||||
}
|
|
||||||
else if(var_0A >= var_0C)
|
|
||||||
{
|
|
||||||
var_0A = var_0C;
|
|
||||||
}
|
|
||||||
|
|
||||||
return var_0A;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 15
|
|
||||||
_getteampaintoutline(param_00)
|
|
||||||
{
|
|
||||||
var_01 = 0;
|
|
||||||
var_02 = 0;
|
|
||||||
foreach(var_04 in level.uavmodels[param_00])
|
|
||||||
{
|
|
||||||
if(var_04.paintoutline)
|
|
||||||
{
|
|
||||||
var_01 = var_01 + var_04.value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var_01 > 0)
|
|
||||||
{
|
|
||||||
var_02 = 1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var_02 = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
return var_02;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 16
|
|
||||||
_getpaintoutline(param_00)
|
|
||||||
{
|
|
||||||
var_01 = 0;
|
|
||||||
var_02 = 0;
|
|
||||||
foreach(var_04 in level.uavmodels)
|
|
||||||
{
|
|
||||||
if(isdefined(var_04.owner) && var_04.owner == param_00 && var_04.paintoutline)
|
|
||||||
{
|
|
||||||
var_01 = var_01 + var_04.value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var_01 > 0)
|
|
||||||
{
|
|
||||||
var_02 = 1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var_02 = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
return var_02;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 17
|
|
||||||
updateteamuavstatus(param_00)
|
|
||||||
{
|
|
||||||
var_01 = _getradarstrength(param_00);
|
|
||||||
var_02 = _getteampaintoutline(param_00);
|
|
||||||
updateteampaintoutline(param_00,var_02);
|
|
||||||
setteamradarstrength(param_00,var_01);
|
|
||||||
if(var_01 >= getuavstrengthlevelneutral())
|
|
||||||
{
|
|
||||||
updateteamradarblocked(param_00,0);
|
|
||||||
unblockteamradar(param_00);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
updateteamradarblocked(param_00,1);
|
|
||||||
blockteamradar(param_00);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var_01 <= getuavstrengthlevelneutral())
|
|
||||||
{
|
|
||||||
setteamradarwrapper(param_00,0);
|
|
||||||
updateteamuavtype(param_00);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var_01 >= getuavstrengthlevelshowenemyfastsweep())
|
|
||||||
{
|
|
||||||
level.radarmode[param_00] = "fast_radar";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
level.radarmode[param_00] = "normal_radar";
|
|
||||||
}
|
|
||||||
|
|
||||||
updateteamuavtype(param_00);
|
|
||||||
setteamradarwrapper(param_00,1);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 18
|
|
||||||
updateplayersuavstatus()
|
|
||||||
{
|
|
||||||
var_00 = getuavstrengthmin();
|
|
||||||
var_01 = getuavstrengthmax();
|
|
||||||
var_02 = getuavstrengthlevelshowenemydirectional();
|
|
||||||
foreach(var_04 in level.players)
|
|
||||||
{
|
|
||||||
var_05 = level.activeuavs[var_04.guid + "_radarStrength"];
|
|
||||||
var_06 = _getpaintoutline(var_04);
|
|
||||||
updatepaintoutline(var_04,var_06);
|
|
||||||
foreach(var_08 in level.players)
|
|
||||||
{
|
|
||||||
if(var_08 == var_04)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_09 = level.activecounteruavs[var_08.guid];
|
|
||||||
if(var_09 > 0)
|
|
||||||
{
|
|
||||||
var_05 = -3;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var_05 <= var_00)
|
|
||||||
{
|
|
||||||
var_05 = var_00;
|
|
||||||
}
|
|
||||||
else if(var_05 >= var_01)
|
|
||||||
{
|
|
||||||
var_05 = var_01;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_04.radarstrength = var_05;
|
|
||||||
if(var_05 >= getuavstrengthlevelneutral())
|
|
||||||
{
|
|
||||||
updateplayerradarblocked(var_04,0);
|
|
||||||
var_04.isradarblocked = 0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
updateplayerradarblocked(var_04,1);
|
|
||||||
var_04.isradarblocked = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var_05 <= getuavstrengthlevelneutral())
|
|
||||||
{
|
|
||||||
var_04.hasradar = 0;
|
|
||||||
var_04.radarshowenemydirection = 0;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var_05 >= getuavstrengthlevelshowenemyfastsweep())
|
|
||||||
{
|
|
||||||
var_04.radarmode = "fast_radar";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var_04.radarmode = "normal_radar";
|
|
||||||
}
|
|
||||||
|
|
||||||
var_04.radarshowenemydirection = var_05 >= var_02;
|
|
||||||
var_04.hasradar = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 19
|
|
||||||
updateteamuavtype(param_00,param_01)
|
|
||||||
{
|
|
||||||
var_02 = _getradarstrength(param_00) >= getuavstrengthlevelshowenemydirectional();
|
|
||||||
foreach(var_04 in level.players)
|
|
||||||
{
|
|
||||||
if(var_04.team == "spectator")
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_05 = maps\mp\gametypes\_gameobjects::getenemyteam(var_04.team);
|
|
||||||
var_04.radarmode = level.radarmode[var_04.team];
|
|
||||||
var_04.enemyradarmode = level.radarmode[var_05];
|
|
||||||
if(var_04.team == param_00)
|
|
||||||
{
|
|
||||||
var_04.radarshowenemydirection = var_02;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 20
|
|
||||||
updateteampaintoutline(param_00,param_01)
|
|
||||||
{
|
|
||||||
level endon("game_ended");
|
|
||||||
foreach(var_03 in level.players)
|
|
||||||
{
|
|
||||||
if(isdefined(var_03) && var_03.team == param_00)
|
|
||||||
{
|
|
||||||
var_03 playersetupuavpaintoutline(param_01);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 21
|
|
||||||
updatepaintoutline(param_00,param_01)
|
|
||||||
{
|
|
||||||
level endon("game_ended");
|
|
||||||
param_00 playersetupuavpaintoutline(param_01);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 22
|
|
||||||
playersetupuavpaintoutline(param_00)
|
|
||||||
{
|
|
||||||
if(param_00)
|
|
||||||
{
|
|
||||||
if(!isdefined(self.uav_paint_effect))
|
|
||||||
{
|
|
||||||
self.uav_paint_effect = maps\mp\_threatdetection::detection_highlight_hud_effect_on(self,-1);
|
|
||||||
}
|
|
||||||
|
|
||||||
self setperk("specialty_uav_paint",1,0);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(self.uav_paint_effect))
|
|
||||||
{
|
|
||||||
maps\mp\_threatdetection::detection_highlight_hud_effect_off(self.uav_paint_effect);
|
|
||||||
self.uav_paint_effect = undefined;
|
|
||||||
}
|
|
||||||
|
|
||||||
self unsetperk("specialty_uav_paint",1);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 23
|
|
||||||
updateteamradarblocked(param_00,param_01)
|
|
||||||
{
|
|
||||||
foreach(var_03 in level.players)
|
|
||||||
{
|
|
||||||
if(isdefined(var_03) && var_03.team == param_00)
|
|
||||||
{
|
|
||||||
updateplayerradarblocked(var_03,param_01);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 24
|
|
||||||
updateplayerradarblocked(param_00,param_01)
|
|
||||||
{
|
|
||||||
if(!param_01 || !param_00 maps\mp\_utility::_hasperk("specialty_class_hardwired"))
|
|
||||||
{
|
|
||||||
param_00 setclientomnvar("ui_uav_scrambler_on",param_01);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 25
|
|
||||||
setteamradarwrapper(param_00,param_01)
|
|
||||||
{
|
|
||||||
setteamradar(param_00,param_01);
|
|
||||||
level notify("radar_status_change",param_00);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 26
|
|
||||||
handleincomingstinger()
|
|
||||||
{
|
|
||||||
level endon("game_ended");
|
|
||||||
self endon("death");
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
level waittill("stinger_fired",var_00,var_01);
|
|
||||||
if(!maps\mp\_stingerm7::anystingermissilelockedon(var_01,self))
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach(var_03 in var_01)
|
|
||||||
{
|
|
||||||
if(!isdefined(var_03))
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_03 thread stingerproximitydetonate(var_03.lockedstingertarget,var_00);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 27
|
|
||||||
stingerproximitydetonate(param_00,param_01)
|
|
||||||
{
|
|
||||||
self endon("death");
|
|
||||||
var_02 = distance(self.origin,param_00 getpointinbounds(0,0,0));
|
|
||||||
var_03 = param_00 getpointinbounds(0,0,0);
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
if(!isdefined(param_00))
|
|
||||||
{
|
|
||||||
var_04 = var_03;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var_04 = param_00 getpointinbounds(0,0,0);
|
|
||||||
}
|
|
||||||
|
|
||||||
var_03 = var_04;
|
|
||||||
var_05 = distance(self.origin,var_04);
|
|
||||||
if(var_05 < var_02)
|
|
||||||
{
|
|
||||||
var_02 = var_05;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var_05 > var_02)
|
|
||||||
{
|
|
||||||
if(var_05 > 1536)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
radiusdamage(self.origin,1536,600,600,param_01,"MOD_EXPLOSIVE","stinger_mp");
|
|
||||||
playfx(level.stingerfxid,self.origin);
|
|
||||||
self hide();
|
|
||||||
self notify("deleted");
|
|
||||||
wait(0.05);
|
|
||||||
self delete();
|
|
||||||
param_01 notify("killstreak_destroyed");
|
|
||||||
}
|
|
||||||
|
|
||||||
wait(0.05);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 28
|
|
||||||
adduavmodel()
|
|
||||||
{
|
|
||||||
if(level.teambased)
|
|
||||||
{
|
|
||||||
level.uavmodels[self.team][level.uavmodels[self.team].size] = self;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
level.uavmodels[self.owner.guid + "_" + gettime()] = self;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 29
|
|
||||||
removeuavmodel()
|
|
||||||
{
|
|
||||||
var_00 = [];
|
|
||||||
if(level.teambased)
|
|
||||||
{
|
|
||||||
var_01 = self.team;
|
|
||||||
foreach(var_03 in level.uavmodels[var_01])
|
|
||||||
{
|
|
||||||
if(!isdefined(var_03))
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_00[var_00.size] = var_03;
|
|
||||||
}
|
|
||||||
|
|
||||||
level.uavmodels[var_01] = var_00;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach(var_03 in level.uavmodels)
|
|
||||||
{
|
|
||||||
if(!isdefined(var_03))
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_00[var_00.size] = var_03;
|
|
||||||
}
|
|
||||||
|
|
||||||
level.uavmodels = var_00;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 30
|
|
||||||
addactiveuav()
|
|
||||||
{
|
|
||||||
self.uavtype = "standard";
|
|
||||||
if(level.teambased)
|
|
||||||
{
|
|
||||||
level.activeuavs[self.team]++;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
level.activeuavs[self.owner.guid]++;
|
|
||||||
level.activeuavs[self.owner.guid + "_radarStrength"] = level.activeuavs[self.owner.guid + "_radarStrength"] + self.value;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 31
|
|
||||||
addactivecounteruav()
|
|
||||||
{
|
|
||||||
self.uavtype = "counter";
|
|
||||||
if(level.teambased)
|
|
||||||
{
|
|
||||||
level.activecounteruavs[self.team]++;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
level.activecounteruavs[self.owner.guid]++;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 32
|
|
||||||
removeactiveuav()
|
|
||||||
{
|
|
||||||
if(level.teambased)
|
|
||||||
{
|
|
||||||
level.activeuavs[self.team]--;
|
|
||||||
if(!level.activeuavs[self.team])
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(self.owner))
|
|
||||||
{
|
|
||||||
level.activeuavs[self.owner.guid]--;
|
|
||||||
level.activeuavs[self.owner.guid + "_radarStrength"] = level.activeuavs[self.owner.guid + "_radarStrength"] - self.value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 33
|
|
||||||
removeactivecounteruav()
|
|
||||||
{
|
|
||||||
if(level.teambased)
|
|
||||||
{
|
|
||||||
level.activecounteruavs[self.team]--;
|
|
||||||
if(!level.activecounteruavs[self.team])
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(self.owner))
|
|
||||||
{
|
|
||||||
level.activecounteruavs[self.owner.guid]--;
|
|
||||||
}
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load Diff
@ -1,463 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: maps\mp\killstreaks\streak_mp_bigben2.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 26
|
|
||||||
* Decompile Time: 449 ms
|
|
||||||
* Timestamp: 10/27/2023 1:44:45 AM
|
|
||||||
*******************************************************************/
|
|
||||||
|
|
||||||
//Function Number: 1
|
|
||||||
init()
|
|
||||||
{
|
|
||||||
precacheitem("iw5_dlcgun12loot5_mp");
|
|
||||||
precacherumble("tank_rumble");
|
|
||||||
precacherumble("heavygun_fire");
|
|
||||||
precacherumble("smg_fire");
|
|
||||||
level.killstreakwieldweapons["iw5_dlcgun12loot5_mp"] = "mp_bigben2";
|
|
||||||
if(level.console)
|
|
||||||
{
|
|
||||||
level.skylight_fire_fx = loadfx("vfx/map/mp_bigben/mp_bigb_killstreak_screen_fire");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
level.skylight_fire_fx = loadfx("vfx/map/mp_bigben/mp_bigb_killstreak_screen_fire_pc");
|
|
||||||
}
|
|
||||||
|
|
||||||
var_00 = getent("rocket_startorg","targetname");
|
|
||||||
var_01 = getent("rocket_endorg","targetname");
|
|
||||||
var_02 = getent("camera_startorg","targetname");
|
|
||||||
var_03 = getent("camera_endorg","targetname");
|
|
||||||
level.rocket_start = var_00.origin;
|
|
||||||
level.rocket_start_angles = (270,0,0);
|
|
||||||
level.rocket_end = var_01.origin;
|
|
||||||
level.camera_start = var_02.origin;
|
|
||||||
level.camera_end = var_03.origin;
|
|
||||||
level.skylight_actual_rocket = getent("actual_rocket","targetname");
|
|
||||||
level.skylight_camera_link = getent("camera_linkto_main","targetname");
|
|
||||||
level.skylight_actual_rocket.origin = level.rocket_start;
|
|
||||||
level.skylight_actual_rocket.angles = level.rocket_start_angles;
|
|
||||||
level.skylight_camera_link.origin = level.camera_start;
|
|
||||||
level.skylight_camera_link setmodel("tag_player");
|
|
||||||
level.skylight_rocket_fx_tag = spawn("script_model",(0,0,0));
|
|
||||||
level.skylight_rocket_fx_tag setmodel("tag_origin");
|
|
||||||
level.skylight_rocket_fx_tag linkto(level.skylight_actual_rocket,"tag_origin",(0,0,0),(0,0,0));
|
|
||||||
level.missileflighttime = 10;
|
|
||||||
level.skylight_real_missile_number = 30;
|
|
||||||
level.skylight_fx_missile_chance = 100;
|
|
||||||
level.skylight_fx_missile_max = 30;
|
|
||||||
level.skylight_missile_min_time = 0.2;
|
|
||||||
level.skylight_missile_max_time = 0.4;
|
|
||||||
if(level.currentgen)
|
|
||||||
{
|
|
||||||
level.skylight_fx_missile_chance = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
level.killstreakfuncs["mp_bigben2"] = ::tryuseskylight;
|
|
||||||
level.mapkillstreak = "mp_bigben2";
|
|
||||||
level.mapkillstreakpickupstring = &"MP_BIGBEN2_MAP_KILLSTREAK_PICKUP";
|
|
||||||
level.skylight_available = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 2
|
|
||||||
tryuseskylight(param_00,param_01)
|
|
||||||
{
|
|
||||||
if(!skylight_available())
|
|
||||||
{
|
|
||||||
self iprintlnbold(&"KILLSTREAKS_AIR_SPACE_TOO_CROWDED");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
level.skylight_available = 0;
|
|
||||||
var_02 = maps\mp\killstreaks\_killstreaks::initridekillstreak();
|
|
||||||
if(var_02 != "success")
|
|
||||||
{
|
|
||||||
level.skylight_available = 1;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
maps\mp\_utility::setusingremote("mp_bigben2");
|
|
||||||
var_02 = setupskylightrocketstrike();
|
|
||||||
maps\mp\_matchdata::logkillstreakevent("dlc_streak4",self.origin);
|
|
||||||
return var_02;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 3
|
|
||||||
setupskylightrocketstrike()
|
|
||||||
{
|
|
||||||
level notify("skylight_start");
|
|
||||||
thread monitor_player_disconnect();
|
|
||||||
thread monitor_player_team_change();
|
|
||||||
thread monitor_game_ended();
|
|
||||||
playeraddnotifycommands();
|
|
||||||
thread skylight_rocket_control();
|
|
||||||
thread skylight_monitor_timeout();
|
|
||||||
thread skylight_play_rumble();
|
|
||||||
thread skylight_cleanup_player();
|
|
||||||
thread skylight_cleanup_rocket();
|
|
||||||
thread skylight_rocket_animate();
|
|
||||||
thread maps\mp\mp_bigben2_fx::stop_vista_vfx();
|
|
||||||
thread skylight_monitor_fire();
|
|
||||||
thread skylight_monitor_cancel();
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 4
|
|
||||||
monitor_player_disconnect()
|
|
||||||
{
|
|
||||||
self endon("skylight_cancel");
|
|
||||||
self endon("skylight_payload_complete");
|
|
||||||
self waittill("disconnect");
|
|
||||||
self notify("skylight_cancel");
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 5
|
|
||||||
monitor_player_team_change()
|
|
||||||
{
|
|
||||||
self endon("skylight_cancel");
|
|
||||||
self endon("skylight_payload_complete");
|
|
||||||
common_scripts\utility::waittill_either("joined_team","joined_spectators");
|
|
||||||
self notify("skylight_cancel");
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 6
|
|
||||||
monitor_game_ended()
|
|
||||||
{
|
|
||||||
self endon("skylight_cancel");
|
|
||||||
self endon("skylight_payload_complete");
|
|
||||||
level waittill("game_ended");
|
|
||||||
self notify("skylight_cancel");
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 7
|
|
||||||
skylight_monitor_cancel()
|
|
||||||
{
|
|
||||||
self endon("skylight_control_over");
|
|
||||||
self endon("skylight_cancel");
|
|
||||||
wait(0.3);
|
|
||||||
var_00 = 5;
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
self waittill("ToggleControlState");
|
|
||||||
thread cancel_button_monitor();
|
|
||||||
self.holdingleavebutton = 1;
|
|
||||||
for(var_01 = 0;var_01 <= var_00;var_01++)
|
|
||||||
{
|
|
||||||
wait(0.1);
|
|
||||||
if(self.holdingleavebutton == 1 && var_01 == var_00)
|
|
||||||
{
|
|
||||||
self notify("skylight_cancel");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
else if(self.holdingleavebutton == 0)
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 8
|
|
||||||
cancel_button_monitor()
|
|
||||||
{
|
|
||||||
self endon("skylight_control_over");
|
|
||||||
self endon("skylight_cancel");
|
|
||||||
self waittill("ToggleControlCancel");
|
|
||||||
self.holdingleavebutton = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 9
|
|
||||||
skylight_monitor_timeout()
|
|
||||||
{
|
|
||||||
self endon("skylight_control_over");
|
|
||||||
self endon("skylight_cancel");
|
|
||||||
wait(level.missileflighttime);
|
|
||||||
self notify("skylight_fire_timeout");
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 10
|
|
||||||
skylight_monitor_fire()
|
|
||||||
{
|
|
||||||
self endon("skylight_cancel");
|
|
||||||
wait(0.3);
|
|
||||||
common_scripts\utility::waittill_any("StartFire","skylight_fire_timeout");
|
|
||||||
self playlocalsound("bb_missile_launch_pod_midair_exp");
|
|
||||||
var_00 = self getplayerangles();
|
|
||||||
var_01 = anglestoforward(var_00);
|
|
||||||
var_02 = level.skylight_camera_link.origin;
|
|
||||||
var_03 = var_02 + var_01 * 12000;
|
|
||||||
var_04 = bullettrace(var_02,var_03,0,level.skylight_actual_rocket);
|
|
||||||
var_05 = var_04["position"];
|
|
||||||
self playrumbleonentity("heavygun_fire");
|
|
||||||
earthquake(0.4,1,level.skylight_camera_link.origin,2000,self);
|
|
||||||
wait(0.2);
|
|
||||||
self notify("skylight_control_over");
|
|
||||||
thread fire_missiles(var_05);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 11
|
|
||||||
skylight_cleanup_player()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
common_scripts\utility::waittill_any("skylight_control_over","skylight_cancel");
|
|
||||||
playerremovenotifycommands();
|
|
||||||
self enableweaponswitch();
|
|
||||||
self unlink();
|
|
||||||
self setclientomnvar("fov_scale",1);
|
|
||||||
self disableslowaim();
|
|
||||||
self setclientomnvar("ui_solar_beam",0);
|
|
||||||
self thermalvisionfofoverlayoff();
|
|
||||||
level.skylight_fire_fx_ent delete();
|
|
||||||
if(maps\mp\_utility::isusingremote())
|
|
||||||
{
|
|
||||||
maps\mp\_utility::clearusingremote();
|
|
||||||
}
|
|
||||||
|
|
||||||
thread removeskylightvisionandlightsetpermap(0.5);
|
|
||||||
if(getdvarint("camera_thirdPerson"))
|
|
||||||
{
|
|
||||||
maps\mp\_utility::setthirdpersondof(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
maps\mp\_utility::playerrestoreangles();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 12
|
|
||||||
skylight_cleanup_rocket()
|
|
||||||
{
|
|
||||||
common_scripts\utility::waittill_any("skylight_cancel","skylight_payload_complete");
|
|
||||||
wait(0.1);
|
|
||||||
playfx(common_scripts\utility::getfx("mp_bigb_killstreak_rocket_explosion"),level.skylight_actual_rocket.origin);
|
|
||||||
stopfxontag(common_scripts\utility::getfx("mp_bigb_killstreak_rockettrail"),level.skylight_rocket_fx_tag,"tag_origin");
|
|
||||||
level.skylight_actual_rocket scriptmodelclearanim();
|
|
||||||
wait(0.1);
|
|
||||||
level.skylight_actual_rocket.origin = level.rocket_start;
|
|
||||||
level.skylight_actual_rocket.angles = level.rocket_start_angles;
|
|
||||||
level.skylight_camera_link.origin = level.camera_start;
|
|
||||||
level.skylight_available = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 13
|
|
||||||
skylight_available()
|
|
||||||
{
|
|
||||||
return level.skylight_available;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 14
|
|
||||||
playeraddnotifycommands()
|
|
||||||
{
|
|
||||||
if(!isbot(self))
|
|
||||||
{
|
|
||||||
self notifyonplayercommand("SwitchVisionMode","+actionslot 1");
|
|
||||||
self notifyonplayercommand("ToggleControlState","+activate");
|
|
||||||
self notifyonplayercommand("ToggleControlCancel","-activate");
|
|
||||||
self notifyonplayercommand("ToggleControlState","+usereload");
|
|
||||||
self notifyonplayercommand("ToggleControlCancel","-usereload");
|
|
||||||
self notifyonplayercommand("StartFire","+attack");
|
|
||||||
self notifyonplayercommand("StartFire","+attack_akimbo_accessible");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 15
|
|
||||||
playerremovenotifycommands()
|
|
||||||
{
|
|
||||||
if(!isbot(self))
|
|
||||||
{
|
|
||||||
self notifyonplayercommandremove("SwitchVisionMode","+actionslot 1");
|
|
||||||
self notifyonplayercommandremove("ToggleControlState","+activate");
|
|
||||||
self notifyonplayercommandremove("ToggleControlCancel","-activate");
|
|
||||||
self notifyonplayercommandremove("ToggleControlState","+usereload");
|
|
||||||
self notifyonplayercommandremove("ToggleControlCancel","-usereload");
|
|
||||||
self notifyonplayercommandremove("StartFire","+attack");
|
|
||||||
self notifyonplayercommandremove("StartFire","+attack_akimbo_accessible");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 16
|
|
||||||
setskylightvisionandlightsetpermap(param_00)
|
|
||||||
{
|
|
||||||
self endon("skylight_cancel");
|
|
||||||
self endon("game_ended");
|
|
||||||
self endon("OrbitalStrikeStreakComplete");
|
|
||||||
wait(param_00);
|
|
||||||
if(isdefined(level.vulcanvisionset))
|
|
||||||
{
|
|
||||||
self setclienttriggervisionset(level.vulcanvisionset,0);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(level.vulcanlightset))
|
|
||||||
{
|
|
||||||
self lightsetforplayer(level.vulcanlightset);
|
|
||||||
}
|
|
||||||
|
|
||||||
maps\mp\killstreaks\_aerial_utility::handle_player_starting_aerial_view();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 17
|
|
||||||
removeskylightvisionandlightsetpermap(param_00)
|
|
||||||
{
|
|
||||||
self setclienttriggervisionset("",param_00);
|
|
||||||
self lightsetforplayer("");
|
|
||||||
maps\mp\killstreaks\_aerial_utility::handle_player_ending_aerial_view();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 18
|
|
||||||
skylight_play_rumble()
|
|
||||||
{
|
|
||||||
self endon("skylight_cancel");
|
|
||||||
self endon("skylight_control_over");
|
|
||||||
thread skylight_play_rumble_on_all_players();
|
|
||||||
wait(0.1);
|
|
||||||
earthquake(0.4,3,level.skylight_camera_link.origin,2000,self);
|
|
||||||
wait(0.1);
|
|
||||||
earthquake(0.2,15,(4176.5,14000,18000),20000,self);
|
|
||||||
wait(0.5);
|
|
||||||
self playrumbleonentity("heavygun_fire");
|
|
||||||
thread skylight_loop_rumble(20);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 19
|
|
||||||
skylight_play_rumble_on_all_players()
|
|
||||||
{
|
|
||||||
foreach(var_01 in level.players)
|
|
||||||
{
|
|
||||||
if(var_01 != self)
|
|
||||||
{
|
|
||||||
earthquake(0.3,3,level.rocket_start,3500,var_01);
|
|
||||||
var_01 playrumblelooponentity("tank_rumble");
|
|
||||||
var_01 thread skylight_end_rumble_loop(0.8);
|
|
||||||
if(distancesquared(level.rocket_start,var_01.origin) < 1000000)
|
|
||||||
{
|
|
||||||
var_01 playrumbleonentity("heavygun_fire");
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(distancesquared(level.rocket_start,var_01.origin) < 4000000)
|
|
||||||
{
|
|
||||||
var_01 playrumbleonentity("smg_fire");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 20
|
|
||||||
skylight_loop_rumble(param_00)
|
|
||||||
{
|
|
||||||
self endon("skylight_cancel");
|
|
||||||
self endon("skylight_control_over");
|
|
||||||
while(param_00 > 0)
|
|
||||||
{
|
|
||||||
self playrumbleonentity("smg_fire");
|
|
||||||
param_00 = param_00 - 0.2;
|
|
||||||
wait(0.2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 21
|
|
||||||
skylight_end_rumble_loop(param_00)
|
|
||||||
{
|
|
||||||
self endon("death");
|
|
||||||
level common_scripts\utility::waittill_notify_or_timeout("game_ended",param_00);
|
|
||||||
self stoprumble("tank_rumble");
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 22
|
|
||||||
skylight_rocket_control()
|
|
||||||
{
|
|
||||||
self disableweaponswitch();
|
|
||||||
self setclientomnvar("fov_scale",0.5);
|
|
||||||
self enableslowaim(0.5,0.5);
|
|
||||||
self thermalvisionfofoverlayon();
|
|
||||||
level.skylight_camera_link moveto(level.camera_end,level.missileflighttime,1,0);
|
|
||||||
self playerlinkweaponviewtodelta(level.skylight_camera_link,"tag_player",1,60,60,-30,75,1);
|
|
||||||
thread setskylightvisionandlightsetpermap(0.5);
|
|
||||||
maps\mp\_utility::playersaveangles();
|
|
||||||
self setplayerangles((40,270,0));
|
|
||||||
self setclientomnvar("ui_solar_beam",1);
|
|
||||||
var_00 = gettime() + level.missileflighttime * 1000;
|
|
||||||
self setclientomnvar("ui_solar_beam_timer",var_00);
|
|
||||||
level.skylight_fire_fx_ent = spawnlinkedfxforclient(level.skylight_fire_fx,level.skylight_camera_link,"tag_player",self);
|
|
||||||
setfxkillondelete(level.skylight_fire_fx_ent,1);
|
|
||||||
triggerfx(level.skylight_fire_fx_ent);
|
|
||||||
thread aud_skylight_launch_sfx();
|
|
||||||
thread aud_skylight_launch_sfx_3d();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 23
|
|
||||||
aud_skylight_launch_sfx()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
wait(0.2);
|
|
||||||
self playlocalsound("bb_missile_launch_pod_midair_exp");
|
|
||||||
wait(0.2);
|
|
||||||
self playlocalsound("paladin_toggle_flir_plr");
|
|
||||||
self playlocalsound("bb_missile_jet_pov_effit");
|
|
||||||
common_scripts\utility::waittill_any("skylight_control_over","skylight_cancel");
|
|
||||||
self stopsounds();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 24
|
|
||||||
aud_skylight_launch_sfx_3d()
|
|
||||||
{
|
|
||||||
wait(0.2);
|
|
||||||
self playsound("bb_missile_launch_pod_midair_exp_3d");
|
|
||||||
self playsound("bb_missile_low_3d");
|
|
||||||
wait(0.2);
|
|
||||||
self playsound("bb_missile_jet_pov_effit_3d");
|
|
||||||
common_scripts\utility::waittill_any("skylight_control_over","skylight_cancel");
|
|
||||||
self stopsounds();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 25
|
|
||||||
skylight_rocket_animate()
|
|
||||||
{
|
|
||||||
self endon("skylight_cancel");
|
|
||||||
wait(0.1);
|
|
||||||
level.skylight_actual_rocket scriptmodelplayanimdeltamotion("bbn_skylight_rocket_launch");
|
|
||||||
foreach(var_01 in level.players)
|
|
||||||
{
|
|
||||||
if(var_01 != self)
|
|
||||||
{
|
|
||||||
playfxontagforclients(common_scripts\utility::getfx("mp_bigb_killstreak_rockettrail"),level.skylight_rocket_fx_tag,"tag_origin",var_01);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 26
|
|
||||||
fire_missiles(param_00)
|
|
||||||
{
|
|
||||||
self endon("skylight_cancel");
|
|
||||||
var_01 = 0;
|
|
||||||
wait(randomfloatrange(level.skylight_missile_min_time,level.skylight_missile_max_time));
|
|
||||||
var_02 = magicbullet("iw5_dlcgun12loot5_mp",level.skylight_actual_rocket.origin,param_00,self);
|
|
||||||
wait(0.1);
|
|
||||||
if(randomint(100) <= level.skylight_fx_missile_chance && var_01 < level.skylight_fx_missile_max)
|
|
||||||
{
|
|
||||||
var_01++;
|
|
||||||
var_03 = vectortoangles(level.skylight_actual_rocket.origin - param_00);
|
|
||||||
var_04 = anglestoforward(var_03);
|
|
||||||
playfx(common_scripts\utility::getfx("mp_bigb_killstreak_curvy_missile"),level.skylight_actual_rocket.origin,var_04);
|
|
||||||
}
|
|
||||||
|
|
||||||
maps\mp\_audio::snd_play_in_space("paladin_cannon_snap",level.skylight_actual_rocket.origin);
|
|
||||||
for(var_05 = 1;var_05 < level.skylight_real_missile_number;var_05++)
|
|
||||||
{
|
|
||||||
wait(randomfloatrange(level.skylight_missile_min_time - 0.1,level.skylight_missile_max_time - 0.1));
|
|
||||||
var_06 = randomfloatrange(-400,400);
|
|
||||||
var_07 = randomfloatrange(-400,400);
|
|
||||||
var_02 = magicbullet("iw5_dlcgun12loot5_mp",level.skylight_actual_rocket.origin,param_00 + (var_06,var_07,0),self);
|
|
||||||
wait(0.1);
|
|
||||||
if(randomint(100) <= level.skylight_fx_missile_chance && var_01 < level.skylight_fx_missile_max)
|
|
||||||
{
|
|
||||||
var_01++;
|
|
||||||
var_03 = vectortoangles(level.skylight_actual_rocket.origin - param_00 + (var_06,var_07,0));
|
|
||||||
var_04 = anglestoforward(var_03);
|
|
||||||
playfx(common_scripts\utility::getfx("mp_bigb_killstreak_curvy_missile"),level.skylight_actual_rocket.origin,var_04);
|
|
||||||
}
|
|
||||||
|
|
||||||
maps\mp\_audio::snd_play_in_space("paladin_cannon_snap",level.skylight_actual_rocket.origin);
|
|
||||||
}
|
|
||||||
|
|
||||||
self notify("skylight_payload_complete");
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load Diff
@ -1,491 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: maps/mp/perks/_perks.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 10
|
|
||||||
* Decompile Time: 173 ms
|
|
||||||
* Timestamp: 10/27/2023 1:52:36 AM
|
|
||||||
*******************************************************************/
|
|
||||||
|
|
||||||
//Function Number: 1
|
|
||||||
init()
|
|
||||||
{
|
|
||||||
level.perkfuncs = [];
|
|
||||||
level.specialty_finalstand_icon = "specialty_s1_temp";
|
|
||||||
level.specialty_c4_death_icon = "specialty_s1_temp";
|
|
||||||
level.specialty_compassping_revenge_icon = "specialty_s1_temp";
|
|
||||||
level.specialty_juiced_icon = "specialty_s1_temp";
|
|
||||||
if(!isdefined(level.iszombiegame) || !level.iszombiegame)
|
|
||||||
{
|
|
||||||
level.spawnglowmodel["enemy"] = "static_tactical_insertion_device";
|
|
||||||
level.spawnglowmodel["friendly"] = "static_tactical_insertion_device";
|
|
||||||
level.spawnglow["enemy"] = loadfx("vfx/props/tac_insert_enemy");
|
|
||||||
level.spawnglow["friendly"] = loadfx("vfx/props/tac_insert_friendly");
|
|
||||||
level.spawnfire = loadfx("vfx/explosion/mp_tac_explosion");
|
|
||||||
}
|
|
||||||
|
|
||||||
level._effect["ricochet"] = loadfx("fx/impacts/large_metalhit_1");
|
|
||||||
level.scriptperks = [];
|
|
||||||
level.perksetfuncs = [];
|
|
||||||
level.perkunsetfuncs = [];
|
|
||||||
level.scriptperks["specialty_blastshield"] = 1;
|
|
||||||
level.scriptperks["_specialty_blastshield"] = 1;
|
|
||||||
level.scriptperks["specialty_akimbo"] = 1;
|
|
||||||
level.scriptperks["specialty_falldamage"] = 1;
|
|
||||||
level.scriptperks["specialty_shield"] = 1;
|
|
||||||
level.scriptperks["specialty_feigndeath"] = 1;
|
|
||||||
level.scriptperks["specialty_shellshock"] = 1;
|
|
||||||
level.scriptperks["specialty_delaymine"] = 1;
|
|
||||||
level.scriptperks["specialty_localjammer"] = 1;
|
|
||||||
level.scriptperks["specialty_thermal"] = 1;
|
|
||||||
level.scriptperks["specialty_blackbox"] = 1;
|
|
||||||
level.scriptperks["specialty_steelnerves"] = 1;
|
|
||||||
level.scriptperks["specialty_flashgrenade"] = 1;
|
|
||||||
level.scriptperks["specialty_smokegrenade"] = 1;
|
|
||||||
level.scriptperks["specialty_concussiongrenade"] = 1;
|
|
||||||
level.scriptperks["specialty_saboteur"] = 1;
|
|
||||||
level.scriptperks["specialty_endgame"] = 1;
|
|
||||||
level.scriptperks["specialty_rearview"] = 1;
|
|
||||||
level.scriptperks["specialty_hardline"] = 1;
|
|
||||||
level.scriptperks["specialty_onemanarmy"] = 1;
|
|
||||||
level.scriptperks["specialty_primarydeath"] = 1;
|
|
||||||
level.scriptperks["specialty_secondarybling"] = 1;
|
|
||||||
level.scriptperks["specialty_explosivedamage"] = 1;
|
|
||||||
level.scriptperks["specialty_laststandoffhand"] = 1;
|
|
||||||
level.scriptperks["specialty_dangerclose"] = 1;
|
|
||||||
level.scriptperks["specialty_hardjack"] = 1;
|
|
||||||
level.scriptperks["specialty_extraspecialduration"] = 1;
|
|
||||||
level.scriptperks["specialty_rollover"] = 1;
|
|
||||||
level.scriptperks["specialty_armorpiercing"] = 1;
|
|
||||||
level.scriptperks["specialty_omaquickchange"] = 1;
|
|
||||||
level.scriptperks["_specialty_rearview"] = 1;
|
|
||||||
level.scriptperks["_specialty_onemanarmy"] = 1;
|
|
||||||
level.scriptperks["specialty_steadyaimpro"] = 1;
|
|
||||||
level.scriptperks["specialty_stun_resistance"] = 1;
|
|
||||||
level.scriptperks["specialty_double_load"] = 1;
|
|
||||||
level.scriptperks["specialty_regenspeed"] = 1;
|
|
||||||
level.scriptperks["specialty_twoprimaries"] = 1;
|
|
||||||
level.scriptperks["specialty_autospot"] = 1;
|
|
||||||
level.scriptperks["specialty_overkillpro"] = 1;
|
|
||||||
level.scriptperks["specialty_anytwo"] = 1;
|
|
||||||
level.scriptperks["specialty_fasterlockon"] = 1;
|
|
||||||
level.scriptperks["specialty_paint"] = 1;
|
|
||||||
level.scriptperks["specialty_paint_pro"] = 1;
|
|
||||||
level.scriptperks["specialty_silentkill"] = 1;
|
|
||||||
level.scriptperks["specialty_crouchmovement"] = 1;
|
|
||||||
level.scriptperks["specialty_personaluav"] = 1;
|
|
||||||
level.scriptperks["specialty_unwrapper"] = 1;
|
|
||||||
level.scriptperks["specialty_class_blindeye"] = 1;
|
|
||||||
level.scriptperks["specialty_class_lowprofile"] = 1;
|
|
||||||
level.scriptperks["specialty_class_coldblooded"] = 1;
|
|
||||||
level.scriptperks["specialty_class_hardwired"] = 1;
|
|
||||||
level.scriptperks["specialty_class_scavenger"] = 1;
|
|
||||||
level.scriptperks["specialty_class_hoarder"] = 1;
|
|
||||||
level.scriptperks["specialty_class_gungho"] = 1;
|
|
||||||
level.scriptperks["specialty_class_steadyhands"] = 1;
|
|
||||||
level.scriptperks["specialty_class_hardline"] = 1;
|
|
||||||
level.scriptperks["specialty_class_peripherals"] = 1;
|
|
||||||
level.scriptperks["specialty_class_quickdraw"] = 1;
|
|
||||||
level.scriptperks["specialty_class_toughness"] = 1;
|
|
||||||
level.scriptperks["specialty_class_lightweight"] = 1;
|
|
||||||
level.scriptperks["specialty_class_engineer"] = 1;
|
|
||||||
level.scriptperks["specialty_class_dangerclose"] = 1;
|
|
||||||
level.scriptperks["specialty_horde_weaponsfree"] = 1;
|
|
||||||
level.scriptperks["specialty_horde_dualprimary"] = 1;
|
|
||||||
level.scriptperks["specialty_marksman"] = 1;
|
|
||||||
level.scriptperks["specialty_sharp_focus"] = 1;
|
|
||||||
level.scriptperks["specialty_moredamage"] = 1;
|
|
||||||
level.scriptperks["specialty_copycat"] = 1;
|
|
||||||
level.scriptperks["specialty_finalstand"] = 1;
|
|
||||||
level.scriptperks["specialty_juiced"] = 1;
|
|
||||||
level.scriptperks["specialty_light_armor"] = 1;
|
|
||||||
level.scriptperks["specialty_carepackage"] = 1;
|
|
||||||
level.scriptperks["specialty_stopping_power"] = 1;
|
|
||||||
level.scriptperks["specialty_uav"] = 1;
|
|
||||||
level.scriptperks["bouncingbetty_mp"] = 1;
|
|
||||||
level.scriptperks["c4_mp"] = 1;
|
|
||||||
level.scriptperks["claymore_mp"] = 1;
|
|
||||||
level.scriptperks["frag_grenade_mp"] = 1;
|
|
||||||
level.scriptperks["semtex_mp"] = 1;
|
|
||||||
level.scriptperks["tracking_drone_mp"] = 1;
|
|
||||||
level.scriptperks["throwingknife_mp"] = 1;
|
|
||||||
level.scriptperks["exoknife_mp"] = 1;
|
|
||||||
level.scriptperks["exoknife_jug_mp"] = 1;
|
|
||||||
level.scriptperks["paint_grenade_mp"] = 1;
|
|
||||||
level.scriptperks["tri_drone_mp"] = 1;
|
|
||||||
level.scriptperks["explosive_gel_mp"] = 1;
|
|
||||||
level.scriptperks["frag_grenade_var_mp"] = 1;
|
|
||||||
level.scriptperks["contact_grenade_var_mp"] = 1;
|
|
||||||
level.scriptperks["semtex_grenade_var_mp"] = 1;
|
|
||||||
level.scriptperks["stun_grenade_var_mp"] = 1;
|
|
||||||
level.scriptperks["emp_grenade_var_mp"] = 1;
|
|
||||||
level.scriptperks["paint_grenade_var_mp"] = 1;
|
|
||||||
level.scriptperks["smoke_grenade_var_mp"] = 1;
|
|
||||||
level.scriptperks["explosive_drone_mp"] = 1;
|
|
||||||
level.scriptperks["concussion_grenade_mp"] = 1;
|
|
||||||
level.scriptperks["flash_grenade_mp"] = 1;
|
|
||||||
level.scriptperks["stun_grenade_mp"] = 1;
|
|
||||||
level.scriptperks["smoke_grenade_mp"] = 1;
|
|
||||||
level.scriptperks["emp_grenade_mp"] = 1;
|
|
||||||
level.scriptperks["portable_radar_mp"] = 1;
|
|
||||||
level.scriptperks["scrambler_mp"] = 1;
|
|
||||||
level.scriptperks["trophy_mp"] = 1;
|
|
||||||
level.scriptperks["s1_tactical_insertion_device_mp"] = 1;
|
|
||||||
level.scriptperks["specialty_wildcard_perkslot1"] = 1;
|
|
||||||
level.scriptperks["specialty_wildcard_perkslot2"] = 1;
|
|
||||||
level.scriptperks["specialty_wildcard_perkslot3"] = 1;
|
|
||||||
level.scriptperks["specialty_wildcard_primaryattachment"] = 1;
|
|
||||||
level.scriptperks["specialty_wildcard_secondaryattachment"] = 1;
|
|
||||||
level.scriptperks["specialty_wildcard_extrastreak"] = 1;
|
|
||||||
level.scriptperks["specialty_null"] = 1;
|
|
||||||
level.perksetfuncs["specialty_blastshield"] = ::maps\mp\perks\_perkfunctions::setblastshield;
|
|
||||||
level.perkunsetfuncs["specialty_blastshield"] = ::maps\mp\perks\_perkfunctions::unsetblastshield;
|
|
||||||
level.perksetfuncs["specialty_falldamage"] = ::maps\mp\perks\_perkfunctions::setfreefall;
|
|
||||||
level.perkunsetfuncs["specialty_falldamage"] = ::maps\mp\perks\_perkfunctions::unsetfreefall;
|
|
||||||
level.perksetfuncs["specialty_localjammer"] = ::maps\mp\perks\_perkfunctions::setlocaljammer;
|
|
||||||
level.perkunsetfuncs["specialty_localjammer"] = ::maps\mp\perks\_perkfunctions::unsetlocaljammer;
|
|
||||||
level.perksetfuncs["specialty_thermal"] = ::maps\mp\perks\_perkfunctions::setthermal;
|
|
||||||
level.perkunsetfuncs["specialty_thermal"] = ::maps\mp\perks\_perkfunctions::unsetthermal;
|
|
||||||
level.perksetfuncs["specialty_blackbox"] = ::maps\mp\perks\_perkfunctions::setblackbox;
|
|
||||||
level.perkunsetfuncs["specialty_blackbox"] = ::maps\mp\perks\_perkfunctions::unsetblackbox;
|
|
||||||
level.perksetfuncs["specialty_lightweight"] = ::maps\mp\perks\_perkfunctions::setlightweight;
|
|
||||||
level.perkunsetfuncs["specialty_lightweight"] = ::maps\mp\perks\_perkfunctions::unsetlightweight;
|
|
||||||
level.perksetfuncs["specialty_steelnerves"] = ::maps\mp\perks\_perkfunctions::setsteelnerves;
|
|
||||||
level.perkunsetfuncs["specialty_steelnerves"] = ::maps\mp\perks\_perkfunctions::unsetsteelnerves;
|
|
||||||
level.perksetfuncs["specialty_delaymine"] = ::maps\mp\perks\_perkfunctions::setdelaymine;
|
|
||||||
level.perkunsetfuncs["specialty_delaymine"] = ::maps\mp\perks\_perkfunctions::unsetdelaymine;
|
|
||||||
level.perksetfuncs["specialty_saboteur"] = ::maps\mp\perks\_perkfunctions::setsaboteur;
|
|
||||||
level.perkunsetfuncs["specialty_saboteur"] = ::maps\mp\perks\_perkfunctions::unsetsaboteur;
|
|
||||||
level.perksetfuncs["specialty_endgame"] = ::maps\mp\perks\_perkfunctions::setendgame;
|
|
||||||
level.perkunsetfuncs["specialty_endgame"] = ::maps\mp\perks\_perkfunctions::unsetendgame;
|
|
||||||
level.perksetfuncs["specialty_rearview"] = ::maps\mp\perks\_perkfunctions::setrearview;
|
|
||||||
level.perkunsetfuncs["specialty_rearview"] = ::maps\mp\perks\_perkfunctions::unsetrearview;
|
|
||||||
level.perksetfuncs["specialty_onemanarmy"] = ::maps\mp\perks\_perkfunctions::setonemanarmy;
|
|
||||||
level.perkunsetfuncs["specialty_onemanarmy"] = ::maps\mp\perks\_perkfunctions::unsetonemanarmy;
|
|
||||||
level.perksetfuncs["specialty_steadyaimpro"] = ::maps\mp\perks\_perkfunctions::setsteadyaimpro;
|
|
||||||
level.perkunsetfuncs["specialty_steadyaimpro"] = ::maps\mp\perks\_perkfunctions::unsetsteadyaimpro;
|
|
||||||
level.perksetfuncs["specialty_stun_resistance"] = ::maps\mp\perks\_perkfunctions::setstunresistance;
|
|
||||||
level.perkunsetfuncs["specialty_stun_resistance"] = ::maps\mp\perks\_perkfunctions::unsetstunresistance;
|
|
||||||
level.perksetfuncs["specialty_marksman"] = ::maps\mp\perks\_perkfunctions::setmarksman;
|
|
||||||
level.perkunsetfuncs["specialty_marksman"] = ::maps\mp\perks\_perkfunctions::unsetmarksman;
|
|
||||||
level.perksetfuncs["specialty_double_load"] = ::maps\mp\perks\_perkfunctions::setdoubleload;
|
|
||||||
level.perkunsetfuncs["specialty_double_load"] = ::maps\mp\perks\_perkfunctions::unsetdoubleload;
|
|
||||||
level.perksetfuncs["specialty_sharp_focus"] = ::maps\mp\perks\_perkfunctions::setsharpfocus;
|
|
||||||
level.perkunsetfuncs["specialty_sharp_focus"] = ::maps\mp\perks\_perkfunctions::unsetsharpfocus;
|
|
||||||
level.perksetfuncs["specialty_regenspeed"] = ::maps\mp\perks\_perkfunctions::setregenspeed;
|
|
||||||
level.perkunsetfuncs["specialty_regenspeed"] = ::maps\mp\perks\_perkfunctions::unsetregenspeed;
|
|
||||||
level.perksetfuncs["specialty_autospot"] = ::maps\mp\perks\_perkfunctions::setautospot;
|
|
||||||
level.perkunsetfuncs["specialty_autospot"] = ::maps\mp\perks\_perkfunctions::unsetautospot;
|
|
||||||
level.perksetfuncs["specialty_empimmune"] = ::maps\mp\perks\_perkfunctions::setempimmune;
|
|
||||||
level.perkunsetfuncs["specialty_empimmune"] = ::maps\mp\perks\_perkfunctions::unsetempimmune;
|
|
||||||
level.perksetfuncs["specialty_overkill_pro"] = ::maps\mp\perks\_perkfunctions::setoverkillpro;
|
|
||||||
level.perkunsetfuncs["specialty_overkill_pro"] = ::maps\mp\perks\_perkfunctions::unsetoverkillpro;
|
|
||||||
level.perksetfuncs["specialty_personaluav"] = ::maps\mp\perks\_perkfunctions::setpersonaluav;
|
|
||||||
level.perkunsetfuncs["specialty_personaluav"] = ::maps\mp\perks\_perkfunctions::unsetpersonaluav;
|
|
||||||
level.perksetfuncs["specialty_crouchmovement"] = ::maps\mp\perks\_perkfunctions::setcrouchmovement;
|
|
||||||
level.perkunsetfuncs["specialty_crouchmovement"] = ::maps\mp\perks\_perkfunctions::unsetcrouchmovement;
|
|
||||||
level.perksetfuncs["specialty_light_armor"] = ::maps\mp\perks\_perkfunctions::setlightarmor;
|
|
||||||
level.perkunsetfuncs["specialty_light_armor"] = ::maps\mp\perks\_perkfunctions::unsetlightarmor;
|
|
||||||
level.perksetfuncs["specialty_finalstand"] = ::maps\mp\perks\_perkfunctions::setfinalstand;
|
|
||||||
level.perkunsetfuncs["specialty_finalstand"] = ::maps\mp\perks\_perkfunctions::unsetfinalstand;
|
|
||||||
level.perksetfuncs["specialty_juiced"] = ::maps\mp\perks\_perkfunctions::setjuiced;
|
|
||||||
level.perkunsetfuncs["specialty_juiced"] = ::maps\mp\perks\_perkfunctions::unsetjuiced;
|
|
||||||
level.perksetfuncs["specialty_carepackage"] = ::maps\mp\perks\_perkfunctions::setcarepackage;
|
|
||||||
level.perkunsetfuncs["specialty_carepackage"] = ::maps\mp\perks\_perkfunctions::unsetcarepackage;
|
|
||||||
level.perksetfuncs["specialty_stopping_power"] = ::maps\mp\perks\_perkfunctions::setstoppingpower;
|
|
||||||
level.perkunsetfuncs["specialty_stopping_power"] = ::maps\mp\perks\_perkfunctions::unsetstoppingpower;
|
|
||||||
level.perksetfuncs["specialty_uav"] = ::maps\mp\perks\_perkfunctions::setuav;
|
|
||||||
level.perkunsetfuncs["specialty_uav"] = ::maps\mp\perks\_perkfunctions::unsetuav;
|
|
||||||
initperkdvars();
|
|
||||||
level thread onplayerconnect();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 2
|
|
||||||
validateperk(param_00,param_01)
|
|
||||||
{
|
|
||||||
if(getdvarint("scr_game_perks") == 0)
|
|
||||||
{
|
|
||||||
return "specialty_null";
|
|
||||||
}
|
|
||||||
|
|
||||||
if(param_00 == 0 || param_00 == 1)
|
|
||||||
{
|
|
||||||
switch(param_01)
|
|
||||||
{
|
|
||||||
case "specialty_class_flakjacket":
|
|
||||||
case "specialty_extended_battery":
|
|
||||||
case "specialty_class_dangerclose":
|
|
||||||
case "specialty_class_lightweight":
|
|
||||||
case "specialty_class_lowprofile":
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 3
|
|
||||||
getemptyperks()
|
|
||||||
{
|
|
||||||
var_00 = [];
|
|
||||||
for(var_01 = 0;var_01 < 6;var_01++)
|
|
||||||
{
|
|
||||||
var_00[var_01] = "specialty_null";
|
|
||||||
}
|
|
||||||
|
|
||||||
return var_00;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 4
|
|
||||||
onplayerconnect()
|
|
||||||
{
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
level waittill("connected",var_00);
|
|
||||||
var_00 thread onplayerspawned();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 5
|
|
||||||
onplayerspawned()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
self.perks = [];
|
|
||||||
self.weaponlist = [];
|
|
||||||
self.omaclasschanged = 0;
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
self waittill("spawned_player");
|
|
||||||
self.omaclasschanged = 0;
|
|
||||||
thread maps\mp\gametypes\_scrambler::scramblerproximitytracker();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 6
|
|
||||||
cac_modified_damage(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
|
|
||||||
{
|
|
||||||
var_09 = 0;
|
|
||||||
var_0A = maps\mp\_utility::strip_suffix(param_04,"_lefthand");
|
|
||||||
if(maps\mp\_utility::isbulletdamage(param_03))
|
|
||||||
{
|
|
||||||
if(isplayer(param_01) && param_01 maps\mp\_utility::_hasperk("specialty_paint_pro") && !maps\mp\_utility::iskillstreakweapon(param_04) && isplayer(param_00) && !param_00 maps\mp\_utility::_hasperk("specialty_class_lowprofile"))
|
|
||||||
{
|
|
||||||
if(!param_00 maps\mp\perks\_perkfunctions::ispainted())
|
|
||||||
{
|
|
||||||
param_01 maps\mp\gametypes\_missions::processchallenge("ch_bulletpaint");
|
|
||||||
}
|
|
||||||
|
|
||||||
if(param_01.trackrounds.has_trackrounds)
|
|
||||||
{
|
|
||||||
param_00 thread maps\mp\_trackrounds::set_painted_trackrounds(param_01);
|
|
||||||
}
|
|
||||||
|
|
||||||
param_00 thread maps\mp\perks\_perkfunctions::setpainted(param_01);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isplayer(param_01) && isdefined(param_04) && maps\mp\_utility::getweaponclass(param_04) == "weapon_sniper" && issubstr(param_04,"silencer"))
|
|
||||||
{
|
|
||||||
param_02 = param_02 * 0.75;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isplayer(param_01) && param_01 maps\mp\_utility::_hasperk("specialty_bulletdamage") && param_00 maps\mp\_utility::_hasperk("specialty_armorvest"))
|
|
||||||
{
|
|
||||||
var_09 = var_09 + 0;
|
|
||||||
}
|
|
||||||
else if(isplayer(param_01) && param_01 maps\mp\_utility::_hasperk("specialty_bulletdamage") || param_01 maps\mp\_utility::_hasperk("specialty_moredamage"))
|
|
||||||
{
|
|
||||||
var_09 = var_09 + param_02 * level.bulletdamagemod;
|
|
||||||
}
|
|
||||||
else if(param_00 maps\mp\_utility::_hasperk("specialty_armorvest"))
|
|
||||||
{
|
|
||||||
var_09 = var_09 - param_02 * level.armorvestmod;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(param_00 maps\mp\_utility::isjuggernaut())
|
|
||||||
{
|
|
||||||
var_0B = isdefined(param_00.juggernautweak) && param_00.juggernautweak && param_07 == "head" || param_07 == "helmet";
|
|
||||||
if(!var_0B)
|
|
||||||
{
|
|
||||||
param_02 = param_02 * level.juggernautmod;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(isexplosivedamagemod(param_03))
|
|
||||||
{
|
|
||||||
if(isplayer(param_01) && param_01 != param_00 && param_01 isitemunlocked("specialty_paint") && param_01 maps\mp\_utility::_hasperk("specialty_paint") && !maps\mp\_utility::iskillstreakweapon(param_04))
|
|
||||||
{
|
|
||||||
if(!param_00 maps\mp\perks\_perkfunctions::ispainted())
|
|
||||||
{
|
|
||||||
param_01 maps\mp\gametypes\_missions::processchallenge("ch_paint_pro");
|
|
||||||
}
|
|
||||||
|
|
||||||
param_00 thread maps\mp\perks\_perkfunctions::setpainted(param_01);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isplayer(param_01) && weaponinheritsperks(param_04) && param_01 maps\mp\_utility::_hasperk("specialty_explosivedamage") && param_00 maps\mp\_utility::_hasperk("_specialty_blastshield"))
|
|
||||||
{
|
|
||||||
var_09 = var_09 + 0;
|
|
||||||
}
|
|
||||||
else if(isplayer(param_01) && weaponinheritsperks(param_04) && param_01 maps\mp\_utility::_hasperk("specialty_explosivedamage"))
|
|
||||||
{
|
|
||||||
var_09 = var_09 + param_02 * level.explosivedamagemod;
|
|
||||||
}
|
|
||||||
else if(param_00 maps\mp\_utility::_hasperk("_specialty_blastshield") && isdefined(param_00.specialty_blastshield_bonus) && var_0A != "semtex_mp" || param_02 < 125)
|
|
||||||
{
|
|
||||||
var_09 = var_09 - int(param_02 * param_00.specialty_blastshield_bonus);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(maps\mp\_utility::iskillstreakweapon(param_04) && isplayer(param_01) && param_01 maps\mp\_utility::_hasperk("specialty_explosivedamage"))
|
|
||||||
{
|
|
||||||
var_09 = var_09 + param_02 * level.explosivedamagemod;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(param_00 maps\mp\_utility::isjuggernaut())
|
|
||||||
{
|
|
||||||
switch(param_04)
|
|
||||||
{
|
|
||||||
case "ac130_25mm_mp":
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "remotemissile_projectile_gas_mp":
|
|
||||||
case "remotemissile_projectile_cluster_parent_mp":
|
|
||||||
case "remotemissile_projectile_mp":
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 7
|
|
||||||
initperkdvars()
|
|
||||||
{
|
|
||||||
level.juggernautmod = 0.08;
|
|
||||||
level.juggernatudefmod = 0.08;
|
|
||||||
level.armorpiercingmod = 1.5;
|
|
||||||
level.regenhealthmod = 0.25;
|
|
||||||
level.bulletdamagemod = maps\mp\_utility::getintproperty("perk_bulletDamage",12) / 100;
|
|
||||||
level.explosivedamagemod = maps\mp\_utility::getintproperty("perk_explosiveDamage",10) / 100;
|
|
||||||
level.riotshieldmod = maps\mp\_utility::getintproperty("perk_riotShield",100) / 100;
|
|
||||||
level.armorvestmod = maps\mp\_utility::getintproperty("perk_armorVest",20) / 100;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 8
|
|
||||||
cac_selector()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 9
|
|
||||||
giveblindeyeafterspawn()
|
|
||||||
{
|
|
||||||
self endon("death");
|
|
||||||
self endon("disconnect");
|
|
||||||
maps\mp\_utility::giveperk("specialty_blindeye",0);
|
|
||||||
self.spawnperk = 1;
|
|
||||||
while(self.avoidkillstreakonspawntimer > 0)
|
|
||||||
{
|
|
||||||
self.avoidkillstreakonspawntimer = self.avoidkillstreakonspawntimer - 0.05;
|
|
||||||
wait(0.05);
|
|
||||||
}
|
|
||||||
|
|
||||||
maps\mp\_utility::_unsetperk("specialty_blindeye");
|
|
||||||
self.spawnperk = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 10
|
|
||||||
applyperks()
|
|
||||||
{
|
|
||||||
self setviewkickscale(0.5);
|
|
||||||
if(maps\mp\_utility::_hasperk("specialty_extended_battery"))
|
|
||||||
{
|
|
||||||
maps\mp\_utility::giveperk("specialty_exo_slamboots",0);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(maps\mp\_utility::_hasperk("specialty_class_lowprofile"))
|
|
||||||
{
|
|
||||||
maps\mp\_utility::giveperk("specialty_radarimmune",0);
|
|
||||||
maps\mp\_utility::giveperk("specialty_exoping_immune",0);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(maps\mp\_utility::_hasperk("specialty_class_flakjacket"))
|
|
||||||
{
|
|
||||||
maps\mp\_utility::giveperk("specialty_hard_shell",0);
|
|
||||||
maps\mp\_utility::giveperk("specialty_throwback",0);
|
|
||||||
maps\mp\_utility::giveperk("_specialty_blastshield",0);
|
|
||||||
self.specialty_blastshield_bonus = maps\mp\_utility::getintproperty("perk_blastShieldScale",45) / 100;
|
|
||||||
if(isdefined(level.hardcoremode) && level.hardcoremode)
|
|
||||||
{
|
|
||||||
self.specialty_blastshield_bonus = maps\mp\_utility::getintproperty("perk_blastShieldScale_HC",50) / 100;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(maps\mp\_utility::_hasperk("specialty_class_lightweight"))
|
|
||||||
{
|
|
||||||
maps\mp\_utility::giveperk("specialty_lightweight",0);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(maps\mp\_utility::_hasperk("specialty_class_dangerclose"))
|
|
||||||
{
|
|
||||||
maps\mp\_utility::giveperk("specialty_explosivedamage",0);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(maps\mp\_utility::_hasperk("specialty_class_blindeye"))
|
|
||||||
{
|
|
||||||
maps\mp\_utility::giveperk("specialty_blindeye",0);
|
|
||||||
maps\mp\_utility::giveperk("specialty_plainsight",0);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(maps\mp\_utility::_hasperk("specialty_class_coldblooded"))
|
|
||||||
{
|
|
||||||
maps\mp\_utility::giveperk("specialty_coldblooded",0);
|
|
||||||
maps\mp\_utility::giveperk("specialty_spygame",0);
|
|
||||||
maps\mp\_utility::giveperk("specialty_heartbreaker",0);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(maps\mp\_utility::_hasperk("specialty_class_peripherals") || maps\mp\_utility::practiceroundgame())
|
|
||||||
{
|
|
||||||
maps\mp\_utility::giveperk("specialty_moreminimap",0);
|
|
||||||
maps\mp\_utility::giveperk("specialty_silentkill",0);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(maps\mp\_utility::_hasperk("specialty_class_fasthands"))
|
|
||||||
{
|
|
||||||
maps\mp\_utility::giveperk("specialty_quickswap",0);
|
|
||||||
maps\mp\_utility::giveperk("specialty_fastoffhand",0);
|
|
||||||
maps\mp\_utility::giveperk("specialty_sprintreload",0);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(maps\mp\_utility::_hasperk("specialty_class_dexterity"))
|
|
||||||
{
|
|
||||||
maps\mp\_utility::giveperk("specialty_sprintfire",0);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(maps\mp\_utility::_hasperk("specialty_class_hardwired"))
|
|
||||||
{
|
|
||||||
maps\mp\_utility::giveperk("specialty_empimmune",0);
|
|
||||||
maps\mp\_utility::giveperk("specialty_stun_resistance",0);
|
|
||||||
self.stunscaler = 0.1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(maps\mp\_utility::_hasperk("specialty_class_toughness"))
|
|
||||||
{
|
|
||||||
self setviewkickscale(0.2);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(maps\mp\_utility::_hasperk("specialty_class_scavenger"))
|
|
||||||
{
|
|
||||||
self.ammopickup_scalar = 0.2;
|
|
||||||
maps\mp\_utility::giveperk("specialty_scavenger",0);
|
|
||||||
maps\mp\_utility::giveperk("specialty_bulletresupply",0);
|
|
||||||
maps\mp\_utility::giveperk("specialty_extraammo",0);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(maps\mp\_utility::_hasperk("specialty_class_hardline"))
|
|
||||||
{
|
|
||||||
maps\mp\_utility::giveperk("specialty_hardline",0);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,18 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: animscripts\traverse\boost_jump_128_across_256_up.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 1
|
|
||||||
* Decompile Time: 31 ms
|
|
||||||
* Timestamp: 10/27/2023 1:53:12 AM
|
|
||||||
*******************************************************************/
|
|
||||||
|
|
||||||
//Function Number: 1
|
|
||||||
main()
|
|
||||||
{
|
|
||||||
if(self.canjumppath)
|
|
||||||
{
|
|
||||||
animscripts\traverse\boost::rocket_jump_human(%boost_jump_128_across_256_up,1);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,18 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: animscripts\traverse\boost_jump_256_across_128_up.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 1
|
|
||||||
* Decompile Time: 30 ms
|
|
||||||
* Timestamp: 10/27/2023 1:53:17 AM
|
|
||||||
*******************************************************************/
|
|
||||||
|
|
||||||
//Function Number: 1
|
|
||||||
main()
|
|
||||||
{
|
|
||||||
if(self.canjumppath)
|
|
||||||
{
|
|
||||||
animscripts\traverse\boost::rocket_jump_human(%boost_jump_256_across_128_up,1);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,811 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: common_scripts/_bcs_location_trigs.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 34
|
|
||||||
* Decompile Time: 596 ms
|
|
||||||
* Timestamp: 10/27/2023 1:57:27 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
@ -1,977 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: common_scripts/_createfxmenu.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 40
|
|
||||||
* Decompile Time: 662 ms
|
|
||||||
* Timestamp: 10/27/2023 1:57:36 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
@ -1,14 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: vehicle_scripts/_empty.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 1
|
|
||||||
* Decompile Time: 11 ms
|
|
||||||
* Timestamp: 10/27/2023 2:06:17 AM
|
|
||||||
*******************************************************************/
|
|
||||||
|
|
||||||
//Function Number: 1
|
|
||||||
main(param_00,param_01)
|
|
||||||
{
|
|
||||||
}
|
|
@ -1,14 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* 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 2:07:11 AM
|
|
||||||
*******************************************************************/
|
|
||||||
|
|
||||||
//Function Number: 1
|
|
||||||
setfogsliders()
|
|
||||||
{
|
|
||||||
}
|
|
@ -1,811 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: common_scripts/_bcs_location_trigs.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 34
|
|
||||||
* Decompile Time: 521 ms
|
|
||||||
* Timestamp: 10/27/2023 2:07:13 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");
|
|
||||||
}
|
|
@ -1,977 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: common_scripts/_createfxmenu.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 40
|
|
||||||
* Decompile Time: 680 ms
|
|
||||||
* Timestamp: 10/27/2023 2:07:22 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
@ -1,857 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: common_scripts/_fx.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 39
|
|
||||||
* Decompile Time: 790 ms
|
|
||||||
* Timestamp: 10/27/2023 2:07:42 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
@ -1,480 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: maps/mp/_aerial_pathnodes.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 13
|
|
||||||
* Decompile Time: 226 ms
|
|
||||||
* Timestamp: 10/27/2023 2:07:54 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;
|
|
||||||
}
|
|
@ -1,52 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: maps/mp/_animatedmodels.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 2
|
|
||||||
* Decompile Time: 31 ms
|
|
||||||
* Timestamp: 10/27/2023 2:07:55 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();
|
|
||||||
}
|
|
@ -1,508 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: maps/mp/_art.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 36
|
|
||||||
* Decompile Time: 582 ms
|
|
||||||
* Timestamp: 10/27/2023 2:07:58 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;
|
|
||||||
}
|
|
@ -1,573 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: maps/mp/_audio.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 34
|
|
||||||
* Decompile Time: 572 ms
|
|
||||||
* Timestamp: 10/27/2023 2:08:00 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()
|
|
||||||
{
|
|
||||||
}
|
|
@ -1,448 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: maps/mp/_awards.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 19
|
|
||||||
* Decompile Time: 336 ms
|
|
||||||
* Timestamp: 10/27/2023 2:08:01 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;
|
|
||||||
}
|
|
@ -1,70 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: maps/mp/_createfx.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 4
|
|
||||||
* Decompile Time: 54 ms
|
|
||||||
* Timestamp: 10/27/2023 2:08:02 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);
|
|
||||||
}
|
|
@ -1,141 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: maps/mp/_exo_battery.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 5
|
|
||||||
* Decompile Time: 78 ms
|
|
||||||
* Timestamp: 10/27/2023 2:08:13 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");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,331 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: maps/mp/_exo_cloak.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 12
|
|
||||||
* Decompile Time: 179 ms
|
|
||||||
* Timestamp: 10/27/2023 2:08:14 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;
|
|
||||||
}
|
|
@ -1,187 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: maps/mp/_exo_hover.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 7
|
|
||||||
* Decompile Time: 102 ms
|
|
||||||
* Timestamp: 10/27/2023 2:08:15 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();
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,109 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: maps/mp/_exo_shield.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 5
|
|
||||||
* Decompile Time: 78 ms
|
|
||||||
* Timestamp: 10/27/2023 2:08:18 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();
|
|
||||||
}
|
|
@ -1,169 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: maps/mp/_exo_suit.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 12
|
|
||||||
* Decompile Time: 199 ms
|
|
||||||
* Timestamp: 10/27/2023 2:08:19 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");
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load Diff
@ -1,193 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: maps/mp/_flashgrenades.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 7
|
|
||||||
* Decompile Time: 115 ms
|
|
||||||
* Timestamp: 10/27/2023 2:08:24 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;
|
|
||||||
}
|
|
@ -1,43 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: maps/mp/_global_fx.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 1
|
|
||||||
* Decompile Time: 15 ms
|
|
||||||
* Timestamp: 10/27/2023 2:08:25 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");
|
|
||||||
}
|
|
@ -1,57 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: maps/mp/_global_fx_code.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 1
|
|
||||||
* Decompile Time: 21 ms
|
|
||||||
* Timestamp: 10/27/2023 2:08:25 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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,95 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: maps/mp/_lasersight.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 2
|
|
||||||
* Decompile Time: 28 ms
|
|
||||||
* Timestamp: 10/27/2023 2:08:26 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";
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load Diff
@ -1,536 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: maps/mp/_mp_lights.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 23
|
|
||||||
* Decompile Time: 362 ms
|
|
||||||
* Timestamp: 10/27/2023 2:08:30 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);
|
|
||||||
}
|
|
@ -1,199 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: maps/mp/_scoreboard.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 3
|
|
||||||
* Decompile Time: 50 ms
|
|
||||||
* Timestamp: 10/27/2023 2:08:31 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++;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,473 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: maps/mp/_stinger.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 11
|
|
||||||
* Decompile Time: 158 ms
|
|
||||||
* Timestamp: 10/27/2023 2:08:33 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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,109 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: maps\mp\agents\_agent_common.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 8
|
|
||||||
* Decompile Time: 152 ms
|
|
||||||
* Timestamp: 10/27/2023 2:07:02 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;
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,626 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: maps/mp/killstreaks/_drone_recon.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 28
|
|
||||||
* Decompile Time: 424 ms
|
|
||||||
* Timestamp: 10/27/2023 2:09:23 AM
|
|
||||||
*******************************************************************/
|
|
||||||
|
|
||||||
//Function Number: 1
|
|
||||||
init()
|
|
||||||
{
|
|
||||||
level._effect["emp_grenade"] = loadfx("vfx/explosion/emp_grenade_explosion");
|
|
||||||
level._effect["antenna_light_mp"] = loadfx("vfx/lights/light_reconugv_antenna");
|
|
||||||
level._effect["recon_drone_marker_threat"] = loadfx("vfx/ui/vfx_marker_drone_recon");
|
|
||||||
level._effect["recon_drone_marker_emp"] = loadfx("vfx/ui/vfx_marker_drone_recon2");
|
|
||||||
level._effect["recond_drone_exhaust"] = loadfx("vfx/vehicle/vehicle_mp_recon_drone_smoke");
|
|
||||||
level.ugvmarkedarrays = [];
|
|
||||||
thread onplayerconnect();
|
|
||||||
level.killstreakfuncs["recon_ugv"] = ::tryuserecondrone;
|
|
||||||
level.killstreakwieldweapons["recon_drone_turret_mp"] = "recon_ugv";
|
|
||||||
level.killstreakwieldweapons["emp_grenade_killstreak_mp"] = "recon_ugv";
|
|
||||||
level.killstreakwieldweapons["paint_grenade_killstreak_mp"] = "recon_ugv";
|
|
||||||
game["dialog"]["ks_recdrone_destroyed"] = "ks_recdrone_destroyed";
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 2
|
|
||||||
getdronespawnpoint()
|
|
||||||
{
|
|
||||||
var_00 = maps\mp\killstreaks\_drone_common::dronegetspawnpoint();
|
|
||||||
return var_00;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 3
|
|
||||||
tryuserecondrone(param_00,param_01)
|
|
||||||
{
|
|
||||||
if(maps\mp\_utility::currentactivevehiclecount() >= maps\mp\_utility::maxvehiclesallowed() || level.fauxvehiclecount + 1 >= maps\mp\_utility::maxvehiclesallowed())
|
|
||||||
{
|
|
||||||
self iprintlnbold(&"MP_TOO_MANY_VEHICLES");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
maps\mp\_utility::incrementfauxvehiclecount();
|
|
||||||
var_02 = getdronespawnpoint();
|
|
||||||
if(!var_02.placementok)
|
|
||||||
{
|
|
||||||
self iprintlnbold(&"MP_DRONE_PLACEMENT_INVALID");
|
|
||||||
maps\mp\_utility::decrementfauxvehiclecount();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
common_scripts\utility::_disableweaponswitch();
|
|
||||||
var_03 = maps\mp\killstreaks\_killstreaks::initridekillstreak("recon_ugv");
|
|
||||||
if(var_03 != "success")
|
|
||||||
{
|
|
||||||
common_scripts\utility::_enableweaponswitch();
|
|
||||||
maps\mp\_utility::decrementfauxvehiclecount();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
maps\mp\_utility::setusingremote("recon_ugv");
|
|
||||||
var_04 = createreconuav(param_00,param_01,var_02.origin,var_02.angles);
|
|
||||||
common_scripts\utility::_enableweaponswitch();
|
|
||||||
self switchtoweapon("killstreak_predator_missile_mp");
|
|
||||||
if(isdefined(var_04))
|
|
||||||
{
|
|
||||||
maps\mp\_matchdata::logkillstreakevent("recon_ugv",self.origin);
|
|
||||||
thread maps\mp\_utility::teamplayercardsplash("used_recon_ugv",self);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
maps\mp\_utility::decrementfauxvehiclecount();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 4
|
|
||||||
onplayerconnect()
|
|
||||||
{
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
level waittill("connected",var_00);
|
|
||||||
var_00 thread onplayerspawned();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 5
|
|
||||||
onplayerspawned()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
self waittill("spawned_player");
|
|
||||||
var_00 = spawnstruct();
|
|
||||||
var_00.markedplayerarray = [];
|
|
||||||
var_00.markedturretarray = [];
|
|
||||||
var_00.owner = self;
|
|
||||||
var_00.monitormarkingthread = 0;
|
|
||||||
level.ugvmarkedarrays = common_scripts\utility::array_add(level.ugvmarkedarrays,var_00);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 6
|
|
||||||
createreconuav(param_00,param_01,param_02,param_03)
|
|
||||||
{
|
|
||||||
var_04 = "recon_uav_mp";
|
|
||||||
var_05 = "vehicle_atlas_aerial_drone_02_patrol_mp_static_75p";
|
|
||||||
var_06 = spawnhelicopter(self,param_02,param_03,var_04,var_05);
|
|
||||||
if(!isdefined(var_06))
|
|
||||||
{
|
|
||||||
return undefined;
|
|
||||||
}
|
|
||||||
|
|
||||||
thread playercommonreconvehiclesetup(var_06,param_01,param_00);
|
|
||||||
var_06.maxhealth = 250;
|
|
||||||
var_06.vehicletype = "drone_recon";
|
|
||||||
var_06.vehname = "recon_uav";
|
|
||||||
var_06.markdistance = 1500;
|
|
||||||
if(var_06.hasincreasedtime)
|
|
||||||
{
|
|
||||||
var_07 = 45;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var_07 = 30;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_06.lifespan = var_07;
|
|
||||||
var_06.endtime = gettime() + var_07 * 1000;
|
|
||||||
var_06 thread maps\mp\gametypes\_damage::setentitydamagecallback(var_06.maxhealth,undefined,::onrecondronedeath,::maps\mp\killstreaks\_aerial_utility::heli_modifydamage,1);
|
|
||||||
if(var_06.hascloak)
|
|
||||||
{
|
|
||||||
thread maps\mp\killstreaks\_drone_common::dronecloakready(var_06,var_06.hascloak);
|
|
||||||
}
|
|
||||||
|
|
||||||
startusingreconvehicle(var_06);
|
|
||||||
thread monitoruavsafearea(var_06);
|
|
||||||
thread monitorplayerdisconnect(var_06);
|
|
||||||
thread monitorplayerswitchteams(var_06);
|
|
||||||
thread monitorplayergameended(var_06);
|
|
||||||
thread reconhandletimeoutwarning(var_06);
|
|
||||||
thread reconhandletimeout(var_06);
|
|
||||||
thread reconhandledeath(var_06);
|
|
||||||
thread reconhudsetup(var_06);
|
|
||||||
thread maps\mp\killstreaks\_drone_common::playerwatchfordroneemp(var_06);
|
|
||||||
var_08 = spawnstruct();
|
|
||||||
var_08.validateaccuratetouching = 1;
|
|
||||||
var_08.deathoverridecallback = ::override_drone_platform_death;
|
|
||||||
var_06 thread maps\mp\_movers::handle_moving_platforms(var_08);
|
|
||||||
var_06.getstingertargetposfunc = ::reconuav_stinger_target_pos;
|
|
||||||
return var_06;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 7
|
|
||||||
reconuav_stinger_target_pos()
|
|
||||||
{
|
|
||||||
return self gettagorigin("tag_origin");
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 8
|
|
||||||
override_drone_platform_death(param_00)
|
|
||||||
{
|
|
||||||
self notify("death");
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 9
|
|
||||||
setupplayercommands(param_00)
|
|
||||||
{
|
|
||||||
if(isbot(self))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
self notifyonplayercommand("recon_fire_main","+attack");
|
|
||||||
self notifyonplayercommand("recon_fire_main","+attack_akimbo_accessible");
|
|
||||||
self notifyonplayercommand("recon_fire_secondary","+speed_throw");
|
|
||||||
self notifyonplayercommand("recon_fire_secondary","+toggleads_throw");
|
|
||||||
self notifyonplayercommand("recon_fire_secondary","+ads_akimbo_accessible");
|
|
||||||
if(common_scripts\utility::array_contains(param_00,"recon_ugv_cloak"))
|
|
||||||
{
|
|
||||||
self notifyonplayercommand("Cloak","+activate");
|
|
||||||
self notifyonplayercommand("Cloak","+usereload");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 10
|
|
||||||
disableplayercommands(param_00)
|
|
||||||
{
|
|
||||||
if(isbot(self))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
self notifyonplayercommandremove("recon_fire_main","+attack");
|
|
||||||
self notifyonplayercommandremove("recon_fire_main","+attack_akimbo_accessible");
|
|
||||||
self notifyonplayercommandremove("recon_fire_secondary","+speed_throw");
|
|
||||||
self notifyonplayercommandremove("recon_fire_secondary","+toggleads_throw");
|
|
||||||
self notifyonplayercommandremove("recon_fire_secondary","+ads_akimbo_accessible");
|
|
||||||
if(isdefined(param_00) && param_00.hascloak)
|
|
||||||
{
|
|
||||||
self notifyonplayercommandremove("Cloak","+activate");
|
|
||||||
self notifyonplayercommandremove("Cloak","+usereload");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 11
|
|
||||||
playercommonreconvehiclesetup(param_00,param_01,param_02)
|
|
||||||
{
|
|
||||||
self endon("reconStreakComplete");
|
|
||||||
param_00 endon("death");
|
|
||||||
self.using_remote_tank = 0;
|
|
||||||
param_00.lifeid = param_02;
|
|
||||||
param_00.team = self.team;
|
|
||||||
param_00.owner = self;
|
|
||||||
param_00.damagetaken = 0;
|
|
||||||
param_00.destroyed = 0;
|
|
||||||
param_00.empgrenaded = 0;
|
|
||||||
param_00.damagefade = 1;
|
|
||||||
param_00.markedplayers = [];
|
|
||||||
param_00.modules = param_01;
|
|
||||||
param_00.hasarhud = common_scripts\utility::array_contains(param_00.modules,"recon_ugv_ar_hud");
|
|
||||||
param_00.haspaintgrenade = 1;
|
|
||||||
param_00.hasassistpoints = common_scripts\utility::array_contains(param_00.modules,"recon_ugv_assist_points");
|
|
||||||
param_00.hasstun = common_scripts\utility::array_contains(param_00.modules,"recon_ugv_stun");
|
|
||||||
param_00.hasincreasedtime = common_scripts\utility::array_contains(param_00.modules,"recon_ugv_increased_time");
|
|
||||||
param_00.hascloak = common_scripts\utility::array_contains(param_00.modules,"recon_ugv_cloak");
|
|
||||||
param_00.hasempgrenade = common_scripts\utility::array_contains(param_00.modules,"recon_ugv_emp");
|
|
||||||
param_00 hide();
|
|
||||||
param_00 makeunusable();
|
|
||||||
param_00 makevehiclesolidcapsule(23,-9,23);
|
|
||||||
param_00 setcandamage(1);
|
|
||||||
param_00 common_scripts\utility::make_entity_sentient_mp(param_00.team);
|
|
||||||
reconspawnturret(param_00);
|
|
||||||
thread maps\mp\killstreaks\_drone_common::dronesetupcloaking(param_00,param_00.hascloak);
|
|
||||||
wait(1.6);
|
|
||||||
setupplayercommands(param_01);
|
|
||||||
thread notify_recon_drone_on_player_command(param_00);
|
|
||||||
var_03 = "recon_drone_marker_threat";
|
|
||||||
if(param_00.hasempgrenade)
|
|
||||||
{
|
|
||||||
var_03 = "recon_drone_marker_emp";
|
|
||||||
}
|
|
||||||
|
|
||||||
thread maps\mp\killstreaks\_drone_common::updateshootinglocation(param_00,common_scripts\utility::getfx(var_03),1);
|
|
||||||
thread maps\mp\killstreaks\_drone_common::playerhandleexhaustfx(param_00,"recond_drone_exhaust","tag_exhaust");
|
|
||||||
param_00.mgturret settargetentity(param_00.targetent);
|
|
||||||
thread reconplayerexit(param_00);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 12
|
|
||||||
reconspawnturret(param_00)
|
|
||||||
{
|
|
||||||
var_01 = "recon_drone_turret_mp";
|
|
||||||
var_02 = "tag_turret";
|
|
||||||
var_03 = "vehicle_atlas_aerial_drone_02_patrol_mp_turret_75p";
|
|
||||||
var_04 = spawnturret("misc_turret",param_00 gettagorigin(var_02),var_01,0);
|
|
||||||
var_04.angles = param_00 gettagangles(var_02);
|
|
||||||
var_04 setmodel(var_03);
|
|
||||||
var_04 setdefaultdroppitch(45);
|
|
||||||
var_04 linkto(param_00,var_02,(0,0,0),(0,0,0));
|
|
||||||
var_04.owner = param_00.owner;
|
|
||||||
var_04.health = 99999;
|
|
||||||
var_04.maxhealth = 1000;
|
|
||||||
var_04.damagetaken = 0;
|
|
||||||
var_04.stunned = 0;
|
|
||||||
var_04.stunnedtime = 0;
|
|
||||||
var_04 setcandamage(0);
|
|
||||||
var_04 setcanradiusdamage(0);
|
|
||||||
var_04 makeunusable();
|
|
||||||
var_04.team = param_00.team;
|
|
||||||
var_04.pers["team"] = param_00.team;
|
|
||||||
if(level.teambased)
|
|
||||||
{
|
|
||||||
var_04 setturretteam(param_00.team);
|
|
||||||
}
|
|
||||||
|
|
||||||
var_04 setmode("sentry_manual");
|
|
||||||
var_04 setsentryowner(param_00.owner);
|
|
||||||
var_04 setturretminimapvisible(0);
|
|
||||||
var_04.chopper = param_00;
|
|
||||||
var_04 setcontents(0);
|
|
||||||
var_04.firesoundent = spawn("script_model",param_00 gettagorigin(var_02));
|
|
||||||
var_04.firesoundent setmodel("tag_origin");
|
|
||||||
var_04.firesoundent vehicle_jetbikesethoverforcescale(param_00,var_02,(0,0,0),(0,0,0));
|
|
||||||
var_04.firesoundent setcontents(0);
|
|
||||||
var_04 hide();
|
|
||||||
param_00.mgturret = var_04;
|
|
||||||
if(param_00.haspaintgrenade)
|
|
||||||
{
|
|
||||||
thread firethreatgrenades(param_00);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(param_00.hasempgrenade)
|
|
||||||
{
|
|
||||||
thread fireempgrenades(param_00);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 13
|
|
||||||
firethreatgrenades(param_00)
|
|
||||||
{
|
|
||||||
param_00 endon("death");
|
|
||||||
self endon("disconnect");
|
|
||||||
var_01 = gettime();
|
|
||||||
var_02 = 0;
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
self waittill("recon_fire_main");
|
|
||||||
self notify("ForceUncloak");
|
|
||||||
var_03 = param_00.mgturret gettagorigin("tag_aim");
|
|
||||||
var_04 = param_00.targetent.origin;
|
|
||||||
if(param_00.hasstun && gettime() >= var_01)
|
|
||||||
{
|
|
||||||
var_01 = gettime() + 6000;
|
|
||||||
var_02 = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
maps\mp\killstreaks\_aerial_utility::playerfakeshootpaintgrenadeattarget(param_00.mgturret.firesoundent,var_03,var_04,var_02,param_00);
|
|
||||||
self setclientomnvar("ui_recondrone_paint",2);
|
|
||||||
wait(2);
|
|
||||||
self setclientomnvar("ui_recondrone_paint",1);
|
|
||||||
var_02 = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 14
|
|
||||||
fireempgrenades(param_00)
|
|
||||||
{
|
|
||||||
param_00 endon("death");
|
|
||||||
self endon("disconnect");
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
self waittill("recon_fire_secondary");
|
|
||||||
self notify("ForceUncloak");
|
|
||||||
var_01 = param_00.mgturret gettagorigin("tag_aim");
|
|
||||||
var_02 = param_00.targetent.origin;
|
|
||||||
maps\mp\killstreaks\_aerial_utility::playerfakeshootempgrenadeattarget(param_00.mgturret.firesoundent,var_01,var_02);
|
|
||||||
self setclientomnvar("ui_recondrone_emp",2);
|
|
||||||
wait(5);
|
|
||||||
self setclientomnvar("ui_recondrone_emp",1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 15
|
|
||||||
notify_recon_drone_on_player_command(param_00)
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
param_00 endon("death");
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
var_01 = common_scripts\utility::waittill_any_return("recon_fire_main","recon_fire_secondary","Cloak");
|
|
||||||
if(isdefined(var_01))
|
|
||||||
{
|
|
||||||
param_00 notify(var_01);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 16
|
|
||||||
startusingreconvehicle(param_00)
|
|
||||||
{
|
|
||||||
var_01 = self;
|
|
||||||
if(getdvarint("camera_thirdPerson"))
|
|
||||||
{
|
|
||||||
var_01 maps\mp\_utility::setthirdpersondof(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
var_01 maps\mp\_utility::playersaveangles();
|
|
||||||
var_01 cameralinkto(param_00,"tag_origin");
|
|
||||||
var_01 remotecontrolvehicle(param_00);
|
|
||||||
var_01 thread maps\mp\killstreaks\_drone_common::setdronevisionandlightsetpermap(1.5,param_00);
|
|
||||||
var_01.using_remote_tank = 1;
|
|
||||||
if(var_01 maps\mp\_utility::isjuggernaut())
|
|
||||||
{
|
|
||||||
var_01.juggernautoverlay.alpha = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 17
|
|
||||||
reconhudsetup(param_00)
|
|
||||||
{
|
|
||||||
param_00 endon("death");
|
|
||||||
self endon("disconnect");
|
|
||||||
reconhudremove(param_00);
|
|
||||||
wait(0.5);
|
|
||||||
self setclientomnvar("ui_recondrone_toggle",1);
|
|
||||||
maps\mp\killstreaks\_aerial_utility::playerenablestreakstatic();
|
|
||||||
self setclientomnvar("ui_recondrone_countdown",param_00.endtime);
|
|
||||||
if(param_00.hascloak)
|
|
||||||
{
|
|
||||||
self setclientomnvar("ui_drone_cloak",2);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(param_00.haspaintgrenade)
|
|
||||||
{
|
|
||||||
self setclientomnvar("ui_recondrone_paint",1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(param_00.hasempgrenade)
|
|
||||||
{
|
|
||||||
self setclientomnvar("ui_recondrone_emp",1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(param_00.hasarhud)
|
|
||||||
{
|
|
||||||
self thermalvisionfofoverlayon();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 18
|
|
||||||
reconhudremove(param_00)
|
|
||||||
{
|
|
||||||
self setclientomnvar("ui_recondrone_toggle",0);
|
|
||||||
self setclientomnvar("ui_recondrone_countdown",0);
|
|
||||||
self setclientomnvar("ui_drone_cloak",0);
|
|
||||||
self setclientomnvar("ui_drone_cloak_time",0);
|
|
||||||
self setclientomnvar("ui_drone_cloak_cooldown",0);
|
|
||||||
self setclientomnvar("ui_recondrone_paint",0);
|
|
||||||
self setclientomnvar("ui_recondrone_emp",0);
|
|
||||||
maps\mp\killstreaks\_aerial_utility::playerdisablestreakstatic();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 19
|
|
||||||
monitoruavsafearea(param_00)
|
|
||||||
{
|
|
||||||
self endon("reconStreakComplete");
|
|
||||||
thread maps\mp\killstreaks\_aerial_utility::playerhandleboundarystatic(param_00,"reconStreakComplete");
|
|
||||||
thread maps\mp\killstreaks\_aerial_utility::playerhandlekillvehicle(param_00,"reconStreakComplete");
|
|
||||||
param_00 waittill("outOfBounds");
|
|
||||||
wait(2);
|
|
||||||
param_00 notify("death");
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 20
|
|
||||||
monitorplayerdisconnect(param_00)
|
|
||||||
{
|
|
||||||
self endon("StopWaitForDisconnect");
|
|
||||||
param_00 endon("death");
|
|
||||||
self waittill("disconnect");
|
|
||||||
param_00 notify("death");
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 21
|
|
||||||
monitorplayerswitchteams(param_00)
|
|
||||||
{
|
|
||||||
self endon("reconStreakComplete");
|
|
||||||
common_scripts\utility::waittill_any("joined_team","joined_spectators");
|
|
||||||
param_00 notify("death");
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 22
|
|
||||||
monitorplayergameended(param_00)
|
|
||||||
{
|
|
||||||
self endon("reconStreakComplete");
|
|
||||||
level waittill("game_ended");
|
|
||||||
param_00 notify("death");
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 23
|
|
||||||
onrecondronedeath(param_00,param_01,param_02,param_03)
|
|
||||||
{
|
|
||||||
self notify("death",param_00,param_02,param_01);
|
|
||||||
maps\mp\gametypes\_damage::onkillstreakkilled(param_00,param_01,param_02,param_03,"recon_drone_destroyed",undefined,"callout_destroyed_drone_recon",1);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 24
|
|
||||||
reconhandletimeoutwarning(param_00)
|
|
||||||
{
|
|
||||||
param_00 endon("death");
|
|
||||||
var_01 = 10;
|
|
||||||
var_02 = 1;
|
|
||||||
maps\mp\gametypes\_hostmigration::waitlongdurationwithhostmigrationpause(param_00.lifespan - var_01);
|
|
||||||
while(var_01 > 0)
|
|
||||||
{
|
|
||||||
param_00 playsound("mp_warbird_outofbounds_warning");
|
|
||||||
var_01 = var_01 - var_02;
|
|
||||||
wait(var_02);
|
|
||||||
}
|
|
||||||
|
|
||||||
param_00 notify("death");
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 25
|
|
||||||
reconhandletimeout(param_00)
|
|
||||||
{
|
|
||||||
param_00 endon("death");
|
|
||||||
maps\mp\gametypes\_hostmigration::waitlongdurationwithhostmigrationpause(param_00.lifespan);
|
|
||||||
param_00 notify("death");
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 26
|
|
||||||
reconhandledeath(param_00)
|
|
||||||
{
|
|
||||||
var_01 = param_00 getentitynumber();
|
|
||||||
param_00 maps\mp\killstreaks\_drone_common::droneaddtogloballist(var_01);
|
|
||||||
param_00 waittill("death",var_02);
|
|
||||||
if(isdefined(param_00))
|
|
||||||
{
|
|
||||||
param_00 ghost();
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(param_00.mgturret))
|
|
||||||
{
|
|
||||||
param_00.mgturret ghost();
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(self))
|
|
||||||
{
|
|
||||||
maps\mp\_utility::freezecontrolswrapper(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
self notify("reconStreakComplete");
|
|
||||||
self notify("StopWaitForDisconnect");
|
|
||||||
param_00 playsound("assault_drn_death");
|
|
||||||
param_00 maps\mp\killstreaks\_drone_common::droneremovefromgloballist(var_01);
|
|
||||||
wait 0.05;
|
|
||||||
playfxontag(level._effect["remote_tank_explode"],param_00,"tag_origin");
|
|
||||||
wait(1);
|
|
||||||
maps\mp\gametypes\_hostmigration::waittillhostmigrationdone();
|
|
||||||
if(isdefined(self) && !level.gameended)
|
|
||||||
{
|
|
||||||
maps\mp\_utility::freezecontrolswrapper(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(self) && isdefined(var_02) && self != var_02)
|
|
||||||
{
|
|
||||||
thread maps\mp\_utility::leaderdialogonplayer("ks_recdrone_destroyed",undefined,undefined,self.origin);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(self) && self.using_remote_tank || maps\mp\_utility::isusingremote())
|
|
||||||
{
|
|
||||||
reconsetinactivity(param_00);
|
|
||||||
self.using_remote_tank = 0;
|
|
||||||
if(maps\mp\_utility::isjuggernaut())
|
|
||||||
{
|
|
||||||
self.juggernautoverlay.alpha = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
maps\mp\_utility::decrementfauxvehiclecount();
|
|
||||||
if(isdefined(param_00.mgturret))
|
|
||||||
{
|
|
||||||
if(isdefined(param_00.mgturret.firesoundent))
|
|
||||||
{
|
|
||||||
param_00.mgturret.firesoundent delete();
|
|
||||||
}
|
|
||||||
|
|
||||||
param_00.mgturret delete();
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(param_00.thing))
|
|
||||||
{
|
|
||||||
param_00.thing delete();
|
|
||||||
}
|
|
||||||
|
|
||||||
param_00 delete();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 27
|
|
||||||
reconsetinactivity(param_00)
|
|
||||||
{
|
|
||||||
if(!isdefined(param_00))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_01 = self;
|
|
||||||
if(isdefined(var_01.using_remote_tank) && var_01.using_remote_tank)
|
|
||||||
{
|
|
||||||
var_01 notify("end_remote");
|
|
||||||
var_01 remotecontrolvehicleoff(param_00);
|
|
||||||
var_01 thermalvisionfofoverlayoff();
|
|
||||||
thread maps\mp\killstreaks\_drone_common::removedronevisionandlightsetpermap(1.5);
|
|
||||||
var_01 reconhudremove(param_00);
|
|
||||||
var_01 disableplayercommands(param_00);
|
|
||||||
if(var_01 maps\mp\_utility::isusingremote() && !level.gameended)
|
|
||||||
{
|
|
||||||
var_01 maps\mp\_utility::clearusingremote();
|
|
||||||
}
|
|
||||||
|
|
||||||
var_02 = maps\mp\_utility::getkillstreakweapon("recon_ugv");
|
|
||||||
var_01 takeweapon(var_02);
|
|
||||||
var_01 enableweaponswitch();
|
|
||||||
var_01 switchtoweapon(common_scripts\utility::getlastweapon());
|
|
||||||
var_01 maps\mp\_utility::playerrestoreangles();
|
|
||||||
if(getdvarint("camera_thirdPerson"))
|
|
||||||
{
|
|
||||||
var_01 maps\mp\_utility::setthirdpersondof(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(var_01.disabledusability) && var_01.disabledusability)
|
|
||||||
{
|
|
||||||
var_01 common_scripts\utility::_enableusability();
|
|
||||||
}
|
|
||||||
|
|
||||||
var_01.using_remote_tank = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 28
|
|
||||||
reconplayerexit(param_00)
|
|
||||||
{
|
|
||||||
if(!isdefined(self))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_01 = self;
|
|
||||||
level endon("game_ended");
|
|
||||||
var_01 endon("disconnect");
|
|
||||||
param_00 endon("death");
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
var_02 = 0;
|
|
||||||
while(var_01 usebuttonpressed())
|
|
||||||
{
|
|
||||||
var_02 = var_02 + 0.05;
|
|
||||||
if(var_02 > 0.75)
|
|
||||||
{
|
|
||||||
param_00 notify("death");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
wait(0.05);
|
|
||||||
}
|
|
||||||
|
|
||||||
wait(0.05);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,985 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: maps/mp/killstreaks/_emp.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 32
|
|
||||||
* Decompile Time: 490 ms
|
|
||||||
* Timestamp: 10/27/2023 2:09:25 AM
|
|
||||||
*******************************************************************/
|
|
||||||
|
|
||||||
//Function Number: 1
|
|
||||||
init()
|
|
||||||
{
|
|
||||||
level._effect["emp_third_person_sparks"] = loadfx("vfx/explosion/electrical_sparks_small_emp_runner");
|
|
||||||
if(level.multiteambased)
|
|
||||||
{
|
|
||||||
for(var_00 = 0;var_00 < level.teamnamelist.size;var_00++)
|
|
||||||
{
|
|
||||||
level.teamemped[level.teamnamelist[var_00]] = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
level.teamemped["allies"] = 0;
|
|
||||||
level.teamemped["axis"] = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
level.empowner = undefined;
|
|
||||||
level.empplayer = undefined;
|
|
||||||
level.empstreaksdisabled = 0;
|
|
||||||
level.empequipmentdisabled = 0;
|
|
||||||
level.empassistpoints = 0;
|
|
||||||
level.empexodisabled = 0;
|
|
||||||
level.emptimeremaining = 0;
|
|
||||||
level thread emp_playertracker();
|
|
||||||
level.killstreakfuncs["emp"] = ::emp_use;
|
|
||||||
level thread onplayerconnect();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 2
|
|
||||||
getmodulelineemp(param_00)
|
|
||||||
{
|
|
||||||
var_01 = common_scripts\utility::array_contains(param_00,"emp_streak_kill");
|
|
||||||
var_02 = common_scripts\utility::array_contains(param_00,"emp_equipment_kill");
|
|
||||||
var_03 = common_scripts\utility::array_contains(param_00,"emp_exo_kill");
|
|
||||||
if(!var_01 && !var_02 && !var_03)
|
|
||||||
{
|
|
||||||
return "_01";
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var_01 && !var_02 && !var_03)
|
|
||||||
{
|
|
||||||
return "_02";
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!var_01 && var_02 && !var_03)
|
|
||||||
{
|
|
||||||
return "_03";
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!var_01 && !var_02 && var_03)
|
|
||||||
{
|
|
||||||
return "_04";
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var_01 && var_02 && !var_03)
|
|
||||||
{
|
|
||||||
return "_05";
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var_01 && !var_02 && var_03)
|
|
||||||
{
|
|
||||||
return "_06";
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!var_01 && var_02 && var_03)
|
|
||||||
{
|
|
||||||
return "_07";
|
|
||||||
}
|
|
||||||
|
|
||||||
return "_08";
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 3
|
|
||||||
onplayerconnect()
|
|
||||||
{
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
level waittill("connected",var_00);
|
|
||||||
var_00 thread onplayerspawned();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 4
|
|
||||||
onplayerspawned()
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
self waittill("spawned_player");
|
|
||||||
if(issystemhacked() && !maps\mp\_utility::_hasperk("specialty_empimmune"))
|
|
||||||
{
|
|
||||||
applyemp();
|
|
||||||
}
|
|
||||||
|
|
||||||
self waittill("death");
|
|
||||||
if(self.team == "spectator" || issystemhacked())
|
|
||||||
{
|
|
||||||
removeemp();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 5
|
|
||||||
issystemhacked()
|
|
||||||
{
|
|
||||||
return (level.teambased && level.teamemped[self.team]) || !level.teambased && isdefined(level.empplayer) && level.empplayer != self;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 6
|
|
||||||
applyemp(param_00)
|
|
||||||
{
|
|
||||||
var_01 = 2;
|
|
||||||
if(level.empexodisabled)
|
|
||||||
{
|
|
||||||
var_01 = 1;
|
|
||||||
if(maps\mp\_utility::isaugmentedgamemode())
|
|
||||||
{
|
|
||||||
maps\mp\_utility::playerallowhighjump(0,"emp");
|
|
||||||
maps\mp\_utility::playerallowhighjumpdrop(0,"emp");
|
|
||||||
maps\mp\_utility::playerallowboostjump(0,"emp");
|
|
||||||
maps\mp\_utility::playerallowpowerslide(0,"emp");
|
|
||||||
maps\mp\_utility::playerallowdodge(0,"emp");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
self.empscrambleid = maps\mp\gametypes\_scrambler::playersethudempscrambled(level.empendtime,var_01,"emp");
|
|
||||||
self digitaldistortsetmaterial("digital_distort_mp");
|
|
||||||
self digitaldistortsetparams(1,1);
|
|
||||||
self.empon = 1;
|
|
||||||
self notify("applyEMPkillstreak");
|
|
||||||
self setempjammed(1,level.empequipmentdisabled);
|
|
||||||
if(isdefined(param_00) && param_00 == "emp_update")
|
|
||||||
{
|
|
||||||
self playsoundtoplayer("emp_system_hacked",self);
|
|
||||||
}
|
|
||||||
|
|
||||||
thread dynamicdistortion();
|
|
||||||
thread playerdelaystartsparkseffect();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 7
|
|
||||||
playerdelaystartsparkseffect()
|
|
||||||
{
|
|
||||||
self endon("death");
|
|
||||||
self endon("disconnect");
|
|
||||||
level endon("emp_update");
|
|
||||||
if(!isdefined(self.costume))
|
|
||||||
{
|
|
||||||
self waittill("player_model_set");
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!isdefined(self.empfx))
|
|
||||||
{
|
|
||||||
self.empfx = spawnlinkedfx(common_scripts\utility::getfx("emp_third_person_sparks"),self,"j_shoulder_ri");
|
|
||||||
triggerfx(self.empfx);
|
|
||||||
setfxkillondelete(self.empfx,1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 8
|
|
||||||
dynamicdistortion()
|
|
||||||
{
|
|
||||||
self notify("dynamicDistortion");
|
|
||||||
self endon("death");
|
|
||||||
self endon("disconnect");
|
|
||||||
self endon("dynamicDistortion");
|
|
||||||
wait(0.1);
|
|
||||||
var_00 = 0;
|
|
||||||
var_01 = 0.55;
|
|
||||||
var_02 = 0.2;
|
|
||||||
var_03 = var_01 - var_02;
|
|
||||||
var_04 = 0.2;
|
|
||||||
var_05 = level.empendtime - gettime() / 1000 - 0.2;
|
|
||||||
while(var_00 < var_05)
|
|
||||||
{
|
|
||||||
if(isdefined(self.empon) && !self.empon)
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_06 = var_05 - var_00 / var_05;
|
|
||||||
self digitaldistortsetparams(var_06 * var_03 + var_02,1);
|
|
||||||
var_00 = var_00 + var_04;
|
|
||||||
wait(var_04);
|
|
||||||
}
|
|
||||||
|
|
||||||
self digitaldistortsetparams(0,0);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 9
|
|
||||||
removeemp(param_00)
|
|
||||||
{
|
|
||||||
if(maps\mp\_utility::isaugmentedgamemode())
|
|
||||||
{
|
|
||||||
maps\mp\_utility::playerallowhighjump(1,"emp");
|
|
||||||
maps\mp\_utility::playerallowhighjumpdrop(1,"emp");
|
|
||||||
maps\mp\_utility::playerallowboostjump(1,"emp");
|
|
||||||
maps\mp\_utility::playerallowpowerslide(1,"emp");
|
|
||||||
maps\mp\_utility::playerallowdodge(1,"emp");
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(self.empscrambleid))
|
|
||||||
{
|
|
||||||
maps\mp\gametypes\_scrambler::playersethudempscrambledoff(self.empscrambleid);
|
|
||||||
self.empscrambleid = undefined;
|
|
||||||
}
|
|
||||||
else if(self.team == "spectator")
|
|
||||||
{
|
|
||||||
self setclientomnvar("ui_exo_reboot_end_time",0);
|
|
||||||
self setclientomnvar("ui_exo_reboot_type",0);
|
|
||||||
}
|
|
||||||
|
|
||||||
self digitaldistortsetparams(0,0);
|
|
||||||
self.empon = undefined;
|
|
||||||
self notify("removeEMPkillstreak");
|
|
||||||
self setempjammed(0);
|
|
||||||
if(isdefined(param_00) && param_00 == "emp_update")
|
|
||||||
{
|
|
||||||
self playsoundtoplayer("emp_system_reboot",self);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(self.empfx))
|
|
||||||
{
|
|
||||||
self.empfx delete();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 10
|
|
||||||
emp_use(param_00,param_01)
|
|
||||||
{
|
|
||||||
var_02 = self.pers["team"];
|
|
||||||
if(level.teambased)
|
|
||||||
{
|
|
||||||
var_03 = level.otherteam[var_02];
|
|
||||||
thread emp_jamteam(var_03,param_01);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
thread emp_jamplayers(self,param_01);
|
|
||||||
}
|
|
||||||
|
|
||||||
maps\mp\_matchdata::logkillstreakevent("emp",self.origin);
|
|
||||||
maps\mp\gametypes\_missions::processchallenge("ch_streak_emp",1);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 11
|
|
||||||
emp_gettimeoutfrommodules(param_00)
|
|
||||||
{
|
|
||||||
var_01 = 20;
|
|
||||||
if(common_scripts\utility::array_contains(param_00,"emp_time_1") && common_scripts\utility::array_contains(param_00,"emp_time_2"))
|
|
||||||
{
|
|
||||||
var_01 = 40;
|
|
||||||
}
|
|
||||||
else if(common_scripts\utility::array_contains(param_00,"emp_time_1") || common_scripts\utility::array_contains(param_00,"emp_time_2"))
|
|
||||||
{
|
|
||||||
var_01 = 30;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(level.ishorde) && level.ishorde)
|
|
||||||
{
|
|
||||||
return 60;
|
|
||||||
}
|
|
||||||
|
|
||||||
return var_01;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 12
|
|
||||||
emp_artifacts(param_00)
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
self notify("EMP_Artifacts");
|
|
||||||
self endon("EMP_Artifacts");
|
|
||||||
if(isdefined(level.ishorde) && level.ishorde)
|
|
||||||
{
|
|
||||||
wait(0.1);
|
|
||||||
}
|
|
||||||
|
|
||||||
self setclientomnvar("ui_hud_static",2);
|
|
||||||
wait(param_00);
|
|
||||||
self setclientomnvar("ui_hud_static",0);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 13
|
|
||||||
emp_jamteam(param_00,param_01)
|
|
||||||
{
|
|
||||||
level endon("game_ended");
|
|
||||||
if(!isdefined(level.ishorde))
|
|
||||||
{
|
|
||||||
thread maps\mp\_utility::teamplayercardsplash("used_emp",self);
|
|
||||||
}
|
|
||||||
|
|
||||||
level notify("EMP_JamTeam" + param_00);
|
|
||||||
level endon("EMP_JamTeam" + param_00);
|
|
||||||
level.empowner = self;
|
|
||||||
var_02 = emp_gettimeoutfrommodules(param_01);
|
|
||||||
foreach(var_04 in level.players)
|
|
||||||
{
|
|
||||||
var_04 playlocalsound("emp_big_activate");
|
|
||||||
if(var_04.team != param_00)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var_04 maps\mp\_utility::_hasperk("specialty_empimmune"))
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var_04 maps\mp\_utility::_hasperk("specialty_localjammer"))
|
|
||||||
{
|
|
||||||
var_04 setmotiontrackervisible(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
var_04 thread emp_artifacts(var_02);
|
|
||||||
}
|
|
||||||
|
|
||||||
visionsetnaked("coup_sunblind",0.1);
|
|
||||||
if(common_scripts\utility::array_contains(param_01,"emp_flash"))
|
|
||||||
{
|
|
||||||
foreach(var_04 in level.players)
|
|
||||||
{
|
|
||||||
if(var_04.team != param_00 || !maps\mp\_utility::isreallyalive(var_04) || isdefined(var_04.usingremote))
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var_04 maps\mp\_utility::_hasperk("specialty_empimmune"))
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_04 thread maps\mp\_flashgrenades::applyflash(2.5,0.75);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
wait(0.1);
|
|
||||||
visionsetnaked("coup_sunblind",0);
|
|
||||||
if(isdefined(level.nukedetonated))
|
|
||||||
{
|
|
||||||
visionsetnaked(level.nukevisionset,3);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
visionsetnaked("",3);
|
|
||||||
}
|
|
||||||
|
|
||||||
level.teamemped[param_00] = 1;
|
|
||||||
level.empstreaksdisabled = common_scripts\utility::array_contains(param_01,"emp_streak_kill");
|
|
||||||
level.empequipmentdisabled = common_scripts\utility::array_contains(param_01,"emp_equipment_kill");
|
|
||||||
level.empassistpoints = common_scripts\utility::array_contains(param_01,"emp_assist");
|
|
||||||
level.empexodisabled = common_scripts\utility::array_contains(param_01,"emp_exo_kill");
|
|
||||||
level notify("emp_update");
|
|
||||||
level.empendtime = gettime() + int(var_02 * 1000);
|
|
||||||
if(level.empstreaksdisabled)
|
|
||||||
{
|
|
||||||
level destroyactivestreakvehicles(self,param_00);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(level.empequipmentdisabled)
|
|
||||||
{
|
|
||||||
level destroyactiveequipmentvehicles(self,param_00);
|
|
||||||
}
|
|
||||||
|
|
||||||
level thread keepemptimeremaining(var_02);
|
|
||||||
maps\mp\gametypes\_hostmigration::waitlongdurationwithhostmigrationpause(var_02);
|
|
||||||
level.teamemped[param_00] = 0;
|
|
||||||
foreach(var_04 in level.players)
|
|
||||||
{
|
|
||||||
if(var_04.team != param_00)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var_04 maps\mp\_utility::_hasperk("specialty_localjammer"))
|
|
||||||
{
|
|
||||||
var_04 setmotiontrackervisible(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
level.empowner = undefined;
|
|
||||||
level.empstreaksdisabled = 0;
|
|
||||||
level.empequipmentdisabled = 0;
|
|
||||||
level.empassistpoints = 0;
|
|
||||||
level.empexodisabled = 0;
|
|
||||||
level notify("emp_update");
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 14
|
|
||||||
emp_jamplayers(param_00,param_01)
|
|
||||||
{
|
|
||||||
level notify("EMP_JamPlayers");
|
|
||||||
level endon("EMP_JamPlayers");
|
|
||||||
level.empowner = param_00;
|
|
||||||
var_02 = emp_gettimeoutfrommodules(param_01);
|
|
||||||
foreach(var_04 in level.players)
|
|
||||||
{
|
|
||||||
var_04 playlocalsound("emp_big_activate");
|
|
||||||
if(var_04 == param_00)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var_04 maps\mp\_utility::_hasperk("specialty_localjammer"))
|
|
||||||
{
|
|
||||||
var_04 setmotiontrackervisible(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
var_04 thread emp_artifacts(var_02);
|
|
||||||
}
|
|
||||||
|
|
||||||
visionsetnaked("coup_sunblind",0.1);
|
|
||||||
if(common_scripts\utility::array_contains(param_01,"emp_flash"))
|
|
||||||
{
|
|
||||||
foreach(var_04 in level.players)
|
|
||||||
{
|
|
||||||
if(var_04 == param_00 || !maps\mp\_utility::isreallyalive(var_04) || isdefined(var_04.usingremote))
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_04 thread maps\mp\_flashgrenades::applyflash(2.5,0.75);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
wait(0.1);
|
|
||||||
visionsetnaked("coup_sunblind",0);
|
|
||||||
if(isdefined(level.nukedetonated))
|
|
||||||
{
|
|
||||||
visionsetnaked(level.nukevisionset,3);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
visionsetnaked("",3);
|
|
||||||
}
|
|
||||||
|
|
||||||
level notify("emp_update");
|
|
||||||
level.empplayer = param_00;
|
|
||||||
level.empplayer thread empplayerffadisconnect();
|
|
||||||
level.empstreaksdisabled = common_scripts\utility::array_contains(param_01,"emp_streak_kill");
|
|
||||||
level.empequipmentdisabled = common_scripts\utility::array_contains(param_01,"emp_equipment_kill");
|
|
||||||
level.empassistpoints = common_scripts\utility::array_contains(param_01,"emp_assist");
|
|
||||||
level.empexodisabled = common_scripts\utility::array_contains(param_01,"emp_exo_kill");
|
|
||||||
level.empendtime = gettime() + int(var_02 * 1000);
|
|
||||||
if(level.empstreaksdisabled)
|
|
||||||
{
|
|
||||||
level destroyactivestreakvehicles(param_00);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(level.empequipmentdisabled)
|
|
||||||
{
|
|
||||||
level destroyactiveequipmentvehicles(param_00);
|
|
||||||
}
|
|
||||||
|
|
||||||
level notify("emp_update");
|
|
||||||
level thread keepemptimeremaining(var_02);
|
|
||||||
maps\mp\gametypes\_hostmigration::waitlongdurationwithhostmigrationpause(var_02);
|
|
||||||
foreach(var_04 in level.players)
|
|
||||||
{
|
|
||||||
if(var_04 == param_00)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var_04 maps\mp\_utility::_hasperk("specialty_localjammer"))
|
|
||||||
{
|
|
||||||
var_04 setmotiontrackervisible(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
level.empplayer = undefined;
|
|
||||||
level.empowner = undefined;
|
|
||||||
level.empstreaksdisabled = 0;
|
|
||||||
level.empequipmentdisabled = 0;
|
|
||||||
level.empassistpoints = 0;
|
|
||||||
level.empexodisabled = 0;
|
|
||||||
level notify("emp_update");
|
|
||||||
level notify("emp_ended");
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 15
|
|
||||||
keepemptimeremaining(param_00)
|
|
||||||
{
|
|
||||||
level notify("keepEMPTimeRemaining");
|
|
||||||
level endon("keepEMPTimeRemaining");
|
|
||||||
level endon("emp_ended");
|
|
||||||
level.emptimeremaining = int(param_00);
|
|
||||||
while(level.emptimeremaining)
|
|
||||||
{
|
|
||||||
wait(1);
|
|
||||||
level.emptimeremaining--;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 16
|
|
||||||
empplayerffadisconnect()
|
|
||||||
{
|
|
||||||
level endon("EMP_JamPlayers");
|
|
||||||
level endon("emp_ended");
|
|
||||||
self waittill("disconnect");
|
|
||||||
level notify("emp_update");
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 17
|
|
||||||
emp_playertracker()
|
|
||||||
{
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
var_00 = level common_scripts\utility::waittill_any_return_no_endon_death("joined_team","emp_update","game_ended");
|
|
||||||
foreach(var_02 in level.players)
|
|
||||||
{
|
|
||||||
if(var_02.team == "spectator")
|
|
||||||
{
|
|
||||||
var_03 = var_02 getspectatingplayer();
|
|
||||||
if(!isdefined(var_03) || !var_03 issystemhacked())
|
|
||||||
{
|
|
||||||
var_02 removeemp(var_00);
|
|
||||||
}
|
|
||||||
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var_02 maps\mp\_utility::_hasperk("specialty_empimmune"))
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(maps\mp\_utility::isreallyalive(var_02) && var_02 issystemhacked() && !level.gameended)
|
|
||||||
{
|
|
||||||
var_02 applyemp(var_00);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_02 removeemp(var_00);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(level.gameended)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 18
|
|
||||||
destroyactivevehicles(param_00,param_01)
|
|
||||||
{
|
|
||||||
thread destroyactivestreakvehicles(param_00,param_01);
|
|
||||||
thread destroyactiveequipmentvehicles(param_00,param_01);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 19
|
|
||||||
destroyactivestreakvehicles(param_00,param_01)
|
|
||||||
{
|
|
||||||
thread destroyactivehelis(param_00,param_01);
|
|
||||||
thread destroyactivelittlebirds(param_00,param_01);
|
|
||||||
thread destroyactiveturrets(param_00,param_01);
|
|
||||||
thread destroyactiverockets(param_00,param_01);
|
|
||||||
thread destroyactiveuavs(param_00,param_01);
|
|
||||||
thread destroyactiveugvs(param_00,param_01);
|
|
||||||
thread destroyactiveorbitallasers(param_00,param_01);
|
|
||||||
thread destroyactivegoliaths(param_00,param_01);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 20
|
|
||||||
destroyactiveequipmentvehicles(param_00,param_01)
|
|
||||||
{
|
|
||||||
thread destroyactivedrones(param_00,param_01);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 21
|
|
||||||
destroyempobjectsinradius(param_00,param_01,param_02,param_03)
|
|
||||||
{
|
|
||||||
thread destroyactivehelis(param_00,param_01,param_02,param_03);
|
|
||||||
thread destroyactivelittlebirds(param_00,param_01,param_02,param_03);
|
|
||||||
thread destroyactiveturrets(param_00,param_01,param_02,param_03);
|
|
||||||
thread destroyactiverockets(param_00,param_01,param_02,param_03);
|
|
||||||
thread destroyactiveuavs(param_00,param_01,param_02,param_03);
|
|
||||||
thread destroyactiveugvs(param_00,param_01,param_02,param_03);
|
|
||||||
thread destroyactiveorbitallasers(param_00,param_01,param_02,param_03);
|
|
||||||
thread destroyactivedrones(param_00,param_01,param_02,param_03);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 22
|
|
||||||
destroyactivehelis(param_00,param_01,param_02,param_03)
|
|
||||||
{
|
|
||||||
var_04 = "MOD_EXPLOSIVE";
|
|
||||||
var_05 = "killstreak_emp_mp";
|
|
||||||
var_06 = 5000;
|
|
||||||
var_07 = level.helis;
|
|
||||||
if(isdefined(level.orbitalsupport_planemodel))
|
|
||||||
{
|
|
||||||
var_07[var_07.size] = level.orbitalsupport_planemodel;
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach(var_09 in var_07)
|
|
||||||
{
|
|
||||||
if(level.teambased && isdefined(param_01))
|
|
||||||
{
|
|
||||||
if(isdefined(var_09.team) && var_09.team != param_01)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(isdefined(var_09.owner) && var_09.owner == param_00)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(param_02) && isdefined(param_03))
|
|
||||||
{
|
|
||||||
var_0A = param_02;
|
|
||||||
if(distancesquared(var_09.origin,param_02) > param_03 * param_03)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var_06 = var_09.maxhealth + 1;
|
|
||||||
var_09 dodamage(var_06,var_09.origin,param_00,param_00,var_04,var_05);
|
|
||||||
wait(0.05);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 23
|
|
||||||
destroyactivelittlebirds(param_00,param_01,param_02,param_03)
|
|
||||||
{
|
|
||||||
var_04 = "MOD_EXPLOSIVE";
|
|
||||||
var_05 = "killstreak_emp_mp";
|
|
||||||
var_06 = 5000;
|
|
||||||
var_07 = common_scripts\utility::array_combine(level.planes,level.littlebirds);
|
|
||||||
foreach(var_09 in level.carepackagedrones)
|
|
||||||
{
|
|
||||||
if(isdefined(var_09.crate))
|
|
||||||
{
|
|
||||||
var_07[var_07.size] = var_09.crate;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach(var_0C in var_07)
|
|
||||||
{
|
|
||||||
if(level.teambased && isdefined(param_01))
|
|
||||||
{
|
|
||||||
if(isdefined(var_0C.team) && var_0C.team != param_01)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(isdefined(var_0C.owner) && var_0C.owner == param_00)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(param_02) && isdefined(param_03))
|
|
||||||
{
|
|
||||||
var_0D = param_02;
|
|
||||||
if(distancesquared(var_0C.origin,param_02) > param_03 * param_03)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var_06 = var_0C.maxhealth + 1;
|
|
||||||
if(isdefined(var_0C.cratetype))
|
|
||||||
{
|
|
||||||
var_0C = var_0C.enemymodel;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_0C dodamage(var_06,var_0C.origin,param_00,param_00,var_04,var_05);
|
|
||||||
wait(0.05);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 24
|
|
||||||
destroyactiveturrets(param_00,param_01,param_02,param_03)
|
|
||||||
{
|
|
||||||
var_04 = "MOD_EXPLOSIVE";
|
|
||||||
var_05 = "killstreak_emp_mp";
|
|
||||||
var_06 = 5000;
|
|
||||||
foreach(var_08 in level.turrets)
|
|
||||||
{
|
|
||||||
if(level.teambased && isdefined(param_01))
|
|
||||||
{
|
|
||||||
if(isdefined(var_08.team) && var_08.team != param_01)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(isdefined(var_08.owner) && var_08.owner == param_00)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(param_02) && isdefined(param_03))
|
|
||||||
{
|
|
||||||
var_09 = param_02;
|
|
||||||
if(distancesquared(var_08.origin,param_02) > param_03 * param_03)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var_06 = var_08.maxhealth + 1;
|
|
||||||
var_08 dodamage(var_06,var_08.origin,param_00,param_00,var_04,var_05);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(level.ishorde) && level.ishorde)
|
|
||||||
{
|
|
||||||
foreach(var_0C in level.players)
|
|
||||||
{
|
|
||||||
if(isdefined(var_0C.iscarrying) && var_0C.iscarrying)
|
|
||||||
{
|
|
||||||
var_0C notify("force_cancel_placement");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 25
|
|
||||||
destroyactiverockets(param_00,param_01,param_02,param_03)
|
|
||||||
{
|
|
||||||
var_04 = "MOD_EXPLOSIVE";
|
|
||||||
var_05 = "killstreak_emp_mp";
|
|
||||||
var_06 = 5000;
|
|
||||||
foreach(var_08 in level.rockets)
|
|
||||||
{
|
|
||||||
if(isdefined(var_08.weaponname) && skiprocketemp(var_08.weaponname))
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(level.teambased && isdefined(param_01))
|
|
||||||
{
|
|
||||||
if(isdefined(var_08.team) && var_08.team != param_01)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(isdefined(var_08.owner) && var_08.owner == param_00)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(param_02) && isdefined(param_03))
|
|
||||||
{
|
|
||||||
var_09 = param_02;
|
|
||||||
if(distancesquared(var_08.origin,param_02) > param_03 * param_03)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(shoulddamagerocket(var_08))
|
|
||||||
{
|
|
||||||
var_06 = var_08.maxhealth + 1;
|
|
||||||
var_08 dodamage(var_06,var_08.origin,param_00,param_00,var_04,var_05);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
playfx(level.remotemissile_fx["explode"],var_08.origin);
|
|
||||||
var_08 delete();
|
|
||||||
}
|
|
||||||
|
|
||||||
wait(0.05);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 26
|
|
||||||
shoulddamagerocket(param_00)
|
|
||||||
{
|
|
||||||
return isdefined(param_00.damagecallback);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 27
|
|
||||||
skiprocketemp(param_00)
|
|
||||||
{
|
|
||||||
return param_00 == "orbital_carepackage_pod_mp";
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 28
|
|
||||||
destroyactiveuavs(param_00,param_01,param_02,param_03)
|
|
||||||
{
|
|
||||||
var_04 = "MOD_EXPLOSIVE";
|
|
||||||
var_05 = "killstreak_emp_mp";
|
|
||||||
var_06 = 5000;
|
|
||||||
var_07 = level.uavmodels;
|
|
||||||
if(level.teambased && isdefined(param_01))
|
|
||||||
{
|
|
||||||
var_07 = level.uavmodels[param_01];
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach(var_09 in var_07)
|
|
||||||
{
|
|
||||||
if(level.teambased && isdefined(param_01))
|
|
||||||
{
|
|
||||||
}
|
|
||||||
else if(isdefined(var_09.owner) && var_09.owner == param_00)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(param_02) && isdefined(param_03))
|
|
||||||
{
|
|
||||||
var_0A = param_02;
|
|
||||||
if(distancesquared(var_09.origin,param_02) > param_03 * param_03)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var_06 = var_09.maxhealth + 1;
|
|
||||||
var_09 dodamage(var_06,var_09.origin,param_00,param_00,var_04,var_05);
|
|
||||||
wait(0.05);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 29
|
|
||||||
destroyactiveugvs(param_00,param_01,param_02,param_03)
|
|
||||||
{
|
|
||||||
var_04 = "MOD_EXPLOSIVE";
|
|
||||||
var_05 = "killstreak_emp_mp";
|
|
||||||
var_06 = 5000;
|
|
||||||
foreach(var_08 in level.ugvs)
|
|
||||||
{
|
|
||||||
if(level.teambased && isdefined(param_01))
|
|
||||||
{
|
|
||||||
if(isdefined(var_08.team) && var_08.team != param_01)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(isdefined(var_08.owner) && var_08.owner == param_00)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(param_02) && isdefined(param_03))
|
|
||||||
{
|
|
||||||
var_09 = param_02;
|
|
||||||
if(distancesquared(var_08.origin,param_02) > param_03 * param_03)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var_06 = var_08.maxhealth + 1;
|
|
||||||
var_08 dodamage(var_06,var_08.origin,param_00,param_00,var_04,var_05);
|
|
||||||
wait(0.05);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 30
|
|
||||||
destroyactivedrones(param_00,param_01,param_02,param_03)
|
|
||||||
{
|
|
||||||
var_04 = "MOD_EXPLOSIVE";
|
|
||||||
var_05 = "killstreak_emp_mp";
|
|
||||||
var_06 = 5000;
|
|
||||||
var_07 = common_scripts\utility::array_combine(level.trackingdrones,level.explosivedrones);
|
|
||||||
foreach(var_09 in var_07)
|
|
||||||
{
|
|
||||||
if(level.teambased && isdefined(param_01))
|
|
||||||
{
|
|
||||||
if(isdefined(var_09.team) && var_09.team != param_01)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(isdefined(var_09.owner) && var_09.owner == param_00)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(param_02) && isdefined(param_03))
|
|
||||||
{
|
|
||||||
var_0A = param_02;
|
|
||||||
if(distancesquared(var_09.origin,param_02) > param_03 * param_03)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var_06 = var_09.maxhealth + 1;
|
|
||||||
var_09 dodamage(var_06,var_09.origin,param_00,param_00,var_04,var_05);
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach(var_0D in level.grenades)
|
|
||||||
{
|
|
||||||
if(!isdefined(var_0D.weaponname) || !issubstr(var_0D.weaponname,"explosive_drone_mp"))
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(level.teambased && isdefined(param_01))
|
|
||||||
{
|
|
||||||
if(isdefined(var_0D.team) && var_0D.team != param_01)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(isdefined(var_0D.owner) && var_0D.owner == param_00)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(param_02) && isdefined(param_03))
|
|
||||||
{
|
|
||||||
var_0A = param_02;
|
|
||||||
if(distancesquared(var_0D.origin,param_02) > param_03 * param_03)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var_0D thread maps\mp\_explosive_drone::explosivegrenadedeath();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 31
|
|
||||||
destroyactiveorbitallasers(param_00,param_01,param_02,param_03)
|
|
||||||
{
|
|
||||||
var_04 = "MOD_EXPLOSIVE";
|
|
||||||
var_05 = "killstreak_emp_mp";
|
|
||||||
var_06 = 5000;
|
|
||||||
var_07 = (0,0,0);
|
|
||||||
var_08 = (0,0,0);
|
|
||||||
var_09 = "";
|
|
||||||
var_0A = "";
|
|
||||||
var_0B = "";
|
|
||||||
var_0C = undefined;
|
|
||||||
foreach(var_0E in level.orbital_lasers)
|
|
||||||
{
|
|
||||||
if(level.teambased && isdefined(param_01))
|
|
||||||
{
|
|
||||||
if(isdefined(var_0E.team) && var_0E.team != param_01)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(isdefined(var_0E.owner) && var_0E.owner == param_00)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_0E notify("death",param_00,var_04,var_05);
|
|
||||||
wait(0.05);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 32
|
|
||||||
destroyactivegoliaths(param_00,param_01)
|
|
||||||
{
|
|
||||||
foreach(var_03 in level.players)
|
|
||||||
{
|
|
||||||
if(var_03 maps\mp\_utility::isjuggernaut())
|
|
||||||
{
|
|
||||||
if(level.teambased && isdefined(param_01))
|
|
||||||
{
|
|
||||||
if(isdefined(var_03.team) && var_03.team != param_01)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(level.ishorde) && level.ishorde)
|
|
||||||
{
|
|
||||||
var_03 maps\mp\_snd_common_mp::snd_message("goliath_self_destruct");
|
|
||||||
playfx(common_scripts\utility::getfx("goliath_self_destruct"),var_03.origin,anglestoup(var_03.angles));
|
|
||||||
var_03 thread [[ level.hordehandlejuggdeath ]]();
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_03 thread maps\mp\killstreaks\_juggernaut::playerkillheavyexo(var_03.origin,param_00,"MOD_EXPLOSIVE","killstreak_goliathsd_mp");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,18 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: maps/mp/killstreaks/_marking_util.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 1
|
|
||||||
* Decompile Time: 14 ms
|
|
||||||
* Timestamp: 10/27/2023 2:09:37 AM
|
|
||||||
*******************************************************************/
|
|
||||||
|
|
||||||
//Function Number: 1
|
|
||||||
playerprocesstaggedassist(param_00)
|
|
||||||
{
|
|
||||||
if(level.teambased && isdefined(param_00))
|
|
||||||
{
|
|
||||||
thread maps\mp\_events::processassistevent(param_00);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,961 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: maps/mp/killstreaks/_orbital_carepackage.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 38
|
|
||||||
* Decompile Time: 611 ms
|
|
||||||
* Timestamp: 10/27/2023 2:09:44 AM
|
|
||||||
*******************************************************************/
|
|
||||||
|
|
||||||
//Function Number: 1
|
|
||||||
init()
|
|
||||||
{
|
|
||||||
level._orbital_care_pod = [];
|
|
||||||
level.orbitaldropmarkers = [];
|
|
||||||
level._effect["ocp_death"] = loadfx("vfx/explosion/exo_droppod_explosion");
|
|
||||||
level._effect["ocp_midair"] = loadfx("vfx/explosion/exo_droppod_split");
|
|
||||||
level._effect["ocp_ground_marker"] = loadfx("vfx/unique/vfx_marker_killstreak_guide_carepackage");
|
|
||||||
level._effect["ocp_ground_marker_bad"] = loadfx("vfx/unique/vfx_marker_killstreak_guide_carepackage_fizzle");
|
|
||||||
level._effect["ocp_exhaust"] = loadfx("vfx/vehicle/vehicle_ocp_exhaust");
|
|
||||||
level._effect["ocp_thruster_small"] = loadfx("vfx/vehicle/vehicle_ocp_thrusters_small");
|
|
||||||
level._effect["vfx_ocp_steam"] = loadfx("vfx/steam/vfx_ocp_steam");
|
|
||||||
level._effect["vfx_ocp_steam2"] = loadfx("vfx/steam/vfx_ocp_steam2");
|
|
||||||
level._effect["ocp_glow"] = loadfx("vfx/unique/orbital_carepackage_glow");
|
|
||||||
level.killstreakfuncs["orbital_carepackage"] = ::tryusedefaultorbitalcarepackage;
|
|
||||||
level.killstreakwieldweapons["orbital_carepackage_pod_mp"] = "orbital_carepackage";
|
|
||||||
level.killstreakfuncs["orbital_carepackage_juggernaut_exosuit"] = ::tryuseorbitaljuggernautexosuit;
|
|
||||||
precachempanim("orbital_care_package_open");
|
|
||||||
precachempanim("orbital_care_package_fan_spin");
|
|
||||||
level.ocp_weap_name = "orbital_carepackage_pod_mp";
|
|
||||||
if(!isdefined(level.missileitemclipdelay))
|
|
||||||
{
|
|
||||||
level.missileitemclipdelay = 3;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 2
|
|
||||||
tryusedefaultorbitalcarepackage(param_00,param_01)
|
|
||||||
{
|
|
||||||
return tryuseorbitalcarepackage(param_00,"orbital_carepackage",param_01);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 3
|
|
||||||
tryuseorbitaljuggernautexosuit(param_00,param_01)
|
|
||||||
{
|
|
||||||
return tryuseorbitalcarepackage(param_00,"orbital_carepackage_juggernaut_exosuit",param_01);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 4
|
|
||||||
tryuseorbitalcarepackage(param_00,param_01,param_02)
|
|
||||||
{
|
|
||||||
if((common_scripts\utility::array_contains(param_02,"orbital_carepackage_drone") && maps\mp\_utility::currentactivevehiclecount() >= maps\mp\_utility::maxvehiclesallowed()) || level.fauxvehiclecount + 1 >= maps\mp\_utility::maxvehiclesallowed())
|
|
||||||
{
|
|
||||||
self iprintlnbold(&"MP_TOO_MANY_VEHICLES");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_03 = playerlaunchcarepackage(param_01,param_02);
|
|
||||||
if(!isdefined(var_03) || !var_03)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(param_01 == "orbital_carepackage")
|
|
||||||
{
|
|
||||||
maps\mp\gametypes\_missions::processchallenge("ch_streak_orbitalcare",1);
|
|
||||||
}
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 5
|
|
||||||
playerlaunchcarepackage(param_00,param_01)
|
|
||||||
{
|
|
||||||
var_02 = maps\mp\killstreaks\_orbital_util::playergetoutsidenode("carepackage");
|
|
||||||
var_03 = undefined;
|
|
||||||
if(isdefined(var_02))
|
|
||||||
{
|
|
||||||
var_03 = var_02.origin;
|
|
||||||
}
|
|
||||||
else if(isdefined(level.ishorde) && level.ishorde)
|
|
||||||
{
|
|
||||||
var_02 = [[ level.hordegetoutsideposition ]]();
|
|
||||||
var_03 = var_02.origin;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
thread maps\mp\killstreaks\_orbital_util::playerplayinvalidpositioneffect(common_scripts\utility::getfx("ocp_ground_marker_bad"));
|
|
||||||
self setclientomnvar("ui_invalid_orbital_care_package",1);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_04 = undefined;
|
|
||||||
if(common_scripts\utility::array_contains(param_01,"orbital_carepackage_drone"))
|
|
||||||
{
|
|
||||||
var_04 = spawnhelicopter(self,var_03 + (0,0,200),(0,0,0),"orbital_carepackage_drone_mp","orbital_carepackage_pod_01_vehicle");
|
|
||||||
if(!isdefined(var_04))
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_04 hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
var_05 = firepod(level.ocp_weap_name,self,var_02,param_00,param_01,var_04,undefined,undefined,1);
|
|
||||||
return isdefined(var_05);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 6
|
|
||||||
firepod(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
|
|
||||||
{
|
|
||||||
if(!isdefined(param_06))
|
|
||||||
{
|
|
||||||
param_06 = param_01 maps\mp\killstreaks\_orbital_util::playergetorbitalstartpos(param_02,"carepackage");
|
|
||||||
}
|
|
||||||
|
|
||||||
var_09 = param_02.origin;
|
|
||||||
if(!isdefined(param_07))
|
|
||||||
{
|
|
||||||
param_07 = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
var_0A = magicbullet(param_00,param_06,var_09,param_01,0,1);
|
|
||||||
if(!isdefined(var_0A))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_0A thread setmissilespecialclipmaskdelayed(level.missileitemclipdelay);
|
|
||||||
if(!isdefined(level.iszombiegame) || !level.iszombiegame)
|
|
||||||
{
|
|
||||||
var_0A thread trajectory_kill(param_01);
|
|
||||||
}
|
|
||||||
|
|
||||||
var_0B = param_01 createplayerdroppod(var_0A);
|
|
||||||
var_0B.streakname = param_03;
|
|
||||||
var_0B.modules = param_04;
|
|
||||||
var_0B.droppoint = param_02.origin;
|
|
||||||
var_0B.drone = param_05;
|
|
||||||
var_0B.givebackcarepackage = param_08;
|
|
||||||
var_0A.team = param_01.team;
|
|
||||||
var_0A.owner = param_01;
|
|
||||||
var_0A.type = "remote";
|
|
||||||
return monitordrop(param_01,var_0A,var_0B,param_03,param_07,param_00);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 7
|
|
||||||
trajectory_kill(param_00)
|
|
||||||
{
|
|
||||||
self endon("death");
|
|
||||||
var_01 = self.origin;
|
|
||||||
while(isdefined(self))
|
|
||||||
{
|
|
||||||
if(!level.teambased)
|
|
||||||
{
|
|
||||||
capsule_damage(10000,self.origin,var_01,30,undefined,param_00);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
capsule_damage(10000,self.origin,var_01,30,level.otherteam[param_00.team],param_00);
|
|
||||||
}
|
|
||||||
|
|
||||||
var_01 = self.origin;
|
|
||||||
wait(0.05);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 8
|
|
||||||
capsule_damage(param_00,param_01,param_02,param_03,param_04,param_05)
|
|
||||||
{
|
|
||||||
var_06 = param_02 - param_01;
|
|
||||||
var_07 = vectornormalize(var_06);
|
|
||||||
var_08 = length(var_06);
|
|
||||||
var_09 = param_03 * param_03;
|
|
||||||
foreach(var_0B in level.characters)
|
|
||||||
{
|
|
||||||
if(!isalive(var_0B))
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var_0B != param_05 && isdefined(param_04) && isdefined(var_0B.team) && var_0B.team != param_04)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_0C = var_0B.origin - param_01;
|
|
||||||
var_0D = vectordot(var_0C,var_07);
|
|
||||||
if(var_0D > param_03 * -1 && var_0D < var_08 + param_03)
|
|
||||||
{
|
|
||||||
var_0E = param_01 + var_07 * var_0D;
|
|
||||||
var_0F = distancesquared(var_0E,var_0B.origin);
|
|
||||||
if(var_0F <= var_09)
|
|
||||||
{
|
|
||||||
var_0B dodamage(param_00,var_0E,param_05,self,"MOD_EXPLOSIVE",level.ocp_weap_name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 9
|
|
||||||
setmissilespecialclipmaskdelayed(param_00)
|
|
||||||
{
|
|
||||||
self endon("death");
|
|
||||||
wait(param_00);
|
|
||||||
self setmissilespecialclipmask(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 10
|
|
||||||
createplayerdroppod(param_00)
|
|
||||||
{
|
|
||||||
var_01 = 0;
|
|
||||||
if(!isdefined(level._orbital_care_pod))
|
|
||||||
{
|
|
||||||
level._orbital_care_pod = [];
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
level._orbital_care_pod = maps\mp\_utility::cleanarray(level._orbital_care_pod);
|
|
||||||
var_01 = level._orbital_care_pod.size;
|
|
||||||
}
|
|
||||||
|
|
||||||
level._orbital_care_pod[var_01] = spawnstruct();
|
|
||||||
level._orbital_care_pod[var_01].hasleftcam = 0;
|
|
||||||
level._orbital_care_pod[var_01].podrocket = param_00;
|
|
||||||
level._orbital_care_pod[var_01].podrocket.maxhealth = 100;
|
|
||||||
level._orbital_care_pod[var_01].podrocket.health = 100;
|
|
||||||
level._orbital_care_pod[var_01].podrocket.damagetaken = 0;
|
|
||||||
level._orbital_care_pod[var_01].podrocket.ispodrocket = 1;
|
|
||||||
level._orbital_care_pod[var_01].owner = self;
|
|
||||||
level._orbital_care_pod[var_01].alive = 1;
|
|
||||||
return level._orbital_care_pod[var_01];
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 11
|
|
||||||
rocket_cleanupondeath()
|
|
||||||
{
|
|
||||||
var_00 = self getentitynumber();
|
|
||||||
level.rockets[var_00] = self;
|
|
||||||
self waittill("death");
|
|
||||||
if(isdefined(level.orbitaldropupgrade) && level.orbitaldropupgrade == 1)
|
|
||||||
{
|
|
||||||
magicgrenademanual("dna_aoe_grenade_throw_zombie_mp",self.origin + (0,0,64),(0,0,0),3,level.player,1);
|
|
||||||
}
|
|
||||||
|
|
||||||
level.rockets[var_00] = undefined;
|
|
||||||
if(isdefined(self.killcament))
|
|
||||||
{
|
|
||||||
self.killcament unlink();
|
|
||||||
self.killcament.origin = self.killcament.origin + (0,0,300);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 12
|
|
||||||
getdroptypefromstreakname(param_00)
|
|
||||||
{
|
|
||||||
switch(param_00)
|
|
||||||
{
|
|
||||||
case "orbital_carepackage_juggernaut_exosuit":
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "airdrop_reinforcement_common":
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "airdrop_reinforcement_uncommon":
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "airdrop_reinforcement_rare":
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "airdrop_reinforcement_practice":
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "horde_support_drop":
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 13
|
|
||||||
allowdronedelivery(param_00)
|
|
||||||
{
|
|
||||||
if(!isdefined(param_00))
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(level.teambased && level.teamemped[param_00.team])
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!level.teambased && isdefined(level.empplayer) && level.empplayer != param_00)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 14
|
|
||||||
monitordrop(param_00,param_01,param_02,param_03,param_04,param_05)
|
|
||||||
{
|
|
||||||
var_06 = getdroptypefromstreakname(param_03);
|
|
||||||
if(var_06 == "airdrop_assault" && common_scripts\utility::array_contains(param_02.modules,"orbital_carepackage_odds"))
|
|
||||||
{
|
|
||||||
var_06 = "airdrop_assault_odds";
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(level.getcratefordroptype))
|
|
||||||
{
|
|
||||||
var_07 = [[ level.getcratefordroptype ]](var_06);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var_07 = maps\mp\killstreaks\_airdrop::getcratetypefordroptype(var_07);
|
|
||||||
}
|
|
||||||
|
|
||||||
thread monitordropinternal(param_00,param_01,param_02,var_06,var_07,param_05);
|
|
||||||
return var_07;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 15
|
|
||||||
monitordropinternal(param_00,param_01,param_02,param_03,param_04,param_05)
|
|
||||||
{
|
|
||||||
level endon("game_ended");
|
|
||||||
param_01 thread rocket_cleanupondeath();
|
|
||||||
var_06 = common_scripts\utility::array_contains(param_02.modules,"orbital_carepackage_trap");
|
|
||||||
var_07 = param_00 maps\mp\killstreaks\_airdrop::createairdropcrate(param_00,param_03,param_04,param_01.origin,undefined,var_06,0);
|
|
||||||
var_07.moduletrap = common_scripts\utility::array_contains(param_02.modules,"orbital_carepackage_trap");
|
|
||||||
var_07.modulehide = common_scripts\utility::array_contains(param_02.modules,"orbital_carepackage_hide");
|
|
||||||
var_07.moduleroll = common_scripts\utility::array_contains(param_02.modules,"orbital_carepackage_roll");
|
|
||||||
var_07.modulepickup = common_scripts\utility::array_contains(param_02.modules,"orbital_carepackage_fast_pickup");
|
|
||||||
var_07.angles = (0,0,0);
|
|
||||||
var_07.en_route_in_air = 1;
|
|
||||||
param_01.killcament = var_07.killcament;
|
|
||||||
if(param_05 == "orbital_carepackage_pod_plane_mp")
|
|
||||||
{
|
|
||||||
param_01.killcament.killcamstarttime = gettime();
|
|
||||||
}
|
|
||||||
|
|
||||||
var_08 = common_scripts\utility::array_contains(param_02.modules,"orbital_carepackage_drone");
|
|
||||||
var_09 = spawn("script_model",param_02.droppoint + (0,0,5));
|
|
||||||
var_09.angles = (-90,0,0);
|
|
||||||
var_09 setmodel("tag_origin");
|
|
||||||
var_09 hide();
|
|
||||||
var_09 showtoplayer(param_00);
|
|
||||||
playfxontag(common_scripts\utility::getfx("ocp_ground_marker"),var_09,"tag_origin");
|
|
||||||
var_09 thread carepackagesetupminimap(param_02.modules,param_00);
|
|
||||||
maps\mp\killstreaks\_orbital_util::adddropmarker(var_09);
|
|
||||||
if(var_08)
|
|
||||||
{
|
|
||||||
param_00 thread playermonitorfordronedelivery(param_01,param_02,var_09,var_07);
|
|
||||||
}
|
|
||||||
|
|
||||||
var_07 linkto(param_01,"tag_origin",(0,0,0),(-90,0,0));
|
|
||||||
param_01 waittill("death",var_0A,var_0B,var_0C);
|
|
||||||
if(isdefined(param_01) && !var_08 && param_01.origin[2] > param_02.droppoint[2] && distancesquared(param_01.origin,param_02.droppoint) > 22500)
|
|
||||||
{
|
|
||||||
if(param_02.givebackcarepackage)
|
|
||||||
{
|
|
||||||
if(isdefined(level.ishorde) && level.ishorde)
|
|
||||||
{
|
|
||||||
var_0D = [[ level.hordegetoutsideposition ]]();
|
|
||||||
firepod(level.ocp_weap_name,self,var_0D,"horde_support_drop",param_02.modules,0,undefined,undefined,1);
|
|
||||||
}
|
|
||||||
else if(isdefined(param_00))
|
|
||||||
{
|
|
||||||
param_00 playergivebackcarepackage(param_02);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
level thread cleanupcarepackage(param_02,var_07,var_09);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var_08 && allowdronedelivery(param_00) && isdefined(param_02.drone))
|
|
||||||
{
|
|
||||||
param_02.drone show();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
earthquake(0.4,1,param_02.droppoint,800);
|
|
||||||
playrumbleonposition("artillery_rumble",param_02.droppoint);
|
|
||||||
}
|
|
||||||
|
|
||||||
killfxontag(common_scripts\utility::getfx("ocp_ground_marker"),var_09,"tag_origin");
|
|
||||||
param_02.alive = 0;
|
|
||||||
if(var_08 && allowdronedelivery(param_00) && isdefined(param_02.drone))
|
|
||||||
{
|
|
||||||
param_02.drone waittill("delivered");
|
|
||||||
var_07 setcontents(var_07.oldcontents);
|
|
||||||
var_07.oldcontents = undefined;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_09 thread carepackagecleanup(var_07);
|
|
||||||
var_07 clonebrushmodeltoscriptmodel(level.airdropcratecollision);
|
|
||||||
var_07.droppingtoground = 1;
|
|
||||||
var_07 unlink();
|
|
||||||
var_07 physicslaunchserver((0,0,0));
|
|
||||||
var_07 thread cratedetectstopphysics();
|
|
||||||
var_07 thread orbitalphysicswaiter(param_03,param_04,param_00);
|
|
||||||
level thread removepod(var_07,param_02);
|
|
||||||
var_07.en_route_in_air = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 16
|
|
||||||
crateimpactcleanup(param_00)
|
|
||||||
{
|
|
||||||
if(!isdefined(param_00))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_01 = getnodesinradiussorted(self.origin,300,0,300);
|
|
||||||
foreach(var_03 in level.characters)
|
|
||||||
{
|
|
||||||
if(!isalive(var_03))
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isalliedsentient(var_03,param_00))
|
|
||||||
{
|
|
||||||
if(var_03 istouching(self))
|
|
||||||
{
|
|
||||||
foreach(var_05 in var_01)
|
|
||||||
{
|
|
||||||
if(distancesquared(var_05.origin,self.origin) > 10000)
|
|
||||||
{
|
|
||||||
var_03 setorigin(var_05.origin,1);
|
|
||||||
var_01 = common_scripts\utility::array_remove(var_01,var_05);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 17
|
|
||||||
cratedetectstopphysics()
|
|
||||||
{
|
|
||||||
self endon("physics_finished");
|
|
||||||
self endon("death");
|
|
||||||
var_00 = 4;
|
|
||||||
var_01 = var_00 / 0.05;
|
|
||||||
var_02 = 25;
|
|
||||||
var_03 = 0;
|
|
||||||
var_04 = self.origin;
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
wait 0.05;
|
|
||||||
var_05 = distancesquared(var_04,self.origin);
|
|
||||||
if(var_05 < var_02)
|
|
||||||
{
|
|
||||||
var_03++;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var_03 = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_04 = self.origin;
|
|
||||||
if(var_03 >= var_01)
|
|
||||||
{
|
|
||||||
self physicsstop();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 18
|
|
||||||
playergivebackcarepackage(param_00)
|
|
||||||
{
|
|
||||||
var_01 = maps\mp\killstreaks\_killstreaks::getstreakcost("orbital_carepackage");
|
|
||||||
var_02 = maps\mp\killstreaks\_killstreaks::getnextkillstreakslotindex("orbital_carepackage",0);
|
|
||||||
thread maps\mp\gametypes\_hud_message::killstreaksplashnotify("orbital_carepackage",var_01,undefined,param_00.modules,var_02);
|
|
||||||
thread maps\mp\killstreaks\_killstreaks::givekillstreak("orbital_carepackage",0,0,self,param_00.modules);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 19
|
|
||||||
cleanupcarepackage(param_00,param_01,param_02)
|
|
||||||
{
|
|
||||||
if(isdefined(param_01))
|
|
||||||
{
|
|
||||||
thread removepod(param_01,param_00);
|
|
||||||
param_01 delete();
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(param_00.drone))
|
|
||||||
{
|
|
||||||
param_00.drone maps\mp\killstreaks\_drone_carepackage::carepackagedrone_remove();
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(param_02))
|
|
||||||
{
|
|
||||||
if(isdefined(param_02.objidfriendly))
|
|
||||||
{
|
|
||||||
maps\mp\_utility::_objective_delete(param_02.objidfriendly);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(param_02.objidenemy))
|
|
||||||
{
|
|
||||||
maps\mp\_utility::_objective_delete(param_02.objidenemy);
|
|
||||||
}
|
|
||||||
|
|
||||||
killfxontag(common_scripts\utility::getfx("ocp_ground_marker"),param_02,"tag_origin");
|
|
||||||
wait 0.05;
|
|
||||||
param_02 delete();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 20
|
|
||||||
orbitalphysicswaiter(param_00,param_01,param_02)
|
|
||||||
{
|
|
||||||
self endon("death");
|
|
||||||
maps\mp\killstreaks\_airdrop::physicswaiter(param_00,param_01);
|
|
||||||
self playsound("orbital_pkg_panel");
|
|
||||||
if(isdefined(self.enemymodel))
|
|
||||||
{
|
|
||||||
self.enemymodel thread orbitalanimate();
|
|
||||||
self.enemymodel solid();
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(self.friendlymodel))
|
|
||||||
{
|
|
||||||
self.friendlymodel thread orbitalanimate();
|
|
||||||
self.friendlymodel solid();
|
|
||||||
}
|
|
||||||
|
|
||||||
thread crateimpactcleanup(param_02);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 21
|
|
||||||
orbitalanimate(param_00)
|
|
||||||
{
|
|
||||||
self endon("death");
|
|
||||||
if(!isdefined(param_00) || !param_00)
|
|
||||||
{
|
|
||||||
wait(0.75);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(param_00) && param_00)
|
|
||||||
{
|
|
||||||
self scriptmodelplayanim("orbital_care_package_open_loop");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
self scriptmodelplayanim("orbital_care_package_open");
|
|
||||||
}
|
|
||||||
|
|
||||||
playfxontag(common_scripts\utility::getfx("ocp_glow"),self,"TAG_ORIGIN");
|
|
||||||
if(!isdefined(param_00) || !param_00)
|
|
||||||
{
|
|
||||||
wait 0.05;
|
|
||||||
playfxontag(common_scripts\utility::getfx("vfx_ocp_steam2"),self,"TAG_FX_PANEL_F");
|
|
||||||
playfxontag(common_scripts\utility::getfx("vfx_ocp_steam2"),self,"TAG_FX_PANEL_K");
|
|
||||||
wait 0.05;
|
|
||||||
playfxontag(common_scripts\utility::getfx("vfx_ocp_steam"),self,"TAG_FX_PANEL_FR");
|
|
||||||
playfxontag(common_scripts\utility::getfx("vfx_ocp_steam"),self,"TAG_FX_PANEL_KL");
|
|
||||||
wait 0.05;
|
|
||||||
playfxontag(common_scripts\utility::getfx("vfx_ocp_steam"),self,"TAG_FX_PANEL_FL");
|
|
||||||
playfxontag(common_scripts\utility::getfx("vfx_ocp_steam"),self,"TAG_FX_PANEL_KR");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 22
|
|
||||||
delaycleanupdroppod(param_00)
|
|
||||||
{
|
|
||||||
wait(5);
|
|
||||||
param_00 delete();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 23
|
|
||||||
removepod(param_00,param_01)
|
|
||||||
{
|
|
||||||
param_00 waittill("death");
|
|
||||||
wait(15);
|
|
||||||
for(var_02 = 0;var_02 < level._orbital_care_pod.size;var_02++)
|
|
||||||
{
|
|
||||||
if(isdefined(level._orbital_care_pod[var_02]) && level._orbital_care_pod[var_02] == param_01)
|
|
||||||
{
|
|
||||||
if(level._orbital_care_pod[var_02].alive == 0)
|
|
||||||
{
|
|
||||||
level._orbital_care_pod[var_02] = undefined;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(param_01))
|
|
||||||
{
|
|
||||||
param_01 = undefined;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 24
|
|
||||||
carepackagesetupminimap(param_00,param_01)
|
|
||||||
{
|
|
||||||
self endon("death");
|
|
||||||
if(common_scripts\utility::array_contains(param_00,"orbital_carepackage_hide"))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_02 = maps\mp\gametypes\_gameobjects::getnextobjid();
|
|
||||||
objective_add(var_02,"invisible",(0,0,0));
|
|
||||||
objective_position(var_02,self.origin);
|
|
||||||
objective_state(var_02,"active");
|
|
||||||
var_03 = "compass_objpoint_ammo_friendly";
|
|
||||||
objective_icon(var_02,var_03);
|
|
||||||
if(!level.teambased)
|
|
||||||
{
|
|
||||||
objective_playerteam(var_02,param_01 getentitynumber());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
objective_team(var_02,param_01.team);
|
|
||||||
}
|
|
||||||
|
|
||||||
self.objidfriendly = var_02;
|
|
||||||
if(!isdefined(level.ishorde) && level.ishorde)
|
|
||||||
{
|
|
||||||
var_02 = maps\mp\gametypes\_gameobjects::getnextobjid();
|
|
||||||
objective_add(var_02,"invisible",(0,0,0));
|
|
||||||
objective_position(var_02,self.origin);
|
|
||||||
objective_state(var_02,"active");
|
|
||||||
objective_icon(var_02,"compass_objpoint_ammo_enemy");
|
|
||||||
if(!level.teambased)
|
|
||||||
{
|
|
||||||
objective_playerenemyteam(var_02,param_01 getentitynumber());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
objective_team(var_02,level.otherteam[param_01.team]);
|
|
||||||
}
|
|
||||||
|
|
||||||
self.objidenemy = var_02;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(common_scripts\utility::array_contains(param_00,"orbital_carepackage_drone"))
|
|
||||||
{
|
|
||||||
self waittill("linkedToDrone");
|
|
||||||
objective_onentity(self.objidfriendly,self);
|
|
||||||
if(isdefined(self.objidenemy))
|
|
||||||
{
|
|
||||||
objective_onentity(self.objidenemy,self);
|
|
||||||
self show();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 25
|
|
||||||
carepackagecleanup(param_00)
|
|
||||||
{
|
|
||||||
param_00 common_scripts\utility::waittill_any("physics_finished","death");
|
|
||||||
if(isdefined(self.objidfriendly))
|
|
||||||
{
|
|
||||||
maps\mp\_utility::_objective_delete(self.objidfriendly);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(self.objidenemy))
|
|
||||||
{
|
|
||||||
maps\mp\_utility::_objective_delete(self.objidenemy);
|
|
||||||
}
|
|
||||||
|
|
||||||
killfxontag(common_scripts\utility::getfx("ocp_glow"),self,"TAG_ORIGIN");
|
|
||||||
if(isdefined(level.ishorde) && level.ishorde)
|
|
||||||
{
|
|
||||||
param_00 notify("drop_pod_cleared");
|
|
||||||
}
|
|
||||||
|
|
||||||
wait 0.05;
|
|
||||||
self delete();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 26
|
|
||||||
setupdamagecallback(param_00)
|
|
||||||
{
|
|
||||||
param_00.health = 500;
|
|
||||||
param_00.maxhealth = param_00.health;
|
|
||||||
param_00.readytodie = 0;
|
|
||||||
setupdamagecallbackinternal(param_00.friendlymodel);
|
|
||||||
setupdamagecallbackinternal(param_00.enemymodel);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 27
|
|
||||||
setupdamagecallbackinternal(param_00)
|
|
||||||
{
|
|
||||||
param_00 thread maps\mp\gametypes\_damage::setentitydamagecallback(9999,undefined,undefined,::cratehandledamagecallback,1);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 28
|
|
||||||
disabledamagecallback(param_00)
|
|
||||||
{
|
|
||||||
disabledamagecallbackinternal(param_00.friendlymodel);
|
|
||||||
disabledamagecallbackinternal(param_00.enemymodel);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 29
|
|
||||||
disabledamagecallbackinternal(param_00)
|
|
||||||
{
|
|
||||||
param_00.damagecallback = undefined;
|
|
||||||
param_00 setcandamage(0);
|
|
||||||
param_00 setdamagecallbackon(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 30
|
|
||||||
cratehandledamagecallback(param_00,param_01,param_02,param_03)
|
|
||||||
{
|
|
||||||
var_04 = self;
|
|
||||||
if(isdefined(self.parentcrate))
|
|
||||||
{
|
|
||||||
var_04 = self.parentcrate;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_05 = maps\mp\gametypes\_damage::modifydamage(param_00,param_01,param_02,param_03);
|
|
||||||
var_04.health = var_04.health - var_05;
|
|
||||||
if(var_04.health <= 0)
|
|
||||||
{
|
|
||||||
disabledamagecallback(var_04);
|
|
||||||
var_04 notify("disabled");
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 31
|
|
||||||
playermonitorfordronedelivery(param_00,param_01,param_02,param_03)
|
|
||||||
{
|
|
||||||
self endon("disconenct");
|
|
||||||
self endon("joined_team");
|
|
||||||
self endon("joined_spectators");
|
|
||||||
var_04 = 576;
|
|
||||||
var_05 = 250000;
|
|
||||||
var_06 = param_01.droppoint;
|
|
||||||
var_07 = param_00.origin;
|
|
||||||
var_08 = distancesquared(var_07,var_06);
|
|
||||||
setupdamagecallback(param_03);
|
|
||||||
var_09 = param_01.drone;
|
|
||||||
var_09 thread carepackagedronewatchcratedeath(param_03);
|
|
||||||
param_03.oldcontents = param_03 setcontents(0);
|
|
||||||
param_03.friendlymodel solid();
|
|
||||||
param_03.enemymodel solid();
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
if(!isdefined(param_00))
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_07 = param_00.origin;
|
|
||||||
var_08 = distancesquared(var_07,var_06);
|
|
||||||
if(var_08 <= var_05)
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
wait 0.05;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var_08 > var_05)
|
|
||||||
{
|
|
||||||
if(param_01.givebackcarepackage && allowdronedelivery(self))
|
|
||||||
{
|
|
||||||
playergivebackcarepackage(param_01);
|
|
||||||
}
|
|
||||||
|
|
||||||
level thread cleanupcarepackage(param_01,param_03,param_02);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!isdefined(self))
|
|
||||||
{
|
|
||||||
level thread cleanupcarepackage(param_01,param_03,param_02);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!allowdronedelivery(self))
|
|
||||||
{
|
|
||||||
level thread cleanupcarepackage(param_03,undefined,undefined);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_09 thread carepackagedronewatchdeath();
|
|
||||||
var_09 endon("death");
|
|
||||||
var_09 vehicle_teleport(param_03.origin,param_03.angles,0,0);
|
|
||||||
param_03 linkto(var_09,"tag_origin",(0,0,0),(0,0,0));
|
|
||||||
param_03.friendlymodel scriptmodelplayanim("orbital_care_package_fan_spin","nothing");
|
|
||||||
param_03.enemymodel scriptmodelplayanim("orbital_care_package_fan_spin","nothing");
|
|
||||||
maps\mp\killstreaks\_drone_carepackage::setupcarepackagedrone(var_09,1);
|
|
||||||
var_09.crate = param_03;
|
|
||||||
if(isdefined(param_00))
|
|
||||||
{
|
|
||||||
var_07 = param_00.origin;
|
|
||||||
param_00 notify("death");
|
|
||||||
param_00 delete();
|
|
||||||
}
|
|
||||||
|
|
||||||
playsoundatpos(var_07,"orbital_pkg_pod_midair_exp");
|
|
||||||
playfx(common_scripts\utility::getfx("ocp_midair"),var_07,getdvarvector("scr_ocp_forward",(0,0,-1)));
|
|
||||||
var_09 thread drone_thrusterfx();
|
|
||||||
var_0A = param_01.droppoint + (0,0,35);
|
|
||||||
var_09 setvehgoalpos(var_0A,1);
|
|
||||||
var_09 vehicle_setspeedimmediate(getdvarfloat("scr_ocp_dropspeed",30),getdvarfloat("scr_ocp_dropa",20),getdvarfloat("scr_ocp_dropd",1));
|
|
||||||
var_09 sethoverparams(30,5,5);
|
|
||||||
var_09 setmaxpitchroll(15,15);
|
|
||||||
while(distancesquared(var_09.origin,var_0A) > var_04 && param_03.health > 0)
|
|
||||||
{
|
|
||||||
wait 0.05;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(param_03.health > 0)
|
|
||||||
{
|
|
||||||
wait(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(param_03.health > 0)
|
|
||||||
{
|
|
||||||
param_02 linkto(var_09,"tag_origin");
|
|
||||||
param_02 notify("linkedToDrone");
|
|
||||||
var_09 thread maps\mp\killstreaks\_drone_carepackage::carepackagedrone_deleteonactivate();
|
|
||||||
var_09 carepackagedronefindowner();
|
|
||||||
}
|
|
||||||
|
|
||||||
disabledamagecallback(param_03);
|
|
||||||
param_03 playsoundonmovingent("orbital_pkg_drone_jets_off");
|
|
||||||
if(isdefined(var_09))
|
|
||||||
{
|
|
||||||
var_09 drone_stopthrustereffects();
|
|
||||||
}
|
|
||||||
|
|
||||||
param_03.friendlymodel scriptmodelclearanim("orbital_care_package_fan_spin","nothing");
|
|
||||||
param_03.enemymodel scriptmodelclearanim("orbital_care_package_fan_spin","nothing");
|
|
||||||
wait 0.05;
|
|
||||||
if(isdefined(var_09))
|
|
||||||
{
|
|
||||||
var_09 maps\mp\killstreaks\_drone_carepackage::carepackagedrone_delete();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 32
|
|
||||||
carepackagedronewatchdeath()
|
|
||||||
{
|
|
||||||
self endon("delivered");
|
|
||||||
self waittill("death");
|
|
||||||
self notify("delivered");
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 33
|
|
||||||
carepackagedronewatchcratedeath(param_00)
|
|
||||||
{
|
|
||||||
self endon("delivered");
|
|
||||||
param_00 waittill("disabled");
|
|
||||||
self notify("delivered");
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 34
|
|
||||||
carepackagedronefindowner()
|
|
||||||
{
|
|
||||||
var_00 = self.owner;
|
|
||||||
var_00 endon("disconnect");
|
|
||||||
self endon("death");
|
|
||||||
self endon("delivered");
|
|
||||||
var_01 = 22500;
|
|
||||||
var_02 = 1;
|
|
||||||
var_03 = gettime();
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
var_04 = maps\mp\_utility::isreallyalive(var_00);
|
|
||||||
if(!var_04)
|
|
||||||
{
|
|
||||||
var_02 = 1;
|
|
||||||
wait 0.05;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var_03 < gettime() || var_02)
|
|
||||||
{
|
|
||||||
var_02 = 0;
|
|
||||||
self setdronegoalpos(var_00,(0,-100,15));
|
|
||||||
var_03 = gettime() + 1000;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_05 = distancesquared(self.origin,var_00.origin + (0,0,15));
|
|
||||||
if(var_05 < var_01)
|
|
||||||
{
|
|
||||||
wait(getdvarfloat("scr_ocp_waitDeliver",1));
|
|
||||||
self notify("delivered");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
wait 0.05;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 35
|
|
||||||
drone_thrusterfx()
|
|
||||||
{
|
|
||||||
self endon("death");
|
|
||||||
playfxontag(common_scripts\utility::getfx("ocp_thruster_small"),self,"j_thruster_fl");
|
|
||||||
playfxontag(common_scripts\utility::getfx("ocp_thruster_small"),self,"j_thruster_fr");
|
|
||||||
playfxontag(common_scripts\utility::getfx("ocp_thruster_small"),self,"j_thruster_kl");
|
|
||||||
playfxontag(common_scripts\utility::getfx("ocp_thruster_small"),self,"j_thruster_kr");
|
|
||||||
wait 0.05;
|
|
||||||
wait 0.05;
|
|
||||||
if(isdefined(self))
|
|
||||||
{
|
|
||||||
playfxontag(common_scripts\utility::getfx("ocp_exhaust"),self,"tag_fx");
|
|
||||||
}
|
|
||||||
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
level waittill("connected",var_00);
|
|
||||||
thread drone_thrusterplayerconnected(var_00);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 36
|
|
||||||
drone_thrusterplayerconnected(param_00)
|
|
||||||
{
|
|
||||||
param_00 endon("disconnect");
|
|
||||||
param_00 waittill("spawned_player");
|
|
||||||
if(isdefined(param_00) && isdefined(self))
|
|
||||||
{
|
|
||||||
drone_thrusterplayer(param_00);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 37
|
|
||||||
drone_thrusterplayer(param_00)
|
|
||||||
{
|
|
||||||
param_00 endon("disconnect");
|
|
||||||
self endon("death");
|
|
||||||
playfxontagforclients(common_scripts\utility::getfx("ocp_thruster_small"),self,"j_thruster_fl",param_00);
|
|
||||||
playfxontagforclients(common_scripts\utility::getfx("ocp_thruster_small"),self,"j_thruster_fr",param_00);
|
|
||||||
playfxontagforclients(common_scripts\utility::getfx("ocp_thruster_small"),self,"j_thruster_kl",param_00);
|
|
||||||
playfxontagforclients(common_scripts\utility::getfx("ocp_thruster_small"),self,"j_thruster_kr",param_00);
|
|
||||||
wait 0.05;
|
|
||||||
wait 0.05;
|
|
||||||
if(isdefined(self))
|
|
||||||
{
|
|
||||||
playfxontagforclients(common_scripts\utility::getfx("ocp_exhaust"),self,"tag_fx",param_00);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 38
|
|
||||||
drone_stopthrustereffects()
|
|
||||||
{
|
|
||||||
killfxontag(common_scripts\utility::getfx("ocp_thruster_small"),self,"j_thruster_fl");
|
|
||||||
killfxontag(common_scripts\utility::getfx("ocp_thruster_small"),self,"j_thruster_fr");
|
|
||||||
killfxontag(common_scripts\utility::getfx("ocp_thruster_small"),self,"j_thruster_kl");
|
|
||||||
killfxontag(common_scripts\utility::getfx("ocp_thruster_small"),self,"j_thruster_kr");
|
|
||||||
wait 0.05;
|
|
||||||
wait 0.05;
|
|
||||||
if(isdefined(self))
|
|
||||||
{
|
|
||||||
killfxontag(common_scripts\utility::getfx("ocp_exhaust"),self,"tag_fx");
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,833 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: maps/mp/killstreaks/_orbital_util.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 37
|
|
||||||
* Decompile Time: 574 ms
|
|
||||||
* Timestamp: 10/27/2023 2:09:50 AM
|
|
||||||
*******************************************************************/
|
|
||||||
|
|
||||||
//Function Number: 1
|
|
||||||
initstart()
|
|
||||||
{
|
|
||||||
level.orbital_util_remote_traces_frame = 0;
|
|
||||||
level.orbital_util_remote_traces = 5;
|
|
||||||
level.orbital_util_capsule_traces_frame = 0;
|
|
||||||
level.orbital_util_capsule_traces = 5;
|
|
||||||
level.orbital_util_last_trace = 0;
|
|
||||||
level thread deletemapremotemissileclip();
|
|
||||||
level.orbital_util_covered_volumes = getentarray("orbital_node_covered","targetname");
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 2
|
|
||||||
deletemapremotemissileclip()
|
|
||||||
{
|
|
||||||
var_00 = getentarray("carepackage_clip","targetname");
|
|
||||||
foreach(var_02 in var_00)
|
|
||||||
{
|
|
||||||
var_02 delete();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 3
|
|
||||||
playergetoutsidenode(param_00)
|
|
||||||
{
|
|
||||||
if(!isdefined(param_00))
|
|
||||||
{
|
|
||||||
param_00 = "goliath";
|
|
||||||
}
|
|
||||||
|
|
||||||
var_01 = playergetnodelookingat(param_00);
|
|
||||||
if(!isdefined(var_01))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
self.lastnodelookingattrace = undefined;
|
|
||||||
return var_01;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 4
|
|
||||||
playergetorbitalstartpos(param_00,param_01)
|
|
||||||
{
|
|
||||||
if(!isdefined(param_01))
|
|
||||||
{
|
|
||||||
param_01 = "goliath";
|
|
||||||
}
|
|
||||||
|
|
||||||
var_02 = maps\mp\killstreaks\_aerial_utility::getentorstructarray("remoteMissileSpawn","targetname");
|
|
||||||
var_03 = nodegetremotemissileorigin(param_00,var_02,param_01);
|
|
||||||
if(isdefined(var_03))
|
|
||||||
{
|
|
||||||
return var_03;
|
|
||||||
}
|
|
||||||
|
|
||||||
return nodegetremotemissileorgfromabove(param_00);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 5
|
|
||||||
getstartpositionabove(param_00)
|
|
||||||
{
|
|
||||||
return param_00.origin + (0,0,24000);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 6
|
|
||||||
adddropmarker(param_00,param_01)
|
|
||||||
{
|
|
||||||
if(!isdefined(param_01))
|
|
||||||
{
|
|
||||||
param_01 = "goliath";
|
|
||||||
}
|
|
||||||
|
|
||||||
param_00.orbitaltype = param_01;
|
|
||||||
level.orbitaldropmarkers[level.orbitaldropmarkers.size] = param_00;
|
|
||||||
thread _adddropmarkerinternal(param_00);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 7
|
|
||||||
playerplayinvalidpositioneffect(param_00)
|
|
||||||
{
|
|
||||||
var_01 = self.lastnodelookingattrace;
|
|
||||||
var_02 = self.lastnearestnode;
|
|
||||||
if(!isdefined(var_01))
|
|
||||||
{
|
|
||||||
var_03 = anglestoforward(self getplayerangles());
|
|
||||||
var_04 = self geteye();
|
|
||||||
var_05 = var_04 + var_03 * 500;
|
|
||||||
var_01 = bullettrace(var_04,var_05,0,self,1,0,0,0,0);
|
|
||||||
}
|
|
||||||
|
|
||||||
self.lastnodelookingattrace = undefined;
|
|
||||||
self.lastnearestnode = undefined;
|
|
||||||
var_06 = var_01["position"];
|
|
||||||
if(isdefined(var_02))
|
|
||||||
{
|
|
||||||
var_07 = var_01["normal"];
|
|
||||||
var_08 = var_07[2] > 0.8;
|
|
||||||
if(!var_08)
|
|
||||||
{
|
|
||||||
var_06 = var_02.origin;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var_09 = spawn("script_model",var_06 + (0,0,5));
|
|
||||||
var_09.angles = (-90,0,0);
|
|
||||||
var_09 setmodel("tag_origin");
|
|
||||||
var_09 hide();
|
|
||||||
var_09 showtoplayer(self);
|
|
||||||
playfxontag(param_00,var_09,"tag_origin");
|
|
||||||
wait(5);
|
|
||||||
var_09 delete();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 8
|
|
||||||
playergetnodelookingat(param_00)
|
|
||||||
{
|
|
||||||
var_01 = anglestoforward(self getplayerangles());
|
|
||||||
var_02 = self geteye();
|
|
||||||
var_03 = var_02 + var_01 * 500;
|
|
||||||
var_04 = bullettrace(var_02,var_03,0,self,1,0,0,0,0);
|
|
||||||
self.lastnodelookingattrace = var_04;
|
|
||||||
var_05 = var_04["fraction"] == 1;
|
|
||||||
if(var_05)
|
|
||||||
{
|
|
||||||
return playergetnearestnode(undefined,param_00);
|
|
||||||
}
|
|
||||||
|
|
||||||
var_06 = var_04["position"];
|
|
||||||
var_07 = getnodesinradius(var_06,128,0,60);
|
|
||||||
var_08 = var_07.size == 0;
|
|
||||||
if(var_08)
|
|
||||||
{
|
|
||||||
return playergetnearestnode(undefined,param_00);
|
|
||||||
}
|
|
||||||
|
|
||||||
var_09 = var_04["normal"];
|
|
||||||
var_0A = var_09[2] > 0.8;
|
|
||||||
if(!var_0A)
|
|
||||||
{
|
|
||||||
return playergetnearestnode(var_06,param_00);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(orbitalbadlandingcheck(var_06))
|
|
||||||
{
|
|
||||||
return playergetnearestnode(var_06,param_00);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(param_00 == "goliath")
|
|
||||||
{
|
|
||||||
if(goliathbadlandingcheck(var_06))
|
|
||||||
{
|
|
||||||
return playergetnearestnode(var_06,param_00);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var_0B = carepackagetrace(var_06,self,param_00);
|
|
||||||
if(!var_0B)
|
|
||||||
{
|
|
||||||
return playergetnearestnode(var_06,param_00);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(groundpositionoffedge(var_06,param_00))
|
|
||||||
{
|
|
||||||
return playergetnearestnode(var_06,param_00);
|
|
||||||
}
|
|
||||||
|
|
||||||
var_0D = spawnstruct();
|
|
||||||
var_0D.origin = var_06;
|
|
||||||
var_0E = maps\mp\killstreaks\_aerial_utility::getentorstructarray("remoteMissileSpawn","targetname");
|
|
||||||
var_0F = nodegetremotemissileorigin(var_0D,var_0E,param_00);
|
|
||||||
if(!isdefined(var_0F))
|
|
||||||
{
|
|
||||||
return playergetnearestnode(var_06,param_00);
|
|
||||||
}
|
|
||||||
|
|
||||||
return var_0D;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 9
|
|
||||||
groundpositionoffedge(param_00,param_01)
|
|
||||||
{
|
|
||||||
if(param_01 == "goliath")
|
|
||||||
{
|
|
||||||
var_02 = 41;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var_02 = 26;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_03 = (var_02,0,0);
|
|
||||||
var_04 = -1 * var_03;
|
|
||||||
var_05 = (0,var_02,0);
|
|
||||||
var_06 = -1 * var_05;
|
|
||||||
var_07 = (0,0,-10);
|
|
||||||
var_08 = [var_03,var_04,var_05,var_06];
|
|
||||||
foreach(var_0A in var_08)
|
|
||||||
{
|
|
||||||
var_0B = param_00 + var_0A;
|
|
||||||
var_0C = param_00 + var_0A + var_07;
|
|
||||||
var_0D = bullettracepassed(var_0B,var_0C,0,undefined);
|
|
||||||
if(var_0D)
|
|
||||||
{
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 10
|
|
||||||
_nodefindnewremotemissileorg(param_00,param_01,param_02)
|
|
||||||
{
|
|
||||||
var_03 = nodefindremotemissleent(param_00,param_01,param_02);
|
|
||||||
if(isdefined(var_03))
|
|
||||||
{
|
|
||||||
return nodegetremotemissleentorg(param_00,param_01);
|
|
||||||
}
|
|
||||||
|
|
||||||
var_04 = nodetestfirefromabove(param_00,param_02);
|
|
||||||
if(isdefined(var_04))
|
|
||||||
{
|
|
||||||
return nodegetremotemissileorgfromabove(param_00);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 11
|
|
||||||
nodegetremotemissileorigin(param_00,param_01,param_02)
|
|
||||||
{
|
|
||||||
if(nodehasremotemissiledataset(param_00))
|
|
||||||
{
|
|
||||||
if(!nodeisremotemissilefromabove(param_00))
|
|
||||||
{
|
|
||||||
return nodegetremotemissleentorg(param_00,param_01);
|
|
||||||
}
|
|
||||||
|
|
||||||
return nodegetremotemissileorgfromabove(param_00);
|
|
||||||
}
|
|
||||||
|
|
||||||
return _nodefindnewremotemissileorg(param_00,param_01,param_02);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 12
|
|
||||||
nodeispathnode(param_00)
|
|
||||||
{
|
|
||||||
return isdefined(param_00.type);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 13
|
|
||||||
nodeisremotemissilefromabove(param_00)
|
|
||||||
{
|
|
||||||
return (nodeispathnode(param_00) && nodehasremotemissileset(param_00) && nodegetremotemissilename(param_00) == "up") || isdefined(param_00.bestmissilespawnabove);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 14
|
|
||||||
nodehasremotemissiledataset(param_00)
|
|
||||||
{
|
|
||||||
return (nodeispathnode(param_00) && nodehasremotemissileset(param_00)) || isdefined(param_00.bestmissilespawnabove) || isdefined(param_00.bestmissilespawn);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 15
|
|
||||||
nodegetremotemissileorgfromabove(param_00)
|
|
||||||
{
|
|
||||||
return getstartpositionabove(param_00);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 16
|
|
||||||
nodetestfirefromabove(param_00,param_01)
|
|
||||||
{
|
|
||||||
var_02 = getstartpositionabove(param_00);
|
|
||||||
var_03 = remotemissileenttracetooriginpassedwrapper(var_02,param_00.origin,param_01);
|
|
||||||
if(var_03)
|
|
||||||
{
|
|
||||||
param_00.bestmissilespawnabove = var_02;
|
|
||||||
return var_02;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 17
|
|
||||||
nodegetremotemissleentorg(param_00,param_01)
|
|
||||||
{
|
|
||||||
var_02 = undefined;
|
|
||||||
if(nodeispathnode(param_00) && nodehasremotemissileset(param_00))
|
|
||||||
{
|
|
||||||
var_03 = nodegetremotemissilename(param_00);
|
|
||||||
foreach(var_05 in param_01)
|
|
||||||
{
|
|
||||||
if(isdefined(var_05.script_noteworthy) && var_05.script_noteworthy == var_03)
|
|
||||||
{
|
|
||||||
var_02 = var_05;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(isdefined(param_00.bestmissilespawn))
|
|
||||||
{
|
|
||||||
var_02 = param_00.bestmissilespawn;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_07 = vectornormalize(var_02.origin - param_00.origin);
|
|
||||||
return param_00.origin + var_07 * 24000;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 18
|
|
||||||
nodefindremotemissleent(param_00,param_01,param_02)
|
|
||||||
{
|
|
||||||
param_01 = sortbydistance(param_01,param_00.origin);
|
|
||||||
foreach(var_04 in param_01)
|
|
||||||
{
|
|
||||||
var_05 = remotemissileenttracetooriginpassedwrapper(var_04.origin,param_00.origin,param_02);
|
|
||||||
if(var_05)
|
|
||||||
{
|
|
||||||
param_00.bestmissilespawn = var_04;
|
|
||||||
return var_04;
|
|
||||||
}
|
|
||||||
|
|
||||||
wait 0.05;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 19
|
|
||||||
remotemissileenttracetooriginpassedwrapper(param_00,param_01,param_02)
|
|
||||||
{
|
|
||||||
if(level.orbital_util_remote_traces_frame != gettime())
|
|
||||||
{
|
|
||||||
level.orbital_util_remote_traces_frame = gettime();
|
|
||||||
level.orbital_util_remote_traces = 5;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(level.orbital_util_remote_traces <= 0)
|
|
||||||
{
|
|
||||||
if(level.orbital_util_last_trace != gettime())
|
|
||||||
{
|
|
||||||
wait 0.05;
|
|
||||||
level.orbital_util_last_trace = gettime();
|
|
||||||
}
|
|
||||||
|
|
||||||
level.orbital_util_remote_traces = 5;
|
|
||||||
}
|
|
||||||
|
|
||||||
level.orbital_util_remote_traces--;
|
|
||||||
var_03 = 26;
|
|
||||||
if(param_02 == "goliath")
|
|
||||||
{
|
|
||||||
var_03 = 41;
|
|
||||||
}
|
|
||||||
|
|
||||||
return remotemissileenttracetooriginpassed(param_00,param_01,var_03,1);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 20
|
|
||||||
nodecanhitground(param_00,param_01)
|
|
||||||
{
|
|
||||||
if(orbitalbadlandingcheck(param_00.origin))
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(param_01) && param_01 == "goliath")
|
|
||||||
{
|
|
||||||
if(goliathbadlandingcheck(param_00.origin))
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(nodehasremotemissileset(param_00))
|
|
||||||
{
|
|
||||||
return nodegetremotemissilename(param_00) != "none";
|
|
||||||
}
|
|
||||||
|
|
||||||
return nodeexposedtosky(param_00,1);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 21
|
|
||||||
carepackagetrace(param_00,param_01,param_02)
|
|
||||||
{
|
|
||||||
var_03 = 100;
|
|
||||||
if(param_02 == "goliath")
|
|
||||||
{
|
|
||||||
var_04 = 41;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var_04 = 26;
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach(var_06 in level.orbitaldropmarkers)
|
|
||||||
{
|
|
||||||
var_07 = var_04;
|
|
||||||
if(var_06.orbitaltype == "goliath")
|
|
||||||
{
|
|
||||||
var_07 = var_07 + 41;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var_07 = var_07 + 26;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_08 = var_07 * var_07;
|
|
||||||
var_09 = distance2dsquared(var_06.origin,param_00);
|
|
||||||
if(var_09 < var_08)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(level.orbital_util_capsule_traces_frame != gettime())
|
|
||||||
{
|
|
||||||
level.orbital_util_capsule_traces_frame = gettime();
|
|
||||||
level.orbital_util_capsule_traces = 5;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(level.orbital_util_capsule_traces <= 0)
|
|
||||||
{
|
|
||||||
if(level.orbital_util_last_trace != gettime())
|
|
||||||
{
|
|
||||||
wait 0.05;
|
|
||||||
level.orbital_util_last_trace = gettime();
|
|
||||||
}
|
|
||||||
|
|
||||||
level.orbital_util_capsule_traces = 5;
|
|
||||||
}
|
|
||||||
|
|
||||||
level.orbital_util_capsule_traces--;
|
|
||||||
return capsuletracepassed(param_00 + (0,0,6),var_04,var_04 * 2,param_01,0);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 22
|
|
||||||
playergetnearestnode(param_00,param_01)
|
|
||||||
{
|
|
||||||
if(!isdefined(param_00))
|
|
||||||
{
|
|
||||||
var_02 = 300;
|
|
||||||
var_03 = self geteye();
|
|
||||||
var_04 = anglestoforward(self.angles);
|
|
||||||
var_05 = var_03 + var_04 * var_02;
|
|
||||||
var_06 = bullettrace(var_03,var_05,0,self);
|
|
||||||
param_00 = var_05;
|
|
||||||
if(var_06["fraction"] < 1)
|
|
||||||
{
|
|
||||||
param_00 = var_03 + var_04 * var_02 * var_06["fraction"];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var_07 = getclosestnodeinsight(param_00,1);
|
|
||||||
var_08 = isdefined(var_07);
|
|
||||||
if(var_08)
|
|
||||||
{
|
|
||||||
var_08 = nodecanhitground(var_07,param_01) && carepackagetrace(var_07.origin,self,param_01);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var_08)
|
|
||||||
{
|
|
||||||
return var_07;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_09 = spawnstruct();
|
|
||||||
var_09.maxtracesperframe = 5;
|
|
||||||
var_09.maxnodes = 20;
|
|
||||||
var_09.numtraces = 5;
|
|
||||||
playerfindnodeinfront(param_00,param_01,var_09);
|
|
||||||
var_0A = var_09.nearestnode;
|
|
||||||
if(isdefined(var_0A))
|
|
||||||
{
|
|
||||||
return var_0A;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!isdefined(var_07))
|
|
||||||
{
|
|
||||||
var_07 = playergetclosestnode(500,100,self.origin,0,1,param_01);
|
|
||||||
if(!isdefined(var_07))
|
|
||||||
{
|
|
||||||
var_07 = playergetclosestnode(500,0,self.origin,0,0,param_01);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!isdefined(var_07))
|
|
||||||
{
|
|
||||||
var_07 = self getnearestnode();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
self.lastnearestnode = var_07;
|
|
||||||
if(isdefined(var_07))
|
|
||||||
{
|
|
||||||
return playerfindaltnode(var_07,param_01);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 23
|
|
||||||
orbitalbadlandingcheck(param_00)
|
|
||||||
{
|
|
||||||
if(isdefined(level.orbital_util_covered_volumes) && level.orbital_util_covered_volumes.size > 0)
|
|
||||||
{
|
|
||||||
var_01 = 0;
|
|
||||||
foreach(var_03 in level.orbital_util_covered_volumes)
|
|
||||||
{
|
|
||||||
var_01 = ispointinvolume(param_00,var_03);
|
|
||||||
if(var_01)
|
|
||||||
{
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 24
|
|
||||||
goliathbadlandingcheck(param_00)
|
|
||||||
{
|
|
||||||
if(isdefined(level.goliath_bad_landing_volumes))
|
|
||||||
{
|
|
||||||
foreach(var_02 in level.goliath_bad_landing_volumes)
|
|
||||||
{
|
|
||||||
if(ispointinvolume(param_00,var_02))
|
|
||||||
{
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 25
|
|
||||||
playerfindnodeinfront(param_00,param_01,param_02)
|
|
||||||
{
|
|
||||||
var_03 = 500;
|
|
||||||
var_04 = 100;
|
|
||||||
var_05 = playerfindnodeinfrontinternal(param_00,var_04,var_03,param_01,param_02);
|
|
||||||
if(!isdefined(var_05) && param_02.maxnodes > 0)
|
|
||||||
{
|
|
||||||
var_04 = 0;
|
|
||||||
var_05 = playerfindnodeinfrontinternal(param_00,var_04,var_03,param_01,param_02);
|
|
||||||
}
|
|
||||||
|
|
||||||
param_02.nearestnode = var_05;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 26
|
|
||||||
playerfindnodeinfrontinternal(param_00,param_01,param_02,param_03,param_04)
|
|
||||||
{
|
|
||||||
while(param_01 < param_02 && param_04.maxnodes > 0)
|
|
||||||
{
|
|
||||||
var_05 = playergetclosestnode(param_02,param_01,param_00,1,1,param_03);
|
|
||||||
if(param_04.numtraces <= 0 && !tracedonerecently())
|
|
||||||
{
|
|
||||||
wait 0.05;
|
|
||||||
param_04.numtraces = param_04.maxtracesperframe;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(var_05))
|
|
||||||
{
|
|
||||||
param_04.numtraces--;
|
|
||||||
param_04.maxnodes--;
|
|
||||||
var_06 = self geteye();
|
|
||||||
var_07 = var_05.origin + (0,0,6);
|
|
||||||
var_08 = bullettrace(var_06,var_07,0,self);
|
|
||||||
var_09 = var_08["fraction"] == 1 && carepackagetrace(var_05.origin,self,param_03);
|
|
||||||
if(var_09)
|
|
||||||
{
|
|
||||||
return var_05;
|
|
||||||
}
|
|
||||||
|
|
||||||
param_01 = distance(param_00,var_05.origin) + 1;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
param_01 = param_02 + 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 27
|
|
||||||
playerfindaltnode(param_00,param_01)
|
|
||||||
{
|
|
||||||
var_02 = checknodestart(param_00,self,param_01);
|
|
||||||
if(isdefined(var_02))
|
|
||||||
{
|
|
||||||
if(orbitalbadlandingcheck(var_02.origin))
|
|
||||||
{
|
|
||||||
return undefined;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(param_01 == "goliath")
|
|
||||||
{
|
|
||||||
if(goliathbadlandingcheck(var_02.origin))
|
|
||||||
{
|
|
||||||
return undefined;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return var_02;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 28
|
|
||||||
tracedonerecently()
|
|
||||||
{
|
|
||||||
return level.orbital_util_last_trace == gettime();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 29
|
|
||||||
checknodestart(param_00,param_01,param_02)
|
|
||||||
{
|
|
||||||
var_03 = 250000;
|
|
||||||
var_04 = 20;
|
|
||||||
param_00.linkdistance = 0;
|
|
||||||
param_00.nodechecked = 1;
|
|
||||||
var_05 = spawnstruct();
|
|
||||||
var_05.nodestocheck = [];
|
|
||||||
var_05.nodeschecked = [];
|
|
||||||
var_05.nodeschecked["" + param_00 getnodenumber()] = param_00;
|
|
||||||
var_05.nextnodes = getlinkednodes(param_00,1);
|
|
||||||
addnodestobechecked(var_05,1,param_00,var_03,param_01,param_02);
|
|
||||||
var_06 = 0;
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
var_07 = getnextnode(var_05);
|
|
||||||
if(isdefined(var_07))
|
|
||||||
{
|
|
||||||
var_06++;
|
|
||||||
if(!carepackagetrace(var_07.origin,param_01,param_02))
|
|
||||||
{
|
|
||||||
var_07.nodechecked = 1;
|
|
||||||
var_05.nodestocheck["" + var_07 getnodenumber()] = undefined;
|
|
||||||
var_05.nodeschecked["" + var_07 getnodenumber()] = var_07;
|
|
||||||
var_08 = var_07.linkdistance + 1;
|
|
||||||
if(var_08 <= 6)
|
|
||||||
{
|
|
||||||
var_05.nextnodes = getlinkednodes(var_07,1);
|
|
||||||
addnodestobechecked(var_05,var_08,var_07,var_03,param_01,param_02);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
cleanupnodefields(var_05);
|
|
||||||
return var_07;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
cleanupnodefields(var_05);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var_06 >= var_04)
|
|
||||||
{
|
|
||||||
if(!tracedonerecently())
|
|
||||||
{
|
|
||||||
wait 0.05;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_06 = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 30
|
|
||||||
cleanupnodefields(param_00)
|
|
||||||
{
|
|
||||||
foreach(var_02 in param_00.nodestocheck)
|
|
||||||
{
|
|
||||||
var_02.linkdistance = undefined;
|
|
||||||
var_02.nodechecked = undefined;
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach(var_02 in param_00.nodeschecked)
|
|
||||||
{
|
|
||||||
var_02.linkdistance = undefined;
|
|
||||||
var_02.nodechecked = undefined;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 31
|
|
||||||
getnextnode(param_00)
|
|
||||||
{
|
|
||||||
if(param_00.nodestocheck.size == 0)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_01 = undefined;
|
|
||||||
var_02 = undefined;
|
|
||||||
var_03 = getarraykeys(param_00.nodestocheck);
|
|
||||||
for(var_04 = 0;var_04 < var_03.size;var_04++)
|
|
||||||
{
|
|
||||||
var_05 = param_00.nodestocheck[var_03[var_04]];
|
|
||||||
if(!isdefined(var_01) || var_05.linkdistance < var_02)
|
|
||||||
{
|
|
||||||
var_01 = var_05;
|
|
||||||
var_02 = var_05.linkdistance;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return var_01;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 32
|
|
||||||
addnodestobechecked(param_00,param_01,param_02,param_03,param_04,param_05)
|
|
||||||
{
|
|
||||||
for(var_06 = 0;var_06 < param_00.nextnodes.size;var_06++)
|
|
||||||
{
|
|
||||||
var_07 = param_00.nextnodes[var_06];
|
|
||||||
if(!isdefined(var_07.nodechecked))
|
|
||||||
{
|
|
||||||
var_08 = nodecanhitground(var_07,param_05);
|
|
||||||
if(var_08)
|
|
||||||
{
|
|
||||||
var_09 = distancesquared(var_07.origin,param_04.origin);
|
|
||||||
var_08 = var_09 < param_03;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!var_08)
|
|
||||||
{
|
|
||||||
var_07.nodechecked = 1;
|
|
||||||
param_00.nodeschecked["" + var_07 getnodenumber()] = var_07;
|
|
||||||
}
|
|
||||||
else if(!isdefined(var_07.linkdistance))
|
|
||||||
{
|
|
||||||
var_07.linkdistance = param_01;
|
|
||||||
param_00.nodestocheck["" + var_07 getnodenumber()] = var_07;
|
|
||||||
}
|
|
||||||
else if(var_07.linkdistance > param_01)
|
|
||||||
{
|
|
||||||
var_07.linkdistance = param_01;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 33
|
|
||||||
playergetclosestnode(param_00,param_01,param_02,param_03,param_04,param_05)
|
|
||||||
{
|
|
||||||
if(!isdefined(param_00))
|
|
||||||
{
|
|
||||||
param_00 = 1500;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!isdefined(param_01))
|
|
||||||
{
|
|
||||||
param_01 = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!isdefined(param_02))
|
|
||||||
{
|
|
||||||
param_02 = self.origin;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_06 = 100;
|
|
||||||
var_07 = param_01;
|
|
||||||
var_08 = param_01 + var_06;
|
|
||||||
if(var_08 > param_00)
|
|
||||||
{
|
|
||||||
var_08 = param_00;
|
|
||||||
}
|
|
||||||
|
|
||||||
while(var_08 <= param_00 && var_07 < param_00)
|
|
||||||
{
|
|
||||||
var_09 = playergetclosestnodeinternal(var_08,var_07,param_02,param_03,param_04,param_05);
|
|
||||||
if(isdefined(var_09))
|
|
||||||
{
|
|
||||||
return var_09;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_07 = var_07 + var_06;
|
|
||||||
var_08 = var_08 + var_06;
|
|
||||||
if(var_08 > param_00)
|
|
||||||
{
|
|
||||||
var_08 = param_00;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 34
|
|
||||||
playergetclosestnodeinternal(param_00,param_01,param_02,param_03,param_04,param_05)
|
|
||||||
{
|
|
||||||
var_06 = 1;
|
|
||||||
var_07 = getnodesinradiussorted(param_02,param_00,param_01,120,"path");
|
|
||||||
for(var_08 = 0;var_08 < var_07.size;var_08++)
|
|
||||||
{
|
|
||||||
if(param_03)
|
|
||||||
{
|
|
||||||
var_06 = var_06 & nodecanhitground(var_07[var_08],param_05);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(param_04)
|
|
||||||
{
|
|
||||||
var_06 = var_06 & playerwithinfov2d(var_07[var_08].origin);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var_06)
|
|
||||||
{
|
|
||||||
return var_07[var_08];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 35
|
|
||||||
playerwithinfov2d(param_00)
|
|
||||||
{
|
|
||||||
var_01 = cos(60);
|
|
||||||
var_02 = vectornormalize((param_00[0],param_00[1],0) - (self.origin[0],self.origin[1],0));
|
|
||||||
var_03 = anglestoforward((0,self.angles[1],0));
|
|
||||||
return vectordot(var_03,var_02) >= var_01;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 36
|
|
||||||
_adddropmarkerinternal(param_00)
|
|
||||||
{
|
|
||||||
param_00 waittill("death");
|
|
||||||
level.orbitaldropmarkers = common_scripts\utility::array_remove(level.orbitaldropmarkers,param_00);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 37
|
|
||||||
nodesetremotemissilenamewrapper(param_00,param_01)
|
|
||||||
{
|
|
||||||
var_02 = getnodesinradiussorted(param_00,24,0);
|
|
||||||
if(var_02.size > 0)
|
|
||||||
{
|
|
||||||
var_03 = var_02[0];
|
|
||||||
nodesetremotemissilename(var_03,param_01);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,340 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: maps/mp/killstreaks/_rippedturret.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 20
|
|
||||||
* Decompile Time: 301 ms
|
|
||||||
* Timestamp: 10/27/2023 2:10:00 AM
|
|
||||||
*******************************************************************/
|
|
||||||
|
|
||||||
//Function Number: 1
|
|
||||||
init()
|
|
||||||
{
|
|
||||||
level.killstreakfuncs["ripped_turret"] = ::tryuserippedturret;
|
|
||||||
level.killstreakwieldweapons["turretheadmg_mp"] = "ripped_turret";
|
|
||||||
level.killstreakwieldweapons["turretheadenergy_mp"] = "ripped_turret";
|
|
||||||
level.killstreakwieldweapons["turretheadrocket_mp"] = "ripped_turret";
|
|
||||||
level thread onplayerconnect();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 2
|
|
||||||
onplayerconnect()
|
|
||||||
{
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
level waittill("connected",var_00);
|
|
||||||
level thread onplayerspawned(var_00);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 3
|
|
||||||
onplayerspawned(param_00)
|
|
||||||
{
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
param_00 waittill("killstreakUseWaiter");
|
|
||||||
level thread updateammo(param_00);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 4
|
|
||||||
updateammo(param_00)
|
|
||||||
{
|
|
||||||
param_00 setclientomnvar("ui_energy_ammo",1);
|
|
||||||
if(!isdefined(param_00.pers["rippableSentry"]))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_01 = undefined;
|
|
||||||
if(param_00 hasweapon("turretheadmg_mp"))
|
|
||||||
{
|
|
||||||
var_01 = "turretheadmg_mp";
|
|
||||||
}
|
|
||||||
else if(param_00 hasweapon("turretheadenergy_mp"))
|
|
||||||
{
|
|
||||||
var_01 = "turretheadenergy_mp";
|
|
||||||
}
|
|
||||||
else if(param_00 hasweapon("turretheadrocket_mp"))
|
|
||||||
{
|
|
||||||
var_01 = "turretheadrocket_mp";
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!isdefined(var_01))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_02 = param_00 playergetrippableammo();
|
|
||||||
if(isturretenergyweapon(var_01))
|
|
||||||
{
|
|
||||||
var_03 = getammoforturretweapontype(var_01);
|
|
||||||
var_04 = var_02 / var_03;
|
|
||||||
param_00 setclientomnvar("ui_energy_ammo",var_04);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
param_00 setweaponammoclip(var_01,var_02);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 5
|
|
||||||
tryuserippedturret(param_00,param_01)
|
|
||||||
{
|
|
||||||
var_02 = tryuserippedturretinternal(param_01);
|
|
||||||
if(var_02)
|
|
||||||
{
|
|
||||||
maps\mp\_matchdata::logkillstreakevent("ripped_turret",self.origin);
|
|
||||||
}
|
|
||||||
|
|
||||||
return var_02;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 6
|
|
||||||
tryuserippedturretinternal(param_00)
|
|
||||||
{
|
|
||||||
if(maps\mp\_utility::isusingremote())
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_01 = playersetuprecordedturrethead(param_00);
|
|
||||||
return var_01;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 7
|
|
||||||
playergiveturrethead(param_00)
|
|
||||||
{
|
|
||||||
maps\mp\killstreaks\_killstreaks::givekillstreak("ripped_turret",0,0,self,[param_00]);
|
|
||||||
if(!isdefined(self.pers["rippableSentry"]))
|
|
||||||
{
|
|
||||||
self.pers["rippableSentry"] = spawnstruct();
|
|
||||||
}
|
|
||||||
|
|
||||||
var_01 = getammoforturretweapontype(param_00);
|
|
||||||
playerrecordrippableammo(var_01);
|
|
||||||
if(!common_scripts\utility::is_player_gamepad_enabled())
|
|
||||||
{
|
|
||||||
self notify("streakUsed1");
|
|
||||||
waittillframeend;
|
|
||||||
}
|
|
||||||
|
|
||||||
self switchtoweapon(param_00);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 8
|
|
||||||
playermoduleshaverippedturret(param_00)
|
|
||||||
{
|
|
||||||
foreach(var_02 in param_00)
|
|
||||||
{
|
|
||||||
if(var_02 == "turretheadenergy_mp" || var_02 == "turretheadrocket_mp" || var_02 == "turretheadmg_mp")
|
|
||||||
{
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 9
|
|
||||||
playersetuprecordedturrethead(param_00)
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
level endon("game_ended");
|
|
||||||
var_01 = playergetrippableammo();
|
|
||||||
var_02 = param_00[0];
|
|
||||||
if(!isturretenergyweapon(var_02))
|
|
||||||
{
|
|
||||||
self setweaponammoclip(var_02,var_01);
|
|
||||||
}
|
|
||||||
|
|
||||||
self setweaponammostock(var_02,0);
|
|
||||||
thread playermonitorweaponswitch(var_02);
|
|
||||||
if(isturretenergyweapon(var_02))
|
|
||||||
{
|
|
||||||
thread playersetupturretenergybar(var_02,var_01);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
thread playertrackturretammo(var_02);
|
|
||||||
}
|
|
||||||
|
|
||||||
common_scripts\utility::waittill_any_return("death","rippable_complete","rippable_switch");
|
|
||||||
if(!isdefined(self))
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isturretenergyweapon(var_02))
|
|
||||||
{
|
|
||||||
self notifyonplayercommandremove("fire_turret_weapon","+attack");
|
|
||||||
self notifyonplayercommandremove("fire_turret_weapon","+attack_akimbo_accessible");
|
|
||||||
}
|
|
||||||
|
|
||||||
var_03 = !playerhasrippableturretinfo();
|
|
||||||
return var_03;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 10
|
|
||||||
playermonitorweaponswitch(param_00)
|
|
||||||
{
|
|
||||||
self endon("death");
|
|
||||||
self endon("disconnect");
|
|
||||||
self endon("rippable_complete");
|
|
||||||
var_01 = self getcurrentweapon();
|
|
||||||
while(var_01 == param_00 || maps\mp\_utility::isbombsiteweapon(var_01))
|
|
||||||
{
|
|
||||||
self waittill("weapon_change",var_01);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(maps\mp\_utility::iskillstreakweapon(var_01))
|
|
||||||
{
|
|
||||||
self.justswitchedtokillstreakweapon = var_01;
|
|
||||||
}
|
|
||||||
|
|
||||||
self notify("rippable_switch");
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 11
|
|
||||||
playertrackturretammo(param_00)
|
|
||||||
{
|
|
||||||
self endon("death");
|
|
||||||
self endon("disconnect");
|
|
||||||
self endon("rippable_switch");
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
var_01 = self getweaponammoclip(param_00);
|
|
||||||
playerrecordrippableammo(var_01);
|
|
||||||
if(var_01 == 0)
|
|
||||||
{
|
|
||||||
playerclearrippableturretinfo();
|
|
||||||
self notify("rippable_complete");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
wait 0.05;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 12
|
|
||||||
playerhasturretheadweapon()
|
|
||||||
{
|
|
||||||
if(playerhasrippableturretinfo())
|
|
||||||
{
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_00 = self getweaponslistprimaries();
|
|
||||||
foreach(var_02 in var_00)
|
|
||||||
{
|
|
||||||
if(var_02 == "turretheadenergy_mp" || var_02 == "turretheadrocket_mp" || var_02 == "turretheadmg_mp")
|
|
||||||
{
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 13
|
|
||||||
getammoforturretweapontype(param_00)
|
|
||||||
{
|
|
||||||
if(param_00 == "turretheadmg_mp")
|
|
||||||
{
|
|
||||||
return 100;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(param_00 == "turretheadrocket_mp")
|
|
||||||
{
|
|
||||||
return 6;
|
|
||||||
}
|
|
||||||
|
|
||||||
return getfullenergy();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 14
|
|
||||||
isturretenergyweapon(param_00)
|
|
||||||
{
|
|
||||||
return param_00 == "turretheadenergy_mp";
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 15
|
|
||||||
playersetupturretenergybar(param_00,param_01)
|
|
||||||
{
|
|
||||||
self endon("death");
|
|
||||||
self endon("disconnect");
|
|
||||||
self endon("rippable_switch");
|
|
||||||
var_02 = getfullenergy();
|
|
||||||
self notifyonplayercommand("fire_turret_weapon","+attack");
|
|
||||||
self notifyonplayercommand("fire_turret_weapon","+attack_akimbo_accessible");
|
|
||||||
param_01 = playergetrippableammo();
|
|
||||||
var_03 = param_01 / var_02;
|
|
||||||
self setclientomnvar("ui_energy_ammo",var_03);
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
if(!self attackbuttonpressed())
|
|
||||||
{
|
|
||||||
self waittill("fire_turret_weapon");
|
|
||||||
}
|
|
||||||
|
|
||||||
if(self isreloading() || self getcurrentweapon() != "turretheadenergy_mp" || !self isfiring() || self isusingoffhand())
|
|
||||||
{
|
|
||||||
wait 0.05;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
param_01 = playergetrippableammo();
|
|
||||||
param_01 = clamp(param_01 - 1,0,getfullenergy());
|
|
||||||
var_03 = param_01 / var_02;
|
|
||||||
self setclientomnvar("ui_energy_ammo",var_03);
|
|
||||||
if(param_01 <= 0)
|
|
||||||
{
|
|
||||||
var_04 = self getweaponslistprimaries();
|
|
||||||
if(var_04.size > 0)
|
|
||||||
{
|
|
||||||
self switchtoweapon(var_04[0]);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
self takeweapon(param_00);
|
|
||||||
}
|
|
||||||
|
|
||||||
playerclearrippableturretinfo();
|
|
||||||
self notify("rippable_complete");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
wait 0.05;
|
|
||||||
playerrecordrippableammo(var_02);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 16
|
|
||||||
getfullenergy()
|
|
||||||
{
|
|
||||||
return 200;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 17
|
|
||||||
playergetrippableammo()
|
|
||||||
{
|
|
||||||
return self.pers["rippableSentry"].ammo;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 18
|
|
||||||
playerrecordrippableammo(param_00)
|
|
||||||
{
|
|
||||||
self.pers["rippableSentry"].ammo = param_00;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 19
|
|
||||||
playerhasrippableturretinfo()
|
|
||||||
{
|
|
||||||
return isdefined(self.pers["rippableSentry"]) && playergetrippableammo() > 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 20
|
|
||||||
playerclearrippableturretinfo()
|
|
||||||
{
|
|
||||||
self.pers["rippableSentry"] = undefined;
|
|
||||||
}
|
|
@ -1,832 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: maps\mp\killstreaks\streak_mp_blackbox.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 28
|
|
||||||
* Decompile Time: 498 ms
|
|
||||||
* Timestamp: 10/27/2023 2:07:07 AM
|
|
||||||
*******************************************************************/
|
|
||||||
|
|
||||||
//Function Number: 1
|
|
||||||
streak_init()
|
|
||||||
{
|
|
||||||
precacheitem("iw5_dlcgun12loot4_mp");
|
|
||||||
precacheshader("dpad_killstreak_lost_static");
|
|
||||||
precacheshader("overlay_blackbox_killstreak");
|
|
||||||
level.killstreakfuncs["mp_blackbox"] = ::tryusempblackbox;
|
|
||||||
level.mapkillstreak = "mp_blackbox";
|
|
||||||
level.mapkillstreakpickupstring = &"MP_BLACKBOX_MAP_KILLSTREAK_PICKUP";
|
|
||||||
level.killstreakoverlay = "overlay_blackbox_killstreak";
|
|
||||||
level.killstreak_trail_fx = loadfx("vfx/map/mp_blackbox/trail_on_character");
|
|
||||||
level.killstreak_chest_fx = loadfx("vfx/map/mp_blackbox/killstreak_chest_vfx");
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 2
|
|
||||||
test_give_players_map_killstreak()
|
|
||||||
{
|
|
||||||
wait(60);
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
if(isdefined(level.players) && level.players.size > 0)
|
|
||||||
{
|
|
||||||
var_00 = level.players[randomintrange(0,level.players.size)];
|
|
||||||
if(isdefined(var_00) && var_00.team != "spectator" && isdefined(var_00.killstreakmodules) && !var_00 hasweapon("iw5_dlcgun12loot4_mp") && !isbot(var_00) && !isagent(var_00))
|
|
||||||
{
|
|
||||||
if(!isdefined(var_00.map_killstreak_active) || !var_00.map_killstreak_active)
|
|
||||||
{
|
|
||||||
if(!isdefined(var_00.given_map_killstreak) || !var_00.given_map_killstreak)
|
|
||||||
{
|
|
||||||
var_00.given_map_killstreak = 1;
|
|
||||||
var_00 maps\mp\killstreaks\_killstreaks::givekillstreak(level.mapkillstreak);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
wait(20);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 3
|
|
||||||
tryusempblackbox(param_00,param_01)
|
|
||||||
{
|
|
||||||
if(maps\mp\_utility::isusingremote())
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(maps\mp\_utility::isairdenied())
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(maps\mp\_utility::isemped())
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(maps\mp\_utility::isjuggernaut())
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(self.map_killstreak_active) && self.map_killstreak_active)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
thread enable_alien_mode();
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 4
|
|
||||||
setcreature()
|
|
||||||
{
|
|
||||||
self.radar_highlight = newclienthudelem(self);
|
|
||||||
self.radar_highlight.color = (1,0.015,0.015);
|
|
||||||
self.radar_highlight.alpha = 1;
|
|
||||||
self.radar_highlight setradarhighlight(60);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 5
|
|
||||||
unsetcreature()
|
|
||||||
{
|
|
||||||
if(isdefined(self.radar_highlight))
|
|
||||||
{
|
|
||||||
self.radar_highlight destroy();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 6
|
|
||||||
enable_alien_mode()
|
|
||||||
{
|
|
||||||
self playsound("ks_blackbox_spore_use");
|
|
||||||
level.perksetfuncs["specialty_exo_creature"] = ::setcreature;
|
|
||||||
level.perkunsetfuncs["specialty_exo_creature"] = ::unsetcreature;
|
|
||||||
self.map_killstreak_active = 1;
|
|
||||||
disable_exo_usage();
|
|
||||||
alien_mode_abilities(0);
|
|
||||||
enable_clientfx();
|
|
||||||
enable_fx();
|
|
||||||
thread alien_mode_reapply_on_death();
|
|
||||||
alien_mode_timer();
|
|
||||||
self notify("notify_end_killstreak_mode");
|
|
||||||
self.map_killstreak_active = 0;
|
|
||||||
disable_alien_mode();
|
|
||||||
disable_clientfx();
|
|
||||||
disable_fx();
|
|
||||||
reenable_exo_usage();
|
|
||||||
level.perksetfuncs["specialty_exo_creature"] = undefined;
|
|
||||||
level.perkunsetfuncs["specialty_exo_creature"] = undefined;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 7
|
|
||||||
disable_alien_mode()
|
|
||||||
{
|
|
||||||
alien_mode_overdrive_off();
|
|
||||||
alien_extra_health_off();
|
|
||||||
self allowsprint(0);
|
|
||||||
wait(0.1);
|
|
||||||
remove_alien_perks();
|
|
||||||
self allowsprint(1);
|
|
||||||
self notify("stop_exo_repulsor");
|
|
||||||
self.killstreaksdisabled = undefined;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 8
|
|
||||||
disable_exo_usage()
|
|
||||||
{
|
|
||||||
if(self hasweapon("adrenaline_mp"))
|
|
||||||
{
|
|
||||||
self.has_overclock_ability = 1;
|
|
||||||
self.overclock_battery_charge = self batterygetcharge("adrenaline_mp");
|
|
||||||
self batterysetcharge("adrenaline_mp",0);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(self hasweapon("extra_health_mp"))
|
|
||||||
{
|
|
||||||
self.has_stim_ability = 1;
|
|
||||||
self.stim_battery_charge = self batterygetcharge("extra_health_mp");
|
|
||||||
self batterysetcharge("extra_health_mp",0);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(level.cloakweapon) && self hasweapon(level.cloakweapon))
|
|
||||||
{
|
|
||||||
self.has_cloak_ability = 1;
|
|
||||||
self.cloak_battery_charge = self batterygetcharge(maps\mp\_exo_cloak::get_exo_cloak_weapon());
|
|
||||||
self batterysetcharge(maps\mp\_exo_cloak::get_exo_cloak_weapon(),0);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(level.hoverweapon) && self hasweapon(level.hoverweapon))
|
|
||||||
{
|
|
||||||
self.has_hover_ability = 1;
|
|
||||||
self.hover_battery_charge = self batterygetcharge(level.hoverweapon);
|
|
||||||
self batterysetcharge(level.hoverweapon,0);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(self hasweapon("exomute_equipment_mp"))
|
|
||||||
{
|
|
||||||
self.has_mute_ability = 1;
|
|
||||||
self.mute_battery_charge = self batterygetcharge("exomute_equipment_mp");
|
|
||||||
self batterysetcharge("exomute_equipment_mp",0);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(self hasweapon("exoping_equipment_mp"))
|
|
||||||
{
|
|
||||||
self.has_ping_ability = 1;
|
|
||||||
self.ping_battery_charge = self batterygetcharge("exoping_equipment_mp");
|
|
||||||
self batterysetcharge("exoping_equipment_mp",0);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(self hasweapon("exorepulsor_equipment_mp"))
|
|
||||||
{
|
|
||||||
self.has_trophy_ability = 1;
|
|
||||||
self.trophy_battery_charge = self batterygetcharge("exorepulsor_equipment_mp");
|
|
||||||
self batterysetcharge("exorepulsor_equipment_mp",0);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(level.exoshieldweapon) && self hasweapon(level.exoshieldweapon))
|
|
||||||
{
|
|
||||||
self.has_shield_ability = 1;
|
|
||||||
self.shield_battery_charge = self batterygetcharge(maps\mp\_exo_shield::get_exo_shield_weapon());
|
|
||||||
self batterysetcharge(maps\mp\_exo_shield::get_exo_shield_weapon(),0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 9
|
|
||||||
reenable_exo_usage()
|
|
||||||
{
|
|
||||||
if(isdefined(self.has_overclock_ability) && self.has_overclock_ability == 1)
|
|
||||||
{
|
|
||||||
self batterysetcharge("adrenaline_mp",self.overclock_battery_charge);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(self.has_stim_ability) && self.has_stim_ability == 1)
|
|
||||||
{
|
|
||||||
self batterysetcharge("extra_health_mp",self.stim_battery_charge);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(self.has_cloak_ability) && self.has_cloak_ability == 1)
|
|
||||||
{
|
|
||||||
self batterysetcharge(maps\mp\_exo_cloak::get_exo_cloak_weapon(),self.cloak_battery_charge);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(self.has_hover_ability) && self.has_hover_ability == 1)
|
|
||||||
{
|
|
||||||
self batterysetcharge(level.hoverweapon,self.hover_battery_charge);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(self.has_mute_ability) && self.has_mute_ability == 1)
|
|
||||||
{
|
|
||||||
self batterysetcharge("exomute_equipment_mp",self.mute_battery_charge);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(self.has_ping_ability) && self.has_ping_ability == 1)
|
|
||||||
{
|
|
||||||
self batterysetcharge("exoping_equipment_mp",self.ping_battery_charge);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(self.has_trophy_ability) && self.has_trophy_ability == 1)
|
|
||||||
{
|
|
||||||
self batterysetcharge("exorepulsor_equipment_mp",self.trophy_battery_charge);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(self.has_shield_ability) && self.has_shield_ability == 1)
|
|
||||||
{
|
|
||||||
self batterysetcharge(maps\mp\_exo_shield::get_exo_shield_weapon(),self.shield_battery_charge);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 10
|
|
||||||
alien_mode_abilities(param_00)
|
|
||||||
{
|
|
||||||
alien_mode_overdrive_on();
|
|
||||||
thread alien_extra_health_on(param_00);
|
|
||||||
give_alien_perks();
|
|
||||||
self.killstreaksdisabled = 1;
|
|
||||||
thread alien_mode_exo_repulsor_on();
|
|
||||||
thread alien_mode_unlimited_ammo();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 11
|
|
||||||
give_alien_perks()
|
|
||||||
{
|
|
||||||
self setviewkickscale(0.5);
|
|
||||||
maps\mp\_utility::giveperk("specialty_exo_slamboots",0);
|
|
||||||
maps\mp\_utility::giveperk("specialty_radarimmune",0);
|
|
||||||
maps\mp\_utility::giveperk("specialty_exoping_immune",0);
|
|
||||||
maps\mp\_utility::giveperk("specialty_hard_shell",0);
|
|
||||||
maps\mp\_utility::giveperk("specialty_throwback",0);
|
|
||||||
maps\mp\_utility::giveperk("_specialty_blastshield",0);
|
|
||||||
self.specialty_blastshield_bonus = maps\mp\_utility::getintproperty("perk_blastShieldScale",45) / 100;
|
|
||||||
if(isdefined(level.hardcoremode) && level.hardcoremode)
|
|
||||||
{
|
|
||||||
self.specialty_blastshield_bonus = maps\mp\_utility::getintproperty("perk_blastShieldScale_HC",90) / 100;
|
|
||||||
}
|
|
||||||
|
|
||||||
maps\mp\_utility::giveperk("specialty_lightweight",0);
|
|
||||||
maps\mp\_utility::giveperk("specialty_explosivedamage",0);
|
|
||||||
maps\mp\_utility::giveperk("specialty_blindeye",0);
|
|
||||||
maps\mp\_utility::giveperk("specialty_plainsight",0);
|
|
||||||
maps\mp\_utility::giveperk("specialty_coldblooded",0);
|
|
||||||
maps\mp\_utility::giveperk("specialty_spygame",0);
|
|
||||||
maps\mp\_utility::giveperk("specialty_heartbreaker",0);
|
|
||||||
maps\mp\_utility::giveperk("specialty_moreminimap",0);
|
|
||||||
maps\mp\_utility::giveperk("specialty_silentkill",0);
|
|
||||||
maps\mp\_utility::giveperk("specialty_quickswap",0);
|
|
||||||
maps\mp\_utility::giveperk("specialty_fastoffhand",0);
|
|
||||||
maps\mp\_utility::giveperk("specialty_sprintreload",0);
|
|
||||||
maps\mp\_utility::giveperk("specialty_sprintfire",0);
|
|
||||||
maps\mp\_utility::giveperk("specialty_empimmune",0);
|
|
||||||
maps\mp\_utility::giveperk("specialty_stun_resistance",0);
|
|
||||||
self.stunscaler = 0.1;
|
|
||||||
self setviewkickscale(0.2);
|
|
||||||
self.ammopickup_scalar = 0.2;
|
|
||||||
maps\mp\_utility::giveperk("specialty_scavenger",0);
|
|
||||||
maps\mp\_utility::giveperk("specialty_bulletresupply",0);
|
|
||||||
maps\mp\_utility::giveperk("specialty_extraammo",0);
|
|
||||||
maps\mp\_utility::giveperk("specialty_hardline",0);
|
|
||||||
maps\mp\_utility::giveperk("specialty_exo_creature",0);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 12
|
|
||||||
should_remove_alien_perk(param_00)
|
|
||||||
{
|
|
||||||
if(maps\mp\_utility::_hasperk(param_00))
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_01 = isdefined(self.reinforcementperks) && isdefined(self.reinforcementperks[param_00]) && self.reinforcementperks[param_00];
|
|
||||||
if(var_01)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 13
|
|
||||||
remove_alien_perks()
|
|
||||||
{
|
|
||||||
if(should_remove_alien_perk("specialty_extended_battery"))
|
|
||||||
{
|
|
||||||
maps\mp\_utility::_unsetperk("specialty_exo_slamboots");
|
|
||||||
}
|
|
||||||
|
|
||||||
if(should_remove_alien_perk("specialty_class_lowprofile"))
|
|
||||||
{
|
|
||||||
maps\mp\_utility::_unsetperk("specialty_radarimmune");
|
|
||||||
maps\mp\_utility::_unsetperk("specialty_exoping_immune");
|
|
||||||
}
|
|
||||||
|
|
||||||
if(should_remove_alien_perk("specialty_class_flakjacket"))
|
|
||||||
{
|
|
||||||
maps\mp\_utility::_unsetperk("specialty_hard_shell");
|
|
||||||
maps\mp\_utility::_unsetperk("specialty_throwback");
|
|
||||||
maps\mp\_utility::_unsetperk("_specialty_blastshield");
|
|
||||||
}
|
|
||||||
|
|
||||||
if(should_remove_alien_perk("specialty_class_lightweight"))
|
|
||||||
{
|
|
||||||
maps\mp\_utility::_unsetperk("specialty_lightweight");
|
|
||||||
}
|
|
||||||
|
|
||||||
if(should_remove_alien_perk("specialty_class_dangerclose"))
|
|
||||||
{
|
|
||||||
maps\mp\_utility::_unsetperk("specialty_explosivedamage");
|
|
||||||
}
|
|
||||||
|
|
||||||
if(should_remove_alien_perk("specialty_class_blindeye"))
|
|
||||||
{
|
|
||||||
maps\mp\_utility::_unsetperk("specialty_blindeye");
|
|
||||||
maps\mp\_utility::_unsetperk("specialty_plainsight");
|
|
||||||
}
|
|
||||||
|
|
||||||
if(should_remove_alien_perk("specialty_class_coldblooded"))
|
|
||||||
{
|
|
||||||
maps\mp\_utility::_unsetperk("specialty_coldblooded");
|
|
||||||
maps\mp\_utility::_unsetperk("specialty_spygame");
|
|
||||||
maps\mp\_utility::_unsetperk("specialty_heartbreaker");
|
|
||||||
}
|
|
||||||
|
|
||||||
if(should_remove_alien_perk("specialty_class_peripherals") || maps\mp\_utility::practiceroundgame())
|
|
||||||
{
|
|
||||||
maps\mp\_utility::_unsetperk("specialty_moreminimap");
|
|
||||||
maps\mp\_utility::_unsetperk("specialty_silentkill");
|
|
||||||
}
|
|
||||||
|
|
||||||
if(should_remove_alien_perk("specialty_class_fasthands"))
|
|
||||||
{
|
|
||||||
maps\mp\_utility::_unsetperk("specialty_quickswap");
|
|
||||||
maps\mp\_utility::_unsetperk("specialty_fastoffhand");
|
|
||||||
maps\mp\_utility::_unsetperk("specialty_sprintreload");
|
|
||||||
}
|
|
||||||
|
|
||||||
if(should_remove_alien_perk("specialty_class_dexterity"))
|
|
||||||
{
|
|
||||||
maps\mp\_utility::_unsetperk("specialty_sprintfire");
|
|
||||||
}
|
|
||||||
|
|
||||||
if(should_remove_alien_perk("specialty_class_hardwired"))
|
|
||||||
{
|
|
||||||
maps\mp\_utility::_unsetperk("specialty_empimmune");
|
|
||||||
maps\mp\_utility::_unsetperk("specialty_stun_resistance");
|
|
||||||
}
|
|
||||||
|
|
||||||
if(should_remove_alien_perk("specialty_class_toughness"))
|
|
||||||
{
|
|
||||||
self setviewkickscale(0.5);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(should_remove_alien_perk("specialty_class_scavenger"))
|
|
||||||
{
|
|
||||||
maps\mp\_utility::_unsetperk("specialty_scavenger");
|
|
||||||
maps\mp\_utility::_unsetperk("specialty_bulletresupply");
|
|
||||||
maps\mp\_utility::_unsetperk("specialty_extraammo");
|
|
||||||
}
|
|
||||||
|
|
||||||
if(should_remove_alien_perk("specialty_class_hardline"))
|
|
||||||
{
|
|
||||||
maps\mp\_utility::_unsetperk("specialty_hardline");
|
|
||||||
}
|
|
||||||
|
|
||||||
maps\mp\_utility::_unsetperk("specialty_exo_creature");
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 14
|
|
||||||
alien_extra_health_on(param_00)
|
|
||||||
{
|
|
||||||
thread maps\mp\perks\_perkfunctions::setlightarmor();
|
|
||||||
self.maxhealth = int(self.maxhealth * 3);
|
|
||||||
self.ignoreregendelay = 1;
|
|
||||||
self.healthregenlevel = 0.99;
|
|
||||||
if(param_00)
|
|
||||||
{
|
|
||||||
self waittill("playerHealthRegen");
|
|
||||||
}
|
|
||||||
|
|
||||||
self notify("damage");
|
|
||||||
maps\mp\_extrahealth::killstimfx();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 15
|
|
||||||
alien_extra_health_off()
|
|
||||||
{
|
|
||||||
thread maps\mp\perks\_perkfunctions::unsetlightarmor();
|
|
||||||
if(isdefined(level.ishorde))
|
|
||||||
{
|
|
||||||
self.maxhealth = self.classmaxhealth + self.hordearmor * 40;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
self.maxhealth = int(self.maxhealth / 3);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(self.health > self.maxhealth)
|
|
||||||
{
|
|
||||||
self.health = self.maxhealth;
|
|
||||||
}
|
|
||||||
|
|
||||||
self.healthregenlevel = undefined;
|
|
||||||
maps\mp\_extrahealth::killstimfx();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 16
|
|
||||||
alien_mode_overdrive_on()
|
|
||||||
{
|
|
||||||
if(isdefined(self.overclock_on) && self.overclock_on == 1)
|
|
||||||
{
|
|
||||||
thread maps\mp\_adrenaline::stopadrenaline(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,10);
|
|
||||||
}
|
|
||||||
|
|
||||||
maps\mp\gametypes\_weapons::updatemovespeedscale();
|
|
||||||
thread maps\mp\_adrenaline::killoverclockfx();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 17
|
|
||||||
alien_mode_overdrive_off()
|
|
||||||
{
|
|
||||||
self notify("EndAdrenaline");
|
|
||||||
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_00 = self getclientomnvar("ui_horde_player_class");
|
|
||||||
self.movespeedscaler = level.classsettings[var_00]["speed"];
|
|
||||||
}
|
|
||||||
|
|
||||||
maps\mp\gametypes\_weapons::updatemovespeedscale();
|
|
||||||
self.adrenaline_speed_scalar = undefined;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 18
|
|
||||||
alien_mode_exo_ping_on()
|
|
||||||
{
|
|
||||||
if(isdefined(self.exo_ping_on) && self.exo_ping_on == 1)
|
|
||||||
{
|
|
||||||
thread maps\mp\_exo_ping::stop_exo_ping();
|
|
||||||
}
|
|
||||||
|
|
||||||
var_00 = 1;
|
|
||||||
var_01 = 2;
|
|
||||||
thread maps\mp\_threatdetection::detection_highlight_hud_effect(self,60 + var_00);
|
|
||||||
while(self.map_killstreak_active)
|
|
||||||
{
|
|
||||||
foreach(var_03 in level.players)
|
|
||||||
{
|
|
||||||
if(!isdefined(var_03) || !isalive(var_03) || self.team == var_03.team)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
var_04 = var_03;
|
|
||||||
var_04 maps\mp\_threatdetection::addthreatevent([self],var_00 + 0.05,"PAINT_KILLSTREAK",1,0);
|
|
||||||
}
|
|
||||||
|
|
||||||
wait(var_00);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 19
|
|
||||||
alien_mode_exo_repulsor_on()
|
|
||||||
{
|
|
||||||
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");
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(self.repulsoractive) && self.repulsoractive == 1)
|
|
||||||
{
|
|
||||||
thread maps\mp\_exo_repulsor::stop_repulsor(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
thread alien_mode_repulsor_on();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 20
|
|
||||||
alien_mode_repulsor_on()
|
|
||||||
{
|
|
||||||
level endon("game_ended");
|
|
||||||
self endon("stop_exo_repulsor");
|
|
||||||
maps\mp\_exo_repulsor::exorepulsorinit();
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
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
|
|
||||||
{
|
|
||||||
var_01 delete();
|
|
||||||
}
|
|
||||||
|
|
||||||
self.projectilesstopped++;
|
|
||||||
maps\mp\gametypes\_missions::processchallenge("ch_exoability_repulser");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
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");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
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");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
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");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(self.projectilesstopped >= 2)
|
|
||||||
{
|
|
||||||
if(!isdefined(level.ishorde))
|
|
||||||
{
|
|
||||||
thread maps\mp\_events::fourplayevent();
|
|
||||||
}
|
|
||||||
|
|
||||||
self.projectilesstopped = self.projectilesstopped - 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
wait(0.05);
|
|
||||||
}
|
|
||||||
|
|
||||||
thread maps\mp\_exo_repulsor::stop_repulsor(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 21
|
|
||||||
alien_mode_unlimited_ammo()
|
|
||||||
{
|
|
||||||
self endon("notify_end_killstreak_mode");
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
var_00 = self getcurrentweapon();
|
|
||||||
self waittill("reload");
|
|
||||||
self setweaponammostock(var_00,weaponstartammo(var_00));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 22
|
|
||||||
alien_mode_reapply_on_death()
|
|
||||||
{
|
|
||||||
self endon("notify_end_killstreak_mode");
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
self waittill("death");
|
|
||||||
disable_alien_mode();
|
|
||||||
self waittill("spawnplayer_giveloadout");
|
|
||||||
alien_mode_abilities(1);
|
|
||||||
thread aud_play_respawn_squish();
|
|
||||||
wait(0.2);
|
|
||||||
enable_fx();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 23
|
|
||||||
alien_mode_timer()
|
|
||||||
{
|
|
||||||
level endon("game_ended");
|
|
||||||
self endon("disconnect");
|
|
||||||
self endon("joined_team");
|
|
||||||
self endon("faux_spawn");
|
|
||||||
wait(60);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 24
|
|
||||||
enable_clientfx()
|
|
||||||
{
|
|
||||||
self setclutoverrideenableforplayer("clut_mp_blackbox_ks",0.2);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 25
|
|
||||||
disable_clientfx()
|
|
||||||
{
|
|
||||||
self setclutoverridedisableforplayer(0.5);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 26
|
|
||||||
enable_fx()
|
|
||||||
{
|
|
||||||
playfxontag(level.killstreak_chest_fx,self,"j_spine4");
|
|
||||||
playfxontag(level.killstreak_trail_fx,self,"tag_origin");
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 27
|
|
||||||
disable_fx()
|
|
||||||
{
|
|
||||||
stopfxontag(level.killstreak_trail_fx,self,"tag_origin");
|
|
||||||
stopfxontag(level.killstreak_chest_fx,self,"j_spine4");
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 28
|
|
||||||
aud_play_respawn_squish()
|
|
||||||
{
|
|
||||||
wait(0.5);
|
|
||||||
self playsound("ks_blackbox_spore_respawn");
|
|
||||||
}
|
|
@ -1,823 +0,0 @@
|
|||||||
/*******************************************************************
|
|
||||||
* Decompiled By: Bog
|
|
||||||
* Decompiled File: maps\mp\killstreaks\streak_mp_seoul2.gsc
|
|
||||||
* Game: Call of Duty: Advanced Warfare
|
|
||||||
* Platform: PC
|
|
||||||
* Function Count: 43
|
|
||||||
* Decompile Time: 732 ms
|
|
||||||
* Timestamp: 10/27/2023 2:07:10 AM
|
|
||||||
*******************************************************************/
|
|
||||||
|
|
||||||
//Function Number: 1
|
|
||||||
streak_init()
|
|
||||||
{
|
|
||||||
precacheitem("iw5_dlcgun12loot2_mp");
|
|
||||||
level.killstreakfuncs["mp_seoul2"] = ::tryusempswarm;
|
|
||||||
level.mapkillstreak = "mp_seoul2";
|
|
||||||
level.mapkillstreakpickupstring = &"MP_SEOUL2_MAP_KILLSTREAK_PICKUP";
|
|
||||||
level.killstreakwieldweapons["iw5_dlcgun12loot2_mp"] = "mp_seoul2";
|
|
||||||
level.swarm_use_duration = 40;
|
|
||||||
level.swarm_speed = 40;
|
|
||||||
var_00 = getentarray("minimap_corner","targetname");
|
|
||||||
var_01 = (0,0,0);
|
|
||||||
if(var_00.size)
|
|
||||||
{
|
|
||||||
var_01 = maps\mp\gametypes\_spawnlogic::findboxcenter(var_00[0].origin,var_00[1].origin);
|
|
||||||
}
|
|
||||||
|
|
||||||
level.swarmrig = spawn("script_model",var_01);
|
|
||||||
level.swarmrig setmodel("c130_zoomrig");
|
|
||||||
level.swarmrig.angles = (0,115,0);
|
|
||||||
level.swarmrig hide();
|
|
||||||
thread rotateswarm(level.swarm_speed);
|
|
||||||
level._effect["orbitalsupport_rocket_explode_player"] = loadfx("vfx/explosion/rocket_explosion_distant");
|
|
||||||
level.swarminuse = 0;
|
|
||||||
level._effect["drone_swarm_loop"] = loadfx("vfx/map/mp_seoul2/drone_swarm_loop");
|
|
||||||
level._effect["drone_swarm_trail"] = loadfx("vfx/trail/drone_swarm_missile_trail");
|
|
||||||
level._effect["drone_swarm_trail_inair"] = loadfx("vfx/trail/drone_swarm_missile_trail_inair");
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 2
|
|
||||||
tryusempswarm(param_00,param_01)
|
|
||||||
{
|
|
||||||
if(maps\mp\_utility::isusingremote())
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(maps\mp\_utility::isemped())
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(maps\mp\_utility::isjuggernaut())
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(level.swarm_player) || level.swarminuse)
|
|
||||||
{
|
|
||||||
self iprintlnbold(&"MP_SEOUL2_SWARM_IN_USE");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
level.swarminuse = 1;
|
|
||||||
thread playerclearswarmonteamchange();
|
|
||||||
var_02 = maps\mp\killstreaks\_killstreaks::initridekillstreak("paladin",0,undefined,3);
|
|
||||||
if(var_02 != "success")
|
|
||||||
{
|
|
||||||
level.swarminuse = 0;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
maps\mp\_utility::setusingremote("orbitalplatform");
|
|
||||||
thread setswarmplayer(self);
|
|
||||||
maps\mp\_matchdata::logkillstreakevent("dlc_streak5",self.origin);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 3
|
|
||||||
playerclearswarmonteamchange()
|
|
||||||
{
|
|
||||||
self endon("rideKillstreakBlack");
|
|
||||||
self waittill("joined_team");
|
|
||||||
level.swarminuse = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 4
|
|
||||||
setswarmplayer(param_00)
|
|
||||||
{
|
|
||||||
self endon("swarm_player_removed");
|
|
||||||
self endon("disconnect");
|
|
||||||
level.swarm_player = param_00;
|
|
||||||
param_00 maps\mp\_utility::playersaveangles();
|
|
||||||
param_00 swarm_spawn();
|
|
||||||
level.swarm_planemodel.vehicletype = "paladin";
|
|
||||||
level.swarm_planemodel.player = param_00;
|
|
||||||
level.swarm_planemodel.helitype = "osp";
|
|
||||||
param_00 startac130();
|
|
||||||
param_00 maps\mp\killstreaks\_aerial_utility::playerdisablestreakstatic();
|
|
||||||
param_00 maps\mp\killstreaks\_killstreaks::playerwaittillridekillstreakcomplete();
|
|
||||||
param_00 thread waitsetthermal(1);
|
|
||||||
param_00 thread waitdisableshadows(1);
|
|
||||||
param_00 thread setswarmvisionandlightsetpermap(1.25);
|
|
||||||
if(getdvarint("camera_thirdPerson"))
|
|
||||||
{
|
|
||||||
param_00 maps\mp\_utility::setthirdpersondof(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
param_00 playerswitchtoturret(level.swarm_big_turret);
|
|
||||||
param_00.controlled_swarm_turret = "medium";
|
|
||||||
param_00.reloading_rocket_swarm_gun = 0;
|
|
||||||
param_00 thread removeswarmplayerondisconnect();
|
|
||||||
param_00 thread removeswarmplayeronchangeteams();
|
|
||||||
param_00 thread removeswarmplayeronspectate();
|
|
||||||
param_00 thread removeswarmplayerongamecleanup();
|
|
||||||
param_00 thread removeswarmplayeronsystemhack();
|
|
||||||
wait(1);
|
|
||||||
maps\mp\gametypes\_hostmigration::waittillhostmigrationdone();
|
|
||||||
param_00 setclientomnvar("ui_solar_beam",1);
|
|
||||||
param_00 thread waitsetstatic(0.1);
|
|
||||||
var_01 = level.swarm_use_duration;
|
|
||||||
param_00.swarm_endtime = gettime() + var_01 * 1000;
|
|
||||||
param_00 setclientomnvar("ui_warbird_countdown",param_00.swarm_endtime);
|
|
||||||
self notifyonplayercommand("swarm_fire","+attack");
|
|
||||||
self notifyonplayercommand("swarm_fire","+attack_akimbo_accessible");
|
|
||||||
param_00 thread firerocketswarmgun();
|
|
||||||
if(isdefined(level.swarm_targetent))
|
|
||||||
{
|
|
||||||
playfxontag(common_scripts\utility::getfx("vehicle_osp_rocket_marker"),level.swarm_targetent,"tag_origin");
|
|
||||||
}
|
|
||||||
|
|
||||||
param_00 thread pulseswarmreloadtext();
|
|
||||||
param_00 thread showaerialmarker();
|
|
||||||
param_00 thread removeswarmplayeraftertime(var_01);
|
|
||||||
param_00 thread removeswarmplayeroncommand();
|
|
||||||
level.swarm_planemodel thread swarmexit(var_01);
|
|
||||||
level thread setupplayersduringstreak();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 5
|
|
||||||
waitsetstatic(param_00)
|
|
||||||
{
|
|
||||||
self endon("swarm_player_removed");
|
|
||||||
self endon("disconnect");
|
|
||||||
wait(param_00);
|
|
||||||
maps\mp\killstreaks\_aerial_utility::playerenablestreakstatic();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 6
|
|
||||||
waitsetthermal(param_00)
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
level endon("swarm_player_removed");
|
|
||||||
self endon("swarm_player_removed");
|
|
||||||
wait(param_00);
|
|
||||||
self thermalvisionfofoverlayon();
|
|
||||||
var_01 = 3000;
|
|
||||||
var_02 = 0.3;
|
|
||||||
var_03 = var_01;
|
|
||||||
var_04 = 0.3;
|
|
||||||
var_05 = var_01 * 0.75;
|
|
||||||
var_06 = 20;
|
|
||||||
var_07 = 30;
|
|
||||||
thread maps\mp\killstreaks\_aerial_utility::thermalvision("swarm_player_removed",var_02,var_03,var_04,var_05,var_06,var_07);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 7
|
|
||||||
waitdisableshadows(param_00)
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
level endon("swarm_player_removed");
|
|
||||||
self endon("swarm_player_removed");
|
|
||||||
wait(param_00);
|
|
||||||
self setshadowrendering(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 8
|
|
||||||
setswarmvisionandlightsetpermap(param_00)
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
level endon("swarm_player_removed");
|
|
||||||
wait(param_00);
|
|
||||||
if(isdefined(level.swarmvisionset))
|
|
||||||
{
|
|
||||||
self setclienttriggervisionset(level.swarmvisionset,0);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(level.swarmlightset))
|
|
||||||
{
|
|
||||||
self lightsetforplayer(level.swarmlightset);
|
|
||||||
}
|
|
||||||
|
|
||||||
maps\mp\killstreaks\_aerial_utility::handle_player_starting_aerial_view();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 9
|
|
||||||
removeswarmvisionandlightsetpermap(param_00)
|
|
||||||
{
|
|
||||||
self setclienttriggervisionset("",param_00);
|
|
||||||
self lightsetforplayer("");
|
|
||||||
maps\mp\killstreaks\_aerial_utility::handle_player_ending_aerial_view();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 10
|
|
||||||
removeswarmplayeroncommand()
|
|
||||||
{
|
|
||||||
self endon("swarm_player_removed");
|
|
||||||
var_00 = 0;
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
if(self usebuttonpressed())
|
|
||||||
{
|
|
||||||
var_00 = var_00 + 0.05;
|
|
||||||
if(var_00 > 1)
|
|
||||||
{
|
|
||||||
level thread removeswarmplayer(self,0);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var_00 = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
wait(0.05);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 11
|
|
||||||
removeswarmplayerongamecleanup()
|
|
||||||
{
|
|
||||||
self endon("swarm_player_removed");
|
|
||||||
level waittill("game_ended");
|
|
||||||
level thread removeswarmplayer(self,0);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 12
|
|
||||||
removeswarmplayerondisconnect()
|
|
||||||
{
|
|
||||||
self endon("swarm_player_removed");
|
|
||||||
self waittill("disconnect");
|
|
||||||
level thread removeswarmplayer(self,1);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 13
|
|
||||||
removeswarmplayeronchangeteams()
|
|
||||||
{
|
|
||||||
self endon("swarm_player_removed");
|
|
||||||
self waittill("joined_team");
|
|
||||||
level thread removeswarmplayer(self,0);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 14
|
|
||||||
removeswarmplayeronspectate()
|
|
||||||
{
|
|
||||||
self endon("swarm_player_removed");
|
|
||||||
common_scripts\utility::waittill_any("joined_spectators","spawned");
|
|
||||||
level thread removeswarmplayer(self,0);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 15
|
|
||||||
removeswarmplayeraftertime(param_00)
|
|
||||||
{
|
|
||||||
self endon("swarm_player_removed");
|
|
||||||
maps\mp\gametypes\_hostmigration::waitlongdurationwithhostmigrationpause(param_00);
|
|
||||||
level thread removeswarmplayer(self,0);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 16
|
|
||||||
removeswarmplayeronsystemhack()
|
|
||||||
{
|
|
||||||
self endon("swarm_player_removed");
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
self waittill("EMP_Artifacts");
|
|
||||||
wait(0.15);
|
|
||||||
if(level.empstreaksdisabled)
|
|
||||||
{
|
|
||||||
level thread removeswarmplayer(self,0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 17
|
|
||||||
removeswarmplayer(param_00,param_01)
|
|
||||||
{
|
|
||||||
param_00 notify("swarm_player_removed");
|
|
||||||
level notify("swarm_player_removed");
|
|
||||||
waittillframeend;
|
|
||||||
level.swarm_planemodel.player = undefined;
|
|
||||||
if(!param_01)
|
|
||||||
{
|
|
||||||
param_00 playerresetswarmomnvars();
|
|
||||||
param_00 notifyonplayercommandremove("swarm_fire","+attack");
|
|
||||||
param_00 notifyonplayercommandremove("swarm_fire","+attack_akimbo_accessible");
|
|
||||||
param_00 remotecontrolturretoff(level.swarm_big_turret);
|
|
||||||
level.swarm_big_turret hide();
|
|
||||||
param_00 unlink();
|
|
||||||
var_02 = maps\mp\_utility::getkillstreakweapon("orbitalsupport");
|
|
||||||
param_00 takeweapon(var_02);
|
|
||||||
if(param_00 maps\mp\_utility::isusingremote())
|
|
||||||
{
|
|
||||||
param_00 maps\mp\_utility::clearusingremote();
|
|
||||||
}
|
|
||||||
|
|
||||||
maps\mp\killstreaks\_aerial_utility::disableorbitalthermal(param_00);
|
|
||||||
param_00 setshadowrendering(1);
|
|
||||||
param_00 thermalvisionfofoverlayoff();
|
|
||||||
param_00 setblurforplayer(0,0);
|
|
||||||
param_00 removeswarmvisionandlightsetpermap(1.5);
|
|
||||||
param_00 stopac130();
|
|
||||||
if(getdvarint("camera_thirdPerson"))
|
|
||||||
{
|
|
||||||
param_00 maps\mp\_utility::setthirdpersondof(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(param_00.darkscreenoverlay))
|
|
||||||
{
|
|
||||||
param_00.darkscreenoverlay destroy();
|
|
||||||
}
|
|
||||||
|
|
||||||
param_00.reloading_rocket_swarm_gun = undefined;
|
|
||||||
param_00 maps\mp\_utility::playerrestoreangles();
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(level.swarm_targetent))
|
|
||||||
{
|
|
||||||
stopfxontag(common_scripts\utility::getfx("vehicle_osp_rocket_marker"),level.swarm_targetent,"tag_origin");
|
|
||||||
level.swarm_targetent delete();
|
|
||||||
}
|
|
||||||
|
|
||||||
level.swarm_player = undefined;
|
|
||||||
level.swarm_planemodel stoploopsound();
|
|
||||||
level.swarm_planemodel playsound("paladin_orbit_return");
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 18
|
|
||||||
cleanupswarments()
|
|
||||||
{
|
|
||||||
level.swarm_planemodel stoploopsound();
|
|
||||||
if(isdefined(level.swarm_planemodel.farflightsound))
|
|
||||||
{
|
|
||||||
level.swarm_planemodel.farflightsound stoploopsound();
|
|
||||||
level.swarm_planemodel.farflightsound delete();
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(level.swarm_planemodel.closeflightsound))
|
|
||||||
{
|
|
||||||
level.swarm_planemodel.closeflightsound stoploopsound();
|
|
||||||
level.swarm_planemodel.closeflightsound delete();
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(level.swarm_planemodel.minimapicon))
|
|
||||||
{
|
|
||||||
level.swarm_planemodel.minimapicon delete();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 19
|
|
||||||
swarm_spawn()
|
|
||||||
{
|
|
||||||
var_00 = getentarray("minimap_corner","targetname");
|
|
||||||
var_01 = (0,0,0);
|
|
||||||
if(var_00.size)
|
|
||||||
{
|
|
||||||
var_01 = maps\mp\gametypes\_spawnlogic::findboxcenter(var_00[0].origin,var_00[1].origin);
|
|
||||||
var_01 = (var_01[0],var_01[1],0);
|
|
||||||
}
|
|
||||||
|
|
||||||
level.swarm_planemodel = spawn("script_model",var_01);
|
|
||||||
level.swarm_planemodel.angles = (0,0,0);
|
|
||||||
level.swarm_planemodel setmodel("vehicle_mp_seoul2_killstreak_osp_rig");
|
|
||||||
level.swarm_planemodel.owner = self;
|
|
||||||
level.swarm_planemodel common_scripts\utility::make_entity_sentient_mp(self.team);
|
|
||||||
level.swarm_planemodel.minimapicon = spawnplane(self,"script_model",var_01,"compass_objpoint_seoul2_swarm_friendly","compass_objpoint_seoul2_swarm_enemy");
|
|
||||||
level.swarm_planemodel.minimapicon setmodel("tag_origin");
|
|
||||||
level.swarm_planemodel.minimapicon vehicle_jetbikesethoverforcescale(level.swarm_planemodel,"tag_origin",(0,0,0),(0,0,0));
|
|
||||||
level.swarm_planemodel.fxent = level.swarm_planemodel common_scripts\utility::spawn_tag_origin();
|
|
||||||
level.swarm_planemodel.fxent vehicle_jetbikesethoverforcescale(level.swarm_planemodel,"tag_origin",(0,0,-800),(0,0,0));
|
|
||||||
level.swarm_planemodel.fxent show();
|
|
||||||
playfxontag(common_scripts\utility::getfx("drone_swarm_loop"),level.swarm_planemodel.fxent,"tag_origin");
|
|
||||||
level.swarm_planemodel setcandamage(1);
|
|
||||||
level.swarm_planemodel setcanradiusdamage(1);
|
|
||||||
level.swarm_planemodel.showthreatmarker = 0;
|
|
||||||
level.swarm_planemodel setrandomswarmstartposition();
|
|
||||||
level.swarm_big_turret = spawnswarmturret("orbitalsupport_medium_turret_mp","orbitalsupport_big_turret","tag_orbitalsupport_biggun");
|
|
||||||
level.swarm_planemodel thread moveswarmtodestination();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 20
|
|
||||||
spawnswarmturret(param_00,param_01,param_02)
|
|
||||||
{
|
|
||||||
var_03 = spawnturret("misc_turret",level.swarm_planemodel gettagorigin(param_02),param_00,0);
|
|
||||||
var_03.angles = level.swarm_planemodel gettagangles(param_02);
|
|
||||||
var_03 setmodel(param_01);
|
|
||||||
var_03 setdefaultdroppitch(45);
|
|
||||||
var_03 linkto(level.swarm_planemodel,param_02,(0,0,0),(0,0,0));
|
|
||||||
var_03.owner = undefined;
|
|
||||||
var_03.health = 99999;
|
|
||||||
var_03.maxhealth = 1000;
|
|
||||||
var_03.damagetaken = 0;
|
|
||||||
var_03.stunned = 0;
|
|
||||||
var_03.stunnedtime = 0;
|
|
||||||
var_03 setcandamage(0);
|
|
||||||
var_03 setcanradiusdamage(0);
|
|
||||||
var_03 turretfiredisable();
|
|
||||||
return var_03;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 21
|
|
||||||
swarmturretspawnsoundent(param_00)
|
|
||||||
{
|
|
||||||
wait 0.05;
|
|
||||||
self.soundent = spawn("script_model",self.origin);
|
|
||||||
self.soundent setmodel("tag_origin");
|
|
||||||
self.soundent linkto(level.swarm_planemodel,param_00,(0,0,0),(0,0,0));
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 22
|
|
||||||
pulseswarmreloadtext()
|
|
||||||
{
|
|
||||||
level endon("swarm_player_removed");
|
|
||||||
self endon("swarm_player_removed");
|
|
||||||
self setclientomnvar("ui_osp_reload_bitfield",0);
|
|
||||||
var_00 = 4;
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
var_01 = 0;
|
|
||||||
if(self.reloading_rocket_swarm_gun)
|
|
||||||
{
|
|
||||||
var_01 = var_01 + var_00;
|
|
||||||
}
|
|
||||||
|
|
||||||
self setclientomnvar("ui_osp_reload_bitfield",var_01);
|
|
||||||
wait(0.05);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 23
|
|
||||||
playerswitchtoturret(param_00)
|
|
||||||
{
|
|
||||||
self unlink();
|
|
||||||
level thread handleturretsoundent(param_00);
|
|
||||||
var_01 = 75;
|
|
||||||
var_02 = 75;
|
|
||||||
var_03 = -30;
|
|
||||||
var_04 = 360;
|
|
||||||
self playerlinkweaponviewtodelta(param_00,"tag_player",0,var_01,var_02,var_03,var_04,1);
|
|
||||||
self playerlinkedsetusebaseangleforviewclamp(1);
|
|
||||||
var_05 = 45;
|
|
||||||
self remotecontrolturret(param_00,var_05);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 24
|
|
||||||
handleturretsoundent(param_00)
|
|
||||||
{
|
|
||||||
param_00 endon("death");
|
|
||||||
param_00 notify("startHandleSoundEnt");
|
|
||||||
param_00 endon("startHandleSoundEnt");
|
|
||||||
if(isdefined(param_00.soundent))
|
|
||||||
{
|
|
||||||
param_00.soundent hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach(var_02 in level.players)
|
|
||||||
{
|
|
||||||
if(isdefined(param_00.owner) && param_00.owner != var_02)
|
|
||||||
{
|
|
||||||
if(isdefined(param_00.soundent))
|
|
||||||
{
|
|
||||||
param_00.soundent showtoplayer(var_02);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
level waittill("connected",var_02);
|
|
||||||
if(isdefined(param_00.soundent))
|
|
||||||
{
|
|
||||||
param_00.soundent showtoplayer(var_02);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 25
|
|
||||||
random_vector(param_00)
|
|
||||||
{
|
|
||||||
return (randomfloat(param_00) - param_00 * 0.5,randomfloat(param_00) - param_00 * 0.5,randomfloat(param_00) - param_00 * 0.5);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 26
|
|
||||||
firerocketswarmgun()
|
|
||||||
{
|
|
||||||
self endon("swarm_player_removed");
|
|
||||||
var_00 = 3;
|
|
||||||
thread updateshootinglocation();
|
|
||||||
while(!isdefined(level.swarm_planemodel.swarmflying))
|
|
||||||
{
|
|
||||||
wait 0.05;
|
|
||||||
}
|
|
||||||
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
self.reloading_rocket_swarm_gun = 0;
|
|
||||||
if(self attackbuttonpressed() && !isdefined(level.hostmigrationtimer))
|
|
||||||
{
|
|
||||||
earthquake(0.3,1,level.swarm_planemodel.origin,1000,self);
|
|
||||||
var_01 = level.swarm_big_turret gettagorigin("tag_missile1");
|
|
||||||
var_02 = vectornormalize(anglestoforward(self getplayerangles()));
|
|
||||||
var_03 = vectornormalize(anglestoforward(level.swarm_planemodel gettagangles("tag_origin")));
|
|
||||||
for(var_04 = 0;var_04 < 1;var_04++)
|
|
||||||
{
|
|
||||||
var_05 = var_02 + (0,0,0.4) + random_vector(0.5);
|
|
||||||
var_06 = var_01 + common_scripts\utility::randomvectorrange(-1,1);
|
|
||||||
var_07 = magicbullet("iw5_dlcgun12loot2_mp",var_01,var_01 + var_05,self);
|
|
||||||
var_08 = var_07 common_scripts\utility::spawn_tag_origin();
|
|
||||||
var_08 show();
|
|
||||||
var_08 vehicle_jetbikesethoverforcescale(var_07,"tag_fx");
|
|
||||||
var_09 = [];
|
|
||||||
foreach(var_0B in level.players)
|
|
||||||
{
|
|
||||||
if(var_0B != self)
|
|
||||||
{
|
|
||||||
var_09[var_09.size] = spawnlinkedfxforclient(common_scripts\utility::getfx("drone_swarm_trail"),var_08,"tag_origin",var_0B);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var_09[var_09.size] = spawnlinkedfxforclient(common_scripts\utility::getfx("drone_swarm_trail_inair"),var_08,"tag_origin",self);
|
|
||||||
foreach(var_0E in var_09)
|
|
||||||
{
|
|
||||||
setfxkillondelete(var_0E,1);
|
|
||||||
triggerfx(var_0E);
|
|
||||||
}
|
|
||||||
|
|
||||||
thread cleanupdronemissilefx(var_07,var_08,var_09);
|
|
||||||
var_07.vehicle_fired_from = level.swarm_planemodel;
|
|
||||||
self playlocalsound("paladin_missile_shot_2d");
|
|
||||||
self playrumbleonentity("ac130_40mm_fire");
|
|
||||||
var_07 missile_settargetent(level.swarm_targetent);
|
|
||||||
var_07 missile_setflightmodedirect();
|
|
||||||
wait(0.1);
|
|
||||||
}
|
|
||||||
|
|
||||||
self.reloading_rocket_swarm_gun = 1;
|
|
||||||
thread rocketreloadsound(var_00);
|
|
||||||
wait(var_00);
|
|
||||||
self notify("rocketReloadComplete");
|
|
||||||
}
|
|
||||||
|
|
||||||
wait 0.05;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 27
|
|
||||||
cleanupdronemissilefx(param_00,param_01,param_02)
|
|
||||||
{
|
|
||||||
param_00 waittill("death");
|
|
||||||
foreach(var_04 in param_02)
|
|
||||||
{
|
|
||||||
var_04 delete();
|
|
||||||
}
|
|
||||||
|
|
||||||
param_01 delete();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 28
|
|
||||||
updateshootinglocation()
|
|
||||||
{
|
|
||||||
self endon("swarm_player_removed");
|
|
||||||
level.swarm_targetent = spawn("script_model",(0,0,0));
|
|
||||||
level.swarm_targetent setmodel("tag_origin");
|
|
||||||
level.swarm_big_turret turretsetgroundaimentity(level.swarm_targetent);
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
var_00 = level.swarm_big_turret gettagorigin("tag_player");
|
|
||||||
var_01 = level.swarm_big_turret gettagorigin("tag_player") + anglestoforward(level.swarm_big_turret gettagangles("tag_player")) * 20000;
|
|
||||||
var_02 = bullettrace(var_00,var_01,0,level.swarm_big_turret);
|
|
||||||
var_03 = var_02["position"];
|
|
||||||
level.swarm_targetent.origin = var_03;
|
|
||||||
wait 0.05;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 29
|
|
||||||
rocketreloadsound(param_00)
|
|
||||||
{
|
|
||||||
self endon("rocketReloadComplete");
|
|
||||||
self endon("swarm_player_removed");
|
|
||||||
self playlocalsound("warbird_missile_reload_bed");
|
|
||||||
wait(0.5);
|
|
||||||
self playlocalsound("warbird_missile_reload");
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 30
|
|
||||||
showaerialmarker()
|
|
||||||
{
|
|
||||||
level.swarm_planemodel endon("death");
|
|
||||||
while(!isdefined(level.swarm_planemodel.swarmflying))
|
|
||||||
{
|
|
||||||
wait 0.05;
|
|
||||||
}
|
|
||||||
|
|
||||||
level.swarm_planemodel.showthreatmarker = 1;
|
|
||||||
level.swarm_planemodel thread maps\mp\killstreaks\_killstreaks::updateaerialkillstreakmarker();
|
|
||||||
level.swarm_planemodel common_scripts\utility::waittill_either("crashing","leaving");
|
|
||||||
level.swarm_planemodel.showthreatmarker = 0;
|
|
||||||
level.swarm_planemodel thread maps\mp\killstreaks\_killstreaks::updateaerialkillstreakmarker();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 31
|
|
||||||
setrandomswarmstartposition()
|
|
||||||
{
|
|
||||||
var_00 = level.mapcenter[2] + 3000;
|
|
||||||
var_01 = 2000;
|
|
||||||
var_02 = (0,randomint(360),0);
|
|
||||||
level.swarm_planemodel.angles = var_02;
|
|
||||||
level.swarm_planemodel.origin = level.swarm_planemodel.origin - vectornormalize(-1 * anglestoright(level.swarm_planemodel gettagangles("tag_origin"))) * var_01;
|
|
||||||
level.swarm_planemodel.origin = level.swarm_planemodel.origin + (0,0,var_00);
|
|
||||||
level.swarm_planemodel.destination2 = spawnstruct();
|
|
||||||
level.swarm_planemodel.destination2.origin = level.swarm_planemodel.origin;
|
|
||||||
level.swarm_planemodel.destination2.angles = level.swarm_planemodel.angles;
|
|
||||||
level.swarm_planemodel.origin = level.swarm_planemodel.origin + (0,0,65000);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 32
|
|
||||||
moveswarmtodestination(param_00)
|
|
||||||
{
|
|
||||||
self endon("death");
|
|
||||||
self endon("crashing");
|
|
||||||
level endon("game_ended");
|
|
||||||
level endon("swarm_player_removed");
|
|
||||||
if(!isdefined(param_00))
|
|
||||||
{
|
|
||||||
param_00 = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
thread rotateswarm(1,"off");
|
|
||||||
thread playentrysounddelayed();
|
|
||||||
level.swarm_planemodel scriptmodelplayanimdeltamotion("mp_seoul2_ks_callin","paladin_notetrack");
|
|
||||||
level.swarm_planemodel waittillmatch("engines_full","paladin_notetrack");
|
|
||||||
level.swarm_planemodel waittillmatch("downward_stop","paladin_notetrack");
|
|
||||||
if(param_00)
|
|
||||||
{
|
|
||||||
level.swarm_planemodel vehicle_jetbikesethoverforcescale(level.swarmrig,"tag_player");
|
|
||||||
thread rotateswarm(level.swarm_speed);
|
|
||||||
}
|
|
||||||
|
|
||||||
level.swarm_planemodel waittillmatch("end","paladin_notetrack");
|
|
||||||
level.swarm_planemodel scriptmodelclearanim();
|
|
||||||
level.swarm_planemodel scriptmodelplayanim("paladin_ks_loop","paladin_notetrack");
|
|
||||||
if(isdefined(level.swarm_planemodel.owner))
|
|
||||||
{
|
|
||||||
level.swarm_planemodel.closeflightsound = spawn("script_origin",(0,0,0));
|
|
||||||
level.swarm_planemodel.closeflightsound vehicle_jetbikesethoverforcescale(level.swarm_planemodel,"tag_origin",(0,0,0),(0,0,0));
|
|
||||||
level.swarm_planemodel.closeflightsound playloopsound("paladin_flight_loop_near");
|
|
||||||
}
|
|
||||||
|
|
||||||
level.swarm_planemodel.farflightsound = spawn("script_origin",(0,0,0));
|
|
||||||
level.swarm_planemodel.farflightsound vehicle_jetbikesethoverforcescale(level.swarm_planemodel,"tag_origin",(0,0,0),(0,0,0));
|
|
||||||
level.swarm_planemodel.farflightsound playloopsound("paladin_flight_loop_dist");
|
|
||||||
setupflightsounds();
|
|
||||||
level.swarm_planemodel.swarmflying = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 33
|
|
||||||
setupflightsounds()
|
|
||||||
{
|
|
||||||
if(isdefined(level.swarm_planemodel.closeflightsound))
|
|
||||||
{
|
|
||||||
level.swarm_planemodel.closeflightsound hide();
|
|
||||||
if(isdefined(level.swarm_planemodel.owner))
|
|
||||||
{
|
|
||||||
level.swarm_planemodel.closeflightsound showtoplayer(level.swarm_planemodel.owner);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(level.swarm_planemodel.farflightsound))
|
|
||||||
{
|
|
||||||
level.swarm_planemodel.farflightsound hide();
|
|
||||||
foreach(var_01 in level.players)
|
|
||||||
{
|
|
||||||
if(level.splitscreen || isdefined(level.swarm_planemodel.owner) && bothplayerssplitscreen(level.swarm_planemodel.owner,var_01))
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isdefined(level.swarm_planemodel.owner) && var_01 != level.swarm_planemodel.owner)
|
|
||||||
{
|
|
||||||
level.swarm_planemodel.farflightsound showtoplayer(var_01);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 34
|
|
||||||
bothplayerssplitscreen(param_00,param_01)
|
|
||||||
{
|
|
||||||
return param_00 issplitscreenplayer() && param_01 issplitscreenplayer();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 35
|
|
||||||
playerdelayrumble(param_00)
|
|
||||||
{
|
|
||||||
self endon("disconnect");
|
|
||||||
self endon("swarm_player_removed");
|
|
||||||
wait(param_00);
|
|
||||||
self playrumbleonentity("orbital_laser_charge");
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 36
|
|
||||||
playentrysounddelayed()
|
|
||||||
{
|
|
||||||
self endon("death");
|
|
||||||
self endon("crashing");
|
|
||||||
level endon("game_ended");
|
|
||||||
level endon("swarm_player_removed");
|
|
||||||
wait(1);
|
|
||||||
playsoundatpos(level.swarm_planemodel.destination2.origin,"paladin_orbit_drop");
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 37
|
|
||||||
swarmexit(param_00)
|
|
||||||
{
|
|
||||||
level.swarm_planemodel endon("crashing");
|
|
||||||
maps\mp\gametypes\_hostmigration::waitlongdurationwithhostmigrationpause(param_00);
|
|
||||||
level.swarm_planemodel notify("leaving");
|
|
||||||
level.swarm_planemodel unlink();
|
|
||||||
level.swarm_planemodel.fxent unlink();
|
|
||||||
level.swarm_planemodel scriptmodelplayanimdeltamotion("paladin_ks_exit","paladin_notetrack");
|
|
||||||
wait(4.8);
|
|
||||||
cleanupswarments();
|
|
||||||
level.swarm_planemodel delete();
|
|
||||||
level.swarminuse = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 38
|
|
||||||
setupplayersduringstreak()
|
|
||||||
{
|
|
||||||
level.swarm_chatter_timer = 0;
|
|
||||||
foreach(var_01 in level.players)
|
|
||||||
{
|
|
||||||
if(isdefined(var_01.team) && level.swarm_planemodel.owner.team == var_01.team)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
else if(!isdefined(var_01.team))
|
|
||||||
{
|
|
||||||
var_01 onplayerspawnedduringstreak();
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
level thread onplayerconnectduringstreak();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 39
|
|
||||||
onplayerconnectduringstreak()
|
|
||||||
{
|
|
||||||
level endon("game_ended");
|
|
||||||
level.swarm_planemodel.owner endon("swarm_player_removed");
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
level waittill("connected",var_00);
|
|
||||||
var_00 thread onplayerspawnedduringstreak();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 40
|
|
||||||
onplayerspawnedduringstreak()
|
|
||||||
{
|
|
||||||
self waittill("spawned_player");
|
|
||||||
setupflightsounds();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 41
|
|
||||||
turretdeletesoundent()
|
|
||||||
{
|
|
||||||
if(isdefined(self.soundent))
|
|
||||||
{
|
|
||||||
self.soundent delete();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 42
|
|
||||||
playerresetswarmomnvars()
|
|
||||||
{
|
|
||||||
self setclientomnvar("ui_killstreak_optic",0);
|
|
||||||
self setclientomnvar("ui_osp_reload_bitfield",0);
|
|
||||||
self setclientomnvar("ui_solar_beam",0);
|
|
||||||
maps\mp\killstreaks\_aerial_utility::playerdisablestreakstatic();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Function Number: 43
|
|
||||||
rotateswarm(param_00,param_01)
|
|
||||||
{
|
|
||||||
level notify("stop_rotateSwarm_thread");
|
|
||||||
level endon("stop_rotateSwarm_thread");
|
|
||||||
if(!isdefined(param_01))
|
|
||||||
{
|
|
||||||
param_01 = "on";
|
|
||||||
}
|
|
||||||
|
|
||||||
if(param_01 == "on")
|
|
||||||
{
|
|
||||||
level.swarmrig rotateyaw(360,param_00,0.5);
|
|
||||||
wait(param_00);
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
level.swarmrig rotateyaw(360,param_00);
|
|
||||||
wait(param_00);
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(param_01 == "off")
|
|
||||||
{
|
|
||||||
var_02 = 10;
|
|
||||||
var_03 = param_00 / 360 * var_02;
|
|
||||||
level.swarmrig rotateyaw(level.swarmrig.angles[2] + var_02,var_03,0,var_03);
|
|
||||||
}
|
|
||||||
}
|
|
99
AW/PC/aitype/ally_atlas_ar.gsc
Normal file
99
AW/PC/aitype/ally_atlas_ar.gsc
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
/*******************************************************************
|
||||||
|
* Decompiled By: Bog
|
||||||
|
* Decompiled File: ally_atlas_ar.gsc
|
||||||
|
* Game: Call of Duty: Advanced Warfare
|
||||||
|
* Platform: PC
|
||||||
|
* Function Count: 3
|
||||||
|
* Decompile Time: 42 ms
|
||||||
|
* Timestamp: 4/22/2024 1:56:57 AM
|
||||||
|
*******************************************************************/
|
||||||
|
|
||||||
|
//Function Number: 1
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
self.animtree = "";
|
||||||
|
self.additionalassets = "";
|
||||||
|
self.team = "allies";
|
||||||
|
self.type = "human";
|
||||||
|
self.subclass = "regular";
|
||||||
|
self.accuracy = 0.2;
|
||||||
|
self.health = 100;
|
||||||
|
self.grenadeweapon = "fraggrenade";
|
||||||
|
self.grenadeammo = 0;
|
||||||
|
self.secondaryweapon = "";
|
||||||
|
self.sidearm = "iw5_titan45_sp";
|
||||||
|
if(isai(self))
|
||||||
|
{
|
||||||
|
self setengagementmindist(256,0);
|
||||||
|
self setengagementmaxdist(768,1024);
|
||||||
|
}
|
||||||
|
|
||||||
|
switch(codescripts\character::get_random_weapon(10))
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
self.weapon = "iw5_himar_sp_himarscope";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 1:
|
||||||
|
self.weapon = "iw5_himar_sp_opticsacog2";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 2:
|
||||||
|
self.weapon = "iw5_himar_sp_opticsreddot";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 3:
|
||||||
|
self.weapon = "iw5_himar_sp_variablereddot";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 4:
|
||||||
|
self.weapon = "iw5_himar_sp_opticstargetenhancer";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 5:
|
||||||
|
self.weapon = "iw5_bal27_sp";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 6:
|
||||||
|
self.weapon = "iw5_bal27_sp_opticsacog2";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 7:
|
||||||
|
self.weapon = "iw5_bal27_sp_opticsreddot";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 8:
|
||||||
|
self.weapon = "iw5_bal27_sp_variablereddot";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 9:
|
||||||
|
self.weapon = "iw5_bal27_sp_opticstargetenhancer";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
character\character_atlas_ar::main();
|
||||||
|
}
|
||||||
|
|
||||||
|
//Function Number: 2
|
||||||
|
spawner()
|
||||||
|
{
|
||||||
|
self setspawnerteam("allies");
|
||||||
|
}
|
||||||
|
|
||||||
|
//Function Number: 3
|
||||||
|
precache()
|
||||||
|
{
|
||||||
|
character\character_atlas_ar::precache();
|
||||||
|
precacheitem("iw5_himar_sp_himarscope");
|
||||||
|
precacheitem("iw5_himar_sp_opticsacog2");
|
||||||
|
precacheitem("iw5_himar_sp_opticsreddot");
|
||||||
|
precacheitem("iw5_himar_sp_variablereddot");
|
||||||
|
precacheitem("iw5_himar_sp_opticstargetenhancer");
|
||||||
|
precacheitem("iw5_bal27_sp");
|
||||||
|
precacheitem("iw5_bal27_sp_opticsacog2");
|
||||||
|
precacheitem("iw5_bal27_sp_opticsreddot");
|
||||||
|
precacheitem("iw5_bal27_sp_variablereddot");
|
||||||
|
precacheitem("iw5_bal27_sp_opticstargetenhancer");
|
||||||
|
precacheitem("iw5_titan45_sp");
|
||||||
|
precacheitem("fraggrenade");
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user