inAreaArrayIndexes: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
No edit summary
No edit summary
 
(One intermediate revision by the same user not shown)
Line 16: Line 16:
|descr= Returns indices of positions that are within the provided area.
|descr= Returns indices of positions that are within the provided area.


{{Feature|important|Unlike [[inAreaArray]], all positions sent to this command are treated as [[Position#PositionASL|PositionASL]].}}
{{Feature|important|Unlike [[inAreaArray]], all positions sent to this command are treated as [[Position#PositionASL|PositionASL]] but the center as [[PositionAGL]].}}
{{Feature|important|Since {{GVI|arma3|2.20|size= 0.75}} this command is fully compatible with [[inAreaArray]], i.e by default all positions given as [[Array]] or as objects are treated as [[PositionAGL]]. There is also an option to force them to [[PositionWorld]] format.}}


|s1= positions [[inAreaArrayIndexes]] area
|s1= positions [[inAreaArrayIndexes]] area


|p1= positions: [[Array]] of [[Object]]s and/or [[Position]]s and/or [[Location]]s and/or [[String]]s and/or [[Group]]s, where:
|p1= positions: [[Array]] of [[Object]]s and/or [[Position]]s
* [[Object]]s - entities
* [[Position]]s - 2D or 3D positions
* [[Location]]s - locations
* [[String]]s - markers
* [[Group]]s - AI groups, the position is the [[leader]]'s position


|p2= area: [[Array]] or [[Object]] or [[Location]] or [[String]], where:
|p2= area: [[Object]], [[Location]] or [[String]] - the defined area:
* [[Array]] - in format:
** [centre, a, b, angle, isRectangle, c] - area
*** centre: [[Array]] format [[Position#PositionASL|PositionASL]]
*** a: [[Number]] - area X size / 2, in metres
*** b: [[Number]] - area Y size / 2, in metres
*** angle: [[Number]] - area rotation in degrees
*** isRectangle: [[Boolean]] - as the name says
*** c: [[Number]] - area Z size / 2; -1 for infinite height
** [point1, point2, point3, ...] - polygon
* [[Object]] - trigger
* [[Object]] - trigger
* [[Location]] - location
* [[Location]] - location
* [[String]] - marker
* [[String]] - marker name


|r1= [[Array]] of [[Number]]s - indices of ''positions''<nowiki/>'s matching elements
|r1= [[Array]]: [[Number]]s - indexes of matched positions in positions array
 
|s2= positions [[inAreaArrayIndexes]] [centre, a, b, angle, isRectangle, c, usePosWorld]
 
|p21= positions: [[Array]] - [[Object]]s and/or [[Position]]s to check (see note in description)
 
|p22= centre: [[Array]] - [[Position]] [[Object]] or [[Group]] (see note in description)
 
|p23= a: [[Number]] - x axis (x / 2)
 
|p24= b: [[Number]] - y axis (y / 2)
 
|p25= angle: [[Number]] - (Optional, default 0) rotation angle
 
|p26= isRectangle: [[Boolean]] - (Optional, default [[false]]) [[true]] if rectangle, [[false]] if ellipse
 
|p27= c: [[Number]] - (Optional, default -1: unlimited) z axis (z / 2)
 
|p28= usePosWorld: [[Boolean]] - (Optional, default [[false]]) set to [[true]] to treat all positions as [[PositionWorld]]
|p28since= Arma3 2.20
 
|r2= [[Array]]: [[Number]]s - indexes of matched positions in positions array
 
|s3= positions [[inAreaArrayIndexes]] [pos1, pos2, pos3,...]
|p41= positions: [[Array]] - [[Object]]s and/or [[Position]]s to check.
|p42 = posN: [[Position]] - polygon vertices in 2d or 3d format (see [[inPolygon]])
|r3= [[Array]]: [[Number]]s - indexes of matched positions in positions array


|x1= <sqf>
|x1= <sqf>

Latest revision as of 22:37, 1 November 2024

Hover & click on the images for description

Description

Description:
Returns indices of positions that are within the provided area.
Unlike inAreaArray, all positions sent to this command are treated as PositionASL but the center as PositionAGL.
Since Arma 3 logo black.png2.20 this command is fully compatible with inAreaArray, i.e by default all positions given as Array or as objects are treated as PositionAGL. There is also an option to force them to PositionWorld format.
Groups:
TriggersMarkersLocationsPositionsGroups

Syntax 1

Syntax:
positions inAreaArrayIndexes area
Parameters:
positions: Array of Objects and/or Positions
area: Object, Location or String - the defined area:
Return Value:
Array: Numbers - indexes of matched positions in positions array

Syntax 2

Syntax:
positions inAreaArrayIndexes [centre, a, b, angle, isRectangle, c, usePosWorld]
Parameters:
positions: Array - Objects and/or Positions to check (see note in description)
centre: Array - Position Object or Group (see note in description)
a: Number - x axis (x / 2)
b: Number - y axis (y / 2)
angle: Number - (Optional, default 0) rotation angle
isRectangle: Boolean - (Optional, default false) true if rectangle, false if ellipse
c: Number - (Optional, default -1: unlimited) z axis (z / 2)
since Arma 3 logo black.png2.20
usePosWorld: Boolean - (Optional, default false) set to true to treat all positions as PositionWorld
Return Value:
Array: Numbers - indexes of matched positions in positions array

Syntax 3

Syntax:
positions inAreaArrayIndexes [pos1, pos2, pos3,...]
Parameters:
positions: Array - Objects and/or Positions to check.
posN: Position - polygon vertices in 2d or 3d format (see inPolygon)
Return Value:
Array: Numbers - indexes of matched positions in positions array

Examples

Example 1:
private _players = call BIS_fnc_listPlayers; private _indices = _players inAreaArrayIndexes _marker; { private _player = _players select _x; ["You are in the marker!"] remoteExec ["hint", _player]; } forEach _indices;

Additional Information

See also:
inAreaArray inArea triggerArea

Notes

Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note