1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
Private["_count","_defense","_defenses","_defenseTypes","_emptyDefenses","_range","_total","_totalDefenses","_unit","_units"];
_units = _this select 0;
_range = _this select 1;
_total = count _units;
if (_total < 1) exitWith {diag_log Format["[WFBE (ERROR)][frameno:%1 | ticktime:%2] Common_UseStationaryDefense.sqf: No units were specified",diag_frameno,diag_tickTime]};
_defenseTypes = Format["WFBE_%1DEFENSENAMES",side leader group (_units select 0)] Call GetNamespace;
_defenses = (leader group (_units select 0)) nearEntities[_defenseTypes,_range];
_emptyDefenses = [];
{if (_x EmptyPositions "gunner" > 0) then {_emptyDefenses = _emptyDefenses + [_x]}} forEach _defenses;
for [{_count = 0},{_count < _total},{_count = _count + 1}] do
{
_unit = _units select _count;
_totalDefenses = count _emptyDefenses;
if (_totalDefenses < 1) exitWith {};
//If not in a vehicle then check for available defense.
if (alive _unit && _unit == vehicle _unit) then
{
_defense = _emptyDefenses select (_totalDefenses - 1);
[_unit] allowGetIn true;
_unit assignAsGunner _defense;
_emptyDefenses = _emptyDefenses - [_defense];
};
};
|