Example Code: Reveal Units Temporarily

From Bohemia Interactive Community
Revision as of 22:18, 20 August 2022 by Lou Montana (talk | contribs) (Some wiki formatting)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Arma 3 logo black.png1.92

/* Author: Revo Description: Reveals units in a defined area temporarily. Parameter(s): See defines below Returns: BOOLEAN - true */ // replace here #define CENTER player // the area around this object will be scanned #define RADIUS 100 // radius of the area #define DELETE_TIME 5 // how long will the units be revealed in seconds #define TOLERANCE 5 // accuracy of the units positions in meters #define DELAY 1 // delay in between reveal of units in seconds (60 units take 60 seconds to show) // replace end [CENTER, RADIUS, DELETE_TIME, TOLERANCE, DELAY] spawn { params ["_center", "_radius", "_deleteTime", "_tolerance", "_delay"]; private _nearestUnits = nearestObjects [_center, ["CAManBase"], _radius]; systemChat "Scanning in progress..."; createMarker ["areaBorderTemp", _center]; "areaBorderTemp" setMarkerShape "ELLIPSE"; "areaBorderTemp" setMarkerSize [_radius, _radius]; "areaBorderTemp" setMarkerBrush "Border"; { private _marker = createMarker [format ["tempMarker_%1", _forEachIndex], _x getPos [_tolerance, random 360]]; _marker setMarkerType "o_unknown"; _marker setMarkerColor "ColorUNKNOWN"; _marker setMarkerSize [0.5, 0.5]; sleep _delay; } forEach _nearestUnits; systemChat format ["%1 entities found.", count _nearestUnits]; systemChat format ["Position tolerance: %1 m", _tolerance]; sleep _deleteTime; for "_i" from 0 to (count _nearestUnits) - 1 do { deleteMarker format ["tempMarker_%1", _i]; sleep _delay; }; deleteMarker "areaBorderTemp"; }; true;