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

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

Результаты опроса: Мне статья
очень понравилась 12 41.38%
показалась обыкновенной 14 48.28%
сильно не понравилась 3 10.34%
Голосовавшие: 29. Вы еще не голосовали в этом опросе

 
AnD
Weighted Companion Cube
offline
Опыт: 7,351
Активность:
Принципы работы триггеров
Представь, ты нарисовал крутейшую карту, рельеф такой, что БЛИЗАРД от зависти уже лопнули, просто верх совершенства!!! И тут тебе приходит в голову: А что если сделать на этой карте... сюжет!!! Пошло-поехало, идешь к другу, спрашиваешь, мол, как сделать, чтоб если юнит зашел в область, то начался ролик, а персонаж... ГОВОРИЛ?

Эта статья как раз для тебя, я сейчас постараюсь тебе все так обьянить, что я даже сам все пойму, наверно. Садись на стул, имхо ты наверно уже итак сидишь, и открывай WorldEditor (WE).

1.0 - Разбираемся, а что вообще такое, триггер?
Триггер, это вещь интересная. Вот к примеру, ты опаздываешь на урок, заходишь в класс, а училка говорит, мол, почему опоздал, баран? Вот, это сработал триггер =). Или ты включаешь выключатель, загорается лампочка, тоже триггер. Наконец, когда Артес выносит последние здания на базе людей, и начинается ролик, ЭТО ТОЖЕ ТРИГГЕР!!! Удивлен? Я тоже, никогда бы не подумал.
Кстати, если ты уже был в редакторе триггеров и уже видел, какой это страшный монстр, то я тебя обрадую: триггеры - это еще мягко сказано, на самом деле, триггеры устроены по другому, одними словами, без всяких панелек!!! Прикинь, какие-то лохи пытаются даже научиться писать триггеры вручную, как я, к примеру, так что триггеры, это еще ну очень мягко сказано.

1.1 - А нужно ли это?
Ну например без триггеров на карте ты не сможешь на ней выиграть, как в общем и проиграть, не будет роликов, не будет разговоров и опасных приключений Васи в подземелье страха и ужаса. Решай сам.

1.2 - А как учиться то, с таким монстром обращаться?
А как ты изучал Windows? Ты теперь скажешь, мол, я не изучал, ваще ведь легкотня. Через год\полгода ты это же самое и о триггерах скажешь, поверь, триггеры еще легче чем Windows.

2.0 - Принцип триггера.
Помнишь пример с училкой? Давай мы его подробнее рассмотрим.
Итак, триггер называется "InClassroom". Что в нем есть? Есть в нем событие, какое? А такое - Вовочка заходит в область "Class". Есть также и условия, тоесть учительница скажет Вовочке "Баран", только если вовочка опоздает. Вот условие - Урок начался = да, начался. И есть в триггере действие, такое - Юнит Училка, имя которой Марья ивановна, говорит на протяжении 20 секунд строку слов: "Почему опоздал, баран?".
Итог: Если Вовочка зайдет в класс, с условием, что урок уже начался, училка на него наорет. Все просто? Конечно просто! А в триггерах? Точно так-же просто!

3.0 - Обрадовавшись такой легкотне, захотели приступить к делу.
Круто? Охота? Поехали! Давай, переключайся на WE, создавай карту, и открывай редактор триггеров. Лично я увидел там какой-то уже сделанный триггер "Melee Initialization". А нафиг он нужен? Удали его, он к училке отношения не имеет. А теперь создай новый триггер. Как? Нажми Ctrl+T, и триггер создастся. Если хочешь, назови его по умному.
Справа и внизу ты должен увидеть функции триггера, которых там пока нет, это специально для нас сделали, чтоб мы туда сами функции пихали. Ну че, пихнем? Стооооп!!! На карте у тебя пустота, и чего ты собираешься делать? Так что перейди на карту, и поставь на нее двух юнитов. Потом перейди в панель областей, надеюсь ты ее найдешь сам, и нарисуй область. Одного юнита поставь в область, а другого за область, тот который за областью, Вовочка. А та, которая в области - училка. Вот теперь все готово для триггеров.

