Хотите взрыв?
Иногда же вам хотелось сделать миссию более эффектной с помощью артобстрела? Или с помощью бомбардировки? Вот собственно два скрипта с подробным обьяснением.
- Бомбардировка
идет относительно самолета(кто захочет - можно и вертолета, но это нереально будет, товарищи)
;находим самолет и записываем его в переменную _plane
_plane = this select 0
;берем название заряда и записываем его в переменную _gun
_gun = this select 1
;записываем кол-во зарядов в переменную _countgun
_countgun = this select 2
;начало цикла
#bomba
;помещаем бомбу ниже самолета на полметра
_bomb = _gun camcreate[(getpos _plane select 0), (getpos _plane select 1), (getpos _plane select 2)-0.5]
;ожидаем полсекунды и уменьшаем кол-во зарядов на 1-цу
~0.5
_countgun = _countgun - 1
;проверяем кол-во зарядов:
;если > 0, то возвращаемся в начало цикла
;если нет, то идем к концу
?(_countgun>0): goto "bomba"
exit
;запуск скрипта:
;[ваш_самолет,"ваш_заряд",кол-во_зарядов]
;exec "ваше_название_скрипта.sqs"
- Артобстрел: !ОБНОВЛЕН!(! - обновление в скрипте)
идет относительно какого-либо маркера
;берем название заряда и записываем его в переменную _gun
_gun = this select 0
;берем название маркера и записываем его в переменную _marka
_marka = this select _coord
;кол-во переменных в массиве записываем в переменную _coord
;отнимаем от кол-ва переменных в массиве 1-цу для того,
;чтобы не было ошибки при взятии координатов,
;например: у вас 15 эл. в массиве. _gun нам брать не надо, а
;из-за считывания координат без 0-вого эл-та
;программа найдет несуществующую переменную. Нам
;этого не надо.
_coord=(count _this) - 1
;берем название маркера и записываем его в переменную _marka
_marka = this select _coord
;начало цикла
#artob
;обождем время от 1 до 5 секунд
~random 5
;захват случайным образом координат из массива _this с помощью
;переменной _coord
;координата x
_xc = _this select (random _coord)
;!проверяем номер рендома, чтобы он не взял имя маркера на x
;а взял последнюю координату
?(_xc == _coord): _xc = _coord - 1
;координата y
_yc = _this select (random _coord)
;!проверяем номер рандома, чтобы он не взял имя маркера на y,
;а взял последнюю координату
?(_yc == _coord): _yc = _coord - 1
;создаем заряд относительно маркера плюс координат х и у
_bang = _gun camcreate[(getmarkerpos _marka select 0) + _xc, (getmarkerpos _marka select 1) + _yc]
;проверяем выполнена ли задача (obj правда или ложь)
;правда - переходим к концу
;ложь - возвращаемся в начало цикла
?(obj): exit
goto "artob"
;если хотите, можете сделать так, как и в бомбардировании - определить
;кол-во зарядов, а потом проверить его: 0 зарядов или еще есть
;для запуска скрипта
;["ваш_заряд",...разные_координаты...,"ваш_маркер"]
;exec "ваше_название_скрипта.sqs"
;не забудьте кроме положительных координат еще и отрицательные
- Артобстрел 2. Сокращение.!НОВОЕ!
идет относительно какого-либо маркера
;берем название заряда и записываем его в переменную _gun
_gun = _this select 0
;берем максимальное значение координат и записываем его
;в переменную _coordsmax
_coordsmax = _this select 1
;берем название маркера и записываем его в переменную _marka
_marka = _this select 2
;берем максимальное ожидание заряда оружия
_vrema = _this select 3
;начинам цикл
#artobstrel
;ожидаем от одной до _vrema секунд
~random vrema
;захватываем одну из координат максимально до _coordsmax в переменную _xc
_xc = random _coordsmax
;захватываем одну из координат максимально до _coordsmax в переменную _yc
_yc = random _coordsmax
;создаем заряд относительно маркера _marka плюс координаты x и y
_bang = _gun camcreate[(getmarkerpos _marka select 0) + _xc, (getmarkerpos _marka select 1) + _yc]
;проверяем выполнена ли задача (obj правда или ложь)
;правда - переходим к концу
;ложь - возвращаемся в начало цикла
?(obj): exit
goto "artobstrel"
;если хотите, можете сделать так, как и в бомбардировании - определить
;кол-во зарядов, а потом проверить его: 0 зарядов или еще есть
;для запуска скрипта
;["ваш_заряд",максимальная_координата,"ваш_маркер"]
;exec "ваше_название_скрипта.sqs"
Но в Артобстреле 2 будут только макс-корды(отрицательные не пробовал), но в написании он значительно легче, чем обычный Артобстрел(лучше
использовать обычный Артобстрел, в нем может быть огромное кол-во координат)з>