Как сделать триггеры для Warcraft 3
В этом уроке мы научимся использовать простые триггеры для более эффективного создания заклинаний.
Давайте подробнее рассмотрим некоторые действия из категории «Анимация» и посмотрим, что может быть действительно полезно при составлении заклинаний, а что можно установить в RO.
Animation — Play Unit Animation — Я настоятельно рекомендую не использовать его для воспроизведения анимации для кастера, вы можете сделать это с помощью Object Editor. Функция вполне подходит для проигрывания анимации фиктивным юнитам, о чем мы поговорим гораздо позже.
Анимация — воспроизвести анимацию юнита (укажите редкость) — также хорошо подходит для воспроизведения анимации дамма-юнитов.
Анимация — Изменение размера блока.
Анимация — Изменение раскраски вершин юнитов — Здесь полезно установить прозрачность для юнита.
Анимация — Изменить высоту полета юнита — поднимает юнита в воздух. Очень полезная вещь.
Вот, в принципе, и весь сегодняшний материал. Изучите эти функции и выполните задания.
Источник: wc3-maps.ru
—>Warcraft 3 —>
Приветствую тебя, дорогой начинающий триггермен. Когда я впервые открыл редактор миров около месяца назад, я подумал: КЛАСС, тут много чего нужно сделать. После дня или двух мучений я понял, что без триггеров ничего не сделаешь, и пошел гуглить. Я погуглил warcraft3tft.информация и xgm.ru.
Смотрел статьи, задавал вопросы на форуме в итоге я понял что такое триггеры и с чем их едят (кстати мне понравился warcraft3tft.информация и ее форум xgm.ru). Порывшись на форуме, я увидел, что многие люди задают такие же вопросы, поэтому я решил написать эту статью о триггерах. Кстати, если вам нужен пример по статье, то черкните пару строк в приват или на форуме.
ПРЕДУПРЕЖДЕНИЕ: ТОЛЬКО ДЛЯ ТЕХ, У КОГО ЕСТЬ РУСИФИЦИРОВАННЫЕ ТРИГГЕРЫ
Часть 1.
1. События.
Типы событий.
Когда вы создаете новое событие, в списке типов есть 9 строк, это:
1.1. Все
1.2. Текст поиска
1.3. Общие параметры
1.4. Украшения
1.5. Диалог
1.6. Игра
1.7. Игрок
1.8. Время
1.9. Боевая единица
Ну, здесь все понятно, из второго выпадающего списка вы можете выбрать событие из всех событий, которые есть.
1.2. Текст поиска
Здесь тоже все понятно, скажу только, что не всегда можно найти то, что ищешь.
1.3. Общие параметры
Только одно событие — Карта инициализации.
Это событие происходит при старте карты, а значит здесь можно выполнить действия, которые будут выполнены только один раз при старте карты, e.g. установить время суток или отключить смену суток и т.д.д.
События:
1. Разрушаемый объект уничтожен
2. Разрушаемый объект(ы) уничтожен(ы) в регионе
1.4.1. Разрушаемый объект уничтожен
В тексте события говорится: Разрушаемое уничтожено.
Итак, событие происходит только тогда, когда выбранный вами Разрушаемый объект, который можно выбрать, нажав на слово Разрушаемый (здесь и далее: текст, выделенный красным и подчеркнутый в Редакторе миров, должен быть изменен на то или иное действие или объект, нажав на него), или из переменной, которую вы должны были создать ранее и присвоить ее разрушаемому объекту-декору.
1.4.2. Разрушаемый объект(ы), уничтоженный(ые) в регионе
Текст события гласит: Разрушаемый объект(ы) уничтожен(ы) в регионе
Регион.
То же самое, что и выше, но вместо уничтоженного объекта нужно указать регион, в котором были уничтожены объекты. Регион должен быть создан ранее в редакторе, на панели регионов или создан на лету с помощью функций (Все функции будут описаны в конце статьи).
Одно событие: Нажатие кнопки диалога.
Текст события: Нажата кнопка диалога
Событие происходит при нажатии кнопки диалога. Диалог и его кнопки должны быть созданы ранее. Так как вы не можете выбрать диалоговое окно, потому что оно не является объектом, оно должно быть создано с помощью переменной в редакторе триггеров (и позвольте мне сказать вам, что переменные — это крутая вещь).
События:
1. Время суток
2. Реальное значение переменной
3. Загрузка игры
4. Сохранение игры
5. Нажата кнопка способностей героя
6. Нажата кнопка построить здание
7. Событие Турнир — нам не нужно считать, что его не будет
1.6.1. Время суток
Текст события: Время суток становится 12.00
(синим подчеркнутым шрифтом выделены значения, которые уже установлены).
Событие происходит, когда: текущее время равно (не равно/больше/больше или равно) заданному вами времени. Я могу только добавить, что игровой день длится 24 часа. 6 часов — утро, 18 часов — вечер.
1.6.2. Значение вещественной переменной
Текст события: Переменная становится равной (не равна/больше чем/больше чем или равна/меньше чем или равна) 0.00
Событие происходит, когда реальная (не массив) переменная достигает указанного вами значения
1.6.3. Загрузка игры
Текст события: Загружена сохраненная игра
Происходит при загрузке сохраненной игры.
1.6.4. Сохранение игры
Текст события: Игра готова к сохранению
Происходит при сохранении игры.
1.6.5. Нажата кнопка способности героя
Текст события: Нажата кнопка способностей героя
Происходит при нажатии кнопки для улучшения способностей героя (красный плюс)
1.6.6. Нажата кнопка «Построить
Текст события: Нажата кнопка «Построить
Происходит, когда вы нажимаете, чтобы построить здания (например, рабочий Альянса)
1.6.7 Турнирное событие — не учитывать.
События:
1. Напечатано сообщение в чате
2. Пропустил мультик
3. Событие турнира
4. Событие клавиатуры
5. Свойства
6. Смена альянса (любого)
7. Смена союза (уточнено)
8. Победа
9. Победить
10. Покидает игру
1.7.1. Набранное сообщение в чате
Текст события: Игрок 1 (красный) набрал это текстовое сообщение как Точное совпадение
Событие происходит, когда игрок набирает определенный текст в чате, вы можете выбрать, будет ли это точное совпадение или подстрока.
1.7.2. Пропустил мультфильм
Текст события: Игрок 1 (красный) пропускает анимацию
Событие происходит, когда игрок нажимает кнопку [ESC], независимо от того, воспроизводится анимация или нет.
1.7.3. Событие выбора
Текст события: Игрок 1 (красный) выбирает юнита
Происходит, когда игрок выбирает или отменяет выбор отряда.
1.7.4. Событие клавиатуры
Текст события: Игрок 1 (красный) нажимает клавишу со стрелкой влево
Происходит, когда игрок нажимает четыре клавиши — стрелка вверх, стрелка вниз, стрелка влево, стрелка вправо.
Текст события: Игрок 1 (красный)’a Gold(текущий).) стало больше или равно 1000.00
Происходит, когда запас героя достигает определенного количества, тип запаса можно выбрать из списка.
1.7.6. Смена альянса (любого)
Текст события: Игрок 1 (красный) изменил настройки альянса
Происходит, когда игрок изменяет настройки альянса.
1.7.7. Смена союза (уточненная)
Текст события: Игрок 1 (красный) изменяет настройки Союза (ненападения)
Происходит, когда игрок изменяет настройки альянса. Тип отряда может быть выбран из списка.
Текст события: Игрок 1 (красный) покидает игру как победитель
Происходит, когда игрок побеждает в игре.
Текст события: Игрок 1 (красный) покидает игру побежденным
Происходит, когда игрок проигрывает игру.
1.7.10. Покидает игру
Текст события: Игрок 1 (красный) покидает игру
Происходит, когда игрок покидает игру.
События:
1. Прошло время
2. Случайное событие
3. Таймер истекает
1.8.1. Прошедшее время
Текст события: Истекло 5.00 секунд
Происходит по истечении указанного вами времени.
1.8.2. Периодическое событие
Текст события: Каждые 2.00 секунд игрового времени
Событие происходит каждую указанную вами секунду.
1.8.3. Событие выбора
Текст события: Истекает таймер
Происходит, когда таймер достигает нуля.
1.9. Боевой отряд
События:
1. Событие конкретного отряда
2. Событие отряда игрока
3. Событие общего подразделения
4. Войско вошло в зону
5. Отряд покидает зону
6. Отряд в радиусе
7. Жизнь
8. Мана
1.9.1. Событие для конкретного отряда
Текст события: Единица погибает
Событие происходит при определенном событии конкретного юнита. Можно выбрать боевую единицу и событие отряда.
Например, если вы возьмете Dies, то если выбранная единица умрет, будет вызвано такое событие.
1.9.2. Событие отряда игроков
Текст события: Событие игрока Игрок 1 (красный) Умирает
Событие происходит при определенном событии определенного игрока.
Например, если вы возьмете Dies, то если любой юнит этого игрока умрет, сработает это событие.
1.9.3. Событие общего отряда
Текст события: Событие умирает
Событие происходит, когда определенное событие происходит с любым отрядом любого игрока.
Например, если вы возьмете Dies, то при гибели любого юнита любого игрока сработает это событие.
1.9.4. Отряд вошел в зону
Текст события: Отряд вошел в зону Региона
Происходит, когда кто-то входит в определенную зону.
1.9.5. Отряд покидает зону
Текст события: Отряд покидает регион
Возникает, когда кто-то покидает определенную зону.
1.9.6. Отряд в радиусе
Текст события: Отряд в радиусе региона
Происходит, когда в радиусе вокруг определенного юнита кто-то есть .
Текст события: Жизнь юнита стала меньше 50.00
Происходит, когда жизнь определенного отряда становится — равна / неравна / больше / меньше / больше или равна / меньше или равна определенному значению.
Текст события: Мана юнита становится меньше 50.00
Происходит, когда мана определенного юнита становится — равна/не равна/больше/меньше или равна или равна определенному значению.
Продолжить ..
В следующей части об условиях.
Источник: warcraft3ft.информация
Как сделать триггеры для Warcraft 3
Повелитель вредоносных программ
В связи с большим количеством вопросов типа как писать триггеры или как сделать рпг решил сделать эту статью.
Все играли в варчазеры? Наверное, многие после этого хотели сделать что-то похожее или более оригинальное, но не знали, как сделать так, чтобы стартовые 5 рабочих + главное здание не появлялись, и чуть более продвинуто — как можно сделать выбор героя Все это делается с помощью триггеров, даже те же 5 кренделей с домиком.
Триггеры — это функции, написанные на Jass, языке, созданном Blizzard для удобства создания карт в редакторе мира. Я понимаю, что не все хотят учить целый язык для создания собственной карты, а если этот человек никогда не кодировал, то это вдвойне проблематично. Чтобы продвинуть Warcraft в массы и придать ему большую живучесть со временем, Blizzard создали специальный Trigger Builder.
С ним написание триггера сводится к выбору мышкой соответствующих «кубиков» — аналогов строк в Jass. Кроме того, «кубики» имеют более понятный вид, так как содержат большее количество взаимосвязанных слов, чем в оригинальном языке. Другими словами, каждый «кубик» визуально представляет собой небольшое, хотя и криво звучащее предложение. Суть каждого триггера заключается в том, чтобы реагировать на какое-то общее событие, заданное для него (кто-то умер, на кого-то напали, кто-то вошел в регион, прошло определенное количество времени и т.д.).).д.). Триггер активируется каким-либо событием или несколькими событиями (Events), затем он проверяет условия, и если все в порядке, то запускается.
В начале было слово..
Окно Trigger Editor открывается иконкой «a» на панели инструментов быстрого запуска (Quick Launch Toolbar). Кто не найден — нажмите F4
Вы все еще здесь? Он разделен на три окна: слева — список всех триггеров на карте, справа вверху — комментарий к триггеру, выделенному в списке (или на карте, если она выделена вместо триггера), а справа внизу — редактирование самого триггера. В окне списка все представляет собой дерево, как в проводнике Windows, начиная с самой карты и заканчивая папками, содержащими триггеры.
Если вы нажмете на карту, вы можете написать пользовательский текстовый код в правом нижнем окне. По-русски это блок кода на Jass, который будет выполняться перед триггерами с условием инициализации карты. На данный момент у нас есть папка Initialization и триггер Melee Initialization в ней. Мы не хуже и можем создавать собственные папки, триггеры и даже целые отдельные комментарии.
Все это может быть полезно для более удобной группировки ваших триггеров. Все триггеры и отдельные комментарии могут быть созданы только в. Невозможно создать папку, поэтому удобно использовать комментарии, чтобы разграничить большое количество триггеров внутри одной папки. А теперь вернемся к нашим барашкам. Melee Initialization — это триггер для инициализации игры в режиме обычного боя. Собственно, об этом говорится в комментариях внутри. Сам триггер теперь выглядит следующим образом
Инициализация игры в ближний бой
События
Инициализация карты
Условия
Действия
Игра в ближний бой — Использовать время суток для ближнего боя (для всех игроков)
Игра в ближний бой — Ограничить количество героев до 1 на каждый тип героя (для всех игроков)
Игра в ближний бой — Дать обученным героям свиток городского портала (для всех игроков)
Игра в ближний бой — установить стартовые ресурсы (для всех игроков)
Игра в ближнем бою — Удалить крипов и тварей с используемых стартовых локаций (для всех игроков)
Игра в ближний бой — создание стартовых юнитов (для всех игроков)
Игра в ближний бой — запуск скриптов ИИ ближнего боя (для компьютерных игроков)
Melee Game — Enforce victory/defeat conditions (для всех игроков)
(Я не буду показывать русскую версию. Мне лень переводить и переписывать. В общем, учите английский, пригодится в жизни )
На этом примере давайте посмотрим структуру нашего триггера.
События
Движение — это жизнь
События, как уже говорилось выше, активируют триггер. В некоторых случаях можно обойтись и без них, но об этом я напишу позже. Каждое событие имеет комментарий в помощь от разработчиков, поэтому я просто напишу об общих группах. Надеюсь, ни у кого не возникнет проблем с добавлением или изменением события (в противном случае лучше сразу обратиться к «Компьютер для чайников» ).
Но более подробно я остановлюсь на группах событий. Существует девять типов групп, и первые три также встречаются в условиях и действиях (у меня английская версия редактора, поэтому русские эквиваленты названий в статье могут быть другими):
All (все) — здесь и так все понятно, отображение всего списка событий;
Поиск по тексту — поиск нужного события по его названию в списке;
Общие — только инициализация карты. Это событие выполняется при загрузке карты.
Остальные шесть — это события, сгруппированные по некоторым критериям
Destructible — это список событий, связанных с разрушаемыми объектами (деревьями, бочками, словом, всем, что есть в соответствующем меню палитры Doodads);
Dialog (диалоговое окно) — здесь только событие «нажата кнопка диалогового окна»;
Игра — события, связанные с некоторыми нюансами игровой оболочки (реакция на время суток находится здесь);
Игрок — события, связанные с действиями игрока;
Время — события, связанные со временем;
Unit — события, связанные с юнитами (кто-то умер, кто-то вошел в регион, кто-то напал).
Вы можете создать несколько событий одновременно, и тогда триггер будет запускаться каждый раз, когда происходит любое из них.
Условия
Быть или не быть?
Иногда возникают ситуации, когда события должны быть ограничены каким-либо образом. Например, мы хотим, чтобы все мертвые пехотинцы Футмана производили скелеты (пусть этот игрок получит скелеты). События не могут указывать тип юнита, поэтому нам нужно условие. Вот как это будет выглядеть (без спецэффектов):
пример
События
Unit — A unit Dies
Условия
(Тип юнита (Умирающий юнит)) Равно Лакею
Действия
Unit — Create 1 Skeleton Warrior for (Owner of (Killing unit)) at (Position of (Dying unit)) facing (Facing of (Dying unit) degree)
Поскольку нет события, связанного с типом блока, мы используем условие, можно проверить, что. В случае, если умирающий юнит не является пехотинцем, скелет не появится. Но используя такой триггер, игрок может убить своих пехотинцев и получить скелеты для себя. Это можно исправить, добавив другое событие:
пример
События
Единица — Единица Умирает
Условия
(Тип юнита (Умирающий юнит) равен Лакею
(Владелец (Убивающего юнита)) Не равно (Владелец (Умирающего юнита))
Действия
Отряд — создать 1 скелета-воина для (Владелец (Убивающий отряд)) на (Позиция (Умирающий отряд)) напротив (Лицо (Умирающий отряд)) градусов
Теперь, убивая своих фуцменов (даже случайно, например, от сплеш-урона собственных мортир людей или катапульт орков), игрок не получит бесплатного скелета (в случае случайного самоубийства скелета не будет вообще).
Все условия тоже сгруппированы, рассматривать каждую группу очень долго, так что разбирайтесь сами. Здесь нет ничего сложного, все расписано, нужно только немного изучить, какое условие что проверяет в самом редакторе.
В самом низу списка условий находятся такие, как AND и OR. Это чисто из программирования, оно было создано, чтобы быть более конкретным, избежать лишних строк кода и не заморачиваться над реализацией мультиусловий. Короче говоря, AND — это союз. Необходимо объединить (круто, да?) нескольких условий. Для выполнения триггера все условия в AND должны выполняться одновременно.
Что касается OR, то для выполнения триггера достаточно одного из условий. Также есть AND и OR для нескольких условий — на мой взгляд, это удобнее в любом случае. Почему — вы узнаете сами.
Вам, наверное, интересно, почему я не использовал AND в своем примере. Ответ прост — в редакторе триггеров вам не нужно. Все эти условия автоматически объединяются в невидимое И, то есть вам нужно, чтобы каждое из них было выполнено. Поэтому использование AND практически никогда не требуется.
ДействияОни убивают Кенни. (с)
Самая большая часть триггера. Здесь расписаны все действия Их много Просто посмотрите на каждую группу, могу сказать одно — главное придумать, что вам нужно, а как это сделать — смотрите в списке и в комментариях к каждому действию. Стоит отметить только то, что есть возможность включать триггеры, выключать их, принудительно включать триггеры (группа триггеров или триггеры).
То есть, вы можете заставить сработать какой-то триггер, даже если у него нет событий, или просто игнорировать их. У вас хватило терпения прочитать здесь? Ну, это значит, что мое время не было потрачено зря. Это практически все. Удачи, чайники.
Вы можете открыть Warchasers и взять оттуда триггеры с выбором героя и отредактировать их по своему вкусу.
пользователь: weekless
пасс: wowjpnetort
Сообщение # 1 написано 01.02.2011 в 10:46
Источник: wowjp.net