Revision Difference
Entity:TakeDamageInfo#546338
<function name="TakeDamageInfo" parent="Entity" type="classfunc">
<description>
Applies the damage specified by the damage info to the entity.
<warning>Calling this function on the victim entity in <page>ENTITY:OnTakeDamage</page> can cause infinite loops.</warning>
</description>
<realm>Server</realm>
<args>
<arg name="damageInfo" type="CTakeDamageInfo">The damage to apply.</arg>
</args>
</function>
<example>
<description>Dissolve the target into oblivion.⤶
⤶
If you just want to dissolve your SENT, you may need to use [env_entity_dissolver](https://developer.valvesoftware.com/wiki/Env_entity_dissolver) for this.</description>⤶
<description>Dissolve the target into oblivion.</description>⤶
<code>
function DissolveIt( ent, ply )
local d = DamageInfo()
d:SetDamage( ent:Health() )
d:SetAttacker( ply or ent )
d:SetDamageType( DMG_DISSOLVE )
ent:TakeDamageInfo( d )
end
concommand.Add( "dissolve_it", function( ply, cmd, arg )
local ent = ply:GetEyeTrace().Entity
if ( !IsValid( ent ) ) then return end -- Not looking at a valid entity
DissolveIt( ent, ply )
end )
</code>
⤶
</example></example>⤶
⤶
<example>⤶
<description>If you just want to dissolve your SENT, you may need to use [env_entity_dissolver](https://developer.valvesoftware.com/wiki/Env_entity_dissolver) for this, like below;</description>⤶
<code>⤶
function MakeDissolver( ent, position, attacker, dissolveType )⤶
⤶
local Dissolver = ents.Create( "env_entity_dissolver" )⤶
timer.Simple(5, function()⤶
if IsValid(Dissolver) then⤶
Dissolver:Remove() -- backup edict save on error⤶
end⤶
end)⤶
⤶
Dissolver.Target = "dissolve"..ent:EntIndex()⤶
Dissolver:SetKeyValue( "dissolvetype", dissolveType )⤶
Dissolver:SetKeyValue( "magnitude", 0 )⤶
Dissolver:SetPos( position )⤶
Dissolver:SetPhysicsAttacker( attacker )⤶
Dissolver:Spawn()⤶
⤶
ent:SetName( Dissolver.Target )⤶
⤶
Dissolver:Fire( "Dissolve", Dissolver.Target, 0 )⤶
Dissolver:Fire( "Kill", "", 0.1 )⤶
⤶
return Dissolver⤶
end⤶
⤶
concommand.Add( "dissolve_it", function( ply, cmd, arg )⤶
local ent = ply:GetEyeTrace().Entity⤶
if ( !IsValid( ent ) ) then return end -- Not looking at a valid entity⤶
⤶
local dissolver = MakeDissolver( ent, ent:GetPos(), ply, 0 )⤶
end )⤶
</code>⤶
</example>