Высадка десанта вертолётом идущим с ЛТЦ и дымы при посадке, улетает.

В связи с тем, что некоторые граждане порой говорят что из-за модели вертолёта десант с него вышедший не идёт в атаку — было решено сделать скрипт в котором с тем самым вертолётом десант идёт в атаку, а вертолёт улетает.

Скрипт создаёт вертолёт, который летит на указанную точку неся в себе группу десанта.
За 1700 (меняем на нужное нам) метров начинает отстреливать ЛТЦ (вход в опасный сектор, защита от ПЗРК/ПВО) садится на указанное место, выбрасывает дымы по кругу, выгружает десант (в этот момент ЛТЦ не выбрасывает), после чего поднимается в воздух (начиная отстреливать ЛТЦ) и уходит на указанную точку, где удаляется.

Может садится даже под обстрелом, так как задан максимальный уровень смелости для экипажа.

Можете уже сами дописать экипажу и вертолёту отключение урона, если собрались его сажать не как положено по тактике, а в самое горячее место))

0 spawn {
// Создаём невидимую вертолётную площадку, для точной посадки вертолёта
private _helipad = "Land_HelipadEmpty_F" createVehicle [7633.5,4131.29,0];
// Создаём группу десанта
private _supgroup = [[8012.94,9711.8,0], east, (configfile >> "CfgGroups" >> "East" >> "rhs_faction_vdv" >> "rhs_group_rus_vdv_infantry_flora" >> "rhs_group_rus_vdv_infantry_flora_squad_2mg")] call BIS_fnc_spawnGroup;
// Заводим их в группу для погрузки в вертолёт
private _unitsCargo = units _supgroup;
// Создаём вертолёт
private _heli = createVehicle ["RHS_Mi8mtv3_Cargo_vvs", [8012.94,9711.8,0]];
// Создаём экипаж вертолёта
createVehicleCrew _heli;
// Создаём контрмеры для цикличного использования
private _flares = {
while {alive driver _this && {!(isTouchingGround _this)}} do {
sleep 3.5;
_this action ["useWeapon", _this, driver _this, 0];
};
};
// Создаём контрмеры для цикличного использования на отходе
private _flares2 = {
while {alive driver _this} do {
sleep 3.5;
_this action ["useWeapon", _this, driver _this, 0];
};
};
// Создаём группу в экипаже вертолёта, для отдачи указаний
private _group = group driver _heli;
// Объеденяем с переменной _heli для отдачи приказов
_group addVehicle _heli;
// Задаём параметр храбрости для экпиажа вертолёта
{_x setSkill ["courage", 1]} forEach units _group;
// Проверочный hint
format ["Уровень параметра Courage = %1", leader _group skillFinal "courage"] remoteExec ["hint"];
// Пововрачиваем вертолёт при спавне куда нам надо
_heli setDir 270;
// Сажаем всех ботов группы десанта в вертолёт
{_x moveInCargo _heli} forEach _unitsCargo;
// Приказываем вертолёту двигаться куда надо
_heli domove [7633.5,4131.29,0];
// Задаём высоту полёта
_heli flyinheight 50;
// Ждём пока дистанция будет менее 1700 метров - начинаем выпускать ловушки
waitUntil {
sleep 1;
(_heli distance [7633.5,4131.29,0]) < 1700
};
// Откидываем ловушки
_heli spawn _flares;
// Ждём пока дистанция будет менее 300 метров - приказываем садиться
waitUntil {
(_heli distance [7633.5,4131.29,0]) < 300
};
// Садимся с высадкой десанта
_heli land "get out";
// Высота полёта = 0. На всякий случай.
_heli flyInHeight 0;
// Ждём пока вертолёт будет стоять на земле
waitUntil {isTouchingGround _heli};
// Выкидываем дымы по кругу
private _dir = 0;
private _a = 0;
while{_a < 16}do{
_sPos = [((getPos _heli) select 0) + (sin _dir) * 12, ((getPos _heli) select 1) + (cos _dir) * 12, ((getPos _heli) select 2)];
_smoke1 = "SmokeShellBlue" createVehicle _sPos;
_a = _a + 1;
_dir = _dir + (360 / 16);
};
// Приказываем группе десанта покинуть борт вертолёта
_supgroup leaveVehicle _heli;
// Ждём пока все челны группы десанта покинут вертолёт
waitUntil {
sleep 5;
count (_unitsCargo select {alive _x && (!isNull objectParent _x)}) == 0
};
// Добавляем группе вейпоинт для дальнейшего движения
_wp =_supgroup addWaypoint [[7292.51,3885.71,0], 0];
// Приказываем вертолёту уходить на указанные координаты
_heli domove [8012.94,9711.8,0];
// Задаём высоту полёта
_heli flyinheight 50;
// Откидываем ловушки
_heli spawn _flares2;
// Ждём пока дистанция будет менее 300 метров - удаляем вертолёт
waitUntil {
sleep 1;
(_heli distance [8012.94,9711.8,0]) < 300
};
{deleteVehicle _x} forEach ((units group _heli) + [_heli]);
};
0 spawn { // Создаём невидимую вертолётную площадку, для точной посадки вертолёта private _helipad = "Land_HelipadEmpty_F" createVehicle [7633.5,4131.29,0]; // Создаём группу десанта private _supgroup = [[8012.94,9711.8,0], east, (configfile >> "CfgGroups" >> "East" >> "rhs_faction_vdv" >> "rhs_group_rus_vdv_infantry_flora" >> "rhs_group_rus_vdv_infantry_flora_squad_2mg")] call BIS_fnc_spawnGroup; // Заводим их в группу для погрузки в вертолёт private _unitsCargo = units _supgroup; // Создаём вертолёт private _heli = createVehicle ["RHS_Mi8mtv3_Cargo_vvs", [8012.94,9711.8,0]]; // Создаём экипаж вертолёта createVehicleCrew _heli; // Создаём контрмеры для цикличного использования private _flares = { while {alive driver _this && {!(isTouchingGround _this)}} do { sleep 3.5; _this action ["useWeapon", _this, driver _this, 0]; }; }; // Создаём контрмеры для цикличного использования на отходе private _flares2 = { while {alive driver _this} do { sleep 3.5; _this action ["useWeapon", _this, driver _this, 0]; }; }; // Создаём группу в экипаже вертолёта, для отдачи указаний private _group = group driver _heli; // Объеденяем с переменной _heli для отдачи приказов _group addVehicle _heli; // Задаём параметр храбрости для экпиажа вертолёта {_x setSkill ["courage", 1]} forEach units _group; // Проверочный hint format ["Уровень параметра Courage = %1", leader _group skillFinal "courage"] remoteExec ["hint"]; // Пововрачиваем вертолёт при спавне куда нам надо _heli setDir 270; // Сажаем всех ботов группы десанта в вертолёт {_x moveInCargo _heli} forEach _unitsCargo; // Приказываем вертолёту двигаться куда надо _heli domove [7633.5,4131.29,0]; // Задаём высоту полёта _heli flyinheight 50; // Ждём пока дистанция будет менее 1700 метров - начинаем выпускать ловушки waitUntil { sleep 1; (_heli distance [7633.5,4131.29,0]) < 1700 }; // Откидываем ловушки _heli spawn _flares; // Ждём пока дистанция будет менее 300 метров - приказываем садиться waitUntil { (_heli distance [7633.5,4131.29,0]) < 300 }; // Садимся с высадкой десанта _heli land "get out"; // Высота полёта = 0. На всякий случай. _heli flyInHeight 0; // Ждём пока вертолёт будет стоять на земле waitUntil {isTouchingGround _heli}; // Выкидываем дымы по кругу private _dir = 0; private _a = 0; while{_a < 16}do{ _sPos = [((getPos _heli) select 0) + (sin _dir) * 12, ((getPos _heli) select 1) + (cos _dir) * 12, ((getPos _heli) select 2)]; _smoke1 = "SmokeShellBlue" createVehicle _sPos; _a = _a + 1; _dir = _dir + (360 / 16); }; // Приказываем группе десанта покинуть борт вертолёта _supgroup leaveVehicle _heli; // Ждём пока все челны группы десанта покинут вертолёт waitUntil { sleep 5; count (_unitsCargo select {alive _x && (!isNull objectParent _x)}) == 0 }; // Добавляем группе вейпоинт для дальнейшего движения _wp =_supgroup addWaypoint [[7292.51,3885.71,0], 0]; // Приказываем вертолёту уходить на указанные координаты _heli domove [8012.94,9711.8,0]; // Задаём высоту полёта _heli flyinheight 50; // Откидываем ловушки _heli spawn _flares2; // Ждём пока дистанция будет менее 300 метров - удаляем вертолёт waitUntil { sleep 1; (_heli distance [8012.94,9711.8,0]) < 300 }; {deleteVehicle _x} forEach ((units group _heli) + [_heli]); };
0 spawn {
// Создаём невидимую вертолётную площадку, для точной посадки вертолёта
private _helipad = "Land_HelipadEmpty_F" createVehicle [7633.5,4131.29,0];
// Создаём группу десанта
private _supgroup = [[8012.94,9711.8,0], east, (configfile >> "CfgGroups" >> "East" >> "rhs_faction_vdv" >> "rhs_group_rus_vdv_infantry_flora" >> "rhs_group_rus_vdv_infantry_flora_squad_2mg")] call BIS_fnc_spawnGroup;
// Заводим их в группу для погрузки в вертолёт
private _unitsCargo = units _supgroup;
// Создаём вертолёт
private _heli = createVehicle ["RHS_Mi8mtv3_Cargo_vvs", [8012.94,9711.8,0]];
// Создаём экипаж вертолёта
createVehicleCrew _heli;
// Создаём контрмеры для цикличного использования
private _flares = {
    while {alive driver _this && {!(isTouchingGround _this)}} do {    
        sleep 3.5;
        _this action ["useWeapon", _this, driver _this, 0];
    };
};
// Создаём контрмеры для цикличного использования на отходе
private _flares2 = {
    while {alive driver _this} do {    
        sleep 3.5;
        _this action ["useWeapon", _this, driver _this, 0];
    };
};
// Создаём группу в экипаже вертолёта, для отдачи указаний
private _group = group driver _heli;
// Объеденяем с переменной _heli для отдачи приказов
_group addVehicle _heli;
// Задаём параметр храбрости для экпиажа вертолёта
{_x setSkill ["courage", 1]} forEach units _group;
// Проверочный hint
format ["Уровень параметра Courage = %1", leader _group skillFinal "courage"] remoteExec ["hint"];
// Пововрачиваем вертолёт при спавне куда нам надо
_heli setDir 270;
// Сажаем всех ботов группы десанта в вертолёт
{_x moveInCargo _heli} forEach _unitsCargo;
// Приказываем вертолёту двигаться куда надо
_heli domove [7633.5,4131.29,0];
// Задаём высоту полёта
_heli flyinheight 50;
// Ждём пока дистанция будет менее 1700 метров - начинаем выпускать ловушки
waitUntil {
sleep 1;
(_heli distance [7633.5,4131.29,0]) < 1700
};
// Откидываем ловушки
_heli spawn _flares;
// Ждём пока дистанция будет менее 300 метров - приказываем садиться
waitUntil {
(_heli distance [7633.5,4131.29,0]) < 300
};
// Садимся с высадкой десанта
_heli land "get out";
// Высота полёта = 0. На всякий случай.
_heli flyInHeight 0;
// Ждём пока вертолёт будет стоять на земле
waitUntil {isTouchingGround _heli};
// Выкидываем дымы по кругу
private _dir = 0;
private _a = 0;
while{_a < 16}do{
_sPos = [((getPos _heli) select 0) + (sin _dir) * 12, ((getPos _heli) select 1) + (cos _dir) * 12, ((getPos _heli) select 2)];
_smoke1 = "SmokeShellBlue" createVehicle _sPos;
_a = _a + 1;
_dir = _dir + (360 / 16);
};
// Приказываем группе десанта покинуть борт вертолёта
_supgroup leaveVehicle _heli;
// Ждём пока все челны группы десанта покинут вертолёт
waitUntil {
sleep 5;
count (_unitsCargo select {alive _x && (!isNull objectParent _x)}) == 0
};
// Добавляем группе вейпоинт для дальнейшего движения
_wp =_supgroup addWaypoint [[7292.51,3885.71,0], 0];
// Приказываем вертолёту уходить на указанные координаты
_heli domove [8012.94,9711.8,0];
// Задаём высоту полёта
_heli flyinheight 50;
// Откидываем ловушки
_heli spawn _flares2;
// Ждём пока дистанция будет менее 300 метров - удаляем вертолёт
waitUntil {
sleep 1;
(_heli distance [8012.94,9711.8,0]) < 300
};
{deleteVehicle _x} forEach ((units group _heli) + [_heli]);
};

Если же что-то непонятно, то можно спросить / уточнить в нашем Discord канале