Определение типа заклинания
Заклинания имеют несколько разных видов, конкретнее типов воздействия:
- 1) Цель - Точка – заклинания, у которых в качестве цели используется любая точка “земли” (location)
- 2) Цель - Боевая единица – в качестве цели используется боевая единица (unit)
- 2) Цель - Боевая единица – в качестве цели используется боевая единица (unit)
- 3) Цель - Точка или Боевая единица – целью заклинания является положение юнита на момент произношения заклинания
- 4) Мгновенное (Нет цели) – заклинание начинает действовать сразу, как его только применили
- 5) Ауры – заклинание действует постоянно на те объекты, которые указаны в настройках заклинания
Также некоторые действуют на целую область, но тем не менее они относятся к типу Цель - Точка. Перед созданием заклинания вам необходимо выбрать один из этих типов и найти представителя этого заклинания. Например, для ауры-пустышки (заклинание, которое не совершает никаких действий) отлично подойдёт “Аура выносливости “ (Орда -> Герои), так как там можно убрать все спецэффекты и воздействия на юнитов. Универсальным заклинанием является способность “Канал” (Нейтрально-враждебные -> Герои). Основными его преимуществами является гибкость настройки. Можно выбрать тип цели (Данные – Тип Цели), отображение иконки в списке заклинаний и так далее (Данные - Параметры). Начиная с патча 1.18 и выше “Канал” без проблем работает в спеллбуках и сочетается с улучшениями. Единственная проблема способностей на основе “Канала” – они могут быть отменены оглушающими способностями. Для предотвращения этого замените Ваши оглушающие способности способностями на основе ANab (Кислотная бомба). (Часть текста, про эту способность взята с http://xgm.ru/forum/showthread.php?t=21369 )
От теории к практике
Так что же такое триггерные заклинания и как создавать? – Делается это очень просто. Смысл в том, что действие триггера начинается при использовании нужного вам заклинания и выполнения необходимых действий. Например, нам необходимо создать способность пустышку, которое выполняется мгновенно. Для этого создаём нестандартное заклинание, на основе канала. Далее начинаем его настраивать:
После настройки мы переходим к главной части создания заклинаний, написание кода. Для этого мы открываем редактор триггеров (F4) и создаём в нём новый триггер. Назовём его “Spell Test” и сделаем его следующего содержания (Если вам непонятен код, то вы можете скачать файл прикрепление к данной статье. Категория “Lesson 1”, триггер “Spell Test”):
Code
[*]Характеристики - Уровни – изменяем на единицу
[*]Данные - Следовать в течении времени и Данные - Длительность графики – ставим 0.01 (Заклинание произносится очень быстро)
[*]Очищаем пункты: Графика - Цель, Графика - Эффект, Графика - Маг (Убираем все спецэффекты)
[*]Данные - Тип цели – Мгновенное (Нет цели) (Меняем тип заклинания, для того, что бы оно выполнялось сразу)
[*]Данные - Параметры – ставим галочку рядом с пунктом “Изображение” (Это делаем для отображения иконки в списке способностей)
[*]Текст - Название – изменяем на “Spell Test”
[/list]
Событие:
Боевая единица - A unit Начинает применять способность
Условие:
(Ability being cast) равно Spell Test
Действия:
Игра - Display to (All players) the text: Spell Test
Если дать эту способность любому герою и запустить проверку карты, то при использовании заклинания у вас на экране появится сообщение “Spell Test”. Поздравляю, это ваше первое триггерное заклинание! Но и тут есть небольшая проблемка, если создать несколько заклинаний, на остове 1 способности и дать их юниту, то будет выполняться только первое в списке заклинаний, для избежания этого советую делать заклинания на основе разных способностей. И опять на помощь картостроителям пришла способность “Канал”. Если изучать его настройки, то можно обнаружить строку “Данные - Базовый ID приказа”, меняя этот параметр можно изменить ID приказа и по этому будет выполняться именно то заклинание, которое вы задействовали (Категория “Lesson 2”, триггер “Spell Test 2”).
Теперь осталось разобраться как можно взаимодействовать с другими объектами. Если вы создаёте заклинание, целью которого является точка (Цель – Точка или Цель - Точка или Боевая единица), то для получения этой точки вставьте следующий код:
Code
Set Spell_Test_5_Location = (Target point of ability being cast)
//Где Spell_Test_5_Location это переменна типа “Точка (location)”
И тогда вы получите точку, в которую юнит начал применять заклинание. Аналогично и с юнитами:
Code
Set Spell_Test_6_Unit = (Target unit of ability being cast)
//Где Spell_Test_6_Unit это переменна типа “Боевая единица (Unit)”
А юнит, который начинает применять заклинание называется “Casting Unit”
Code
Set Spell_Test_7_Unit = (Target unit of ability being cast)
//Где Spell_Test_7_Unit это переменна типа “Боевая единица (Unit)”
Примеры применения таких заклинаний вы найдёте в категории “Lesson 3”, триггеры “ Spell Test 3 ” и “ Spell Test 4 ”.
Ну а дальше я могу лишь пожелать вам удачи в новом начинании спелмэйкера. Также если возникнут какие-либо вопросы по статье, то не стесняйтесь, задавайте!
Автор: RazArt aka Pa3apT