Garry's Mod Wiki

Revision Difference

CTakeDamageInfo:SetDamageForce#564514

<function name="SetDamageForce" parent="CTakeDamageInfo" type="classfunc"> <description> Sets the directional force of the damage. <note> This function seems to have no effect on player knockback. To disable knockback entirely, see [EFL_NO_DAMAGE_FORCES](https://wiki.facepunch.com/gmod/Enums/EFL#EFL_NO_DAMAGE_FORCES) or use workaround example below. This function only affects entities using the VPHYSICS movetype. This means players and most NPCs won't receive the force vector you provide as knockback. ⤶ If the entity taking damage is using the WALK or STEP holdtypes, the damage force is instead automatically calculated. It will push the entity away from the inflictor's <page>Entity:WorldSpaceCenter</page>, scaling the push by a calculated value involving the total amount of damage and the size of the entity. [Source](https://github.com/ValveSoftware/source-sdk-2013/blob/0565403b153dfcde602f6f58d8f4d13483696a13/src/game/server/baseentity.cpp#L1525)⤶ ⤶ To disable knockback entirely, see [EFL_NO_DAMAGE_FORCES](https://wiki.facepunch.com/gmod/Enums/EFL#EFL_NO_DAMAGE_FORCES) or use the workaround example below.⤶ </note> </description> <realm>Shared</realm> <args> <arg name="force" type="Vector">The vector to set the force to.</arg> </args> </function> <example> <description>Workaround for player knockback quenching.</description> <code> local ent = Entity(1) local oldvel = ent:GetVelocity() -- Damage taking example local dmgi = DamageInfo() dmgi:SetDamageType( DMG_RADIATION ) dmgi:SetDamage( 5 ) dmgi:SetAttacker( Entity(0) ) dmgi:SetInflictor( Entity(0) ) ent:TakeDamageInfo( dmgi ) local newvel = ent:GetVelocity() ent:SetVelocity( oldvel - newvel ) </code> </example>