3.1 - Собственно только сейчас начинаем работу, создаем событие.
Итак, вернись в созданный тобой триггер, в котором ничего нет. Щелкни по красному флажку, с надписью "события" (events) правой кнопкой мыши. Кстати, не забудь потом отпустить эту кнопку, не надо держать долго. В появившейся из ничего панельке, щелкни по "Новое событие". Тут открывается такое страшное окно, что бежать охота! Не паниковать, сейчас разберемся. Это в принципе и есть возможные события, теперь нам надо сделать событие, когда Вовочка заходит на область "Class". Раскрой список "Тип события", там выбери "Боевая еденица" (Unit). Теперь в том списке, что пониже и подлиннее, выбери " Unit Enters Region", что расшифровывается как: Юнит заходит в область. До завершения поставленной задачи осталось еще немного. Щелкни по красной подчеркнутой надписи, в появившемся окне щелкни кнопку "Select a Region", и... тебя выбросит в главное окно редактора, но не бойся, это не программа вылетела, это она тебе предлагает выбрать нужную область. Ищи на карте нужную область, мы с тобой договаривались, что это класс, и кликай его. Потом нажимай ОК, пока не выйдешь в редактор триггеров. Итак, ты справился, событие создано! Но без действия, оно не будет значить ничего, тоесть вообще ничего. Кстати, ты наверное сейчас думаешь, мол, ничего себе, как это долго все! Не боись, когда освоишься, ты это буквально за пять секунд будешь провертывать.

3.2 - Ставим ультиматум, или предъявляем очень серьезные условия.
Теперь тебе наверно кажется: Осталось сделать только то, как училка базарит. Ты не прав, в корне не прав. А если зайдет не вовочка, а вдруг зайдет умный двоешник Ботан Жабомордин? Училка ведь на него никогда не будет орать, только на Вовочку. Поэтому надо училке прельявить условия, либо она орет только на Вовочку, любо вообще ни на кого не орет.
Щелкни в правой кнопкой мыши примерно там же, где и в прошлый раз. Но на этот раз выбери "Новое условие". В длинном списке выбери "Unit Comparison", потом опять щелкни по красной надписи и выбери вместо области, как в прошлый раз, твоего юнита, обозначающего Вовочку. Нажимай ОК, до того, как не выйдешь в редактор триггеров. Ты справился! Но все еще этот триггер ничего не делает.

3.3 - Училка совершает голосовое действие в адрес Вовочки.
Финишная прямая. Догадайся сам, как открыть окно "Новое действие", перейди в тип действий "Спецэффекты", выбери "Transmission From Unit" и, собственно задай все сам, надеюсь ты тут уже сам разберешься. У меня было так:
"Send transmission to (All player from Училка000 <gen> named Училка: Play Нет звука and display Ты баран! Modify duration Установить значение 3.00 seconds and Ждать"

4.0 - Понял устройство триггера?
Надеюсь все ясно. С триггерами вроде разобрались. Остальные триггеры делаются также, но изучать все действия события и условия я предоставлю тебе. А у нас новая задача - переменные.

4.1 - А это еще что такое?
Переменные, это такие штуки, в которых записывается какая0то информация. Допустим родили родители ребенка, назвали Вася, через год другого родили, назвали Петя. Вася и Петя - переменные типа человек, теперь если крикнуть "Вася", то прибежит не Петя а Вася. А что было бы, если бы родители не назвали чилдрэнов? Кричали бы "Ребенок!", и бежал бы только один из них, вот так. В триггерах почти то же самое. Вот создал ты с помощью триггеров Пехотинца, и потом сразу создал еще одного. Теперь охота каждому пехотинцу дать разное задание, один пойдет налево, а другой будет его бить, к примеру. Но как ты их будешь находить? Давай практиковаться.

4.2 - Два пехотинца или Петя с Васей.
Создай с помощью триггеров двух пехотинцев, надеюсь ты это умеешь (Боевая единица\Create Unit, писал по памяти, не обессудь). Теперь щелкни по кнопке "Переменные", значок у нее "Х". Теперь создай в открывшемся окне новую переменную с помощью зеленой кнопки "Х". Опять новое окошко вылезло, напиши название английскими буквами, выбери тип переменной "Боевая единица", и щелкай "ОК". Ну, теперь создай еще одну такую же переменную, только с другим именем. Теперь выходи в редактор триггеров. Создавай новое действие Set Variable, из списка выбери одну из твоих переменных, из другого списка выбери Last Created Unit, щелкай "ОК". Теперь помести это действие после создания первого юнита. Теперь скопируй действие и помести его после второго юнита, отредактируй действие, чтобы задавалась другая переменная.

4.3 - А смысл?
А теперь в действиях, например идти туда то, выбирай вместо юнита название нужной переменной и все.

5.0 - Вроде бы все.
Надеюсь ты разобрался с триггерами. Изучай теперь все сам, я тебе обьяснил только принцип, ты его наверно понял. Короче успехов тебе в создании карт и кампаний, модов и дополнейний. Самое главное, что поняв принцип триггеров, ты поймешь принци программирования, и учиться программировать потом будет тоже легче. Закругляюсь.

AnD, 2006, and_warevochel@mail.ru //не получается отвечать на письма, но получается их получать :).
Старый 15.06.2006, 15:31
Vedun

