87 lines
2.7 KiB
Plaintext
87 lines
2.7 KiB
Plaintext
params [ "_unit" ];
|
|
private [ "_nearestfob", "_is_near_fob", "_is_near_blufor", "_grp", "_waypoint", "_nearblufor" ];
|
|
|
|
waitUntil {
|
|
sleep 0.5;
|
|
local _unit
|
|
};
|
|
|
|
_is_near_fob = false;
|
|
_is_near_blufor = true;
|
|
|
|
sleep 1;
|
|
_unit playmove "AmovPercMstpSsurWnonDnon_AmovPercMstpSnonWnonDnon";
|
|
sleep 2;
|
|
_unit enableAI "ANIM";
|
|
_unit enableAI "MOVE";
|
|
sleep 2;
|
|
[_unit, ""] remoteExecCall ["switchMove"];
|
|
|
|
if ( typeof _unit == pilot_classname ) exitWith {};
|
|
|
|
waitUntil { sleep 5;
|
|
|
|
_nearestfob = [ getpos _unit ] call KPLIB_fnc_getNearestFob;
|
|
if ( count _nearestfob == 3) then {
|
|
if ( ( _unit distance _nearestfob ) < 30 ) then {
|
|
_is_near_fob = true;
|
|
};
|
|
};
|
|
|
|
_is_near_blufor = false;
|
|
if ( !_is_near_blufor ) then {
|
|
{
|
|
if ((_x distance _unit) < 100) exitWith { _is_near_blufor = true };
|
|
} forEach (allUnits select {!((toLower (typeof _x)) in KPLIB_o_inf_classes || (typeof _x) in militia_squad)});
|
|
};
|
|
|
|
!alive _unit || !(_is_near_blufor) || (_is_near_fob && (vehicle _unit == _unit))
|
|
};
|
|
|
|
if (alive _unit) then {
|
|
|
|
if (_is_near_fob) then {
|
|
|
|
sleep 5;
|
|
_grp = createGroup [GRLIB_side_civilian, true];
|
|
[_unit] joinSilent _grp;
|
|
_unit playmove "AmovPercMstpSnonWnonDnon_AmovPsitMstpSnonWnonDnon_ground";
|
|
_unit disableAI "ANIM";
|
|
_unit disableAI "MOVE";
|
|
sleep 5;
|
|
[_unit, "AidlPsitMstpSnonWnonDnon_ground00"] remoteExecCall ["switchMove"];
|
|
[_unit] remoteExec ["prisonner_remote_call",2];
|
|
sleep 600;
|
|
deleteVehicle _unit;
|
|
|
|
} else {
|
|
|
|
_grp = createGroup [GRLIB_side_enemy, true];
|
|
[_unit] joinSilent _grp;
|
|
_unit setUnitPos "AUTO";
|
|
_unit setCaptive false;
|
|
|
|
if ((vehicle _unit != _unit) && !(_unit isEqualTo (driver vehicle _unit))) then {
|
|
unAssignVehicle _unit;
|
|
_unit action ["eject", vehicle _unit];
|
|
_unit action ["getout", vehicle _unit];
|
|
unAssignVehicle _unit;
|
|
};
|
|
|
|
while {(count (waypoints _grp)) != 0} do {deleteWaypoint ((waypoints _grp) select 0);};
|
|
{_x doFollow leader _grp} foreach units _grp;
|
|
|
|
_possible_sectors = (sectors_allSectors - blufor_sectors);
|
|
if ( count _possible_sectors > 0 ) then {
|
|
|
|
_possible_sectors = [ _possible_sectors , [getpos _unit, 5000] , { (markerPos _x) distance _input0 } , 'ASCEND' ] call BIS_fnc_sortBy;
|
|
if ( count _possible_sectors > 0 ) then {
|
|
_target_sector = _possible_sectors select 0;
|
|
_waypoint = _grp addWaypoint [markerpos _target_sector, 300];
|
|
_waypoint setWaypointType "MOVE";
|
|
_waypoint setWaypointSpeed "FULL";
|
|
};
|
|
};
|
|
};
|
|
};
|