XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Желтая пресса: обучающие статьи
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

 
RazArt

offline
Опыт: 11,197
Активность:
Создание триггерных заклинаний

Введение


Каждому из нас наверно хочется сделать карту, не похожую на остальные, нечто особенное, не повторяющееся. На написание этого текста меня натолкнула статья Ал. (Химик)’а про создание заклинаний (http://wc3life.com/forum/28-36153-1), а конкретнее строка “без применения триггеров и джасса”. Да безусловно это путь к балансу, но никак не к оригинальности. Все красивые способности, используемые в известных картах, были написаны используя GUI или же Jass. Это позволяет либо значительно расширить возможности заклинаний, либо создать совершенно новые.

Определение типа заклинания


Заклинания имеют несколько разных видов, конкретнее типов воздействия:
  • 1) Цель - Точка – заклинания, у которых в качестве цели используется любая точка “земли” (location)
  • 2) Цель - Боевая единица – в качестве цели используется боевая единица (unit)
  • 3) Цель - Точка или Боевая единица – целью заклинания является положение юнита на момент произношения заклинания
  • 4) Мгновенное (Нет цели) – заклинание начинает действовать сразу, как его только применили
  • 5) Ауры – заклинание действует постоянно на те объекты, которые указаны в настройках заклинания
Также некоторые действуют на целую область, но тем не менее они относятся к типу Цель - Точка. Перед созданием заклинания вам необходимо выбрать один из этих типов и найти представителя этого заклинания. Например, для ауры-пустышки (заклинание, которое не совершает никаких действий) отлично подойдёт “Аура выносливости “ (Орда -> Герои), так как там можно убрать все спецэффекты и воздействия на юнитов. Универсальным заклинанием является способность “Канал” (Нейтрально-враждебные -> Герои). Основными его преимуществами является гибкость настройки. Можно выбрать тип цели (Данные – Тип Цели), отображение иконки в списке заклинаний и так далее (Данные - Параметры). Начиная с патча 1.18 и выше “Канал” без проблем работает в спеллбуках и сочетается с улучшениями. Единственная проблема способностей на основе “Канала” – они могут быть отменены оглушающими способностями. Для предотвращения этого замените Ваши оглушающие способности способностями на основе ANab (Кислотная бомба). (Часть текста, про эту способность взята с http://xgm.guru/forum/showthread.php?t=21369)

От теории к практике


Так что же такое триггерные заклинания и как создавать? – Делается это очень просто. Смысл в том, что действие триггера начинается при использовании нужного вам заклинания и выполнения необходимых действий. Например, нам необходимо создать способность пустышку, которое выполняется мгновенно. Для этого создаём нестандартное заклинание, на основе канала. Далее начинаем его настраивать:
  • Характеристики - Уровни – изменяем на единицу
  • Данные - Следовать в течении времени и Данные - Длительность графики – ставим 0.01 (Заклинание произносится очень быстро)
  • Очищаем пункты: Графика - Цель, Графика - Эффект, Графика - Маг (Убираем все спецэффекты)
  • Данные - Тип цели – Мгновенное (Нет цели) (Меняем тип заклинания, для того, что бы оно выполнялось сразу)
  • Данные - Параметры – ставим галочку рядом с пунктом “Изображение” (Это делаем для отображения иконки в списке способностей)
  • Текст - Название – изменяем на “Spell Test”

После настройки мы переходим к главной части создания заклинаний, написание кода. Для этого мы открываем редактор триггеров (F4) и создаём в нём новый триггер. Назовём его “Spell Test” и сделаем его следующего содержания (Если вам непонятен код, то вы можете скачать файл прикрепление к данной статье. Категория “Lesson 1”, триггер “Spell Test”):
Код:
Событие:
Боевая единица - 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”).


Теперь осталось разобраться как можно взаимодействовать с другими объектами. Если вы создаёте заклинание, целью которого является точка (Цель – Точка или Цель - Точка или Боевая единица), то для получения этой точки вставьте следующий код:
Код:
Set Spell_Test_5_Location = (Target point of ability being cast)
//Где Spell_Test_5_Location это переменна типа “Точка (location)”

И тогда вы получите точку, в которую юнит начал применять заклинание. Аналогично и с юнитами:
Код:
Set Spell_Test_6_Unit = (Target unit of ability being cast)
//Где Spell_Test_6_Unit это переменна типа “Боевая единица (Unit)”

А юнит, который начинает применять заклинание называется “Casting Unit”
Код:
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
Прикрепленные файлы
Тип файла: w3x GUI_Spells_Lessons.w3x (20.1 Кбайт, 572 просмотров )

Отредактировано RazArt, 04.08.2009 в 20:25.
Старый 04.08.2009, 14:18
Rewenger
The culprit will not die
offline
Опыт: 35,873
Активность:
В принципе, для новичка может быть полезным, но...как-то не очень для статьи...
Старый 04.08.2009, 14:45
Hellfim
Новичок
offline
Опыт: 79,637
Активность:
А статья таки полезная, думаю новичкам очень подойдет! А изотепкин никаких статей не писал, даже на том сайте написано, что он украл их.
Старый 04.08.2009, 15:46
Zahanc

