main( eVictim, eAttacker, iDamage, sMeansOfDeath, sWeapon, sHitLoc, iDFlags, eInflictor ) { // Damage Cancellation: Spawn Protection if (eVictim.spawn_protected) { if ( iDamage > 0 && getDvarInt( "scr_enable_hiticon" ) == 1 ) eAttacker thread Spawn_protect_Feedback(); else if ( iDamage > 0 && getDvarInt( "scr_enable_hiticon" ) == 2 && !(iDFlags & level.iDFLAGS_PENETRATION) ) eAttacker thread Spawn_protect_Feedback(); iDamage = 0; } if (game["pam_knife_nerf"] && sMeansOfDeath == "MOD_MELEE") { dist = distance( eVictim.origin, eAttacker.origin ); if (sHitLoc == "head" || sHitLoc == "torso_lower") { if (dist > 47) iDamage = iDamage * .6; } else { if (dist > 47) iDamage = iDamage * .4; else iDamage = iDamage * .6; } iDamage = int(iDamage); //iprintln("Knife: " + sHitLoc + " :: Damage: " + iDamage + " :: Distance: " + dist); //iDamage = 0; } // Damage Cancellation: Map Destructables /* if ( sWeapon == "none" && isDefined( eInflictor ) ) { if ( game["pam_allow_barrel_damage"] && isDefined( eInflictor.targetname ) && eInflictor.targetname == "explodable_barrel" ) sWeapon = "explodable_barrel"; else if ( game["pam_allow_car_damage"] && isDefined( eInflictor.destructible_type ) && isSubStr( eInflictor.destructible_type, "vehicle_" ) ) sWeapon = "destructible_car"; } */ //iprintln("weap: " + sWeapon); if ( game["pam_deadly_boltaction_snipers"] ) { if (sWeapon == "m40a3_acog_mp" || sWeapon == "m40a3_mp" || sWeapon == "remington700_acog_mp" || sWeapon == "remington700_mp") { if (sHitLoc == "head" || sHitLoc == "helmet" || sHitLoc == "torso_upper" || sHitLoc == "torso_lower") { iDamage = iDamage * 3; } } } if ( game["pam_deadly_semiauto_snipers"] ) { if (sWeapon == "m21_acog_mp" || sWeapon == "m21_mp" || sWeapon == "barrett_acog_mp" || sWeapon == "barrett_mp" || sWeapon == "dragunov_acog_mp" || sWeapon == "dragunov_mp") { if (sHitLoc == "head" || sHitLoc == "helmet" || sHitLoc == "torso_upper" || sHitLoc == "torso_lower") { iDamage = iDamage * 3; } } } if (game["pam_allow_weapon_damage_adjust"] && sWeapon != "none" && sMeansOfDeath != "MOD_MELEE") { weapdvar = ""; if (isDefined(game["pam_weaps"][sWeapon])) weapdvar = game["pam_weaps"][sWeapon]; if (weapdvar != "") { if (getdvar(weapdvar) != "" && getdvarfloat(weapdvar) > 0) { multiplier = getdvarfloat(weapdvar); iDamage = iDamage * multiplier; } } } if ( game["pamd_damage_modifiers"] && sWeapon != "none" ) { dist = distance( eVictim.origin, eAttacker.origin ); switch (sHitLoc) { case "right_arm_upper": iDamage = iDamage * 0.75; break; case "left_arm_upper": iDamage = iDamage * 0.75; break; case "right_arm_lower": iDamage = iDamage * 0.5; break; case "left_arm_lower": iDamage = iDamage * 0.5; break; case "right_hand": iDamage = iDamage * 0.5; break; case "left_hand": iDamage = iDamage * 0.5; break; case "right_leg_upper": iDamage = iDamage * 0.75; break; case "left_leg_upper": iDamage = iDamage * 0.75; break; case "right_leg_lower": iDamage = iDamage * 0.5; break; case "left_leg_lower": iDamage = iDamage * 0.5; break; case "right_foot": iDamage = iDamage * 0.5; break; case "left_foot": iDamage = iDamage * 0.5; break; default: break; } if (sHitLoc == "head" || sHitLoc == "helmet") { switch (sWeapon) { case "ak47_acog_mp": iDamage = iDamage * 2.2; break; case "ak47_gl_mp": iDamage = iDamage * 2.2; break; case "ak47_mp": iDamage = iDamage * 2.2; break; case "ak47_reflex": iDamage = iDamage * 2.2; break; case "ak47_silencer": iDamage = iDamage * 2.2; break; case "aw50_acog_mp": iDamage = iDamage * 2.2; break; case "aw50_mp": iDamage = iDamage * 2.2; break; case "deserteaglegold_mp": iDamage = iDamage * 2.2; break; case "g3_acog_mp": iDamage = iDamage * 2.2; break; case "g3_gl_mp": iDamage = iDamage * 2.2; break; case "g3_mp": iDamage = iDamage * 2.2; break; case "g3_reflex_mp": iDamage = iDamage * 2.2; break; case "g3_silencer_mp": iDamage = iDamage * 2.2; break; case "g36c_acog_mp": iDamage = iDamage * 2.2; break; case "g36c_gl_mp": iDamage = iDamage * 2.2; break; case "g36c_mp": iDamage = iDamage * 2.2; break; case "g36c_reflex_mp": iDamage = iDamage * 2.2; break; case "g36c_silencer_mp": iDamage = iDamage * 2.2; break; case "m4_acog_mp": iDamage = iDamage * 2.2; break; case "m4_gl_mp": iDamage = iDamage * 2.2; break; case "m4_mp": iDamage = iDamage * 2.2; break; case "m4_reflex_mp": iDamage = iDamage * 2.2; break; case "m4_silencer_mp": iDamage = iDamage * 2.2; break; case "m14_acog_mp": iDamage = iDamage * 2.2; break; case "m14_gl_mp": iDamage = iDamage * 2.2; break; case "m14_mp": iDamage = iDamage * 2.2; break; case "m14_reflex_mp": iDamage = iDamage * 2.2; break; case "m14_silencer_mp": iDamage = iDamage * 2.2; break; case "m16_acog_mp": iDamage = iDamage * 2.2; break; case "m16_gl_mp": iDamage = iDamage * 2.2; break; case "m16_mp": iDamage = iDamage * 2.2; break; case "m16_reflex_mp": iDamage = iDamage * 2.2; break; case "m16_silencer_mp": iDamage = iDamage * 2.2; break; default: break; } } //iprintln("Weapon: ^5" + sWeapon + " ^7Location: ^6" + sHitLoc + "^7 :: Damage: ^1" + iDamage + " :: ^7Distance: ^2" + dist); } return iDamage; } Spawn_protect_Feedback() { self.feedback_time = 0; if (isDefined(self.feedback_active)) return; self.feedback_active = true; self.prot_hud = newClientHudElem(self); self.prot_hud.x = 0; self.prot_hud.y = 10; self.prot_hud.horzAlign = "center"; self.prot_hud.vertAlign = "middle"; self.prot_hud.alignX = "center"; self.prot_hud.alignY = "middle"; self.prot_hud.fontScale = 1.4; self.prot_hud.font = "objective"; self.prot_hud.color = (1, 0, 0); self.prot_hud.hidewheninmenu = true; self.prot_hud setText("+"); self.prot_hud_box = newClientHudElem( self ); self.prot_hud_box.elemType = "icon"; self.prot_hud_box.x = 0; self.prot_hud_box.y = 10; self.prot_hud_box.horzAlign = "center"; self.prot_hud_box.vertAlign = "middle"; self.prot_hud_box.alignX = "center"; self.prot_hud_box.alignY = "middle"; self.prot_hud_box.width = 30; self.prot_hud_box.height = 30; self.prot_hud_box.xOffset = 0; self.prot_hud_box.yOffset = 0; self.prot_hud_box.sort = -1; self.prot_hud_box.color = (1,1,1); self.prot_hud_box setShader( "progress_bar_fg", 15, 20 ); self.prot_hud_box.hidden = false; while (self.feedback_time < .5) { wait .05; self.feedback_time = self.feedback_time + .05; } self.feedback_active = undefined; if (isDefined(self.prot_hud_box)) self.prot_hud_box destroy(); if (isDefined(self.prot_hud)) self.prot_hud destroy(); }