Template:Effect: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
No edit summary
(→‎In a map: the heck is "simulation functionality"?)
 
(3 intermediate revisions by one other user not shown)
Line 1: Line 1:
== Usage ==
== Usage ==
=== In code ===
=== In code ===
Inside of the codebase, effects are defined as a bit-based enum and are stored in <code>m_fEffects</code>. This effect can be manipulated with <code>AddEffects( {{PAGENAMEE}} )</code>, <code>RemoveEffects( {{PAGENAMEE}} )</code>, and <code>SetEffects( {{PAGENAMEE}} )</code>. This effect can be obtained with <code>GetEffects() & {{PAGENAMEE}}</code> or <code>IsEffectActive( {{PAGENAMEE}} )</code>.
Inside of the codebase, effects are defined as a bit-based enum and are stored in <code>m_fEffects</code>. This effect can be manipulated with <code>AddEffects( {{PAGENAMEE}} )</code>, <code>RemoveEffects( {{PAGENAMEE}} )</code>, and <code>SetEffects( {{PAGENAMEE}} )</code>. This effect can be obtained with <code>GetEffects() & {{PAGENAMEE}}</code> or <code>IsEffectActive( {{PAGENAMEE}} )</code>.


=== In scripting ===
=== In scripting ===
 
The functions mentioned above are supported in [[VScript]] starting with {{dota2|1}}. They can also be found in {{gmod|1}}.
The functions mentioned above are supported in [[VScript]] starting with {{Game link|Dota 2}}. They can also be found in {{Game link|Garry's Mod}}.


=== In a map ===
=== In a map ===
{{#if:{{{mapcfg|}}} | {{{mapcfg}}} |
{{#if:{{{mapcfg|}}} | {{{mapcfg}}} |
To use this effect in a map, {{#if:{{{2|}}}|{{{2}}}}} turn off SmartEdit mode and add the following keyvalue pair to the entity: <code>effects {{{1}}}</code>.
To use this effect in a map, {{#if:{{{2|}}}|{{{2}}}}} turn off SmartEdit mode and add the following keyvalue pair to the entity: <code>effects {{{1}}}</code>.
Line 18: Line 14:
You can set the <code>effects</code> keyvalue during runtime using {{ent|AddOutput}} with the input value <code>effects x</code> (x being any summation of effects flags to enable).
You can set the <code>effects</code> keyvalue during runtime using {{ent|AddOutput}} with the input value <code>effects x</code> (x being any summation of effects flags to enable).


{{warning|Using <code>AddOutput</code> to change an entity's effects may interfere with an entity's simulation functionality.}}
{{warning|Using <code>AddOutput</code> to change an entity's effects may interfere with an entity's simulation functionality.<noinclude>{{clarify}}</noinclude>}}
}}
}}

Latest revision as of 07:20, 24 September 2025

Usage

In code

Inside of the codebase, effects are defined as a bit-based enum and are stored in m_fEffects. This effect can be manipulated with AddEffects( Effect ), RemoveEffects( Effect ), and SetEffects( Effect ). This effect can be obtained with GetEffects() & Effect or IsEffectActive( Effect ).

In scripting

The functions mentioned above are supported in VScript starting with Dota 2. They can also be found in Garry's Mod.

In a map

To use this effect in a map, turn off SmartEdit mode and add the following keyvalue pair to the entity: effects {{{1}}}.

Note.pngNote:If it is desired to use this with other effects, you should add the integer value of each effect to the value.

You can set the effects keyvalue during runtime using AddOutput with the input value effects x (x being any summation of effects flags to enable).

Warning.pngWarning:Using AddOutput to change an entity's effects may interfere with an entity's simulation functionality.[Clarify]