// IW6 GSC SOURCE // Generated by https://github.com/xensik/gsc-tool init() { level.perkfuncs = []; level.spawnglowmodel["enemy"] = "emergency_flare_iw6"; level.spawnglowmodel["friendly"] = "emergency_flare_iw6"; level.spawnglow["enemy"] = loadfx( "fx/misc/flare_ambient" ); level.spawnglow["friendly"] = loadfx( "fx/misc/flare_ambient_green" ); level.spawnfire = loadfx( "fx/props/barrelexp" ); level._effect["ricochet"] = loadfx( "fx/impacts/large_metalhit_1" ); level.scriptperks = []; level.perksetfuncs = []; level.perkunsetfuncs = []; level.fauxperks = []; level.scriptperks["_specialty_blastshield"] = 1; level.scriptperks["_specialty_onemanarmy"] = 1; level.scriptperks["_specialty_rearview"] = 1; level.scriptperks["specialty_ac130"] = 1; level.scriptperks["specialty_akimbo"] = 1; level.scriptperks["specialty_anytwo"] = 1; level.scriptperks["specialty_armorpiercing"] = 1; level.scriptperks["specialty_assists"] = 1; level.scriptperks["specialty_autospot"] = 1; level.scriptperks["specialty_blackbox"] = 1; level.scriptperks["specialty_blastshield"] = 1; level.scriptperks["specialty_bloodrush"] = 1; level.scriptperks["specialty_boom"] = 1; level.scriptperks["specialty_challenger"] = 1; level.scriptperks["specialty_combat_speed"] = 1; level.scriptperks["specialty_comexp"] = 1; level.scriptperks["specialty_concussiongrenade"] = 1; level.scriptperks["specialty_dangerclose"] = 1; level.scriptperks["specialty_deadeye"] = 1; level.scriptperks["specialty_delaymine"] = 1; level.scriptperks["specialty_double_load"] = 1; level.scriptperks["specialty_endgame"] = 1; level.scriptperks["specialty_explosivedamage"] = 1; level.scriptperks["specialty_extra_attachment"] = 1; level.scriptperks["specialty_extra_deadly"] = 1; level.scriptperks["specialty_extra_equipment"] = 1; level.scriptperks["specialty_extraspecialduration"] = 1; level.scriptperks["specialty_falldamage"] = 1; level.scriptperks["specialty_fasterlockon"] = 1; level.scriptperks["specialty_feigndeath"] = 1; level.scriptperks["specialty_flashgrenade"] = 1; level.scriptperks["specialty_gambler"] = 1; level.scriptperks["specialty_gunsmith"] = 1; level.scriptperks["specialty_hard_shell"] = 1; level.scriptperks["specialty_hardjack"] = 1; level.scriptperks["specialty_hardline"] = 1; level.scriptperks["specialty_helicopter_minigun"] = 1; level.scriptperks["specialty_incog"] = 1; level.scriptperks["specialty_laststandoffhand"] = 1; level.scriptperks["specialty_littlebird_support"] = 1; level.scriptperks["specialty_localjammer"] = 1; level.scriptperks["specialty_luckycharm"] = 1; level.scriptperks["specialty_moreHealth"] = 1; level.scriptperks["specialty_omaquickchange"] = 1; level.scriptperks["specialty_onemanarmy"] = 1; level.scriptperks["specialty_overkillpro"] = 1; level.scriptperks["specialty_paint"] = 1; level.scriptperks["specialty_paint_pro"] = 1; level.scriptperks["specialty_pitcher"] = 1; level.scriptperks["specialty_precision_airstrike"] = 1; level.scriptperks["specialty_predator_missile"] = 1; level.scriptperks["specialty_primarydeath"] = 1; level.scriptperks["specialty_rearview"] = 1; level.scriptperks["specialty_refill_ammo"] = 1; level.scriptperks["specialty_refill_grenades"] = 1; level.scriptperks["specialty_regenfaster"] = 1; level.scriptperks["specialty_rollover"] = 1; level.scriptperks["specialty_saboteur"] = 1; level.scriptperks["specialty_secondarybling"] = 1; level.scriptperks["specialty_sentry_minigun"] = 1; level.scriptperks["specialty_shellshock"] = 1; level.scriptperks["specialty_shield"] = 1; level.scriptperks["specialty_smokegrenade"] = 1; level.scriptperks["specialty_steadyaimpro"] = 1; level.scriptperks["specialty_steelnerves"] = 1; level.scriptperks["specialty_stun_resistance"] = 1; level.scriptperks["specialty_tagger"] = 1; level.scriptperks["specialty_tank"] = 1; level.scriptperks["specialty_thermal"] = 1; level.scriptperks["specialty_triggerhappy"] = 1; level.scriptperks["specialty_twoprimaries"] = 1; level.scriptperks["specialty_weaponlaser"] = 1; level.fauxperks["specialty_shield"] = 1; level.scriptperks["specialty_marksman"] = 1; level.scriptperks["specialty_sharp_focus"] = 1; level.scriptperks["specialty_bling"] = 1; level.scriptperks["specialty_moredamage"] = 1; level.scriptperks["specialty_rshieldradar"] = 1; level.scriptperks["specialty_rshieldscrambler"] = 1; level.scriptperks["specialty_combathigh"] = 1; level.scriptperks["specialty_finalstand"] = 1; level.scriptperks["specialty_c4death"] = 1; level.scriptperks["specialty_juiced"] = 1; level.scriptperks["specialty_revenge"] = 1; level.scriptperks["specialty_light_armor"] = 1; level.scriptperks["specialty_carepackage"] = 1; level.scriptperks["specialty_stopping_power"] = 1; level.scriptperks["specialty_uav"] = 1; level.scriptperks["bouncingbetty_mp"] = 1; level.scriptperks["c4_mp"] = 1; level.scriptperks["claymore_mp"] = 1; level.scriptperks["frag_grenade_mp"] = 1; level.scriptperks["semtex_mp"] = 1; level.scriptperks["throwingknife_mp"] = 1; level.scriptperks["throwingknifejugg_mp"] = 1; level.scriptperks["thermobaric_grenade_mp"] = 1; level.scriptperks["mortar_shell_mp"] = 1; level.scriptperks["proximity_explosive_mp"] = 1; level.scriptperks["mortar_shelljugg_mp"] = 1; level.scriptperks["concussion_grenade_mp"] = 1; level.scriptperks["flash_grenade_mp"] = 1; level.scriptperks["smoke_grenade_mp"] = 1; level.scriptperks["smoke_grenadejugg_mp"] = 1; level.scriptperks["emp_grenade_mp"] = 1; level.scriptperks["specialty_tacticalinsertion"] = 1; level.scriptperks["trophy_mp"] = 1; level.scriptperks["motion_sensor_mp"] = 1; level.scriptperks["specialty_null"] = 1; level.perksetfuncs["specialty_blastshield"] = maps\mp\perks\_perkfunctions::setblastshield; level.perkunsetfuncs["specialty_blastshield"] = maps\mp\perks\_perkfunctions::unsetblastshield; level.perksetfuncs["specialty_falldamage"] = maps\mp\perks\_perkfunctions::setfreefall; level.perkunsetfuncs["specialty_falldamage"] = maps\mp\perks\_perkfunctions::unsetfreefall; level.perksetfuncs["specialty_localjammer"] = maps\mp\perks\_perkfunctions::setlocaljammer; level.perkunsetfuncs["specialty_localjammer"] = maps\mp\perks\_perkfunctions::unsetlocaljammer; level.perksetfuncs["specialty_thermal"] = maps\mp\perks\_perkfunctions::setthermal; level.perkunsetfuncs["specialty_thermal"] = maps\mp\perks\_perkfunctions::unsetthermal; level.perksetfuncs["specialty_blackbox"] = maps\mp\perks\_perkfunctions::setblackbox; level.perkunsetfuncs["specialty_blackbox"] = maps\mp\perks\_perkfunctions::unsetblackbox; level.perksetfuncs["specialty_lightweight"] = maps\mp\perks\_perkfunctions::setlightweight; level.perkunsetfuncs["specialty_lightweight"] = maps\mp\perks\_perkfunctions::unsetlightweight; level.perksetfuncs["specialty_steelnerves"] = maps\mp\perks\_perkfunctions::setsteelnerves; level.perkunsetfuncs["specialty_steelnerves"] = maps\mp\perks\_perkfunctions::unsetsteelnerves; level.perksetfuncs["specialty_delaymine"] = maps\mp\perks\_perkfunctions::setdelaymine; level.perkunsetfuncs["specialty_delaymine"] = maps\mp\perks\_perkfunctions::unsetdelaymine; level.perksetfuncs["specialty_challenger"] = maps\mp\perks\_perkfunctions::setchallenger; level.perkunsetfuncs["specialty_challenger"] = maps\mp\perks\_perkfunctions::unsetchallenger; level.perksetfuncs["specialty_saboteur"] = maps\mp\perks\_perkfunctions::setsaboteur; level.perkunsetfuncs["specialty_saboteur"] = maps\mp\perks\_perkfunctions::unsetsaboteur; level.perksetfuncs["specialty_endgame"] = maps\mp\perks\_perkfunctions::setendgame; level.perkunsetfuncs["specialty_endgame"] = maps\mp\perks\_perkfunctions::unsetendgame; level.perksetfuncs["specialty_rearview"] = maps\mp\perks\_perkfunctions::setrearview; level.perkunsetfuncs["specialty_rearview"] = maps\mp\perks\_perkfunctions::unsetrearview; level.perksetfuncs["specialty_ac130"] = maps\mp\perks\_perkfunctions::setac130; level.perkunsetfuncs["specialty_ac130"] = maps\mp\perks\_perkfunctions::unsetac130; level.perksetfuncs["specialty_sentry_minigun"] = maps\mp\perks\_perkfunctions::setsentryminigun; level.perkunsetfuncs["specialty_sentry_minigun"] = maps\mp\perks\_perkfunctions::unsetsentryminigun; level.perksetfuncs["specialty_predator_missile"] = maps\mp\perks\_perkfunctions::setpredatormissile; level.perkunsetfuncs["specialty_predator_missile"] = maps\mp\perks\_perkfunctions::unsetpredatormissile; level.perksetfuncs["specialty_tank"] = maps\mp\perks\_perkfunctions::settank; level.perkunsetfuncs["specialty_tank"] = maps\mp\perks\_perkfunctions::unsettank; level.perksetfuncs["specialty_precision_airstrike"] = maps\mp\perks\_perkfunctions::setprecision_airstrike; level.perkunsetfuncs["specialty_precision_airstrike"] = maps\mp\perks\_perkfunctions::unsetprecision_airstrike; level.perksetfuncs["specialty_helicopter_minigun"] = maps\mp\perks\_perkfunctions::sethelicopterminigun; level.perkunsetfuncs["specialty_helicopter_minigun"] = maps\mp\perks\_perkfunctions::unsethelicopterminigun; level.perksetfuncs["specialty_onemanarmy"] = maps\mp\perks\_perkfunctions::setonemanarmy; level.perkunsetfuncs["specialty_onemanarmy"] = maps\mp\perks\_perkfunctions::unsetonemanarmy; level.perksetfuncs["specialty_littlebird_support"] = maps\mp\perks\_perkfunctions::setlittlebirdsupport; level.perkunsetfuncs["specialty_littlebird_support"] = maps\mp\perks\_perkfunctions::unsetlittlebirdsupport; level.perksetfuncs["specialty_tacticalinsertion"] = maps\mp\perks\_perkfunctions::settacticalinsertion; level.perkunsetfuncs["specialty_tacticalinsertion"] = maps\mp\perks\_perkfunctions::unsettacticalinsertion; level.perksetfuncs["specialty_weaponlaser"] = maps\mp\perks\_perkfunctions::setweaponlaser; level.perkunsetfuncs["specialty_weaponlaser"] = maps\mp\perks\_perkfunctions::unsetweaponlaser; level.perksetfuncs["specialty_steadyaimpro"] = maps\mp\perks\_perkfunctions::setsteadyaimpro; level.perkunsetfuncs["specialty_steadyaimpro"] = maps\mp\perks\_perkfunctions::unsetsteadyaimpro; level.perksetfuncs["specialty_stun_resistance"] = maps\mp\perks\_perkfunctions::setstunresistance; level.perkunsetfuncs["specialty_stun_resistance"] = maps\mp\perks\_perkfunctions::unsetstunresistance; level.perksetfuncs["specialty_marksman"] = maps\mp\perks\_perkfunctions::setmarksman; level.perkunsetfuncs["specialty_marksman"] = maps\mp\perks\_perkfunctions::unsetmarksman; level.perksetfuncs["specialty_rshieldradar"] = maps\mp\perks\_perkfunctions::setrshieldradar; level.perkunsetfuncs["specialty_rshieldradar"] = maps\mp\perks\_perkfunctions::unsetrshieldradar; level.perksetfuncs["specialty_rshieldscrambler"] = maps\mp\perks\_perkfunctions::setrshieldscrambler; level.perkunsetfuncs["specialty_rshieldscrambler"] = maps\mp\perks\_perkfunctions::unsetrshieldscrambler; level.perksetfuncs["specialty_double_load"] = maps\mp\perks\_perkfunctions::setdoubleload; level.perkunsetfuncs["specialty_double_load"] = maps\mp\perks\_perkfunctions::unsetdoubleload; level.perksetfuncs["specialty_sharp_focus"] = maps\mp\perks\_perkfunctions::setsharpfocus; level.perkunsetfuncs["specialty_sharp_focus"] = maps\mp\perks\_perkfunctions::unsetsharpfocus; level.perksetfuncs["specialty_hard_shell"] = maps\mp\perks\_perkfunctions::sethardshell; level.perkunsetfuncs["specialty_hard_shell"] = maps\mp\perks\_perkfunctions::unsethardshell; level.perksetfuncs["specialty_regenfaster"] = maps\mp\perks\_perkfunctions::setregenfaster; level.perkunsetfuncs["specialty_regenfaster"] = maps\mp\perks\_perkfunctions::unsetregenfaster; level.perksetfuncs["specialty_autospot"] = maps\mp\perks\_perkfunctions::setautospot; level.perkunsetfuncs["specialty_autospot"] = maps\mp\perks\_perkfunctions::unsetautospot; level.perksetfuncs["specialty_empimmune"] = maps\mp\perks\_perkfunctions::setempimmune; level.perkunsetfuncs["specialty_empimmune"] = maps\mp\perks\_perkfunctions::unsetempimmune; level.perksetfuncs["specialty_overkill_pro"] = maps\mp\perks\_perkfunctions::setoverkillpro; level.perkunsetfuncs["specialty_overkill_pro"] = maps\mp\perks\_perkfunctions::unsetoverkillpro; level.perksetfuncs["specialty_assists"] = maps\mp\perks\_perkfunctions::setassists; level.perkunsetfuncs["specialty_assists"] = maps\mp\perks\_perkfunctions::unsetassists; level.perksetfuncs["specialty_refill_grenades"] = maps\mp\perks\_perkfunctions::setrefillgrenades; level.perkunsetfuncs["specialty_refill_grenades"] = maps\mp\perks\_perkfunctions::unsetrefillgrenades; level.perksetfuncs["specialty_refill_ammo"] = maps\mp\perks\_perkfunctions::setrefillammo; level.perkunsetfuncs["specialty_refill_ammo"] = maps\mp\perks\_perkfunctions::unsetrefillammo; level.perksetfuncs["specialty_combat_speed"] = maps\mp\perks\_perkfunctions::setcombatspeed; level.perkunsetfuncs["specialty_combat_speed"] = maps\mp\perks\_perkfunctions::unsetcombatspeed; level.perksetfuncs["specialty_gambler"] = maps\mp\perks\_perkfunctions::setgambler; level.perkunsetfuncs["specialty_gambler"] = maps\mp\perks\_perkfunctions::unsetgambler; level.perksetfuncs["specialty_comexp"] = maps\mp\perks\_perkfunctions::setcomexp; level.perkunsetfuncs["specialty_comexp"] = maps\mp\perks\_perkfunctions::unsetcomexp; level.perksetfuncs["specialty_gunsmith"] = maps\mp\perks\_perkfunctions::setgunsmith; level.perkunsetfuncs["specialty_gunsmith"] = maps\mp\perks\_perkfunctions::unsetgunsmith; level.perksetfuncs["specialty_tagger"] = maps\mp\perks\_perkfunctions::settagger; level.perkunsetfuncs["specialty_tagger"] = maps\mp\perks\_perkfunctions::unsettagger; level.perksetfuncs["specialty_pitcher"] = maps\mp\perks\_perkfunctions::setpitcher; level.perkunsetfuncs["specialty_pitcher"] = maps\mp\perks\_perkfunctions::unsetpitcher; level.perksetfuncs["specialty_boom"] = maps\mp\perks\_perkfunctions::setboom; level.perkunsetfuncs["specialty_boom"] = maps\mp\perks\_perkfunctions::unsetboom; level.perksetfuncs["specialty_silentkill"] = maps\mp\perks\_perkfunctions::setsilentkill; level.perkunsetfuncs["specialty_silentkill"] = maps\mp\perks\_perkfunctions::unsetsilentkill; level.perksetfuncs["specialty_bloodrush"] = maps\mp\perks\_perkfunctions::setbloodrush; level.perkunsetfuncs["specialty_bloodrush"] = maps\mp\perks\_perkfunctions::unsetbloodrush; level.perksetfuncs["specialty_triggerhappy"] = maps\mp\perks\_perkfunctions::settriggerhappy; level.perkunsetfuncs["specialty_triggerhappy"] = maps\mp\perks\_perkfunctions::unsettriggerhappy; level.perksetfuncs["specialty_deadeye"] = maps\mp\perks\_perkfunctions::setdeadeye; level.perkunsetfuncs["specialty_deadeye"] = maps\mp\perks\_perkfunctions::unsetdeadeye; level.perksetfuncs["specialty_incog"] = maps\mp\perks\_perkfunctions::setincog; level.perkunsetfuncs["specialty_incog"] = maps\mp\perks\_perkfunctions::unsetincog; level.perksetfuncs["specialty_blindeye"] = maps\mp\perks\_perkfunctions::setblindeye; level.perkunsetfuncs["specialty_blindeye"] = maps\mp\perks\_perkfunctions::unsetblindeye; level.perksetfuncs["specialty_quickswap"] = maps\mp\perks\_perkfunctions::setquickswap; level.perkunsetfuncs["specialty_quickswap"] = maps\mp\perks\_perkfunctions::unsetquickswap; level.perksetfuncs["specialty_extraammo"] = maps\mp\perks\_perkfunctions::setextraammo; level.perkunsetfuncs["specialty_extraammo"] = maps\mp\perks\_perkfunctions::unsetextraammo; level.perksetfuncs["specialty_extra_equipment"] = maps\mp\perks\_perkfunctions::setextraequipment; level.perkunsetfuncs["specialty_extra_equipment"] = maps\mp\perks\_perkfunctions::unsetextraequipment; level.perksetfuncs["specialty_extra_deadly"] = maps\mp\perks\_perkfunctions::setextradeadly; level.perkunsetfuncs["specialty_extra_deadly"] = maps\mp\perks\_perkfunctions::unsetextradeadly; level.perksetfuncs["specialty_combathigh"] = maps\mp\perks\_perkfunctions::setcombathigh; level.perkunsetfuncs["specialty_combathigh"] = maps\mp\perks\_perkfunctions::unsetcombathigh; level.perksetfuncs["specialty_light_armor"] = maps\mp\perks\_perkfunctions::setlightarmor; level.perkunsetfuncs["specialty_light_armor"] = maps\mp\perks\_perkfunctions::unsetlightarmor; level.perksetfuncs["specialty_revenge"] = maps\mp\perks\_perkfunctions::setrevenge; level.perkunsetfuncs["specialty_revenge"] = maps\mp\perks\_perkfunctions::unsetrevenge; level.perksetfuncs["specialty_c4death"] = maps\mp\perks\_perkfunctions::setc4death; level.perkunsetfuncs["specialty_c4death"] = maps\mp\perks\_perkfunctions::unsetc4death; level.perksetfuncs["specialty_finalstand"] = maps\mp\perks\_perkfunctions::setfinalstand; level.perkunsetfuncs["specialty_finalstand"] = maps\mp\perks\_perkfunctions::unsetfinalstand; level.perksetfuncs["specialty_juiced"] = maps\mp\perks\_perkfunctions::setjuiced; level.perkunsetfuncs["specialty_juiced"] = maps\mp\perks\_perkfunctions::unsetjuiced; level.perksetfuncs["specialty_carepackage"] = maps\mp\perks\_perkfunctions::setcarepackage; level.perkunsetfuncs["specialty_carepackage"] = maps\mp\perks\_perkfunctions::unsetcarepackage; level.perksetfuncs["specialty_stopping_power"] = maps\mp\perks\_perkfunctions::setstoppingpower; level.perkunsetfuncs["specialty_stopping_power"] = maps\mp\perks\_perkfunctions::unsetstoppingpower; level.perksetfuncs["specialty_uav"] = maps\mp\perks\_perkfunctions::setuav; level.perkunsetfuncs["specialty_uav"] = maps\mp\perks\_perkfunctions::unsetuav; initperkdvars(); level thread onplayerconnect(); } validateequipment( var_0, var_1, var_2 ) { var_2 = common_scripts\utility::ter_op( isdefined( var_2 ), var_2, 1 ); var_0 = common_scripts\utility::ter_op( var_0 == "none", "specialty_null", var_0 ); if ( var_1 ) { switch ( var_0 ) { case "proximity_explosive_mp": case "semtex_mp": case "c4_mp": case "throwingknifejugg_mp": case "throwingknife_mp": case "mortar_shelljugg_mp": case "mortar_shell_mp": case "frag_grenade_mp": case "specialty_null": break; default: var_0 = "specialty_null"; break; } } else { switch ( var_0 ) { case "concussion_grenade_mp": case "smoke_grenadejugg_mp": case "smoke_grenade_mp": case "thermobaric_grenade_mp": case "motion_sensor_mp": case "flash_grenade_mp": case "trophy_mp": case "specialty_null": break; default: var_0 = "specialty_null"; break; } } return var_0; } validateperk( var_0 ) { if ( !maps\mp\_utility::perksenabled() ) var_0 = "specialty_null"; else { switch ( var_0 ) { case "specialty_deadeye": case "specialty_explosivedamage": case "specialty_comexp": case "specialty_gpsjammer": case "specialty_quickdraw": case "specialty_stalker": case "specialty_boom": case "specialty_extraammo": case "specialty_extra_deadly": case "_specialty_blastshield": case "specialty_regenfaster": case "specialty_selectivehearing": case "specialty_detectexplosive": case "specialty_scavenger": case "specialty_quieter": case "specialty_marathon": case "specialty_lightweight": case "specialty_fastreload": case "specialty_gambler": case "specialty_extra_equipment": case "specialty_falldamage": case "specialty_paint": case "specialty_silentkill": case "specialty_sprintreload": case "specialty_pitcher": case "specialty_fastsprintrecovery": case "specialty_extra_attachment": case "specialty_twoprimaries": case "specialty_bulletaccuracy": case "specialty_quickswap": case "specialty_sharp_focus": case "specialty_blindeye": case "specialty_incog": case "specialty_hardline": case "specialty_stun_resistance": case "specialty_null": break; default: var_0 = "specialty_null"; break; } } return var_0; } onplayerconnect() { for (;;) { level waittill( "connected", var_0 ); var_0 thread onplayerspawned(); } } onplayerspawned() { self endon( "disconnect" ); self.perks = []; self.perksperkname = []; self.perksuseslot = []; self.weaponlist = []; self.omaclasschanged = 0; for (;;) { self waittill( "spawned_player" ); self.omaclasschanged = 0; thread maps\mp\killstreaks\_portableaoegenerator::generatoraoetracker(); } } thermodebuffwatcher() { self endon( "disconnect" ); level endon( "game_ended" ); var_0 = gettime() + 5000; wait 0.05; self.thermodebuffed = 1; for (;;) { if ( self.health == self.maxhealth ) { self.thermodebuffed = 0; return; } if ( gettime() >= var_0 ) { self.thermodebuffed = 0; return; } wait 0.05; } } cac_modified_damage( var_0, var_1, var_2, var_3, var_4, var_5, var_6, var_7, var_8 ) { if ( maps\mp\_utility::matchmakinggame() && self.maxhealth > 100 ) { if ( isdefined( var_4 ) && weaponclass( var_4 ) == "spread" ) var_2 = var_2 * ( self.maxhealth / 100 ); } var_9 = 0; var_10 = 0; if ( var_0 maps\mp\_utility::isjuggernaut() ) { var_10 = level.juggernautmod; if ( isdefined( self.isjuggernautmaniac ) && self.isjuggernautmaniac ) var_10 = level.juggernautmaniacmod; } if ( maps\mp\_utility::isbulletdamage( var_3 ) ) { if ( maps\mp\_utility::isfmjdamage( var_4, var_3, var_1 ) ) var_10 = var_10 * level.armorpiercingmod; if ( isplayer( var_1 ) && var_1 maps\mp\_utility::_hasperk( "specialty_paint_pro" ) && !maps\mp\_utility::iskillstreakweapon( var_4 ) ) { if ( !var_0 maps\mp\perks\_perkfunctions::ispainted() ) var_1 maps\mp\gametypes\_missions::processchallenge( "ch_bulletpaint" ); var_0 thread maps\mp\perks\_perkfunctions::setpainted( var_1 ); } if ( isplayer( var_1 ) && ( var_1 maps\mp\_utility::_hasperk( "specialty_bulletdamage" ) && var_0 maps\mp\_utility::_hasperk( "specialty_armorvest" ) ) ) { } else if ( isplayer( var_1 ) && ( var_1 maps\mp\_utility::_hasperk( "specialty_bulletdamage" ) || var_1 maps\mp\_utility::_hasperk( "specialty_moredamage" ) ) ) var_9 = var_9 + var_2 * level.bulletdamagemod; else if ( var_0 maps\mp\_utility::_hasperk( "specialty_armorvest" ) ) var_9 = var_9 - var_2 * level.armorvestmod; if ( var_0 maps\mp\_utility::isjuggernaut() ) { if ( level.hardcoremode && isdefined( var_4 ) && weaponclass( var_4 ) == "spread" ) { var_2 = min( var_2, 25 ) * var_10; var_9 = min( var_2, 25 ) * var_10; } else { var_2 = var_2 * var_10; var_9 = var_9 * var_10; } } } else if ( isexplosivedamagemod( var_3 ) ) { if ( var_4 == "proximity_explosive_mp" && isdefined( var_8.origin ) ) { if ( var_0 getstance() == "prone" ) var_2 = var_2 * 0.65; else if ( !var_0 isonground() ) var_2 = var_2 * 0.8; else if ( var_0 getstance() == "crouch" ) var_2 = var_2 * 0.9; } if ( isplayer( var_1 ) ) { if ( var_1 != var_0 && ( var_1 isitemunlocked( "specialty_paint" ) && var_1 maps\mp\_utility::_hasperk( "specialty_paint" ) ) && !maps\mp\_utility::iskillstreakweapon( var_4 ) ) { if ( !var_0 maps\mp\perks\_perkfunctions::ispainted() ) var_1 maps\mp\gametypes\_missions::processchallenge( "ch_paint_pro" ); var_0 thread maps\mp\perks\_perkfunctions::setpainted( var_1 ); } } if ( isdefined( var_0.thermodebuffed ) && var_0.thermodebuffed ) var_9 = var_9 + int( var_2 * level.thermodebuffmod ); if ( var_4 == "thermobaric_grenade_mp" ) { if ( level.hardcoremode ) var_2 = var_2 * 0.3; var_0 thread thermodebuffwatcher(); } if ( isplayer( var_1 ) && weaponinheritsperks( var_4 ) && ( var_1 maps\mp\_utility::_hasperk( "specialty_explosivedamage" ) && var_0 maps\mp\_utility::_hasperk( "_specialty_blastshield" ) ) ) { } else if ( isplayer( var_1 ) && weaponinheritsperks( var_4 ) && !maps\mp\_utility::iskillstreakweapon( var_4 ) && var_1 maps\mp\_utility::_hasperk( "specialty_explosivedamage" ) ) var_9 = var_9 + var_2 * level.explosivedamagemod; else if ( var_0 maps\mp\_utility::_hasperk( "_specialty_blastshield" ) && !maps\mp\_utility::weaponignoresblastshield( var_4 ) && ( !isdefined( var_8 ) || !isdefined( var_8.stuckenemyentity ) || var_8.stuckenemyentity != var_0 ) ) { var_11 = int( var_2 * level.blastshieldmod ); if ( maps\mp\gametypes\_weapons::isgrenade( var_4 ) || maps\mp\_utility::isweaponaffectedbyblastshield( var_4 ) ) var_11 = clamp( var_11, 0, level.blastshieldclamp ); var_9 = var_9 - ( var_2 - var_11 ); } if ( var_0 maps\mp\_utility::isjuggernaut() ) { var_9 = var_9 * var_10; if ( var_2 < 1000 ) var_2 = var_2 * var_10; } if ( !maps\mp\_utility::is_aliens() ) { if ( 10 - ( level.graceperiod - level.ingraceperiod ) > 0 ) var_2 = var_2 * level.graceperiodgrenademod; } } else if ( var_3 == "MOD_FALLING" ) { if ( var_0 maps\mp\_utility::_hasperk( "specialty_falldamage" ) ) { if ( var_2 > 0 ) var_0 maps\mp\gametypes\_missions::processchallenge( "ch_falldamage" ); var_9 = 0; var_2 = 0; } else if ( var_0 maps\mp\_utility::isjuggernaut() ) var_2 = var_2 * var_10; } else if ( var_3 == "MOD_MELEE" ) { if ( var_0 maps\mp\_utility::isjuggernaut() ) { var_2 = 20; var_9 = 0; } else if ( maps\mp\perks\_perkfunctions::hasheavyarmor( var_0 ) ) var_2 = 100; else if ( isdefined( var_0.custommeleedamagetaken ) && var_0.custommeleedamagetaken >= 0 ) var_2 = var_0.custommeleedamagetaken; else if ( maps\mp\gametypes\_weapons::isriotshield( var_4 ) ) { if ( level.hardcoremode ) var_2 = int( var_0.maxhealth + 1 ); else var_2 = int( var_0.maxhealth * 0.66 ); } else var_2 = var_0.maxhealth + 1; } else if ( var_3 == "MOD_IMPACT" ) { if ( var_0 maps\mp\_utility::isjuggernaut() ) { switch ( var_4 ) { case "semtexproj_mp": case "semtex_mp": case "concussion_grenade_mp": case "smoke_grenadejugg_mp": case "smoke_grenade_mp": case "flash_grenade_mp": case "mortar_shelljugg_mp": case "mortar_shell_mp": case "frag_grenade_mp": var_2 = 5; break; default: if ( var_2 < 1000 ) var_2 = 25; break; } var_9 = 0; } } else if ( var_3 == "MOD_UNKNOWN" || var_3 == "MOD_MELEE_DOG" ) { if ( isagent( var_1 ) && isdefined( var_1.agent_type ) && var_1.agent_type == "dog" && var_0 maps\mp\_utility::isjuggernaut() ) { var_0 shellshock( "dog_bite", 2 ); var_2 = var_2 * var_10; } } if ( var_0 maps\mp\_utility::_hasperk( "specialty_combathigh" ) ) { if ( isdefined( self.damageblockedtotal ) && ( !level.teambased || isdefined( var_1 ) && isdefined( var_1.team ) && var_0.team != var_1.team ) ) { var_12 = var_2 + var_9; var_13 = var_12 - var_12 / 3; self.damageblockedtotal = self.damageblockedtotal + var_13; if ( self.damageblockedtotal >= 101 ) { self notify( "combathigh_survived" ); self.damageblockedtotal = undefined; } } if ( var_4 != "throwingknife_mp" && var_4 != "throwingknifejugg_mp" ) { switch ( var_3 ) { case "MOD_FALLING": case "MOD_MELEE": break; default: var_2 = int( var_2 / 3 ); var_9 = int( var_9 / 3 ); break; } } } if ( isdefined( var_0.lightarmorhp ) ) { switch ( var_4 ) { case "throwingknifejugg_mp": case "throwingknife_mp": var_2 = var_0.health; var_9 = 0; break; case "semtexproj_mp": case "semtex_mp": if ( isdefined( var_8 ) && isdefined( var_8.stuckenemyentity ) && var_8.stuckenemyentity == var_0 ) { var_2 = var_0.health; var_9 = 0; } break; default: if ( var_3 != "MOD_FALLING" && var_3 != "MOD_MELEE" && !maps\mp\_utility::isheadshot( var_4, var_7, var_3, var_1 ) && !maps\mp\_utility::isfmjdamage( var_4, var_3, var_1 ) ) { var_0.lightarmorhp = var_0.lightarmorhp - ( var_2 + var_9 ); var_2 = 0; var_9 = 0; if ( var_0.lightarmorhp <= 0 ) { var_2 = abs( var_0.lightarmorhp ); var_9 = 0; maps\mp\perks\_perkfunctions::unsetlightarmor(); } } break; } } if ( maps\mp\perks\_perkfunctions::hasheavyarmor( var_0 ) ) { var_0.heavyarmorhp = var_0.heavyarmorhp - ( var_2 + var_9 ); var_2 = 0; if ( var_0.heavyarmorhp < 0 ) var_2 = abs( var_0.heavyarmorhp ); } if ( !maps\mp\_utility::is_aliens() && var_2 <= 1 ) var_2 = 1; else var_2 = int( var_2 + var_9 ); return var_2; } initperkdvars() { level.graceperiodgrenademod = 0.08; level.juggernautmod = 0.08; level.juggernautmaniacmod = 0.08; level.armorpiercingmod = 1.5; level.regenfastermod = maps\mp\_utility::getintproperty( "perk_fastRegenWaitMS", 500 ) / 1000; level.regenfasterhealthmod = maps\mp\_utility::getintproperty( "perk_fastRegenRate", 2 ); level.bulletdamagemod = maps\mp\_utility::getintproperty( "perk_bulletDamage", 40 ) / 100; level.explosivedamagemod = maps\mp\_utility::getintproperty( "perk_explosiveDamage", 40 ) / 100; level.blastshieldmod = maps\mp\_utility::getintproperty( "perk_blastShieldScale", 65 ) / 100; level.blastshieldclamp = maps\mp\_utility::getintproperty( "perk_blastShieldClampHP", 80 ); level.thermodebuffmod = maps\mp\_utility::getintproperty( "weap_thermoDebuffMod", 185 ) / 100; level.riotshieldmod = maps\mp\_utility::getintproperty( "perk_riotShield", 100 ) / 100; level.armorvestmod = maps\mp\_utility::getintproperty( "perk_armorVest", 75 ) / 100; if ( isdefined( level.hardcoremode ) && level.hardcoremode ) { level.blastshieldmod = maps\mp\_utility::getintproperty( "perk_blastShieldScale_HC", 10 ) / 100; level.blastshieldclamp = maps\mp\_utility::getintproperty( "perk_blastShieldClampHP_HC", 20 ); } } cac_selector() { var_0 = self.specialty; } giveperksafterspawn() { self endon( "death" ); self endon( "disconnect" ); var_0 = []; if ( !maps\mp\_utility::_hasperk( "specialty_blindeye" ) ) { maps\mp\_utility::giveperk( "specialty_blindeye", 0 ); var_0[var_0.size] = "specialty_blindeye"; } if ( !maps\mp\_utility::_hasperk( "specialty_gpsjammer" ) ) { maps\mp\_utility::giveperk( "specialty_gpsjammer", 0 ); var_0[var_0.size] = "specialty_gpsjammer"; } if ( var_0.size > 0 ) { self.spawnperk = 1; while ( self.avoidkillstreakonspawntimer > 0 ) { self.avoidkillstreakonspawntimer = self.avoidkillstreakonspawntimer - 0.05; wait 0.05; } foreach ( var_2 in var_0 ) maps\mp\_utility::_unsetperk( var_2 ); self.spawnperk = 0; self notify( "starting_perks_unset" ); } } getperkicon( var_0 ) { return tablelookup( "mp/perkTable.csv", 1, var_0, 3 ); } getperkname( var_0 ) { return tablelookupistring( "mp/perkTable.csv", 1, var_0, 2 ); } updateactiveperks( var_0, var_1, var_2, var_3, var_4 ) { if ( isdefined( var_0 ) && isplayer( var_0 ) && isdefined( var_1 ) && isplayer( var_1 ) && var_1 != var_2 ) { if ( var_1 maps\mp\_utility::_hasperk( "specialty_triggerhappy" ) ) var_1 thread maps\mp\perks\_perkfunctions::settriggerhappyinternal(); if ( var_1 maps\mp\_utility::_hasperk( "specialty_boom" ) ) var_2 thread maps\mp\perks\_perkfunctions::setboominternal( var_1 ); if ( var_1 maps\mp\_utility::_hasperk( "specialty_bloodrush" ) ) var_1 thread maps\mp\perks\_perkfunctions::setbloodrushinternal(); if ( var_1 maps\mp\_utility::_hasperk( "specialty_deadeye" ) ) var_1.deadeyekillcount++; var_5 = var_1.pers["abilityRecharging"]; if ( isdefined( var_5 ) && var_5 ) var_1 notify( "abilityFastRecharge" ); var_6 = var_1.pers["abilityOn"]; if ( isdefined( var_6 ) && var_6 ) var_1 notify( "abilityExtraTime" ); } }