nearestObject: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
(merged command variations)
No edit summary
 
(130 intermediate revisions by 14 users not shown)
Line 1: Line 1:
{{Command|= Comments
{{RV|type=command
____________________________________________________________________________________________


| ofp |= Game name
|game1= ofp
|version1= 1.00


|1.00|= Game version
|game2= ofpe
____________________________________________________________________________________________
|version2= 1.00


| Nearest object of given type to given position within a range of 50 meters.
|game3= arma1
|version3= 1.00


If class types are used in the filter, then in Arma any object derived from the type is found as well. In OFP, only objects with exactly the type given are found.|= Description
|game4= arma2
____________________________________________________________________________________________
|version4= 1.00


| '''nearestObject''' filter |= Syntax
|game5= arma2oa
|version5= 1.50


|p1= filter: [[Array]] - Can be one of the following:<br>
|game6= tkoh
[x,y,z]: Any objects near position<br>
|version6= 1.00
<nowiki>[[</nowiki>x,y,z], "type"]: Objects of class "type" near position [x,y,z]<br>
[object, "type"]: Objects of class "type" near position of "object"<br>
|= Parameter 1


| [[Object]] - Found object, or [[objNull]] if nothing in range. |= Return value
|game7= arma3
____________________________________________________________________________________________
|version7= 0.50


|s2= position '''nearestObject''' filter |=  
|gr1= Object Detection


|p21= position: [[Array]] - [[Position2D]] or [[Position3D]].|=
|descr= Returns the nearest object of given type (or inherited classes) to given position within a sphere. Hardcoded radius is 50 meters.
|p22= filter: [[Number]] or [[String]] - Either ID of object, or [[CfgVehicles|class type]].|=
Unlike with [[nearestObjects]], where distance is measured in 2D space, [[nearestObject]] will be closest object in 3D space.


|r2= Found object, or [[objNull]] if nothing in range. |=
{{Feature|informative|
____________________________________________________________________________________________
* in {{ofp}}, only objects of the exact provided class are found.
* if an object ID is used ({{Link|#Syntax 4}}, see {{Link|#Example 2}}) the search range is unlimited
}}
 
|s1= [[nearestObject]] [position, type]
 
|p1= position: [[Object]] or [[Array]] format [[Position#Introduction|Position2D]] or [[Position#Introduction|Position3D]] - position to start search at
 
|p2= type: [[String]] - type of object (see [[typeOf]], [[CfgVehicles|class type]])
 
|r1= [[Object]] - nearest object, [[objNull]] otherwise
 
|s2= [[nearestObject]] position
 
|p21= position: [[Array]] format [[Position#Introduction|Position2D]] or [[Position#Introduction|Position3D]] - position to start search at
 
|r2= [[Object]] - nearest object, [[objNull]] otherwise
 
|s3= position [[nearestObject]] typeOrId
 
|p41= position: [[Position#Introduction|Position3D]] or [[Position#Introduction|Position2D]] - position to start search at


 
|p42= typeOrId: [[String]] - type of object (see [[typeOf]], [[CfgVehicles|class type]]) or {{GVI|arma3|2.10|size= 0.75}} Visitor id (see [[getObjectID]])
|x1= <pre>_nObject = nearestObject [2345,6789]
_nObject = nearestObject [player, "StreetLamp"]  
</pre>  |= Example 1
|x2= <pre>_nObject = getPos player nearestObject 123456 </pre> |= Example 2
|x3= <pre>_nObject = getPos player nearestObject "StreetLamp" </pre> |= Example 3
____________________________________________________________________________________________


| [[nearestObjects]], [[nearObjects]] |= See also
|r3= [[Object]] - nearest object, [[objNull]] otherwise


|s4= position [[nearestObject]] id
|p61= position: [[Array]] format [[Position#Introduction|Position2D]] or [[Position#Introduction|Position3D]] - position to start search at
|p62= id: [[Number]] - object Visitor id
|r4= [[Object]] - nearest object, [[objNull]] otherwise
|x1= <sqf>
_nObject = nearestObject [2345, 6789];
_nObject = nearestObject [player, "StreetLamp"];
</sqf>
|x2= Return the object with ID 123456:
<sqf>_nObject = [0,0,0] nearestObject 123456;</sqf>
|x3= <sqf>_nObject = getPos player nearestObject "StreetLamp";</sqf>
|x4= Return the nearest object with ([[typeOf]] _nObject == "#XXXX") -> #mark, #slop, etc. Unlimited search range:
<sqf>_nObject = _position nearestObject -1;</sqf>
Return the nearest object with ([[typeOf]] _nObject != ""). Search range is 50m:
<sqf>_nObject = nearestObject _position;</sqf>
|x5= (See also [[allMissionObjects]]):
<sqf>
_blood = nearestObject [player, "#slop"];
_step = nearestObject [player, "#mark"];
_track = nearestObject [player, "#track"];
_crater = nearestObject [player, "#crater"];
</sqf>
|seealso= [[nearestObjects]] [[nearObjectsReady]] [[nearObjects]] [[objectFromNetId]] [[nearEntities]] [[entities]] [[object]] [[nearestBuilding]] [[nearestTerrainObjects]] [[nearestMines]]
}}
}}


<h3 style="display:none">Notes</h3>
{{Note
|user= Gnashes
|timestamp= 20190129153100
|text= The ID for Syntax 4 may be dynamically obtained via the following (as of {{arma3}} v1.88):
(for {{arma3}} v2.10 or newer, use [[getObjectID]] instead)
<sqf>
// 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;


<dl class="command_description">
private _find = ((_obj find "#") + 2);
<!-- Note Section BEGIN -->
if (_find > 1) then
{
private _len = ((_obj find ":") - _find);
_id = _obj select [_find, _len];
parseNumber _id;
};
_id
};
</sqf>
}}


<!-- Note Section END -->
{{Note
</dl>
|user= blackfisch
|timestamp= 20200212085500
|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:


<h3 style="display:none">Bottom Section</h3>
<sqf>
 
nearestObject [player, "Man"]; // could possibly return rabbits or other wildlife
[[Category:Scripting Commands|NEARESTOBJECT]]
nearestObject [player, "CAManBase"]; // only returns units
[[Category:Scripting Commands OFP 1.96|NEARESTOBJECT]]
</sqf>
[[Category:Scripting Commands OFP 1.46|NEARESTOBJECT]]
}}
[[Category:Scripting Commands ArmA|NEARESTOBJECT]]
[[Category:Command_Group:_Object_Information|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands ArmA2|{{uc:{{PAGENAME}}}}]]

Latest revision as of 19:21, 19 July 2024

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 Arma 3 logo black.png2.10 Visitor id (see getObjectID)
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): (for Arma 3 v2.10 or newer, use getObjectID instead)
// 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