В связи с тем, что некоторые граждане порой говорят что из-за модели вертолёта десант с него вышедший не идёт в атаку — было решено сделать скрипт в котором с тем самым вертолётом десант идёт в атаку, а вертолёт улетает.
Скрипт создаёт вертолёт, который летит на указанную точку неся в себе группу десанта.
За 1700 (меняем на нужное нам) метров начинает отстреливать ЛТЦ (вход в опасный сектор, защита от ПЗРК/ПВО ) садится на указанное место, выбрасывает дымы по кругу , выгружает десант (в этот момент ЛТЦ не выбрасывает), после чего поднимается в воздух (начиная отстреливать ЛТЦ ) и уходит на указанную точку, где удаляется.
Может садится даже под обстрелом , так как задан максимальный уровень смелости для экипажа.
Можете уже сами дописать экипажу и вертолёту отключение урона, если собрались его сажать не как положено по тактике, а в самое горячее место))
// Создаём невидимую вертолётную площадку, для точной посадки вертолёта
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 ]] ;
// Создаём экипаж вертолёта
// Создаём контрмеры для цикличного использования
while { alive driver _this && { ! ( isTouchingGround _this )}} do {
_this action [ "useWeapon" , _this, driver _this, 0 ] ;
// Создаём контрмеры для цикличного использования на отходе
while { alive driver _this } do {
_this action [ "useWeapon" , _this, driver _this, 0 ] ;
// Создаём группу в экипаже вертолёта, для отдачи указаний
private _group = group driver _heli;
// Объеденяем с переменной _heli для отдачи приказов
// Задаём параметр храбрости для экпиажа вертолёта
{ _x setSkill [ "courage" , 1 ]} forEach units _group;
format [ "Уровень параметра Courage = %1" , leader _group skillFinal "courage" ] remoteExec [ "hint" ] ;
// Пововрачиваем вертолёт при спавне куда нам надо
// Сажаем всех ботов группы десанта в вертолёт
{ _x moveInCargo _heli } forEach _unitsCargo;
// Приказываем вертолёту двигаться куда надо
_heli domove [ 7633.5 , 4131.29 ,0 ] ;
// Ждём пока дистанция будет менее 1700 метров - начинаем выпускать ловушки
( _heli distance [ 7633.5 , 4131.29 ,0 ]) < 1700
// Ждём пока дистанция будет менее 300 метров - приказываем садиться
( _heli distance [ 7633.5 , 4131.29 ,0 ]) < 300
// Садимся с высадкой десанта
// Высота полёта = 0. На всякий случай.
// Ждём пока вертолёт будет стоять на земле
waitUntil { isTouchingGround _heli } ;
// Выкидываем дымы по кругу
_sPos = [(( getPos _heli ) select 0 ) + ( sin _dir ) * 12, (( getPos _heli ) select 1 ) + ( cos _dir ) * 12, (( getPos _heli ) select 2 )] ;
_smoke1 = "SmokeShellBlue" createVehicle _sPos;
_dir = _dir + ( 360 / 16 ) ;
// Приказываем группе десанта покинуть борт вертолёта
_supgroup leaveVehicle _heli;
// Ждём пока все челны группы десанта покинут вертолёт
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 ] ;
// Ждём пока дистанция будет менее 300 метров - удаляем вертолёт
( _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 канале