Init() { level.callbackplayerdamagestub = level.callbackplayerdamage; level.callbackplayerdamage = ::DisableDamages; } DisableDamages( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset ) { if (isDefined(eAttacker)) { if (isDefined(eAttacker.guid) && isDefined(self.guid)) { if (eAttacker.guid == self.guid) { // Disable explosive damage on self switch (sMeansOfDeath) { case "MOD_PROJECTILE_SPLASH": iDamage = 0; break; case "MOD_GRENADE_SPLASH": iDamage = 0; break; case "MOD_EXPLOSIVE": iDamage = 0; break; } } else { // Disable melee knifing damage if (sMeansOfDeath == "MOD_MELEE") { iDamage = 0; } } } } self [[level.callbackplayerdamagestub]]( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset ); }