Filter multi

From Valve Developer Community
Revision as of 17:10, 8 September 2018 by Pinsplash (talk | contribs) (updates)
Jump to navigation Jump to search
English (en)Translate (Translate)

Template:Base point It is a filter that tests the activator against multiple other filters. This allows you to build more complex filters, such as "Allow anyone on Team 1 who is also class engineer", or "Allow everything except classes npc_zombie and npc_headcrab". filter_multi can even be used with other filter_multis.

C++ In code, it is represented by theCFilterMultipleclass, defined in thefilters.cppfile.

Keyvalues

Logic Type (FilterType) ([todo internal name (i)]) <choices>
Boolean logic applied when testing the filters. See logic gate for information on more complex checking patterns.
  • 0: AND (all filters must pass)
  • 1: OR (any filter must pass)
Filter 1 (Filter01) ([todo internal name (i)]) to Filter 5 (Filter05) <filter>
Activator filter to test.
Filter 6 (Filter06) ([todo internal name (i)]) to Filter 10 (Filter10) <filter> (in all games since Left 4 Dead)
Activator filter to test.

BaseFilter:

Negate Outcome (Negated) ([todo internal name (i)]) <boolean>
Whether to negate the result of the sub-filters, after combining them using the Logic Type chosen. Negating the outcome using the AND logic type means that any sub-filter must fail for this filter to pass. Negating the outcome using the OR logic type means that all sub-filters must fail for this filter to pass.


Inputs

BaseFilter:

TestActivator <variantRedirectInput/variant>
Tests the entity that called the input (the !activator) against the filter, and fires either the OnPass or OnFail output. (the parameter it takes is unused)
Icon-Bug.pngBug:Calling this input will cause the server to crash if the !activator entity no longer exists. Do not use this input to test any entities which may be asynchronously deleted, such as players or projectiles, or in an i/o chain which might be initiated by entity deletion, such as the OnEndTouch output of a trigger.


Outputs

BaseFilter:

OnPass
OnFail
!activator = activator of TestActivator input
!caller = this entity
One of these will fire when TestActivator input is sent, depending on if the activator is allowed by the filter or not.