/******************************************************************* * Decompiled By: Bog * Decompiled File: scripts\cp\cp_weapon.gsc * Game: Call of Duty: Infinite Warfare * Platform: PC * Function Count: 221 * Decompile Time: 10410 ms * Timestamp: 10/27/2023 12:10:13 AM *******************************************************************/ //Function Number: 1 func_13CCB() { level.var_B4BA = max(scripts\cp\_utility::func_7F1D("scr_maxPerPlayerExplosives",2),4); level.var_E55D = scripts\cp\_utility::func_7F1D("scr_riotShieldXPBullets",15); level.var_31CF = ::func_E469; level.var_13C7D = []; level.var_13BE7 = 0; level.var_13CAD = 0; level.var_5AFD = 0; level.var_13C9D = 0; func_31D5(); func_BD67(); func_9802(); func_FACC(); func_FA9D(); level thread func_C56E(); func_A033(); scripts\common\utility::array_thread(getentarray("misc_turret","classname"),::func_12A13); } //Function Number: 2 heart_power_init() { scripts\common\utility::flag_wait("interactions_initialized"); scripts\cp\powers\coop_powers::func_D787("power_heart",::powerheartset,::takeheart,undefined,undefined,"heart_used",undefined); } //Function Number: 3 eye_power_init() { scripts\common\utility::flag_wait("interactions_initialized"); scripts\cp\powers\coop_powers::func_D787("power_rat_king_eye",::powereyeset,::takerateye,::eye_activated,undefined,undefined,undefined); } //Function Number: 4 powerheartset(param_00) { self.has_heart = 1; } //Function Number: 5 powereyeset(param_00) { self.has_eye = 1; } //Function Number: 6 func_2B53(param_00) { } //Function Number: 7 func_9802() { level._effect["weap_blink_friend"] = loadfx("vfx/core/mp/killstreaks/vfx_detonator_blink_cyan.vfx"); level._effect["weap_blink_enemy"] = loadfx("vfx/core/mp/killstreaks/vfx_detonator_blink_cyan.vfx"); level._effect["emp_stun"] = loadfx("vfx/core/mp/equipment/vfx_emp_grenade"); level._effect["equipment_explode_big"] = loadfx("vfx/core/mp/killstreaks/vfx_ims_explosion"); level._effect["equipment_smoke"] = loadfx("vfx/core/mp/killstreaks/vfx_sg_damage_blacksmoke"); level._effect["equipment_sparks"] = loadfx("vfx/core/mp/killstreaks/vfx_sentry_gun_explosion.vfx"); level.var_A6D2["spark"] = loadfx("vfx/iw7/_requests/mp/vfx_kinetic_pulse_shock"); level._effect["gas_grenade_smoke_enemy"] = loadfx("vfx/old/_requests/mp_weapons/vfx_poison_gas_enemy"); level._effect["equipment_smoke"] = loadfx("vfx/core/mp/killstreaks/vfx_sg_damage_blacksmoke"); level._effect["placeEquipmentFailed"] = loadfx("vfx/core/mp/killstreaks/vfx_ballistic_vest_death"); level._effect["penetration_railgun_explosion"] = loadfx("vfx/iw7/core/expl/weap/chargeshot/vfx_expl_chargeshot.vfx"); } //Function Number: 8 func_FACC() { var_00 = 70; level.var_4023 = cos(var_00); level.var_4025 = 20; level.var_4024 = 0.75; level.var_4027 = 192; level.var_B76D = 0.3; level.var_B76F = 150; level.var_B76E = 20; level.var_B76B = 256; level.var_B769 = 600; level.var_B768 = 1200; level.var_B766 = 300; level.var_B77B = 600; level.var_B762 = loadfx("vfx/core/impacts/bouncing_betty_launch_dirt"); level.var_B761 = loadfx("vfx/core/expl/bouncing_betty_explosion.vfx"); level.var_5113 = 1.5; level.var_334B = 0; level.var_B779 = []; } //Function Number: 9 func_FA9D() { var_00 = spawnstruct(); var_00.var_B760["enemy"] = loadfx("vfx/core/equipment/light_c4_blink.vfx"); var_00.var_B760["friendly"] = loadfx("vfx/misc/light_mine_blink_friendly"); level.var_13C7D["c4_zm"] = var_00; var_00 = spawnstruct(); var_00.model = "prop_mp_speed_strip_temp"; var_00.var_2C68 = "prop_mp_speed_strip_temp"; var_00.var_226E = 0.05; var_00.var_13370 = "tag_origin"; var_00.var_B769 = 0; var_00.var_B768 = 0; var_00.var_C5B4 = "motion_click"; var_00.var_C54C = "motion_spin"; var_00.var_C525 = "motion_explode_default"; var_00.var_AAB0 = 64; var_00.var_AAB7 = 0.65; var_00.var_C5B3 = ::lib_0D04::func_2B41; var_00.var_C524 = ::lib_0D04::func_2B40; var_00.var_8C7A = 20; var_00.var_B76F = 200; var_00.var_B76E = 100; level.var_13C7D["blackhole_grenade_mp"] = var_00; level.var_13C7D["blackhole_grenade_zm"] = var_00; var_00 = spawnstruct(); var_00.var_217C = 1.5; var_00.var_53B6 = 232; var_00.var_53B5 = 512; var_00.var_53B4 = 1; var_00.var_8C7A = 20; var_00.var_A640 = 12; level.var_13C7D["proximity_explosive_mp"] = var_00; var_00 = spawnstruct(); var_01 = 800; var_02 = 200; var_00.var_DC05 = var_01 * var_01; var_00.var_DC06 = var_02 * var_02; var_00.var_C525 = "flashbang_explode_default"; var_00.var_1336F = 72; level.var_13C7D["flash_grenade_mp"] = var_00; } //Function Number: 10 func_A033() { lib_0D14::func_D687(); scripts\cp\_blackholegun::init(); func_42DC(); func_11819(); } //Function Number: 11 func_11819() { level._effect["throwingknifec4_explode"] = loadfx("vfx/iw7/_requests/mp/power/vfx_bio_spike_exp.vfx"); } //Function Number: 12 func_42DC() { level._effect["clusterGrenade_explode"] = loadfx("vfx/iw7/_requests/mp/vfx_cluster_gren_single_runner.vfx"); } //Function Number: 13 func_BD67() { var_00 = ["mp/statstable.csv","cp/zombies/mode_string_tables/zombies_statstable.csv"]; level.var_13CA5 = []; foreach(var_02 in var_00) { for(var_03 = 1;tablelookup(var_02,0,var_03,0) != "";var_03++) { var_04 = tablelookup(var_02,0,var_03,4); if(var_04 != "") { level.var_13CA5[var_04] = spawnstruct(); var_05 = tablelookup(var_02,0,var_03,0); if(var_05 != "") { level.var_13CA5[var_04].var_C211 = var_05; } var_06 = tablelookup(var_02,0,var_03,1); if(var_06 != "") { level.var_13CA5[var_04].var_8677 = var_06; } var_07 = tablelookup(var_02,0,var_03,5); if(var_07 != "") { level.var_13CA5[var_04].var_CA2E = var_07; } var_08 = tablelookup(var_02,0,var_03,9); if(var_08 != "") { if(isdefined(level.var_13CA5[var_04].var_2476)) { if(level.var_13CA5[var_04].var_2476 == "none") { level.var_13CA5[var_04].var_2476 = undefined; } else { level.var_13CA5[var_04].var_2476 = strtok(var_08," "); } } else { level.var_13CA5[var_04].var_2476 = strtok(var_08," "); } } level.var_13CA5[var_04].var_F1A8 = []; level.var_13CA5[var_04].var_F1A9 = []; for(var_09 = 0;var_09 < 20;var_09++) { var_0A = tablelookup(var_02,0,var_03,10 + var_09); if(isdefined(var_0A) && var_0A != "") { var_0B = level.var_13CA5[var_04].var_F1A8.size; level.var_13CA5[var_04].var_F1A8[var_0B] = var_0A; level.var_13CA5[var_04].var_F1A9[var_0A] = 1; } } var_0C = tablelookup(var_02,0,var_03,8); if(var_0C != "") { var_0C = float(var_0C); level.var_13CA5[var_04].var_2B3 = var_0C; } } } } } //Function Number: 14 func_3223() { var_00 = "mp/statstable.csv"; var_01 = level.var_7666; level.var_13CA3 = []; level.var_13CA2 = []; level.var_13CA4 = []; var_02 = 0; var_03 = 1; var_04 = 1; while(var_03 || var_04) { if(tablelookup(var_00,0,var_02,0) == "") { var_03 = 0; } var_05 = tablelookup(var_00,0,var_02,4); var_06 = tablelookup(var_00,0,var_02,5); if(var_06 != "") { if(var_05 != "") { level.var_13CA3[var_05] = var_06; } } var_07 = tablelookup(var_00,0,var_02,9); if(var_07 != "") { if(var_05 != "") { level.var_13CA2[var_05] = strtok(var_07," "); } } var_08 = tablelookup(var_00,0,var_02,8); if(var_08 != "") { if(var_05 != "") { var_08 = float(var_08); level.var_13CA4[var_05] = float(var_08); } } if(var_04) { if(tablelookup(var_01,0,var_02,0) == "") { var_04 = 0; } var_05 = tablelookup(var_01,0,var_02,4); var_06 = tablelookup(var_01,0,var_02,5); if(var_06 != "") { if(var_05 != "") { level.var_13CA3[var_05] = var_06; } } var_07 = tablelookup(var_01,0,var_02,9); if(var_07 != "") { if(var_05 != "") { level.var_13CA2[var_05] = strtok(var_07," "); } } var_08 = tablelookup(var_01,0,var_02,8); if(var_08 != "") { if(var_05 != "") { var_08 = float(var_08); level.var_13CA4[var_05] = float(var_08); } } } var_02++; } } //Function Number: 15 func_B77C() { self playsound(self.var_451C.var_C54C); playfx(self.var_451C.var_AABB,self.origin); if(isdefined(self.trigger)) { self.trigger delete(); } self method_8187("tag_sensor"); func_11061(); var_00 = spawn("script_model",self.origin); var_00.angles = self.angles; var_00 setmodel(self.var_451C.model); var_00 method_8187("tag_base"); var_00.var_451C = self.var_451C; self.var_F232 = var_00; var_01 = self.origin + (0,0,self.var_451C.var_AAB0); var_02 = self.var_451C.var_AAB7; var_03 = self.var_451C.var_AAB7 + 0.1; var_00 moveto(var_01,var_03,0,var_02); var_00 rotatevelocity((0,1100,32),var_03,0,var_02); var_00 thread func_D537(); wait(var_02); self notify("detonateExplosive"); } //Function Number: 16 func_D537() { if(isdefined(self.var_451C.var_B763)) { self endon("death"); var_00 = gettime() + 1000; while(gettime() < var_00) { wait(0.05); playfxontag(self.var_451C.var_B763,self,"tag_fx_spin1"); playfxontag(self.var_451C.var_B763,self,"tag_fx_spin3"); wait(0.05); playfxontag(self.var_451C.var_B763,self,"tag_fx_spin2"); playfxontag(self.var_451C.var_B763,self,"tag_fx_spin4"); } } } //Function Number: 17 func_B764() { self playsound(self.var_451C.var_C54C); playfx(level.var_B762,self.origin); if(isdefined(self.trigger)) { self.trigger delete(); } var_00 = self.origin + (0,0,64); self moveto(var_00,0.7,0,0.65); self.var_A63A moveto(var_00 + self.var_A640,0.7,0,0.65); self rotatevelocity((0,750,32),0.7,0,0.65); thread func_D537(); wait(0.65); self notify("detonateExplosive"); } //Function Number: 18 func_12A13() { for(;;) { self waittill("trigger",var_00); thread func_12A1F(var_00); } } //Function Number: 19 func_12A1F(param_00) { param_00 endon("death"); param_00 endon("disconnect"); param_00 notify("weapon_change","none"); self waittill("turret_deactivate"); param_00 notify("weapon_change",param_00 getcurrentweapon()); } //Function Number: 20 func_C56E() { for(;;) { level waittill("connected",var_00); var_00.var_9042 = 0; var_00 thread func_C57B(); var_00 thread func_13AD5(); var_00 thread func_103B4(); } } //Function Number: 21 giverateye(param_00) { self.has_eye = 1; thread eye_activated(self); } //Function Number: 22 takerateye(param_00) { self.has_eye = undefined; self notify("remove_eye"); } //Function Number: 23 eye_activated(param_00) { self.wearing_rat_king_eye = 1; level notify("rat_king_eye_activated",self); if(scripts\common\utility::func_6E34("rk_fight_started") && !scripts\common\utility::flag("rk_fight_started")) { thread handleratvisionburst(self); self setscriptablepartstate("rat_king_eye_light","active"); thread reapply_visionset_after_host_migration(); thread watch_for_eye_remove(); } } //Function Number: 24 reapply_visionset_after_host_migration() { self endon("death"); self endon("disconnect"); self endon("removing_eye_from_player"); level waittill("host_migration_begin"); level waittill("host_migration_end"); if(scripts\common\utility::istrue(self.wearing_rat_king_eye)) { self setscriptablepartstate("rat_king_eye_light","active"); } } //Function Number: 25 watch_for_eye_remove() { self notify("watch_for_eye_remove"); self endon("watch_for_eye_remove"); wait(5); if(scripts\common\utility::istrue(self.wearing_rat_king_eye)) { remove_eye_effects(); } } //Function Number: 26 remove_eye_effects() { self.wearing_rat_king_eye = 0; level notify("rat_king_eye_deactivated"); self notify("remove_eye"); if(isdefined(level.var_13445)) { self visionsetnakedforplayer(level.var_13445,0.1); } else { self visionsetnakedforplayer("",0.1); } self setscriptablepartstate("rat_king_eye_light","neutral"); } //Function Number: 27 func_103B4() { self endon("death"); self endon("disconnect"); level endon("game_ended"); var_00 = undefined; for(;;) { self waittill("weapon_fired"); if(self getstance() != "prone") { continue; } if(scripts\cp\_utility::func_4626(self getcurrentweapon()) != "weapon_sniper") { continue; } var_01 = anglestoforward(self.angles); if(!isdefined(var_00) || gettime() - var_00 > 2000) { var_00 = gettime(); continue; } } } //Function Number: 28 unset_scriptable_part_state_after_time(param_00,param_01) { self endon("death"); wait(param_00); self setscriptablepartstate("projectile","inactive"); param_01 notify("ranged_katana_missile_done"); if(isdefined(self)) { self delete(); } } //Function Number: 29 func_13AD5() { self endon("disconnect"); for(;;) { var_00 = func_137A6(); switch(var_00.var_13C2E) { case "remotemissile_projectile_mp": var_00 thread func_858A(); break; case "iw7_harpoon_zm": break; case "iw7_harpoon3_zm": var_00 thread runharpoontraplogic(var_00,self); break; case "iw7_blackholegun_mp": var_00 thread scripts\cp\_blackholegun::func_B8B1(var_00.var_13C2E,var_00); break; case "iw7_harpoon1_zm": var_00.var_222 thread alt_acid_rain_dud_explode(var_00); break; case "iw7_harpoon4_zm": var_00.var_222 thread thundergun_harpoon_dud_explode(var_00); var_00.var_222 thread thundergun_harpoon(var_00.var_13C2E,var_00); break; case "iw7_harpoon2_zm": var_00.var_222 thread ben_franklin_harpoon_dud_explode(var_00); var_00.var_222 thread ben_franklin_harpoon(var_00); break; default: break; } } } //Function Number: 30 ben_franklin_harpoon_activate(param_00,param_01,param_02) { self endon("death"); self endon("disconnect"); level endon("game_ended"); var_03 = level._effect["hammer_of_dawn_lightning"]; level notify("ben_franklin_lightning_pos",param_00); playfx(var_03,param_00,anglestoforward(self.angles),anglestoup(self.angles)); playsoundatpos(param_00,"harpoon2_impact"); thread run_stun_logic(param_00,param_01,param_02,var_03); } //Function Number: 31 run_stun_logic(param_00,param_01,param_02,param_03) { self endon("death"); self endon("disconnected"); level endon("game_ended"); var_04 = anglestoforward(self.angles); var_04 = vectornormalize(var_04); var_04 = var_04 * 100; var_05 = -1 * var_04; var_06 = function_02D3(self.angles); var_06 = vectornormalize(var_06); var_06 = var_06 * 100; var_07 = -1 * var_06; if(isdefined(param_01)) { param_01.nocorpse = 1; param_01.full_gib = 1; } var_08 = "reload_zap_screen"; var_09 = max(1000,0.5 * param_02); self radiusdamage(param_00,128,var_09,var_09,self,"MOD_GRENADE_SPLASH","iw7_harpoon2_zm_stun"); scripts\common\utility::func_136F7(); if(distance2dsquared(self.origin,param_00) <= 16384) { playfxontagforclients(level._effect[var_08],self,"tag_eye",self); } wait(0.25); var_0A = scripts\cp\_agent_utils::func_7DB0("axis"); var_0B = 65536; var_08 = "reload_zap_m"; foreach(var_0D in var_0A) { if(var_0D.agent_type == "slasher" || var_0D.agent_type == "superslasher") { continue; } if(distancesquared(var_0D.origin,param_00) < var_0B) { var_0E = var_0D gettagorigin("j_spineupper"); var_0D thread func_13E63(1,self); playfx(param_03,var_0D.origin); } } if(isdefined(level.played_ben_franklin_effect)) { level.played_ben_franklin_effect = undefined; } } //Function Number: 32 play_stun_fx(param_00,param_01,param_02,param_03,param_04) { var_05 = "reload_zap_m"; playsoundatpos(param_04,"perk_blue_bolts_sparks"); playfx(level._effect[var_05],param_04 + param_00); scripts\common\utility::func_136F7(); playfx(level._effect[var_05],param_04 + param_01); scripts\common\utility::func_136F7(); playfx(level._effect[var_05],param_04 + param_02); scripts\common\utility::func_136F7(); playfx(level._effect[var_05],param_04 + param_03); scripts\common\utility::func_136F7(); } //Function Number: 33 func_13E63(param_00,param_01) { self endon("death"); self.var_11196 = 1; thread scripts\cp\zombies\zombie_scriptable_states::applyzombiescriptablestate(self); while(param_00 > 0) { self.var_11190 = gettime() + 1500; wait(0.1); self dodamage(1,self.origin,param_01,param_01,"MOD_GRENADE_SPLASH","iw7_harpoon2_zm_stun"); param_00 = param_00 - 1; wait(1.5); } self.var_11196 = undefined; } //Function Number: 34 ben_franklin_harpoon_dud_explode(param_00) { self endon("disconnect"); self endon("death"); param_00 waittill("death"); if(isdefined(param_00.origin)) { thread ben_franklin_harpoon_activate(param_00.origin,undefined,500000000); } self notify("remove_this_function_since_you_missed_zomb"); } //Function Number: 35 ben_franklin_harpoon(param_00) { self endon("disconnect"); self endon("death"); level endon("game_ended"); self endon("remove_this_function_since_you_missed_zomb"); self waittill("zombie_hit_by_ben",var_01,var_02,var_03); thread ben_franklin_harpoon_activate(var_01,var_02,var_03); } //Function Number: 36 thundergun_harpoon_dud_explode(param_00) { self endon("disconnect"); self endon("death"); param_00 waittill("death"); var_01 = param_00.origin; if(isdefined(param_00.origin)) { var_02 = scripts\cp\_agent_utils::func_7DB0("axis"); var_03 = 160000; foreach(var_05 in var_02) { if(!isdefined(var_05)) { continue; } if(!isdefined(var_05.agent_type)) { continue; } if(distancesquared(var_05.origin,var_01) < var_03) { var_05.do_immediate_ragdoll = 1; var_05.disable_armor = 1; var_05.var_4C87 = 1; playsoundatpos(var_05.origin,"perk_blue_bolts_sparks"); var_06 = anglestoforward(self.angles); var_07 = vectornormalize(var_06) * -100; if(isdefined(var_05.agent_type) && var_05.agent_type != "slasher" && var_05.agent_type != "superslasher") { var_05 setvelocity(vectornormalize(var_05.origin - self.origin + var_07) * 800 + (200,0,200)); } wait(0.2); var_05.nocorpse = 1; var_05.full_gib = 1; if(isdefined(var_05.agent_type) && var_05.agent_type == "slasher" || var_05.agent_type == "superslasher") { var_05 dodamage(var_05.health,var_05.origin,self,self,"MOD_UNKNOWN","iw7_harpoon4_zm"); } else { var_05 dodamage(var_05.health + 1000,var_05.origin,self,self,"MOD_UNKNOWN","iw7_harpoon4_zm"); } } } } self notify("remove_this_function_since_you_missed_zomb"); } //Function Number: 37 fling_zombie_thundergun_harpoon(param_00,param_01,param_02,param_03) { self endon("death"); param_03 endon("death"); if(!isdefined(param_03)) { return; } param_03.angles = vectortoangles(param_01.origin - param_03.origin) + (0,0,180); var_04 = param_01.origin - param_03.origin; var_05 = anglestoforward(param_02.angles); var_06 = vectornormalize(var_05) * -100; self setvelocity(vectornormalize(self.origin - param_02.origin + var_06) * 800 + (200,0,200)); wait(0.16); if(isdefined(param_02)) { param_01.do_immediate_ragdoll = 1; param_01.disable_armor = 1; param_01.var_4C87 = 1; wait(0.1); param_01.nocorpse = 1; param_01.full_gib = 1; self dodamage(self.health + 1000,param_01.origin,param_02,param_02,"MOD_UNKNOWN","iw7_harpoon4_zm"); return; } self.nocorpse = 1; self.full_gib = 1; self dodamage(self.health + 1000,param_01.origin,param_01,param_01,"MOD_UNKNOWN","iw7_harpoon4_zm"); } //Function Number: 38 thundergun_harpoon(param_00,param_01) { self endon("disconnect"); self endon("death"); level endon("game_ended"); self endon("remove_this_function_since_you_missed_zomb"); var_02 = 256; var_03 = scripts\cp\_agent_utils::func_7DB0("axis"); var_04 = self.angles; var_05 = self geteye(); while(isdefined(param_01)) { var_06 = scripts\common\utility::func_782F(param_01.origin,var_03,undefined,24,var_02); self.closestenemies = var_06; var_07 = 0; foreach(var_09 in self.closestenemies) { if(!isdefined(var_09.agent_type)) { continue; } if(isdefined(param_01)) { if(distance2dsquared(param_01.origin,var_09.origin) < 16384) { if(isdefined(var_09.agent_type) && var_09.agent_type == "slasher" || var_09.agent_type == "superslasher") { var_09 dodamage(var_09.health,var_09.origin,self,self,"MOD_UNKNOWN","iw7_harpoon4_zm"); } else { var_09 thread fling_zombie_thundergun_harpoon(var_09.health + 1000,var_09,self,param_01); } scripts\common\utility::func_136F7(); } } } scripts\common\utility::func_136F7(); } } //Function Number: 39 alt_acid_rain_dud_explode(param_00) { self endon("disconnect"); self endon("death"); var_01 = scripts\common\trace::func_48BC(0,1,1,1,1,0,1); var_02 = param_00.angles; var_03 = param_00.origin; param_00 waittill("death"); if(!isdefined(param_00.origin)) { return; } playfx(level._effect["acid_rain_explosion"],param_00.origin); scripts\common\utility::func_136F7(); playfx(level._effect["acid_rain"],param_00.origin); var_04 = gettime(); var_05 = param_00.origin; var_06 = spawn("trigger_radius",param_00.origin,0,128,64); var_06 thread deal_damage_to_enemies(self,var_04); var_06 thread delete_after_time(self,var_04); } //Function Number: 40 delete_after_time(param_00,param_01) { param_00 endon("death"); self endon("death"); while(gettime() <= param_01 + 3400) { scripts\common\utility::func_136F7(); } if(isdefined(level.played_acid_rain_effect)) { level.played_acid_rain_effect = undefined; } self delete(); } //Function Number: 41 deal_damage_to_enemies(param_00,param_01) { param_00 endon("death"); self endon("death"); while(gettime() <= param_01 + 3400) { self waittill("trigger",var_02); if(!isdefined(var_02)) { continue; } if(!var_02 scripts\cp\_utility::func_9D20()) { continue; } if(isdefined(param_00)) { if(var_02.agent_type == "slasher" || var_02.agent_type == "superslasher") { var_02 dodamage(0.1 * var_02.maxhealth,var_02.origin,param_00,param_00,"MOD_RIFLE_BULLET","iw7_harpoon1_zm"); } else { playfx(level._effect["acid_rain"],var_02.origin); var_02 dodamage(var_02.maxhealth,var_02.origin,param_00,param_00,"MOD_RIFLE_BULLET","iw7_harpoon1_zm"); } continue; } var_02 dodamage(var_02.maxhealth,var_02.origin,undefined,undefined,"MOD_RIFLE_BULLET","iw7_harpoon1_zm"); } } //Function Number: 42 func_137A6() { self waittill("missile_fire",var_00,var_01); if(isdefined(var_00)) { if(!isdefined(var_00.var_13C2E)) { var_02 = getweaponbasename(var_01); if(isdefined(var_02)) { var_00.var_13C2E = var_02; } else { var_00.var_13C2E = var_01; } } if(!isdefined(var_00.var_222)) { var_00.var_222 = self; } if(!isdefined(var_00.team)) { var_00.team = self.team; } } return var_00; } //Function Number: 43 runharpoontraplogic(param_00,param_01) { param_00 endon("death"); param_00 waittill("missile_stuck",var_02); var_03 = param_00.origin; var_04 = param_00.angles; var_05 = vectornormalize(anglestoforward(var_04)); var_06 = vectornormalize(anglestoright(var_04)); var_07 = vectorcross(var_05,var_06); param_00.angles = vectortoangles(var_07); var_08 = 3 * anglestoforward(param_00.angles); param_00.origin = param_00.origin + var_08; playsoundatpos(param_00.origin,"weap_harpoon3_impact"); wait(0.5); param_00 setscriptablepartstate("arrow_effects","active"); level.harpoon_projectiles[level.harpoon_projectiles.size] = param_00; if(level.harpoon_projectiles.size >= 6) { thread destroy_oldest_trap(); } param_00.linked_to_targets = []; param_00.var_AD1F = []; param_00.death_time = gettime() + 9000; param_00 thread connect_to_nearby_harpoon_projectiles(param_00,param_01); param_00 thread timeout_trap(param_00,param_01); } //Function Number: 44 destroy_oldest_trap() { var_00 = level.harpoon_projectiles[0]; var_00 notify("early_death"); var_00 clean_up_trap_ent(var_00,var_00.origin); } //Function Number: 45 timeout_trap(param_00,param_01) { param_00 endon("death"); param_00 endon("early_death"); wait(9.95); var_02 = param_00.origin; wait(0.05); param_00 clean_up_trap_ent(param_00,var_02); } //Function Number: 46 clean_up_trap_ent(param_00,param_01) { if(scripts\common\utility::func_2286(level.harpoon_projectiles,param_00)) { level.harpoon_projectiles = scripts\common\utility::func_22A9(level.harpoon_projectiles,param_00); } level.harpoon_projectiles = scripts\common\utility::func_22BC(level.harpoon_projectiles); var_02 = spawnfx(scripts\common\utility::getfx("placeEquipmentFailed"),param_01); triggerfx(var_02); playsoundatpos(param_01,"weap_harpoon3_trap_off"); thread func_CC17(var_02); param_00 delete(); } //Function Number: 47 connect_to_nearby_harpoon_projectiles(param_00,param_01) { param_00 endon("death"); var_02 = scripts\common\trace::func_497D(); for(;;) { var_03 = []; var_04 = scripts\common\utility::func_782F(param_00.origin,level.harpoon_projectiles,[param_00],2,128); clean_up_links(param_00,var_04); foreach(var_06 in var_04) { if(scripts\common\utility::func_2286(param_00.linked_to_targets,var_06)) { continue; } if(scripts\common\utility::func_2286(var_06.linked_to_targets,param_00)) { continue; } var_07 = scripts\common\trace::func_DCED(param_00 gettagorigin("TAG_FX"),var_06 gettagorigin("TAG_FX"),param_00,var_02); if(var_07["fraction"] < 0.95) { continue; } else { var_03[var_03.size] = var_06; param_00.linked_to_targets[param_00.linked_to_targets.size] = var_06; } } foreach(var_0A in var_03) { param_00.var_AD1F[var_0A.var_64] = var_0A; var_0B = distance(param_00.origin,var_0A.origin); var_0C = spawn("trigger_rotatable_radius",param_00 gettagorigin("TAG_FX"),0,3,var_0B); var_0D = vectortoangles(var_0A gettagorigin("TAG_FX") - param_00 gettagorigin("TAG_FX")) + (-90,0,0); var_0C.angles = (90,var_0D[1],var_0D[2]); param_00 thread play_vfx_between_points_trap_gun(param_00,var_0A,var_0C); param_00 thread damage_enemies_in_trigger(var_0A,param_00,var_0C,param_01); thread clean_up_trigger_on_death(var_0A,param_00,var_0C); } wait(1); } } //Function Number: 48 play_vfx_between_points_trap_gun(param_00,param_01,param_02) { var_03 = function_02DF(level._effect["trap_ww_beam"],param_00,"tag_fx",param_01,"tag_fx"); thread kill_fx_on_death(param_00,param_01,param_02,var_03); } //Function Number: 49 kill_fx_on_death(param_00,param_01,param_02,param_03) { level endon("game_ended"); var_04 = param_00.origin; var_05 = param_00 gettagorigin("TAG_FX"); var_06 = param_01 gettagorigin("TAG_FX"); var_07 = max(param_01.death_time - gettime() / 1000,0); var_08 = max(param_00.death_time - gettime() / 1000 - var_07 - 0.2,0); thread play_sfx_on_harpoon_trap(param_00,param_01,param_02); if(var_07 > 0 && isdefined(param_00) && isdefined(param_01)) { scripts\cp\_utility::func_1372C(var_07,param_00,"death",param_01,"death",param_02,"death"); } else if(isdefined(param_00) && isdefined(param_01)) { scripts\common\utility::func_1372B(param_00,"death",param_01,"death",param_02,"death"); } if(isdefined(param_03)) { param_03 delete(); } function_02E0(level._effect["trap_ww_beam_death"],var_05,vectortoangles(var_06 - var_05),var_06); } //Function Number: 50 play_sfx_on_harpoon_trap(param_00,param_01,param_02) { var_03 = param_00.origin; var_04 = param_01 gettagorigin("TAG_FX"); var_05 = []; var_05[0] = var_03; var_05[1] = var_04; var_06 = max(param_01.death_time - gettime() / 1000,0); var_07 = averagepoint(var_05); playsoundatpos(var_07,"weap_harpoon3_trap_on"); var_08 = spawn("script_origin",var_07); wait(0.05); var_08 playloopsound("weap_harpoon3_trap_lp"); if(var_06 > 0 && isdefined(param_00) && isdefined(param_01)) { scripts\cp\_utility::func_1372C(var_06,param_00,"death",param_01,"death",param_02,"death"); } else if(isdefined(param_00) && isdefined(param_01)) { scripts\common\utility::func_1372B(param_00,"death",param_01,"death",param_02,"death"); } wait(1); var_08 stoploopsound("weap_harpoon3_trap_lp"); wait(0.05); var_08 delete(); } //Function Number: 51 damage_enemies_in_trigger(param_00,param_01,param_02,param_03) { self endon("death"); param_02 endon("death"); param_00 endon("death"); param_01 endon("death"); for(;;) { param_02 waittill("trigger",var_04); if(!var_04 scripts\cp\_utility::func_9D20()) { continue; } if(var_04.agent_type == "slasher" || var_04.agent_type == "superslasher") { if(scripts\common\utility::istrue(var_04.got_hit_once)) { continue; } else { var_04 thread do_damage_on_slasher_once(var_04,param_03); } } thread run_harpoon_laser_death(var_04,param_03); } } //Function Number: 52 do_damage_on_slasher_once(param_00,param_01) { param_00 endon("death"); level endon("game_ended"); param_00.got_hit_once = 1; if(param_00.agent_type == "superslasher") { wait(5); } else { wait(2); } param_00.got_hit_once = undefined; } //Function Number: 53 run_harpoon_laser_death(param_00,param_01) { param_00.atomize_me = 1; param_00.not_killed_by_headshot = 1; if(isdefined(param_01)) { param_00 dodamage(param_00.health,param_00.origin,param_01,param_01,"MOD_UNKNOWN","iw7_harpoon3_zm"); return; } param_00 dodamage(param_00.health,param_00.origin,undefined,undefined,"MOD_UNKNOWN","iw7_harpoon3_zm"); } //Function Number: 54 clean_up_trigger_on_death(param_00,param_01,param_02) { level endon("game_ended"); scripts\common\utility::func_1372B(param_00,"death",param_01,"death"); if(isdefined(param_02)) { param_02 delete(); } } //Function Number: 55 clean_up_links(param_00,param_01) { param_00.linked_to_targets = scripts\common\utility::func_22BC(param_00.linked_to_targets); foreach(var_03 in param_00.linked_to_targets) { if(isdefined(param_00.var_AD1F[var_03.var_64])) { param_00.var_AD1F[var_03.var_64] = undefined; } if(!scripts\common\utility::func_2286(param_01,var_03) && scripts\common\utility::func_2286(param_00.linked_to_targets,var_03)) { param_00.linked_to_targets = scripts\common\utility::func_22A9(param_00.linked_to_targets,var_03); } } } //Function Number: 56 func_C57B() { self endon("disconnect"); for(;;) { self waittill("spawned_player"); self.var_4C16 = self getcurrentweapon(); self.var_61A0 = 0; self.var_44ED = 0; self.var_9042 = 0; if(!isdefined(self.var_11AF0)) { self.var_11AF0 = ""; self.var_11AF0 = "none"; self.var_11AF1 = 0; self.var_11AEF = 0; self.var_11AEE = 0; self.var_11AED = 0; self.var_11AEC = 0; } thread func_13A9B(); thread func_10B5E(); self.var_A99F = []; self.var_5D39 = undefined; self.var_119DF = []; thread func_12F0A(); thread func_13A7F(); thread watch_slasher_killed(); thread func_B9EC(); self.var_4C16 = undefined; self.var_12839 = undefined; } } //Function Number: 57 func_B9EC() { self endon("disconnect"); self endon("death"); self endon("faux_spawn"); for(;;) { var_00 = func_1377A(); if(isdefined(var_00.var_13C2E)) { if(func_83F3(var_00.var_13C2E) == "stickglprox") { func_F21A(var_00); } if(issubstr(var_00.var_13C2E,"iw7_venomx_zm")) { if(isdefined(level.venom_x_weapon_logic_thread)) { level thread [[ level.venom_x_weapon_logic_thread ]](var_00); } } } } } //Function Number: 58 func_83F3(param_00) { if(param_00 != "none" && getweaponbasename(param_00) == "iw7_glprox_mp") { if(scripts\cp\_utility::func_9D3E(param_00)) { var_01 = function_00E3(param_00); param_00 = var_01[0]; } else { param_00 = getweaponbasename(param_00); } } return param_00; } //Function Number: 59 func_10B5E() { self endon("death"); self endon("disconnect"); self endon("faux_spawn"); if(!isplayer(self)) { return; } self notifyonplayercommand("adjustedStance","+stance"); self notifyonplayercommand("adjustedStance","+goStand"); if(!level.console && !isai(self)) { self notifyonplayercommand("adjustedStance","+togglecrouch"); self notifyonplayercommand("adjustedStance","toggleprone"); self notifyonplayercommand("adjustedStance","+movedown"); self notifyonplayercommand("adjustedStance","-movedown"); self notifyonplayercommand("adjustedStance","+prone"); self notifyonplayercommand("adjustedStance","-prone"); } for(;;) { scripts\common\utility::waittill_any_3("adjustedStance","sprint_begin","weapon_change"); wait(0.5); if(isdefined(self.var_C53B) && self.var_C53B) { continue; } var_00 = self getstance(); func_10B5F(var_00); } } //Function Number: 60 func_10B5F(param_00) { var_01 = self getcurrentprimaryweapon(); var_02 = 0; if(func_9F1C(var_01)) { var_02 = func_80E2(); } if(param_00 == "prone") { var_03 = scripts\cp\_utility::func_4626(var_01); if(isdefined(var_03)) { if(var_03 == "weapon_lmg") { setrecoilscale(0,40); return; } if(var_03 == "weapon_sniper") { if(issubstr(var_01,"barrelbored")) { setrecoilscale(0,20 + var_02); return; } setrecoilscale(0,40 + var_02); return; } return; } setrecoilscale(); return; } if(param_00 == "crouch") { var_03 = scripts\cp\_utility::func_4626(var_01); if(isdefined(var_03)) { if(var_03 == "weapon_lmg") { setrecoilscale(0,10); return; } if(var_03 == "weapon_sniper") { if(issubstr(var_01,"barrelbored")) { setrecoilscale(0,10 + var_02); return; } setrecoilscale(0,20 + var_02); return; } return; } setrecoilscale(); return; } if(var_02 > 0) { setrecoilscale(0,var_02); return; } setrecoilscale(); } //Function Number: 61 setrecoilscale(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(); return; } self player_recoilscaleon(var_02); } //Function Number: 62 func_9F1C(param_00) { if(!isdefined(param_00) || param_00 == "none") { return 0; } var_01 = 0; if(issubstr(param_00,"kbsscope") || issubstr(param_00,"m8scope_zm") || issubstr(param_00,"cheytacscope")) { var_01 = 1; } return var_01; } //Function Number: 63 func_80E2() { if(!isdefined(self.pers["recoilReduceKills"])) { self.pers["recoilReduceKills"] = 0; } return self.pers["recoilReduceKills"] * 40; } //Function Number: 64 watch_slasher_killed() { self endon("death"); self endon("disconnect"); self endon("faux_spawn"); self endon("achievement_done"); for(;;) { self waittill("slasher_killed_by_own_weapon",var_00,var_01); level thread slasher_killed_vo(var_00); lib_0D2A::func_12D7C("TABLES_TURNED",1); self notify("achievement_done"); } } //Function Number: 65 slasher_killed_vo(param_00) { level endon("game_ended"); param_00 endon("death"); param_00 endon("disconnect"); if(param_00.var_134FD == "p5_") { level thread scripts\cp\_vo::try_to_play_vo("ww_slasher_death_p5","rave_announcer_vo","highest",5,0,0,1); } wait(5); param_00 thread scripts\cp\_vo::try_to_play_vo("killfirm_slasher","zmb_comment_vo","highest",20,0,0,1); } //Function Number: 66 func_13A7F() { self endon("death"); self endon("disconnect"); self endon("faux_spawn"); for(;;) { self waittill("weapon_change",var_00); if(var_00 == "none") { continue; } var_01 = getweaponbasename(var_00); if(func_9FEA(var_00)) { self.last_valid_weapon = var_00; } switch(var_01) { case "iw7_axe_zm_pap2": case "iw7_axe_zm_pap1": case "iw7_axe_zm": if(func_7D62(var_00) > 1) { } else { } break; default: break; } } } //Function Number: 67 func_9FEA(param_00) { var_01 = level.additional_laststand_weapon_exclusion; if(param_00 == "none") { return 0; } if(scripts\common\utility::func_2286(var_01,param_00)) { return 0; } if(scripts\common\utility::func_2286(var_01,getweaponbasename(param_00))) { return 0; } if(scripts\cp\_utility::func_9C42(param_00,1)) { return 0; } return 1; } //Function Number: 68 func_12F0A() { self endon("death"); self endon("disconnect"); self endon("faux_spawn"); var_00 = self.var_4C16; if(isdefined(self.var_EB6D)) { var_00 = self.var_EB6D; } self.var_EB6B = var_00; for(;;) { self waittill("weapon_change",var_01); if(var_01 == "none") { self.var_EB6B = var_00; continue; } var_02 = function_0244(var_01); if(var_02 != "primary" && var_02 != "altmode") { self.var_EB6B = var_00; continue; } self [[ level.var_BC70 ]](); self.var_EB6B = var_00; var_00 = var_01; } } //Function Number: 69 func_13A9B() { self notify("watchGrenadeUsage"); self endon("watchGrenadeUsage"); self endon("spawned_player"); self endon("disconnect"); self endon("faux_spawn"); self.var_11817 = undefined; self.var_8474 = 0; if(!isdefined(self.var_CC4C)) { self.var_CC4C = []; self.var_CC4D = []; } for(;;) { self waittill("grenade_pullback",var_00); var_01 = self method_8556(); if(var_01 != "none") { continue; } if(isdefined(level.custom_grenade_pullback_func)) { thread [[ level.custom_grenade_pullback_func ]](self,var_00); } thread func_13ADB(); self.var_11817 = var_00; if(var_00 == "c4_zm") { thread func_2A60(); } func_2A69(); self.var_11817 = undefined; } } //Function Number: 70 func_13ADB() { self endon("death"); self endon("disconnect"); self endon("faux_spawn"); self endon("grenade_fire"); self waittill("offhand_end"); if(isdefined(self.var_3C64) && self.var_3C64 != self getcurrentweapon()) { self.var_3C64 = undefined; } } //Function Number: 71 func_2A60() { self notify("beginC4Tracking"); self endon("beginC4Tracking"); self endon("death"); self endon("disconnect"); scripts\common\utility::waittill_any_3("grenade_fire","weapon_change","offhand_end"); self.var_3C64 = undefined; } //Function Number: 72 func_2A69() { self endon("offhand_end"); var_00 = gettime(); var_01 = func_1377A(); if(!isdefined(var_01)) { return; } if(!isdefined(var_01.var_13C2E)) { return; } self.var_3C64 = undefined; switch(var_01.var_13C2E) { case "thermobaric_grenade_mp": case "frag_grenade_mp": case "frag_grenade_zm": if(gettime() - var_00 > 1000) { var_01.var_9D93 = 1; } var_01 thread func_858A(); var_01.var_C731 = self; break; case "cluster_grenade_zm": var_01.var_42E0 = var_01.var_118A2; if(var_01.var_118A2 >= 1) { var_01.var_9D93 = 1; } var_01.var_C731 = self; var_01 thread func_42DE(); var_01 thread func_858A(); break; case "zfreeze_semtex_mp": case "semtex_zm": case "semtex_mp": thread func_F21A(var_01); break; case "c4_zm": thread lib_0D07::func_333E(var_01); break; case "smoke_grenade_mp": var_01 thread func_13B48(); break; case "claymore_mp": thread func_402D(var_01); break; case "concussion_grenade_mp": var_01 thread func_139D3(); break; case "bouncingbetty_mp": thread func_B780(var_01,::func_108E3); break; case "throwingknifejugg_mp": case "throwingknifec4_mp": case "throwingknife_mp": level thread func_11824(self,var_01,var_01.var_13C2E); break; case "zom_repulsor_mp": var_01 delete(); break; case "gas_grenade_mp": var_01 thread func_13A8A(); break; case "splash_grenade_zm": case "splash_grenade_mp": var_01 thread func_858A(); thread scripts\cp\_spawn_plasma_projectile::func_10A35(var_01); break; case "portal_generator_zm": case "portal_generator_mp": thread lib_0D14::func_D68B(var_01); break; case "ztransponder_mp": case "transponder_mp": thread lib_0D1E::func_1268F(var_01); break; case "micro_turret_zm": case "micro_turret_mp": thread lib_0D0F::func_B719(var_01); break; case "blackhole_grenade_zm": case "blackhole_grenade_mp": thread lib_0D04::func_2B3D(var_01); break; case "trip_mine_mp": thread lib_0D1F::func_127F2(var_01); break; case "heart_cp": thread heart_used(); break; case "rat_king_eye_cp": thread eye_activated(); break; } } //Function Number: 73 rat_executevisuals(param_00) { level endon("game_ended"); self endon("disconnect"); self playlocalsound("eye_pulse_plr_lr"); self setscriptablepartstate("rat_eye_pulse","active"); scripts\common\utility::waittill_any_timeout_1(param_00,"last_stand","death"); self setscriptablepartstate("rat_eye_pulse","inactive"); } //Function Number: 74 handleratvisionburst(param_00) { level endon("game_ended"); param_00 endon("disconnect"); param_00 endon("last_stand"); param_00 endon("death"); param_00 thread rat_executevisuals(2.4); } //Function Number: 75 func_9E54(param_00,param_01,param_02,param_03,param_04,param_05) { var_06 = getentarray("power_exclusion_volume","targetname"); if(isdefined(param_05)) { if(isdefined(level.var_BEAB) && isdefined(level.var_BEAB.var_12F87)) { if(param_05 == level.var_BEAB || param_05 == level.var_BEAB.var_12F87) { return 0; } } if(isdefined(level.var_2BFB)) { if(param_05 == level.var_2BFB) { return 0; } } if(isdefined(param_05.var_336) && param_05.var_336 == "beginning_area_balloons") { return 0; } } if(isdefined(param_01)) { var_06 = scripts\common\utility::array_combine(var_06,param_01); } foreach(var_08 in var_06) { if(function_010F(param_00,var_08)) { return 0; } } if(scripts\common\utility::istrue(param_04) && !ispointonnavmesh(param_00)) { return 0; } if(scripts\common\utility::istrue(param_03)) { if(navtrace(param_02.origin,param_00)) { return 0; } } return 1; } //Function Number: 76 func_CC16(param_00,param_01,param_02,param_03) { if(isplayer(self)) { self playlocalsound("scavenger_pack_pickup"); } if(scripts\common\utility::istrue(param_01)) { var_04 = undefined; if(isplayer(self)) { self playlocalsound("ww_magicbox_laughter"); if(isdefined(param_03)) { var_04 = function_01E1(scripts\common\utility::getfx("placeEquipmentFailed"),param_02,self,anglestoforward(param_03),anglestoup(param_03)); } else { var_04 = function_01E1(scripts\common\utility::getfx("placeEquipmentFailed"),param_02,self); } } else { var_04 = spawnfx(scripts\common\utility::getfx("placeEquipmentFailed"),param_02); } triggerfx(var_04); thread func_CC17(var_04); } } //Function Number: 77 func_CC17(param_00) { wait(2); param_00 delete(); } //Function Number: 78 func_108E3(param_00,param_01,param_02,param_03) { if(!isdefined(param_03)) { param_03 = (0,randomfloat(360),0); } var_04 = level.var_13C7D[param_02]; var_05 = spawn("script_model",param_00); var_05.angles = param_03; var_05.var_222 = param_01; var_05.var_13C2E = param_02; var_05.var_451C = var_04; var_05 setmodel(var_04.model); var_05 method_831F(param_01); var_05.var_A640 = (0,0,4); var_05.var_A63A = spawn("script_model",var_05.origin + var_05.var_A640); var_05.var_A63A setscriptmoverkillcam("explosive"); param_01 func_C54E(var_05); if(isdefined(var_04.var_B760)) { var_05 thread func_57EB("tag_fx",var_04.var_B760["friendly"],var_04.var_B760["enemy"]); } var_06 = undefined; if(self != level) { var_06 = self getlinkedparent(); } var_05 func_69FF(var_06); var_05 thread func_B778(var_06); var_05 thread func_858A(); var_05 thread func_B77A(); var_05 thread func_B770(); level thread func_B9CA(param_01,var_05); return var_05; } //Function Number: 79 func_B77A() { self endon("mine_triggered"); self endon("mine_destroyed"); self endon("death"); wait(level.var_B77B + randomfloat(0.4)); self notify("mine_selfdestruct"); self notify("detonateExplosive"); } //Function Number: 80 func_B770() { self endon("death"); level endon("game_ended"); self waittill("detonateExplosive",var_00); if(!isdefined(self) || !isdefined(self.var_222)) { return; } if(!isdefined(var_00)) { var_00 = self.var_222; } var_01 = self.var_451C; var_02 = var_01.var_13370; if(!isdefined(var_02)) { var_02 = "tag_fx"; } var_03 = self gettagorigin(var_02); if(!isdefined(var_03)) { var_03 = self gettagorigin("tag_origin"); } self notify("explode",var_03); wait(0.05); if(!isdefined(self) || !isdefined(self.var_222)) { return; } self hide(); if(isdefined(var_01.var_C524)) { self thread [[ var_01.var_C524 ]](); } if(isdefined(var_01.var_C525)) { self playsound(var_01.var_C525); } var_04 = scripts\common\utility::func_116D7(isdefined(var_01.var_C526),var_01.var_C526,level.var_B761); var_05 = scripts\common\utility::func_116D7(isdefined(var_01.var_B769),var_01.var_B769,level.var_B769); var_06 = scripts\common\utility::func_116D7(isdefined(var_01.var_B768),var_01.var_B768,level.var_B768); var_07 = scripts\common\utility::func_116D7(isdefined(var_01.var_B76B),var_01.var_B76B,level.var_B76B); self radiusdamage(self.origin,var_07,var_06,var_05,var_00,"MOD_EXPLOSIVE",self.var_13C2E); wait(0.2); func_51B5(); } //Function Number: 81 func_B778(param_00) { self endon("mine_destroyed"); self endon("mine_selfdestruct"); self endon("death"); self endon("disabled"); var_01 = self.var_451C; wait(var_01.var_226E); if(isdefined(var_01.var_B760)) { thread func_57EB("tag_fx",var_01.var_B760["friendly"],var_01.var_B760["enemy"]); } var_02 = spawn("trigger_radius",self.origin,0,level.var_B76F,level.var_B76E); var_02.var_222 = self; var_02.team = var_02.var_222.team; thread func_B76C(var_02); if(isdefined(param_00)) { var_02 enablelinkto(); var_02 linkto(param_00); } self.var_4D2A = var_02; for(;;) { var_02 waittill("trigger",var_03); if(isplayer(var_03)) { wait(0.05); continue; } if(var_03 method_808F(self.origin,self) > 0) { break; } } self notify("mine_triggered"); self playsound(self.var_451C.var_C5B4); func_6A08(var_03,level.var_B76D,"mine"); self thread [[ self.var_451C.var_C5B3 ]](); } //Function Number: 82 func_B76C(param_00) { scripts\common\utility::waittill_any_3("mine_triggered","mine_destroyed","mine_selfdestruct","death"); if(isdefined(param_00)) { param_00 delete(); } } //Function Number: 83 func_57EB(param_00,param_01,param_02) { if(!isdefined(param_01)) { param_01 = scripts\common\utility::getfx("weap_blink_friend"); } if(!isdefined(param_02)) { param_02 = scripts\common\utility::getfx("weap_blink_enemy"); } self.var_2BA2["friendly"] = param_01; self.var_2BA2["enemy"] = param_02; self.var_2BA3 = param_00; thread func_12E66(param_01,param_02,param_00); self waittill("death"); func_11061(); } //Function Number: 84 func_12E66(param_00,param_01,param_02) { self endon("death"); self endon("carried"); self endon("emp_damage"); var_03 = ::func_3E52; if(!level.teambased) { var_03 = ::func_3E34; } var_04 = randomfloatrange(0.05,0.25); wait(var_04); childthread func_C542(param_00,param_01,param_02,var_03); foreach(var_06 in level.players) { if(isdefined(var_06)) { if(self.var_222 [[ var_03 ]](var_06)) { playfxontagforclients(param_00,self,param_02,var_06); } else { playfxontagforclients(param_01,self,param_02,var_06); } wait(0.05); } } } //Function Number: 85 func_3E34(param_00) { return self == param_00; } //Function Number: 86 func_3E52(param_00) { return self.team == param_00.team; } //Function Number: 87 func_C542(param_00,param_01,param_02,param_03) { self endon("death"); level endon("game_ended"); self endon("emp_damage"); for(;;) { level waittill("joined_team",var_04); if(self.var_222 [[ param_03 ]](var_04)) { playfxontagforclients(param_00,self,param_02,var_04); continue; } playfxontagforclients(param_01,self,param_02,var_04); } } //Function Number: 88 func_11061() { if(isalive(self) && isdefined(self.var_2BA2)) { stopfxontag(self.var_2BA2["friendly"],self,self.var_2BA3); stopfxontag(self.var_2BA2["enemy"],self,self.var_2BA3); self.var_2BA2 = undefined; self.var_2BA3 = undefined; } } //Function Number: 89 takeheart(param_00) { self notify("remove_heart"); self.has_heart = undefined; } //Function Number: 90 heart_used() { self endon("disconnect"); self endon("remove_heart"); self notify("beginHeartTracking"); self endon("beginHeartTracking"); self endon("death"); var_00 = self method_8513("ges_heart_pull","explode"); var_01 = self method_8443("ges_heart_pull"); self.var_3C64 = undefined; var_02 = self.origin; var_03 = scripts\cp\_agent_utils::get_alive_enemies(); foreach(var_05 in var_03) { if(isdefined(var_05.flung) || isdefined(var_05.agent_type) && var_05.agent_type == "zombie_brute" || var_05.agent_type == "zombie_ghost" || var_05.agent_type == "zombie_grey" || var_05.agent_type == "slasher" || var_05.agent_type == "superslasher") { continue; } if(distancesquared(var_05.origin,var_02) <= 65536) { if(var_05 lib_0F74::func_9D9E()) { var_05.var_EF64 = 1; var_05.var_180 = 1; var_05 method_82EF(var_05.origin); } var_05.var_EF64 = 1; var_05.var_180 = 1; var_05 method_82EF(var_05.origin); var_05.flung = 1; var_05.do_immediate_ragdoll = 1; var_05.disable_armor = 1; var_05.full_gib = 1; var_05.nocorpse = 1; var_05 setsolid(0); playfx(level._effect["rat_swarm_cheap"],var_05 gettagorigin("j_spine4"),anglestoforward(var_05.angles)); thread deal_damage(var_05,self); } } scripts\cp\powers\coop_powers::func_D72E(); self notify("heart_used",1); } //Function Number: 91 use_heart_notify() { self notify("heart_used",1); } //Function Number: 92 deal_damage(param_00,param_01) { param_00 endon("death"); wait(0.7); param_00.var_EF64 = undefined; var_02 = param_00 gettagorigin("j_spine4"); playfx(level._effect["gore"],var_02,(1,0,0)); playsoundatpos(var_02,"gib_fullbody"); param_01 earthquakeforplayer(0.5,1.5,var_02,120); scripts\common\utility::func_136F7(); if(isdefined(param_00)) { param_00 dodamage(param_00.health + 100000,param_00.origin,param_01,param_01,"MOD_EXPLOSIVE","heart_cp"); } } //Function Number: 93 func_13A8A() { var_00 = self.var_222; var_00 endon("disconnect"); self waittill("explode",var_01); thread func_C534(var_00,var_01); } //Function Number: 94 func_C534(param_00,param_01) { var_02 = spawn("trigger_radius",param_01,0,128,160); var_02.var_222 = param_00; var_03 = 128; var_04 = spawnfx(scripts\common\utility::getfx("gas_grenade_smoke_enemy"),param_01); triggerfx(var_04); wait(1); var_05 = 8; while(var_05 > 0) { foreach(var_07 in scripts\cp\_agent_utils::func_7DB0("axis")) { if(isdefined(var_07.agent_type) && var_07.agent_type == "zombie_brute" || var_07.agent_type == "superslasher" || var_07.agent_type == "slasher" || var_07.agent_type == "zombie_grey") { continue; } var_08 = func_7E5B(var_07); if(isalive(var_07)) { var_07 func_20CC(param_00,param_01,var_02,var_02,int(var_08)); } } wait(0.2); var_05 = var_05 - 0.2; } var_04 delete(); wait(2); var_02 delete(); foreach(var_07 in scripts\cp\_agent_utils::func_7DB0("axis")) { if(isalive(var_07)) { var_07.var_6E82 = undefined; } } } //Function Number: 95 func_7E5B(param_00) { if(isalive(param_00)) { if(scripts\common\utility::istrue(param_00.var_9CDD)) { return int(min(1000,param_00.maxhealth * 0.25)); } return int(min(1000,param_00.maxhealth * 0.1)); } return 150; } //Function Number: 96 func_20CC(param_00,param_01,param_02,param_03,param_04) { if(isalive(self) && self istouching(param_02)) { if(param_00 scripts\cp\_utility::func_9DD6(self)) { param_03 radiusdamage(self.origin,1,param_04,param_04,param_00,"MOD_GRENADE_SPLASH","gas_grenade_mp"); self.var_6E82 = gettime() + 200; } } } //Function Number: 97 func_11824(param_00,param_01,param_02) { if(param_02 == "throwingknifec4_mp") { param_01 makeunusable(); param_01 thread func_DDF3(); } thread func_1181A(param_00,param_01); var_03 = undefined; var_04 = undefined; param_01 waittill("missile_stuck",var_03,var_04); var_05 = isdefined(var_04) && var_04 == "tag_flicker"; var_06 = isdefined(var_04) && var_04 == "tag_weapon"; if(isdefined(var_03) && isplayer(var_03) || isagent(var_03) && var_05) { var_03 notify("shield_hit",param_01); } if(isdefined(var_03) && isplayer(var_03) || isagent(var_03) && !var_06 && !var_05) { if(!lib_0D12::func_213D(var_03,param_01)) { param_01 delete(); return; } else if(param_02 == "throwingknifec4_mp") { func_11818(param_01,var_03,param_00); } } if(isdefined(param_01.var_8377)) { func_11827(param_00,param_01.var_D719); param_01 delete(); } } //Function Number: 98 func_1181A(param_00,param_01) { param_01 endon("death"); param_00 endon("death"); param_00 endon("disconnect"); for(;;) { param_00 waittill("victim_damaged",var_02,var_03,var_04,var_05,var_06,var_07); if(isdefined(var_03) && var_03 == param_01) { if(var_07 == "throwingknifeteleport_mp" && !isdefined(param_01.var_A708)) { func_1181F(param_01,var_02,param_00,1); param_01.var_8377 = 1; } break; } } } //Function Number: 99 func_13A90() { self waittill("death"); if(isdefined(self.var_A702)) { self.var_A702 delete(); } } //Function Number: 100 func_11827(param_00,param_01,param_02) { var_03 = param_00 getweaponammoclip(param_02); var_04 = 2; var_05 = undefined; if(var_03 >= var_04) { var_05 = 0; } else { param_00 setweaponammoclip(param_02,var_03 + 1); param_00 thread func_917F("throwingknife"); var_05 = 1; } return var_05; } //Function Number: 101 func_917F(param_00) { var_01 = 0; if(isdefined(level.var_4D4E) && level.var_4D4E) { var_01 = 1; } if(!isplayer(self)) { return; } switch(param_00) { case "scavenger": case "throwingknife": if(!var_01) { self playlocalsound("scavenger_pack_pickup"); } if(!level.var_8B38) { self setclientomnvar("damage_feedback_other",param_00); } break; case "boxofguns": if(!var_01) { self playlocalsound("mp_box_guns_ammo"); } if(!level.var_8B38) { self setclientomnvar("damage_feedback_other",param_00); } break; case "oracle": if(!var_01) { self playlocalsound("oracle_radar_pulse_plr"); } if(!level.var_8B38) { self setclientomnvar("damage_feedback_other",param_00); } break; } } //Function Number: 102 func_1181F(param_00,param_01,param_02,param_03) { param_02 playlocalsound("blinkknife_teleport"); param_02 playsoundonmovingent("blinkknife_teleport_npc"); playsoundatpos(param_00.origin,"blinkknife_impact"); thread func_11823(param_02,param_01); var_04 = param_01 method_8113(); if(isdefined(var_04)) { var_04 method_82C7(0); } var_05 = []; foreach(var_07 in level.var_3CB5) { if(!isdefined(var_07) || !isalive(var_07) || var_07 == param_01 || var_07 == param_02 || !param_02 scripts\cp\_utility::func_9DD6(var_07)) { continue; } var_05[var_05.size] = var_07; } var_05 = sortbydistance(var_05,param_01.origin); var_09 = param_02 gettagorigin("TAG_EYE"); var_0A = param_01.origin; var_0B = param_01.origin + (0,0,var_09[2] - param_02.origin[2]); var_0C = param_02.angles; foreach(var_0E in var_05) { var_0F = (var_0E.origin[0],var_0E.origin[1],var_0E gettagorigin("TAG_EYE")[2]); if(distancesquared(var_0E.origin,param_01.origin) < 230400 && sighttracepassed(var_0B,var_0F,0,undefined)) { var_0C = vectortoangles(var_0F - var_0B); break; } } param_02 setorigin(param_01.origin,!param_03); param_02 setplayerangles(var_0C); func_11820(param_02,param_01); } //Function Number: 103 func_11823(param_00,param_01) { var_02 = param_01.origin - param_00.origin; var_03 = param_00.origin + (0,0,32); var_04 = vectornormalize(var_02); var_05 = vectornormalize(vectorcross(var_02,(0,0,1))); var_06 = vectorcross(var_05,var_04); var_07 = axistoangles(var_04,var_05,var_06); var_08 = 0; if(var_08) { var_09 = spawn("script_model",var_03); var_09.angles = var_07; var_09 setmodel("tag_origin"); var_09 method_8429(param_00); scripts\common\utility::func_136F7(); function_029A(scripts\common\utility::getfx("vfx_knife_tele_start_friendly"),var_09,"tag_origin",param_00.team); wait(3); var_09 delete(); return; } var_0A = spawn("script_model",var_03); var_0A.angles = var_07; var_0A setmodel("tag_origin"); var_0A method_8429(param_00); scripts\common\utility::func_136F7(); foreach(var_0C in level.players) { var_0A method_8429(var_0C); } playfxontag(scripts\common\utility::getfx("vfx_tele_start_friendly"),var_0A,"tag_origin"); wait(3); var_0A delete(); } //Function Number: 104 func_DDF3() { level endon("game_ended"); self.var_222 endon("disconnect"); self.var_5726 = 0; var_00 = self.origin; for(;;) { var_01 = scripts\common\utility::waittill_any_timeout_1(0.15,"death","missile_stuck"); if(!isdefined(self)) { break; } var_02 = distance(var_00,self.origin); self.var_5726 = self.var_5726 + var_02; var_00 = self.origin; if(var_01 != "timeout") { break; } } } //Function Number: 105 func_11820(param_00,param_01) { } //Function Number: 106 func_11818(param_00,param_01,param_02) { param_01 playsound("biospike_explode"); playfx(scripts\common\utility::getfx("throwingknifec4_explode"),param_00.origin); param_00 radiusdamage(param_00.origin,180,1200,600,param_02,"MOD_EXPLOSIVE",param_00.var_13C2E); param_00 thread func_858A(); param_00 notify("explode",param_00.origin); param_00 delete(); } //Function Number: 107 func_11826(param_00,param_01) { param_01 endon("missile_stuck"); param_01 endon("death"); param_00 scripts\common\utility::waittill_any_3("death","disconnect"); param_01.var_A708 = 1; } //Function Number: 108 func_139D3() { thread func_636E(); self endon("end_explode"); self waittill("explode",var_00); func_11195(var_00,self.var_222); } //Function Number: 109 func_11195(param_00,param_01) { var_02 = scripts\cp\_agent_utils::func_7DB0("axis"); var_03 = scripts\common\utility::func_782F(param_00,var_02,undefined,24,256); foreach(var_05 in var_03) { if(!var_05 scripts\cp\_utility::agentisfnfimmune()) { var_05 thread func_75FA(var_05,param_01); } } } //Function Number: 110 func_75FA(param_00,param_01) { param_00 endon("death"); if(isdefined(param_00.var_11190)) { if(gettime() > param_00.var_11190) { if(param_00 lib_0F74::func_9D9E()) { param_00.var_EF64 = 1; param_00.var_180 = 1; param_00 method_82EF(param_00.origin); } param_00.allowpain = 1; param_00.var_11190 = gettime() + 1000; param_00.var_11196 = 1; } else { return; } } else { if(param_00 lib_0F74::func_9D9E()) { param_00.var_EF64 = 1; param_00.var_180 = 1; param_00 method_82EF(param_00.origin); } param_00.allowpain = 1; param_00.var_11190 = gettime() + 1000; param_00.var_11196 = 1; } param_00 dodamage(1,param_00.origin,param_01,param_01,"MOD_GRENADE_SPLASH","concussion_grenade_mp"); wait(1); if(param_00 lib_0F74::func_9D9E()) { param_00.var_EF64 = 0; param_00.var_180 = 0; } param_00.allowpain = 0; param_00.var_11196 = undefined; } //Function Number: 111 func_B780(param_00,param_01) { if(!isalive(self)) { param_00 delete(); return; } param_00 thread func_B77F(self,param_00.var_13C2E,param_01); } //Function Number: 112 func_B77F(param_00,param_01,param_02,param_03) { self.var_222 = param_00; self waittill("missile_stuck",var_04); if(!isdefined(param_00)) { return; } if(param_01 != "trip_mine_mp") { if(isdefined(var_04) && isdefined(var_04.var_222)) { if(isdefined(param_03)) { self.var_222 [[ param_03 ]](self); } self delete(); return; } } var_05 = bullettrace(self.origin + (0,0,4),self.origin - (0,0,4),0,self); var_06 = var_05["position"]; if(var_05["fraction"] == 1) { var_06 = getgroundposition(self.origin,12,0,32); var_05["normal"] = var_05["normal"] * -1; } var_07 = vectornormalize(var_05["normal"]); var_08 = vectortoangles(var_07); var_08 = var_08 + (90,0,0); var_09 = [[ param_02 ]](var_06,param_00,param_01,var_08); var_09 thread func_B76A(); self delete(); } //Function Number: 113 func_B76A() { self endon("mine_triggered"); self endon("mine_selfdestruct"); self endon("death"); self setcandamage(1); self.maxhealth = 100000; self.health = self.maxhealth; var_00 = undefined; for(;;) { self waittill("damage",var_01,var_00,var_02,var_03,var_04,var_05,var_06,var_07,var_08,var_09); if(func_9C01(var_00,var_04)) { break; } if(!isplayer(var_00) && !isagent(var_00)) { continue; } if(isdefined(var_09) && isendstr(var_09,"betty_mp")) { continue; } if(!scripts\cp\_damage::func_7415(self.var_222,var_00)) { continue; } if(isdefined(var_09)) { switch(var_09) { case "concussion_grenade_mp": case "smoke_grenadejugg_mp": case "smoke_grenade_mp": case "flash_grenade_mp": break; } } break; } self notify("mine_destroyed"); if(isdefined(var_04) && issubstr(var_04,"MOD_GRENADE") || issubstr(var_04,"MOD_EXPLOSIVE")) { self.var_13908 = 1; } if(isdefined(var_08) && var_08 & level.var_92C4) { self.var_1390E = 1; } self.var_1390B = 1; if(isdefined(var_00)) { self.var_4D3F = var_00; } if(isplayer(var_00)) { var_00 scripts\cp\_damage::func_12E84("bouncing_betty"); } self notify("detonateExplosive",var_00); } //Function Number: 114 func_9C01(param_00,param_01) { if(!isdefined(param_00) || !isdefined(param_00.classname)) { return 0; } return param_00.classname == "scriptable" && param_01 == "MOD_EXPLOSIVE"; } //Function Number: 115 func_402D(param_00) { if(!isalive(self)) { param_00 delete(); return; } param_00 hide(); param_00 scripts\common\utility::waittill_any_timeout_1(0.05,"missile_stuck"); if(!isdefined(self) || !isalive(self)) { param_00 delete(); return; } var_01 = 60; var_02 = (0,0,4); var_03 = distancesquared(self.origin,param_00.origin); var_04 = distancesquared(self geteye(),param_00.origin); var_03 = var_03 + 600; var_05 = param_00 getlinkedparent(); if(isdefined(var_05)) { param_00 unlink(); } if(var_03 < var_04) { if(var_01 * var_01 < distancesquared(param_00.origin,self.origin)) { var_06 = bullettrace(self.origin,self.origin - (0,0,var_01),0,self); if(var_06["fraction"] == 1) { param_00 delete(); self setweaponammostock(param_00.var_13C2E,self getweaponammostock(param_00.var_13C2E) + 1); return; } else { param_00.origin = var_06["position"]; var_05 = var_06["entity"]; } } else { } } else if(var_01 * var_01 < distancesquared(param_00.origin,self geteye())) { var_06 = bullettrace(self.origin,self.origin - (0,0,var_01),0,self); if(var_06["fraction"] == 1) { param_00 delete(); self setweaponammostock(param_00.var_13C2E,self getweaponammostock(param_00.var_13C2E) + 1); return; } else { param_00.origin = var_06["position"]; var_05 = var_06["entity"]; } } else { var_02 = (0,0,-5); param_00.angles = param_00.angles + (0,180,0); } param_00.angles = param_00.angles * (0,1,1); param_00.origin = param_00.origin + var_02; param_00 func_69FF(var_05); param_00 show(); func_C54E(param_00); param_00 thread func_C4F4(); param_00 thread func_334A(); param_00 thread func_4028(var_05); self.var_3C64 = undefined; level thread func_B9CA(self,param_00); } //Function Number: 116 func_4028(param_00) { self endon("death"); var_01 = spawn("trigger_radius",self.origin + (0,0,0 - level.var_4027),0,level.var_4027,level.var_4027 * 2); if(isdefined(param_00)) { var_01 enablelinkto(); var_01 linkto(param_00); } thread func_51BF(var_01); for(;;) { var_01 waittill("trigger",var_02); if(getdvarint("scr_claymoredebug") != 1) { if(isdefined(self.var_222)) { if(var_02 == self.var_222) { continue; } if(isdefined(var_02.var_222) && var_02.var_222 == self.var_222) { continue; } } if(!scripts\cp\_damage::func_7415(self.var_222,var_02,0)) { continue; } } if(lengthsquared(var_02 method_8123()) < 10) { continue; } var_03 = abs(var_02.origin[2] - self.origin[2]); if(var_03 > 128) { continue; } if(!var_02 func_FFB9(self)) { continue; } if(var_02 method_808F(self.origin,self) > 0) { break; } } self playsound("claymore_activated"); func_6A08(var_02,level.var_4024,"claymore"); self notify("detonateExplosive"); } //Function Number: 117 func_6A08(param_00,param_01,param_02) { if(isplayer(param_00) && param_00 scripts\cp\_utility::_hasperk("specialty_delaymine")) { param_00 notify("triggeredExpl",param_02); param_01 = level.var_5113; } wait(param_01); } //Function Number: 118 func_FFB9(param_00) { if(isdefined(param_00.var_55BA)) { return 0; } var_01 = self.origin + (0,0,32); var_02 = var_01 - param_00.origin; var_03 = anglestoforward(param_00.angles); var_04 = vectordot(var_02,var_03); if(var_04 < level.var_4025) { return 0; } var_02 = vectornormalize(var_02); var_05 = vectordot(var_02,var_03); return var_05 > level.var_4023; } //Function Number: 119 func_51BF(param_00) { self waittill("death"); wait(0.05); if(isdefined(param_00)) { if(isdefined(param_00.trigger)) { param_00.trigger delete(); } param_00 delete(); } } //Function Number: 120 func_334A() { self endon("death"); for(;;) { self waittill("emp_damage",var_00,var_01); func_66A9(); self.var_55BA = 1; self notify("disabled"); wait(var_01); self.var_55BA = undefined; self notify("enabled"); } } //Function Number: 121 func_66A9() { playfxontag(scripts\common\utility::getfx("emp_stun"),self,"tag_origin"); } //Function Number: 122 func_B2A3() { self notify("equipmentWatchUse"); self.trigger delete(); } //Function Number: 123 func_B2A2(param_00) { scripts\cp\_utility::func_B268(self.var_222.team); if(!isdefined(param_00) || !param_00) { self method_81F0(); } } //Function Number: 124 func_13B48() { level endon("smokeTimesUp"); var_00 = self.var_222; var_00 endon("disconnect"); self waittill("explode",var_01); var_02 = 22500; var_03 = 12; var_04 = spawn("script_model",var_01); var_04.origin = var_01 + (0,0,56); var_04 method_81F1("allies",1); var_04.health = 100000; var_04.maxhealth = 100000; var_04.var_33F = 10000; var_04 method_834E("players"); level thread func_13718(12,22500,var_01,var_04); for(;;) { if(!isdefined(var_00)) { break; } var_05 = scripts\cp\_agent_utils::func_7DB0("axis"); foreach(var_07 in var_05) { if(var_07.var_1096F == "alien") { continue; } if(isdefined(var_07.var_10376)) { continue; } var_08 = distance2dsquared(var_01,var_07.origin); if(var_08 < 90000) { var_07 thread func_11548(var_04,22500); } } foreach(var_0B in level.players) { if(!isdefined(var_0B)) { continue; } var_0C = distance2dsquared(var_01,var_0B.origin); if(var_0C < 22500) { var_0B.var_9903 = var_00; var_0B method_834E("phased_players"); continue; } var_0B.var_9903 = undefined; var_0B method_834E("players"); } wait(0.05); } } //Function Number: 125 func_11548(param_00,param_01) { scripts\cp\_agent_utils::func_18F3(param_00.origin,sqrt(param_01),"critical"); if(!scripts\cp\_agent_utils::func_9B53(self)) { self getenemyinfo(param_00); self method_8051(param_00); scripts\cp\_agent_utils::func_18F3(param_00.origin,8,"hunt"); } self.var_10376 = 1; level waittill("smokeTimesUp"); if(!scripts\cp\_agent_utils::func_9B53(self)) { self method_8027(); } scripts\cp\_agent_utils::func_18F3(self.origin,8,"hunt"); self.var_10376 = undefined; } //Function Number: 126 func_13718(param_00,param_01,param_02,param_03) { scripts\cp\_hostmigration::func_13708(param_00); level notify("smokeTimesUp"); waittillframeend; foreach(var_05 in level.players) { if(isdefined(var_05)) { var_05.var_9903 = undefined; var_05 method_834E("players"); } } param_03 delete(); } //Function Number: 127 func_3350(param_00) { if(!scripts\cp\_utility::func_9F19(self)) { param_00 delete(); return; } self notify("c4_update",0); param_00 thread func_C4F4(); thread func_139C5(); thread func_139C4(); thread func_139C3(); param_00 method_831F(self); param_00.var_1604 = 0; func_C54E(param_00,"power_c4"); var_01 = level.var_13C7D["c4_zm"]; param_00 thread func_57EB("tag_fx",var_01.var_B760["friendly"],var_01.var_B760["enemy"]); param_00 thread func_3337(); param_00 thread func_3341(); param_00 thread func_139C7(); level thread func_B9CA(self,param_00); } //Function Number: 128 func_139C6() { self.var_222 endon("disconnect"); var_00 = self.var_222; var_01 = scripts\common\utility::spawn_tag_origin(self.origin,self.angles); var_01 linkto(self); thread func_636E(); self endon("end_explode"); self waittill("explode",var_02); thread func_334C(var_02,var_00,var_01); } //Function Number: 129 func_334C(param_00,param_01,param_02) { param_01 endon("disconnect"); wait(0.5); param_02 radiusdamage(param_00,256,1200,600,param_01,"MOD_EXPLOSIVE","c4_zm"); thread func_3337(); } //Function Number: 130 func_E24B() { wait(0.05); level.var_334B = 0; } //Function Number: 131 func_3341() { self endon("death"); self waittill("missile_stuck",var_00); wait(0.05); self notify("activated"); self.var_1604 = 1; } //Function Number: 132 func_139C7() { self endon("death"); self waittill("missile_stuck",var_00); self method_8317(1); self.var_334F = 1; func_69FF(var_00); } //Function Number: 133 func_C54E(param_00,param_01,param_02) { if(self.var_CC4C.size) { self.var_CC4C = scripts\common\utility::func_22BC(self.var_CC4C); if(self.var_CC4C.size >= level.var_B4BA) { if(scripts\common\utility::istrue(param_02)) { self.var_CC4C[0] notify("detonateExplosive"); } else { self.var_CC4C[0] func_51B5(); } } } self.var_CC4C[self.var_CC4C.size] = param_00; var_03 = param_00 getentitynumber(); level.var_B779[var_03] = param_00; level notify("mine_planted"); } //Function Number: 134 func_139C3(param_00) { self notify("watchC4AltDetonate"); self endon("watchC4AltDetonate"); self endon("death"); self endon("disconnect"); self endon("detonated"); level endon("game_ended"); var_01 = 0; for(;;) { if(self usebuttonpressed()) { var_01 = 0; while(self usebuttonpressed()) { var_01 = var_01 + 0.05; wait(0.05); } if(var_01 >= 0.5) { continue; } var_01 = 0; while(!self usebuttonpressed() && var_01 < 0.5) { var_01 = var_01 + 0.05; wait(0.05); } if(var_01 >= 0.5) { continue; } if(!self.var_CC4C.size) { return; } if(!lib_0D12::func_9DDF(self)) { self notify("alt_detonate"); } } wait(0.05); } } //Function Number: 135 func_139C4() { self notify("watchC4AltDetonation"); self endon("watchC4AltDetonation"); self endon("death"); self endon("disconnect"); for(;;) { self waittill("alt_detonate"); var_00 = self getcurrentweapon(); if(var_00 != "c4_zm") { func_3349(); } } } //Function Number: 136 func_139C5() { self notify("watchC4Detonation"); self endon("watchC4Detonation"); self endon("death"); self endon("disconnect"); for(;;) { self waittillmatch("c4_zm","detonate"); func_3349(); } } //Function Number: 137 func_3349() { foreach(var_01 in self.var_CC4C) { if(isdefined(var_01) && var_01.var_13C2E == "c4_zm") { var_01 thread func_1369A(0.1); scripts\common\utility::func_22A9(self.var_CC4C,var_01); } } self notify("c4_update",0); waittillframeend; self notify("detonated"); } //Function Number: 138 func_1369A(param_00) { self endon("death"); wait(param_00); func_1382F(); self notify("detonateExplosive"); } //Function Number: 139 func_1382F() { if(!isdefined(self.var_55BA)) { return; } self waittill("enabled"); } //Function Number: 140 func_42DE() { var_00 = self.var_C731; var_00 endon("disconnect"); thread func_C836(var_00); var_01 = []; for(var_02 = 0;var_02 < 4;var_02++) { var_01[var_02] = 0.2; } var_03 = 0; foreach(var_05 in var_01) { var_03 = var_03 + var_05; } var_07 = spawn("script_model",self.origin); var_07 linkto(self); var_07 setmodel("tag_origin"); var_07 setscriptmoverkillcam("explosive"); var_07 thread func_4E3D(self,var_03 + 5); var_07 thread func_C836(self.var_222); var_07.var_117F3 = self.var_117F3; var_08 = var_00 scripts\cp\_utility::func_1302("cluster_grenade_indicator_mp",self.origin,(0,0,0)); var_08 linkto(self); var_08 thread func_4E3D(self,var_03); var_08 thread func_C836(self.var_222); thread scripts\cp\_utility::func_C15A("death","end_explode"); self endon("end_explode"); self waittill("explode",var_09); thread func_42DA(var_09,var_01,var_00,var_07); } //Function Number: 141 func_42DA(param_00,param_01,param_02,param_03) { param_02 endon("disconnect"); var_04 = scripts\common\trace::func_48BC(0,1,1,0,1,0,0); var_05 = 0; var_06 = param_00 + (0,0,3); var_07 = var_06 + (0,0,-5); var_08 = function_0287(var_06,var_07,var_04,undefined,0,"physicsquery_closest"); if(isdefined(var_08) && var_08.size > 0) { var_05 = 1; } var_09 = scripts\common\utility::func_116D7(var_05,(0,0,32),(0,0,2)); var_0A = param_00 + var_09; var_0B = randomint(90) - 45; var_04 = scripts\common\trace::func_48BC(0,1,1,0,1,0,0); for(var_0C = 0;var_0C < 4;var_0C++) { param_03.var_FC6A = scripts\common\utility::func_116D7(var_0C == 0,1,undefined); param_03 radiusdamage(param_00,256,800,400,param_02,"MOD_EXPLOSIVE","cluster_grenade_zm"); var_0D = scripts\common\utility::func_116D7(var_0C < 4,90 * var_0C + var_0B,randomint(360)); var_0E = scripts\common\utility::func_116D7(var_05,110,90); var_0F = scripts\common\utility::func_116D7(var_05,12,45); var_10 = var_0E + randomint(var_0F * 2) - var_0F; var_11 = randomint(60) + 30; var_12 = cos(var_0D) * sin(var_10); var_13 = sin(var_0D) * sin(var_10); var_14 = cos(var_10); var_15 = (var_12,var_13,var_14) * var_11; var_06 = var_0A; var_07 = var_0A + var_15; var_08 = function_0287(var_06,var_07,var_04,undefined,0,"physicsquery_closest"); if(isdefined(var_08) && var_08.size > 0) { var_07 = var_08[0]["position"]; } playfx(scripts\common\utility::getfx("clusterGrenade_explode"),var_07); switch(var_0C) { case 0: playsoundatpos(var_07,"frag_grenade_explode"); break; case 3: playsoundatpos(var_07,"cluster_explode_end"); break; default: playsoundatpos(var_07,"cluster_explode_mid"); break; } wait(param_01[var_0C]); } } //Function Number: 142 func_4E3D(param_00,param_01) { self endon("death"); param_00 waittill("death"); wait(param_01); self delete(); } //Function Number: 143 func_C836(param_00) { self endon("death"); param_00 waittill("disconnect"); self delete(); } //Function Number: 144 func_F21A(param_00) { if(!isdefined(param_00)) { return; } if(!isdefined(param_00.var_13C2E)) { return; } if(!issubstr(param_00.var_13C2E,"semtex") && param_00.var_13C2E != "iw6_mk32_mp") { return; } param_00.var_C731 = self; param_00 waittill("missile_stuck",var_01); param_00 thread func_858A(); param_00 func_69FF(undefined); } //Function Number: 145 func_DFC7(param_00,param_01,param_02) { if(!isdefined(param_00) && !isdefined(param_01)) { return; } var_03 = []; var_04 = undefined; var_05 = undefined; if(isdefined(param_02)) { var_03[var_03.size] = param_02; } else { var_03 = param_01 getweaponslistall(); } foreach(var_07 in var_03) { if(param_01 func_8BD1(var_07,param_00)) { var_08 = scripts\cp\_utility::func_80D8(var_07); var_09 = getweaponbasename(var_07); param_01 takeweapon(var_07); var_0A = function_00E3(var_07); foreach(var_0C in var_0A) { if(issubstr(var_0C,param_00)) { var_0A = scripts\common\utility::func_22A9(var_0A,var_0C); break; } } if(isdefined(level.var_31CF)) { var_05 = param_01 [[ level.var_31CF ]](var_09,undefined,var_0A); } if(isdefined(var_05)) { var_03 = self getweaponslistprimaries(); foreach(param_02 in var_03) { if(issubstr(param_02,var_05)) { if(scripts\cp\_utility::func_9D3E(param_02)) { var_09 = getweaponbasename(param_02); if(isdefined(level.mode_weapons_allowed) && scripts\common\utility::func_2286(level.mode_weapons_allowed,var_09)) { var_05 = "alt_" + var_05; break; } } } } param_01 scripts\cp\_utility::func_12C6(var_05,-1,-1,1); param_01 switchtoweapon(var_05); } } } } //Function Number: 146 func_8BD1(param_00,param_01) { var_02 = strtok(param_00,"+"); for(var_03 = 0;var_03 < var_02.size;var_03++) { if(var_02[var_03] == param_01) { return 1; } if(issubstr(var_02[var_03],param_01)) { return 1; } } return 0; } //Function Number: 147 func_7DDC() { var_00 = []; var_01 = ["mp/attachmentTable.csv","cp/zombies/zombie_attachmenttable.csv"]; foreach(var_03 in var_01) { var_04 = 0; for(var_05 = tablelookup(var_03,0,var_04,5);var_05 != "";var_05 = tablelookup(var_03,0,var_04,5)) { if(!scripts\common\utility::func_2286(var_00,var_05)) { var_00[var_00.size] = var_05; } var_04++; } } return var_00; } //Function Number: 148 func_7DCF() { var_00 = []; var_01 = 0; var_02 = tablelookup("cp/zombies/zombie_attachmenttable.csv",0,var_01,5); while(var_02 != "") { if(!scripts\common\utility::func_2286(var_00,var_02)) { var_00[var_00.size] = var_02; } var_01++; var_02 = tablelookup("cp/zombies/zombie_attachmenttable.csv",0,var_01,5); } return var_00; } //Function Number: 149 func_8BBB(param_00) { var_01 = self getweaponslistall(); foreach(var_03 in var_01) { var_04 = scripts\cp\_utility::func_80D8(param_00); var_05 = scripts\cp\_utility::func_80D8(var_03); if(var_04 == var_05) { return 1; } } return 0; } //Function Number: 150 func_48A4(param_00,param_01,param_02) { level.var_2497 = []; level.var_2498 = []; foreach(var_04 in param_00) { var_05 = tablelookup(param_01,4,var_04,5); if(param_02 == "zombie") { if(!isdefined(var_05) || var_05 == "") { var_05 = tablelookup("cp/zombies/zombie_attachmenttable.csv",4,var_04,5); } } if(var_04 == var_05) { continue; } level.var_2497[var_04] = var_05; var_06 = tablelookup("mp/attachmenttable.csv",4,var_04,13); if(var_06 != "") { level.var_2498[var_04] = var_06; level.var_248B[var_06] = 1; } } } //Function Number: 151 func_31D5() { var_00 = ["mp/attachmentTable.csv","cp/zombies/zombie_attachmenttable.csv"]; var_01 = ["mp/attachmentmap.csv","cp/zombies/zombie_attachmentmap.csv"]; level.var_2497 = []; level.var_2498 = []; level.var_248B = []; level.var_2491 = []; level.var_2493 = []; level.var_2492 = []; foreach(var_24, var_03 in var_00) { var_04 = func_7DDF(var_03); foreach(var_06 in var_04) { var_07 = tablelookup(var_03,4,var_06,5); if(var_06 != var_07) { level.var_2497[var_06] = var_07; } var_08 = tablelookup(var_03,4,var_06,13); if(var_08 != "") { level.var_2498[var_06] = var_08; level.var_248B[var_08] = 1; } } foreach(var_0B in var_01) { var_0C = []; var_0D = 1; for(var_0E = tablelookupbyrow(var_0B,var_0D,0);var_0E != "";var_0E = tablelookupbyrow(var_0B,var_0D,0)) { var_0C[var_0C.size] = var_0E; var_0D++; } var_0F = []; var_10 = 1; for(var_11 = tablelookupbyrow(var_0B,0,var_10);var_11 != "";var_11 = tablelookupbyrow(var_0B,0,var_10)) { var_0F[var_11] = var_10; var_10++; } foreach(var_0E in var_0C) { foreach(var_16, var_14 in var_0F) { var_15 = tablelookup(var_0B,0,var_0E,var_14); if(var_15 == "") { continue; } if(!isdefined(level.var_2492[var_0E])) { level.var_2492[var_0E] = []; } level.var_2492[var_0E][var_16] = var_15; } } foreach(var_19 in var_04) { var_1A = tablelookup(var_03,4,var_19,12); if(var_1A == "") { continue; } level.var_2491[var_19] = var_1A; } var_1C = 1; var_1D = tablelookupbyrow("mp/attachmentcombos.csv",var_1C,0); while(var_1D != "") { var_1E = 1; var_1F = tablelookupbyrow("mp/attachmentcombos.csv",0,var_1E); while(var_1F != "") { if(var_1D != var_1F) { var_20 = tablelookupbyrow("mp/attachmentcombos.csv",var_1C,var_1E); var_21 = scripts\common\utility::func_1D3A([var_1D,var_1F]); var_22 = var_21[0] + "_" + var_21[1]; if(var_20 == "no" && !isdefined(level.var_2493[var_22])) { level.var_2493[var_22] = 1; } } var_1E++; var_1F = tablelookupbyrow("mp/attachmentcombos.csv",0,var_1E); } var_1C++; var_1D = tablelookupbyrow("mp/attachmentcombos.csv",var_1C,0); } } } } //Function Number: 152 func_4980(param_00,param_01,param_02,param_03) { if(param_00 == "zombie") { foreach(var_05 in param_01) { foreach(var_09, var_07 in param_02) { var_08 = tablelookup(param_03,0,var_05,var_07); if(var_08 == "") { continue; } if(!isdefined(level.var_2492[var_05])) { level.var_2492[var_05] = []; } if(var_08 == "none") { level.var_2492[var_05][var_09] = undefined; continue; } level.var_2492[var_05][var_09] = var_08; } } } } //Function Number: 153 func_7DDF(param_00) { var_01 = getdvar("g_gametype"); var_02 = []; var_03 = 0; for(var_04 = tablelookup(param_00,0,var_03,4);var_04 != "";var_04 = tablelookup(param_00,0,var_03,4)) { var_02[var_02.size] = var_04; var_03++; } return var_02; } //Function Number: 154 func_858A(param_00) { self notify("grenade_earthQuake"); self endon("grenade_earthQuake"); thread func_636E(); self endon("end_explode"); var_01 = undefined; if(!isdefined(param_00) || param_00) { self waittill("explode",var_01); } else { var_01 = self.origin; } playrumbleonposition("grenade_rumble",var_01); earthquake(0.5,0.75,var_01,800); foreach(var_03 in level.players) { if(var_03 scripts\cp\_utility::func_9FC6()) { continue; } if(distancesquared(var_01,var_03.origin) > 360000) { continue; } if(var_03 method_808F(var_01)) { var_03 thread func_54F0(var_01); } var_03 setclientomnvar("ui_hud_shake",1); } } //Function Number: 155 func_3337() { thread func_636E(); self endon("end_explode"); self waittill("explode",var_00); playrumbleonposition("grenade_rumble",var_00); earthquake(0.4,0.75,var_00,512); foreach(var_02 in level.players) { if(var_02 scripts\cp\_utility::func_9FC6()) { continue; } if(distance(var_00,var_02.origin) > 512) { continue; } if(var_02 method_808F(var_00)) { var_02 thread func_54F0(var_00); } var_02 setclientomnvar("ui_hud_shake",1); } } //Function Number: 156 func_636E() { self waittill("death"); waittillframeend; self notify("end_explode"); } //Function Number: 157 func_54F0(param_00) { self notify("dirtEffect"); self endon("dirtEffect"); self endon("disconnect"); if(!scripts\cp\_utility::func_9F19(self)) { return; } var_01 = vectornormalize(anglestoforward(self.angles)); var_02 = vectornormalize(anglestoright(self.angles)); var_03 = vectornormalize(param_00 - self.origin); var_04 = vectordot(var_03,var_01); var_05 = vectordot(var_03,var_02); var_06 = ["death","damage"]; if(var_04 > 0 && var_04 > 0.5 && self getcurrentweapon() != "iw6_riotshield_mp") { scripts\common\utility::func_1372E(var_06,2); return; } if(abs(var_04) < 0.866) { if(var_05 > 0) { scripts\common\utility::func_1372E(var_06,2); return; } scripts\common\utility::func_1372E(var_06,2); return; } } //Function Number: 158 func_FC6A(param_00,param_01) { if(func_9DFA()) { return; } if(param_00 == "MOD_EXPLOSIVE" || param_00 == "MOD_GRENADE" || param_00 == "MOD_GRENADE_SPLASH" || param_00 == "MOD_PROJECTILE" || param_00 == "MOD_PROJECTILE_SPLASH") { if(param_01 > 10) { if(isdefined(self.var_FC6B) && self.var_FC6B) { self shellshock("frag_grenade_mp",self.var_FC6B); return; } self shellshock("frag_grenade_mp",0.5); return; } } } //Function Number: 159 func_9DFA() { return isdefined(self.var_6ECA) && gettime() < self.var_6ECA; } //Function Number: 160 func_1377A() { for(;;) { self waittill("grenade_fire",var_00,var_01,var_02); if(isdefined(self.var_11817) && var_01 != self.var_11817) { continue; } if(isdefined(var_00)) { if(!isdefined(var_00.var_13C2E)) { var_00.var_13C2E = var_01; } if(!isdefined(var_00.var_222)) { var_00.var_222 = self; } if(!isdefined(var_00.team)) { var_00.team = self.team; } if(!isdefined(var_00.var_118A2) && isdefined(self.var_11817)) { var_00.var_118A2 = scripts\cp\_utility::func_E76A(4 * var_02); } } if(!scripts\cp\_utility::func_9F19(self) && !isdefined(self.var_1182A)) { self notify("grenade_fire_dead",var_00,var_01); self.var_1182A = 1; } return var_00; } } //Function Number: 161 func_3862(param_00,param_01) { if(isdefined(param_01)) { var_02 = param_01; } else { var_02 = self getcurrentweapon(); } var_03 = getweaponbasename(var_02); var_04 = scripts\cp\_utility::func_4626(var_03); var_05 = func_7BCA(var_04,var_03,param_00); if(!var_05) { return 0; } return 1; } //Function Number: 162 func_169D(param_00,param_01,param_02,param_03) { if(isdefined(param_01)) { var_04 = param_01; } else { var_04 = scripts\cp\_utility::getvalidtakeweapon(); } var_05 = getweaponbasename(var_04); var_06 = 0; var_07 = function_00E3(var_04); var_08 = scripts\cp\_utility::getcurrentcamoname(var_04); var_09 = func_E469(var_04,param_00,var_07,undefined,var_08); if(!isdefined(var_09) || isdefined(var_09) && var_09 == "none") { return 0; } var_0A = scripts\cp\_utility::func_9D3E(param_01); if(scripts\cp\_utility::func_13C90(var_09,"xmags")) { var_06 = 1; } if(isdefined(param_00)) { if(!issubstr(param_00,"pap")) { var_0B = self getweaponammoclip(var_04); var_0C = self getweaponammostock(var_04); if(issubstr(var_09,"akimbo")) { var_0D = self getweaponammoclip(var_04,"left"); } else { var_0D = undefined; } self takeweapon(var_04); scripts\cp\_utility::func_12C6(var_09,undefined,undefined,1); if(scripts\cp\_utility::func_13C90(var_09,"xmags") && !var_06) { var_0B = weaponclipsize(var_09); } self setweaponammoclip(var_09,var_0B); self setweaponammostock(var_09,var_0C); if(isdefined(var_0D)) { self setweaponammoclip(var_09,var_0D,"left"); } } else { if(issubstr(var_09,"katana") || issubstr(var_09,"nunchucks")) { } self takeweapon(var_04); scripts\cp\_utility::func_12C6(var_09,undefined,undefined,0); self givemaxammo(var_09); } } self playlocalsound("weap_raise_large_plr"); var_0E = self getweaponslistprimaries(); foreach(param_01 in var_0E) { if(issubstr(param_01,var_09)) { if(scripts\cp\_utility::func_9D3E(param_01)) { var_10 = getweaponbasename(param_01); if((isdefined(level.mode_weapons_allowed) && scripts\common\utility::func_2286(level.mode_weapons_allowed,var_10)) || var_0A) { var_09 = "alt_" + var_09; break; } } } } if(scripts\common\utility::istrue(param_03)) { return 1; } if(scripts\common\utility::istrue(param_02)) { self method_83B6(var_09); } else { self switchtoweapon(var_09); } return 1; } //Function Number: 163 func_9E02(param_00) { if(!isdefined(param_00)) { return 0; } var_01 = getweaponbasename(param_00); if(isdefined(var_01)) { if(var_01 == "iw7_forgefreeze_zm" || var_01 == "iw7_forgefreeze_zm_pap1" || var_01 == "iw7_forgefreeze_zm_pap2" || var_01 == "zfreeze_semtex_mp") { if(scripts\cp\_utility::func_9D3E(param_00)) { return 0; } else { return 1; } } } return 0; } //Function Number: 164 func_9D3D(param_00) { if(!isdefined(param_00)) { return 0; } var_01 = getweaponbasename(param_00); if(isdefined(var_01)) { if(var_01 == "iw7_forgefreeze_zm" || var_01 == "iw7_forgefreeze_zm_pap1" || var_01 == "iw7_forgefreeze_zm_pap2" || var_01 == "zfreeze_semtex_mp") { if(scripts\cp\_utility::func_9D3E(param_00)) { return 1; } else { return 0; } } } return 0; } //Function Number: 165 func_9F79(param_00) { var_01 = getweaponbasename(param_00); if(!isdefined(var_01)) { return 0; } return var_01 == "iw7_steeldragon_zm"; } //Function Number: 166 func_9C62(param_00) { if(!isdefined(param_00)) { return 0; } if(param_00 == "doubletap") { return 1; } return 0; } //Function Number: 167 func_9B6B(param_00) { if(!isdefined(param_00)) { return 0; } if(issubstr(param_00,"ark")) { return 1; } if(issubstr(param_00,"arcane")) { return 1; } return 0; } //Function Number: 168 func_9C43(param_00) { if(!isdefined(param_00)) { return 0; } if(issubstr(param_00,"mod")) { return 1; } return 0; } //Function Number: 169 func_9BB4(param_00,param_01) { var_02 = scripts\cp\_utility::func_13C76(param_01); if(!isdefined(var_02) || var_02.size < 1) { return 0; } foreach(var_04 in var_02) { if(param_00 == var_04) { return 1; } } return 0; } //Function Number: 170 func_9C5E(param_00) { if(!isdefined(param_00)) { return 0; } if(issubstr(param_00,"pap")) { return 1; } return 0; } //Function Number: 171 func_7BCA(param_00,param_01,param_02) { if(!isdefined(param_00)) { return 0; } if(!isdefined(param_01)) { return 0; } if(!isdefined(param_02)) { return 0; } var_03 = []; var_04 = scripts\cp\_utility::func_7DF7(param_01); if(isdefined(level.var_2492[var_04])) { if(isdefined(level.var_2492[var_04][param_02])) { if(level.var_2492[var_04][param_02] != "none") { return 1; } else { return 0; } } } if(isdefined(level.var_2492[param_00])) { if(isdefined(level.var_2492[param_00][param_02])) { if(level.var_2492[param_00][param_02] != "none") { return 1; } else { return 0; } } } if(isdefined(level.var_2492[var_04])) { var_05 = getarraykeys(level.var_2492[var_04]); foreach(var_07 in var_05) { if(level.var_2492[var_04][var_07] == param_02) { if(level.var_2492[var_04][var_07] != "none") { return 1; } else { return 0; } } } } if(isdefined(level.var_2492[param_00])) { var_05 = getarraykeys(level.var_2492[param_00]); foreach(var_07 in var_05) { if(level.var_2492[param_00][var_07] == param_02) { if(level.var_2492[param_00][var_07] != "none") { return 1; } else { return 0; } } } } return 0; } //Function Number: 172 func_E469(param_00,param_01,param_02,param_03,param_04) { if(isdefined(param_00)) { var_05 = param_00; } else { var_05 = self getcurrentweapon(); } var_06 = getweaponbasename(var_05); var_07 = scripts\cp\_utility::func_7D72(self,var_05); var_08 = 0; var_09 = 0; var_0A = 0; var_0B = 0; var_0C = undefined; var_0D = []; var_0E = 7; var_0F = []; var_10 = 1; var_11 = []; var_12 = 1; var_13 = []; var_14 = 4; var_15 = []; var_16 = 1; var_17 = []; var_18 = 1; var_19 = []; var_1A = 15; var_1B = scripts\cp\_utility::func_4626(var_06); if(scripts\cp\_utility::func_13C90(var_05,"xmags")) { var_09 = 1; } var_1C = func_7BCA(var_1B,var_06,param_01); if(!var_1C && isdefined(param_01)) { if(!scripts\common\utility::istrue(param_03)) { scripts\cp\_utility::setlowermessage("cant_attach",&"COOP_PILLAGE_CANT_USE",3); } return undefined; } if(!isdefined(param_02)) { param_02 = function_00E3(var_05); } if(scripts\cp\_utility::has_zombie_perk("perk_machine_rat_a_tat")) { if(func_7BCA(var_1B,var_06,"doubletap")) { param_02[param_02.size] = "doubletap"; } } if(isdefined(param_01)) { if(weaponclass(param_00) == "spread") { if(issubstr(param_01,"arkyellow")) { foreach(var_1E in param_02) { if(issubstr(var_1E,"smart")) { param_02 = scripts\common\utility::func_22A9(param_02,var_1E); } } } } } param_02 = scripts\common\utility::func_22AF(param_02); param_02 = scripts\common\utility::func_22BC(param_02); if(param_02.size > 0 && param_02.size <= var_1A) { foreach(var_21 in param_02) { if(func_9C5E(var_21)) { if(var_11.size < var_12) { var_11[var_11.size] = var_21; var_19[var_19.size] = var_21; } else { continue; } continue; } if(func_9B6B(var_21)) { if(var_17.size < var_18) { var_17[var_17.size] = var_21; var_19[var_19.size] = var_21; } else { continue; } continue; } if(func_9C43(var_21)) { if(var_13.size < var_14) { var_13[var_13.size] = var_21; var_19[var_19.size] = var_21; } else { continue; } continue; } if(func_9BB4(var_21,scripts\cp\_utility::func_8234(var_06))) { if(var_15.size < var_16) { var_15[var_15.size] = var_21; var_19[var_19.size] = var_21; } else { continue; } continue; } if(func_9C62(var_21)) { if(var_0F.size < var_10) { var_0F[var_0F.size] = var_21; var_19[var_19.size] = var_21; } else { continue; } continue; } if(var_0D.size < var_0E) { var_0D[var_0D.size] = var_21; var_19[var_19.size] = var_21; continue; } continue; } } if(isdefined(param_01)) { var_23 = scripts\cp\_utility::func_2494(param_01); if(isdefined(var_23) && var_23 != "none") { for(var_24 = 0;var_24 < var_19.size;var_24++) { var_25 = scripts\cp\_utility::func_2494(var_19[var_24]); if(var_25 == var_23) { var_19[var_24] = param_01; var_08 = 1; break; } } } var_26 = scripts\cp\_utility::getattachmenttype(param_01); if(isdefined(var_26) && var_26 != "none") { if(!var_08) { if(func_9C5E(param_01)) { if(var_11.size < var_12) { var_11[var_11.size] = param_01; var_19[var_19.size] = param_01; } else { for(var_24 = 0;var_24 < var_19.size;var_24++) { var_27 = scripts\cp\_utility::getattachmenttype(var_19[var_24]); if(var_27 == var_26) { var_11[var_11.size] = param_01; var_19[var_24] = param_01; var_08 = 1; break; } } } } else if(func_9B6B(param_01)) { if(var_17.size < var_18) { var_17[var_17.size] = param_01; var_19[var_19.size] = param_01; } else { for(var_24 = 0;var_24 < var_19.size;var_24++) { var_27 = scripts\cp\_utility::getattachmenttype(var_19[var_24]); if(var_27 == var_26) { var_17[var_0F.size] = param_01; var_19[var_24] = param_01; var_08 = 1; break; } } } } else if(func_9C62(param_01)) { if(var_0F.size < var_10) { var_0F[var_0F.size] = param_01; var_19[var_19.size] = param_01; } else { for(var_24 = 0;var_24 < var_19.size;var_24++) { var_27 = scripts\cp\_utility::getattachmenttype(var_19[var_24]); if(var_27 == var_26) { var_0F[var_0F.size] = param_01; var_19[var_24] = param_01; var_08 = 1; break; } } } } else if(var_0D.size < var_0E) { var_0D[var_0D.size] = param_01; var_19[var_19.size] = param_01; } else { for(var_24 = 0;var_24 < var_19.size;var_24++) { var_27 = scripts\cp\_utility::getattachmenttype(var_19[var_24]); if(var_27 == var_26) { var_0D[var_0D.size] = param_01; var_19[var_24] = param_01; var_08 = 1; break; } } if(!var_08) { return undefined; } } } else if(func_9C62(param_01)) { var_11[var_11.size] = param_01; var_19[var_19.size] = param_01; } else if(func_9C5E(param_01)) { var_0F[var_0F.size] = param_01; var_19[var_19.size] = param_01; } else if(func_9B6B(param_01)) { var_17[var_17.size] = param_01; var_19[var_19.size] = param_01; } else { var_0D[var_0D.size] = param_01; var_19[var_19.size] = param_01; } } else if(isdefined(param_01)) { if(func_9C62(param_01)) { var_0F[var_0F.size] = param_01; var_19[var_19.size] = param_01; } else if(func_9C5E(param_01)) { var_11[var_11.size] = param_01; var_19[var_19.size] = param_01; } else if(func_9B6B(param_01)) { var_17[var_17.size] = param_01; var_19[var_19.size] = param_01; } else { var_0D[var_0D.size] = param_01; var_19[var_19.size] = param_01; } } } var_28 = scripts\cp\_utility::func_8234(var_06); var_29 = isdefined(self.var_13C00[scripts\cp\_utility::func_80D8(var_05)]); if(!isdefined(param_04) && var_29) { var_0A = scripts\cp\_utility::getweaponcamo(var_28); } else { var_0A = param_04; } if(var_29) { var_2A = 0; foreach(var_1E in var_19) { if(issubstr(var_1E,"cos_")) { var_2A = 1; var_0C = undefined; break; } } if(!var_2A) { var_0C = scripts\cp\_utility::getweaponcosmeticattachment(var_28); } var_0B = scripts\cp\_utility::getweaponreticle(var_28); var_2D = scripts\cp\_utility::getweaponpaintjobid(var_28); } else { var_0D = undefined; var_0C = undefined; var_2D = undefined; } foreach(var_1E in var_19) { if(issubstr(var_1E,"arcane") || issubstr(var_1E,"ark")) { foreach(var_30 in var_19) { if(var_1E == var_30) { continue; } if(issubstr(var_30,"cos_")) { var_19 = scripts\common\utility::func_22A9(var_19,var_30); } } var_0C = undefined; } } var_33 = scripts\cp\_utility::func_BD68(var_28,var_19,var_0A,var_0B,var_07,self getentitynumber(),self.var_41F0,var_2D,var_0C); if(isdefined(var_33)) { return var_33; } return var_05; } //Function Number: 173 func_7DE2(param_00,param_01) { var_02 = scripts\cp\_utility::func_8217(param_00); var_03 = []; foreach(var_05 in var_02) { var_06 = scripts\cp\_utility::getattachmenttype(var_05); if(isdefined(param_01) && scripts\cp\_utility::func_AD7F(param_01,var_05)) { continue; } if(!isdefined(var_03[var_06])) { var_03[var_06] = []; } var_07 = var_03[var_06]; var_07[var_07.size] = var_05; var_03[var_06] = var_07; } return var_03; } //Function Number: 174 func_7DDD() { var_00 = []; var_01 = ["mp/attachmentTable.csv","cp/zombies/zombie_attachmenttable.csv"]; foreach(var_03 in var_01) { var_04 = 0; for(var_05 = tablelookup(var_03,0,var_04,5);var_05 != "";var_05 = tablelookup(var_03,0,var_04,5)) { var_06 = tablelookup(var_03,0,var_04,2); if(var_06 != "none" && !scripts\common\utility::func_2286(var_00,var_05)) { var_00[var_00.size] = var_05; } var_04++; } } return var_00; } //Function Number: 175 func_8216(param_00) { var_01 = []; var_02 = scripts\cp\_utility::func_7DF7(param_00); var_03 = scripts\cp\_utility::func_4626(param_00); if(isdefined(level.var_2492[var_02])) { var_01 = scripts\common\utility::array_combine(var_01,level.var_2492[var_02]); } if(isdefined(level.var_2492[var_03])) { var_01 = scripts\common\utility::array_combine(var_01,level.var_2492[var_03]); } return var_01; } //Function Number: 176 func_9FED(param_00) { if(!isdefined(level.var_13CBF)) { level.var_13CBF = []; foreach(var_02 in level.var_13CA0) { level.var_13CBF[var_02] = 1; } } if(isdefined(level.var_13CBF[param_00])) { return 1; } return 0; } //Function Number: 177 func_FB18() { self endon("death"); self endon("disconnect"); self endon("unsetWeaponLaser"); self.var_CA6A = 0; var_00 = self getcurrentweapon(); for(;;) { func_FB1C(var_00); if(self.var_CA6A == 0) { self.var_CA6A = 1; func_6282(); } childthread func_FB19(); childthread func_FB1A(1); self.var_CA69 = undefined; self waittill("weapon_change",var_00); if(self.var_CA6A == 1) { self.var_CA6A = 0; func_561C(); } } } //Function Number: 178 func_FB1C(param_00) { for(;;) { param_00 = getweaponbasename(param_00); if(isdefined(param_00) && param_00 == "iw6_kac_mp" || param_00 == "iw6_arx160_mp") { break; } self waittill("weapon_change",param_00); } } //Function Number: 179 func_FB19() { self endon("weapon_change"); for(;;) { if(!isdefined(self.var_CA69) || self.var_CA69 == 0) { if(self method_822E() > 0.6) { if(self.var_CA6A == 1) { self.var_CA6A = 0; func_561C(); } } else if(self.var_CA6A == 0) { self.var_CA6A = 1; func_6282(); } } scripts\common\utility::func_136F7(); } } //Function Number: 180 func_FB1A(param_00) { self endon("weapon_change"); for(;;) { self waittill("weapon_switch_started"); childthread func_FB1B(param_00); } } //Function Number: 181 func_FB1B(param_00) { self notify("setWeaponLaser_onWeaponSwitchStart"); self endon("setWeaponLaser_onWeaponSwitchStart"); if(self.var_CA6A == 1) { self.var_CA69 = 1; self.var_CA6A = 0; func_561C(); } wait(param_00); self.var_CA69 = undefined; if(self.var_CA6A == 0 && self method_822E() <= 0.6) { self.var_CA6A = 1; func_6282(); } } //Function Number: 182 func_6282() { if(!isdefined(self.var_13C9E)) { self.var_13C9E = 0; } self.var_13C9E++; self method_81D9(); } //Function Number: 183 func_561C() { self.var_13C9E--; if(self.var_13C9E == 0) { self method_81D8(); self.var_13C9E = undefined; } } //Function Number: 184 func_C4F4(param_00) { self endon("death"); level endon("game_ended"); thread func_40F5(); self waittill("detonateExplosive"); if(isdefined(param_00)) { self.var_222 notify(param_00,1); } else { self.var_222 notify("powers_c4_used",1); } self method_8099(self.var_222); } //Function Number: 185 func_40F5() { self endon("deleted_equipment"); level endon("game_ended"); var_00 = self getentitynumber(); var_01 = self.var_A63A; var_02 = self.trigger; var_03 = self.var_F232; self waittill("death"); func_40F4(var_00,var_01,var_02,var_03); } //Function Number: 186 func_40F4(param_00,param_01,param_02,param_03) { if(isdefined(self.var_13C2E)) { if(self.var_13C2E == "c4_zm") { self.var_222 notify("c4_update",0); } else if(self.var_13C2E == "bouncingbetty_mp") { self.var_222 notify("bouncing_betty_update",0); } else if(self.var_13C2E == "sticky_mine_mp") { self.var_222 notify("sticky_mine_update",0); } else if(self.var_13C2E == "trip_mine_mp") { self.var_222 notify("trip_mine_update",0); } else if(self.var_13C2E == "cryo_grenade_mp") { self.var_222 notify("restart_cryo_grenade_cooldown",0); } } if(isdefined(param_00)) { level.var_B779[param_00] = undefined; } if(isdefined(param_01)) { param_01 delete(); } if(isdefined(param_02)) { param_02 delete(); } if(isdefined(param_03)) { param_03 delete(); } } //Function Number: 187 func_B9C6(param_00,param_01,param_02,param_03,param_04,param_05) { self endon("death"); level endon("game_ended"); if(!isdefined(param_05)) { param_05 = 0; } self setcandamage(1); self.health = 999999; self.maxhealth = param_00; self.var_E1 = 0; if(!isdefined(param_04)) { param_04 = 0; } for(var_06 = 1;var_06;var_06 = func_B9C7(var_07,var_08,var_09,var_0A,var_0B,var_0C,var_0D,var_0E,var_0F,var_10,param_01,param_02,param_03,param_04)) { self waittill("damage",var_07,var_08,var_09,var_0A,var_0B,var_0C,var_0D,var_0E,var_0F,var_10); if(param_05) { self playrumbleonentity("damage_light"); } if(isdefined(self.var_8DD9) && self.var_8DD9 == "littlebird") { if(!isdefined(self.var_2507)) { self.var_2507 = []; } var_11 = ""; if(isdefined(var_08) && isplayer(var_08)) { var_11 = var_08 scripts\cp\_utility::func_81EC(); } if(isdefined(self.var_2507[var_11])) { self.var_2507[var_11] = self.var_2507[var_11] + var_07; } else { self.var_2507[var_11] = var_07; } } } } //Function Number: 188 func_B9C7(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B,param_0C,param_0D) { if(!isdefined(self)) { return 0; } if(isdefined(param_01) && !scripts\cp\_utility::func_9E0E(param_01) && !isdefined(param_01.var_1C9F)) { return 1; } return 1; } //Function Number: 189 func_69FF(param_00,param_01) { var_02 = spawnstruct(); var_02.var_AD39 = param_00; var_02.var_4E53 = ::func_BD4F; var_02.var_6371 = "death"; if(!isdefined(param_01) || !param_01) { var_02.var_9B11 = ::scripts\cp\_movers::func_BD3C; } thread scripts\cp\_movers::func_892F(var_02); } //Function Number: 190 func_BD4F(param_00) { if(!isdefined(param_00.var_AA33) || !isdefined(param_00.var_AA33.var_5318) || param_00.var_AA33.var_5318) { self notify("detonateExplosive"); } } //Function Number: 191 func_B2A5() { if(scripts\cp\_utility::func_9F19(self.var_222)) { self method_831F(self.var_222); self.trigger = spawn("script_origin",self.origin + func_7EAA()); self.trigger.var_222 = self; thread func_66B5(self.var_222,1); } } //Function Number: 192 func_66B5(param_00,param_01) { self notify("equipmentWatchUse"); self endon("spawned_player"); self endon("disconnect"); self endon("equipmentWatchUse"); self.trigger setcursorhint("HINT_NOICON"); switch(self.var_13C2E) { case "c4_zm": self.trigger sethintstring(&"MP_PICKUP_C4"); break; case "claymore_mp": self.trigger sethintstring(&"MP_PICKUP_CLAYMORE"); break; case "bouncingbetty_mp": self.trigger sethintstring(&"MP_PICKUP_BOUNCING_BETTY"); break; case "proximity_explosive_mp": self.trigger sethintstring(&"MP_PICKUP_PROXIMITY_EXPLOSIVE"); break; case "mobile_radar_mp": self.trigger sethintstring(&"MP_PICKUP_MOBILE_RADAR"); break; case "ztransponder_mp": case "transponder_mp": self.trigger sethintstring(&"MP_PICKUP_TRANSPONDER"); break; case "sonic_sensor_mp": self.trigger sethintstring(&"MP_PICKUP_SONIC_SENSOR"); break; case "sticky_mine_mp": self.trigger sethintstring(&"MP_PICKUP_STICKY_MINE"); break; case "blackhole_grenade_zm": case "blackhole_grenade_mp": self.trigger sethintstring(&"MP_PICKUP_BLACKHOLE_GRENADE"); break; case "shard_ball_mp": self.trigger sethintstring(&"MP_PICKUP_SHARD_BALL"); break; case "cryo_grenade_mp": self.trigger sethintstring(&"MP_PICKUP_CRYO_MINE"); break; case "trip_mine_mp": self.trigger sethintstring(&"MP_PICKUP_TRIP_MINE"); break; case "arc_grenade_mine_mp": self.trigger sethintstring(&"MP_PICKUP_ARC_MINE"); break; } self.trigger scripts\cp\_utility::func_F838(param_00); self.trigger thread scripts\cp\_utility::notusableforjoiningplayers(param_00); if(isdefined(param_01) && param_01) { thread func_12F4D(); } for(;;) { self.trigger waittill("trigger",param_00); param_00 playlocalsound("scavenger_pack_pickup"); param_00 notify("scavenged_ammo",self.var_13C2E); param_00 setweaponammostock(self.var_13C2E,param_00 getweaponammostock(self.var_13C2E) + 1); func_51B5(); self notify("death"); } } //Function Number: 193 func_12F4D() { self endon("death"); for(;;) { if(isdefined(self) && isdefined(self.trigger)) { self.trigger.origin = self.origin + func_7EAA(); if(isdefined(self.var_2C68)) { self.var_2C68.origin = self.origin; } } else { return; } wait(0.05); } } //Function Number: 194 func_51B5(param_00) { if(isdefined(self)) { var_01 = self getentitynumber(); var_02 = self.var_A63A; var_03 = self.trigger; var_04 = self.var_F232; func_40F4(var_01,var_02,var_03,var_04); self notify("deleted_equipment"); self delete(); } } //Function Number: 195 func_C5AC(param_00) { if(self.var_CC4D.size) { self.var_CC4D = scripts\common\utility::func_22BC(self.var_CC4D); if(self.var_CC4D.size >= level.var_B4BA) { self.var_CC4D[0] notify("detonateExplosive"); } } self.var_CC4D[self.var_CC4D.size] = param_00; var_01 = param_00 getentitynumber(); level.var_B779[var_01] = param_00; level notify("mine_planted"); } //Function Number: 196 func_66A6(param_00) { var_01 = spawnfx(scripts\common\utility::getfx("equipment_sparks"),self.origin); triggerfx(var_01); if(!isdefined(param_00) || param_00 == 0) { self playsound("sentry_explode"); } var_01 thread scripts\cp\_utility::func_5106(1); } //Function Number: 197 func_66A8() { var_00 = spawnfx(scripts\common\utility::getfx("placeEquipmentFailed"),self.origin); triggerfx(var_00); self playsound("mp_killstreak_disappear"); var_00 thread scripts\cp\_utility::func_5106(1); } //Function Number: 198 func_B9CA(param_00,param_01) { level endon("game_ended"); param_01 endon("death"); param_00 scripts\common\utility::waittill_any_3("joined_team","joined_spectators","disconnect"); param_01 func_51B5(); } //Function Number: 199 func_9F0E(param_00) { if(param_00 == "none") { return 0; } if(function_0244(param_00) != "primary") { return 0; } switch(weaponclass(param_00)) { case "smg": case "sniper": case "rocketlauncher": case "mg": case "rifle": case "spread": case "pistol": return 1; default: return 0; } } //Function Number: 200 func_7EAA() { var_00 = anglestoup(self.angles); return 10 * var_00; } //Function Number: 201 func_9E6D(param_00) { return issubstr(param_00,"knife"); } //Function Number: 202 func_9C22(param_00) { if(isdefined(level.var_1E43)) { if(scripts\common\utility::func_2286(level.var_1E43,param_00)) { return 1; } } return 0; } //Function Number: 203 func_9D75(param_00) { if(param_00 == "none" || scripts\cp\_utility::func_9F2D(param_00) || func_9E6D(param_00)) { return 0; } switch(weaponclass(param_00)) { case "smg": case "sniper": case "mg": case "rifle": case "spread": case "pistol": return 1; default: return 0; } } //Function Number: 204 func_9BDB(param_00) { switch(param_00) { case "zombie_armageddon_mp": case "zfreeze_semtex_mp": case "splash_grenade_zm": case "splash_grenade_mp": case "throwingknifec4_mp": case "cluster_grenade_zm": case "semtex_zm": case "semtex_mp": case "c4_zm": case "frag_grenade_zm": return 1; default: return 0; } } //Function Number: 205 func_9B6A(param_00,param_01,param_02,param_03,param_04,param_05) { return param_02 && param_03 && param_04 && !param_05 && isdefined(param_01.var_11192) && isdefined(param_01.var_11192.var_24B2) && param_00 == param_01.var_11192.var_24B2; } //Function Number: 206 func_9C04(param_00) { var_01 = param_00 getcurrentprimaryweapon(); if(scripts\cp\_utility::func_4626(var_01) == "weapon_pistol") { return 1; } return 0; } //Function Number: 207 func_7D62(param_00) { if(!isplayer(self)) { return int(1); } if(isdefined(self.var_C8A2[param_00])) { return self.var_C8A2[param_00].var_B111; } var_01 = scripts\cp\_utility::func_80D8(param_00); if(isdefined(self.var_C8A2[var_01])) { return self.var_C8A2[var_01].var_B111; } return int(1); } //Function Number: 208 func_385F(param_00,param_01) { if(!isdefined(level.var_C8A2)) { return 0; } if(isdefined(level.max_pap_func)) { return [[ level.max_pap_func ]](param_00,param_01); } if(isdefined(param_00)) { var_02 = scripts\cp\_utility::func_80D8(param_00); } else { return 0; } if(!isdefined(var_02)) { return 0; } if(var_02 == "wylerdagger") { return 0; } if(!isdefined(level.var_C8A2[var_02])) { var_03 = getsubstr(var_02,0,var_02.size - 1); if(!isdefined(level.var_C8A2[var_03])) { return 0; } } if(isdefined(self.var_6670) && getweaponbasename(self.var_6670) == getweaponbasename(param_00)) { return 0; } if(isdefined(level.weapon_upgrade_path) && isdefined(level.weapon_upgrade_path[getweaponbasename(param_00)])) { return 1; } if(var_02 == "dischord" || var_02 == "facemelter" || var_02 == "headcutter" || var_02 == "shredder") { if(scripts\cp\zombies\directors_cut::directors_cut_is_activated()) { if(isdefined(self.var_C8A2[var_02]) && self.var_C8A2[var_02].var_B111 == 2) { return 0; } else { return 1; } } if(!scripts\common\utility::flag("fuses_inserted")) { if(scripts\common\utility::istrue(param_01)) { return 1; } else { return 0; } } else if(isdefined(self.var_C8A2[var_02]) && self.var_C8A2[var_02].var_B111 == 2) { return 0; } } if(scripts\common\utility::istrue(level.has_picked_up_fuses) && !isdefined(level.placed_alien_fuses)) { return 1; } if((scripts\common\utility::istrue(self.has_zis_soul_key) && !scripts\common\utility::istrue(level.no_auto_pap_upgrade)) || scripts\common\utility::istrue(level.placed_alien_fuses)) { if(isdefined(self.var_C8A2[var_02]) && self.var_C8A2[var_02].var_B111 >= 3) { return 0; } else { return 1; } } if(scripts\common\utility::istrue(param_01) && isdefined(self.var_C8A2[var_02]) && self.var_C8A2[var_02].var_B111 <= min(level.var_C8A4 + 1,2)) { return 1; } if(isdefined(self.var_C8A2[var_02]) && self.var_C8A2[var_02].var_B111 >= level.var_C8A4) { return 0; } return 1; } //Function Number: 209 get_pap_camo(param_00,param_01,param_02) { var_03 = undefined; if(isdefined(param_01)) { if(isdefined(level.no_pap_camos) && scripts\common\utility::func_2286(level.no_pap_camos,param_01)) { var_03 = undefined; } else if(isdefined(level.pap_1_camo) && isdefined(param_00) && param_00 == 2) { var_03 = level.pap_1_camo; } else if(isdefined(level.pap_2_camo) && isdefined(param_00) && param_00 == 3) { var_03 = level.pap_2_camo; } switch(param_01) { case "dischord": param_02 = "iw7_dischord_zm_pap1"; var_03 = "camo20"; break; case "facemelter": param_02 = "iw7_facemelter_zm_pap1"; var_03 = "camo22"; break; case "headcutter": param_02 = "iw7_headcutter_zm_pap1"; var_03 = "camo21"; break; case "forgefreeze": if(param_00 == 2) { param_02 = "iw7_forgefreeze_zm_pap1"; } else if(param_00 == 3) { param_02 = "iw7_forgefreeze_zm_pap2"; } var_04 = 1; break; case "axe": if(param_00 == 2) { param_02 = "iw7_axe_zm_pap1"; } else if(param_00 == 3) { param_02 = "iw7_axe_zm_pap2"; } var_04 = 1; break; case "shredder": param_02 = "iw7_shredder_zm_pap1"; var_03 = "camo23"; break; } } return var_03; } //Function Number: 210 validate_current_weapon(param_00,param_01,param_02) { if(isdefined(level.weapon_upgrade_path) && isdefined(level.weapon_upgrade_path[getweaponbasename(param_02)])) { param_02 = level.weapon_upgrade_path[getweaponbasename(param_02)]; } else if(isdefined(param_01)) { switch(param_01) { case "two": if(param_00 == 2) { param_02 = "iw7_two_headed_axe_mp"; } else if(param_00 == 3) { param_02 = "iw7_two_headed_axe_mp"; } break; case "golf": if(param_00 == 2) { param_02 = "iw7_golf_club_mp"; } else if(param_00 == 3) { param_02 = "iw7_golf_club_mp"; } break; case "machete": if(param_00 == 2) { param_02 = "iw7_machete_mp"; } else if(param_00 == 3) { param_02 = "iw7_machete_mp"; } break; case "spiked": if(param_00 == 2) { param_02 = "iw7_spiked_bat_mp"; } else if(param_00 == 3) { param_02 = "iw7_spiked_bat_mp"; } break; case "axe": if(param_00 == 2) { param_02 = "iw7_axe_zm_pap1"; } else if(param_00 == 3) { param_02 = "iw7_axe_zm_pap2"; } break; case "katana": if(param_00 == 2) { param_02 = "iw7_katana_zm_pap1"; } else if(param_00 == 3) { param_02 = "iw7_katana_zm_pap2"; } break; case "nunchucks": if(param_00 == 2) { param_02 = "iw7_nunchucks_zm_pap1"; } else if(param_00 == 3) { param_02 = "iw7_nunchucks_zm_pap2"; } break; case "venomx": if(param_00 == 2) { param_02 = "iw7_venomx_zm_pap1"; } else if(param_00 == 3) { param_02 = "iw7_venomx_zm_pap2"; } break; default: return param_02; } } return param_02; } //Function Number: 211 func_13B09() { self endon("death"); self endon("disconnect"); self endon("faux_spawn"); level endon("game_ended"); for(;;) { self waittill("melee_fired",var_00); if(self.var_B625 == 0) { if(var_00 == "iw7_fists_zm_crane" || var_00 == "iw7_fists_zm_dragon" || var_00 == "iw7_fists_zm_snake" || var_00 == "iw7_fists_zm_tiger") { if(self.kung_fu_vo == 0) { self.kung_fu_vo = 1; thread scripts\cp\_vo::try_to_play_vo("melee_punch","zmb_comment_vo","high",1,0,0,1); thread kung_fu_vo_wait(); } else { self.kung_fu_vo = 1; self notify("kung_fu_vo_reset"); thread scripts\cp\_vo::try_to_play_vo("melee_punch","zmb_comment_vo","high",1,0,0,1,60); thread kung_fu_vo_wait(); } } else { thread scripts\cp\_vo::try_to_play_vo("melee_miss","zmb_comment_vo","high",1,0,0,1,20); } continue; } if(issubstr(var_00,"katana") && self.var_134FD == "p5_") { thread scripts\cp\_vo::try_to_play_vo("melee_special_katana","rave_comment_vo","high",1,0,0,1); continue; } if((issubstr(var_00,"golf") || issubstr(var_00,"machete") || issubstr(var_00,"spiked_bat") || issubstr(var_00,"two_headed_axe")) && self.var_B625 == 1) { thread scripts\cp\_vo::try_to_play_vo("melee_special","rave_comment_vo","high",1,0,0,1); continue; } if(issubstr(var_00,"iw7_knife") && scripts\cp\_utility::func_9C42(var_00) && self.var_B625 == 1) { thread scripts\cp\_vo::try_to_play_vo("melee_fatal","zmb_comment_vo","high",1,0,0,1); self.var_B625 = 0; continue; } if((var_00 == "iw7_axe_zm" || var_00 == "iw7_axe_zm_pap1" || var_00 == "iw7_axe_zm_pap2") && scripts\cp\_utility::func_9C42(var_00) && self.var_B625 == 1) { thread scripts\cp\_vo::try_to_play_vo("melee_splice","zmb_comment_vo","high",1,0,0,1); self.var_B625 = 0; } } } //Function Number: 212 kung_fu_vo_wait() { self endon("kung_fu_vo_reset"); wait(4); self.kung_fu_vo = 0; } //Function Number: 213 func_13BA8() { self endon("death"); self endon("disconnect"); self endon("faux_spawn"); level endon("game_ended"); for(;;) { wait(1); var_00 = self getcurrentweapon(); if(!isdefined(var_00) || var_00 == "none") { continue; } self waittill("fired",var_00); var_00 = self getcurrentweapon(); var_01 = self method_80FB(var_00); if(scripts\cp\_utility::func_9C42(var_00) || issubstr(var_00,"fists") || issubstr(var_00,"heart") || issubstr(var_00,"dagger")) { continue; } if((var_01 <= 5 && var_01 > 0 && self getweaponammostock(var_00) == 0) || self getweaponammostock(var_00) > 0 && var_01 / self getweaponammostock(var_00) < 0.1) { scripts\cp\_vo::try_to_play_vo("nag_low_ammo","zmb_comment_vo","low",3,0,0,0,20); continue; } if(var_01 == 0 && var_00 != "iw7_cpbasketball_mp" && var_00 != "none") { if(issubstr(var_00,"venomx")) { scripts\cp\_vo::try_to_play_vo("venx_nag_eggs","zmb_comment_vo","low",3,0,0,0,20); continue; } scripts\cp\_vo::try_to_play_vo("nag_out_ammo","zmb_comment_vo","low",3,0,0,0,20); } } } //Function Number: 214 func_13BAE(param_00) { self endon("death"); self endon("disconnect"); self endon("faux_spawn"); level endon("game_ended"); for(;;) { self waittill("weapon_fired",var_01); var_01 = self getcurrentweapon(); if(!isdefined(var_01) || var_01 == "none") { continue; } if(!scripts\cp\_utility::func_9E55(var_01)) { continue; } if(isdefined(level.var_12EE2)) { thread [[ level.var_12EE2 ]](self,var_01); } var_02 = gettime(); if(!isdefined(self.var_A9EE)) { self.var_A9EE = 0; } var_03 = gettime() - self.var_A9EE; self.var_A9EE = var_02; if(isai(self)) { continue; } var_04 = getweaponbasename(var_01); if(!isdefined(self.var_FF09[var_04])) { self.var_FF09[var_04] = 1; } else { self.var_FF09[var_04]++; } if(!isdefined(self.accuracy_shots_fired)) { self.accuracy_shots_fired = 1; } else { self.accuracy_shots_fired++; } scripts\cp\_persistence::increment_player_career_shots_fired(self); if(isdefined(var_04)) { if(isdefined(self.var_9045[var_04])) { thread func_9048(var_04,var_01); } } } } //Function Number: 215 func_9048(param_00,param_01) { self endon("death"); self endon("disconnect"); self endon("updateMagShots_" + param_00); self.var_9045[param_00]--; wait(0.1); self notify("shot_missed",param_01); self.var_453C[param_00] = 0; self.var_9045[param_00] = weaponclipsize(param_01); } //Function Number: 216 func_13BA5() { self endon("death"); self endon("disconnect"); self endon("faux_spawn"); self.var_9045 = []; var_00 = getweaponbasename(self getcurrentweapon()); func_9047(var_00); for(;;) { self waittill("weapon_change",var_00); var_00 = getweaponbasename(var_00); func_13CDC(var_00); func_9047(var_00); } } //Function Number: 217 harpoon_impale_additional_func(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07) { if(!issubstr(param_00,"harpoon")) { return; } param_02 method_839A(); var_08 = physics_createcontents(["physicscontents_solid","physicscontents_glass","physicscontents_missileclip","physicscontents_vehicle","physicscontents_corpseclipshot"]); var_09 = param_03 + param_04 * 4096; var_0A = scripts\common\trace::func_DCEE(param_03,var_09,undefined,var_08,undefined,1); var_09 = var_0A["position"] - param_04 * 12; var_0B = length(var_09 - param_03); var_0C = var_0B / 1250; var_0C = clamp(var_0C,0.05,1); wait(0.05); var_0D = param_04; var_0E = anglestoup(param_01.angles); var_0F = vectorcross(var_0D,var_0E); var_10 = scripts\common\utility::spawn_tag_origin(param_03,axistoangles(var_0D,var_0F,var_0E)); var_10 moveto(var_09,var_0C); var_11 = spawnragdollconstraint(param_02,param_05,param_06,param_07); var_11.origin = var_10.origin; var_11.angles = var_10.angles; var_11 linkto(var_10); thread play_explosion_post_impale(var_09,param_01); thread func_934F(param_02,var_10,var_0C + 0.05,var_11); } //Function Number: 218 func_934F(param_00,param_01,param_02,param_03) { param_00 scripts\common\utility::waittill_any_timeout_1(param_02,"death","disconnect"); param_03 delete(); param_01 delete(); } //Function Number: 219 play_explosion_post_impale(param_00,param_01) { wait(2); param_01 radiusdamage(param_00,500,1000,500,param_01,"MOD_EXPLOSIVE"); playfx(level._effect["penetration_railgun_explosion"],param_00); } //Function Number: 220 func_13CDC(param_00) { if(!isdefined(param_00) || param_00 == "none") { return; } if(!isdefined(self.var_FF09[param_00])) { self.var_FF09[param_00] = 0; } if(!isdefined(self.var_FF0A[param_00])) { self.var_FF0A[param_00] = 0; } if(!isdefined(self.var_8CA0[param_00])) { self.var_8CA0[param_00] = 0; } if(!isdefined(self.var_13BE3[param_00])) { self.var_13BE3[param_00] = 1; } if(!isdefined(self.var_5AFC[param_00])) { self.var_5AFC[param_00] = 0; } if(!isdefined(self.var_A682[param_00])) { self.var_A682[param_00] = 0; } } //Function Number: 221 func_9047(param_00) { if(!isdefined(param_00) || param_00 == "none") { return; } if(scripts\cp\_utility::func_9E55(param_00) && !isdefined(self.var_9045[param_00])) { self.var_9045[param_00] = weaponclipsize(param_00); } }