Раздел:
3. Редактор данных
Автор оригинала:
Shvegait
Источник:
http://www.jx3.net/TDG/forum/viewtopic.php?f=101&t=3430

Огонь феникса

Авто-атакующая способность "Огонь Феникса" - одна из используемых способностей в картах для WC3.
В этой статье, я покажу Вам, как создавать эту способность в SC2.
"Огонь Феникса" - пассивная способность, которая атакует ближайшего противника.
Для неё нам нужно создать:
  • Behavior - ищет в нужном нам радиусе цель, для выстрела в неё.
  • Effect - назначает тип, снаряд и модель выстрела, определяет момент выстрела и радиус действия.

Создание Effect'а

Для начала открываем Data Editor (F7)
1.1 Во-первых мы создадим Effect. Для этого находим в поле Data Type - Effects и нажимаем правой кнопкой по появившимуся полю и выбираем Add Object...(Ctrl+=)
Называем его "PhoenixFireSearchArea" и щёлкаем на кнопке "Suggest" для получения ID.
В поле Effect Type находим Search Area и выбераем её.
Далее нажимаем "OK".
1.2 Теперь нам нужно определить радиус действия этого еффекта.
Щелкните по полю: "(None) - Areas+"
Сейчас заполним его:
  • Щелкаем по зелёной кнопке "+X" на правой стороне окошка, для создания радиуса.
  • Измените значение на Maximum Count на 1 (у нас будет только одна цель). Сначала там стояло -1, это означало, что не существует максимального кол-ва целей.
Конечно вы можете изменить его на то кол-во, которое вы хотите использовать в еффекте.
  • Установите значение в пункте Radius. Это будет диапозоном для нашей атаки. наиболее подходящие значения для этого пункта от 4 до 10.
  • Назначьте Effect. Это тип выстрела нашей способности. Я выбрал: "Battlecruiser - ATS Laser Battery (Launch Missile)".
  • Нажмите "Ok".
1.3 Наконец, мы должны выбрать типы целей, которые подходят для нашей способности.
Для этого делаем следующие действия:
  • Нажимаем на "Data - Search Filters".
  • Снимаем галочки с Ally, Neutral и Player.
  • Меняем пункт Dead и Missile на Excluded.
  • Меняем пункт Visible на Required.
  • Нажимаем "Ok".
Типы
Allowed - тот тип, который включён в способность.
Excluded - тот тип, который не включён в способность.
Required - тот тип, который обязательно требуется для способности.
Мы закончили с работой над Effect. Теперь нам нужно создать Behavior, который будет сообщать, когда использовать созданный нами Effect.

Создание Behavior'а

1.4 Находим в поле Data Type - Behaviors и нажимаем правой кнопкой по появившимуся полю и выбираем Add Object...(Ctrl+=)
Называем его PhoenixFireBase, нажимаем Suggest. В поле Behavior Type находим Buff и выбираем его.
Нажимаем "Ok".
1.5 Мы можем оставить большинство полей по-умолчанию. Для получения нужного нам результата, нужно лишь изменить три строчки:
  • Поставьте в пункт "Effect - Periodic" созданный нами ранее еффект (PhoenixFireSearchArea).
  • В пункте "Period" поставьте любое положительное число, например 0.5. Это будет означать, что наш еффект будет срабатывать каждые 0.5 секунд или 2 раза в секунду.
  • В пункте "Icon" выберите нужную Вам иконку.
Это всё, что нужно было сделать с Behavior. Осталось только добавить его на война.
Я выбрал Raven, но вы можете выбрать любого другого воина.

Добавление к юниту.

1.6 Выберите в поле "Data Type - Units" и найдите в списке Raven.
Затем нажимите на графе "(None) - Behaviors". Raven уже имеет один пункт (Detector), но мы добавим ещё один.
Нажмите на зелёную кнопочку "+X", выберите наш Behavior из списка и нажмите "Ok".
Ну вот и наша способность готова! Можете проверить это в действии.

Улучшение способности

В нашей версии "Огня феникса" есть один недочет: способность реагирует на ближайшего к нам юнита, фокусируется на нём и атакует его.
Идея вот в чем: если не хочешь атаковать одного и того же юнита, надо помечать его баффом. В Data Editor есть специальный тип данных - Target Sort - которым мы воспользуемся.
Для этого нам потребуются:
  • Behavior - бафф, накладываемый на атакованную цель на определённое время.
  • Effect - позволяет накладывать этот бафф.
  • Target Sort - определяет, имеет ли атакованная цель бафф или нет, а также определяет, как давно она получила его.
Также нам придётся изменить два пункта:
  • Battlecruiser - ATS Laser Battery (Launch Missile) - мы должны добавить описанный выше эффект для накладывания баффа.
  • Наш созданный в пункте 1.1 еффект PhoenixFireSearchArea - мы должны будем добавить к нему Target Sort.
2.1 Создайте Behavior таким же образом, как и в пункте 1.4, но измените имя на "PhoenixFireBuff" и подберите ID.
Найдите там поле: "Duration" и измените его на любое положительное число, но очень маленькие числа не придадут особого еффекта.
Я поставил 30.
2.2 Теперь создайте Effect таким же образом, как и в пункте 1.1, но поставьте имя "PhoenixFireApplyBehavior" и не забудьте про ID. Напротив Effect Type укажите "Apply Behavior".
Нажмите "Ок".
После этого найдите поле: "Data - Behavior" и поставьте там бафф, созданный нами в пункте 2.1.
2.3 Сейчас мы должны добавить в "Battlecruiser - ATS Laser Battery (Launch Missile)" созданный выше еффект, для появления на цели баффа.
Найдите в списке еффектов "Battlecruiser - ATS Laser Battery (Launch Missile)", а там поле: "(None) - Finish Effect".
Поставьте в него "PhoenixFireApplyBehavior", созданный в пункте 2.2.
2.4 Создаём Target Sort. В списке типов он находится в самом конце.
Назовите его "TSPhoenixFire" и напротив Target Sort Type укажите "Behavior Duration".
и опять не забудьте про ID
Находим поле: "Behavior" и добаляем в него "PhoenixFireBuff" (пункт 2.1).
Благодаря этому Target Sort, наша способность будет атаковать сначала только те цели, которые не имеют баффа "PhoenixFireBuff".
2.5 Наконец возвращаемся к первому созданному нами еффекту (пункт 1.1).
Находим в нём поле: "(None) - Target Sorts+" и добавляем к нему "TSPhoenixFire" (пункт 2.4). Также измените графу "Request Count" на 1.
Вот наша способность и готова! Проверьте в игре, как она действует!