Ну что же, вот и новая запись спустя много лет 😉
В этот раз это скрипт, который спавнит вертолёт, подцепляет к нему лёгкую машину (Ифрит, например) и он несёт её на указанное место.
Нам понадобится три маркера, их описание есть в начале кода скрипта.
При подлёте к указанному месту вертолёт начинает отстреливать тепловые ловушки, подлетает к указанному месту, отцепляет машину оставляя её на земле и улетает так же отстреливая тепловые ловушки. Подлетая к маркеру отхода вертолёта
В этом скрипте храбрость экипажа выкручена на максимум, так что обстрелы их мало волнуют.
ВАЖНО!
Танк так не притащить. И даже БТР так не приносится. У вертолётов есть своя грузоподъёмность, которая ограничивает варианты привозимой техники.
Код в чистом виде:
/* Нужные маркера: mkr_spawn - точка появления mkr_drop - точка сброса (100 метров от маркера, чтобы не снижать скорость. Поставишь меньше - вертушка будет висеть и тупить) mkr_move - куда вертолёт улетает после отцепа техники, и удаляется */ 0 spawn { private _heli = createVehicle ["B_Heli_Transport_03_F", getMarkerPos "mkr_spawn", [], 0, "FLY"]; createVehicleCrew _heli; private _flares = { while {alive driver _this && {!(isTouchingGround _this)}} do { sleep 3.5; _this action ["useWeapon", _this, driver _this, 0]; }; }; private _group = group driver _heli; _group addVehicle _heli; {_x setSkill ["courage", 1]} forEach units _group; // format ["Уровень параметра Courage = %1", leader _group skillFinal "courage"] remoteExec ["hint"]; _heli setDir 210; _heli domove getMarkerPos "mkr_drop"; private _MHQ = createVehicle ["I_MRAP_03_F", getMarkerPos "mkr_spawn"]; _success = _heli setSlingLoad _MHQ; _heli flyinheight 30; waitUntil { sleep 1; (_heli distance getMarkerPos "mkr_drop") < 2700 }; _heli spawn _flares; waitUntil { sleep 1; (_heli distance2d getMarkerPos "mkr_drop") < 100 }; dostop _heli; _heli flyinheight 7; waitUntil { Sleep 0.2; (getPosATL _MHQ select 2) < 1 }; _success = _heli setSlingLoad objNull; waitUntil {isTouchingGround _MHQ}; [resistance, _MHQ] call BIS_fnc_addRespawnPosition; _heli domove getMarkerPos "mkr_move"; _heli flyinheight 50; waitUntil { sleep 1; (_heli distance getMarkerPos "mkr_move") < 300 }; {deleteVehicle _x} forEach ((units group _heli) + [_heli]); };
Код с расшифровкой (надеюсь нигде не накосячил пока комментарии писал. Если что — используй код выше):
/* Нужные маркера: mkr_spawn - точка появления mkr_drop - точка сброса (100 метров от маркера, чтобы не снижать скорость. Поставишь меньше - вертушка будет висеть и тупить) mkr_move - куда вертолёт улетает после отцепа техники, и удаляется */ 0 spawn { // Создаём вертолёт. Вертолёт должен в стандартной версии игры поднимать эту технику на троссы. private _heli = createVehicle ["B_Heli_Transport_03_F", getMarkerPos "mkr_spawn", [], 0, "FLY"]; // Создаём экипаж вертолёта. createVehicleCrew _heli; // Прописываем ловушки, которые вертолёт будет использовать. Их интервал тут указан в 3.5 секунды. private _flares = { while {alive driver _this && {!(isTouchingGround _this)}} do { sleep 3.5; _this action ["useWeapon", _this, driver _this, 0]; }; }; // Переходим к лидеру группы. (для команд нет юнитов, есть отряды. Даже 1 юнит = отряд.) private _group = group driver _heli; // Теперь, отдавая приказы вертолёту (_heli) мы передаём их лидеру группы _group addVehicle _heli; // Выкручиваем храбрость экипажа. {_x setSkill ["courage", 1]} forEach units _group; // Проверочный хинт. Если вдруг трусят, то посмотреть уровень храбрости. // format ["Уровень параметра Courage = %1", leader _group skillFinal "courage"] remoteExec ["hint"]; // Направление носа вертолёта при спавне. _heli setDir 210; // Куда вертолёту лететь. _heli domove getMarkerPos "mkr_drop"; // Создаём КШМ. Вертолёт должен в стандартной версии игры поднимать эту технику на троссы. private _MHQ = createVehicle ["I_MRAP_03_F", getMarkerPos "mkr_spawn"]; // Подцеспляем КШМ к вертолёту, на троссах. _success = _heli setSlingLoad _MHQ; // Задаём высоту полёта вертолёта. _heli flyinheight 30; // Ждём пока (в данном случае 2700 метров) дистанция до точки будет равна указанной ниже. waitUntil { sleep 1; (_heli distance getMarkerPos "mkr_drop") < 2700 }; // Начинаем отстреливать ловушки. _heli spawn _flares; // Проверяем дистанцию до точки отцепа техники. waitUntil { sleep 1; (_heli distance2d getMarkerPos "mkr_drop") < 100 }; // Приказываем остановится. dostop _heli; // Задаём высоту полёта в 7 метров. _heli flyinheight 7; // Проверяем что между машиной и землёй осталось менее 1 метра. waitUntil { Sleep 0.2; (getPosATL _MHQ select 2) < 1 }; // Отцепляем тросы от машины. _success = _heli setSlingLoad objNull; // Ждём пока машина коснётся земли. waitUntil {isTouchingGround _MHQ}; // Добавляем точку респауна на эту машину. [resistance, _MHQ] call BIS_fnc_addRespawnPosition; // Приказываем вертолёту улетать к указанному маркеру отхода. _heli domove getMarkerPos "mkr_move"; // Задаём высоту полёта. _heli flyinheight 50; // Проверяем дистанцию до маркера отхода вертолёта. waitUntil { sleep 1; (_heli distance getMarkerPos "mkr_move") < 300 }; // Когда дистанция до маркера отхода достигнута - удалём вертолёт. {deleteVehicle _x} forEach ((units group _heli) + [_heli]); };
Обсудить этот скрипт можно в нашем Discord канале