offline
Опыт: 23,017
Активность:
Вместо кодов, лучше бы были скриншоты триггеров. А так - статья для новичков, как было скзано выше.

bladget добавил:
И ещё, в карте нужно было-бы указать что делает данное заклинание и желательно коректно назвать. А то путаешься.
Старый 04.08.2009, 18:06
RazArt

offline
Опыт: 11,197
Активность:
bladget, зачем скриншоты, когда есть карта-пример?
Искатель, ок, ждёмс :)
Старый 04.08.2009, 18:37
GadenbIsh
Просто Гад
offline
Опыт: 71,030
Активность:
Так вроде же были уже такие статьи про триггерные спеллы, разве нет?
И еще Сергея я такую статью видел
Старый 04.08.2009, 18:50
PlayerDark
Coraline
offline
Опыт: 10,569
Активность:
Только для нубов. К тому же информаци очень мало. В принципе здесь нет почти ничего.
Старый 04.08.2009, 19:33
SageOne
x
offline
Опыт: 46,054
Активность:
RazArt, а что, норм, т.к. я в спеллах нубас, мож попользуюсь, спс, но имхо на статью не тянет на полноценную)
Старый 04.08.2009, 20:32
RazArt

offline
Опыт: 11,197
Активность:
Вот я искренне непонимаю что вы имеете ввиду под словом статья. Мб мне многотомник написать?)
Старый 04.08.2009, 20:35
PlayerDark
Coraline
offline
Опыт: 10,569
Активность:
RazArt, напиши подробно о том как делать спеллы. Опиши как делать ауры, юзать дамми итд.
Старый 04.08.2009, 20:41
RazArt

offline
Опыт: 11,197
Активность:
PlayerDark, ок, но только завтра :)
Старый 04.08.2009, 23:51
Патиссончик
Time marches on
online
Опыт: 9,890
Активность:
Да, я согласен с PlayerDark, сделай про ауры и тому подобное. Для меня открылось заклинание "канал"! =) (я такого раньше не виде что-то.) (А еще сделай большой заголовок, раздели по главам, напиши анотацию и тезис , а так же не забудь сделать свою работу на электронном носителе.)
Старый 05.08.2009, 00:44
FREEZE_ball
Cataclysm => жара
offline
Опыт: 15,247
Активность:
RazArt, неправда, не все красивые спеллы делают на jass`е/GUI. В одной карте я видел очень красивое заклинание, когда лучница запускала град стрел в одну область (на основе "Ракетного Удара", стало быть). Да, оно простое, но очень красивое (субъективное мнение). Попробуй, сделай такое на jass`е. Это реально, это сравнительно легко, но вот пойди и сделай.

А так, вообще, для нубасов новичков будет довольно полезно, но такие статьи уже были.

Итог: плюс за старание и понятность, минус за маленькие размеры статьи и повторение.
Старый 05.08.2009, 01:04
Driga

offline
Опыт: 2,003
Активность:
чё делать у мя на заклинание хила нажимаешь на пример на 1 (у мя их 3) а использоется 2 О_о чё делать ??????

Отредактировано Driga, 21.08.2009 в 09:17.
Старый 21.08.2009, 09:07
Lodo4nik

offline
Опыт: 322
Активность:
Да вобщем информации маловато, но хоть что-то. Будем ждать обновления =))
Старый 21.08.2009, 14:30
DEMOHOJlOr

offline
Опыт: 3,341
Активность:
насколько я понял в статье показано как можно избежать конфликта если у юнита несколько способностей на основе одной ну скажем цепь молнии?
Старый 22.01.2010, 14:04
bee
vjass.optimizer
offline
Опыт: 16,615
Активность:
Цитата:
были написаны используя GUI или же Jass

или vJass. или cJass
Цитата:
Начиная с патча 1.18 и выше “Канал” без проблем работает в спеллбуках и сочетается с улучшениями

знакомая фраза, очень знакомая
Цитата:
Данные - Следовать в течении времени и Данные - Длительность графики – ставим 0.01 (Заклинание произносится очень быстро)

необязательно. если меньше или равно 0.10 то анимация будет прерванной, некрасивой. я ставлю значение 0.5 обычно. смотрится намного лучше.
но все это для новичков ...
Старый 22.01.2010, 14:48
RazArt

offline
Опыт: 11,197
Активность:
Bee
1) Ты некропостер =О
2) Какая разница? Всё энто потом переводится в обычный жасс
3) Ну да, там ссылка на статью есть
4) Возможно...
Старый 22.01.2010, 17:08
Mrak1994

offline
Опыт: 320
Активность:
Народ, не поможете мне? как сделать так, чтобы сила, которую ты используешь( например на основе молота) не летела во врага, а была в руке и исчезла, когда был бы нанесён удар?
Старый 09.05.2010, 06:54
AlexKARASb
Learning cpp
offline
Опыт: 22,103
Активность:
триггрено
событие юнит применил заклинание
условие твоя способность
действие
спецэффект привязать к CastingUnit() выбереш эффект и точку крепления
Wait растояние между целью и кастером разделить на скорость молота бурь
удалить последжний созданый спецэффект
это пример оч примитивный
Старый 09.05.2010, 12:15

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 19:08.