И так, немного костылей от меня.
Видел я недавно, как товарищ Zloi показывал создание минёра, который устанавливал заряд и тот «взрывался» через некоторое заданное время.
И решил тут в виде скрипта это сделать полностью.
Простите меня более опытные товарищи, сделал как знаю.
Вариант 1: Бот с большим зарядом + таймер бомбы
0 spawn { // Создаём группу - приказы можно давать только группам _newGroup = createGroup east; // Созадём юнита _miner_bot = _newGroup createUnit ['O_soldier_exp_F', [5852.74,5324.51,0], [], 0, 'CAN_COLLIDE']; // Повораичваем юнита куда нам надо. Необязательно. _miner_bot setFormDir 45; // _miner_bot setPosATL [26757.5,24705.3,4.17517]; // Если надо на вышке что бы появился, например // Приказывам боту двигаться на указанную позицию _miner_bot doMove [5894.72,5377.78,0]; // Ждём пока бот приблизится к позиции, и останется меньше 1 метра waitUntil { sleep 1; (_miner_bot distance [5894.72,5377.78,0]) < 1 }; // Приказываем боту присесть на колено. _miner_bot setUnitPos "MIDDLE"; // Пауза 3 секунды sleep 3; // Анимация "положить" _miner_bot playActionNow "PutDown"; sleep 2; // Позиция для установки бомбы _position = _miner_bot getRelPos [0.6, 0]; // Создание самой бомбы _bomb = "SatchelCharge_Remote_Ammo_Scripted" createVehicle _position; sleep 0.5; // Приказываем боту встать _miner_bot setUnitPos "UP"; sleep 1; // Приказывем боту двигаться на другую точку. Безопасное расстояние _miner_bot doMove [5852.74,5324.51,0]; // Таймер для бомбы на 20 секунд и её подрыв _bomb spawn { sleep 20; _this setDamage 1;}; };
Вариант 2: Бот с большим зарядом. Взрыв по прибытию бота на безопасную позицию.
0 spawn { // Создаём группу - приказы можно давать только группам _newGroup = createGroup east; // Созадём юнита _miner_bot = _newGroup createUnit ['O_soldier_exp_F', [5852.74,5324.51,0], [], 0, 'CAN_COLLIDE']; // Повораичваем юнита куда нам надо. Необязательно. _miner_bot setFormDir 45; // _miner_bot setPosATL [26757.5,24705.3,4.17517]; // Если надо на вышке что бы появился, например // Приказывам боту двигаться на указанную позицию _miner_bot doMove [5894.72,5377.78,0]; // Ждём пока бот приблизится к позиции, и останется меньше 1 метра waitUntil { sleep 1; (_miner_bot distance [5894.72,5377.78,0]) < 1 }; // Приказываем боту присесть на колено. _miner_bot setUnitPos "MIDDLE"; // Пауза 1 секунда sleep 1; // Анимация, и пауза 3 секунды. _miner_bot playActionNow "medicStart"; sleep 2; // Анимация для остановки предыдущей (та анимация бесконечна) _miner_bot playActionNow "medicStop"; // Пауза 2 секунды sleep 2; // Позиция для установки бомбы _position = _miner_bot getRelPos [0.6, 0]; // Создание самой бомбы _bomb = "SatchelCharge_Remote_Ammo_Scripted" createVehicle _position; sleep 0.5; // Приказываем боту встать _miner_bot setUnitPos "UP"; sleep 1; // Приказывем боту двигаться на другую точку. Безопасное расстояние _miner_bot doMove [5852.74,5324.51,0]; // Ждём пока бот приблизится к позиции, и останется меньше 2 метров waitUntil { sleep 1; (_miner_bot distance [5852.74,5324.51,0]) < 2 }; // Таймер для бомбы на 5 секунд и её подрыв _bomb spawn { sleep 5; _this setDamage 1;}; };
Вариант 3: Подрыв заряда (тут клеймор, направленный) по приближению объекта (расстояние до срабатывания надо настраивать под разные виды транспорта и их скорость)
0 spawn { // Создаём машину private _vehicle = "O_G_Offroad_01_F" createVehicle [6011.23,5544.87,0]; createVehicleCrew _vehicle; // Создаём экипаж в ней _vehicle setDir 215; private _group = group driver _vehicle; _group addVehicle _vehicle; _vehicle domove [5829.98,5302.05,0]; private _position = [5891.6,5385.59,0]; private _bomb = "ClaymoreDirectionalMine_Remote_Ammo_Scripted" createVehicle _position; [_bomb, 105] remoteExec ["setDir", 0]; waitUntil { sleep 0.2; (_vehicle distance _bomb) < 10 }; _bomb spawn { sleep 0.2; _this setDamage 1;}; };
Видео на эту тему:
Обсудить этот метод можно в нашем Discord канале