<<<Назад <<<

Как сделать сигнальную ракету

  1. Имитация пуска ракеты. Именно имитация, потому что при этом 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

    Триггер может быть повторяющимся или нет.

  2. 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

<<<Назад <<<