Как сделать сигнальную ракету
- Имитация пуска ракеты. Именно имитация, потому что при этом AI не стреляет флаэром, а сам флаэр можно поместить в любом месте карты.
Ниже приведен скрипт, имитирующий стрельбу солдатом.
_obj= _this select 0 ; ссылка на солдата
_exe= _this select 1 ; ссылка на боеприпас
_i=1
#start
;для достоверности выход, если солдат убит (иначе пуски продолжатся)
?(! alive _obj): goto "stop"
; пускаем 10 ракет
? _i>10: goto "stop"
;выстреливаем ракету на высоту 150 метров над AI
_action=_exe CamCreate [(GetPos _obj select 0)+5, (GetPos _obj select 1)+5,150]
_i=_i+1
;интервал между запусками
~5
goto "start"
#stop
exit
Скрипт можно вызвать из триггера: [solname, "flareRed"] exec "flare2.sqs"
Вместо flarered можно ставить flare, flaregreen, flareyellow
Этот скрипт можно использовать с небольшими изменениями для имитации растяжки с сигналкой. Для этого делаем примоугольный триггер 5Х30 с активацией кто угодно, обзываем его triggername и пишем его в вызове скрипта вместо solname.
В скрипте удаляем все кроме:
_action=_exe CamCreate [(GetPos _obj select 0)+5, (GetPos _obj select 1)+5,150]
~5
exit
Триггер может быть повторяющимся или нет.
- AI реально стреляет ракетами.
ВАЖНО: солдату надо дать оружие и боеприпас flare, а чтобы flare был активным оружием, сначала надо все оружие убрать и дать заново.
В ините надо написать:
removeallweapons this; this addmagazine "FLAREGREEN"; this addweapon "FLAREGREEN"; this addweapon "M16GrenadeLauncher"; this addmagazine "M16";this addmagazine "M16";[5,5] exec "flare1.sqs"
ВАЖНО: оружие для флаеров разных цветов разное: FLARE, FLARERED, FLAREGREEN, FLAREYELLOW
Не забудьте поменять его в строке s2 fire ["throw","Flaregreen","Flaregreen"], иначе стрелять не будет. Перезаряжается флаэр автоматически.
сам скрипт:
;число выстреливаемых ракет
num= _this select 0
; интервал между пусками (если дать имя time, то пишется ошибка - зарезервированная переменная)
tim= _this select 1
; эти переменные совершенно безболезненно можно заменить на конкретные цифры как в предыдущем примере, внеся соответствующие изменения в скрипт и в команду его вызова. Если сделать переменные локальными (_num, _tim), то
все будет работать, но только почему то постепенно задержка между выстрелами увеличивается. Аналогично можно изменить и предыдущий скрипт.
_i=1
#begin
? _i>num: goto "stop"
s2 fire ["throw","Flaregreen","Flaregreen"]
s2 addmagazine "flaregreen"
_i=_i+1
~tim
goto "begin"
#stop
exit