Difference between revisions of "isFlatEmpty"

From Bohemia Interactive Community
Jump to navigation Jump to search
m
m
Line 40: Line 40:
  
  
|x1=Check if player position is over land:<code>_overLand = !([[position]] [[player]] [[isFlatEmpty]] [-1, -1, -1, 1, 0, [[false]]] [[isEqualTo]] []);</code> |= EXAMPLE1  
+
|x1=Check if player position is over land:<code>_overLand = !([[position]] [[player]] [[isFlatEmpty]] [-1, -1, -1, -1, 0, [[false]]] [[isEqualTo]] []);</code> |= EXAMPLE1  
|x2=Check if player position is over shore line:<code>_overShore = !([[position]] [[player]] [[isFlatEmpty]]  [-1, -1, -1, 1, 0, [[true]]] [[isEqualTo]] []);</code> |= EXAMPLE2
+
|x2=Check if player position is over shore line:<code>_overShore = !([[position]] [[player]] [[isFlatEmpty]]  [-1, -1, -1, -1, 0, [[true]]] [[isEqualTo]] []);</code> |= EXAMPLE2
|x3=Check if player position is over water:<code>_overWater = !([[position]] [[player]] [[isFlatEmpty]]  [-1, -1, -1, 1, 2, [[false]]] [[isEqualTo]] []);</code> |= EXAMPLE3
+
|x3=Check if player position is over water:<code>_overWater = !([[position]] [[player]] [[isFlatEmpty]]  [-1, -1, -1, -1, 2, [[false]]] [[isEqualTo]] []);</code> |= EXAMPLE3
|x4=Check if no object is closer than 5m to player position:<code>_isEmpty = !([[position]] [[player]] [[isFlatEmpty]]  [5, -1, -1, 1, -1, [[false]], [[player]]] [[isEqualTo]] []);</code> |= EXAMPLE4
+
|x4=Check if no object is closer than 5m to player position:<code>_isEmpty = !([[position]] [[player]] [[isFlatEmpty]]  [5, -1, -1, -1, -1, [[false]], [[player]]] [[isEqualTo]] []);</code> |= EXAMPLE4
 
|x5=Check if area 10m around player position is relatively flat:<code>_isFlat = !([[position]] [[player]] [[isFlatEmpty]]  [-1, -1, 0.3, 10, -1] [[isEqualTo]] []);</code> |= EXAMPLE5
 
|x5=Check if area 10m around player position is relatively flat:<code>_isFlat = !([[position]] [[player]] [[isFlatEmpty]]  [-1, -1, 0.3, 10, -1] [[isEqualTo]] []);</code> |= EXAMPLE5
 
|x6=Check if area 15m around player position is very flat and empty:<code>_isFlatEmpty = !([[position]] [[player]] [[isFlatEmpty]]  [15, -1, 0.1, 15, -1, [[false]], [[player]]] [[isEqualTo]] []);</code> |= EXAMPLE6
 
|x6=Check if area 15m around player position is very flat and empty:<code>_isFlatEmpty = !([[position]] [[player]] [[isFlatEmpty]]  [15, -1, 0.1, 15, -1, [[false]], [[player]]] [[isEqualTo]] []);</code> |= EXAMPLE6

Revision as of 02:20, 16 March 2016

Introduced with Arma 2 version 1.00
  

Click on the images for descriptions

Introduced in

Game:
Arma 2
Version:
1.00

Description

Description:
Checks given position against given filter params. Filter includes checks for:
  • If there are any objects closer than given distance from given position (in 2D)
  • If the area around position is flat enough to match given gradient
  • If the given position is over water or land
  • If the given position is over shore line
The gradient seems to correlate with general hill steepness: 0.1 (10%) ~6o, 0.5 (50%) ~27o, 1.0 (100%) ~45o, etc.There are also some oddities about this command that need to be noted:
  • Objects accounted for proximity check seem to be static objects. Nearby vehicles and units do not seem to affect the output
  • Given position will be magically transferred into given position + getTerrainHeightASL value
  • The second element must be -1 (<= 0 really) at all times, otherwise command becomes unusable
  • The command might be a bit heavy on computations so avoid frequent and large area checks

Syntax

Syntax:
position isFlatEmpty [minDistance, -1, maxGradient, maxGradientRadius, overLandOrWater, shoreLine, ignoreObject]
Parameters:
position: Array - position in format PositionAGL
[minDistance, -1, maxGradient, maxGradientRadius, overLandOrWater, shoreLine, ignoreObject]: Array
minDistance (Optional): Number - Objects within 50m cannot be closer than minDistance. -1 to ignore proximity check. Default: -1
-1 (Optional): Number - Position check mode (DON'T CHANGE). Default -1
maxGradient (Optional): Number - Maximum terrain steepness allowed. -1 to ignore. Default: -1
maxGradientRadius (Optional): Number - How far to extend gradient check. Default: 1
overLandOrWater (Optional): Number - 0: position cannot be over water; 2: position cannot be over land. -1 to ignore. Default: 0
shoreLine (Optional): Boolean - true: position is over shoreline (< ~25 m from water). false to ignore. Default: false
ignoreObject (Optional): Object - Object to ignore in proximity checks. objNull to ignore. Default: objNull
Return Value:
Array - Empty array [] if check failed or PositionASL if succeded. Resulting position will be original PositionAGL + getTerrainHeightASL

Examples

Example 1:
Check if player position is over land:_overLand = !(position player isFlatEmpty [-1, -1, -1, -1, 0, false] isEqualTo []);
Example 2:
Check if player position is over shore line:_overShore = !(position player isFlatEmpty [-1, -1, -1, -1, 0, true] isEqualTo []);
Example 3:
Check if player position is over water:_overWater = !(position player isFlatEmpty [-1, -1, -1, -1, 2, false] isEqualTo []);
Example 4:
Check if no object is closer than 5m to player position:_isEmpty = !(position player isFlatEmpty [5, -1, -1, -1, -1, false, player] isEqualTo []);
Example 5:
Check if area 10m around player position is relatively flat:_isFlat = !(position player isFlatEmpty [-1, -1, 0.3, 10, -1] isEqualTo []);
Example 6:
Check if area 15m around player position is very flat and empty:_isFlatEmpty = !(position player isFlatEmpty [15, -1, 0.1, 15, -1, false, player] isEqualTo []);

Additional Information

Multiplayer:
-
See also:
selectBestPlacesfindEmptyPosition

Notes

Only post proven facts here. Report bugs on the feedback tracker. Use the talk page or the forums for discussions.
Add New Note | How To

Notes

Bottom Section