FireBullets(): Difference between revisions
Jump to navigation
Jump to search
No edit summary |
m (→See also: Fixed Traceline link) |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
'''<code>FireBullets()</code>''' is a method which handles damage for any [[hitscan]] weapon. It is passed [[FireBulletsInfo_t]] as | '''<code>FireBullets()</code>''' 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. | ||
== Members == | == Members == | ||
Line 10: | Line 10: | ||
'''<code>flActualDamage</code>''' | '''<code>flActualDamage</code>''' | ||
:Used to | :Used to store the actual damage to be done to entity. | ||
'''<code>iPlayerDamage</code>''' | '''<code>iPlayerDamage</code>''' | ||
Line 16: | Line 16: | ||
'''<code>tr</code>''' | '''<code>tr</code>''' | ||
:<code>[[TraceLine]]</code> used when the weapon fired. <code>tr.m_pEnt</code> is the entity that was intersected e.g. NPC, crate, wall. | :<code>[[UTIL_TraceLine|TraceLine]]</code> used when the weapon fired. <code>tr.m_pEnt</code> is the entity that was intersected e.g. NPC, crate, wall. | ||
== Damage == | == Damage == | ||
Line 32: | Line 32: | ||
* [[AmmoDef]] | * [[AmmoDef]] | ||
* <code>[[FireBulletsInfo t]]</code> | * <code>[[FireBulletsInfo t]]</code> | ||
* <code>[[TraceLine]]</code> | * <code>[[UTIL_TraceLine|TraceLine]]</code> | ||
[[Category:Weapons programming]] | [[Category:Weapons programming]] |
Latest revision as of 19:11, 9 April 2011
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.
Members
info
- Name given to the
FireBulletsInfo
struct that is passed into method.
pAmmoDef
- Stores the ammo definition in a pointer.
flActualDamage
- Used to store the actual damage to be done to entity.
iPlayerDamage
- If it's deemed we are damaging a player, this is used instead of
flActualDamage
tr
TraceLine
used when the weapon fired.tr.m_pEnt
is the entity that was intersected e.g. NPC, crate, wall.
Damage
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 );