Вступление.
В этой статье я расскажу вам о всех основах работы с триггерами.
Статья расчитанна на новичков, так что более опытным мапмейкерам будет нечего здесь подчерпнуть.
Статья расчитанна на новичков, так что более опытным мапмейкерам будет нечего здесь подчерпнуть.
Триггеры - это ваш главный и незаменимый помощник в создании вашей собственной карты.
(если вы конечно не собираетесь создавать только стандартные карты для сражений. =)) )
(если вы конечно не собираетесь создавать только стандартные карты для сражений. =)) )
Более того, это единственный способ (jass, vJass и cJass в расчёт не беру) сделать в карте собственный сценарий и заставить игрока играть по вашим правилам, а не по близзордавским ))
С помощью триггеров можно сделать что угодно:
От "юнит попадает в область - юнит умирает", до создания собственных зрелещных игровых роликов и заклинаний, у которых нет своих аналогов в игре.
От "юнит попадает в область - юнит умирает", до создания собственных зрелещных игровых роликов и заклинаний, у которых нет своих аналогов в игре.
И для этого не надо изучать языки программирования и тратить кучу времени лишь на то, чтобы выучить лишь команды и функции, ведь в триггерах уже всё сделано за вас!
Вам необходимо лишь иметь логику на среднем уровне, и голову на плечах ))
Вам необходимо лишь иметь логику на среднем уровне, и голову на плечах ))
Понятие триггера.
Давайте начнём.
Для начала нам надо разобраться, что такое сам триггер? Что он из себя представляет?
Чтобы это понять, давайте зайдём в редактор триггеров (буковка a).
Что мы видим? Слева от нас находится так называемое "древо триггеров".
Для вашего удобства все триггеры в игре расфасованы по категориям.
В начале у нас есть только одна категория (инициализация) и только один триггер (инициализация сражения)
Нетрудно догадаться, что он отвечает за то, чтобы в начале игры появлялись стартовые юниты, убирает крипов со стартовых позиций игроков, и даёт каждому герою свиток телепортации.
Для вашего удобства все триггеры в игре расфасованы по категориям.
В начале у нас есть только одна категория (инициализация) и только один триггер (инициализация сражения)
Нетрудно догадаться, что он отвечает за то, чтобы в начале игры появлялись стартовые юниты, убирает крипов со стартовых позиций игроков, и даёт каждому герою свиток телепортации.
Давайте оставим этот триггер в покое, и создадим свой. Для этого просто нажмите на значёк листа.
Назовём его "Start Trigger".
Примечание:
Назавания триггеров могут быть только на английском.
Назавания триггеров могут быть только на английском.
Как видите, только что созданный вами триггер имеет 3 "блока":
Событие,условие,действие.
Событие,условие,действие.
Давайте разберёмся, что значит каждый блок.
В самом начале давайте посмотрим на блок "событие".
Ещё одно примечание:
Очень важно не путать событие с действием )) (а вы будете их путать первые 5 минут =))) )
Очень важно не путать событие с действием )) (а вы будете их путать первые 5 минут =))) )
Итак, что такое событие в триггере наверное и так понятно. )) Событие - оно и в Африке событие. =)
Здесь мы указываем, при каких событиях будет срабатывать наш триггер.
Здесь мы указываем, при каких событиях будет срабатывать наш триггер.
Примечание:
Если в триггере указанно много событий, то он срабатывает при выполнении ЛЮБОГО из них.
Если в триггере указанно много событий, то он срабатывает при выполнении ЛЮБОГО из них.
Далее идёт графа "Условие".
Это своего рода "дополнение" к событию. В ней можно указать, при каких условиях произойдёт запуск (извините что повторяюсь) триггера. В принципе триггер может работать и без него.
Например если нам надо создать триггер, который будет срабатывать, когда юнит зашёл в регион, но при этом у него должно быть не меньше 300 хп.
Например если нам надо создать триггер, который будет срабатывать, когда юнит зашёл в регион, но при этом у него должно быть не меньше 300 хп.
И далее самый важный блок: "Действие".
Пояснять я думаю, ничего не надо.
И так понятно, что это действия, которые должен выполнять триггер при срабатывании.
Пояснять я думаю, ничего не надо.
И так понятно, что это действия, которые должен выполнять триггер при срабатывании.
Подведём итоги:
Теперь понятно, что триггер представляет из себя некий "капкан", который "отлавливает" определённое событие, проверяет его по условию, и срабатывает, если всё правильно.
Примеры.
Чтобы лучше усвоить этот материал, предлагаю небольшой пример.
Чтобы лучше усвоить этот материал, предлагаю небольшой пример.
Предположим, нам надо сделать так, чтобы при смерти определённого типа юнита игроку-убийце выводилось сообщение, и юнит-убийца тоже умирал, а на его позиции через 2 секунды появлялся текст и через 5 сек. исчезал.
Примечание:
Я взял такой пример специально, чтобы охватить как можно больше аспектов.
Я взял такой пример специально, чтобы охватить как можно больше аспектов.
Давайте для начала создадим маленькую карту на двух игроков и удалим стартовые триггеры.
Далее ставим исходные позиции, 5 рыцарей и палладина за красного игрока, 2 вурдалака и 3 паука для синего.
Далее ставим исходные позиции, 5 рыцарей и палладина за красного игрока, 2 вурдалака и 3 паука для синего.
А теперь перейдём к непосредственному созданию триггера.
Для начала советую скачать руссификатор триггеров. Он вам очень сильно поможет. Просто распакуйте архив в папку с варом.
А теперь поехали.
В событии указываем: Общее событие отряда - юнит умирает.
Условие: Сравнение типов отрядов - Тип юнита (умирающий юнит) = вурдалак
Условие: Сравнение типов отрядов - Тип юнита (умирающий юнит) = вурдалак
Примечание:
Так как в событии можно отслеживать смерть и другие действия только либо конкретного, либо любого, то приходится применять условие.
Так как в событии можно отслеживать смерть и другие действия только либо конкретного, либо любого, то приходится применять условие.
И наконец действия:
С начала выводим сообщение:
Игра - текстовое сообщение(время автоматически) - ваш текст (например: Вурдалак сдох, но рано радуетесь)
Игра - текстовое сообщение(время автоматически) - ваш текст (например: Вурдалак сдох, но рано радуетесь)
Далее убивем убийцу:
Боевая единица - Убить(убивающий юнит)
Боевая единица - Убить(убивающий юнит)
Теперь создаём текст:
Ждать(2 секунды)
Плавающий текст - создать текст в точке (боевая единица-позиция(умирающий юнит)) (ваш текст)
Ждать(2 секунды)
Плавающий текст - создать текст в точке (боевая единица-позиция(умирающий юнит)) (ваш текст)
Удаляем текст:
Ждать (5 секунд)
Плавающий текст - Удалить (Последний свободный текст.)
Ждать (5 секунд)
Плавающий текст - Удалить (Последний свободный текст.)
Заключение.
Как видите, всё очень просто, вы просто выбираете вариант из списка, и всё!
Но в этом всёравно есть свои тонкости и особенности.
Как видите, всё очень просто, вы просто выбираете вариант из списка, и всё!
Но в этом всёравно есть свои тонкости и особенности.
Недостаточно только знать, что делает каждая функция.
Надо уметь комбинировать свои действия, создавать логические алгоритмы, и.т.д.
Всё это приходит со временем, а пока что просто пробуйте и эксперементируте.
Надо уметь комбинировать свои действия, создавать логические алгоритмы, и.т.д.
Всё это приходит со временем, а пока что просто пробуйте и эксперементируте.
VIRUS_97, прочитал понравилась.
А теперь почитайте это. Чем ваша статья лучше?