nearestObject: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "\{\{Note([^<]*)<code>([^<]*)<\/code>" to "{{Note$1<sqf>$2</sqf>")
m (Some wiki formatting)
Line 65: Line 65:


|x2= Return the object with ID 123456:
|x2= Return the object with ID 123456:
<code>_nObject = [0,0,0] nearestObject 123456;</code>
<sqf>_nObject = [0,0,0] nearestObject 123456;</sqf>


|x3= <sqf>_nObject = getPos player nearestObject "StreetLamp";</sqf>
|x3= <sqf>_nObject = getPos player nearestObject "StreetLamp";</sqf>


|x4= Return the nearest object with ([[typeOf]] _nObject == "#XXXX") -> #mark, #slop, etc. Unlimited search range:
|x4= Return the nearest object with ([[typeOf]] _nObject == "#XXXX") -> #mark, #slop, etc. Unlimited search range:
<code>_nObject = _position nearestObject -1;</code>
<sqf>_nObject = _position nearestObject -1;</sqf>


Return the nearest object with ([[typeOf]] _nObject != ""). Search range is 50m:
Return the nearest object with ([[typeOf]] _nObject != ""). Search range is 50m:
Line 76: Line 76:


|x5= (See also [[allMissionObjects]]):
|x5= (See also [[allMissionObjects]]):
<code>_blood = nearestObject [<nowiki/>player, "#slop"];
<sqf>
_step   = [[nearestObject]] [<nowiki/>[[player]], "#mark"];
_blood = nearestObject [player, "#slop"];
_track = [[nearestObject]] [<nowiki/>[[player]], "#track"];
_step = nearestObject [player, "#mark"];
_crater = nearestObject [<nowiki/>player, "#crater"];</code>
_track = nearestObject [player, "#track"];
_crater = nearestObject [player, "#crater"];
</sqf>


|seealso= [[nearestObjects]] [[nearObjectsReady]] [[nearObjects]] [[objectFromNetId]] [[nearEntities]] [[entities]] [[object]] [[nearestBuilding]] [[nearestTerrainObjects]] [[nearestMines]]
|seealso= [[nearestObjects]] [[nearObjectsReady]] [[nearObjects]] [[objectFromNetId]] [[nearEntities]] [[entities]] [[object]] [[nearestBuilding]] [[nearestTerrainObjects]] [[nearestMines]]
Line 88: Line 90:
|timestamp= 20190129153100
|timestamp= 20190129153100
|text= The ID for Syntax 4 may be dynamically obtained via the following (as of {{arma3}} v1.88):
|text= The ID for Syntax 4 may be dynamically obtained via the following (as of {{arma3}} v1.88):
<sqf>// returns Object Terrain/Visitor ID, or -1 if no ID found (invalid/null object)
<sqf>
// returns Object Terrain/Visitor ID, or -1 if no ID found (invalid/null object)
cursorObject call {
cursorObject call {
private _obj = str (param [0, objNull]);
private _obj = str (param [0, objNull]);
Line 101: Line 104:
};
};
_id
_id
};</sqf>
};
</sqf>
}}
}}


Line 107: Line 111:
|user= blackfisch
|user= blackfisch
|timestamp= 20200212085500
|timestamp= 20200212085500
|text= Note, that if you want to check for the nearest Unit you have to check for {{ic|CAManBase}} instead of {{ic|Man}}, since {{ic|Man}} will also return any wildlife population in that area:
|text= Note, that if you want to check for the nearest Unit you have to check for {{hl|CAManBase}} instead of {{hl|Man}}, since {{hl|Man}} will also return any wildlife population in that area:


<sqf>nearestObject [player, "Man"]; // could possibly return rabbits or other wildlife
<sqf>
 
nearestObject [player, "Man"]; // could possibly return rabbits or other wildlife
nearestObject [player, "CAManBase"]; // only returns units
nearestObject [player, "CAManBase"]; // only returns units
</sqf>
</sqf>
}}
}}

Revision as of 16:05, 13 May 2022

Hover & click on the images for description

Description

Description:
Returns the nearest object of given type (or inherited classes) to given position within a sphere. Hardcoded radius is 50 meters. Unlike with nearestObjects, where distance is measured in 2D space, nearestObject will be closest object in 3D space.
  • in Operation Flashpoint, only objects of the exact provided class are found.
  • if an object ID is used (Syntax 4, see Example 2) the search range is unlimited
Groups:
Object Detection

Syntax 1

Syntax:
nearestObject [position, type]
Parameters:
position: Object or Array format Position2D or Position3D - position to start search at
type: String - type of object (see typeOf, class type)
Return Value:
Object - nearest object, objNull otherwise

Syntax 2

Syntax:
nearestObject position
Parameters:
position: Array format Position2D or Position3D - position to start search at
Return Value:
Object - nearest object, objNull otherwise

Syntax 3

Syntax:
position nearestObject typeOrId
Parameters:
position: Position3D or Position2D - position to start search at
typeOrId: String - type of object (see typeOf, class type) or Visitor id (see getObjectID) in string format (since Arma 3 v2.10)
Return Value:
Object - nearest object, objNull otherwise

Syntax 4

Syntax:
position nearestObject id
Parameters:
position: Array format Position2D or Position3D - position to start search at
id: Number - object Visitor id
Return Value:
Object - nearest object, objNull otherwise

Examples

Example 1:
_nObject = nearestObject [2345, 6789]; _nObject = nearestObject [player, "StreetLamp"];
Example 2:
Return the object with ID 123456:
_nObject = [0,0,0] nearestObject 123456;
Example 3:
_nObject = getPos player nearestObject "StreetLamp";
Example 4:
Return the nearest object with (typeOf _nObject == "#XXXX") -> #mark, #slop, etc. Unlimited search range:
_nObject = _position nearestObject -1;
Return the nearest object with (typeOf _nObject != ""). Search range is 50m:
_nObject = nearestObject _position;
Example 5:
(See also allMissionObjects):
_blood = nearestObject [player, "#slop"]; _step = nearestObject [player, "#mark"]; _track = nearestObject [player, "#track"]; _crater = nearestObject [player, "#crater"];

Additional Information

See also:
nearestObjects nearObjectsReady nearObjects objectFromNetId nearEntities entities object nearestBuilding nearestTerrainObjects nearestMines

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
Gnashes - c
Posted on Jan 29, 2019 - 15:31 (UTC)
The ID for Syntax 4 may be dynamically obtained via the following (as of Arma 3 v1.88):
// returns Object Terrain/Visitor ID, or -1 if no ID found (invalid/null object) cursorObject call { private _obj = str (param [0, objNull]); private _id = -1; private _find = ((_obj find "#") + 2); if (_find > 1) then { private _len = ((_obj find ":") - _find); _id = _obj select [_find, _len]; parseNumber _id; }; _id };
blackfisch - c
Posted on Feb 12, 2020 - 08:55 (UTC)
Note, that if you want to check for the nearest Unit you have to check for CAManBase instead of Man, since Man will also return any wildlife population in that area:
nearestObject [player, "Man"]; // could possibly return rabbits or other wildlife nearestObject [player, "CAManBase"]; // only returns units