/******************************************************************* * Decompiled By: Bog * Decompiled File: maps\mp\_utility.gsc * Game: Call of Duty: Ghosts * Platform: PC * Function Count: 381 * Decompile Time: 6396 ms * Timestamp: 10/27/2023 1:22:51 AM *******************************************************************/ //Function Number: 1 func_30C3() { if(isdefined(self.script_delay)) { wait(self.script_delay); } self playsound(level.scr_sound[self.script_sound]); } //Function Number: 2 _beginlocationselection(param_00,param_01,param_02,param_03) { self beginlocationselection(param_01,param_02,param_03); self.selectinglocation = 1; self setblurforplayer(10.3,0.3); thread func_2DEF("cancel_location"); thread func_2DEF("death"); thread func_2DEF("disconnect"); thread func_2DEF("used"); thread func_2DEF("weapon_change"); self endon("stop_location_selection"); thread endselectiononendgame(); thread endselectiononemp(); if(isdefined(param_00) && self.team != "spectator") { if(isdefined(self.streakmsg)) { self.streakmsg destroy(); } if(self issplitscreenplayer()) { self.streakmsg = maps\mp\gametypes\_hud_util::createfontstring("default",1.3); self.streakmsg maps\mp\gametypes\_hud_util::func_70A4("CENTER","CENTER",0,-98); } else { self.streakmsg = maps\mp\gametypes\_hud_util::createfontstring("default",1.6); self.streakmsg maps\mp\gametypes\_hud_util::func_70A4("CENTER","CENTER",0,-190); } var_04 = func_3AFD(param_00); self.streakmsg settext(var_04); } } //Function Number: 3 stoplocationselection(param_00,param_01) { if(!isdefined(param_01)) { param_01 = "generic"; } if(!param_00) { self setblurforplayer(0,0.3); self endlocationselection(); self.selectinglocation = undefined; if(isdefined(self.streakmsg)) { self.streakmsg destroy(); } } self notify("stop_location_selection",param_01); } //Function Number: 4 endselectiononemp() { self endon("stop_location_selection"); for(;;) { level waittill("emp_update"); if(!func_48B2()) { continue; } thread stoplocationselection(0,"emp"); } } //Function Number: 5 func_2DEF(param_00) { self endon("stop_location_selection"); self waittill(param_00); thread stoplocationselection(param_00 == "disconnect",param_00); } //Function Number: 6 endselectiononendgame() { self endon("stop_location_selection"); level waittill("game_ended"); thread stoplocationselection(0,"end_game"); } //Function Number: 7 isattachment(param_00) { if(func_47BB()) { var_01 = tablelookup("mp/alien/alien_attachmentTable.csv",4,param_00,0); } else { var_01 = tablelookup("mp/attachmentTable.csv",4,var_01,0); } if(isdefined(var_01) && var_01 != "") { return 1; } return 0; } //Function Number: 8 getattachmenttype(param_00) { if(func_47BB()) { var_01 = tablelookup("mp/alien/alien_attachmentTable.csv",4,param_00,2); } else { var_01 = tablelookup("mp/attachmentTable.csv",4,var_01,2); } return var_01; } //Function Number: 9 func_252F(param_00,param_01,param_02,param_03,param_04,param_05,param_06) { thread delaythread_proc(param_01,param_00,param_02,param_03,param_04,param_05,param_06); } //Function Number: 10 delaythread_proc(param_00,param_01,param_02,param_03,param_04,param_05,param_06) { wait(param_01); if(!isdefined(param_02)) { thread [[ param_00 ]](); } if(!isdefined(param_03)) { thread [[ param_00 ]](param_02); } if(!isdefined(param_04)) { thread [[ param_00 ]](param_02,param_03); } if(!isdefined(param_05)) { thread [[ param_00 ]](param_02,param_03,param_04); } if(!isdefined(param_06)) { thread [[ param_00 ]](param_02,param_03,param_04,param_05); } thread [[ param_00 ]](param_02,param_03,param_04,param_05,param_06); } //Function Number: 11 func_0EE2(param_00,param_01) { foreach(var_04, var_03 in param_00) { if(var_04 == param_01) { return 1; } } return 0; } //Function Number: 12 func_3B93() { var_00 = self.origin + (0,0,10); var_01 = 11; var_02 = anglestoforward(self.angles); var_02 = var_02 * var_01; var_03[0] = var_00 + var_02; var_03[1] = var_00; var_04 = bullettrace(var_03[0],var_03[0] + (0,0,-18),0,undefined); if(var_04["fraction"] < 1) { var_05 = spawnstruct(); var_05.origin = var_04["position"]; var_05.angles = func_59E3(var_04["normal"]); return var_05; } var_05 = bullettrace(var_04[1],var_04[1] + (0,0,-18),0,undefined); if(var_05["fraction"] < 1) { var_05 = spawnstruct(); var_05.origin = var_04["position"]; var_05.angles = func_59E3(var_04["normal"]); return var_05; } var_04[2] = var_01 + (16,16,0); var_04[3] = var_01 + (16,-16,0); var_04[4] = var_01 + (-16,-16,0); var_04[5] = var_01 + (-16,16,0); var_06 = undefined; var_07 = undefined; for(var_08 = 0;var_08 < var_04.size;var_08++) { var_05 = bullettrace(var_04[var_08],var_04[var_08] + (0,0,-1000),0,undefined); if(!isdefined(var_06) || var_05["fraction"] < var_06) { var_06 = var_05["fraction"]; var_07 = var_05["position"]; } } if(var_06 == 1) { var_07 = self.origin; } var_05 = spawnstruct(); var_08.origin = var_06; var_08.angles = func_59E3(var_04["normal"]); return var_08; } //Function Number: 13 func_59E3(param_00) { var_01 = (param_00[0],param_00[1],0); var_02 = length(var_01); if(!var_02) { return (0,0,0); } var_03 = vectornormalize(var_01); var_04 = param_00[2] * -1; var_05 = (var_03[0] * var_04,var_03[1] * var_04,var_02); var_06 = vectortoangles(var_05); return var_06; } //Function Number: 14 deleteplacedentity(param_00) { var_01 = getentarray(param_00,"classname"); for(var_02 = 0;var_02 < var_01.size;var_02++) { var_01[var_02] delete(); } } //Function Number: 15 func_6045(param_00,param_01,param_02) { if(level.splitscreen) { if(isdefined(level.players[0])) { level.players[0] playlocalsound(param_00); } } if(isdefined(param_01)) { if(isdefined(param_02)) { for(var_03 = 0;var_03 < level.players.size;var_03++) { var_04 = level.players[var_03]; if(var_04 issplitscreenplayer() && !var_04 issplitscreenplayerprimary()) { continue; } if(isdefined(var_04.pers["team"]) && var_04.pers["team"] == param_01 && !func_48B8(var_04,param_02)) { var_04 playlocalsound(param_00); } } } for(var_03 = 0;var_03 < level.players.size;var_03++) { var_04 = level.players[var_03]; if(var_04 issplitscreenplayer() && !var_04 issplitscreenplayerprimary()) { continue; } if(isdefined(var_04.pers["team"]) && var_04.pers["team"] == param_01) { var_04 playlocalsound(param_00); } } } if(isdefined(var_03)) { for(var_03 = 0;var_03 < level.players.size;var_03++) { if(level.players[var_03] issplitscreenplayer() && !level.players[var_03] issplitscreenplayerprimary()) { continue; } if(!func_48B8(level.players[var_03],param_02)) { level.players[var_03] playlocalsound(param_00); } } } for(var_03 = 0;var_03 < level.players.size;var_03++) { if(level.players[var_03] issplitscreenplayer() && !level.players[var_03] issplitscreenplayerprimary()) { continue; } level.players[var_03] playlocalsound(param_00); } } //Function Number: 16 sortlowermessages() { for(var_00 = 1;var_00 < self.lowermessages.size;var_00++) { var_01 = self.lowermessages[var_00]; var_02 = var_01.priority; for(var_03 = var_00 - 1;var_03 >= 0 && var_02 > self.lowermessages[var_03].priority;var_03--) { self.lowermessages[var_03 + 1] = self.lowermessages[var_03]; } self.lowermessages[var_03 + 1] = var_01; } } //Function Number: 17 addlowermessage(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09) { var_0A = undefined; foreach(var_0C in self.lowermessages) { if(var_0C.name == param_00) { if(var_0C.text == param_01 && var_0C.priority == param_03) { } var_0A = var_0C; break; } } if(!isdefined(var_0A)) { var_0A = spawnstruct(); self.lowermessages[self.lowermessages.size] = var_0A; } var_0A.name = param_00; var_0A.text = param_01; var_0A.time = param_02; var_0A.addtime = gettime(); var_0A.priority = param_03; var_0A.showtimer = param_04; var_0A.shouldfade = param_05; var_0A.fadetoalpha = param_06; var_0A.fadetoalphatime = param_07; var_0A.hidewhenindemo = param_08; var_0A.hidewheninmenu = param_09; sortlowermessages(); } //Function Number: 18 func_65A0(param_00) { if(isdefined(self.lowermessages)) { for(var_01 = self.lowermessages.size;var_01 > 0;var_01--) { if(self.lowermessages[var_01 - 1].name != param_00) { continue; } var_02 = self.lowermessages[var_01 - 1]; for(var_03 = var_01;var_03 < self.lowermessages.size;var_03++) { if(isdefined(self.lowermessages[var_03])) { self.lowermessages[var_03 - 1] = self.lowermessages[var_03]; } } self.lowermessages[self.lowermessages.size - 1] = undefined; } sortlowermessages(); } } //Function Number: 19 getlowermessage() { if(!isdefined(self.lowermessages)) { return undefined; } return self.lowermessages[0]; } //Function Number: 20 setlowermessage(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09) { if(!isdefined(param_03)) { param_03 = 1; } if(!isdefined(param_02)) { param_02 = 0; } if(!isdefined(param_04)) { param_04 = 0; } if(!isdefined(param_05)) { param_05 = 0; } if(!isdefined(param_06)) { param_06 = 0.85; } if(!isdefined(param_07)) { param_07 = 3; } if(!isdefined(param_08)) { param_08 = 0; } if(!isdefined(param_09)) { param_09 = 1; } addlowermessage(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09); func_86FC(); } //Function Number: 21 func_86FC() { if(!isdefined(self)) { } var_00 = getlowermessage(); if(!isdefined(var_00)) { if(isdefined(self.lowermessage) && isdefined(self.lowertimer)) { self.lowermessage.alpha = 0; self.lowertimer.alpha = 0; } } self.lowermessage settext(var_00.text); self.lowermessage.alpha = 0.85; self.lowertimer.alpha = 1; self.lowermessage.hidewhenindemo = var_00.hidewhenindemo; self.lowermessage.hidewheninmenu = var_00.hidewheninmenu; if(var_00.shouldfade) { self.lowermessage fadeovertime(min(var_00.fadetoalphatime,60)); self.lowermessage.alpha = var_00.fadetoalpha; } if(var_00.time > 0 && var_00.showtimer) { self.lowertimer settimer(max(var_00.time - gettime() - var_00.addtime / 1000,0.1)); } if(var_00.time > 0 && !var_00.showtimer) { self.lowertimer settext(""); self.lowermessage fadeovertime(min(var_00.time,60)); self.lowermessage.alpha = 0; thread clearondeath(var_00); thread clearafterfade(var_00); } self.lowertimer settext(""); } //Function Number: 22 clearondeath(param_00) { self notify("message_cleared"); self endon("message_cleared"); self endon("disconnect"); level endon("game_ended"); self waittill("death"); func_1D47(param_00.name); } //Function Number: 23 clearafterfade(param_00) { wait(param_00.time); func_1D47(param_00.name); self notify("message_cleared"); } //Function Number: 24 func_1D47(param_00) { func_65A0(param_00); func_86FC(); } //Function Number: 25 func_1D48() { for(var_00 = 0;var_00 < self.lowermessages.size;var_00++) { self.lowermessages[var_00] = undefined; } if(!isdefined(self.lowermessage)) { } func_86FC(); } //Function Number: 26 func_61AC(param_00,param_01) { foreach(var_03 in level.players) { if(var_03.team != param_01) { continue; } var_03 iprintln(param_00); } } //Function Number: 27 printboldonteam(param_00,param_01) { for(var_02 = 0;var_02 < level.players.size;var_02++) { var_03 = level.players[var_02]; if(isdefined(var_03.pers["team"]) && var_03.pers["team"] == param_01) { var_03 iprintlnbold(param_00); } } } //Function Number: 28 func_61A5(param_00,param_01,param_02) { for(var_03 = 0;var_03 < level.players.size;var_03++) { var_04 = level.players[var_03]; if(isdefined(var_04.pers["team"]) && var_04.pers["team"] == param_01) { var_04 iprintlnbold(param_00,param_02); } } } //Function Number: 29 func_61AD(param_00,param_01,param_02) { for(var_03 = 0;var_03 < level.players.size;var_03++) { var_04 = level.players[var_03]; if(isdefined(var_04.pers["team"]) && var_04.pers["team"] == param_01) { var_04 iprintln(param_00,param_02); } } } //Function Number: 30 func_61AB(param_00,param_01) { var_02 = level.players; for(var_03 = 0;var_03 < var_02.size;var_03++) { if(isdefined(param_01)) { if(isdefined(var_02[var_03].pers["team"]) && var_02[var_03].pers["team"] == param_01) { var_02[var_03] iprintln(param_00); } continue; } var_02[var_03] iprintln(param_00); } } //Function Number: 31 func_61A1(param_00,param_01,param_02,param_03,param_04,param_05,param_06) { var_07 = isdefined(param_04); var_08 = 0; if(isdefined(param_05)) { var_08 = 1; } if(level.splitscreen || !var_07) { for(var_09 = 0;var_09 < level.players.size;var_09++) { var_0A = level.players[var_09]; var_0B = var_0A.team; if(isdefined(var_0B)) { if(var_0B == param_00 && isdefined(param_02)) { var_0A iprintln(param_02,param_06); continue; } if(var_0B == param_01 && isdefined(param_03)) { var_0A iprintln(param_03,param_06); } } } if(var_07) { level.players[0] playlocalsound(param_04); } } if(var_0B) { for(var_09 = 0;var_09 < level.players.size;var_09++) { var_0A = level.players[var_09]; var_0B = var_0A.team; if(isdefined(var_0B)) { if(var_0B == param_00) { if(isdefined(param_02)) { var_0A iprintln(param_02,param_06); } var_0A playlocalsound(param_04); continue; } if(var_0B == param_01) { if(isdefined(param_03)) { var_0A iprintln(param_03,param_06); } var_0A playlocalsound(param_05); } } } } for(var_09 = 0;var_09 < level.players.size;var_09++) { var_0A = level.players[var_09]; var_0B = var_0A.team; if(isdefined(var_0B)) { if(var_0B == param_00) { if(isdefined(param_02)) { var_0A iprintln(param_02,param_06); } var_0A playlocalsound(param_04); continue; } if(var_0B == param_01) { if(isdefined(param_03)) { var_0A iprintln(param_03,param_06); } } } } } //Function Number: 32 func_61A3(param_00,param_01,param_02) { foreach(var_04 in level.players) { if(var_04.team != param_00) { continue; } var_04 func_61A2(param_01,param_02); } } //Function Number: 33 func_61A2(param_00,param_01) { self iprintln(param_00); self playlocalsound(param_01); } //Function Number: 34 _playlocalsound(param_00) { if(level.splitscreen && self getentitynumber() != 0) { } self playlocalsound(param_00); } //Function Number: 35 func_2B99(param_00,param_01,param_02,param_03) { param_00 = "scr_" + level.gametype + "_" + param_00; if(getdvar(param_00) == "") { setdvar(param_00,param_01); return param_01; } var_04 = getdvarint(param_00); if(var_04 > param_03) { var_04 = param_03; } else if(var_04 < param_02) { var_04 = param_02; } else { return var_04; } setdvar(param_00,var_04); return var_04; } //Function Number: 36 func_2B98(param_00,param_01,param_02,param_03) { param_00 = "scr_" + level.gametype + "_" + param_00; if(getdvar(param_00) == "") { setdvar(param_00,param_01); return param_01; } var_04 = getdvarfloat(param_00); if(var_04 > param_03) { var_04 = param_03; } else if(var_04 < param_02) { var_04 = param_02; } else { return var_04; } setdvar(param_00,var_04); return var_04; } //Function Number: 37 func_5D25(param_00,param_01) { if(isdefined(param_01)) { playsoundatpos(self gettagorigin(param_01),param_00); } playsoundatpos(self.origin,param_00); } //Function Number: 38 getotherteam(param_00) { if(level.multiteambased) { } if(param_00 == "allies") { return "axis"; } else if(param_00 == "axis") { return "allies"; } else { return "none"; } } //Function Number: 39 wait_endon(param_00,param_01,param_02,param_03) { self endon(param_01); if(isdefined(param_02)) { self endon(param_02); } if(isdefined(param_03)) { self endon(param_03); } wait(param_00); } //Function Number: 40 func_463E(param_00) { if(!isdefined(self.pers[param_00])) { self.pers[param_00] = 0; } } //Function Number: 41 func_3B8D(param_00) { return self.pers[param_00]; } //Function Number: 42 func_4479(param_00,param_01,param_02) { if(isdefined(self) && isdefined(self.pers) && isdefined(self.pers[param_00])) { self.pers[param_00] = self.pers[param_00] + param_01; if(!isdefined(param_02) || param_02 == 0) { maps\mp\gametypes\_persistence::func_7B07(param_00,param_01); } } } //Function Number: 43 func_7093(param_00,param_01) { self.pers[param_00] = param_01; } //Function Number: 44 initplayerstat(param_00,param_01) { if(!isdefined(self.stats["stats_" + param_00])) { if(!isdefined(param_01)) { param_01 = 0; } self.stats["stats_" + param_00] = spawnstruct(); self.stats["stats_" + param_00].value = param_01; } } //Function Number: 45 func_447B(param_00,param_01) { if(isagent(self) || isbot(self)) { } var_02 = self.stats["stats_" + param_00]; var_02.value = var_02.value + param_01; } //Function Number: 46 func_70A0(param_00,param_01) { var_02 = self.stats["stats_" + param_00]; var_02.value = param_01; var_02.time = gettime(); } //Function Number: 47 getplayerstat(param_00) { return self.stats["stats_" + param_00].value; } //Function Number: 48 func_3B9C(param_00) { return self.stats["stats_" + param_00].time; } //Function Number: 49 func_70A1(param_00,param_01) { var_02 = getplayerstat(param_00); if(param_01 > var_02) { func_70A0(param_00,param_01); } } //Function Number: 50 func_70A2(param_00,param_01) { var_02 = getplayerstat(param_00); if(param_01 < var_02) { func_70A0(param_00,param_01); } } //Function Number: 51 func_870C(param_00,param_01,param_02) { if(!func_634C()) { } var_03 = maps\mp\gametypes\_persistence::func_7B16(param_01); var_04 = maps\mp\gametypes\_persistence::func_7B16(param_02); if(var_04 == 0) { var_04 = 1; } maps\mp\gametypes\_persistence::func_7B26(param_00,int(var_03 * 1000 / var_04)); } //Function Number: 52 func_870D(param_00,param_01,param_02) { if(!func_634C()) { } var_03 = maps\mp\gametypes\_persistence::statgetbuffered(param_01); var_04 = maps\mp\gametypes\_persistence::statgetbuffered(param_02); if(var_04 == 0) { var_04 = 1; } maps\mp\gametypes\_persistence::func_7B27(param_00,int(var_03 * 1000 / var_04)); } //Function Number: 53 func_8BC1(param_00) { if(level.lastslowprocessframe == gettime()) { if(isdefined(param_00) && param_00) { while(level.lastslowprocessframe == gettime()) { wait(0.05); } } else { wait(0.05); if(level.lastslowprocessframe == gettime()) { wait(0.05); if(level.lastslowprocessframe == gettime()) { wait(0.05); if(level.lastslowprocessframe == gettime()) { wait(0.05); } } } } } level.lastslowprocessframe = gettime(); } //Function Number: 54 waitfortimeornotify(param_00,param_01) { self endon(param_01); wait(param_00); } //Function Number: 55 func_48B8(param_00,param_01) { for(var_02 = 0;var_02 < param_01.size;var_02++) { if(param_00 == param_01[var_02]) { return 1; } } return 0; } //Function Number: 56 func_4D30(param_00,param_01,param_02,param_03,param_04) { var_05 = game["dialog"][param_00]; if(!isdefined(var_05)) { } var_06 = game["voice"]["allies"] + var_05; var_07 = game["voice"]["axis"] + var_05; queuedialog(var_06,var_07,param_00,2,param_01,param_02,param_03,param_04); } //Function Number: 57 func_4D37(param_00,param_01,param_02,param_03) { foreach(var_05 in param_01) { var_05 func_4D35(param_00,param_02,undefined,param_03); } } //Function Number: 58 func_4D35(param_00,param_01,param_02,param_03) { if(!isdefined(game["dialog"][param_00])) { } var_04 = self.pers["team"]; if(isdefined(var_04) && var_04 == "axis" || var_04 == "allies") { var_05 = game["voice"][var_04] + game["dialog"][param_00]; self queuedialogforplayer(var_05,param_00,2,param_01,param_02,param_03); } } //Function Number: 59 func_3B45() { for(var_00 = 0;var_00 < self.leaderdialogqueue.size;var_00++) { if(issubstr(self.leaderdialogqueue[var_00],"losing")) { if(self.team == "allies") { if(issubstr(level.axiscapturing,self.leaderdialogqueue[var_00])) { return self.leaderdialogqueue[var_00]; } else { common_scripts\utility::array_remove(self.leaderdialogqueue,self.leaderdialogqueue[var_00]); } } else if(issubstr(level.alliescapturing,self.leaderdialogqueue[var_00])) { return self.leaderdialogqueue[var_00]; } else { common_scripts\utility::array_remove(self.leaderdialogqueue,self.leaderdialogqueue[var_00]); } continue; } return level.alliescapturing[self.leaderdialogqueue]; } } //Function Number: 60 orderonqueueddialog() { self endon("disconnect"); var_00 = []; var_00 = self.leaderdialogqueue; for(var_01 = 0;var_01 < self.leaderdialogqueue.size;var_01++) { if(issubstr(self.leaderdialogqueue[var_01],"losing")) { for(var_02 = var_01;var_02 >= 0;var_02--) { if(!issubstr(self.leaderdialogqueue[var_02],"losing") && var_02 != 0) { continue; } if(var_02 != var_01) { arrayinsertion(var_00,self.leaderdialogqueue[var_01],var_02); common_scripts\utility::array_remove(var_00,self.leaderdialogqueue[var_01]); break; } } } } self.leaderdialogqueue = var_00; } //Function Number: 61 func_86FF() { if(self.pers["team"] == "spectator") { self setclientdvar("g_scriptMainMenu",game["menu_team"]); } self setclientdvar("g_scriptMainMenu",game["menu_class_" + self.pers["team"]]); } //Function Number: 62 updateobjectivetext() { if(self.pers["team"] == "spectator") { self setclientdvar("cg_objectiveText",""); } if(getwatcheddvar("scorelimit") > 0 && !func_491C()) { if(isdefined(func_3B5F(self.pers["team"]))) { if(level.splitscreen) { self setclientdvar("cg_objectiveText",func_3B5F(self.pers["team"])); } self setclientdvar("cg_objectiveText",func_3B5F(self.pers["team"]),getwatcheddvar("scorelimit")); } } if(isdefined(getobjectivetext(self.pers["team"]))) { self setclientdvar("cg_objectiveText",getobjectivetext(self.pers["team"])); } } //Function Number: 63 func_7084(param_00,param_01) { game["strings"]["objective_" + param_00] = param_01; } //Function Number: 64 func_7083(param_00,param_01) { game["strings"]["objective_score_" + param_00] = param_01; } //Function Number: 65 setobjectivehinttext(param_00,param_01) { game["strings"]["objective_hint_" + param_00] = param_01; } //Function Number: 66 getobjectivetext(param_00) { return game["strings"]["objective_" + param_00]; } //Function Number: 67 func_3B5F(param_00) { return game["strings"]["objective_score_" + param_00]; } //Function Number: 68 func_3B5E(param_00) { return game["strings"]["objective_hint_" + param_00]; } //Function Number: 69 func_3C4B() { if(!isdefined(level.starttime) || !isdefined(level.discardtime)) { return 0; } if(level.timerstopped) { return level.timerpausetime - level.starttime - level.discardtime; } return gettime() - level.starttime - level.discardtime; } //Function Number: 70 gettimepassedpercentage() { return func_3C4B() / func_3C4A() * 60 * 1000 * 100; } //Function Number: 71 func_3BE4() { return func_3C4B() / 1000; } //Function Number: 72 func_3B2E() { return func_3BE4() / 60; } //Function Number: 73 clearkillcamstate() { self.forcespectatorclient = -1; self.killcamentity = -1; self.archivetime = 0; self.psoffsettime = 0; self.spectatekillcam = 0; } //Function Number: 74 func_48E2() { return self.spectatekillcam; } //Function Number: 75 func_499C(param_00) { return isdefined(param_00) && param_00 != ""; } //Function Number: 76 getvalueinrange(param_00,param_01,param_02) { if(param_00 > param_02) { return param_02; } if(param_00 < param_01) { return param_01; } return param_00; } //Function Number: 77 func_8AFB(param_00) { var_01 = gettime(); var_02 = gettime() - var_01 / 1000; if(var_02 < param_00) { wait(param_00 - var_02); return param_00; } return var_02; } //Function Number: 78 logxpgains() { if(!isdefined(self.xpgains)) { } var_00 = getarraykeys(self.xpgains); for(var_01 = 0;var_01 < var_00.size;var_01++) { var_02 = self.xpgains[var_00[var_01]]; if(!var_02) { continue; } self logstring("xp " + var_00[var_01] + ": " + var_02); } } //Function Number: 79 func_6473(param_00,param_01,param_02,param_03) { func_647B("roundswitch",param_01); param_00 = "scr_" + param_00 + "_roundswitch"; level.roundswitchdvar = param_00; level.roundswitchmin = param_02; level.roundswitchmax = param_03; level.roundswitch = getdvarint(param_00,param_01); if(level.roundswitch < param_02) { level.roundswitch = param_02; } if(level.roundswitch > param_03) { level.roundswitch = param_03; } } //Function Number: 80 func_6472(param_00,param_01) { func_647B("roundlimit",param_01); } //Function Number: 81 func_6471(param_00,param_01) { func_647B("numTeams",param_01); } //Function Number: 82 func_647C(param_00,param_01) { func_647B("winlimit",param_01); } //Function Number: 83 func_6475(param_00,param_01) { func_647B("scorelimit",param_01); } //Function Number: 84 func_6476(param_00,param_01) { func_647A("timelimit",param_01); setdvar("ui_timelimit",func_3C4A()); } //Function Number: 85 func_646A(param_00,param_01) { func_647B("halftime",param_01); setdvar("ui_halftime",gethalftime()); } //Function Number: 86 func_6470(param_00,param_01) { func_647B("numlives",param_01); } //Function Number: 87 func_708C(param_00) { setdvar("overtimeTimeLimit",param_00); } //Function Number: 88 get_damageable_player(param_00,param_01) { var_02 = spawnstruct(); var_02.isplayer = 1; var_02.isadestructable = 0; var_02.entity = param_00; var_02.damagecenter = param_01; return var_02; } //Function Number: 89 func_3848(param_00,param_01) { var_02 = spawnstruct(); var_02.isplayer = 0; var_02.isadestructable = 0; var_02.issentry = 1; var_02.entity = param_00; var_02.damagecenter = param_01; return var_02; } //Function Number: 90 func_3843(param_00,param_01) { var_02 = spawnstruct(); var_02.isplayer = 0; var_02.isadestructable = 0; var_02.entity = param_00; var_02.damagecenter = param_01; return var_02; } //Function Number: 91 get_damageable_mine(param_00,param_01) { var_02 = spawnstruct(); var_02.isplayer = 0; var_02.isadestructable = 0; var_02.entity = param_00; var_02.damagecenter = param_01; return var_02; } //Function Number: 92 func_3847(param_00) { return param_00.origin + (0,0,32); } //Function Number: 93 func_3C02() { if(self getstance() == "crouch") { var_00 = self.origin + (0,0,24); } else if(self getstance() == "prone") { var_00 = self.origin + (0,0,10); } else { var_00 = self.origin + (0,0,32); } return var_00; } //Function Number: 94 func_3844(param_00) { return param_00.origin; } //Function Number: 95 getdvarvec(param_00) { var_01 = getdvar(param_00); if(var_01 == "") { return (0,0,0); } var_02 = strtok(var_01," "); if(var_02.size < 3) { return (0,0,0); } setdvar("tempR",var_02[0]); setdvar("tempG",var_02[1]); setdvar("tempB",var_02[2]); return (getdvarfloat("tempR"),getdvarfloat("tempG"),getdvarfloat("tempB")); } //Function Number: 96 func_7CEA(param_00,param_01) { if(param_00.size <= param_01.size) { return param_00; } if(getsubstr(param_00,param_00.size - param_01.size,param_00.size) == param_01) { return getsubstr(param_00,0,param_00.size - param_01.size); } return param_00; } //Function Number: 97 _takeweaponsexcept(param_00) { var_01 = self getweaponslistall(); foreach(var_03 in var_01) { if(var_03 == param_00) { continue; } else { self takeweapon(var_03); } } } //Function Number: 98 func_6AA8() { var_00 = spawnstruct(); var_00.offhandclass = self getoffhandsecondaryclass(); var_00.actionslots = self.saved_actionslotdata; var_00.currentweapon = self getcurrentweapon(); var_01 = self getweaponslistall(); var_00.weapons = []; foreach(var_03 in var_01) { if(weaponinventorytype(var_03) == "exclusive") { continue; } if(weaponinventorytype(var_03) == "altmode") { continue; } var_04 = spawnstruct(); var_04.name = var_03; var_04.clipammor = self getweaponammoclip(var_03,"right"); var_04.clipammol = self getweaponammoclip(var_03,"left"); var_04.stockammo = self getweaponammostock(var_03); if(isdefined(self.throwinggrenade) && self.throwinggrenade == var_03) { var_04.stockammo--; } var_00.weapons[var_00.weapons.size] = var_04; } self.script_savedata = var_00; } //Function Number: 99 func_665A() { var_00 = self.script_savedata; self setoffhandsecondaryclass(var_00.offhandclass); foreach(var_02 in var_00.weapons) { _giveweapon(var_02.name,int(tablelookup("mp/camoTable.csv",1,self.loadoutprimarycamo,0))); self setweaponammoclip(var_02.name,var_02.clipammor,"right"); if(issubstr(var_02.name,"akimbo")) { self setweaponammoclip(var_02.name,var_02.clipammol,"left"); } self setweaponammostock(var_02.name,var_02.stockammo); } foreach(var_06, var_05 in var_00.actionslots) { _setactionslot(var_06,var_05.type,var_05.item); } if(self getcurrentweapon() == "none") { var_02 = var_00.currentweapon; if(var_02 == "none") { var_02 = common_scripts\utility::func_3B0A(); } self setspawnweapon(var_02); self switchtoweapon(var_02); } } //Function Number: 100 _setactionslot(param_00,param_01,param_02) { self.saved_actionslotdata[param_00].type = param_01; self.saved_actionslotdata[param_00].item = param_02; self setactionslot(param_00,param_01,param_02); } //Function Number: 101 func_48C6(param_00) { if(int(param_00) != param_00) { return 1; } return 0; } //Function Number: 102 func_647B(param_00,param_01) { var_02 = "scr_" + level.gametype + "_" + param_00; level.watchdvars[var_02] = spawnstruct(); level.watchdvars[var_02].value = getdvarint(var_02,param_01); level.watchdvars[var_02].type = "int"; level.watchdvars[var_02].notifystring = "update_" + param_00; } //Function Number: 103 func_647A(param_00,param_01) { var_02 = "scr_" + level.gametype + "_" + param_00; level.watchdvars[var_02] = spawnstruct(); level.watchdvars[var_02].value = getdvarfloat(var_02,param_01); level.watchdvars[var_02].type = "float"; level.watchdvars[var_02].notifystring = "update_" + param_00; } //Function Number: 104 func_6479(param_00,param_01) { var_02 = "scr_" + level.gametype + "_" + param_00; level.watchdvars[var_02] = spawnstruct(); level.watchdvars[var_02].value = getdvar(var_02,param_01); level.watchdvars[var_02].type = "string"; level.watchdvars[var_02].notifystring = "update_" + param_00; } //Function Number: 105 func_708B(param_00,param_01) { param_00 = "scr_" + level.gametype + "_" + param_00; level.overridewatchdvars[param_00] = param_01; } //Function Number: 106 getwatcheddvar(param_00) { param_00 = "scr_" + level.gametype + "_" + param_00; if(isdefined(level.overridewatchdvars) && isdefined(level.overridewatchdvars[param_00])) { return level.overridewatchdvars[param_00]; } return level.watchdvars[param_00].value; } //Function Number: 107 func_8755() { while(game["state"] == "playing") { var_00 = getarraykeys(level.watchdvars); foreach(var_02 in var_00) { if(level.watchdvars[var_02].type == "string") { var_03 = func_3BAA(var_02,level.watchdvars[var_02].value); } else if(level.watchdvars[var_02].type == "float") { var_03 = func_3AAF(var_02,level.watchdvars[var_02].value); } else { var_03 = func_3ADD(var_02,level.watchdvars[var_02].value); } if(var_03 != level.watchdvars[var_02].value) { level.watchdvars[var_02].value = var_03; level notify(level.watchdvars[var_02].notifystring,var_03); } } wait(1); } } //Function Number: 108 func_4950() { if(!level.teambased) { return 0; } if(getwatcheddvar("winlimit") != 1 && getwatcheddvar("roundlimit") != 1) { return 1; } if(level.gametype == "sr" || level.gametype == "sd" || level.gametype == "siege") { return 1; } return 0; } //Function Number: 109 func_48C1() { if(!level.teambased) { return 1; } if(getwatcheddvar("roundlimit") > 1 && game["roundsPlayed"] == 0) { return 1; } if(getwatcheddvar("winlimit") > 1 && game["roundsWon"]["allies"] == 0 && game["roundsWon"]["axis"] == 0) { return 1; } return 0; } //Function Number: 110 islastround() { if(!level.teambased) { return 1; } if(getwatcheddvar("roundlimit") > 1 && game["roundsPlayed"] >= getwatcheddvar("roundlimit") - 1) { return 1; } if(getwatcheddvar("winlimit") > 1 && game["roundsWon"]["allies"] >= getwatcheddvar("winlimit") - 1 && game["roundsWon"]["axis"] >= getwatcheddvar("winlimit") - 1) { return 1; } return 0; } //Function Number: 111 func_8C4A() { if(!level.teambased) { return 1; } if(isdefined(level.onlyroundoverride)) { return 0; } if(getwatcheddvar("winlimit") == 1 && func_4281()) { return 1; } if(getwatcheddvar("roundlimit") == 1) { return 1; } return 0; } //Function Number: 112 func_8C49() { if(level.forcedend) { return 1; } if(!level.teambased) { return 1; } if(hitroundlimit() || func_4281()) { return 1; } return 0; } //Function Number: 113 func_4280() { if(getwatcheddvar("timelimit") <= 0) { return 0; } var_00 = maps\mp\gametypes\_gamelogic::gettimeremaining(); if(var_00 > 0) { return 0; } return 1; } //Function Number: 114 hitroundlimit() { if(getwatcheddvar("roundlimit") <= 0) { return 0; } return game["roundsPlayed"] >= getwatcheddvar("roundlimit"); } //Function Number: 115 func_427E() { if(func_491C()) { return 0; } if(getwatcheddvar("scorelimit") <= 0) { return 0; } if(level.teambased) { if(game["teamScores"]["allies"] >= getwatcheddvar("scorelimit") || game["teamScores"]["axis"] >= getwatcheddvar("scorelimit")) { return 1; } } else { for(var_00 = 0;var_00 < level.players.size;var_00++) { var_01 = level.players[var_00]; if(isdefined(var_01.score) && var_01.score >= getwatcheddvar("scorelimit")) { return 1; } } } return 0; } //Function Number: 116 func_4281() { if(getwatcheddvar("winlimit") <= 0) { return 0; } if(!level.teambased) { return 1; } if(getroundswon("allies") >= getwatcheddvar("winlimit") || getroundswon("axis") >= getwatcheddvar("winlimit")) { return 1; } return 0; } //Function Number: 117 getscorelimit() { if(func_4950()) { if(getwatcheddvar("roundlimit")) { return getwatcheddvar("roundlimit"); } return getwatcheddvar("winlimit"); } return getwatcheddvar("scorelimit"); } //Function Number: 118 getroundswon(param_00) { return game["roundsWon"][param_00]; } //Function Number: 119 func_491C() { return level.objectivebased; } //Function Number: 120 func_3C4A() { if(inovertime() && !isdefined(game["inNukeOvertime"]) || !game["inNukeOvertime"]) { var_00 = int(getdvar("overtimeTimeLimit")); if(isdefined(var_00)) { return var_00; } return 1; } if(isdefined(level.dd) && level.dd && isdefined(level.bombexploded) && level.bombexploded > 0) { return getwatcheddvar("timelimit") + level.bombexploded * level.ddtimetoadd; } return getwatcheddvar("timelimit"); } //Function Number: 121 gethalftime() { if(inovertime()) { return 0; } if(isdefined(game["inNukeOvertime"]) && game["inNukeOvertime"]) { return 0; } return getwatcheddvar("halftime"); } //Function Number: 122 inovertime() { return isdefined(game["status"]) && game["status"] == "overtime"; } //Function Number: 123 gamehasstarted() { if(isdefined(level.gamehasstarted)) { return level.gamehasstarted; } if(level.teambased) { return level.hasspawned["axis"] && level.hasspawned["allies"]; } return level.maxplayercount > 1; } //Function Number: 124 func_3A30(param_00) { var_01 = (0,0,0); if(!param_00.size) { return undefined; } foreach(var_03 in param_00) { var_01 = var_01 + var_03.origin; } var_05 = int(var_01[0] / param_00.size); var_06 = int(var_01[1] / param_00.size); var_07 = int(var_01[2] / param_00.size); var_01 = (var_05,var_06,var_07); return var_01; } //Function Number: 125 func_3B16(param_00) { var_01 = []; foreach(var_03 in level.players) { if(!isalive(var_03)) { continue; } if(level.teambased && isdefined(param_00)) { if(param_00 == var_03.pers["team"]) { var_01[var_01.size] = var_03; } continue; } var_01[var_01.size] = var_03; } return var_01; } //Function Number: 126 func_720F(param_00) { if(isdefined(self.carryicon)) { self.carryicon.alpha = 0; } self.usingremote = param_00; common_scripts\utility::_disableoffhandweapons(); self notify("using_remote"); } //Function Number: 127 func_3BD3() { return self.usingremote; } //Function Number: 128 func_350E(param_00) { if(isdefined(level.hostmigrationtimer)) { self.hostmigrationcontrolsfrozen = 1; self freezecontrols(1); } self freezecontrols(param_00); self.controlsfrozen = param_00; } //Function Number: 129 func_1D59() { if(isdefined(self.carryicon)) { self.carryicon.alpha = 1; } self.usingremote = undefined; common_scripts\utility::func_66F(); var_00 = self getcurrentweapon(); if(var_00 == "none" || func_48F7(var_00)) { var_01 = common_scripts\utility::func_3B0A(); if(func_4945(self)) { if(!self hasweapon(var_01)) { var_01 = maps\mp\killstreaks\_killstreaks::func_3AAA(); } self switchtoweapon(var_01); } } func_350E(0); self notify("stopped_using_remote"); } //Function Number: 130 func_4995() { return isdefined(self.usingremote); } //Function Number: 131 isrocketcorpse() { return isdefined(self.isrocketcorpse) && self.isrocketcorpse; } //Function Number: 132 func_6297(param_00) { if(!isdefined(level.queues)) { level.queues = []; } level.queues[param_00] = []; } //Function Number: 133 func_6295(param_00,param_01) { level.queues[param_00][level.queues[param_00].size] = param_01; } //Function Number: 134 func_6299(param_00) { var_01 = undefined; var_02 = []; foreach(var_04 in level.queues[param_00]) { if(!isdefined(var_04)) { continue; } if(!isdefined(var_01)) { var_01 = var_04; continue; } var_02[var_02.size] = var_04; } level.queues[param_00] = var_02; return var_01; } //Function Number: 135 _giveweapon(param_00,param_01,param_02) { if(!isdefined(param_01)) { param_01 = -1; } if(issubstr(param_00,"_akimbo") || isdefined(param_02) && param_02 == 1) { self giveweapon(param_00,param_01,1); } self giveweapon(param_00,param_01,0); } //Function Number: 136 perksenabled() { return getdvarint("scr_game_perks") == 1; } //Function Number: 137 _hasperk(param_00) { var_01 = self.perks; if(!isdefined(var_01)) { return 0; } if(isdefined(var_01[param_00])) { return 1; } return 0; } //Function Number: 138 func_3CFB(param_00,param_01) { if(issubstr(param_00,"specialty_weapon_")) { _setperk(param_00,param_01); } _setperk(param_00,param_01); _setextraperks(param_00); } //Function Number: 139 giveperkequipment(param_00,param_01) { if(param_00 == "none" || param_00 == "specialty_null") { self setoffhandprimaryclass("none"); } self.primarygrenade = param_00; if(issubstr(param_00,"_mp")) { switch(param_00) { case "mortar_shelljugg_mp": case "mortar_shell_mp": case "frag_grenade_mp": self setoffhandprimaryclass("frag"); break; case "throwingknifejugg_mp": case "throwingknife_mp": self setoffhandprimaryclass("throwingknife"); break; case "thermobaric_grenade_mp": case "motion_sensor_mp": case "emp_grenade_mp": case "flash_grenade_mp": case "trophy_mp": self setoffhandprimaryclass("flash"); break; case "concussion_grenade_mp": case "smoke_grenadejugg_mp": case "smoke_grenade_mp": self setoffhandprimaryclass("smoke"); break; default: self setoffhandprimaryclass("other"); break; } _giveweapon(param_00,0); self givestartammo(param_00); _setperk(param_00,param_01); } _setperk(param_00,param_01); } //Function Number: 140 func_3CFD(param_00,param_01) { if(param_00 == "none" || param_00 == "specialty_null") { self setoffhandsecondaryclass("none"); } self.secondarygrenade = param_00; if(issubstr(param_00,"_mp")) { switch(param_00) { case "mortar_shelljugg_mp": case "mortar_shell_mp": case "frag_grenade_mp": self setoffhandsecondaryclass("frag"); break; case "throwingknifejugg_mp": case "throwingknife_mp": self setoffhandsecondaryclass("throwingknife"); break; case "thermobaric_grenade_mp": case "motion_sensor_mp": case "emp_grenade_mp": case "flash_grenade_mp": case "trophy_mp": self setoffhandsecondaryclass("flash"); break; case "concussion_grenade_mp": case "smoke_grenadejugg_mp": case "smoke_grenade_mp": self setoffhandsecondaryclass("smoke"); break; default: self setoffhandsecondaryclass("other"); break; } _giveweapon(param_00,0); switch(param_00) { case "concussion_grenade_mp": case "smoke_grenade_mp": case "thermobaric_grenade_mp": case "motion_sensor_mp": case "emp_grenade_mp": case "flash_grenade_mp": case "trophy_mp": self setweaponammoclip(param_00,1); break; default: self givestartammo(param_00); break; } _setperk(param_00,param_01); } _setperk(param_00,param_01); } //Function Number: 141 _setperk(param_00,param_01) { self.perks[param_00] = 1; self.perksperkname[param_00] = param_00; self.perksuseslot[param_00] = param_01; var_02 = level.perksetfuncs[param_00]; if(isdefined(var_02)) { self thread [[ var_02 ]](); } self setperk(param_00,!isdefined(level.scriptperks[param_00]),param_01); } //Function Number: 142 _setextraperks(param_00) { if(param_00 == "specialty_stun_resistance") { func_3CFB("specialty_empimmune",0); } if(param_00 == "specialty_hardline") { func_3CFB("specialty_assists",0); } if(param_00 == "specialty_incog") { func_3CFB("specialty_spygame",0); func_3CFB("specialty_coldblooded",0); func_3CFB("specialty_noscopeoutline",0); func_3CFB("specialty_heartbreaker",0); } if(param_00 == "specialty_blindeye") { func_3CFB("specialty_noplayertarget",0); } if(param_00 == "specialty_sharp_focus") { func_3CFB("specialty_reducedsway",0); } if(param_00 == "specialty_quickswap") { func_3CFB("specialty_fastoffhand",0); } } //Function Number: 143 _unsetperk(param_00) { self.perks[param_00] = undefined; self.perksperkname[param_00] = undefined; self.perksuseslot[param_00] = undefined; if(isdefined(level.perkunsetfuncs[param_00])) { self thread [[ level.perkunsetfuncs[param_00] ]](); } self unsetperk(param_00,!isdefined(level.scriptperks[param_00])); } //Function Number: 144 _unsetextraperks(param_00) { if(param_00 == "specialty_bulletaccuracy") { _unsetperk("specialty_steadyaimpro"); } if(param_00 == "specialty_coldblooded") { _unsetperk("specialty_heartbreaker"); } if(param_00 == "specialty_fasterlockon") { _unsetperk("specialty_armorpiercing"); } if(param_00 == "specialty_heartbreaker") { _unsetperk("specialty_empimmune"); } if(param_00 == "specialty_rollover") { _unsetperk("specialty_assists"); } } //Function Number: 145 _clearperks() { foreach(var_02, var_01 in self.perks) { if(isdefined(level.perkunsetfuncs[var_02])) { self [[ level.perkunsetfuncs[var_02] ]](); } } self.perks = []; self.perksperkname = []; self.perksuseslot = []; self clearperks(); } //Function Number: 146 func_62A1(param_00) { return func_62A2(param_00,0,param_00.size - 1); } //Function Number: 147 func_62A2(param_00,param_01,param_02) { var_03 = param_01; var_04 = param_02; if(param_02 - param_01 >= 1) { var_05 = param_00[param_01]; while(var_04 > var_03) { while(param_00[var_03] <= var_05 && var_03 <= param_02 && var_04 > var_03) { var_03++; } while(param_00[var_04] > var_05 && var_04 >= param_01 && var_04 >= var_03) { var_04--; } if(var_04 > var_03) { param_00 = func_7D8D(param_00,var_03,var_04); } } param_00 = func_7D8D(param_00,param_01,var_04); param_00 = func_62A2(param_00,param_01,var_04 - 1); param_00 = func_62A2(param_00,var_04 + 1,param_02); } else { return param_01; } return param_00; } //Function Number: 148 func_7D8D(param_00,param_01,param_02) { var_03 = param_00[param_01]; param_00[param_01] = param_00[param_02]; param_00[param_02] = var_03; return param_00; } //Function Number: 149 _suicide() { if(func_4995() && !isdefined(self.fauxdead)) { thread maps\mp\gametypes\_damage::playerkilled_internal(self,self,self,10000,"MOD_SUICIDE","frag_grenade_mp",(0,0,0),"none",0,1116,1); } if(!func_4995() && !isdefined(self.fauxdead)) { self suicide(); } } //Function Number: 150 func_4945(param_00) { if(isalive(param_00) && !isdefined(param_00.fauxdead)) { return 1; } return 0; } //Function Number: 151 func_8B37(param_00,param_01,param_02,param_03,param_04,param_05) { var_06 = spawnstruct(); if(isdefined(param_01)) { thread common_scripts\utility::func_8B9F(param_01,var_06); } if(isdefined(param_02)) { thread common_scripts\utility::func_8B9F(param_02,var_06); } if(isdefined(param_03)) { thread common_scripts\utility::func_8B9F(param_03,var_06); } if(isdefined(param_04)) { thread common_scripts\utility::func_8B9F(param_04,var_06); } if(isdefined(param_05)) { thread common_scripts\utility::func_8B9F(param_05,var_06); } var_06 thread _timeout_pause_on_death_and_prematch(param_00,self); var_06 waittill("returned",var_07); var_06 notify("die"); return var_07; } //Function Number: 152 _timeout_pause_on_death_and_prematch(param_00,param_01) { self endon("die"); var_02 = 0.05; while(param_00 > 0) { if(isplayer(param_01) && !func_4945(param_01)) { param_01 waittill("spawned_player"); } if(getomnvar("ui_prematch_period")) { level waittill("prematch_over"); } wait(var_02); param_00 = param_00 - var_02; } self notify("returned","timeout"); } //Function Number: 153 func_5D5B() { var_00 = randomintrange(1,8); var_01 = "generic"; if(self hasfemalecustomizationmodel()) { var_01 = "female"; } if(self.team == "axis") { self playsound(var_01 + "_death_russian_" + var_00); } self playsound(var_01 + "_death_american_" + var_00); } //Function Number: 154 func_634C() { if(!isplayer(self)) { return 0; } return level.rankedmatch && !self.usingonlinedataoffline; } //Function Number: 155 func_61B9() { return level.onlinegame && getdvarint("xblive_privatematch"); } //Function Number: 156 func_50C1() { return level.onlinegame && !getdvarint("xblive_privatematch"); } //Function Number: 157 func_6FDC(param_00,param_01,param_02,param_03) { } //Function Number: 158 func_2DEE(param_00) { self endon("altscene"); param_00 waittill("death"); self notify("end_altScene"); } //Function Number: 159 func_3ABB() { return getwatcheddvar("numlives"); } //Function Number: 160 givecombathigh(param_00) { self.combathigh = param_00; } //Function Number: 161 arrayinsertion(param_00,param_01,param_02) { if(param_00.size != 0) { for(var_03 = param_00.size;var_03 >= param_02;var_03--) { param_00[var_03 + 1] = param_00[var_03]; } } param_00[param_02] = param_01; } //Function Number: 162 func_3BAA(param_00,param_01) { var_02 = param_01; var_02 = getdvar(param_00,param_01); return var_02; } //Function Number: 163 func_3ADD(param_00,param_01) { var_02 = param_01; var_02 = getdvarint(param_00,param_01); return var_02; } //Function Number: 164 func_3AAF(param_00,param_01) { var_02 = param_01; var_02 = getdvarfloat(param_00,param_01); return var_02; } //Function Number: 165 func_4899() { return isdefined(self.changingweapon); } //Function Number: 166 func_4B2A(param_00) { if(param_00 == "venomxgun_mp" || param_00 == "venomxproj_mp") { return 1; } if(_hasperk("specialty_explosivebullets")) { return 0; } if(isdefined(self.isjuggernautrecon) && self.isjuggernautrecon == 1) { return 0; } var_01 = self.pers["killstreaks"]; if(isdefined(level.killstreakweildweapons[param_00]) && isdefined(self.streaktype) && self.streaktype != "support") { for(var_02 = 1;var_02 < 4;var_02++) { if(isdefined(var_01[var_02]) && isdefined(var_01[var_02].streakname) && var_01[var_02].streakname == level.killstreakweildweapons[param_00] && isdefined(var_01[var_02].lifeid) && var_01[var_02].lifeid == self.pers["deaths"]) { return func_7C95(level.killstreakweildweapons[param_00]); } } return 0; } return !func_48F7(var_01); } //Function Number: 167 func_7C95(param_00) { var_01 = maps\mp\killstreaks\_killstreaks::func_3C16(param_00); var_02 = maps\mp\killstreaks\_killstreaks::func_3B47(); var_03 = maps\mp\killstreaks\_killstreaks::func_3C16(var_02); return var_01 < var_03; } //Function Number: 168 isjuggernaut() { if(isdefined(self.isjuggernaut) && self.isjuggernaut == 1) { return 1; } if(isdefined(self.isjuggernautdef) && self.isjuggernautdef == 1) { return 1; } if(isdefined(self.isjuggernautgl) && self.isjuggernautgl == 1) { return 1; } if(isdefined(self.isjuggernautrecon) && self.isjuggernautrecon == 1) { return 1; } if(isdefined(self.isjuggernautmaniac) && self.isjuggernautmaniac == 1) { return 1; } if(isdefined(self.isjuggernautlevelcustom) && self.isjuggernautlevelcustom == 1) { return 1; } return 0; } //Function Number: 169 func_48F7(param_00) { if(!isdefined(param_00)) { return 0; } if(param_00 == "none") { return 0; } if(isdestructibleweapon(param_00)) { return 0; } if(func_4888(param_00)) { return 0; } if(issubstr(param_00,"killstreak")) { return 1; } if(issubstr(param_00,"cobra")) { return 1; } if(issubstr(param_00,"remote_tank_projectile")) { return 1; } if(issubstr(param_00,"artillery_mp")) { return 1; } if(issubstr(param_00,"harrier")) { return 1; } var_01 = strtok(param_00,"_"); var_02 = 0; foreach(var_04 in var_01) { if(var_04 == "mp") { var_02 = 1; break; } } if(!var_02) { param_00 = param_00 + "_mp"; } if(isdefined(level.killstreakweildweapons[param_00])) { return 1; } if(maps\mp\killstreaks\_killstreaks::isairdropmarker(param_00)) { return 1; } var_06 = weaponinventorytype(param_00); if(isdefined(var_06) && var_06 == "exclusive") { return 1; } return 0; } //Function Number: 170 isdestructibleweapon(param_00) { if(!isdefined(param_00)) { return 0; } switch(param_00) { case "barrel_mp": case "destructible": case "destructible_car": case "destructible_toy": return 1; } return 0; } //Function Number: 171 func_4888(param_00) { if(!isdefined(param_00)) { return 0; } switch(param_00) { case "bomb_site_mp": case "briefcase_bomb_mp": return 1; } return 0; } //Function Number: 172 func_48B7(param_00) { if(!isdefined(param_00)) { return 0; } if(param_00 == "turret_minigun_mp") { return 1; } if(issubstr(param_00,"_bipod_")) { return 1; } return 0; } //Function Number: 173 func_48EF(param_00) { if(!isdefined(param_00)) { return 0; } switch(param_00) { case "iw6_mariachimagnum_mp_akimbo": case "iw6_predatorcannon_mp": case "iw6_axe_mp": case "iw6_riotshieldjugg_mp": case "iw6_knifeonlyjugg_mp": case "iw6_p226jugg_mp": case "iw6_magnumjugg_mp": case "iw6_minigunjugg_mp": case "smoke_grenadejugg_mp": case "throwingknifejugg_mp": case "mortar_shelljugg_mp": return 1; } return 0; } //Function Number: 174 getweaponclass(param_00) { var_01 = func_3A37(param_00); if(func_47BB()) { var_02 = tablelookup("mp/alien/mode_string_tables/alien_statstable.csv",4,var_01,2); } else { var_02 = tablelookup("mp/statstable.csv",4,var_02,2); } if(var_02 == "") { var_03 = func_7CEA(param_00,"_mp"); if(func_47BB()) { var_02 = tablelookup("mp/alien/mode_string_tables/alien_statstable.csv",4,var_03,2); } else { var_02 = tablelookup("mp/statstable.csv",4,var_03,2); } } if(func_48B7(param_00)) { var_02 = "weapon_mg"; } else if(!func_47BB() && func_48F7(param_00)) { var_02 = "killstreak"; } else if(param_00 == "none") { var_02 = "other"; } else if(var_02 == "") { var_02 = "other"; } return var_02; } //Function Number: 175 func_3C6F(param_00) { param_00 = func_3A37(param_00); if(!isdefined(level.weaponattachments[param_00])) { var_01 = []; for(var_02 = 0;var_02 <= 19;var_02++) { var_03 = tablelookup("mp/statsTable.csv",4,param_00,10 + var_02); if(var_03 == "") { break; } var_01[var_01.size] = var_03; } level.weaponattachments[param_00] = var_01; } return level.weaponattachments[param_00]; } //Function Number: 176 getweaponattachmentfromstats(param_00,param_01) { param_00 = func_3A37(param_00); return tablelookup("mp/statsTable.csv",4,param_00,10 + param_01); } //Function Number: 177 attachmentscompatible(param_00,param_01) { param_00 = attachmentmap_tobase(param_00); param_01 = attachmentmap_tobase(param_01); var_02 = 1; if(param_00 == param_01) { var_02 = 0; } else if(param_00 != "none" && param_01 != "none") { var_03 = tablelookuprownum("mp/attachmentcombos.csv",0,param_01); if(tablelookup("mp/attachmentcombos.csv",0,param_00,var_03) == "no") { var_02 = 0; } } return var_02; } //Function Number: 178 func_3A37(param_00) { var_01 = strtok(param_00,"_"); if(var_01[0] == "iw5" || var_01[0] == "iw6") { param_00 = var_01[0] + "_" + var_01[1]; } else if(var_01[0] == "alt") { param_00 = var_01[1] + "_" + var_01[2]; } return param_00; } //Function Number: 179 getbaseperkname(param_00) { if(isendstr(param_00,"_ks")) { param_00 = getsubstr(param_00,0,param_00.size - 3); } return param_00; } //Function Number: 180 getvalidextraammoweapons() { var_00 = []; var_01 = self getweaponslistprimaries(); foreach(var_03 in var_01) { var_04 = weaponclass(var_03); if(!func_48F7(var_03) && var_04 != "grenade" && var_04 != "rocketlauncher") { var_00[var_00.size] = var_03; } } return var_00; } //Function Number: 181 func_66D5() { var_00 = 0; var_01 = self getweaponslistprimaries(); foreach(var_03 in var_01) { if(maps\mp\gametypes\_weapons::func_494E(var_03)) { var_00 = 1; break; } } return var_00; } //Function Number: 182 func_66D4() { var_00 = 0; var_01 = self getweaponslistprimaries(); foreach(var_03 in var_01) { if(maps\mp\gametypes\_weapons::func_494E(var_03)) { var_00++; } if(var_00 == 2) { break; } } return var_00 == 2; } //Function Number: 183 riotshield_attach(param_00,param_01) { var_02 = undefined; if(param_00) { self.riotshieldmodel = param_01; var_02 = "tag_weapon_right"; } else { self.riotshieldmodelstowed = param_01; var_02 = "tag_shield_back"; } self attachshieldmodel(param_01,var_02); self.hasriotshield = func_66D5(); } //Function Number: 184 riotshield_detach(param_00) { var_01 = undefined; var_02 = undefined; if(param_00) { var_01 = self.riotshieldmodel; var_02 = "tag_weapon_right"; } else { var_01 = self.riotshieldmodelstowed; var_02 = "tag_shield_back"; } self detachshieldmodel(var_01,var_02); if(param_00) { self.riotshieldmodel = undefined; } else { self.riotshieldmodelstowed = undefined; } self.hasriotshield = func_66D5(); } //Function Number: 185 func_66D7(param_00) { var_01 = undefined; var_02 = undefined; var_03 = undefined; if(param_00) { var_03 = self.riotshieldmodel; var_01 = "tag_weapon_right"; var_02 = "tag_shield_back"; } else { var_03 = self.riotshieldmodelstowed; var_01 = "tag_shield_back"; var_02 = "tag_weapon_right"; } self moveshieldmodel(var_03,var_01,var_02); if(param_00) { self.riotshieldmodelstowed = var_03; self.riotshieldmodel = undefined; } self.riotshieldmodel = var_03; self.riotshieldmodelstowed = undefined; } //Function Number: 186 func_66D1() { self.hasriotshieldequipped = 0; self.hasriotshield = 0; self.riotshieldmodelstowed = undefined; self.riotshieldmodel = undefined; } //Function Number: 187 riotshield_getmodel() { return common_scripts\utility::func_803F(isjuggernaut(),"weapon_riot_shield_jug_iw6","weapon_riot_shield_iw6"); } //Function Number: 188 func_5A43(param_00,param_01,param_02,param_03) { var_04 = level.players; var_05 = maps\mp\gametypes\_outline::func_5A3F(param_01); var_06 = maps\mp\gametypes\_outline::func_5A4F(param_03); return maps\mp\gametypes\_outline::func_5A46(param_00,var_05,var_04,param_02,var_06,"ALL"); } //Function Number: 189 func_5A45(param_00,param_01,param_02,param_03,param_04) { var_05 = getteamarray(param_02,0); var_06 = maps\mp\gametypes\_outline::func_5A3F(param_01); var_07 = maps\mp\gametypes\_outline::func_5A4F(param_04); return maps\mp\gametypes\_outline::func_5A46(param_00,var_06,var_05,param_03,var_07,"TEAM",param_02); } //Function Number: 190 func_5A44(param_00,param_01,param_02,param_03,param_04) { var_05 = maps\mp\gametypes\_outline::func_5A3F(param_01); var_06 = maps\mp\gametypes\_outline::func_5A4F(param_04); if(isagent(param_02)) { return maps\mp\gametypes\_outline::func_5A48(); } return maps\mp\gametypes\_outline::func_5A46(param_00,var_05,[param_02],param_03,var_06,"ENTITY"); } //Function Number: 191 func_5A40(param_00,param_01) { maps\mp\gametypes\_outline::func_5A41(param_00,param_01); } //Function Number: 192 func_6044(param_00,param_01) { playsoundatpos(param_01,param_00); } //Function Number: 193 func_4E13(param_00,param_01) { var_02 = 1; for(var_03 = 0;var_03 < param_01;var_03++) { var_02 = var_02 * 10; } var_04 = param_00 * var_02; var_04 = int(var_04); var_04 = var_04 / var_02; return var_04; } //Function Number: 194 func_6893(param_00,param_01,param_02) { if(!isdefined(param_02)) { param_02 = "nearest"; } var_03 = 1; for(var_04 = 0;var_04 < param_01;var_04++) { var_03 = var_03 * 10; } var_05 = param_00 * var_03; if(param_02 == "up") { var_06 = ceil(var_05); } else if(var_03 == "down") { var_06 = floor(var_06); } else { var_06 = var_06 + 0.5; } var_05 = int(var_06); var_05 = var_05 / var_03; return var_05; } //Function Number: 195 func_5FAB(param_00) { foreach(var_02 in level.players) { if(var_02.clientid == param_00) { return var_02; } } return undefined; } //Function Number: 196 func_494B() { if(!func_634C()) { return 0; } return self getrankedplayerdata("restXPGoal") > self getrankedplayerdata("experience"); } //Function Number: 197 func_7CE9(param_00) { var_01 = strtok(param_00,"."); var_02 = int(var_01[0]); if(isdefined(var_01[1])) { var_03 = 1; for(var_04 = 0;var_04 < var_01[1].size;var_04++) { var_03 = var_03 * 0.1; } var_02 = var_02 + int(var_01[1]) * var_03; } return var_02; } //Function Number: 198 func_70BF(param_00) { self makeusable(); foreach(var_02 in level.players) { if(var_02 != param_00) { self disableplayeruse(var_02); continue; } self enableplayeruse(var_02); } } //Function Number: 199 func_5021(param_00) { self makeusable(); thread _updateteamusable(param_00); } //Function Number: 200 _updateteamusable(param_00) { self endon("death"); for(;;) { foreach(var_02 in level.players) { if(var_02.team == param_00) { self enableplayeruse(var_02); continue; } self disableplayeruse(var_02); } level waittill("joined_team"); } } //Function Number: 201 func_5013(param_00) { self makeusable(); thread _updateenemyusable(param_00); } //Function Number: 202 _updateenemyusable(param_00) { self endon("death"); var_01 = param_00.team; for(;;) { if(level.teambased) { foreach(var_03 in level.players) { if(var_03.team != var_01) { self enableplayeruse(var_03); continue; } self disableplayeruse(var_03); } } else { foreach(var_03 in level.players) { if(var_03 != param_00) { self enableplayeruse(var_03); continue; } self disableplayeruse(var_03); } } level waittill("joined_team"); } } //Function Number: 203 initgameflags() { if(!isdefined(game["flags"])) { game["flags"] = []; } } //Function Number: 204 func_36F3(param_00,param_01) { game["flags"][param_00] = param_01; } //Function Number: 205 func_36F1(param_00) { return game["flags"][param_00]; } //Function Number: 206 func_36F4(param_00) { game["flags"][param_00] = 1; level notify(param_00); } //Function Number: 207 func_36F2(param_00) { game["flags"][param_00] = 0; } //Function Number: 208 gameflagwait(param_00) { while(!func_36F1(param_00)) { level waittill(param_00); } } //Function Number: 209 func_493D(param_00) { if(param_00 == "MOD_RIFLE_BULLET" || param_00 == "MOD_PISTOL_BULLET") { return 1; } return 0; } //Function Number: 210 func_488D(param_00) { var_01 = "MOD_RIFLE_BULLET MOD_PISTOL_BULLET MOD_HEAD_SHOT"; if(issubstr(var_01,param_00)) { return 1; } return 0; } //Function Number: 211 isfmjdamage(param_00,param_01,param_02) { return isdefined(param_02) && param_02 _hasperk("specialty_bulletpenetration") && isdefined(param_01) && func_488D(param_01); } //Function Number: 212 initlevelflags() { if(!isdefined(level.levelflags)) { level.levelflags = []; } } //Function Number: 213 func_4DB5(param_00,param_01) { level.levelflags[param_00] = param_01; } //Function Number: 214 levelflag(param_00) { return level.levelflags[param_00]; } //Function Number: 215 levelflagset(param_00) { level.levelflags[param_00] = 1; level notify(param_00); } //Function Number: 216 func_4DB4(param_00) { level.levelflags[param_00] = 0; level notify(param_00); } //Function Number: 217 func_4DB8(param_00) { while(!levelflag(param_00)) { level waittill(param_00); } } //Function Number: 218 levelflagwaitopen(param_00) { while(levelflag(param_00)) { level waittill(param_00); } } //Function Number: 219 initglobals() { if(!isdefined(level.global_tables)) { level.global_tables["killstreakTable"] = spawnstruct(); level.global_tables["killstreakTable"].path = "mp/killstreakTable.csv"; level.global_tables["killstreakTable"].index_col = 0; level.global_tables["killstreakTable"].ref_col = 1; level.global_tables["killstreakTable"].name_col = 2; level.global_tables["killstreakTable"].desc_col = 3; level.global_tables["killstreakTable"].kills_col = 4; level.global_tables["killstreakTable"].earned_hint_col = 5; level.global_tables["killstreakTable"].sound_col = 6; level.global_tables["killstreakTable"].earned_dialog_col = 7; level.global_tables["killstreakTable"].allies_dialog_col = 8; level.global_tables["killstreakTable"].enemy_dialog_col = 9; level.global_tables["killstreakTable"].enemy_use_dialog_col = 10; level.global_tables["killstreakTable"].weapon_col = 11; level.global_tables["killstreakTable"].score_col = 12; level.global_tables["killstreakTable"].icon_col = 13; level.global_tables["killstreakTable"].overhead_icon_col = 14; level.global_tables["killstreakTable"].dpad_icon_col = 15; level.global_tables["killstreakTable"].unearned_icon_col = 16; level.global_tables["killstreakTable"].all_team_steak_col = 17; } } //Function Number: 220 func_48F6() { return func_48B2() || isairdenied(); } //Function Number: 221 func_48B2() { if(self.team == "spectator") { return 0; } if(level.teambased) { return level.teamemped[self.team] || isdefined(self.empgrenaded) && self.empgrenaded || level.teamnukeemped[self.team]; } return (isdefined(level.empplayer) && level.empplayer != self) || isdefined(self.empgrenaded) && self.empgrenaded || isdefined(level.nukeinfo.player) && self != level.nukeinfo.player && level.teamnukeemped[self.team]; } //Function Number: 222 isairdenied() { if(self.team == "spectator") { return 0; } if(level.teambased) { return level.teamairdenied[self.team]; } return isdefined(level.airdeniedplayer) && level.airdeniedplayer != self; } //Function Number: 223 func_491B() { if(self.team == "spectator") { return 0; } return isdefined(self.nuked); } //Function Number: 224 func_3B96(param_00) { foreach(var_02 in level.players) { if(var_02.guid == param_00) { return var_02; } } return undefined; } //Function Number: 225 func_7FA0(param_00,param_01,param_02,param_03) { if(level.hardcoremode && !func_47BB()) { } foreach(var_05 in level.players) { if(isdefined(param_02) && var_05.team != param_02) { continue; } if(!isplayer(var_05)) { continue; } var_05 thread maps\mp\gametypes\_hud_message::func_5F9A(param_00,param_01,param_03); } } //Function Number: 226 iscacprimaryweapon(param_00) { switch(getweaponclass(param_00)) { case "weapon_shotgun": case "weapon_lmg": case "weapon_dmr": case "weapon_sniper": case "weapon_riot": case "weapon_assault": case "weapon_smg": return 1; default: return 0; } } //Function Number: 227 func_4890(param_00) { switch(getweaponclass(param_00)) { case "weapon_machine_pistol": case "weapon_pistol": case "weapon_projectile": return 1; default: return 0; } } //Function Number: 228 func_3B09(param_00) { var_01 = undefined; foreach(var_03 in level.players) { if(isdefined(param_00) && var_03.team != param_00) { continue; } if(!func_4945(var_03) && !var_03 maps\mp\gametypes\_playerlogic::func_5128()) { continue; } if(isdefined(var_03.switching_teams) && var_03.switching_teams) { continue; } var_01 = var_03; } return var_01; } //Function Number: 229 func_3BA0() { var_00 = []; foreach(var_02 in level.players) { if(!func_4945(var_02) && !var_02 maps\mp\gametypes\_playerlogic::func_5128()) { continue; } var_00[var_00.size] = var_02; } return var_00; } //Function Number: 230 func_8BBE(param_00,param_01) { self endon("death"); self endon("disconnect"); var_02 = 0; if(!isdefined(param_01)) { param_01 = 0.05; } if(!isdefined(param_00)) { param_00 = 0; } for(;;) { if(self.health != self.maxhealth) { var_02 = 0; } else { var_02 = var_02 + param_01; } wait(param_01); if(self.health == self.maxhealth && var_02 >= param_00) { break; } } } //Function Number: 231 enableweaponlaser() { if(!isdefined(self.weaponlasercalls)) { self.weaponlasercalls = 0; } self.weaponlasercalls++; self laseron(); } //Function Number: 232 func_27C1() { self.weaponlasercalls--; if(self.weaponlasercalls == 0) { self laseroff(); self.weaponlasercalls = undefined; } } //Function Number: 233 attachmentmap_tounique(param_00,param_01) { var_02 = param_00; param_01 = func_3A37(param_01); if(isdefined(level.attachmentmap_basetounique[param_01]) && isdefined(level.attachmentmap_basetounique[param_01][param_00])) { var_02 = level.attachmentmap_basetounique[param_01][param_00]; } else { if(func_47BB()) { var_03 = tablelookup("mp/alien/mode_string_tables/alien_statstable.csv",4,param_01,2); } else { var_03 = tablelookup("mp/statstable.csv",4,var_02,2); } if(isdefined(level.attachmentmap_basetounique[var_03]) && isdefined(level.attachmentmap_basetounique[var_03][param_00])) { var_02 = level.attachmentmap_basetounique[var_03][param_00]; } } return var_02; } //Function Number: 234 func_0FD0(param_00) { var_01 = undefined; if(isdefined(level.attachmentmap_attachtoperk[param_00])) { var_01 = level.attachmentmap_attachtoperk[param_00]; } return var_01; } //Function Number: 235 weaponperkmap(param_00) { var_01 = undefined; if(isdefined(level.weaponmap_toperk[param_00])) { var_01 = level.weaponmap_toperk[param_00]; } return var_01; } //Function Number: 236 func_487E(param_00,param_01) { var_02 = strtok(param_00,"_"); return isattachmentsniperscopedefaulttokenized(var_02,param_01); } //Function Number: 237 isattachmentsniperscopedefaulttokenized(param_00,param_01) { var_02 = 0; if(param_00.size && isdefined(param_01)) { var_03 = 0; if(param_00[0] == "alt") { var_03 = 1; } if(param_00.size >= 3 + var_03 && param_00[var_03] == "iw5" || param_00[var_03] == "iw6") { if(weaponclass(param_00[var_03] + "_" + param_00[var_03 + 1] + "_" + param_00[var_03 + 2]) == "sniper") { var_02 = param_00[var_03 + 1] + "scope" == param_01; } } } return var_02; } //Function Number: 238 getnumdefaultattachments(param_00) { if(weaponclass(param_00) == "sniper") { var_01 = getweaponattachments(param_00); foreach(var_03 in var_01) { if(func_487E(param_00,var_03)) { return 1; } } } else if(func_4971(param_00,"iw6_dlcweap02")) { var_01 = getweaponattachments(param_00); foreach(var_03 in var_01) { if(var_03 == "dlcweap02scope") { return 1; } } } return 0; } //Function Number: 239 func_3C72(param_00) { var_01 = getweaponattachments(param_00); foreach(var_04, var_03 in var_01) { var_01[var_04] = attachmentmap_tobase(var_03); } return var_01; } //Function Number: 240 getattachmentlistbasenames() { var_00 = []; var_01 = 0; if(func_47BB()) { var_02 = tablelookup("mp/alien/alien_attachmentTable.csv",0,var_01,5); } else { var_02 = tablelookup("mp/attachmentTable.csv",0,var_02,5); } while(var_02 != "") { if(!common_scripts\utility::array_contains(var_00,var_02)) { var_00[var_00.size] = var_02; } var_01++; if(func_47BB()) { var_02 = tablelookup("mp/alien/alien_attachmentTable.csv",0,var_01,5); continue; } var_02 = tablelookup("mp/attachmentTable.csv",0,var_01,5); } return var_00; } //Function Number: 241 getattachmentlistuniqenames() { var_00 = []; var_01 = 0; if(func_47BB()) { var_02 = tablelookup("mp/alien/alien_attachmentTable.csv",0,var_01,4); } else { var_02 = tablelookup("mp/attachmentTable.csv",0,var_02,4); } while(var_02 != "") { var_00[var_00.size] = var_02; var_01++; if(func_47BB()) { var_02 = tablelookup("mp/alien/alien_attachmentTable.csv",0,var_01,4); continue; } var_02 = tablelookup("mp/attachmentTable.csv",0,var_01,4); } return var_00; } //Function Number: 242 func_1855() { var_00 = getattachmentlistuniqenames(); level.attachmentmap_uniquetobase = []; foreach(var_02 in var_00) { if(func_47BB()) { var_03 = tablelookup("mp/alien/alien_attachmentTable.csv",4,var_02,5); } else { var_03 = tablelookup("mp/attachmenttable.csv",4,var_02,5); } if(var_02 == var_03) { continue; } level.attachmentmap_uniquetobase[var_02] = var_03; } var_05 = []; var_06 = 1; if(func_47BB()) { var_07 = tablelookupbyrow("mp/alien/alien_attachmentmap.csv",var_06,0); } else { var_07 = tablelookupbyrow("mp/attachmentmap.csv",var_07,0); } while(var_07 != "") { var_05[var_05.size] = var_07; var_06++; if(func_47BB()) { var_07 = tablelookupbyrow("mp/alien/alien_attachmentmap.csv",var_06,0); continue; } var_07 = tablelookupbyrow("mp/attachmentmap.csv",var_06,0); } var_08 = []; var_09 = 1; if(func_47BB()) { var_0A = tablelookupbyrow("mp/alien/alien_attachmentmap.csv",0,var_09); } else { var_0A = tablelookupbyrow("mp/attachmentmap.csv",0,var_0A); } while(var_0A != "") { var_08[var_0A] = var_09; var_09++; if(func_47BB()) { var_0A = tablelookupbyrow("mp/alien/alien_attachmentmap.csv",0,var_09); continue; } var_0A = tablelookupbyrow("mp/attachmentmap.csv",0,var_09); } level.attachmentmap_basetounique = []; foreach(var_07 in var_05) { foreach(var_0F, var_0D in var_08) { if(func_47BB()) { var_0E = tablelookup("mp/alien/alien_attachmentmap.csv",0,var_07,var_0D); } else { var_0E = tablelookup("mp/attachmentmap.csv",0,var_07,var_0D); } if(var_0E == "") { continue; } if(!isdefined(level.attachmentmap_basetounique[var_07])) { level.attachmentmap_basetounique[var_07] = []; } level.attachmentmap_basetounique[var_07][var_0F] = var_0E; } } level.attachmentmap_attachtoperk = []; foreach(var_12 in var_00) { if(func_47BB()) { var_13 = tablelookup("mp/alien/alien_attachmenttable.csv",4,var_12,12); } else { var_13 = tablelookup("mp/attachmenttable.csv",4,var_12,12); } if(var_13 == "") { continue; } level.attachmentmap_attachtoperk[var_12] = var_13; } } //Function Number: 243 buildweaponperkmap() { level.weaponmap_toperk = []; if(func_47BB()) { } for(var_00 = 0;tablelookup("mp/statstable.csv",0,var_00,0) != "";var_00++) { var_01 = tablelookup("mp/statstable.csv",0,var_00,5); if(var_01 != "") { var_02 = tablelookup("mp/statstable.csv",0,var_00,4); if(var_02 != "") { level.weaponmap_toperk[var_02] = var_01; } } } } //Function Number: 244 attachmentmap_tobase(param_00) { if(isdefined(level.attachmentmap_uniquetobase[param_00])) { param_00 = level.attachmentmap_uniquetobase[param_00]; } return param_00; } //Function Number: 245 func_8DAC(param_00) { if(isdefined(param_00)) { switch(param_00) { case "semtexproj_mp": param_00 = "iw6_mk32_mp"; break; case "iw6_maawshoming_mp": case "iw6_maawschild_mp": param_00 = "iw6_maaws_mp"; break; case "iw6_knifeonlyfast_mp": param_00 = "iw6_knifeonly_mp"; break; case "iw6_pdwauto_mp": param_00 = "iw6_pdw_mp"; break; default: break; } } return param_00; } //Function Number: 246 weaponhasintegratedsilencer(param_00) { return param_00 == "iw6_vks" || param_00 == "iw6_k7" || param_00 == "iw6_honeybadger"; } //Function Number: 247 weaponisfiretypeburst(param_00) { if(weaponhasintegratedfiretypeburst(param_00)) { return 1; } return weaponhasattachment(param_00,"firetypeburst"); } //Function Number: 248 weaponhasintegratedfiretypeburst(param_00) { var_01 = func_3A37(param_00); if(var_01 == "iw6_pdw") { return 1; } if(var_01 == "iw6_msbs") { var_02 = func_3C72(param_00); foreach(var_04 in var_02) { if(var_04 == "firetypeauto" || var_04 == "firetypesingle") { return 0; } } return 1; } return 0; } //Function Number: 249 weaponhasintegratedgrip(param_00) { return param_00 == "iw6_g28"; } //Function Number: 250 weaponhasintegratedfmj(param_00) { return param_00 == "iw6_cbjms"; } //Function Number: 251 weaponhasintegratedtrackerscope(param_00) { var_01 = func_3A37(param_00); if(var_01 == "iw6_dlcweap03") { var_02 = getweaponattachments(param_00); foreach(var_04 in var_02) { if(func_4971(var_04,"dlcweap03")) { return 1; } } } return 0; } //Function Number: 252 weaponhasattachment(param_00,param_01) { var_02 = func_3C72(param_00); foreach(var_04 in var_02) { if(var_04 == param_01) { return 1; } } return 0; } //Function Number: 253 weapongetnumattachments(param_00) { var_01 = getnumdefaultattachments(param_00); var_02 = getweaponattachments(param_00); return var_02.size - var_01; } //Function Number: 254 isplayerads() { return self playerads() > 0.5; } //Function Number: 255 _objective_delete(param_00) { objective_delete(param_00); if(!isdefined(level.reclaimedreservedobjectives)) { level.reclaimedreservedobjectives = []; level.reclaimedreservedobjectives[0] = param_00; } level.reclaimedreservedobjectives[level.reclaimedreservedobjectives.size] = param_00; } //Function Number: 256 func_818D(param_00) { var_01 = getentarray("trigger_hurt","classname"); foreach(var_03 in var_01) { if(self istouching(var_03) && level.mapname != "mp_mine" || var_03.dmg > 0) { return 1; } } var_05 = getentarray("radiation","targetname"); foreach(var_03 in var_05) { if(self istouching(var_03)) { return 1; } } if(isdefined(param_00) && param_00 == "gryphon") { var_08 = getentarray("gryphonDeath","targetname"); foreach(var_03 in var_08) { if(self istouching(var_03)) { return 1; } } } return 0; } //Function Number: 257 func_70E6(param_00) { if(param_00) { self setdepthoffield(0,110,512,4096,6,1.8); } self setdepthoffield(0,0,512,512,4,0); } //Function Number: 258 func_4B4F(param_00,param_01,param_02) { var_03 = spawn("trigger_radius",param_00,0,param_01,param_02); for(;;) { var_03 waittill("trigger",var_04); if(!isplayer(var_04)) { continue; } var_04 suicide(); } } //Function Number: 259 func_3287(param_00,param_01,param_02) { var_03 = cos(param_02); var_04 = anglestoforward(param_00.angles); var_05 = param_01.origin - param_00.origin; var_04 = var_04 * (1,1,0); var_05 = var_05 * (1,1,0); var_05 = vectornormalize(var_05); var_04 = vectornormalize(var_04); var_06 = vectordot(var_05,var_04); if(var_06 >= var_03) { return 1; } return 0; } //Function Number: 260 func_2A7E(param_00,param_01,param_02,param_03) { var_04 = int(param_02 * 20); for(var_05 = 0;var_05 < var_04;var_05++) { wait(0.05); } } //Function Number: 261 drawsphere(param_00,param_01,param_02,param_03) { var_04 = int(param_02 * 20); for(var_05 = 0;var_05 < var_04;var_05++) { wait(0.05); } } //Function Number: 262 func_70B1(param_00,param_01) { if(!isdefined(param_00)) { param_00 = 0; } if(!isdefined(self.recoilscale)) { self.recoilscale = param_00; } else { self.recoilscale = self.recoilscale + param_00; } if(isdefined(param_01)) { if(isdefined(self.recoilscale) && param_01 < self.recoilscale) { param_01 = self.recoilscale; } var_02 = 100 - param_01; } else { var_02 = 100 - self.recoilscale; } if(var_02 < 0) { var_02 = 0; } if(var_02 > 100) { var_02 = 100; } if(var_02 == 100) { self player_recoilscaleoff(); } self player_recoilscaleon(var_02); } //Function Number: 263 func_1CBF(param_00) { var_01 = []; foreach(var_04, var_03 in param_00) { if(!isdefined(var_03)) { continue; } var_01[var_01.size] = param_00[var_04]; } return var_01; } //Function Number: 264 func_573A(param_00) { self notify("notusablejoiningplayers"); self endon("death"); level endon("game_ended"); param_00 endon("disconnect"); param_00 endon("death"); self endon("notusablejoiningplayers"); for(;;) { level waittill("player_spawned",var_01); if(isdefined(var_01) && var_01 != param_00) { self disableplayeruse(var_01); } } } //Function Number: 265 func_4971(param_00,param_01) { return getsubstr(param_00,0,param_01.size) == param_01; } //Function Number: 266 disableallstreaks() { level.killstreaksdisabled = 1; } //Function Number: 267 func_2CE0() { level.killstreaksdisabled = undefined; } //Function Number: 268 func_8818(param_00,param_01) { if(isdefined(param_00)) { var_02 = param_00; } else { var_03 = self.pers["killstreaks"]; var_02 = var_03[self.killstreakindexweapon].streakname; } if(isdefined(level.killstreaksdisabled) && level.killstreaksdisabled) { return 0; } if(!self isonground() && func_494D(var_02) || func_4897(var_02)) { return 0; } if(func_4995()) { return 0; } if(isdefined(self.selectinglocation)) { return 0; } if(shouldpreventearlyuse(var_02) && level.killstreakrounddelay) { if(level.graceperiod - level.ingraceperiod < level.killstreakrounddelay) { if(!isdefined(param_01) && param_01) { self iprintlnbold(&"KILLSTREAKS_UNAVAILABLE_FOR_N",level.killstreakrounddelay - level.graceperiod - level.ingraceperiod); } return 0; } } if(isdefined(self.nuked) && self.nuked && func_48B2()) { if(func_48F3(var_02)) { if(!isdefined(param_01) && param_01) { self iprintlnbold(&"KILLSTREAKS_UNAVAILABLE_FOR_N_WHEN_NUKE",level.nukeemptimeremaining); } return 0; } } if(func_48B2()) { if(func_48F3(var_02)) { if(!isdefined(param_01) && param_01) { self iprintlnbold(&"KILLSTREAKS_UNAVAILABLE_WHEN_JAMMED"); } return 0; } } if(isairdenied()) { if(func_48C7(var_02) && var_02 != "air_superiority") { if(!isdefined(param_01) && param_01) { self iprintlnbold(&"KILLSTREAKS_UNAVAILABLE_WHEN_AA"); } return 0; } } if(self isusingturret() && func_494D(var_02) || func_4897(var_02)) { if(!isdefined(param_01) && param_01) { self iprintlnbold(&"KILLSTREAKS_UNAVAILABLE_USING_TURRET"); } return 0; } if(isdefined(self.laststand) && !_hasperk("specialty_finalstand")) { if(!isdefined(level.allowlaststandai) || !level.allowlaststandai || var_02 != "agent") { if(!isdefined(param_01) && param_01) { self iprintlnbold(&"KILLSTREAKS_UNAVAILABLE_IN_LASTSTAND"); } return 0; } } if(!common_scripts\utility::func_49B6()) { return 0; } if(isdefined(level.civilianjetflyby) && func_48C7(var_02)) { if(!isdefined(param_01) && param_01) { self iprintlnbold(&"KILLSTREAKS_CIVILIAN_AIR_TRAFFIC"); } return 0; } return 1; } //Function Number: 269 func_494D(param_00) { switch(param_00) { case "ac130": case "ca_a10_strafe": case "odin_assault": case "odin_support": case "drone_hive": case "heli_pilot": case "vanguard": return 1; default: return 0; } } //Function Number: 270 func_4897(param_00) { switch(param_00) { case "ims": case "deployable_exp_ammo": case "deployable_grenades": case "deployable_ammo": case "deployable_vest": case "gl_turret": case "minigun_turret": case "sentry_gl": case "sentry": return 1; default: return 0; } } //Function Number: 271 shouldpreventearlyuse(param_00) { switch(param_00) { case "uav_3dping": case "jammer": case "recon_agent": case "ball_drone_radar": case "aa_launcher": case "uplink_support": case "ball_drone_backup": case "guard_dog": case "uplink": case "ims": case "deployable_ammo": case "deployable_vest": case "air_superiority": case "sentry": return 0; default: return !func_4971(param_00,"airdrop_"); } } //Function Number: 272 func_48F3(param_00) { switch(param_00) { case "zerosub_level_killstreak": case "dome_seekers": case "recon_agent": case "guard_dog": case "deployable_ammo": case "deployable_vest": case "agent": return 0; default: return 1; } } //Function Number: 273 iskillstreakaffectedbyjammer(param_00) { return func_48F3(param_00) && !func_48C7(param_00); } //Function Number: 274 func_48C7(param_00) { switch(param_00) { case "airdrop_juggernaut_maniac": case "airdrop_assault": case "heli_sniper": case "airdrop_juggernaut_recon": case "airdrop_juggernaut": case "airdrop_sentry_minigun": case "ac130": case "ca_a10_strafe": case "odin_assault": case "odin_support": case "drone_hive": case "heli_pilot": case "vanguard": case "air_superiority": case "helicopter": return 1; default: return 0; } } //Function Number: 275 func_4870(param_00) { var_01 = getkillstreakallteamstreak(param_00); if(!isdefined(var_01)) { return 0; } if(int(var_01) == 1) { return 1; } return 0; } //Function Number: 276 getkillstreakrownum(param_00) { return tablelookuprownum(level.global_tables["killstreakTable"].path,level.global_tables["killstreakTable"].ref_col,param_00); } //Function Number: 277 func_3AFB(param_00) { var_01 = tablelookup(level.global_tables["killstreakTable"].path,level.global_tables["killstreakTable"].ref_col,param_00,level.global_tables["killstreakTable"].index_col); if(var_01 == "") { var_02 = -1; } else { var_02 = int(var_02); } return var_02; } //Function Number: 278 getkillstreakreference(param_00) { return tablelookup(level.global_tables["killstreakTable"].path,level.global_tables["killstreakTable"].ref_col,param_00,level.global_tables["killstreakTable"].ref_col); } //Function Number: 279 getkillstreakreferencebyweapon(param_00) { return tablelookup(level.global_tables["killstreakTable"].path,level.global_tables["killstreakTable"].weapon_col,param_00,level.global_tables["killstreakTable"].ref_col); } //Function Number: 280 func_3AFD(param_00) { return tablelookupistring(level.global_tables["killstreakTable"].path,level.global_tables["killstreakTable"].ref_col,param_00,level.global_tables["killstreakTable"].name_col); } //Function Number: 281 func_3AF3(param_00) { return tablelookupistring(level.global_tables["killstreakTable"].path,level.global_tables["killstreakTable"].ref_col,param_00,level.global_tables["killstreakTable"].desc_col); } //Function Number: 282 func_3AFC(param_00) { return tablelookup(level.global_tables["killstreakTable"].path,level.global_tables["killstreakTable"].ref_col,param_00,level.global_tables["killstreakTable"].kills_col); } //Function Number: 283 getkillstreakearnedhint(param_00) { return tablelookupistring(level.global_tables["killstreakTable"].path,level.global_tables["killstreakTable"].ref_col,param_00,level.global_tables["killstreakTable"].earned_hint_col); } //Function Number: 284 func_3B02(param_00) { return tablelookup(level.global_tables["killstreakTable"].path,level.global_tables["killstreakTable"].ref_col,param_00,level.global_tables["killstreakTable"].sound_col); } //Function Number: 285 func_3AF5(param_00) { return tablelookup(level.global_tables["killstreakTable"].path,level.global_tables["killstreakTable"].ref_col,param_00,level.global_tables["killstreakTable"].earned_dialog_col); } //Function Number: 286 func_3AEF(param_00) { return tablelookup(level.global_tables["killstreakTable"].path,level.global_tables["killstreakTable"].ref_col,param_00,level.global_tables["killstreakTable"].allies_dialog_col); } //Function Number: 287 func_3AF7(param_00) { return tablelookup(level.global_tables["killstreakTable"].path,level.global_tables["killstreakTable"].ref_col,param_00,level.global_tables["killstreakTable"].enemy_dialog_col); } //Function Number: 288 func_3AF8(param_00) { return int(tablelookup(level.global_tables["killstreakTable"].path,level.global_tables["killstreakTable"].ref_col,param_00,level.global_tables["killstreakTable"].enemy_use_dialog_col)); } //Function Number: 289 getkillstreakweapon(param_00) { return tablelookup(level.global_tables["killstreakTable"].path,level.global_tables["killstreakTable"].ref_col,param_00,level.global_tables["killstreakTable"].weapon_col); } //Function Number: 290 getkillstreakscore(param_00) { return tablelookup(level.global_tables["killstreakTable"].path,level.global_tables["killstreakTable"].ref_col,param_00,level.global_tables["killstreakTable"].score_col); } //Function Number: 291 getkillstreakicon(param_00) { return tablelookup(level.global_tables["killstreakTable"].path,level.global_tables["killstreakTable"].ref_col,param_00,level.global_tables["killstreakTable"].icon_col); } //Function Number: 292 getkillstreakoverheadicon(param_00) { return tablelookup(level.global_tables["killstreakTable"].path,level.global_tables["killstreakTable"].ref_col,param_00,level.global_tables["killstreakTable"].overhead_icon_col); } //Function Number: 293 func_3AF4(param_00) { return tablelookup(level.global_tables["killstreakTable"].path,level.global_tables["killstreakTable"].ref_col,param_00,level.global_tables["killstreakTable"].dpad_icon_col); } //Function Number: 294 func_3B03(param_00) { return tablelookup(level.global_tables["killstreakTable"].path,level.global_tables["killstreakTable"].ref_col,param_00,level.global_tables["killstreakTable"].unearned_icon_col); } //Function Number: 295 getkillstreakallteamstreak(param_00) { return tablelookup(level.global_tables["killstreakTable"].path,level.global_tables["killstreakTable"].ref_col,param_00,level.global_tables["killstreakTable"].all_team_streak_col); } //Function Number: 296 func_21E7(param_00) { if(!isdefined(param_00)) { param_00 = 0; } var_01 = param_00; if(isdefined(level.helis)) { var_01 = var_01 + level.helis.size; } if(isdefined(level.littlebirds)) { var_01 = var_01 + level.littlebirds.size; } if(isdefined(level.ugvs)) { var_01 = var_01 + level.ugvs.size; } return var_01; } //Function Number: 297 maxvehiclesallowed() { return 8; } //Function Number: 298 func_4487() { level.fauxvehiclecount++; } //Function Number: 299 decrementfauxvehiclecount() { level.fauxvehiclecount--; var_00 = func_21E7(); if(var_00 > level.fauxvehiclecount) { level.fauxvehiclecount = var_00; } if(level.fauxvehiclecount < 0) { level.fauxvehiclecount = 0; } } //Function Number: 300 func_4E12() { return 1.07; } //Function Number: 301 allowteamchoice() { if(level.gametype == "cranked") { return level.teambased; } var_00 = int(tablelookup("mp/gametypesTable.csv",0,level.gametype,4)); return var_00; } //Function Number: 302 allowclasschoice() { var_00 = int(tablelookup("mp/gametypesTable.csv",0,level.gametype,5)); return var_00; } //Function Number: 303 showfakeloadout() { if(level.gametype == "sotf" || level.gametype == "sotf_ffa" || level.gametype == "gun" || level.gametype == "infect") { return 1; } if(level.gametype == "horde" && !func_50C1() && issplitscreen()) { return 0; } if(level.gametype == "horde" && level.currentroundnumber == 0) { return 1; } return 0; } //Function Number: 304 setfakeloadoutweaponslot(param_00,param_01) { var_02 = func_3A37(param_00); var_03 = []; if(var_02 != "iw6_knifeonly" && var_02 != "iw6_knifeonlyfast") { var_03 = getweaponattachments(param_00); } var_04 = "ui_fakeloadout_weapon" + param_01; if(isdefined(var_02)) { var_05 = tablelookuprownum("mp/statsTable.csv",4,var_02); self setclientomnvar(var_04,var_05); } else { self setclientomnvar(var_04,-1); } for(var_06 = 0;var_06 < 3;var_06++) { var_07 = var_04 + "_attach" + var_06 + 1; var_08 = -1; if(isdefined(var_03[var_06])) { if(!func_487E(param_00,var_03[var_06])) { var_08 = tablelookuprownum("mp/attachmentTable.csv",4,var_03[var_06]); } } self setclientomnvar(var_07,var_08); } } //Function Number: 305 func_488C(param_00,param_01) { var_02 = 4; var_03 = 0; var_04 = 4; var_05 = self getrankedplayerdata("weaponRank",param_01); var_06 = int(tablelookup("mp/weaponRankTable.csv",var_03,getweaponclass(param_01),var_04)); var_07 = tablelookup("mp/weaponRankTable.csv",var_06,param_00,var_02); if(var_07 != "") { if(var_05 >= int(var_07)) { return 1; } } return 0; } //Function Number: 306 func_488B(param_00,param_01) { if(isdefined(self.loadoutprimary) && self.loadoutprimary == param_01) { if(isdefined(self.loadoutprimarybuff) && self.loadoutprimarybuff == param_00) { return 1; } } else if(isdefined(self.loadoutsecondary) && self.loadoutsecondary == param_01) { if(isdefined(self.loadoutsecondarybuff) && self.loadoutsecondarybuff == param_00) { return 1; } } return 0; } //Function Number: 307 func_700A(param_00) { var_01 = getmatchrulesdata("commonOption","timeLimit"); setdynamicdvar("scr_" + level.gametype + "_timeLimit",var_01); func_6476(level.gametype,var_01); var_02 = getmatchrulesdata("commonOption","scoreLimit"); setdynamicdvar("scr_" + level.gametype + "_scoreLimit",var_02); func_6475(level.gametype,var_02); var_03 = getmatchrulesdata("commonOption","numLives"); setdynamicdvar("scr_" + level.gametype + "_numLives",var_03); func_6470(level.gametype,var_03); setdynamicdvar("scr_player_maxhealth",getmatchrulesdata("commonOption","maxHealth")); setdynamicdvar("scr_player_healthregentime",getmatchrulesdata("commonOption","healthRegen")); level.matchrules_damagemultiplier = 0; level.matchrules_vampirism = 0; setdynamicdvar("scr_game_spectatetype",getmatchrulesdata("commonOption","spectateModeAllowed")); setdynamicdvar("scr_game_allowkillcam",getmatchrulesdata("commonOption","showKillcam")); setdynamicdvar("scr_game_forceuav",getmatchrulesdata("commonOption","radarAlwaysOn")); setdynamicdvar("scr_" + level.gametype + "_playerrespawndelay",getmatchrulesdata("commonOption","respawnDelay")); setdynamicdvar("scr_" + level.gametype + "_waverespawndelay",getmatchrulesdata("commonOption","waveRespawnDelay")); setdynamicdvar("scr_player_forcerespawn",getmatchrulesdata("commonOption","forceRespawn")); level.matchrules_allowcustomclasses = getmatchrulesdata("commonOption","allowCustomClasses"); level.supportintel = getmatchrulesdata("commonOption","allowIntel"); setdynamicdvar("scr_game_hardpoints",getmatchrulesdata("commonOption","allowKillstreaks")); setdynamicdvar("scr_game_perks",getmatchrulesdata("commonOption","allowPerks")); setdynamicdvar("g_hardcore",getmatchrulesdata("commonOption","hardcoreModeOn")); setdynamicdvar("scr_game_onlyheadshots",getmatchrulesdata("commonOption","headshotsOnly")); if(!isdefined(param_00)) { setdynamicdvar("scr_team_fftype",getmatchrulesdata("commonOption","friendlyFire")); } if(getmatchrulesdata("commonOption","hardcoreModeOn")) { setdynamicdvar("scr_team_fftype",2); setdynamicdvar("scr_player_maxhealth",30); setdynamicdvar("scr_player_healthregentime",0); setdynamicdvar("scr_player_respawndelay",0); setdynamicdvar("scr_game_allowkillcam",0); setdynamicdvar("scr_game_forceuav",0); } setdvar("bg_compassShowEnemies",getdvar("scr_game_forceuav")); } //Function Number: 308 func_647E() { for(;;) { level waittill("host_migration_begin"); [[ level.initializematchrules ]](); } } //Function Number: 309 func_647F(param_00) { self endon("disconnect"); if(isdefined(param_00)) { param_00 endon("death"); } for(;;) { level waittill("host_migration_begin"); if(isdefined(self.lastvisionsetthermal)) { self visionsetthermalforplayer(self.lastvisionsetthermal,0); } } } //Function Number: 310 func_3B24(param_00,param_01) { var_02 = []; var_02["loadoutPrimaryAttachment2"] = "none"; var_02["loadoutSecondaryAttachment2"] = "none"; var_03 = []; var_02["loadoutPrimary"] = getmatchrulesdata("defaultClasses",param_00,param_01,"class","weaponSetups",0,"weapon"); var_02["loadoutPrimaryAttachment"] = getmatchrulesdata("defaultClasses",param_00,param_01,"class","weaponSetups",0,"attachment",0); var_02["loadoutPrimaryAttachment2"] = getmatchrulesdata("defaultClasses",param_00,param_01,"class","weaponSetups",0,"attachment",1); var_02["loadoutPrimaryBuff"] = getmatchrulesdata("defaultClasses",param_00,param_01,"class","weaponSetups",0,"buff"); var_02["loadoutPrimaryCamo"] = getmatchrulesdata("defaultClasses",param_00,param_01,"class","weaponSetups",0,"camo"); var_02["loadoutPrimaryReticle"] = getmatchrulesdata("defaultClasses",param_00,param_01,"class","weaponSetups",0,"reticle"); var_02["loadoutSecondary"] = getmatchrulesdata("defaultClasses",param_00,param_01,"class","weaponSetups",1,"weapon"); var_02["loadoutSecondaryAttachment"] = getmatchrulesdata("defaultClasses",param_00,param_01,"class","weaponSetups",1,"attachment",0); var_02["loadoutSecondaryAttachment2"] = getmatchrulesdata("defaultClasses",param_00,param_01,"class","weaponSetups",1,"attachment",1); var_02["loadoutSecondaryBuff"] = getmatchrulesdata("defaultClasses",param_00,param_01,"class","weaponSetups",1,"buff"); var_02["loadoutSecondaryCamo"] = getmatchrulesdata("defaultClasses",param_00,param_01,"class","weaponSetups",1,"camo"); var_02["loadoutSecondaryReticle"] = getmatchrulesdata("defaultClasses",param_00,param_01,"class","weaponSetups",1,"reticle"); var_02["loadoutEquipment"] = getmatchrulesdata("defaultClasses",param_00,param_01,"class","perks",0); var_02["loadoutOffhand"] = getmatchrulesdata("defaultClasses",param_00,param_01,"class","perks",1); if(var_02["loadoutOffhand"] == "specialty_null") { var_02["loadoutOffhand"] = "none"; if(level.gametype == "infect" && param_00 == "axis") { var_02["loadoutOffhand"] = "specialty_tacticalinsertion"; } } for(var_04 = 0;var_04 < maps\mp\gametypes\_class::getnumabilitycategories();var_04++) { for(var_05 = 0;var_05 < maps\mp\gametypes\_class::getnumsubability();var_05++) { var_06 = 0; var_06 = getmatchrulesdata("defaultClasses",param_00,param_01,"class","abilitiesPicked",var_04,var_05); if(isdefined(var_06) && var_06) { var_07 = tablelookup("mp/cacAbilityTable.csv",0,var_04 + 1,var_05 + 4); var_03[var_03.size] = var_07; } } } var_02["loadoutPerks"] = var_03; var_08 = getmatchrulesdata("defaultClasses",param_00,param_01,"class","perks",5); if(var_08 != "specialty_null") { var_02["loadoutStreakType"] = var_08; var_02["loadoutKillstreak1"] = maps\mp\gametypes\_class::recipe_getkillstreak(param_00,param_01,var_08,0); var_02["loadoutKillstreak2"] = maps\mp\gametypes\_class::recipe_getkillstreak(param_00,param_01,var_08,1); var_02["loadoutKillstreak3"] = maps\mp\gametypes\_class::recipe_getkillstreak(param_00,param_01,var_08,2); } var_02["loadoutJuggernaut"] = getmatchrulesdata("defaultClasses",param_00,param_01,"juggernaut"); return var_02; } //Function Number: 311 recipeclassapplyjuggernaut(param_00) { level endon("game_ended"); self endon("disconnect"); if(level.ingraceperiod && !self.hasdonecombat) { self waittill("giveLoadout"); } else { self waittill("spawned_player"); } if(param_00) { self notify("lost_juggernaut"); wait(0.5); } if(!isdefined(self.isjuiced)) { self.movespeedscaler = 0.7; maps\mp\gametypes\_weapons::func_8707(); } self.juggmovespeedscaler = 0.7; self disableweaponpickup(); if(!getdvarint("camera_thirdPerson")) { self setclientomnvar("ui_juggernaut",1); } thread maps\mp\killstreaks\_juggernaut::func_4A2A(); if(level.gametype != "jugg" || isdefined(level.matchrules_showjuggradaricon) && level.matchrules_showjuggradaricon) { self setperk("specialty_radarjuggernaut",1,0); } if(isdefined(self.isjuggmodejuggernaut) && self.isjuggmodejuggernaut) { self makeportableradar(self); } level notify("juggernaut_equipped",self); thread maps\mp\killstreaks\_juggernaut::func_4A2D(); } //Function Number: 312 func_8730(param_00,param_01) { self.sessionstate = param_00; if(!isdefined(param_01)) { param_01 = ""; } self.statusicon = param_01; self setclientomnvar("ui_session_state",param_00); } //Function Number: 313 func_3A55(param_00) { return level.classmap[param_00]; } //Function Number: 314 isteaminlaststand() { var_00 = func_3B16(self.team); foreach(var_02 in var_00) { if(var_02 != self && !isdefined(var_02.laststand) || !var_02.laststand) { return 0; } } return 1; } //Function Number: 315 killteaminlaststand(param_00) { var_01 = func_3B16(param_00); foreach(var_03 in var_01) { if(isdefined(var_03.laststand) && var_03.laststand) { var_03 thread maps\mp\gametypes\_damage::func_2726(randomintrange(1,3)); } } } //Function Number: 316 func_7E17(param_00) { if(!isai(self)) { self switchtoweapon(param_00); } self switchtoweapon("none"); } //Function Number: 317 func_486C(param_00) { if(isagent(param_00) && param_00.agent_teamparticipant == 1) { return 1; } if(isbot(param_00)) { return 1; } return 0; } //Function Number: 318 func_4984(param_00) { if(func_486C(param_00)) { return 1; } if(isplayer(param_00)) { return 1; } return 0; } //Function Number: 319 isaigameparticipant(param_00) { if(isagent(param_00) && isdefined(param_00.agent_gameparticipant) && param_00.agent_gameparticipant == 1) { return 1; } if(isbot(param_00)) { return 1; } return 0; } //Function Number: 320 func_48CE(param_00) { if(isaigameparticipant(param_00)) { return 1; } if(isplayer(param_00)) { return 1; } return 0; } //Function Number: 321 func_3C3B(param_00) { var_01 = 0; if(level.teambased) { switch(param_00) { case "axis": var_01 = 1; break; case "allies": var_01 = 2; break; } } return var_01; } //Function Number: 322 getteamarray(param_00,param_01) { var_02 = []; if(!isdefined(param_01) || param_01) { foreach(var_04 in level.characters) { if(var_04.team == param_00) { var_02[var_02.size] = var_04; } } } else { foreach(var_04 in level.players) { if(var_04.team == param_00) { var_02[var_02.size] = var_04; } } } return var_02; } //Function Number: 323 func_48D2(param_00,param_01,param_02,param_03) { if(isdefined(param_03)) { if(isdefined(param_03.owner)) { if(param_03.code_classname == "script_vehicle") { return 0; } if(param_03.code_classname == "misc_turret") { return 0; } if(param_03.code_classname == "script_model") { return 0; } } if(isdefined(param_03.agent_type)) { if(param_03.agent_type == "dog" || param_03.agent_type == "alien") { return 0; } } } return (param_01 == "head" || param_01 == "helmet") && param_02 != "MOD_MELEE" && param_02 != "MOD_IMPACT" && param_02 != "MOD_SCARAB" && param_02 != "MOD_CRUSH" && !func_48B7(param_00); } //Function Number: 324 attackerishittingteam(param_00,param_01) { if(!level.teambased) { return 0; } if(!isdefined(param_01) || !isdefined(param_00)) { return 0; } if(!isdefined(param_00.team) || !isdefined(param_01.team)) { return 0; } if(param_00 == param_01) { return 0; } if(level.gametype == "infect" && param_00.pers["team"] == param_01.team && isdefined(param_01.teamchangedthisframe)) { return 0; } if(level.gametype == "infect" && param_00.pers["team"] != param_01.team && isdefined(param_01.teamchangedthisframe)) { return 1; } if(isdefined(param_01.scrambled) && param_01.scrambled) { return 0; } if(param_00.team == param_01.team) { return 1; } return 0; } //Function Number: 325 set_high_priority_target_for_bot(param_00) { if(!isdefined(self.high_priority_for) && common_scripts\utility::array_contains(self.high_priority_for,param_00)) { self.high_priority_for = common_scripts\utility::array_add(self.high_priority_for,param_00); param_00 notify("calculate_new_level_targets"); } } //Function Number: 326 add_to_bot_use_targets(param_00,param_01) { if(isdefined(level.bot_funcs["bots_add_to_level_targets"])) { param_00.use_time = param_01; param_00.bot_interaction_type = "use"; [[ level.bot_funcs["bots_add_to_level_targets"] ]](param_00); } } //Function Number: 327 func_652A(param_00) { if(isdefined(level.bot_funcs["bots_remove_from_level_targets"])) { [[ level.bot_funcs["bots_remove_from_level_targets"] ]](param_00); } } //Function Number: 328 add_to_bot_damage_targets(param_00) { if(isdefined(level.bot_funcs["bots_add_to_level_targets"])) { param_00.bot_interaction_type = "damage"; [[ level.bot_funcs["bots_add_to_level_targets"] ]](param_00); } } //Function Number: 329 remove_from_bot_damage_targets(param_00) { if(isdefined(level.bot_funcs["bots_remove_from_level_targets"])) { [[ level.bot_funcs["bots_remove_from_level_targets"] ]](param_00); } } //Function Number: 330 func_5707(param_00) { if(isdefined(level.bot_funcs["notify_enemy_bots_bomb_used"])) { self [[ level.bot_funcs["notify_enemy_bots_bomb_used"] ]](param_00); } } //Function Number: 331 func_397A() { if(isdefined(level.bot_funcs["bot_get_rank_xp"])) { return self [[ level.bot_funcs["bot_get_rank_xp"] ]](); } } //Function Number: 332 func_8FFB() { var_00 = 1; if(getdvar("squad_use_hosts_squad") == "1") { var_01 = undefined; if(isdefined(self.bot_team)) { var_01 = self.bot_team; } else if(isdefined(self.pers["team"])) { var_01 = self.pers["team"]; } if(isdefined(var_01) && level.wargame_client.team == var_01) { var_00 = 0; } else { var_00 = 1; } } else { var_00 = self botisrandomized(); } return var_00; } //Function Number: 333 isassaultkillstreak(param_00) { switch(param_00) { case "airdrop_juggernaut_maniac": case "airdrop_assault": case "airdrop_juggernaut": case "airdrop_sentry_minigun": case "ball_drone_backup": case "guard_dog": case "uplink": case "ims": case "odin_assault": case "drone_hive": case "heli_pilot": case "vanguard": case "sentry": case "helicopter": return 1; default: return 0; } } //Function Number: 334 issupportkillstreak(param_00) { switch(param_00) { case "sam_turret": case "heli_sniper": case "airdrop_juggernaut_recon": case "uav_3dping": case "jammer": case "recon_agent": case "ball_drone_radar": case "aa_launcher": case "uplink_support": case "deployable_ammo": case "deployable_vest": case "odin_support": case "air_superiority": return 1; default: return 0; } } //Function Number: 335 func_496B(param_00) { switch(param_00) { case "specialty_deadeye_ks": case "specialty_boom_ks": case "specialty_twoprimaries_ks": case "specialty_hardline_ks": case "specialty_gambler_ks": case "specialty_explosivedamage_ks": case "specialty_extra_attachment_ks": case "specialty_extra_deadly_ks": case "specialty_extra_equipment_ks": case "specialty_extraammo_ks": case "specialty_gunsmith_ks": case "_specialty_blastshield_ks": case "specialty_stun_resistance_ks": case "specialty_sharp_focus_ks": case "specialty_regenfaster_ks": case "specialty_falldamage_ks": case "specialty_comexp_ks": case "specialty_selectivehearing_ks": case "specialty_detectexplosive_ks": case "specialty_scavenger_ks": case "specialty_paint_ks": case "specialty_incog_ks": case "specialty_quieter_ks": case "specialty_gpsjammer_ks": case "specialty_blindeye_ks": case "specialty_silentkill_ks": case "specialty_sprintreload_ks": case "specialty_quickdraw_ks": case "specialty_bulletaccuracy_ks": case "specialty_pitcher_ks": case "specialty_quickswap_ks": case "specialty_reducedsway_ks": case "specialty_stalker_ks": case "specialty_marathon_ks": case "specialty_lightweight_ks": case "specialty_fastreload_ks": case "specialty_fastsprintrecovery_ks": return 1; default: return 0; } } //Function Number: 336 bot_is_fireteam_mode() { var_00 = botautoconnectenabled() == 2; if(var_00) { if(!level.teambased || level.gametype != "war" && level.gametype != "dom") { return 0; } return 1; } return 0; } //Function Number: 337 set_console_status() { if(!isdefined(level.console)) { level.console = getdvar("consoleGame") == "true"; } else { } if(!isdefined(level.xenon)) { level.xenon = getdvar("xenonGame") == "true"; } else { } if(!isdefined(level.ps3)) { level.ps3 = getdvar("ps3Game") == "true"; } else { } if(!isdefined(level.xb3)) { level.xb3 = getdvar("xb3Game") == "true"; } else { } if(!isdefined(level.ps4)) { level.ps4 = getdvar("ps4Game") == "true"; } } //Function Number: 338 func_47F6() { if(level.xb3 || level.ps4 || !level.console) { return 1; } return 0; } //Function Number: 339 func_7026(param_00,param_01,param_02) { if(!isdefined(level.console) || !isdefined(level.xb3) || !isdefined(level.ps4)) { set_console_status(); } if(func_47F6()) { setdvar(param_00,param_02); } setdvar(param_00,param_01); } //Function Number: 340 func_49AB(param_00,param_01,param_02) { return isdefined(param_02.team) && param_02.team == param_01; } //Function Number: 341 isvalidffatarget(param_00,param_01,param_02) { return isdefined(param_02.owner) && !isdefined(param_00) || param_02.owner != param_00; } //Function Number: 342 gethelipilotmeshoffset() { return (0,0,5000); } //Function Number: 343 func_3AC9() { return (0,0,2500); } //Function Number: 344 getlinknamenodes() { var_00 = []; if(isdefined(self.script_linkto)) { var_01 = strtok(self.script_linkto," "); for(var_02 = 0;var_02 < var_01.size;var_02++) { var_03 = getnode(var_01[var_02],"script_linkname"); if(isdefined(var_03)) { var_00[var_00.size] = var_03; } } } return var_00; } //Function Number: 345 func_47BB() { return level.gametype == "aliens"; } //Function Number: 346 func_3959(param_00,param_01) { if(!isdefined(param_00)) { param_00 = 0; } if(!isdefined(param_01)) { param_01 = 0; } var_02 = self getentitynumber(); var_03 = []; foreach(var_05 in level.players) { if(var_05 == self) { continue; } var_06 = 0; if(!param_01) { if(var_05.team == "spectator" || var_05.sessionstate == "spectator") { var_07 = var_05 getspectatingplayer(); if(isdefined(var_07) && var_07 == self) { var_06 = 1; } } if(var_05.forcespectatorclient == var_02) { var_06 = 1; } } if(!param_00) { if(var_05.killcamentity == var_02) { var_06 = 1; } } if(var_06) { var_03[var_03.size] = var_05; } } return var_03; } //Function Number: 347 set_visionset_for_watching_players(param_00,param_01,param_02,param_03,param_04,param_05) { var_06 = func_3959(param_04,param_05); foreach(var_08 in var_06) { var_08 notify("changing_watching_visionset"); if(isdefined(param_03) && param_03) { var_08 visionsetmissilecamforplayer(param_00,param_01); } else { var_08 visionsetnakedforplayer(param_00,param_01); } if(param_00 != "" && isdefined(param_02)) { var_08 thread func_6602(self,param_01 + param_02); var_08 thread func_6601(self); if(var_08 func_48E2()) { var_08 thread reset_visionset_on_spawn(); } } } } //Function Number: 348 reset_visionset_on_spawn() { self endon("disconnect"); self waittill("spawned"); self visionsetnakedforplayer("",0); } //Function Number: 349 func_6602(param_00,param_01) { self endon("changing_watching_visionset"); var_02 = gettime(); var_03 = self.team; while(gettime() - var_02 < param_01 * 1000) { if(self.team != var_03 || !common_scripts\utility::array_contains(param_00 func_3959(),self)) { self visionsetnakedforplayer("",0); self notify("changing_visionset"); break; } wait(0.05); } } //Function Number: 350 func_6601(param_00) { self endon("changing_watching_visionset"); param_00 waittill("disconnect"); self visionsetnakedforplayer("",0); } //Function Number: 351 _setplayerdata(param_00,param_01) { if(func_50C1()) { self setrankedplayerdata(param_00,param_01); } self setprivateplayerdata(param_00,param_01); } //Function Number: 352 _getplayerdata(param_00) { if(func_50C1()) { return self getrankedplayerdata(param_00); } return self getprivateplayerdata(param_00); } //Function Number: 353 _validateattacker(param_00) { if(isagent(param_00) && !isdefined(param_00.isactive) || !param_00.isactive) { return undefined; } if(isagent(param_00) && !isdefined(param_00.classname)) { return undefined; } return param_00; } //Function Number: 354 func_8B68() { self waittill("grenade_fire",var_00,var_01); if(isdefined(var_00)) { if(!isdefined(var_00.weapon_name)) { var_00.weapon_name = var_01; } if(!isdefined(var_00.owner)) { var_00.owner = self; } if(!isdefined(var_00.team)) { var_00.team = self.team; } } return var_00; } //Function Number: 355 func_8B6F() { self waittill("missile_fire",var_00,var_01); if(isdefined(var_00)) { if(!isdefined(var_00.weapon_name)) { var_00.weapon_name = var_01; } if(!isdefined(var_00.owner)) { var_00.owner = self; } if(!isdefined(var_00.team)) { var_00.team = self.team; } } return var_00; } //Function Number: 356 _setnameplatematerial(param_00,param_01) { if(!isdefined(self.nameplatematerial)) { self.nameplatematerial = []; self.prevnameplatematerial = []; } else { self.prevnameplatematerial[0] = self.nameplatematerial[0]; self.prevnameplatematerial[1] = self.nameplatematerial[1]; } self.nameplatematerial[0] = param_00; self.nameplatematerial[1] = param_01; self setnameplatematerial(param_00,param_01); } //Function Number: 357 _restorepreviousnameplatematerial() { if(isdefined(self.prevnameplatematerial)) { self setnameplatematerial(self.prevnameplatematerial[0],self.prevnameplatematerial[1]); } else { self setnameplatematerial("",""); } self.nameplatematerial = undefined; self.prevnameplatematerial = undefined; } //Function Number: 358 isplayeroutsideofanybombsite(param_00) { if(isdefined(level.bombzones)) { foreach(var_02 in level.bombzones) { if(self istouching(var_02.trigger)) { return 0; } } } return 1; } //Function Number: 359 weaponignoresblastshield(param_00) { return param_00 == "heli_pilot_turret_mp" || param_00 == "bomb_site_mp"; } //Function Number: 360 func_49B3(param_00) { return param_00 == "ims_projectile_mp" || param_00 == "remote_tank_projectile_mp"; } //Function Number: 361 func_6659(param_00) { self visionsetnakedforplayer("",param_00); } //Function Number: 362 playplayerandnpcsounds(param_00,param_01,param_02) { param_00 playlocalsound(param_01); param_00 playsoundtoteam(param_02,"allies",param_00); param_00 playsoundtoteam(param_02,"axis",param_00); } //Function Number: 363 isenemy(param_00) { if(level.teambased) { return isplayeronenemyteam(param_00); } return isplayerffaenemy(param_00); } //Function Number: 364 isplayeronenemyteam(param_00) { return param_00.team != self.team; } //Function Number: 365 isplayerffaenemy(param_00) { if(isdefined(param_00.owner)) { return param_00.owner != self; } return param_00 != self; } //Function Number: 366 setextrascore0(param_00) { self.extrascore0 = param_00; func_7093("extrascore0",param_00); } //Function Number: 367 allowlevelkillstreaks() { if(level.gametype == "sotf" && level.gametype == "sotf_ffa" && level.gametype == "infect" && level.gametype == "horde") { return 0; } return 1; } //Function Number: 368 getuniqueid() { if(isdefined(self.pers["guid"])) { return self.pers["guid"]; } var_00 = self getguid(); if(var_00 == "0000000000000000") { if(isdefined(level.guidgen)) { level.guidgen++; } else { level.guidgen = 1; } var_00 = "script" + level.guidgen; } self.pers["guid"] = var_00; return self.pers["guid"]; } //Function Number: 369 getrandomplayingplayer() { var_00 = common_scripts\utility::array_removeundefined(level.players); for(;;) { if(!var_00.size) { } var_01 = randomintrange(0,var_00.size); var_02 = var_00[var_01]; if(!func_4945(var_02) || var_02.sessionstate != "playing") { var_00 = common_scripts\utility::array_remove(var_00,var_02); continue; } return var_02; } } //Function Number: 370 getmapname() { if(!isdefined(level.mapname)) { level.mapname = getdvar("mapname"); } return level.mapname; } //Function Number: 371 issinglehitweapon(param_00) { switch(param_00) { case "iw6_panzerfaust3_mp": case "iw6_rgm_mp": case "iw6_maaws_mp": case "iw6_mk32_mp": return 1; default: return 0; } } //Function Number: 372 gamehasneutralcrateowner(param_00) { switch(param_00) { case "sotf_ffa": case "sotf": return 1; default: return 0; } } //Function Number: 373 array_remove_keep_index(param_00,param_01) { var_02 = []; foreach(var_05, var_04 in param_00) { if(var_04 != param_01) { var_02[var_05] = var_04; } } return var_02; } //Function Number: 374 isanymlgmatch() { if(getdvarint("xblive_competitionmatch")) { return 1; } return 0; } //Function Number: 375 func_92AD() { if(getdvarint("systemlink") && getdvarint("xblive_competitionmatch")) { return 1; } return 0; } //Function Number: 376 func_92AC() { if(func_61B9() && getdvarint("xblive_competitionmatch")) { return 1; } return 0; } //Function Number: 377 func_92AB() { if(func_92AD() || func_92AC()) { return 1; } return 0; } //Function Number: 378 func_4912() { if(level.gametype == "blitz" || level.gametype == "dom") { return 1; } return 0; } //Function Number: 379 isusingdefaultclass(param_00,param_01) { var_02 = 0; if(isdefined(param_01)) { if(isusingmatchrulesdata() && getmatchrulesdata("defaultClasses",param_00,param_01,"class","inUse")) { var_02 = 1; } } else { for(param_01 = 0;param_01 < 6;param_01++) { if(isusingmatchrulesdata() && getmatchrulesdata("defaultClasses",param_00,param_01,"class","inUse")) { var_02 = 1; break; } } } return var_02; } //Function Number: 380 cancustomjuggusekillstreak(param_00) { var_01 = 1; if(isdefined(self.isjuggernautlevelcustom) && self.isjuggernautlevelcustom && isdefined(self.canusekillstreakcallback) && !self [[ self.canusekillstreakcallback ]](param_00)) { var_01 = 0; } return var_01; } //Function Number: 381 printcustomjuggkillstreakerrormsg() { if(isdefined(self.killstreakerrormsg)) { [[ self.killstreakerrormsg ]](); } }