Difference between revisions of "Damageinfo functions"

From Fortress Forever Wiki
Jump to navigationJump to search
(Removing all content from page)
(Undo revision 9056 by Crazycarl (Talk))
 
Line 1: Line 1:
 +
Damageinfo is an object that's passed along whenever a player is damaged or dies. By intercepting this object, you can detect events in the game, or change the outcome of those events. Damageinfo can be accessed from within the callbacks [[Lua:player_ondamage|player_ondamage]] and [[Lua:player_onkilled|player_onkilled]].
  
 +
===Usage===
 +
CTakeDamageInfo:'' function''(''parameters'')
 +
 +
===Example===
 +
<pre>function player_ondamage( player, damageinfo )
 +
 +
-- if no damageinfo do nothing
 +
if not damageinfo then return end
 +
 +
local attacker = damageinfo:GetAttacker()
 +
local inflictor = damageinfo:GetInflictor()
 +
 +
-- hunted has body armor on and only takes damage from certain things
 +
if player:GetTeamId() == Team.kBlue then
 +
local weapon = damageinfo:GetInflictor():GetClassName()
 +
local attacker_is_buildable = false
 +
 +
if IsSentrygun(attacker) or IsDispenser(attacker) or IsSentrygun(inflictor) or IsDispenser(inflictor) then
 +
attacker_is_buildable = true
 +
end
 +
if attacker_is_buildable ~= true and weapon ~= "ff_weapon_sniperrifle" and weapon ~= "ff_weapon_crowbar" and weapon ~= "ff_projectile_dart" and weapon ~= "ff_weapon_knife" then
 +
damageinfo:ScaleDamage(0)
 +
else
 +
end
 +
 +
-- hunted also has quad damage
 +
else
 +
if IsPlayer( attacker ) then
 +
attacker = CastToPlayer( attacker )
 +
if attacker:GetTeamId() == Team.kBlue and player:GetTeamId() ~= HUNTED_ALLIES_TEAM then
 +
damageinfo:ScaleDamage(4)
 +
attacker:AddFortPoints( POINTS_PER_HUNTED_ATTACK * 10, "Hunted Attack" )
 +
ConsoleToAll( "The Hunted, " .. attacker:GetName() .. ", dealt quad damage to" .. player:GetName() .. "!" )
 +
end
 +
end
 +
end
 +
end
 +
</pre>
 +
 +
===Functions===
 +
TODO: list parameters, return types, and descriptions
 +
GetAttacker
 +
GetInflictor
 +
GetDamage
 +
GetDamageForce
 +
GetDamagePosition
 +
GetDamageType
 +
GetAmmoType
 +
ScaleDamage
 +
SetDamage
 +
 +
[[Category:Lua]]
 +
[[Category:Lua_Commands]]

Latest revision as of 13:18, 28 June 2009

Damageinfo is an object that's passed along whenever a player is damaged or dies. By intercepting this object, you can detect events in the game, or change the outcome of those events. Damageinfo can be accessed from within the callbacks player_ondamage and player_onkilled.

Usage

CTakeDamageInfo: function(parameters)

Example

function player_ondamage( player, damageinfo )

	-- if no damageinfo do nothing
	if not damageinfo then return end

	local attacker = damageinfo:GetAttacker()
	local inflictor = damageinfo:GetInflictor()

	-- hunted has body armor on and only takes damage from certain things
	if player:GetTeamId() == Team.kBlue then
		local weapon = damageinfo:GetInflictor():GetClassName()
		local attacker_is_buildable = false

		if IsSentrygun(attacker) or IsDispenser(attacker) or IsSentrygun(inflictor) or IsDispenser(inflictor) then
			attacker_is_buildable = true
		end
		if attacker_is_buildable ~= true and weapon ~= "ff_weapon_sniperrifle" and weapon ~= "ff_weapon_crowbar" and weapon ~= "ff_projectile_dart" and weapon ~= "ff_weapon_knife" then
			damageinfo:ScaleDamage(0)
		else
		end

	-- hunted also has quad damage
	else
		if IsPlayer( attacker ) then
			attacker = CastToPlayer( attacker )
			if attacker:GetTeamId() == Team.kBlue and player:GetTeamId() ~= HUNTED_ALLIES_TEAM then
				damageinfo:ScaleDamage(4)
				attacker:AddFortPoints( POINTS_PER_HUNTED_ATTACK * 10, "Hunted Attack" )
				ConsoleToAll( "The Hunted, " .. attacker:GetName() .. ", dealt quad damage to" .. player:GetName() .. "!" )
			end
		end
	end
end

Functions

TODO: list parameters, return types, and descriptions

GetAttacker 
GetInflictor
GetDamage 
GetDamageForce 
GetDamagePosition 
GetDamageType
GetAmmoType
ScaleDamage
SetDamage