Как сделать так чтобы после срабатывания триггера миномет начал обстрел по определенным координатам,без каких либо приказов?
Арта по триггеру.
Лучший Ответ kolyanya , 14 December 2014 - 11:22
Как сделать так чтобы после срабатывания триггера миномет начал обстрел по определенным координатам,без каких либо приказов?
Разобрался сам . Надо в триггере прописать mortar1 doArtilleryFire [[3000, 120, 1000], "8Rnd_82mm_Mo_shells", 3]
Перейти к сообщению#1 OFFLINE
Отправлено 13 December 2014 - 19:41
#2 OFFLINE
Отправлено 14 December 2014 - 11:22 Лучший Ответ
Как сделать так чтобы после срабатывания триггера миномет начал обстрел по определенным координатам,без каких либо приказов?
Разобрался сам . Надо в триггере прописать mortar1 doArtilleryFire [[3000, 120, 1000], "8Rnd_82mm_Mo_shells", 3]
#3 OFFLINE
Отправлено 16 December 2014 - 18:32
Отлично Но не проще ли поставить триггер на модуль "эффекты--40мм снаряд"??. Это так, для несведущих в скриптах типа меня
#5 OFFLINE
Отправлено 03 January 2015 - 20:18
Как заставить миномёт бить в конкретную нужную мне точку с конкретной периодичностью? "3000, 120, 1000" - это координаты?
#6 OFFLINE
Отправлено 03 January 2015 - 21:26
Afeallan, Миномет с именем "mortar1" поставили? В этой команде кто то должен стрелять, она не спавнит снаряды.
Можете прописать в триггере и так
mortar1 doArtilleryFire [getMarkerPos "123", "12Rnd_230mm_rockets", 12];
поставить на карте сэндсторми с именем "mortar1" тогда по маркеру с именем "123" лупанет сэндсторм 230мм снарядами 12 раз. Эффектно получается и радиус поражения приличный.
Сообщение отредактировал Djon: 03 January 2015 - 21:35
#7 OFFLINE
Отправлено 03 January 2015 - 21:59
Но в команде числится конкретный вид боеприпаса. А у меня, к примеру, артиллерия из мода какого-нибудь. Как узнать, как называются её боеприпасы, чтобы прописать в команду?
Сообщение отредактировал Afeallan: 03 January 2015 - 21:59
#8 OFFLINE
Отправлено 04 January 2015 - 11:14
Afeallan, Не задавался такой целью, но я думаю в конфигах самого мода можно найти, там где описывается данная арта и снаряды к ней. Каким еще способом это сделать я не знаю. Все что имеется в Arma3 можете найти
Все остальное зависит от авторов модов которыми вы пользуетесь. Если они сочли нужным описать классы снарядов арты где либо для информации то хорошо, если нет то только путем раскавыривания мода.
#9 OFFLINE
Отправлено 04 January 2015 - 15:19
А задать радиус атаки как-то можно? Допустим, миномёт на ближайших сотнях метров бьёт довольно точно, парой снарядов можно гарантированно снести технику. Можно заставить его бить по площади метров в 150?
#10 OFFLINE
Отправлено 05 January 2015 - 00:36
Ни чего более интересного че то в голову не приходит.
arta = "B_MBT_01_mlrs_F" createVehicle (getMarkerPos "m1");// создали арту на маркере "м1" sleep 2;//подстраховались _group = createGroup west; // создали группу из двоих бойцов u1 = _group createUnit ["b_survivor_F",getMarkerPos "m1",[],0,"FORM"]; u1 moveInAny arta;// каждого посадили в арту u2 = _group createUnit ["b_survivor_F",getMarkerPos "m1",[],0,"FORM"]; u2 moveInAny arta; sleep 5; arta doArtilleryFire [[14727+(random 100), 16282+(random 100)], "12Rnd_230mm_rockets", 1];// производим выстрел со смещением по х и y на рандом ста sleep 8;// такой задержки достаточно для выполнения предыдущего задания для данной арты arta doArtilleryFire [[14727+(random 100), 16282+(random 100)], "12Rnd_230mm_rockets", 1]; sleep 8; arta doArtilleryFire [[14727+(random 100), 16282+(random 100)], "12Rnd_230mm_rockets", 1]; sleep 8; arta doArtilleryFire [[14727+(random 100), 16282+(random 100)], "12Rnd_230mm_rockets", 1]; sleep 8; arta doArtilleryFire [[14727+(random 100), 16282+(random 100)], "12Rnd_230mm_rockets", 1]; sleep 8; arta doArtilleryFire [[14727+(random 100), 16282+(random 100)], "12Rnd_230mm_rockets", 1]; sleep 8; arta doArtilleryFire [[14727+(random 100), 16282+(random 100)], "12Rnd_230mm_rockets", 1]; sleep 8; arta doArtilleryFire [[14727+(random 100), 16282+(random 100)], "12Rnd_230mm_rockets", 1]; sleep 8; arta doArtilleryFire [[14727+(random 100), 16282+(random 100)], "12Rnd_230mm_rockets", 1]; sleep 8; arta doArtilleryFire [[14727+(random 100), 16282+(random 100)], "12Rnd_230mm_rockets", 1]; sleep 8; arta doArtilleryFire [[14727+(random 100), 16282+(random 100)], "12Rnd_230mm_rockets", 1]; sleep 8; arta doArtilleryFire [[14727+(random 100), 16282+(random 100)], "12Rnd_230mm_rockets", 1];
Результат: на маркере "м1" спавним арту и двух ботов, после появления боты без анимации занимают места водителя и стрелка, выполняют 12 выстрелов по координатам [14727, 16282] с смещением по Х и Y на рандом ста плюс. Имей введу, что рандом выстрелов будет смещаться всегда в одну сторону, для того чтобы рассчитать позицию по которой должен вестись огонь к нужной точке прибавь X+50 и Y+50 вот вокруг этой точки и будут падать снаряды. В данном случае ориентироваться нужно на координаты [14777, 16332] На изображении видно, что танк остается в стороне, он и был [14727, 16282]. Надеюсь понятно объяснил.
P.S. Если команда будет прописана так
arta doArtilleryFire [[14727+(random 100), 16282+(random 100)], "12Rnd_230mm_rockets", 12];
То будет выбрано одно рандомное число и получишь 12 выстрелов в одну точку.
Прикрепленные файлы
Сообщение отредактировал Djon: 05 January 2015 - 00:40
#11 OFFLINE
Отправлено 05 January 2015 - 00:56
#12 OFFLINE
Отправлено 05 January 2015 - 08:17
Afeallan, Короче сделал маленько
arta = "B_MBT_01_mlrs_F" createVehicle (getMarkerPos "m1"); sleep 2; _group = createGroup west; u1 = _group createUnit ["b_survivor_F",getMarkerPos "m1",[],0,"FORM"]; u1 moveInAny arta; u2 = _group createUnit ["b_survivor_F",getMarkerPos "m1",[],0,"FORM"]; u2 moveInAny arta; _zalp = 12; // создаем переменную и присваиваем ей значение равное значению снарядов в арте waitUntil {sleep 8; _zalp = (_zalp - 1); // в цикле прописываем при каждом повторении отнимать от _zalp единицу arta doArtilleryFire [[14727+(random 100), 16282+(random 100)], "12Rnd_230mm_rockets", 1]; // тут ни чего нового _zalp < 0}; // пока _zalp < 0 цикл будет повторяться, если = или > цикл завершен и выполнение всего того что написано ниже deleteVehicle u1; // удалить бота u1 (не обязательно) deleteVehicle u2; // удалить бота u2 (не обязательно) deleteVehicle arta; // удалить арту (не обязательно) _hndl = "" execVM "arta.sqf"; // запустить данный скрипт снова (не обязательно)
Получаете бесконечную стрельбу по одной позиции. Меняйте то что вам нужно и вперед. Возможно есть и более простые решения.
Там где стоит (не обязательно) можно удалить эту строку по желанию.
#13 OFFLINE
Отправлено 06 March 2019 - 18:20
А какую команду использовать, что бы из градов стрелять?