Markiz
offline
Опыт:
11,432Активность: |
Триггерные заклинания, Basics and Advanced
Триггерные Заклинания Ссылка на оригинал Все права на статью принадлежат Linkmaster23, все права на перевод - Markiz'у. Примеры-иллюстрации(не в том смысле,что картинки :)) к статье я выложу в архиве в конце этого сообщения. [От переводчика: Это перевод статьи с wc3campaigns, посвященный такому важному аспекту гемплея,как заклинания (в дальнейшем - "спеллы"),точнее: спеллы созданные/активируемые при помощи триггеров] Зачем это все надо В "движок" Варкрафта входят разные стандартные спеллы. А в редакторе объектов можно изменять параметры их. Но принципиально их таким образом не изменить. Если нам нужно создать какой-то полностью новый спелл, то нам приходят на помощь триггеры или JASS. [Примечание: про триггеры вы можете почитать в статьях Сергея и RaZ'а,а про язык JASS - в статьях Cacodemon'a] Данное руководство будет разделено на две части для удобства прочтения и написания. Итак: Часть 1. Основы Основ. В любом деле есть что-то что обязательно знать тому, кто этим занимается. Это правило действует и на триггерные спеллы. Сейчас мы будем говорить про триггеры,а точнее, про: События(Events) В триггерных спеллах будут чаще всего использоваться так называемые Unit - Generic Unit Events Эти события относятся ко всем юнитам которые подходят под условие события (говорю слегка путано, но сейчас вы поймете, что я имел в виду). Самые важные из них для нас это: Цитата:
У них у некоторых достаточно сходное действие, но автор предпочитает именно Цитата:
Это событие запускает триггер,когда вы выбрали заклинание и цель (если нужно). Пока вы только начинаете заниматься триггерными спеллами, советую вам тоже им пользоваться. ОК, теперь перейдем к следующей секции. Условия(Conditions) Здесь будет совсем просто, обычно следует пользоваться только этими условиями: Цитата:
Теперь поясню значения выделенных слов: Unit - как правило либо Casting Unit (Маг) либо Target of Ability being Cast (Жертва заклинания) Unit-Type - если вы хотите сделать заклинание, которое может сделать не один юнит,а много однотипных юнитов (например вы хотите создать новую расу магов), то вместо Unit-Type вставляйте тип требуемого юнита Ability - тип заклинания,может быть как выбран в списке, так и задан переменной Перейдем к следующему разделу: Действия(Actions) [Примечание: Автор много расписывал что делают те или иные действия, но я не буду повторять статьи о триггерах (см. выше) и буду такие моменты пропускать] В первую очередь вам понадобятся действия-условия(If/Then/Else). Чаще всего это будут главные ваши помощники (например проверки на расу), а также главная головная боль :) Далее вам понадобятся циклы (For each integer ## do actions), например: Цитата:
"А почему бы не создать сразу пять пехотинцев сразу, одним действием" - спросите вы. У этого способа есть одно очень важное преимущество: простота работы с массивами! Ведь как вы будете получать информацию о уже созданных пехотинцах без них? Мы подошли к следующему подразделу: Переменные+Mассивы [Примечание: я решил слегка видоизменить пример (для наглядности), кроме того, сам пример можно найти ниже Итак, что мы собираемся сделать: При колдовании заклинания создать пять пехотинцев,занести их в массив,а затем 3 из 5 убить :). Это простейший пример того,для чего нужны массивы и переменные. Заготовка для такого триггера должна быть примерно такой: Код:
Что тут делается думаю объяснять не нужно. Теперь еще немного подготовительной работы. Создадим массив из unit'ов размером в 5 человек, назовем его George. Хорошо. Для начала этих пресловутых пехотинцев надо создать. Кроме того их сразу же нужно заносить в массив,пока ссылка на Last Created Unit указывает на действительно требуемый юнит.То есть мы это будем делать примерно так: Код:
Теперь, хотите - верьте, хотите - нет, у нас в массиве "лежат" те пехотинцы, которых мы создали. Теперь давайте,чтобы удостовериться в этом убьем их, причем не с 1 по 3,а с 3 по 5: Код:
Вот и все! :) Первый триггерный спелл создан: Код:
Заметьте, если делать то же самое,но не циклом, то получится 10 действий, а тут 2 действия,но повторенные 5 раз. Удобно, не правда ли :) Если вам пока трудно освоиться, то для вас чуть ниже лежит архив с картой-примером. Наслаждайтесь и ждите 2-й части! :) Markiz добавил: Триггерные заклинания. Advanced
Продолжение Руководства (Ссылка)[Примечание: данный текст является переводом лишь наполовину,в частности, во второй части были затронуты лишь Dummy-спеллы,я решил исправить это досадное недоразумение] Итак,в этой части мы создадим нечто уже более серьезное,а именно: заклинание Airstrike. Но в начале еще немного теории. Dummy Спеллы Что же такое Dummy спеллы? По-русски - это пустышки, то есть спеллы которые не имеют эффекта. :) Существуют следующие типы заклинаний по целям:
В событии следует взять: Цитата:
а в условии: Цитата:
Затем просто создаем необходимые действия. [Здесь статья заканчивается...] Мы же пойдем дальше, мы создадим геройский спелл, сила действия которого будет изменяться с каждым уровнем способности. Для отслеживания уровня способности героя мы будем использовать еще одну числовую переменную. В качестве примера сложной триггерной способности я предлагаю сделанный мною когда-то Airstrike: При кастовании способности появляется N вертолетов (N зависит от уровня способности),которые будут кружиться и бомбить землюпод собой, а по истечении действия заклинания взорвуться. Детали я описывать не буду, но суть заключается в следующем: Мы создаем вертолеты, задаем в массиве точек позиции круга, по которым они будут двигаться,зададим в массиве эти вертолеты,а затем в цикле будем заставлять их делать "Attack Ground" и "Move"(По кругу). Кроме того, чтобы знать какой вертолет должен двигаться в какую позицию,мы им зададим Custom Value и вычислять номер точки в массиве, в которую надо двигаться. Для начала попробуйте сделать данную способность сами, ну а уж затем смотрите пример. ВНИМАНИЕ! В примере плохо настроены cooldown'ы Отредактировано Markiz, 29.01.2005 в 18:54. |
||||||
05.08.2004, 12:38 | #1
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|