From Valve Developer Community
Revision as of 02:11, 10 April 2011 by LordNed (talk | contribs) (See also: Fixed Traceline link)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

FireBullets() is a method which handles damage for any hitscan weapon. It is passed FireBulletsInfo_t as its required parameter, which describes the bullet in question.



Name given to the FireBulletsInfo struct that is passed into method.


Stores the ammo definition in a pointer.


Used to store the actual damage to be done to entity.


If it's deemed we are damaging a player, this is used instead of flActualDamage


TraceLine used when the weapon fired. tr.m_pEnt is the entity that was intersected e.g. NPC, crate, wall.


This is the core function where the damage is done to the entity. DispatchTraceAttack is passed dmgInfo which contains the attacker, damage value and damage type.

CTakeDamageInfo dmgInfo( this, pAttacker, flActualDamage, nActualDamageType );
CalculateBulletDamageForce( &dmgInfo, info.m_iAmmoType, vecDir, tr.endpos );
dmgInfo.ScaleDamageForce( info.m_flDamageForceScale );
dmgInfo.SetAmmoType( info.m_iAmmoType );
tr.m_pEnt->DispatchTraceAttack( dmgInfo, vecDir, &tr );

See also