Триггеры - редактор карт

Тема в разделе 'ALLODS2.EU: Учебник', создана пользователем Lett, 8 май 2014.

  1. Lett Его все знают

    Форумные баллы:
    0

    Пора запилить тему - уроки по созданию своих триггеров и пониманию чужих, тему дающую основы для понимания того, как работают скрипты на картах.
    Чтобы редактировать триггеры в редакторе необходимо нажать значок с шестеренкой и знаком вопроса.
    Правый клик по любой пустой клетке откроет список ловушек - клеток при наступлении на которые срабатывает заклинание (обычно на картах ставят телепорт)
    1.png

    как видим в данном случае поле Placed Trap пусто, на карте нет ловушек.

    Правый клик по клетке строения открывает список заклинаний которые колдует строение, при это имеет значение "за кого" это строение, оно будет колдовать плохие заклинания на врагов (своих) и хорошие на алей.
    То что строение кастует, видно по синему крестику на клетке:
    2.png
    Bene sit tibi нравится это.
  2. Lett Его все знают

    Форумные баллы:
    0

    Щелчком левой кнопки на любой пустой клетке мы откроем менеджер триггеров:
    1.png

    1 - список готовых триггеров
    2- условия для срабатывания (чекс)
    3- события, который будут происходить (тут список сразу всех событий на карте)
    4- событие для конкретно выбранного триггера

    Пока непонятно, но сейчас мы рассмотрим все в отдельности и станет яснее.
    Итак, каждый триггер - это до 4 событий (мы видим место для добавления, там где написано Instance), которые происходят при определенных условиях.

    Итак, как только карта встает (стартует), каждую примерно секунду проверяются условия, которые задал картописатель, и если они выполняются - происходят события.

    Кнопка Manage Checks - отвечает за условия, кнопка Manage Instances - за события

    Рассмотрим сначала чексы:
    23.png

    слева мы видим список возможных условий, правее - поле для ввода имени выбранного условия, ниже список уже существующих чеков, и кнопки для добавления и удаления чеков.
    Вот конкретно выбранное условие Is unit alive? проверяет жив ли юнит, справа у нас поле для ввода id нужного нам юнита. Как видите условий у нас доступно много, и с каждым можно сделать что-то интересное.
    Особняком стоят чеки TRUE и FALSE (правда и ложь). Конкретно в нашем случае их нужно добавить, чтобы было с чем сравнивать условие "жив ли юнит".
    Bene sit tibi нравится это.
  3. Lett Его все знают

    Форумные баллы:
    0

    Рассмотрим теперь Instance Manadger:
    2.png

    слева у нас список доступных событий, в общем все как в предыдущем случае. Разница лишь в том что там были условия, а тут события - то что случится. Конкретно сейчас выбрано событие Cast spell to unit, которое, как нетрудно догадаться кастует на юнита заклинание.
    Мы можем задать координаты, из какой точки заклинание "выстрелит", id юнита, силу заклинания (от 0 до 255) и номер залинания. Номер заклинания - это какое по счету заклинание идет в списке заклинаний (вспомните список который мы вызывали правым кликом по зданию)
    Особняком стоит событие Drop Location. Это событие не требует триггера, достаточно просто создать одно или несколько таких событий. Они задают координаты, где будет появлятся персонаж при заходе на карту (респ).
    Bene sit tibi нравится это.
  4. Lett Его все знают

    Форумные баллы:
    0

    Итак, для понимания сути создадим триггер вместе. Возьму для примера группу из 5 гоблинов, и создам триггер чтобы в клетке с координатами 23,26 колдовался туман, если в группе осталось меньше трех гоблинов.
    Нам потребуются условие - узнать сколько гоблинов в группе, сравнить с числом три и если меньше - выполнить событие - кастануть туман.
    Чексы:
    23.png

    Обратите внимание, я кроме условия сколько юнитов в группе добавил условие Constant Value - это просто число (в данном случае три), чтобы сделать сравнение.
    Теперь сам триггер у меня будет выглядить так:
    32.png

    как вы видите, я выбрал два чекса - сколько юнитов, и число три, и поставил галочку где <, т.е. сделал сравнение если юнитов меньше чем три. Но поле событий у меня по прежнему пустое.
    Bene sit tibi нравится это.
  5. Lett Его все знают

    Форумные баллы:
    0

    Создадим событие для этого триггера:
    1.png

    событие make spell effect колдует заклинание на клетку, 6 - это туман
    Теперь добавим это событие для нашего триггера:
    2.png

    теперь наш триггер имеет законченный вид.

    Обратите внимание на очень важную галочку внизу - Run Once, если она стоит - событие будет запущено только один раз.

    Итак, вот наша карта встала. И игра каждую секунду стала проверять сколько юнитов в группе такой то. Если она обнаружила что меньше трех, она кинула туман на клетку такую-то, и больше триггер выполнятся не будет. Итак если галочка стоит - триггер после срабатывания удается из списка проверок. Туман кастанется ровно один раз, повисит недолго, и исчезнет.
    Если снять галочку, триггер будет выполнятся постоянно. Даже когда мы убьем гоблинов, и они снова респ - снова туман будет появлятся если гоблинов меньше трех. Туман не исчезнет, не кастанется один раз (как в случае с галочкой), он будет постоянно кастоваться пока гоблинов меньше трех, и будет висеть пока верно условие.
    Bene sit tibi и Stress нравится это.
  6. Lett Его все знают

    Форумные баллы:
    0

    Теперь, если вы поняли логику срабатывания, осталось перечислить списки наиболее популярных условий и событий, и описать их работу.
    Bene sit tibi, St Angel и Stress нравится это.
  7. Lett Его все знают

    Форумные баллы:
    0

    Итак условия ( Checks)
    How many units contain this group и Is unit alive мы уже обсудили. Также все понятно с Constant Value, TRUE, FALSE.
    Get unit parametr - получить параметр юнита, вводим id юнита и параметр, работает только когда параметр 6 - это текущее здоровье юнита. Этот чек возвращает число - хп юнита. Данная проверка реализована на карте хаус фор эльф - проверяется здоровье людоеда. Когда оно меньше 6365 - срабатывает условие.
    Health of building - также популярное условие. Возвращает здоровье здания. Удобно использовать с переключателями - они переключают свое здоровье на ноль и один.
    остальные редко используются хотя и работают (некоторые глючно)
    В общем о назначении можно догадаться из английского перевода.
    Bene sit tibi, St Angel и Stress нравится это.
  8. Lett Его все знают

    Форумные баллы:
    0

    Популярные события (instance):
    Ну конечно же самые популярные это:
    Phase in unit, Phase out unit, Phase In Group, Phase Out Group
    убрать (спрятать) юнита, появить юнита, убрать группу, появить группу
    овод и добряк очень любят во всех своих мапах условия "убей группы такие-то чтобы появились овцы такие-то"
    как раз реализованно через эти события. Сначала нужные группы убраны, а потом проверяется некое условие, по срабатыванию которого группы появляются.

    Set building's health - не рекомендую, сразу вылет мапы


    Group Command : Guard, Group Command : Swarm, Group Command : Stand Ground и т.д.

    Команды определенной группе защищать (кого-то, конкретного юнита), идти в боевой готовности, стоять смирно и т.д. Команды аналогичные как для вашего персонажа, только можно отдавать группе при срабатывании определенных условий.
    Bene sit tibi, St Angel и Stress нравится это.
  9. Lett Его все знают

    Форумные баллы:
    0

    Change diplomacy - что любопытно, работает. Три параметра, номера врагов (просто по счету в меню Players) и дипломатия - 1-война, 2-нейтрал, 3-альянс
    Можно реализовать какой нибудь скрипт что при убийстве какого-нибудь некроманта враждебные друиды станут алей ну и т.д.

    Repop Delay - не пробовал, но очевидно можно поменять время репопа группы

    Set Unit Parameter - аналогично условию Get unit parametеr, работает только с параметром 6 - хп моба. Этим событием можно задать кол-во хп которое станет у моба при срабатывании условия.
    Например это использует на карте Витал квест. Проверяется условие жив ли дракон, и проверяется условие что хп некроманта не меньше 1800. А если оно меньше (мы его бьем к примеру) то оно становится вновь 1800. Поэтому его не убить пока жив дракон.
    Cthulchu, Bene sit tibi и Stress нравится это.
  10. Юрок Человек оркестр

    Форумные баллы:
    0

    Кажется я знаю кто может помочь с новым редактором:)
  11. Stress Знатный флудер

    Форумные баллы:
    0

    Опять Lett на высоте. Молодец!

    А мб и впрямь редактор забацает новый)
  12. Добряк Орущий командир

    Форумные баллы:
    0

    норм. Но есть же руссик на редактор...
  13. Stress Знатный флудер

    Форумные баллы:
    0

    У меня русик редактор не пашет вообще.
  14. Добряк Орущий командир

    Форумные баллы:
    0

    ну плохо тебе

Поделиться этой страницей