calculatePath
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": C_man_1
- "car": C_Offroad_01_F
- "tank": B_MBT_01_cannon_F
- "wheeled_APC": B_APC_Tracked_01_rcws_F
- "boat": C_Rubberboat
- "plane": B_Plane_CAS_01_dynamicLoadout_F
- "helicopter": B_Heli_Light_01_F
If the given vehicle type is not one of the above presets, the exact given type is used.
- Problems:
- For some unknown reason, the "PathCalculated" Event Handler is fired twice, first with the calculated path and second with an array consisting of 2 elements, which are identical and are equal to the end point. See Example 3 & 4 for a workaround.
- Groups:
- Object Manipulation
Syntax
- Syntax:
- calculatePath [type, behaviour, from, to]
- Parameters:
- type: String - vehicle type to simulate (see description)
- behaviour: String - AI behaviour, one of "CARELESS", "SAFE", "AWARE", "COMBAT" or "STEALTH"
- from: Array - start position in format [x,y,z]
- to: Array - end position in format [x,y,z]
- Return Value:
- Object - the 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", { { private _marker = createMarker ["marker" + str _forEachIndex, _x]; _marker setMarkerType "mil_dot"; _marker setMarkerText str _forEachIndex; } forEach (_this select 1); }];
- Example 3:
- Alternative usage of calculatePath functionality that is free of the double execution bug (and calculatePath command):
private _agent = createAgent [typeOf player, position player, [], 0, "NONE"]; _agent addEventHandler ["PathCalculated", { { private _marker = createMarker ["marker" + str _forEachIndex, _x]; _marker setMarkerType "mil_dot"; _marker setMarkerText str _forEachIndex; } forEach (_this select 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 _marker = createMarker ["marker" + str _forEachIndex, _x]; _marker setMarkerType "mil_dot"; _marker setMarkerText str _forEachIndex; } forEach (_this select 1); }]; _agent setDestination [player getRelPos [500, 0], "LEADER PLANNED", true];
Additional Information
- See also:
- setDriveOnPath setDestination
Notes
-
Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord.
Only post proven facts here! Add Note