Небольшой дисклеймер:
- Статья для редактора на английском, если кто даст название всех полей на русском - добавлю в статью в скобочках
- Статья ориентирована на все уровни, ибо видел очень много статей как делать ауры неправильно
- Вы должны четко представлять себе что такое аура ;)
Итак, вы здесь для того, чтобы создать ауру для юнита.
Наша аура будет называться Slowness, и будет замедлять вражеских юнитов на 60%
Носителем будет любой юнит, например марик.
Наша аура будет называться Slowness, и будет замедлять вражеских юнитов на 60%
Носителем будет любой юнит, например марик.
Работа будет проходить так - вначале мы создадим все необходимые эффекты, а потом будет менять в них всякие данные и скреплять между собой. Ориентироваться я буду по их названиям.
Под "Создаем" имеется ввиду - правый клик, Add нечто. Мы ничего не копируем, и создадим всё сами, своими руками.
Под "Создаем" имеется ввиду - правый клик, Add нечто. Мы ничего не копируем, и создадим всё сами, своими руками.
Настройки редактора: Английский язык, Table View: Show Field Categories, Combine Structure Values
Проверяем: Найдите в Units Марика и проверьте что первое поле у него называется: Ability: Abilities +
Проверяем: Найдите в Units Марика и проверьте что первое поле у него называется: Ability: Abilities +
Окей, начнём:
Подготовительные Работы
Behaviors:
- Создаем новый behavior типа buff с именем Slowness (Aura).
Не забывайте жать Suggest, чтобы ID был красивым и правильным (в данном случае это будет SlownessAura)
- Создаем другой behavior, опять же buff с именем Slowness.
Собственно всё, к ним мы вернемся чуть позже.
Effects:
С Вашего позволения, я перестану писать слово "создаем", додумайте его сами.
- Эффект Slowness (Search) типа Search Area
- Эффект Slowness (Search Apply) типа Apply Behavior
Собственно костяк готов, теперь самый большой раздел, который мы будет сразу наполнять.
Validators:
(Надеюсь, все знают, как открыть эту вкладку)
Причина этой статьи, нигде не видел чтобы ауру делали так, хотя это проще, логичнее и естественней
Причина этой статьи, нигде не видел чтобы ауру делали так, хотя это проще, логичнее и естественней
- Создаем валидатор с именем Enemies (Target Filter) типа Unit Filters
- и сразу в Validator:Filters ставим в Excluded следующие параметры: Dead, Structure, HarvestableResource, RawResource, Missile, Destructible, Item, UnderConstruction, Invulnerable
- а также, внизу (всё там же, в Validator:Filters): снимаем: Player, Ally и Neutral
Этот валидатор будет отвечать за определение юнитов-врагов, на которых будет накладываться аура. Назван он не по имени спелла, так как его вполне можно применять и к другим заклинаниям. То, что он делает конкретно - должно быть вполне понятно, если нет - пишите, я разъясню.
- Создаем валидатор с именем Slowness (Caster Alive) такого же типа - Unit Filters
- в Validator:Filters ставим Dead: Excluded, остальное оставим по умолчанию
- а в Validator:Unit + ставим Slowness (Search Apply): Source
Этот валидатор будет проверять, что Source (тот, кто наложил эффект) Slowness (Search Apply) не является мёртвым.
- Создаем валидатор с именем Slowness (Range) типа - Location Range
- в Target: Location + мы вставляем Target Unit
- Validator: Compare => Less Than Or Equal To
- Validator: Range => 3
- Validator: Value + уже знакомое нам Slowness (Search Apply): Source
Здесь всё не менее логично - мы уже берём знакомого Source (того, кто наложил эффект) Slowness (Search Apply)
и сверяем его дистанцию до цели - она должна быть меньше или равна трём.
и сверяем его дистанцию до цели - она должна быть меньше или равна трём.
- Последний валидатор - Slowness (Not Exist) типа Unit Compare Behavior Count
- Validator: Behavior будет Slowness
Основное
Всё готово, скрутим всё вместе!
Effects
- Slowness (Search)
- в Search: Areas добавляем новую область, с эффектом Slowness (Search Apply) и дистанцией (Range): 3
Search: Areas: (360):(-1):(3):(0):(Slowness (Search Apply))
И переводится как - Дорогой Slowness (Search), каждый раз, как ты будешь вызван, ищи, пожалуйста, в области радиусом 3 вокруг себя юниты, и накладывай на них (Slowness (Search Apply))
Что же, займемся этим эффектом
- Slowness (Search Apply)
- Effect: Behavior => Slowness, надеюсь тут всё понятно
- Effect: Validators +
- Enemies (Target Filter) Мы говорим, что накладывать этот эффект можно только если цель пройдет проверку валиатором, в котором мы указали, что подходят только живые враги-юниты.
- туда же добавляем Slowness (Not Exist), чтобы эффект не накладывал behavior на уже замедленных. Ничем особым это не грозит, но, у нас всё чисто и красиво. Да и в графике это потом поможет.
C эффектами кончено, возвращаемся оттуда, откуда мы начали - к Behaviors
Behaviors:
- Slowness. Наш дополнительный behavior, тот самый, что замедляет юнитов.
- Behavior: Modification+ -> Movement -> Movement Speed Multiplier ставим 0.4 (что означает 40%)
- Behavior: Validators (Remove) +
- Slowness (Caster Alive) удалить этот behavior, если тот, кто его наложил (тот самый Source) умер
- Slowness (Range) удалить этот behavior, если расстояние между Source и юнитом-под-замедлением больше чем указано в этом валидаторе
- Behavior: Alignment - Negative
- UI: Icon так как наш валидатор не мигает, можно поставить няшную иконку
- UI: Tooltip - тут можно вписать такую классную вещь:
Этот бедняга замедлен на <d ref="100 - (Behavior,Slowness,Modification[0].MoveSpeedMultiplier[0]*100)"/>%
Это классая тема только потому, что просто <d ref="Behavior,Slowness,Modification[0].MoveSpeedMultiplier[0]"/>% будет выдавать *40%*, хотя на самом деле юнит замедляется на *60%* (а вот его скорость умножается на *0.4*)
- Slowness (Aura) Наш основной behavior, дает ауру.
- Behavior: Alignment - Positive
- Effect: Effect - Periodic => Slowness (Search)
- Stats: Period => 0.1
Ещё раз для закрепления: Effect: Effect - Periodic будет применятся каждый Stats: Period на том юните, на котором висит данный
behavior. Так что сейчас самое время повесить его на марика...
А, стоп, поставьте няшную иконочку в UI: Icon и напишите что-нибудь в UI: Tooltip :P
Проверка
В Units выделите марика и поставьте ему в Behavior: Behaviors + Slowness (Aura)
В основном окне редатора поставьте 10-30 лингов и 1-2 марика, естественно за разных игроков - вуаля, аура работает
Возможные неполадки
- Иконка на линге не появляется => вы напутали что-то с эффектами/behavior'ами
- Иконка на линге ужасно мигает => вы напутали что-то с валидаторами
- Аура сохраняется даже после гибели марика / после разрыва дистанции => вы напутали что-то с валидаторами
- Все прекрасно работает, но нет никакой графики => В этой статье она и не рассматривается, ибо она достаточно пробная, и больше ориентирована на правильное создание ауры, без мигающего UI и постоянно накладываемых behavior'ов
Тестовая карта для проверки
Заключение
Ну и ради интереса, стоит ещё писать? О чём? Будет ли эта статья кем-нибудь увидена? So many questions ^_^