Модератор форума: GUNNER161, Panikaha |
Форум РЕДАКТОР - ArmA 3 Скрипты Простой Скрипт Артиллерии (скрипт от бисов, но нужно доделать) |
Простой Скрипт Артиллерии |
› Воскресенье
› 06.12.2015
› 14:07
› Сообщение #
Всем Привет, есть скрипт артиллерии - достаточно легкий в использовании, но в нем есть некие ошибки, скриптоделы, не могли бы помочь? Артиллерия стреляет по отдельности, а надо бы чтобы стреляла одновременно
if (isServer) then { for "_i" from 10 to 10 do { //--- диапазон циклов стрельбы _mortar = [gun1, gun2, gun3] call BIS_fnc_selectRandom; //--- выбор случайного юниты для выстрела из списка _uni = tar; //--- selects a unit to target the round at _center = getpos _uni; //--- центральная точка, вокруг которой будут падать снаряды _radius = 600; //--- радиус поражения снарядов _pos = [ (_center select 0) - _radius + (2 * random _radius), (_center select 1) - _radius + (2 * random _radius), 0 ]; _mortar commandArtilleryFire [ _pos, getArtilleryAmmo [_mortar] select 0, 32//--- выстрелов юнита за ход ]; sleep 1; //--- задержка между выстрелами }; };
THE ArmA
|
› Воскресенье
› 06.12.2015
› 18:39
› Сообщение #
if (isServer) then {
_uni = tar; _center = getpos _uni; _radius = 600; for "_i" from 10 to 10 do { _pos = [(_center select 0) - _radius + (2 * random _radius), (_center select 1) - _radius + (2 * random _radius), 0]; {_x commandArtilleryFire [_pos, getArtilleryAmmo [_x] select 0, 32]} foreach [gun1,gun2,gun3]; sleep 1; }; }: |
› Воскресенье
› 06.12.2015
› 19:41
› Сообщение #
Скрипт вообще отказывается работать, скопировал весь текст
THE ArmA
|
› Воскресенье
› 06.12.2015
› 19:50
› Сообщение #
for "_i" from 1 to 10 do {
..... как запускаешь? |
› Воскресенье
› 06.12.2015
› 21:21
› Сообщение #
я разобрался, имя неправильно в цели написал. только вот если прописывать " for "_i" from 1 to 10 do { " - орудие будет подниматься опускаться
Добавлено (06.12.2015, 20:09) Добавлено (06.12.2015, 21:21)
THE ArmA
|
› Воскресенье
› 06.12.2015
› 21:24
› Сообщение #
Промежуток для каждого типа орудия свой. Если нужно что-то отличное, тогда надо задавать единичный выстрел и потом нужную паузу
commandArtilleryFire [_pos, getArtilleryAmmo [_x] select 0, 1] |
› Воскресенье
› 06.12.2015
› 21:26
› Сообщение #
а как увеличить расстояние между снарядами?
THE ArmA
|
› Воскресенье
› 06.12.2015
› 21:33
› Сообщение #
Разброс что-ли? Исходное значение в переменной _radius. его и меняй
|
› Воскресенье
› 06.12.2015
› 21:52
› Сообщение #
собственно какая строка? где радиус "_radius = 600;" или "_pos = [(_center select 0) - _radius + (2 * random _radius), (_center select 1) - _radius + (2 * random _radius), 0];"
THE ArmA
|
› Понедельник
› 07.12.2015
› 14:40
› Сообщение #
_pos - координаты для стрельбы, вычисляются по заданному центру плюс вносится некая дисперсия рэндомным значением переменной _radius
В моем варианте _radius вынесен за цикл, ибо значение все равно не меняется. |
› Понедельник
› 07.12.2015
› 23:58
› Сообщение #
Извини конечно, но суть я не уловил -
1) commandArtilleryFire [_pos, getArtilleryAmmo [_x] select 0, 1] (1 - это кол-во выпускаемых снарядов за раз) но мне нужна задержка между выстрелами ( выстрел - прошло 5 сек - выстрел ( в моем случае это m5 sandstorm ). 2) _pos = [(_center select 0) - _radius + (15 * random _radius), (_center select 1) - _radius + (15 * random _radius), 0]; ( где 15 это расстояние между кратерами, то есть разброс) но почему то снаряды разрываются в другом месте Добавлено (07.12.2015, 23:58)
THE ArmA
|
› Вторник
› 08.12.2015
› 17:33
› Сообщение #
Задержка между залпами (внутри цикла for) формируется командой sleep
В данном случае - sleep 1 Нет. Это множитель для вычисления. Разброс указывается в _radius. За координату выстрела принимается координата цели минус _radius плюс удвоенный случайный _radius. Этим достигается некий разброс. Возможно, есть способы лучше. Например, при создании объекта учитывается параметр placement - то есть заданный радиус его появления относительно указанной позиции. Объект появится в случайном месте внутри этого радиуса. Таким способом можно создать чтонить маленькое (консервную банку) и ее координаты передать в commandArtilleryFire. После чего банку удалить. При изначальном множителе 2 и _radius = 600 максимальные отклонения будут +- 600м от цели |
› Вторник
› 27.03.2018
› 18:22
› Сообщение #
Скрипты прописываются через консоль? в редакторе карт?
|
› Вторник
› 27.03.2018
› 18:31
› Сообщение #
Для проверки можно через консоль.
Для работы - так |
› Пятница
› 08.03.2019
› 12:17
› Сообщение #
Жаль не работает( Хотя может я что то не то сделал
|
| |||
Чат сайта |