calculatePath

From Bohemia Interactive Community
Jump to navigation Jump to search
Introduced with Arma 3 version1.94
  

Click on the images for descriptions

Introduced in

Game:
Arma 3
Version:
1.94

Description

Description:
Spawns an agent that will execute an AI path calculation and fire the "PathCalculated" event handler. The vehicle type to simulate could be one of the following presets:
  • "man" (will use "C_man_1")
  • "car" (will use "C_Offroad_01_F")
  • "tank" (will use "B_MBT_01_cannon_F")
  • "wheeled_APC" (will use "B_APC_Tracked_01_rcws_F")
  • "boat" (will use "C_Rubberboat")
  • "plane" (will use "B_Plane_CAS_01_dynamicLoadout_F")
  • "helicopter" (will use "B_Heli_Light_01_F")
If the given vehicle type is not one of the above presets, the exact given type is used.

For some unknown reason, the "PathCalculated" Event Handler is fired twice, first with calculated path and second with array consisting of 2 elements, which are identical and are equal to the end point. See Example 3 for a workaround.
In order to guarantee that the event handler is added to the result of this command before the path is calculated, use isNil workaround: isNil { calculatePath ["man","safe",[2832.9,5927.79,0],[3107.46,6036.61,0]] addEventHandler ["PathCalculated", { hint str _this }] };

Syntax

Syntax:
calculatePath [type, behaviour, from, to]
Parameters:
[type, behaviour, from, to]: Array
type: String - Vehicle type to simulate (see description)
behavior: String - AI behaviour, one of ("CARELESS", "SAFE", "AWARE", "COMBAT" and "STEALTH")
from: Array - Start position in format [x,y,z]
to: Array - End position in format [x,y,z]
Return Value:
Object - An agent to add the "PathCalculated" event handler to.

Examples

Example 1:
calculatePath ["car","safe",[2150.67,5778.19,0],[2184.11,5802.28,0]]
Example 2:
Draws the path from South West to North East of Agia Marina:(calculatePath ["man","safe",[2832.9,5927.79,0],[3107.46,6036.61,0]]) addEventHandler ["PathCalculated",{ { _mrk = createMarker ["marker" + str _forEachIndex, _x]; _mrk setMarkerType "mil_dot"; _mrk setMarkerText str _forEachIndex; } forEach (_this#1); }]
Example 3:
Alternative usage of calculatePath functionality that is free of double execution bug (and calculatePath command): private _agent = createAgent [typeOf player, position player, [], 0, "NONE"]; _agent addEventHandler ["PathCalculated", { { private _mrk = createMarker ["marker" + str _forEachIndex, _x]; _mrk setMarkerType "mil_dot"; _mrk setMarkerText str _forEachIndex; } forEach _this # 1; }]; _agent setDestination [player getRelPos [500, 0], "LEADER PLANNED", true];
Example 4:
Same as above but for a vehicle: private _agent = createAgent [typeOf player, position player, [], 0, "NONE"]; private _car = "B_Quadbike_01_F" createVehicle position player; _agent moveInDriver _car; _agent addEventHandler ["PathCalculated", { { private _mrk = createMarker ["marker" + str _forEachIndex, _x]; _mrk setMarkerType "mil_dot"; _mrk setMarkerText str _forEachIndex; } forEach _this # 1; }]; _agent setDestination [player getRelPos [500, 0], "LEADER PLANNED", true];

Additional Information

Multiplayer:
-
See also:
setDriveOnPathsetDestination

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

Bottom Section

Posted on July 6, 2019 - 10:28 (UTC)
Tankbuster
When using this command to get the predicted path of vehicles driving and having them stay on roads (not go cross country) is important, the best vehicle to use is "wheeled_APC" and behaviour careless