Code: Select all
// hunt: nul = [unit, radius] execVM "hunt.sqf";
// Selected unit's group will hunt down the nearest enemy group
params [
["_unit", objNull, [objNull]] // unit to act as hunter
,["_radius", 2000, [0]] // radius to search for enemy group
,["_refresh", 15, [0]] // hunt refresh rate in seconds, minimum 5
,["_accuracy", 0, [0]] // hunt precision in meters; >0 to make AI patrol around enemy location
,["_cond", {false}] // hunt stop condition
,["_dest", 0] // hunter ending destination
];
private _closest = objNull;
private _enemySides = [side group _unit] call BIS_fnc_enemySides;
private _nearEnemies = allUnits select { (_x distance _unit) < _radius && (side _x) in _enemySides};
private _closestdist = _radius+1;
{
if (_x distance _unit < _closestdist) then {
_closest = _x;
_closestdist = _x distance _unit;
};
} forEach _nearEnemies;
_closest;
[group _unit, group _closest, _refresh, _accuracy, _cond, _dest] call BIS_fnc_stalk;