Lua:player ondamage
From Fortress Forever Wiki
Revision as of 21:18, 12 December 2007 by Stevenm64-10860 (talk | contribs) (New page: This function is called whenever a player takes damage. The following variables are set in the global lua namespace before this function is called: *info_damage: The amount of damage that ...)
This function is called whenever a player takes damage. The following variables are set in the global lua namespace before this function is called:
- info_damage: The amount of damage that the player will recieve.
- info_attacker: The player that fired the attack.
- info_classname: The classname of the weapon that hit the player. Note that this may be the classname of the projectile for projectile weapons, or the classname of the weapon for non-projectile weapons.
This function may modify the info_damage global variable in the global scope. If it does, the damage the player takes will be changed. This means that the script for a map can make players recieve more or less damage through scripting. Here is an example script that makes the player take no damage from the super shotgun.
function player_ondamage(player_id) ConsoleToAll(GetPlayerName(info_attacker).." shot "..GetPlayerName(player_id).." with a "..info_classname.." for "..info_damage.." damage") if info_classname == "ff_weapon_supershotgun" then ConsoleToAll("Take no damage from supershotty") info_damage = 0 end end
Here's another example in case you wanted to not take damage from your own rockets:
function player_ondamage( player_id ) -- Don't take rocket damage from ourselves if ( player_id == info_attacker ) then if ( info_classname == "rocket" ) then info_damage = 0 end end end