mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-07-06 13:57:50 -05:00
1684 lines
33 KiB
Plaintext
1684 lines
33 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: maps\mp\perks\_perkfunctions.gsc
|
|
* Game: Call of Duty: Modern Warfare 3
|
|
* Platform: PC
|
|
* Function Count: 131
|
|
* Decompile Time: 2696 ms
|
|
* Timestamp: 10/27/2023 2:14:48 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
setoverkillpro()
|
|
{
|
|
}
|
|
|
|
//Function Number: 2
|
|
unsetoverkillpro()
|
|
{
|
|
}
|
|
|
|
//Function Number: 3
|
|
setempimmune()
|
|
{
|
|
}
|
|
|
|
//Function Number: 4
|
|
unsetempimmune()
|
|
{
|
|
}
|
|
|
|
//Function Number: 5
|
|
setautospot()
|
|
{
|
|
autospotadswatcher();
|
|
autospotdeathwatcher();
|
|
}
|
|
|
|
//Function Number: 6
|
|
autospotdeathwatcher()
|
|
{
|
|
self waittill("death");
|
|
self endon("disconnect");
|
|
self endon("endAutoSpotAdsWatcher");
|
|
level endon("game_ended");
|
|
self autospotoverlayoff();
|
|
}
|
|
|
|
//Function Number: 7
|
|
unsetautospot()
|
|
{
|
|
self notify("endAutoSpotAdsWatcher");
|
|
self autospotoverlayoff();
|
|
}
|
|
|
|
//Function Number: 8
|
|
autospotadswatcher()
|
|
{
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
self endon("endAutoSpotAdsWatcher");
|
|
level endon("game_ended");
|
|
var_00 = 0;
|
|
for(;;)
|
|
{
|
|
wait 0.05;
|
|
if(self isusingturret())
|
|
{
|
|
self autospotoverlayoff();
|
|
continue;
|
|
}
|
|
|
|
var_01 = self playerads();
|
|
if(var_01 < 1 && var_00)
|
|
{
|
|
var_00 = 0;
|
|
self autospotoverlayoff();
|
|
}
|
|
|
|
if(var_01 < 1 && !var_00)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(var_01 == 1 && !var_00)
|
|
{
|
|
var_00 = 1;
|
|
self autospotoverlayon();
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 9
|
|
setregenspeed()
|
|
{
|
|
}
|
|
|
|
//Function Number: 10
|
|
unsetregenspeed()
|
|
{
|
|
}
|
|
|
|
//Function Number: 11
|
|
sethardshell()
|
|
{
|
|
self.shellshockreduction = 0.25;
|
|
}
|
|
|
|
//Function Number: 12
|
|
unsethardshell()
|
|
{
|
|
self.shellshockreduction = 0;
|
|
}
|
|
|
|
//Function Number: 13
|
|
setsharpfocus()
|
|
{
|
|
self setviewkickscale(0.5);
|
|
}
|
|
|
|
//Function Number: 14
|
|
unsetsharpfocus()
|
|
{
|
|
self setviewkickscale(1);
|
|
}
|
|
|
|
//Function Number: 15
|
|
setdoubleload()
|
|
{
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
self endon("endDoubleLoad");
|
|
level endon("game_ended");
|
|
for(;;)
|
|
{
|
|
self waittill("reload");
|
|
var_00 = self getweaponslist("primary");
|
|
foreach(var_02 in var_00)
|
|
{
|
|
var_03 = self getweaponammoclip(var_02);
|
|
var_04 = weaponclipsize(var_02);
|
|
var_05 = var_04 - var_03;
|
|
var_06 = self getweaponammostock(var_02);
|
|
if(var_03 != var_04 && var_06 > 0)
|
|
{
|
|
if(var_03 + var_06 >= var_04)
|
|
{
|
|
self setweaponammoclip(var_02,var_04);
|
|
self setweaponammostock(var_02,var_06 - var_05);
|
|
continue;
|
|
}
|
|
|
|
self setweaponammoclip(var_02,var_03 + var_06);
|
|
if(var_06 - var_05 > 0)
|
|
{
|
|
self setweaponammostock(var_02,var_06 - var_05);
|
|
continue;
|
|
}
|
|
|
|
self setweaponammostock(var_02,0);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 16
|
|
unsetdoubleload()
|
|
{
|
|
self notify("endDoubleLoad");
|
|
}
|
|
|
|
//Function Number: 17
|
|
setmarksman()
|
|
{
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
level endon("game_ended");
|
|
maps\mp\_utility::setrecoilscale(10);
|
|
self.recoilscale = 10;
|
|
}
|
|
|
|
//Function Number: 18
|
|
unsetmarksman()
|
|
{
|
|
maps\mp\_utility::setrecoilscale(0);
|
|
self.recoilscale = 0;
|
|
}
|
|
|
|
//Function Number: 19
|
|
setstunresistance()
|
|
{
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
level endon("game_ended");
|
|
self.stunscaler = 0.5;
|
|
}
|
|
|
|
//Function Number: 20
|
|
unsetstunresistance()
|
|
{
|
|
self.stunscaler = 1;
|
|
}
|
|
|
|
//Function Number: 21
|
|
setsteadyaimpro()
|
|
{
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
level endon("game_ended");
|
|
self setaimspreadmovementscale(0.5);
|
|
}
|
|
|
|
//Function Number: 22
|
|
unsetsteadyaimpro()
|
|
{
|
|
self notify("end_SteadyAimPro");
|
|
self setaimspreadmovementscale(1);
|
|
}
|
|
|
|
//Function Number: 23
|
|
blastshieldusetracker(param_00,param_01)
|
|
{
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
self endon("end_perkUseTracker");
|
|
level endon("game_ended");
|
|
for(;;)
|
|
{
|
|
self waittill("empty_offhand");
|
|
if(!common_scripts\utility::isoffhandweaponenabled())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
self [[ param_01 ]](maps\mp\_utility::_hasperk("_specialty_blastshield"));
|
|
}
|
|
}
|
|
|
|
//Function Number: 24
|
|
perkusedeathtracker()
|
|
{
|
|
self endon("disconnect");
|
|
self waittill("death");
|
|
self._useperkenabled = undefined;
|
|
}
|
|
|
|
//Function Number: 25
|
|
setrearview()
|
|
{
|
|
}
|
|
|
|
//Function Number: 26
|
|
unsetrearview()
|
|
{
|
|
self notify("end_perkUseTracker");
|
|
}
|
|
|
|
//Function Number: 27
|
|
setendgame()
|
|
{
|
|
if(isdefined(self.endgame))
|
|
{
|
|
return;
|
|
}
|
|
|
|
self.maxhealth = maps\mp\gametypes\_tweakables::gettweakablevalue("player","maxhealth") * 4;
|
|
self.health = self.maxhealth;
|
|
self.endgame = 1;
|
|
self.attackertable[0] = "";
|
|
self visionsetnakedforplayer("end_game",5);
|
|
thread endgamedeath(7);
|
|
self.hasdonecombat = 1;
|
|
}
|
|
|
|
//Function Number: 28
|
|
unsetendgame()
|
|
{
|
|
self notify("stopEndGame");
|
|
self.endgame = undefined;
|
|
revertvisionset();
|
|
if(!isdefined(self.endgametimer))
|
|
{
|
|
return;
|
|
}
|
|
|
|
self.endgametimer maps\mp\gametypes\_hud_util::destroyelem();
|
|
self.endgameicon maps\mp\gametypes\_hud_util::destroyelem();
|
|
}
|
|
|
|
//Function Number: 29
|
|
revertvisionset()
|
|
{
|
|
if(isdefined(level.nukedetonated))
|
|
{
|
|
self visionsetnakedforplayer(level.nukevisionset,1);
|
|
return;
|
|
}
|
|
|
|
self visionsetnakedforplayer("",1);
|
|
}
|
|
|
|
//Function Number: 30
|
|
endgamedeath(param_00)
|
|
{
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
self endon("joined_team");
|
|
level endon("game_ended");
|
|
self endon("stopEndGame");
|
|
wait param_00 + 1;
|
|
maps\mp\_utility::_suicide();
|
|
}
|
|
|
|
//Function Number: 31
|
|
setsiege()
|
|
{
|
|
thread tracksiegeenable();
|
|
thread tracksiegedissable();
|
|
}
|
|
|
|
//Function Number: 32
|
|
tracksiegeenable()
|
|
{
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
self endon("stop_trackSiege");
|
|
for(;;)
|
|
{
|
|
self waittill("gambit_on");
|
|
self.movespeedscaler = 0;
|
|
maps\mp\gametypes\_weapons::updatemovespeedscale();
|
|
var_00 = weaponclass(self getcurrentweapon());
|
|
if(var_00 == "pistol" || var_00 == "smg")
|
|
{
|
|
self setspreadoverride(1);
|
|
}
|
|
else
|
|
{
|
|
self setspreadoverride(2);
|
|
}
|
|
|
|
self player_recoilscaleon(0);
|
|
self allowjump(0);
|
|
}
|
|
}
|
|
|
|
//Function Number: 33
|
|
tracksiegedissable()
|
|
{
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
self endon("stop_trackSiege");
|
|
for(;;)
|
|
{
|
|
self waittill("gambit_off");
|
|
unsetsiege();
|
|
}
|
|
}
|
|
|
|
//Function Number: 34
|
|
stancestatelistener()
|
|
{
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
self notifyonplayercommand("adjustedStance","+stance");
|
|
for(;;)
|
|
{
|
|
self waittill("adjustedStance");
|
|
if(self.movespeedscaler != 0)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
unsetsiege();
|
|
}
|
|
}
|
|
|
|
//Function Number: 35
|
|
jumpstatelistener()
|
|
{
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
self notifyonplayercommand("jumped","+goStand");
|
|
for(;;)
|
|
{
|
|
self waittill("jumped");
|
|
if(self.movespeedscaler != 0)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
unsetsiege();
|
|
}
|
|
}
|
|
|
|
//Function Number: 36
|
|
unsetsiege()
|
|
{
|
|
self.movespeedscaler = 1;
|
|
self resetspreadoverride();
|
|
maps\mp\gametypes\_weapons::updatemovespeedscale();
|
|
self player_recoilscaleoff();
|
|
self allowjump(1);
|
|
}
|
|
|
|
//Function Number: 37
|
|
setchallenger()
|
|
{
|
|
if(!level.hardcoremode)
|
|
{
|
|
self.maxhealth = maps\mp\gametypes\_tweakables::gettweakablevalue("player","maxhealth");
|
|
if(isdefined(self.xpscaler) && self.xpscaler == 1 && self.maxhealth > 30)
|
|
{
|
|
self.xpscaler = 2;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 38
|
|
unsetchallenger()
|
|
{
|
|
self.xpscaler = 1;
|
|
}
|
|
|
|
//Function Number: 39
|
|
setsaboteur()
|
|
{
|
|
self.objectivescaler = 1.2;
|
|
}
|
|
|
|
//Function Number: 40
|
|
unsetsaboteur()
|
|
{
|
|
self.objectivescaler = 1;
|
|
}
|
|
|
|
//Function Number: 41
|
|
setlightweight()
|
|
{
|
|
self.movespeedscaler = maps\mp\_utility::lightweightscalar();
|
|
maps\mp\gametypes\_weapons::updatemovespeedscale();
|
|
}
|
|
|
|
//Function Number: 42
|
|
unsetlightweight()
|
|
{
|
|
self.movespeedscaler = 1;
|
|
maps\mp\gametypes\_weapons::updatemovespeedscale();
|
|
}
|
|
|
|
//Function Number: 43
|
|
setblackbox()
|
|
{
|
|
self.killstreakscaler = 1.5;
|
|
}
|
|
|
|
//Function Number: 44
|
|
unsetblackbox()
|
|
{
|
|
self.killstreakscaler = 1;
|
|
}
|
|
|
|
//Function Number: 45
|
|
setsteelnerves()
|
|
{
|
|
maps\mp\_utility::giveperk("specialty_bulletaccuracy",1);
|
|
maps\mp\_utility::giveperk("specialty_holdbreath",0);
|
|
}
|
|
|
|
//Function Number: 46
|
|
unsetsteelnerves()
|
|
{
|
|
maps\mp\_utility::_unsetperk("specialty_bulletaccuracy");
|
|
maps\mp\_utility::_unsetperk("specialty_holdbreath");
|
|
}
|
|
|
|
//Function Number: 47
|
|
setdelaymine()
|
|
{
|
|
}
|
|
|
|
//Function Number: 48
|
|
unsetdelaymine()
|
|
{
|
|
}
|
|
|
|
//Function Number: 49
|
|
setbackshield()
|
|
{
|
|
self attachshieldmodel("weapon_riot_shield_mp","tag_shield_back");
|
|
}
|
|
|
|
//Function Number: 50
|
|
unsetbackshield()
|
|
{
|
|
self detachshieldmodel("weapon_riot_shield_mp","tag_shield_back");
|
|
}
|
|
|
|
//Function Number: 51
|
|
setlocaljammer()
|
|
{
|
|
if(!maps\mp\_utility::isemped())
|
|
{
|
|
self radarjamon();
|
|
}
|
|
}
|
|
|
|
//Function Number: 52
|
|
unsetlocaljammer()
|
|
{
|
|
self radarjamoff();
|
|
}
|
|
|
|
//Function Number: 53
|
|
setac130()
|
|
{
|
|
thread killstreakthink("ac130",7,"end_ac130Think");
|
|
}
|
|
|
|
//Function Number: 54
|
|
unsetac130()
|
|
{
|
|
self notify("end_ac130Think");
|
|
}
|
|
|
|
//Function Number: 55
|
|
setsentryminigun()
|
|
{
|
|
thread killstreakthink("airdrop_sentry_minigun",2,"end_sentry_minigunThink");
|
|
}
|
|
|
|
//Function Number: 56
|
|
unsetsentryminigun()
|
|
{
|
|
self notify("end_sentry_minigunThink");
|
|
}
|
|
|
|
//Function Number: 57
|
|
settank()
|
|
{
|
|
thread killstreakthink("tank",6,"end_tankThink");
|
|
}
|
|
|
|
//Function Number: 58
|
|
unsettank()
|
|
{
|
|
self notify("end_tankThink");
|
|
}
|
|
|
|
//Function Number: 59
|
|
setprecision_airstrike()
|
|
{
|
|
thread killstreakthink("precision_airstrike",6,"end_precision_airstrike");
|
|
}
|
|
|
|
//Function Number: 60
|
|
unsetprecision_airstrike()
|
|
{
|
|
self notify("end_precision_airstrike");
|
|
}
|
|
|
|
//Function Number: 61
|
|
setpredatormissile()
|
|
{
|
|
thread killstreakthink("predator_missile",4,"end_predator_missileThink");
|
|
}
|
|
|
|
//Function Number: 62
|
|
unsetpredatormissile()
|
|
{
|
|
self notify("end_predator_missileThink");
|
|
}
|
|
|
|
//Function Number: 63
|
|
sethelicopterminigun()
|
|
{
|
|
thread killstreakthink("helicopter_minigun",5,"end_helicopter_minigunThink");
|
|
}
|
|
|
|
//Function Number: 64
|
|
unsethelicopterminigun()
|
|
{
|
|
self notify("end_helicopter_minigunThink");
|
|
}
|
|
|
|
//Function Number: 65
|
|
killstreakthink(param_00,param_01,param_02)
|
|
{
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
self endon(param_02);
|
|
for(;;)
|
|
{
|
|
self waittill("killed_enemy");
|
|
if(self.pers["cur_kill_streak"] != param_01)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
thread maps\mp\killstreaks\_killstreaks::givekillstreak(param_00);
|
|
thread maps\mp\gametypes\_hud_message::killstreaksplashnotify(param_00,param_01);
|
|
}
|
|
}
|
|
|
|
//Function Number: 66
|
|
setthermal()
|
|
{
|
|
self thermalvisionon();
|
|
}
|
|
|
|
//Function Number: 67
|
|
unsetthermal()
|
|
{
|
|
self thermalvisionoff();
|
|
}
|
|
|
|
//Function Number: 68
|
|
setonemanarmy()
|
|
{
|
|
thread onemanarmyweaponchangetracker();
|
|
}
|
|
|
|
//Function Number: 69
|
|
unsetonemanarmy()
|
|
{
|
|
self notify("stop_oneManArmyTracker");
|
|
}
|
|
|
|
//Function Number: 70
|
|
onemanarmyweaponchangetracker()
|
|
{
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
level endon("game_ended");
|
|
self endon("stop_oneManArmyTracker");
|
|
for(;;)
|
|
{
|
|
self waittill("weapon_change",var_00);
|
|
if(var_00 != "onemanarmy_mp")
|
|
{
|
|
continue;
|
|
}
|
|
|
|
thread selectonemanarmyclass();
|
|
}
|
|
}
|
|
|
|
//Function Number: 71
|
|
isonemanarmymenu(param_00)
|
|
{
|
|
if(param_00 == game["menu_onemanarmy"])
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(isdefined(game["menu_onemanarmy_defaults_splitscreen"]) && param_00 == game["menu_onemanarmy_defaults_splitscreen"])
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(isdefined(game["menu_onemanarmy_custom_splitscreen"]) && param_00 == game["menu_onemanarmy_custom_splitscreen"])
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 72
|
|
selectonemanarmyclass()
|
|
{
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
level endon("game_ended");
|
|
common_scripts\utility::_disableweaponswitch();
|
|
common_scripts\utility::_disableoffhandweapons();
|
|
common_scripts\utility::_disableusability();
|
|
self openpopupmenu(game["menu_onemanarmy"]);
|
|
thread closeomamenuondeath();
|
|
self waittill("menuresponse",var_00,var_01);
|
|
common_scripts\utility::_enableweaponswitch();
|
|
common_scripts\utility::_enableoffhandweapons();
|
|
common_scripts\utility::_enableusability();
|
|
if(var_01 == "back" || !isonemanarmymenu(var_00) || maps\mp\_utility::isusingremote())
|
|
{
|
|
if(self getcurrentweapon() == "onemanarmy_mp")
|
|
{
|
|
common_scripts\utility::_disableweaponswitch();
|
|
common_scripts\utility::_disableoffhandweapons();
|
|
common_scripts\utility::_disableusability();
|
|
self switchtoweapon(common_scripts\utility::getlastweapon());
|
|
self waittill("weapon_change");
|
|
common_scripts\utility::_enableweaponswitch();
|
|
common_scripts\utility::_enableoffhandweapons();
|
|
common_scripts\utility::_enableusability();
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
thread giveonemanarmyclass(var_01);
|
|
}
|
|
|
|
//Function Number: 73
|
|
closeomamenuondeath()
|
|
{
|
|
self endon("menuresponse");
|
|
self endon("disconnect");
|
|
level endon("game_ended");
|
|
self waittill("death");
|
|
common_scripts\utility::_enableweaponswitch();
|
|
common_scripts\utility::_enableoffhandweapons();
|
|
common_scripts\utility::_enableusability();
|
|
self closepopupmenu();
|
|
}
|
|
|
|
//Function Number: 74
|
|
giveonemanarmyclass(param_00)
|
|
{
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
level endon("game_ended");
|
|
if(maps\mp\_utility::_hasperk("specialty_omaquickchange"))
|
|
{
|
|
var_01 = 3;
|
|
self playlocalsound("foly_onemanarmy_bag3_plr");
|
|
self playsoundtoteam("foly_onemanarmy_bag3_npc","allies",self);
|
|
self playsoundtoteam("foly_onemanarmy_bag3_npc","axis",self);
|
|
}
|
|
else
|
|
{
|
|
var_01 = 6;
|
|
self playlocalsound("foly_onemanarmy_bag6_plr");
|
|
self playsoundtoteam("foly_onemanarmy_bag6_npc","allies",self);
|
|
self playsoundtoteam("foly_onemanarmy_bag6_npc","axis",self);
|
|
}
|
|
|
|
thread omausebar(var_01);
|
|
common_scripts\utility::_disableweapon();
|
|
common_scripts\utility::_disableoffhandweapons();
|
|
common_scripts\utility::_disableusability();
|
|
wait var_01;
|
|
common_scripts\utility::_enableweapon();
|
|
common_scripts\utility::_enableoffhandweapons();
|
|
common_scripts\utility::_enableusability();
|
|
self.omaclasschanged = 1;
|
|
maps\mp\gametypes\_class::giveloadout(self.pers["team"],param_00,0);
|
|
if(isdefined(self.carryflag))
|
|
{
|
|
self attach(self.carryflag,"J_spine4",1);
|
|
}
|
|
|
|
self notify("changed_kit");
|
|
level notify("changed_kit");
|
|
}
|
|
|
|
//Function Number: 75
|
|
omausebar(param_00)
|
|
{
|
|
self endon("disconnect");
|
|
var_01 = maps\mp\gametypes\_hud_util::createprimaryprogressbar(0,-25);
|
|
var_02 = maps\mp\gametypes\_hud_util::createprimaryprogressbartext(0,-25);
|
|
var_02 settext(&"MPUI_CHANGING_KIT");
|
|
var_01 maps\mp\gametypes\_hud_util::updatebar(0,1 / param_00);
|
|
var_03 = 0;
|
|
while(var_03 < param_00 && isalive(self) && !level.gameended)
|
|
{
|
|
wait 0.05;
|
|
var_03 = var_03 + 0.05;
|
|
}
|
|
|
|
var_01 maps\mp\gametypes\_hud_util::destroyelem();
|
|
var_02 maps\mp\gametypes\_hud_util::destroyelem();
|
|
}
|
|
|
|
//Function Number: 76
|
|
setblastshield()
|
|
{
|
|
self setweaponhudiconoverride("primaryoffhand","specialty_blastshield");
|
|
}
|
|
|
|
//Function Number: 77
|
|
unsetblastshield()
|
|
{
|
|
self setweaponhudiconoverride("primaryoffhand","none");
|
|
}
|
|
|
|
//Function Number: 78
|
|
setfreefall()
|
|
{
|
|
}
|
|
|
|
//Function Number: 79
|
|
unsetfreefall()
|
|
{
|
|
}
|
|
|
|
//Function Number: 80
|
|
settacticalinsertion()
|
|
{
|
|
self setoffhandsecondaryclass("flash");
|
|
maps\mp\_utility::_giveweapon("flare_mp",0);
|
|
self givestartammo("flare_mp");
|
|
thread monitortiuse();
|
|
}
|
|
|
|
//Function Number: 81
|
|
unsettacticalinsertion()
|
|
{
|
|
self notify("end_monitorTIUse");
|
|
}
|
|
|
|
//Function Number: 82
|
|
clearprevioustispawnpoint()
|
|
{
|
|
common_scripts\utility::waittill_any("disconnect","joined_team","joined_spectators");
|
|
if(isdefined(self.setspawnpoint))
|
|
{
|
|
deleteti(self.setspawnpoint);
|
|
}
|
|
}
|
|
|
|
//Function Number: 83
|
|
updatetispawnposition()
|
|
{
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
level endon("game_ended");
|
|
self endon("end_monitorTIUse");
|
|
while(maps\mp\_utility::isreallyalive(self))
|
|
{
|
|
if(isvalidtispawnposition())
|
|
{
|
|
self.tispawnposition = self.origin;
|
|
}
|
|
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
//Function Number: 84
|
|
isvalidtispawnposition()
|
|
{
|
|
if(canspawn(self.origin) && self isonground())
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 85
|
|
monitortiuse()
|
|
{
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
level endon("game_ended");
|
|
self endon("end_monitorTIUse");
|
|
thread updatetispawnposition();
|
|
thread clearprevioustispawnpoint();
|
|
for(;;)
|
|
{
|
|
self waittill("grenade_fire",var_00,var_01);
|
|
if(var_01 != "flare_mp")
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(self.setspawnpoint))
|
|
{
|
|
deleteti(self.setspawnpoint);
|
|
}
|
|
|
|
if(!isdefined(self.tispawnposition))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(maps\mp\_utility::touchingbadtrigger())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_02 = playerphysicstrace(self.tispawnposition + (0,0,16),self.tispawnposition - (0,0,2048)) + (0,0,1);
|
|
var_03 = spawn("script_model",var_02);
|
|
var_03.angles = self.angles;
|
|
var_03.team = self.team;
|
|
var_03.owner = self;
|
|
var_03.enemytrigger = spawn("script_origin",var_02);
|
|
var_03 thread glowsticksetupandwaitfordeath(self);
|
|
var_03.playerspawnpos = self.tispawnposition;
|
|
var_03 thread maps\mp\gametypes\_weapons::createbombsquadmodel("weapon_light_stick_tactical_bombsquad","tag_fire_fx",level.otherteam[self.team],self);
|
|
self.setspawnpoint = var_03;
|
|
}
|
|
}
|
|
|
|
//Function Number: 86
|
|
glowsticksetupandwaitfordeath(param_00)
|
|
{
|
|
self setmodel(level.spawnglowmodel["enemy"]);
|
|
if(level.teambased)
|
|
{
|
|
maps\mp\_entityheadicons::setteamheadicon(self.team,(0,0,20));
|
|
}
|
|
else
|
|
{
|
|
maps\mp\_entityheadicons::setplayerheadicon(param_00,(0,0,20));
|
|
}
|
|
|
|
thread glowstickdamagelistener(param_00);
|
|
thread glowstickenemyuselistener(param_00);
|
|
thread glowstickuselistener(param_00);
|
|
thread glowstickteamupdater(level.otherteam[self.team],level.spawnglow["enemy"],param_00);
|
|
var_01 = spawn("script_model",self.origin + (0,0,0));
|
|
var_01.angles = self.angles;
|
|
var_01 setmodel(level.spawnglowmodel["friendly"]);
|
|
var_01 setcontents(0);
|
|
var_01 thread glowstickteamupdater(self.team,level.spawnglow["friendly"],param_00);
|
|
var_01 playloopsound("emt_road_flare_burn");
|
|
self waittill("death");
|
|
var_01 stoploopsound();
|
|
var_01 delete();
|
|
}
|
|
|
|
//Function Number: 87
|
|
glowstickteamupdater(param_00,param_01,param_02)
|
|
{
|
|
self endon("death");
|
|
wait 0.05;
|
|
var_03 = self gettagangles("tag_fire_fx");
|
|
var_04 = spawnfx(param_01,self gettagorigin("tag_fire_fx"),anglestoforward(var_03),anglestoup(var_03));
|
|
triggerfx(var_04);
|
|
thread deleteondeath(var_04);
|
|
for(;;)
|
|
{
|
|
self hide();
|
|
var_04 hide();
|
|
foreach(var_06 in level.players)
|
|
{
|
|
if(var_06.team == param_00 && level.teambased)
|
|
{
|
|
self showtoplayer(var_06);
|
|
var_04 showtoplayer(var_06);
|
|
continue;
|
|
}
|
|
|
|
if(!level.teambased && var_06 == param_02 && param_01 == level.spawnglow["friendly"])
|
|
{
|
|
self showtoplayer(var_06);
|
|
var_04 showtoplayer(var_06);
|
|
continue;
|
|
}
|
|
|
|
if(!level.teambased && var_06 != param_02 && param_01 == level.spawnglow["enemy"])
|
|
{
|
|
self showtoplayer(var_06);
|
|
var_04 showtoplayer(var_06);
|
|
}
|
|
}
|
|
|
|
level common_scripts\utility::waittill_either("joined_team","player_spawned");
|
|
}
|
|
}
|
|
|
|
//Function Number: 88
|
|
deleteondeath(param_00)
|
|
{
|
|
self waittill("death");
|
|
if(isdefined(param_00))
|
|
{
|
|
param_00 delete();
|
|
}
|
|
}
|
|
|
|
//Function Number: 89
|
|
glowstickdamagelistener(param_00)
|
|
{
|
|
self endon("death");
|
|
self setcandamage(1);
|
|
self.health = 999999;
|
|
self.maxhealth = 100;
|
|
self.damagetaken = 0;
|
|
for(;;)
|
|
{
|
|
self waittill("damage",var_01,var_02,var_03,var_04,var_05,var_06,var_07,var_08,var_09,var_0A);
|
|
if(!maps\mp\gametypes\_weapons::friendlyfirecheck(self.owner,var_02))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(var_0A))
|
|
{
|
|
switch(var_0A)
|
|
{
|
|
case "flash_grenade_mp":
|
|
case "smoke_grenade_mp":
|
|
case "concussion_grenade_mp":
|
|
break;
|
|
}
|
|
}
|
|
|
|
if(!isdefined(self))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(var_05 == "MOD_MELEE")
|
|
{
|
|
self.damagetaken = self.damagetaken + self.maxhealth;
|
|
}
|
|
|
|
if(isdefined(var_09) && var_09 & level.idflags_penetration)
|
|
{
|
|
self.wasdamagedfrombulletpenetration = 1;
|
|
}
|
|
|
|
self.wasdamaged = 1;
|
|
self.damagetaken = self.damagetaken + var_01;
|
|
if(isplayer(var_02))
|
|
{
|
|
var_02 maps\mp\gametypes\_damagefeedback::updatedamagefeedback("tactical_insertion");
|
|
}
|
|
|
|
if(self.damagetaken >= self.maxhealth)
|
|
{
|
|
if(isdefined(param_00) && var_02 != param_00)
|
|
{
|
|
var_02 notify("destroyed_insertion",param_00);
|
|
var_02 notify("destroyed_explosive");
|
|
param_00 thread maps\mp\_utility::leaderdialogonplayer("ti_destroyed");
|
|
}
|
|
|
|
var_02 thread deleteti(self);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 90
|
|
glowstickuselistener(param_00)
|
|
{
|
|
self endon("death");
|
|
level endon("game_ended");
|
|
param_00 endon("disconnect");
|
|
self setcursorhint("HINT_NOICON");
|
|
self sethintstring(&"MP_PATCH_PICKUP_TI");
|
|
thread updateenemyuse(param_00);
|
|
for(;;)
|
|
{
|
|
self waittill("trigger",var_01);
|
|
var_01 playsound("chemlight_pu");
|
|
var_01 thread settacticalinsertion();
|
|
var_01 thread deleteti(self);
|
|
}
|
|
}
|
|
|
|
//Function Number: 91
|
|
updateenemyuse(param_00)
|
|
{
|
|
self endon("death");
|
|
for(;;)
|
|
{
|
|
maps\mp\_utility::setselfusable(param_00);
|
|
level common_scripts\utility::waittill_either("joined_team","player_spawned");
|
|
}
|
|
}
|
|
|
|
//Function Number: 92
|
|
deleteti(param_00)
|
|
{
|
|
if(isdefined(param_00.enemytrigger))
|
|
{
|
|
param_00.enemytrigger delete();
|
|
}
|
|
|
|
var_01 = param_00.origin;
|
|
var_02 = param_00.angles;
|
|
param_00 delete();
|
|
var_03 = spawn("script_model",var_01);
|
|
var_03.angles = var_02;
|
|
var_03 setmodel(level.spawnglowmodel["friendly"]);
|
|
var_03 setcontents(0);
|
|
thread dummyglowstickdelete(var_03);
|
|
}
|
|
|
|
//Function Number: 93
|
|
dummyglowstickdelete(param_00)
|
|
{
|
|
wait 2.5;
|
|
param_00 delete();
|
|
}
|
|
|
|
//Function Number: 94
|
|
glowstickenemyuselistener(param_00)
|
|
{
|
|
self endon("death");
|
|
level endon("game_ended");
|
|
param_00 endon("disconnect");
|
|
self.enemytrigger setcursorhint("HINT_NOICON");
|
|
self.enemytrigger sethintstring(&"MP_PATCH_DESTROY_TI");
|
|
self.enemytrigger maps\mp\_utility::makeenemyusable(param_00);
|
|
for(;;)
|
|
{
|
|
self.enemytrigger waittill("trigger",var_01);
|
|
var_01 notify("destroyed_insertion",param_00);
|
|
var_01 notify("destroyed_explosive");
|
|
if(isdefined(param_00) && var_01 != param_00)
|
|
{
|
|
param_00 thread maps\mp\_utility::leaderdialogonplayer("ti_destroyed");
|
|
}
|
|
|
|
var_01 thread deleteti(self);
|
|
}
|
|
}
|
|
|
|
//Function Number: 95
|
|
setlittlebirdsupport()
|
|
{
|
|
thread killstreakthink("littlebird_support",2,"end_littlebird_support_think");
|
|
}
|
|
|
|
//Function Number: 96
|
|
unsetlittlebirdsupport()
|
|
{
|
|
self notify("end_littlebird_support_think");
|
|
}
|
|
|
|
//Function Number: 97
|
|
setpainted()
|
|
{
|
|
if(isplayer(self))
|
|
{
|
|
var_00 = 10;
|
|
if(maps\mp\_utility::_hasperk("specialty_quieter"))
|
|
{
|
|
var_00 = var_00 * 0.5;
|
|
}
|
|
|
|
self.painted = 1;
|
|
self setperk("specialty_radararrow",1,0);
|
|
thread unsetpainted(var_00);
|
|
thread watchpainteddeath();
|
|
}
|
|
}
|
|
|
|
//Function Number: 98
|
|
watchpainteddeath()
|
|
{
|
|
self endon("disconnect");
|
|
level endon("game_ended");
|
|
self waittill("death");
|
|
self.painted = 0;
|
|
}
|
|
|
|
//Function Number: 99
|
|
unsetpainted(param_00)
|
|
{
|
|
self notify("painted_again");
|
|
self endon("painted_again");
|
|
self endon("disconnect");
|
|
self endon("death");
|
|
level endon("game_ended");
|
|
wait param_00;
|
|
self.painted = 0;
|
|
self unsetperk("specialty_radararrow",1);
|
|
}
|
|
|
|
//Function Number: 100
|
|
ispainted()
|
|
{
|
|
return isdefined(self.painted) && self.painted;
|
|
}
|
|
|
|
//Function Number: 101
|
|
setfinalstand()
|
|
{
|
|
maps\mp\_utility::giveperk("specialty_pistoldeath",0);
|
|
}
|
|
|
|
//Function Number: 102
|
|
unsetfinalstand()
|
|
{
|
|
maps\mp\_utility::_unsetperk("specialty_pistoldeath");
|
|
}
|
|
|
|
//Function Number: 103
|
|
setcarepackage()
|
|
{
|
|
thread maps\mp\killstreaks\_killstreaks::givekillstreak("airdrop_assault",0,0,self,1);
|
|
}
|
|
|
|
//Function Number: 104
|
|
unsetcarepackage()
|
|
{
|
|
}
|
|
|
|
//Function Number: 105
|
|
setuav()
|
|
{
|
|
thread maps\mp\killstreaks\_killstreaks::givekillstreak("uav",0,0,self,1);
|
|
}
|
|
|
|
//Function Number: 106
|
|
unsetuav()
|
|
{
|
|
}
|
|
|
|
//Function Number: 107
|
|
setstoppingpower()
|
|
{
|
|
maps\mp\_utility::giveperk("specialty_bulletdamage",0);
|
|
thread watchstoppingpowerkill();
|
|
}
|
|
|
|
//Function Number: 108
|
|
watchstoppingpowerkill()
|
|
{
|
|
self notify("watchStoppingPowerKill");
|
|
self endon("watchStoppingPowerKill");
|
|
self endon("disconnect");
|
|
level endon("game_ended");
|
|
self waittill("killed_enemy");
|
|
unsetstoppingpower();
|
|
}
|
|
|
|
//Function Number: 109
|
|
unsetstoppingpower()
|
|
{
|
|
maps\mp\_utility::_unsetperk("specialty_bulletdamage");
|
|
self notify("watchStoppingPowerKill");
|
|
}
|
|
|
|
//Function Number: 110
|
|
setc4death()
|
|
{
|
|
if(!maps\mp\_utility::_hasperk("specialty_pistoldeath"))
|
|
{
|
|
maps\mp\_utility::giveperk("specialty_pistoldeath",0);
|
|
}
|
|
}
|
|
|
|
//Function Number: 111
|
|
unsetc4death()
|
|
{
|
|
if(maps\mp\_utility::_hasperk("specialty_pistoldeath"))
|
|
{
|
|
maps\mp\_utility::_unsetperk("specialty_pistoldeath");
|
|
}
|
|
}
|
|
|
|
//Function Number: 112
|
|
setjuiced()
|
|
{
|
|
self endon("death");
|
|
self endon("faux_spawn");
|
|
self endon("disconnect");
|
|
self endon("unset_juiced");
|
|
level endon("end_game");
|
|
self.isjuiced = 1;
|
|
self.movespeedscaler = 1.25;
|
|
maps\mp\gametypes\_weapons::updatemovespeedscale();
|
|
if(level.splitscreen)
|
|
{
|
|
var_00 = 56;
|
|
var_01 = 21;
|
|
}
|
|
else
|
|
{
|
|
var_00 = 80;
|
|
var_01 = 32;
|
|
}
|
|
|
|
self.juicedtimer = maps\mp\gametypes\_hud_util::createtimer("hudsmall",1);
|
|
self.juicedtimer maps\mp\gametypes\_hud_util::setpoint("CENTER","CENTER",0,var_00);
|
|
self.juicedtimer settimer(7);
|
|
self.juicedtimer.color = (0.8,0.8,0);
|
|
self.juicedtimer.archived = 0;
|
|
self.juicedtimer.foreground = 1;
|
|
self.juicedicon = maps\mp\gametypes\_hud_util::createicon("specialty_juiced",var_01,var_01);
|
|
self.juicedicon.alpha = 0;
|
|
self.juicedicon maps\mp\gametypes\_hud_util::setparent(self.juicedtimer);
|
|
self.juicedicon maps\mp\gametypes\_hud_util::setpoint("BOTTOM","TOP");
|
|
self.juicedicon.archived = 1;
|
|
self.juicedicon.sort = 1;
|
|
self.juicedicon.foreground = 1;
|
|
self.juicedicon fadeovertime(1);
|
|
self.juicedicon.alpha = 0.85;
|
|
thread unsetjuicedondeath();
|
|
thread unsetjuicedonride();
|
|
wait 5;
|
|
if(isdefined(self.juicedicon))
|
|
{
|
|
self.juicedicon fadeovertime(2);
|
|
self.juicedicon.alpha = 0;
|
|
}
|
|
|
|
if(isdefined(self.juicedtimer))
|
|
{
|
|
self.juicedtimer fadeovertime(2);
|
|
self.juicedtimer.alpha = 0;
|
|
}
|
|
|
|
wait 2;
|
|
unsetjuiced();
|
|
}
|
|
|
|
//Function Number: 113
|
|
unsetjuiced(param_00)
|
|
{
|
|
if(!isdefined(param_00))
|
|
{
|
|
if(maps\mp\_utility::isjuggernaut())
|
|
{
|
|
self.movespeedscaler = self.juggmovespeedscaler;
|
|
}
|
|
else
|
|
{
|
|
self.movespeedscaler = 1;
|
|
if(maps\mp\_utility::_hasperk("specialty_lightweight"))
|
|
{
|
|
self.movespeedscaler = maps\mp\_utility::lightweightscalar();
|
|
}
|
|
}
|
|
|
|
maps\mp\gametypes\_weapons::updatemovespeedscale();
|
|
}
|
|
|
|
if(isdefined(self.juicedicon))
|
|
{
|
|
self.juicedicon destroy();
|
|
}
|
|
|
|
if(isdefined(self.juicedtimer))
|
|
{
|
|
self.juicedtimer destroy();
|
|
}
|
|
|
|
self.isjuiced = undefined;
|
|
self notify("unset_juiced");
|
|
}
|
|
|
|
//Function Number: 114
|
|
unsetjuicedonride()
|
|
{
|
|
self endon("disconnect");
|
|
self endon("unset_juiced");
|
|
for(;;)
|
|
{
|
|
wait 0.05;
|
|
if(maps\mp\_utility::isusingremote())
|
|
{
|
|
thread unsetjuiced();
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 115
|
|
unsetjuicedondeath()
|
|
{
|
|
self endon("disconnect");
|
|
self endon("unset_juiced");
|
|
common_scripts\utility::waittill_any("death","faux_spawn");
|
|
thread unsetjuiced(1);
|
|
}
|
|
|
|
//Function Number: 116
|
|
setcombathigh()
|
|
{
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
self endon("unset_combathigh");
|
|
level endon("end_game");
|
|
self.damageblockedtotal = 0;
|
|
if(level.splitscreen)
|
|
{
|
|
var_00 = 56;
|
|
var_01 = 21;
|
|
}
|
|
else
|
|
{
|
|
var_00 = 112;
|
|
var_01 = 32;
|
|
}
|
|
|
|
if(isdefined(self.juicedtimer))
|
|
{
|
|
self.juicedtimer destroy();
|
|
}
|
|
|
|
if(isdefined(self.juicedicon))
|
|
{
|
|
self.juicedicon destroy();
|
|
}
|
|
|
|
self.combathighoverlay = newclienthudelem(self);
|
|
self.combathighoverlay.x = 0;
|
|
self.combathighoverlay.y = 0;
|
|
self.combathighoverlay.alignx = "left";
|
|
self.combathighoverlay.aligny = "top";
|
|
self.combathighoverlay.horzalign = "fullscreen";
|
|
self.combathighoverlay.vertalign = "fullscreen";
|
|
self.combathighoverlay setshader("combathigh_overlay",640,480);
|
|
self.combathighoverlay.sort = -10;
|
|
self.combathighoverlay.archived = 1;
|
|
self.combathightimer = maps\mp\gametypes\_hud_util::createtimer("hudsmall",1);
|
|
self.combathightimer maps\mp\gametypes\_hud_util::setpoint("CENTER","CENTER",0,var_00);
|
|
self.combathightimer settimer(10);
|
|
self.combathightimer.color = (0.8,0.8,0);
|
|
self.combathightimer.archived = 0;
|
|
self.combathightimer.foreground = 1;
|
|
self.combathighicon = maps\mp\gametypes\_hud_util::createicon("specialty_painkiller",var_01,var_01);
|
|
self.combathighicon.alpha = 0;
|
|
self.combathighicon maps\mp\gametypes\_hud_util::setparent(self.combathightimer);
|
|
self.combathighicon maps\mp\gametypes\_hud_util::setpoint("BOTTOM","TOP");
|
|
self.combathighicon.archived = 1;
|
|
self.combathighicon.sort = 1;
|
|
self.combathighicon.foreground = 1;
|
|
self.combathighoverlay.alpha = 0;
|
|
self.combathighoverlay fadeovertime(1);
|
|
self.combathighicon fadeovertime(1);
|
|
self.combathighoverlay.alpha = 1;
|
|
self.combathighicon.alpha = 0.85;
|
|
thread unsetcombathighondeath();
|
|
thread unsetcombathighonride();
|
|
wait 8;
|
|
self.combathighicon fadeovertime(2);
|
|
self.combathighicon.alpha = 0;
|
|
self.combathighoverlay fadeovertime(2);
|
|
self.combathighoverlay.alpha = 0;
|
|
self.combathightimer fadeovertime(2);
|
|
self.combathightimer.alpha = 0;
|
|
wait 2;
|
|
self.damageblockedtotal = undefined;
|
|
maps\mp\_utility::_unsetperk("specialty_combathigh");
|
|
}
|
|
|
|
//Function Number: 117
|
|
unsetcombathighondeath()
|
|
{
|
|
self endon("disconnect");
|
|
self endon("unset_combathigh");
|
|
self waittill("death");
|
|
thread maps\mp\_utility::_unsetperk("specialty_combathigh");
|
|
}
|
|
|
|
//Function Number: 118
|
|
unsetcombathighonride()
|
|
{
|
|
self endon("disconnect");
|
|
self endon("unset_combathigh");
|
|
for(;;)
|
|
{
|
|
wait 0.05;
|
|
if(maps\mp\_utility::isusingremote())
|
|
{
|
|
thread maps\mp\_utility::_unsetperk("specialty_combathigh");
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 119
|
|
unsetcombathigh()
|
|
{
|
|
self notify("unset_combathigh");
|
|
self.combathighoverlay destroy();
|
|
self.combathighicon destroy();
|
|
self.combathightimer destroy();
|
|
}
|
|
|
|
//Function Number: 120
|
|
setlightarmor()
|
|
{
|
|
thread givelightarmor();
|
|
}
|
|
|
|
//Function Number: 121
|
|
givelightarmor()
|
|
{
|
|
self notify("give_light_armor");
|
|
self endon("give_light_armor");
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
level endon("end_game");
|
|
if(isdefined(self.haslightarmor) && self.haslightarmor == 1)
|
|
{
|
|
removelightarmor(self.previousmaxhealth);
|
|
}
|
|
|
|
var_00 = 200;
|
|
thread removelightarmorondeath();
|
|
self.haslightarmor = 1;
|
|
self.combathighoverlay = newclienthudelem(self);
|
|
self.combathighoverlay.x = 0;
|
|
self.combathighoverlay.y = 0;
|
|
self.combathighoverlay.alignx = "left";
|
|
self.combathighoverlay.aligny = "top";
|
|
self.combathighoverlay.horzalign = "fullscreen";
|
|
self.combathighoverlay.vertalign = "fullscreen";
|
|
self.combathighoverlay setshader("combathigh_overlay",640,480);
|
|
self.combathighoverlay.sort = -10;
|
|
self.combathighoverlay.archived = 1;
|
|
self.previousmaxhealth = self.maxhealth;
|
|
self.maxhealth = var_00;
|
|
self.health = self.maxhealth;
|
|
var_01 = 50;
|
|
var_02 = self.health;
|
|
for(;;)
|
|
{
|
|
if(self.maxhealth != var_00)
|
|
{
|
|
removelightarmor();
|
|
break;
|
|
}
|
|
|
|
if(self.health < 100)
|
|
{
|
|
removelightarmor(self.previousmaxhealth);
|
|
break;
|
|
}
|
|
|
|
if(self.health < var_02)
|
|
{
|
|
var_01 = var_01 - var_02 - self.health;
|
|
var_02 = self.health;
|
|
if(var_01 <= 0)
|
|
{
|
|
removelightarmor(self.previousmaxhealth);
|
|
break;
|
|
}
|
|
}
|
|
|
|
wait 0.5;
|
|
}
|
|
}
|
|
|
|
//Function Number: 122
|
|
removelightarmorondeath()
|
|
{
|
|
self endon("disconnect");
|
|
self endon("give_light_armor");
|
|
self endon("remove_light_armor");
|
|
self waittill("death");
|
|
removelightarmor();
|
|
}
|
|
|
|
//Function Number: 123
|
|
removelightarmor(param_00)
|
|
{
|
|
if(isdefined(param_00))
|
|
{
|
|
self.maxhealth = param_00;
|
|
}
|
|
|
|
if(isdefined(self.combathighoverlay))
|
|
{
|
|
self.combathighoverlay destroy();
|
|
}
|
|
|
|
self.haslightarmor = undefined;
|
|
self notify("remove_light_armor");
|
|
}
|
|
|
|
//Function Number: 124
|
|
unsetlightarmor()
|
|
{
|
|
thread removelightarmor(self.previousmaxhealth);
|
|
}
|
|
|
|
//Function Number: 125
|
|
setrevenge()
|
|
{
|
|
self notify("stopRevenge");
|
|
wait 0.05;
|
|
if(!isdefined(self.lastkilledby))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(level.teambased && self.team == self.lastkilledby.team)
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_00 = spawnstruct();
|
|
var_00.showto = self;
|
|
var_00.icon = "compassping_revenge";
|
|
var_00.offset = (0,0,64);
|
|
var_00.width = 10;
|
|
var_00.height = 10;
|
|
var_00.archived = 0;
|
|
var_00.delay = 1.5;
|
|
var_00.constantsize = 0;
|
|
var_00.pintoscreenedge = 1;
|
|
var_00.fadeoutpinnedicon = 0;
|
|
var_00.is3d = 0;
|
|
self.revengeparams = var_00;
|
|
self.lastkilledby maps\mp\_entityheadicons::setheadicon(var_00.showto,var_00.icon,var_00.offset,var_00.width,var_00.height,var_00.archived,var_00.delay,var_00.constantsize,var_00.pintoscreenedge,var_00.fadeoutpinnedicon,var_00.is3d);
|
|
thread watchrevengedeath();
|
|
thread watchrevengekill();
|
|
thread watchrevengedisconnected();
|
|
thread watchrevengevictimdisconnected();
|
|
thread watchstoprevenge();
|
|
}
|
|
|
|
//Function Number: 126
|
|
watchrevengedeath()
|
|
{
|
|
self endon("stopRevenge");
|
|
self endon("disconnect");
|
|
var_00 = self.lastkilledby;
|
|
for(;;)
|
|
{
|
|
var_00 waittill("spawned_player");
|
|
var_00 maps\mp\_entityheadicons::setheadicon(self.revengeparams.showto,self.revengeparams.icon,self.revengeparams.offset,self.revengeparams.width,self.revengeparams.height,self.revengeparams.archived,self.revengeparams.delay,self.revengeparams.constantsize,self.revengeparams.pintoscreenedge,self.revengeparams.fadeoutpinnedicon,self.revengeparams.is3d);
|
|
}
|
|
}
|
|
|
|
//Function Number: 127
|
|
watchrevengekill()
|
|
{
|
|
self endon("stopRevenge");
|
|
self waittill("killed_enemy");
|
|
self notify("stopRevenge");
|
|
}
|
|
|
|
//Function Number: 128
|
|
watchrevengedisconnected()
|
|
{
|
|
self endon("stopRevenge");
|
|
self.lastkilledby waittill("disconnect");
|
|
self notify("stopRevenge");
|
|
}
|
|
|
|
//Function Number: 129
|
|
watchstoprevenge()
|
|
{
|
|
var_00 = self.lastkilledby;
|
|
self waittill("stopRevenge");
|
|
if(!isdefined(var_00))
|
|
{
|
|
return;
|
|
}
|
|
|
|
foreach(var_02 in var_00.entityheadicons)
|
|
{
|
|
if(!isdefined(var_02))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_02 destroy();
|
|
}
|
|
}
|
|
|
|
//Function Number: 130
|
|
watchrevengevictimdisconnected()
|
|
{
|
|
var_00 = self.objidfriendly;
|
|
var_01 = self.lastkilledby;
|
|
var_01 endon("disconnect");
|
|
level endon("game_ended");
|
|
self endon("stopRevenge");
|
|
self waittill("disconnect");
|
|
if(!isdefined(var_01))
|
|
{
|
|
return;
|
|
}
|
|
|
|
foreach(var_03 in var_01.entityheadicons)
|
|
{
|
|
if(!isdefined(var_03))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_03 destroy();
|
|
}
|
|
}
|
|
|
|
//Function Number: 131
|
|
unsetrevenge()
|
|
{
|
|
self notify("stopRevenge");
|
|
} |