86 lines
3.0 KiB
Plaintext
86 lines
3.0 KiB
Plaintext
private _grp = _this select 0;
|
|
private _flagpos = _this select 1;
|
|
private _basepos = getpos (leader _grp);
|
|
private _is_infantry = false;
|
|
private _wpPositions = [];
|
|
private _waypoint = [];
|
|
if (vehicle (leader _grp) == (leader _grp)) then {_is_infantry = true;};
|
|
|
|
sleep 5;
|
|
while {(count (waypoints _grp)) != 0} do {deleteWaypoint ((waypoints _grp) select 0);};
|
|
sleep 1;
|
|
{_x doFollow leader _grp} foreach units _grp;
|
|
sleep 1;
|
|
|
|
if (_is_infantry) then {
|
|
_wpPositions = [
|
|
_flagpos getPos [random 150, random 360],
|
|
_flagpos getPos [random 150, random 360],
|
|
_flagpos getPos [random 150, random 360],
|
|
_flagpos getPos [random 150, random 360],
|
|
_flagpos getPos [random 150, random 360]
|
|
];
|
|
_waypoint = _grp addWaypoint [_wpPositions select 0, 10];
|
|
_waypoint setWaypointType "MOVE";
|
|
_waypoint setWaypointBehaviour "SAFE";
|
|
_waypoint setWaypointCombatMode "YELLOW";
|
|
_waypoint setWaypointSpeed "LIMITED";
|
|
_waypoint setWaypointCompletionRadius 10;
|
|
|
|
_waypoint = _grp addWaypoint [_wpPositions select 1, 10];
|
|
_waypoint setWaypointType "MOVE";
|
|
_waypoint = _grp addWaypoint [_wpPositions select 2, 10];
|
|
_waypoint setWaypointType "MOVE";
|
|
_waypoint = _grp addWaypoint [_wpPositions select 3, 10];
|
|
_waypoint setWaypointType "MOVE";
|
|
|
|
_waypoint = _grp addWaypoint [_wpPositions select 4, 10];
|
|
_waypoint setWaypointType "CYCLE";
|
|
} else {
|
|
_waypoint = _grp addWaypoint [_basepos, 1];
|
|
_waypoint setWaypointType "MOVE";
|
|
_waypoint setWaypointBehaviour "SAFE";
|
|
_waypoint setWaypointCombatMode "YELLOW";
|
|
_waypoint setWaypointSpeed "LIMITED";
|
|
_waypoint setWaypointCompletionRadius 30;
|
|
};
|
|
|
|
_grp setCurrentWaypoint [_grp, 0];
|
|
|
|
waitUntil {
|
|
sleep 10;
|
|
({alive _x} count (units _grp) == 0) || !(isNull ((leader _grp) findNearestEnemy (leader _grp)))
|
|
};
|
|
|
|
if ({alive _x} count (units _grp) > 0) then {
|
|
while {(count (waypoints _grp)) != 0} do {deleteWaypoint ((waypoints _grp) select 0)};
|
|
sleep 1;
|
|
{_x doFollow leader _grp} foreach units _grp;
|
|
sleep 1;
|
|
_wpPositions = [
|
|
_basepos getPos [random 150, random 360],
|
|
_basepos getPos [random 150, random 360],
|
|
_basepos getPos [random 150, random 360],
|
|
_basepos getPos [random 150, random 360],
|
|
_basepos getPos [random 150, random 360]
|
|
];
|
|
_waypoint = _grp addWaypoint [_wpPositions select 0, 10];
|
|
_waypoint setWaypointType "SAD";
|
|
_waypoint setWaypointBehaviour "COMBAT";
|
|
_waypoint setWaypointCombatMode "YELLOW";
|
|
if (_is_infantry) then {
|
|
_waypoint setWaypointSpeed "NORMAL";
|
|
} else {
|
|
_waypoint setWaypointSpeed "LIMITED";
|
|
};
|
|
_waypoint = _grp addWaypoint [_wpPositions select 1, 10];
|
|
_waypoint setWaypointType "SAD";
|
|
_waypoint = _grp addWaypoint [_wpPositions select 2, 10];
|
|
_waypoint setWaypointType "SAD";
|
|
_waypoint = _grp addWaypoint [_wpPositions select 3, 10];
|
|
_waypoint setWaypointType "SAD";
|
|
_waypoint = _grp addWaypoint [_wpPositions select 4, 10];
|
|
_waypoint setWaypointType "CYCLE";
|
|
_grp setCurrentWaypoint [_grp, 0];
|
|
};
|