CheckProximity
From Eternity Wiki
Jump to navigationJump to search
Description
This is an ACS built-in function.
Counts the actors of type classname close to a tagged thing, returning TRUE if they're more (or less, depending on flags) than a given limit. It can also have the side effects (if flags set this way) to change a monster's target, among other things.
Usage
boolean CheckProximity(int tid, str classname, fixed distance[, limit[, flags]])
Parameters
- tid: TID of thing to check proximity of actors against. Only works for one tagged thing.
- classname: class of actors to look for near the tagged thing. Supports both EDF names and ZDoom compatibility names.
- distance: maximum distance (in fixed point) actors must be to tagged thing.
- limit: number of actors to compare against. Without any specific flags, this function will return true if number is >= limit. Default: 1
- flags: various flags. Default: none. NOTE: anything available in "zdefs.acs" but not mentioned here is unimplemented. The flags are:
- CPXF_ANCESTOR or 1: count actor if classname belongs to one of its thingtype ancestors (using the inherits or colon syntax in the EDF thingtype).
- CPXF_LESSOREQUAL or 2: function returns true if number of nearby actors is <= limit.
- CPXF_NOZ or 4: do not calculate altitude difference between actors and tagged thing. By default, Z contributes to the distance.
- CPXF_COUNTDEAD or 8: also count dead actors. By default they're skipped.
- CPXF_DEADONLY or 16: only count dead actors.
- CPXF_EXACT or 32: function returns true only if number of nearby actors is exactly limit.
- CPXF_SETTARGET or 64: add the side effect of changing tagged thing's "target" (monster's enemy or projectile's originator) to one of the encountered actors. Combine this with CPXF_FARTHEST or CPXF_SLOWEST to pick a well-defined target. Otherwise it will prefer an arbitrary (but not random) one.
- CPXF_SETTRACER or 256: add the side effect of changing tagged thing's "tracer" (seeker missile destination or MBF friend leader) to one of the encountered actors. Combine with same flags as for CPXF_SETTARGET.
- CPXF_FARTHEST or 512: if setting target or tracer, pick the farthest actor found in distance range.
- CPXF_CLOSEST or 1024: if setting target or tracer, pick the closest actor found in distance range.
- CPXF_CHECKSIGHT or 4096: only pick actors to which a line of sight from tagged thing exists.
Returns TRUE if the conditions have been met.
Return value
Examples
No examples given.
Notes
No particular notes.
This function's identification in zspecial.acs
is: -98:CheckProximity(3, 6)
.