При поддержке нашего Discord сообщества!
Скрипт собран как конструктор, а равно можно его спокойно адаптировать под свои нужды.
Это просто вариант на тему этого скрипта.
ВАЖНО:
Зависит от грузоподъёмности конкретного (выбранного вами) вертолёта.
Не все вертолёты могут нести и технику и пехоту.
Другие вариации скрипта скоро будут выложены.
Подходит для открытой местности.
Нужные маркера:
- mkr_spawn — точка появления.
- mkr_drop — точка сброса (100 метров от маркера, чтобы вертолёт успешно тормозился. Поставишь меньше — вертушка будет висеть и тупить).
- mkr_move — куда вертолёт улетает после выброса десанта, и удаляется.
- mkr_inf_out — где будет высадка пехоты. Учитываем, что пилоты выбирают безопасное место не смотря на невидимую вертолётную площадку созданную в начале скрипта.
Код скрипта:
0 spawn { // Создаём невидимую вертолётную площадку, для точной посадки вертолёта private _helipad = "Land_HelipadEmpty_F" createVehicle getMarkerPos "mkr_inf_out"; // Создаём группу десанта private _supgroup = [getMarkerPos "mkr_spawn", West, (configfile >> "CfgGroups" >> "West" >> "BLU_F" >> "Infantry" >> "BUS_InfSquad")] call BIS_fnc_spawnGroup; // Заводим их в группу для погрузки в вертолёт private _unitsCargo = units _supgroup; // Создаём вертолёт private _heli = createVehicle ["B_Heli_Transport_03_F", getMarkerPos "mkr_spawn", [], 0, "FLY"]; // Создаём экипаж вертолёта createVehicleCrew _heli; private _veh = createVehicle ["B_MRAP_01_hmg_F", getMarkerPos "mkr_spawn"]; // Создаём контрмеры для цикличного использования 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 getMarkerPos "mkr_drop"; // Задаём высоту полёта _heli flyinheight 50; _success = _heli setSlingLoad _veh; // Ждём пока дистанция будет менее 1700 метров - начинаем выпускать ловушки waitUntil { sleep 1; (_heli distance getMarkerPos "mkr_drop") < 1700 }; // Откидываем ловушки _heli spawn _flares; // Ждём пока дистанция будет менее 300 метров - приказываем садиться waitUntil { (_heli distance2d getMarkerPos "mkr_drop") < 100 }; dostop _heli; _heli flyinheight 7; waitUntil { Sleep 0.2; (getPosATL _veh select 2) < 1 }; _success = _heli setSlingLoad objNull; waitUntil {isTouchingGround _veh}; // Садимся с высадкой десанта _heli land "get out"; // Высота полёта = 0. На всякий случай. _heli flyInHeight 0; // Ждём пока вертолёт будет стоять на земле waitUntil {isTouchingGround _heli}; // Приказываем группе десанта покинуть борт вертолёта _supgroup leaveVehicle _heli; // Ждём пока все челны группы десанта покинут вертолёт waitUntil { sleep 5; count (_unitsCargo select {alive _x && (!isNull objectParent _x)}) == 0 }; // Добавляем группе вейпоинт для дальнейшего движения _wp =_supgroup addWaypoint [getPos player, 0]; // Приказываем вертолёту уходить на указанные координаты _heli domove getMarkerPos "mkr_move"; // Задаём высоту полёта _heli flyinheight 50; // Откидываем ловушки _heli spawn _flares2; // Ждём пока дистанция будет менее 300 метров - удаляем вертолёт waitUntil { sleep 1; (_heli distance getMarkerPos "mkr_move") < 300 }; {deleteVehicle _x} forEach ((units group _heli) + [_heli]); };
Есть вопросы или предложения — заходи в наше техническое Discord сообщество!