See post #15 for an example plugin and the include file.
PHP Code:
/**
* @brief Forward when an invulnerable client is taking damage.
* @brief You can modify damage and return Plugin_Handled or Plugin_Changed etc like OnTakeDamage.
*
* @param client The client who is invulnerable.
* @param attacker The attacker damaging the client.
* @param damage Amount of damage being dealt.
* @param damagetype Bitfield of damage types.
* @return Plugin_Changed to modify values or Plugin_Continue to continue without changes.
*/
forward Action OnTakeDamage_Invulnerable(int client, int attacker, float &damage, int &damagetype);
Cvars:
Saved to l4d_god_frames.cfg in your servers \cfg\sourcemod\ folder.
PHP Code:
// These cvars only affect damage being dealt during god frames.
l4d_god_frames_damage_boomer "1.0" // 0.0=None. 1.0=Full. Scale damage dealt by Boomer.
l4d_god_frames_damage_charger "1.0" // 0.0=None. 1.0=Full. Scale damage dealt by Charger.
l4d_god_frames_damage_common "1.0" // 0.0=None. 1.0=Full. Scale damage dealt by Common Infected.
l4d_god_frames_damage_fire "1.0" // 0.0=None. 1.0=Full. Scale damage dealt by Fire.
l4d_god_frames_damage_hunter "1.0" // 0.0=None. 1.0=Full. Scale damage dealt by Hunter.
l4d_god_frames_damage_jockey "1.0" // 0.0=None. 1.0=Full. Scale damage dealt by Jockey.
l4d_god_frames_damage_smoker "1.0" // 0.0=None. 1.0=Full. Scale damage dealt by Smoker.
l4d_god_frames_damage_spitter "1.0" // 0.0=None. 1.0=Full. Scale damage dealt by Spitter.
l4d_god_frames_damage_survivor "1.0" // 0.0=None. 1.0=Full. Scale damage dealt by other Survivors.
l4d_god_frames_damage_tank "1.0" // 0.0=None. 1.0=Full. Scale damage dealt by Tank.
l4d_god_frames_damage_witch "1.0" // 0.0=None. 1.0=Full. Scale damage dealt by Witch.
l4d_god_frames_damage_world "1.0" // 0.0=None. 1.0=Full. Scale damage dealt by World.
l4d_god_frames_delay_boomer "0.0" // 0.0=None. Minimum time before damage can be dealt again by Boomer.
l4d_god_frames_delay_charger "0.0" // 0.0=None. Minimum time before damage can be dealt again by Charger.
l4d_god_frames_delay_common "0.0" // 0.0=None. Minimum time before damage can be dealt again by Common Infected.
l4d_god_frames_delay_fire "0.0" // 0.0=None. Minimum time before damage can be dealt again by Fire.
l4d_god_frames_delay_hunter "0.0" // 0.0=None. Minimum time before damage can be dealt again by Hunter.
l4d_god_frames_delay_jockey "0.0" // 0.0=None. Minimum time before damage can be dealt again by Jockey.
l4d_god_frames_delay_smoker "0.0" // 0.0=None. Minimum time before damage can be dealt again by Smoker.
l4d_god_frames_delay_spitter "0.1" // 0.0=None. Minimum time before damage can be dealt again by Spitter.
l4d_god_frames_delay_survivor "0.0" // 0.0=None. Minimum time before damage can be dealt again by other Survivors.
l4d_god_frames_delay_tank "0.0" // 0.0=None. Minimum time before damage can be dealt again by Tank.
l4d_god_frames_delay_witch "0.0" // 0.0=None. Minimum time before damage can be dealt again by Witch.
l4d_god_frames_delay_world "0.0" // 0.0=None. Minimum time before damage can be dealt again by World.
l4d_god_frames_incapacitated "0" // 0=Remove God Frames from incapacitated players, 1=Allow God Frames.
l4d_god_frames_allow "1" // 0=Plugin off, 1=Plugin on, 2=Enable forward only.
l4d_god_frames_modes "" // Turn on the plugin in these game modes, separate by commas (no spaces). (Empty = all).
l4d_god_frames_modes_off "" // Turn off the plugin in these game modes, separate by commas (no spaces). (Empty = none).
l4d_god_frames_modes_tog "0" // Turn on the plugin in these game modes. 0=All, 1=Coop, 2=Survival, 4=Versus, 8=Scavenge. Add numbers together
l4d_god_frames_version // God Frames Patch plugin version.
Changes:
Code:
1.7 (26-Oct-2023)
- Fixed errors if the "m_zombieClass" is out of range. Thanks to "chungocanh12" for reporting.
1.6 (29-Apr-2022)
- Added cvar "l4d_god_frames_incapacitated" to control damage on Incapacitated players. Requested by "ZBzibing".
- Changed cvar "l4d_god_frames_allow" to allow the value "2" which only enables the forward.
- Changed forward "OnTakeDamage_Invulnerable" params to show the damage type.
- Potentially fixed reviving players instantly being incapacitated. Thanks to "Eyal282" for reporting.
1.5 (10-May-2020)
- Added better error log message when gamedata file is missing.
- Extra checks to prevent "IsAllowedGameMode" throwing errors.
- Fixed delay cvars being read wrong for: world, fire, common, witch, tank.
- Various changes to tidy up code.
1.4 (01-Apr-2020)
- Fixed "IsAllowedGameMode" from throwing errors when the "_tog" cvar was changed before MapStart.
1.3 (05-Feb-2020)
- Moved forward creation to the correct place. Was rushed for demonstration.
1.2 (21-Jan-2020)
- Fixed L4D1 not using IsInvulnerable function in OnTakeDamage. Thanks to "fbef0102" for reporting.
- Thanks to Lux for various help. L4D1 now reads and sets the IsInvulnerable timer directly.
- L4D1 gamedata update required.
- L4D2 gamedata update required if updating from 1.0.
1.1.2 beta (13-Jan-2020)
- Added forward "OnTakeDamage_Invulnerable" to allow 3rd party plugins to modify invulnerable damage.
1.1.1 beta (13-Jan-2020)
- Fixed not resetting delay timers OnMapEnd.
1.1 beta (13-Jan-2020)
- Added a heap of new cvars to control damage for individual infected etc.
- New gamedata required.
1.0 (01-Dec-2019)
- Initial release.