diff --git a/disable_self_explosive_damage/README.md b/disable_self_explosive_damage/README.md deleted file mode 100644 index 3d3f119..0000000 --- a/disable_self_explosive_damage/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# Disable Self Explosive Damage - -Prevents players from dying to their own grenades and rockets. -Note that if you shoot enough rockets (around 15/20) you can still kill yourself. -This also doesn't prevent players from killing themselves when they hold a frag grenade in their hands. - -You can add `iprintlnbold(iDamage);` at the beginning of `cancelDamage()` or any other variable found in `cancelDamage()` to debug it (see attacked player, attacker, damage, weapon used, damage type etc.) \ No newline at end of file diff --git a/disable_self_explosive_damage/disable_self_explosive_damage.gsc b/disable_self_explosive_damage/disable_self_explosive_damage.gsc deleted file mode 100644 index 41bcf46..0000000 --- a/disable_self_explosive_damage/disable_self_explosive_damage.gsc +++ /dev/null @@ -1,15 +0,0 @@ -init() -{ - level.callbackplayerdamagestub = level.callbackplayerdamage; - level.callbackplayerdamage = ::cancelDamage; -} - -cancelDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset ) -{ - if (eAttacker.name == self.name && sMeansOfDeath == "MOD_PROJECTILE_SPLASH" || eAttacker.name == self.name && sMeansOfDeath == "MOD_GRENADE_SPLASH" || eAttacker.name == self.name && sMeansOfDeath == "MOD_EXPLOSIVE") - { - iDamage = 0; - } - - self [[level.callbackplayerdamagestub]]( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset ); -} \ No newline at end of file diff --git a/small_scripts/README.md b/small_scripts/README.md index fb235db..f0bdd20 100644 --- a/small_scripts/README.md +++ b/small_scripts/README.md @@ -2,6 +2,16 @@ Simple drag and drop scripts +## change_team_names.gsc + +Change the team names to custom names depending on the game mode + +## disable_self_explosive_damage.gsc + +Prevents players from dying to their own grenades and rockets. +Note that if you shoot enough rockets (around 20/30) you can still kill yourself. +This also doesn't prevent players from killing themselves when they hold a frag grenade in their hands. + ## display_player_stats.gsc Display the player's killstreak, total kills and deaths on top of the screen @@ -9,8 +19,4 @@ Display the player's killstreak, total kills and deaths on top of the screen Image ![image](images/display_player_stats.png) - - -## change_team_names.gsc - -Change the team names to custom names depending on the game mode \ No newline at end of file + \ No newline at end of file diff --git a/small_scripts/disable_self_explosive_damage.gsc b/small_scripts/disable_self_explosive_damage.gsc new file mode 100644 index 0000000..0e88147 --- /dev/null +++ b/small_scripts/disable_self_explosive_damage.gsc @@ -0,0 +1,29 @@ +Init() +{ + level.callbackplayerdamagestub = level.callbackplayerdamage; + level.callbackplayerdamage = ::DisableSelfExplosiveDamage; +} + +DisableSelfExplosiveDamage( 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) + { + switch (sMeansOfDeath) + { + case "MOD_PROJECTILE_SPLASH": iDamage = 0; + break; + case "MOD_GRENADE_SPLASH": iDamage = 0; + break; + case "MOD_EXPLOSIVE": iDamage = 0; + break; + } + } + } + } + + self [[level.callbackplayerdamagestub]]( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset ); +} \ No newline at end of file