offline
Опыт: 2,809
Активность:
AnD, хорошая статья! С примерами из жизни... :)
Старый 15.06.2006, 18:26
AnD
Weighted Companion Cube
offline
Опыт: 7,351
Активность:
=). все как в жизни. Но так просто понятнее.
Старый 15.06.2006, 18:42
DioD

offline
Опыт: 45,134
Активность:
Слишком просто, поставил понравилась очень только потому-что ниасилил букоф многа и одинаковым цветом.
Старый 15.06.2006, 22:13
Vedun

offline
Опыт: 2,809
Активность:
DioD, критика здесь не уместна. Это статья не для тебя! А хотя...=)
Старый 15.06.2006, 22:16
DioD

offline
Опыт: 45,134
Активность:
Что медведу боян......
Я щас катаю тригер, будет загадка что он делает, гарантирую пару дней раздумий....
Старый 15.06.2006, 22:17
AnD
Weighted Companion Cube
offline
Опыт: 7,351
Активность:
Статья для тех, кто не может понять как работают триггеры.
Старый 15.06.2006, 22:18
bagger

offline
Опыт: 5
Активность:
классная статья!!
Старый 15.06.2006, 22:32
DioD

offline
Опыт: 45,134
Активность:
Я щас твою статью оформлю в 12 строчек + несколько джаз коментов - доказательств....
1.0 Тригеры это сценарии действий
(function some takes nothing returns nothing)
1.1 Если сценарий не написать действий не будет
1.2 БОЯН
2.0 Тригер делется на действие ,условие и событие
3.0 Большинство трегеров требует каких либо объектов для выполнения
(function some takes unit returns string)
3.1 События привязаны к объектам игры, объектами являются как регионы так и юниты
(type unit extends widget)
(type widget extends handle)
(type region extends handle)
3.2 Условия должны быть привязаны к собитиям
(TriggerAddAction)
(TriggerAddCondition)
3.3 Действие должно захватывать объекты как условия так и события
4.0 БОЯН
4.1 Переменные это указатели на конкретные объекты
4.3 Переменные могут быть использованы так-же как и объекты
5.0 БОЯН
Старый 15.06.2006, 22:33
AnD
Weighted Companion Cube
offline
Опыт: 7,351
Активность:
Ну.... этого не поймет нуб.
Старый 15.06.2006, 22:35
DioD

offline
Опыт: 45,134
Активность:
Да.дА.Да тт, мне например потребовалось 20 минту на то, что-бы отфильтровать лишнее в твоей статье, слишком много воды, а то что я написал содержит только то что впринципе должно быть.
Старый 15.06.2006, 22:39
AnD
Weighted Companion Cube
offline
Опыт: 7,351
Активность:
Ну ладно... но у миня всеравно понятнее =).
Старый 15.06.2006, 22:41
DioD

offline
Опыт: 45,134
Активность:
Как знаешь, но лучше убери хоть немного бредятины...
Старый 15.06.2006, 22:43
AnD
Weighted Companion Cube
offline
Опыт: 7,351
Активность:
Я ушел в офф и не слышал этого :).
Я думал что чем веселее тем интереснее. :/ эххх, пошел в оффф.
Старый 15.06.2006, 22:44
Vedun

offline
Опыт: 2,809
Активность:
Всё путём. DioD, вместо Белый и пушистый, напиши Критик года. Я думаю, ты засужил...=):)=)
Старый 15.06.2006, 22:46
AnD
Weighted Companion Cube
offline
Опыт: 7,351
Активность:
Vedun, вот кто тут прав, вот!!! :)
Старый 15.06.2006, 23:40
vlad_C0M
Босс DarkSkyTeam
offline
Опыт: 10,459
Активность:
:saw: Всех распилю!

Статья - для тех кто комьютер от чайника отличить не сможет.
Но все же.... Статья понравилась.
Старый 16.06.2006, 06:57
AnD
Weighted Companion Cube
offline
Опыт: 7,351
Активность:
Цитата:
Статья - для тех кто комьютер от чайника отличить не сможет.
Но все же.... Статья понравилась.

Ну у меня часто спрашивают "А как эти триггеры то делать?", вот для них и статья :).
Старый 16.06.2006, 07:31
DioD

offline
Опыт: 45,134
Активность:
Это статья для
Абубу, мямя,хачу пипи
Старый 16.06.2006, 08:25
AnD
Weighted Companion Cube
offline
Опыт: 7,351
Активность:
(: | :) Ну вот ни могут некоторые ну никак врубиться... и поэтому я так все расписал...
Старый 16.06.2006, 08:38

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

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

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

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



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