// // Активация: re = [командир, лидер 1 группы, лидер 2 группы, лидер 3 группы, САУ, миномет] execVM "oficer.sqf" _commander = _this select 0; _leader1 = _this select 1; _leader2 = _this select 2; _leader3 = _this select 3; _SAU = _this select 4; _mortar = _this select 5; _group3 = group _leader3; // состав групп _units1 = units group _leader1; _units2 = units group _leader2; _units3 = units group _leader3; // активация боевого режима групп _go = [_leader1, _mortar] execVM "group.sqf"; _gt = [_leader2, _mortar] execVM "group.sqf"; _gf = [_leader3, _mortar] execVM "group.sqf"; // пока командир жив, выполнять: while {alive _commander} do { // резервируем массивы для классификации целей _targets1 = []; _man1 = []; _tank1 = []; _car1 = []; _targets2 = []; _man2 = []; _tank2 = []; _car2 = []; // объекты, о которых знают лидеры групп _objects1 = _leader1 targetsQuery ["", "", "", "", ""]; _objects2 = _leader2 targetsQuery ["", "", "", "", ""]; _objects3 = _leader3 targetsQuery ["", "", "", "", ""]; //ДЛЯ 1 ГРУППЫ { //если сторона объекта ЗАПАД, то if (_x select 2 == west) then { //если имя объекта в массиве ЦЕЛИ, то - ничего, иначе - добавить имя объекта в массив ЦЕЛИ if ((_x select 1) in _targets1) then {} else {_targets1 set [count _targets1, (_x select 1)]}; }; } forEach _objects1; { //если цель - человек, то if (_x isKindOf "man") then { //если имя цели в массиве ЛЮДИ, то - ничего, иначе - добавить имя цели в массив ЛЮДИ if (_x in _man1) then {} else {_man1 set [count _man1, _x ]}; }; } forEach _targets1; { //если цель - танк, то if (_x isKindOf "tank") then { //если имя цели в массиве ТАНКИ, то - ничего, иначе - добавить имя цели в массив ТАНКИ if (_x in _tank1) then {} else {_tank1 set [count _tank1, _x ]}; }; } forEach _targets1; { //если цель - машина, то if (_x isKindOf "car") then { //если имя цели в массиве АВТО, то - ничего, иначе - добавить имя цели в массив АВТО if (_x in _car1) then {} else {_car1 set [count _car1, _x ]}; }; } forEach _targets1; //ДЛЯ 2 ГРУППЫ { //если сторона объекта ЗАПАД, то if (_x select 2 == west) then { //если имя объекта в массиве ЦЕЛИ, то - ничего, иначе - добавить имя объекта в массив ЦЕЛИ if ((_x select 1) in _targets2) then {} else {_targets2 set [count _targets2, (_x select 1)]}; }; } forEach _objects2; { //если цель - человек, то if (_x isKindOf "man") then { //если имя цели в массиве ЛЮДИ, то - ничего, иначе - добавить имя цели в массив ЛЮДИ if (_x in _man2) then {} else {_man2 set [count _man2, _x ]}; }; } forEach _targets2; { //если цель - танк, то if (_x isKindOf "tank") then { //если имя цели в массиве ТАНКИ, то - ничего, иначе - добавить имя цели в массив ТАНКИ if (_x in _tank2) then {} else {_tank2 set [count _tank2, _x ]}; }; } forEach _targets2; { //если цель - машина, то if (_x isKindOf "car") then { //если имя цели в массиве АВТО, то - ничего, иначе - добавить имя цели в массив АВТО if (_x in _car2) then {} else {_car2 set [count _car2, _x ]}; }; } forEach _targets2; /*если танков, видимых 1 группой, больше чем танков, видимых 2 группой и танков, видимых 1 группой, больше 0 */ if ((count _tank1 >= count _tank2) and (count _tank1 > 0)) //то нацелить САУ для уничтожения танков, видимых 1 группой. then {{_co = [_x, _SAU] execVM "cokop_upr.sqf"} forEach _tank1} // иначе нацелить САУ для уничтожения танков, видимых 2 группой. else {{_co = [_x, _SAU] execVM "cokop_upr.sqf"} forEach _tank2}; hint str _targets1; sleep 8; };