Сейчас 14:13:17 Пятница, 19 августа, 2022 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: Bru  
Форум о Warcraft 3 » Прочее » Отвал » [GUI-Триггеры] Урок 1. Основы.
[GUI-Триггеры] Урок 1. Основы.
[DUОS]Дата: Понедельник, 26 Октября 2009, 18:51:16 | Сообщение # 1
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
Перед тем, как непосредственно перейти к триггерам (к программированию), изучим их основы.

Каждый триггер должен находиться внутри какой-нибудь папки. Он состоит из трех частей: событий (events), условий (conditions) и действий (actions). Также у триггера есть собственное имя, которое, как и имя файла, не может содержать спецсимволов (в том числе знак подчеркивания, однако можно использовать пробелы) и может быть введено только на английском языке (папки могут быть на русском).

Рис. 1 - структура триггера

В верхней части окна редактора триггеров имеется шесть кнопок, управляющих процессом создания триггеров. Первая из них - создание новой папки для триггера, вторая - создание самого триггера, третья - создание комментария к триггеру, а последние три кнопки отвечают за добавление в триггер новых событий, условий и действий.

Рис. 2 - кнопки для управления триггерами

Принцип действия следующий: игра - это последовательность событий (например, начало игры, юнит атаковал юнита, герой повысился в уровне, игрок передал сообщение в чате). Когда в игре происходит какое-либо событие, то указанное в триггере событие сопоставляется со случившимся. Если совпадение есть, то происходит второй этап, на котором проверяется выполнение условий триггера. Условия должны уточнить, когда нужно производить действие, а когда - нет. Если условия выполнятся, то произойдет третий, финальный этап - будет выполнено действие этого триггера. Например, перед нами стоит задача - сделать так, чтобы определённый герой переносился в другое место, когда подойдёт к порталу. Событием здесь будет приход юнита в область вокруг портала (Боевая единица - Unit Enters Region), а условие должно уточнить, что этим юнитом должен быть определенный герой (Triggering unit равно [Определённый герой], для примера я взял Чародея Крови). Действие - перенос юнита в другое место (Боевая единица - Move (Triggering Unit) instantly to (Область, куда хотите его переместить)). Если событие произошло и условия выполнены, то выполняются действия триггера.

Рис. 3 - триггер, переносящий определённого героя из одной области в другую.

Еще у триггера есть два флажка (в окне редактора расположены сверху): включен (enabled) и изначально включен (initially on). По сути они имеют одинаковый смысл, за одним исключением: если триггер "отключен", то его никак нельзя включить, ибо он вообще отсутствует в игре (это важный момент), если он "изначально выключен", то его можно включить в игре. В первом случае все ясно - триггера просто нет в игре, а вот второй следовало бы разобрать. У триггера есть "флажок", который отвечает за то, включен ли он. "Отключенное" состояние равносильно тому, что у триггера нет никаких событий (но его можно вызвать из другого триггера). Этот флажок можно включать и выключать по ходу игры (для этого есть специальные действия), то есть "включать / выключать" триггер. Флажок "изначально включен", соответственно, отвечает за его состояние "по умолчанию". Кстати, есть возможность подключать и отключать отдельные команды внутри любого триггера. Щелкните на команду правой кнопкой и выберете пункт "включить функцию" (enable function). "Включать / выключать" функции по ходу игры невозможно.

Рис. 4 - флажки для управления включением триггера

Говоря про отключение триггеров, нельзя забывать про один аспект - как только произошло нужное событие и выполнены нужные условия, то триггер приводится в действие, но дело в том, что почти все триггеры многоразовые. Если снова произойдет нужное событие и снова выполнены условия - триггер запускается еще раз. Одноразовыми можно считать триггеры, заданные событиями Карта - Map Initialization и Time Elapsed, поскольку эти события происходят один раз. Следовательно, возникает проблема - как их отключить. К примеру, нужно сделать так, чтобы герой перемещался в другое место, когда приходил в определенную область, но только один раз. Значит, нужно позаботиться, чтобы после первого выполнения триггер отключался. Вот один из способов это осуществить: в каждый триггер, который нужно отключить, вставляете строчку в действия - Триггер - Turn off (This trigger). Это действие отключает триггер.

Рис. 5 - теперь герой переходит из одной области в другую только один раз.


Задания:

1. Создать отключённый и включённый триггеры.
2. Поэкспериментировать с выученными методами и сделать что-нибудь интересное на и основе.




НУ И ЧТО ТЕПЕРЬ?


Кликайте на дракошку ;)
 

LeshiiДата: Суббота, 14 Ноября 2009, 14:24:18 | Сообщение # 2
6 уровень
Группа: Заблокированные
Сообщений: 228
Награды: 1
Репутация: 23
Блокировки:
Вот ссылка http://slil.ru/28202918
Давайте какие нибудь сложные триги.
Например заклинания триггерные на GUI
Очень хочется научиться


Он где-то тут углядел Порядок и присматривал за ним.
 

HTCДата: Суббота, 14 Ноября 2009, 16:43:29 | Сообщение # 3
Учитель класса В
Группа: Проверенные
Сообщений: 130
Награды: 0
Репутация: 27
Блокировки:
Эхх, самую главную вещь которую должен запомнить гуи-кодер -
для выполнения триггера с несколькими событиями и несколькими условиями важно помнить, что для запуска триггера достаточно срабатывания одного события из всех, но выполнения всех условий
добавь это к своей статье ^_^
 

ShadowDragonДата: Понедельник, 16 Ноября 2009, 17:12:57 | Сообщение # 4
10 уровень
Группа: Проверенные
Сообщений: 1564
Награды: 1
Репутация: 286
Блокировки:
[DUОS],
Quote (|DUОS|)
Задания: 1.

Создать отключённый и включённый триггеры.
2. Поэкспериментировать с выученными методами и сделать что-нибудь интересное на и основе.

Можно я не буду это делать? Слишком просто.

Мой первый триггерный спелл. Прошу сразу не ругать и апельсинами не закидывать. meowth

Ссылка.


Человечество так низко пало... Даже я за ним не успеваю © Не помню


 

Brut@lusДата: Вторник, 17 Ноября 2009, 18:51:08 | Сообщение # 5
Группа: Заблокированные
Сообщений: 2496
Награды: 1
Репутация: 924
Блокировки:
если ты совсем новичёк, то просто клас, мне нравится!

 

ShadowDragonДата: Вторник, 17 Ноября 2009, 19:08:55 | Сообщение # 6
10 уровень
Группа: Проверенные
Сообщений: 1564
Награды: 1
Репутация: 286
Блокировки:
Brut@lus,

Ты это мне? Я этот скил делал еще когда Артес был человеком. :) Просто удалял ненужные карты, и случайно наткнулся на этот скил...

А если не мне... Статья - класс, но я все это знаю.


Человечество так низко пало... Даже я за ним не успеваю © Не помню




Сообщение отредактировал ShadowDragon - Вторник, 17 Ноября 2009, 19:09:52
 

LeshiiДата: Суббота, 21 Ноября 2009, 19:35:13 | Сообщение # 7
6 уровень
Группа: Заблокированные
Сообщений: 228
Награды: 1
Репутация: 23
Блокировки:
Quote ([DUOS)
]Задания: 1.
Создать отключённый и включённый триггеры.
2. Поэкспериментировать с выученными методами и сделать что-нибудь интересное на и основе.

Quote (ShadowDragon)
Можно я не буду это делать? Слишком просто.

Да я сам всё это знаю просто так сделал.Давайте 2-ой урок!!!


Он где-то тут углядел Порядок и присматривал за ним.
 

ZimbabbaДата: Пятница, 19 Февраля 2010, 19:15:41 | Сообщение # 8
7 уровень
Группа: Проверенные
Сообщений: 315
Награды: 0
Репутация: 52
Блокировки:
Вопрос от нуба : как ты сделал что бы там был Чародей крови?

Добавлено (19-02-2010, 19:15)
---------------------------------------------
Вот моя домашка )) http://slil.ru/28676729


 

[DUОS]Дата: Пятница, 19 Февраля 2010, 21:06:18 | Сообщение # 9
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
Quote (Zimbabba)
как ты сделал что бы там был Чародей крови?

Там, где выбирается юнит, нажал "Выбрать", затем щёлкнул на поставленного заранее на карте Келя.

Quote (Zimbabba)
Вот моя домашка )) http://slil.ru/28676729

Оценю чуть позже :)


НУ И ЧТО ТЕПЕРЬ?


Кликайте на дракошку ;)
 

Gam_OverДата: Четверг, 04 Марта 2010, 14:55:39 | Сообщение # 10
9 уровень
Группа: Проверенные
Сообщений: 1107
Награды: 0
Репутация: 175
Блокировки:
решил вспомнить все с нуля :) давно не бывал в триггерах... итак вот что я налепил...
 

CareMyKittyДата: Понедельник, 03 Мая 2010, 13:10:56 | Сообщение # 11
5 уровень
Группа: Проверенные
Сообщений: 121
Награды: 0
Репутация: 29
Блокировки:
Я плохо понял что такое включен/изначально включен триггер, можно поподробнее?

Добавлено (03-05-2010, 13:10)
---------------------------------------------
http://slil.ru/29072978 - моя домашка. Принцып таков: Чародей крови стоит на земле, ему нужно забраться на гору где стоят враги.. наступаешь на зеленую густую траву и он попадает к ним. :) мне понравилось)

 

WakingTheDemonДата: Понедельник, 03 Мая 2010, 14:07:49 | Сообщение # 12
9 уровень
Группа: Проверенные
Сообщений: 821
Награды: 1
Репутация: 170
Блокировки:
Quote (CareMyKitty)
Я плохо понял что такое включен/изначально включен триггер, можно поподробнее?

изначально включен:проверка событий происходит с инициализации мапы, срабатывает как только происходит событие.
изначально включен: включается ток другим тригером, пока не сработает включающий тригер, выключенный не будет работать, даже если сработает событие.
Пример: нужно сделать, если герой убивает нейтрала 6го лвла, то он может убивать нейтралов с первого удара 5го лвла.

триг1:
Событие: юнит умирает
Условие: умирающий = нейтрал 6го лвла
Действия: вкл триг2

триг2:
Событие: юнит атакован
Условие: атакованный = нейтрал 5го лвла
Действия: убить атакованного.

Теперь рассмотрим тригеры. Второй тригер должен быть изначально выключен, если он будет сразу включен то герой будет с самого начала убивать нейтралов с первого удара. Пример очень простой, здесь вместо 2го тригера можно было вставить одно условие- нейтрал 6го лвла мертв = да.

 

IyDДата: Пятница, 14 Мая 2010, 17:05:28 | Сообщение # 13
7 уровень
Группа: Проверенные
Сообщений: 252
Награды: 0
Репутация: 112
Блокировки:
Вот домашка http://ifolder.ru/17708246

xxx - Луд прыгни низ мне место надо для друга
IyD - ТВОЮ...ВЫ ЗАПАРИЛИ. МОЙ НИК ИУД УЧИТЕСЬ ЧИТАТЬ
my friend - хахахаха. Вечная история, никто твой ник норм прочитать не может xD

Каким же идиотом был тот человек, который придумал Поиск, ведь его же никто не использует.

Однажды и вы попадёте на Остров Морлоков...
 

LighterДата: Понедельник, 05 Июля 2010, 23:13:23 | Сообщение # 14
7 уровень
Группа: Проверенные
Сообщений: 283
Награды: 0
Репутация: 82
Блокировки:
Вот моя домашка http://letitbit.net/download/54964.54566a500831ab6753bdbee56/wait.w3x.html
 

WE_new_maperДата: Вторник, 06 Июля 2010, 13:24:58 | Сообщение # 15
8 уровень
Группа: Проверенные
Сообщений: 692
Награды: 0
Репутация: 28
Блокировки:
Lighter, я не думаю что ее кто-то будет проверять т.к. учителя тригер/джасс пропали

 

LighterДата: Вторник, 06 Июля 2010, 16:28:05 | Сообщение # 16
7 уровень
Группа: Проверенные
Сообщений: 283
Награды: 0
Репутация: 82
Блокировки:
WE_new_maper, дуос сказал проверит)
 

[DUОS]Дата: Четверг, 08 Июля 2010, 12:15:49 | Сообщение # 17
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
WE_new_maper,
Я здесь, просто в бане был.
Скачиваю.
Lighter,
Впредь заливай на slil.ru ;)

Добавлено (08-07-2010, 12:15)
---------------------------------------------
Хех, система респа героя :)
Хорошо для новичка. Но если используешь Wait, лучше вместо (Dying unit) использовать (Triggering unit), т.к. если умрут несколько юнитов, то один может не воскреситься, ибо (Dying unit) перезапишется. А (Triggering unit) не перезаписывается.


НУ И ЧТО ТЕПЕРЬ?


Кликайте на дракошку ;)
 

LighterДата: Четверг, 08 Июля 2010, 12:24:39 | Сообщение # 18
7 уровень
Группа: Проверенные
Сообщений: 283
Награды: 0
Репутация: 82
Блокировки:
[DUОS], вот http://slil.ru/29442761
 

[DUОS]Дата: Четверг, 08 Июля 2010, 13:43:28 | Сообщение # 19
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
Lighter,
Вижу, заменил даинги на триггеринги. Приступай к след. уроку :)


НУ И ЧТО ТЕПЕРЬ?


Кликайте на дракошку ;)
 

Gamefr@nkДата: Четверг, 08 Июля 2010, 14:28:51 | Сообщение # 20
8 уровень
Группа: Проверенные
Сообщений: 638
Награды: 0
Репутация: 188
Блокировки:
http://slil.ru/29442922
Вот задание))

P.S

 

LighterДата: Пятница, 09 Июля 2010, 11:36:47 | Сообщение # 21
7 уровень
Группа: Проверенные
Сообщений: 283
Награды: 0
Репутация: 82
Блокировки:
[DUОS], ахахахах вотето я втык я тебе не мою домашку кинул а наработку 1 типа) вот реальная домашка http://slil.ru/29446305 извиняюсь еще раз)
 

[DUОS]Дата: Пятница, 09 Июля 2010, 12:17:55 | Сообщение # 22
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
Lighter,
А ведь мне домашка понравилась. :) Ошибок не увидел, только баг единственное заметил - зачем выключать триггер с событием инициализации карты? она и так один раз за всю игру :)


НУ И ЧТО ТЕПЕРЬ?


Кликайте на дракошку ;)
 

LighterДата: Пятница, 09 Июля 2010, 12:35:38 | Сообщение # 23
7 уровень
Группа: Проверенные
Сообщений: 283
Награды: 0
Репутация: 82
Блокировки:
[DUОS], гг не знаю)затупил)
 

[DUОS]Дата: Пятница, 09 Июля 2010, 12:36:47 | Сообщение # 24
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
Lighter,
С кем не бывает.


НУ И ЧТО ТЕПЕРЬ?


Кликайте на дракошку ;)
 

)blazer(Дата: Суббота, 17 Июля 2010, 10:51:58 | Сообщение # 25
7 уровень
Группа: Проверенные
Сообщений: 308
Награды: 0
Репутация: 49
Блокировки:
моё д\з Спецэффекты
http://wehelp.ucoz.ru/load/0-0-0-10-20
 

Форум о Warcraft 3 » Прочее » Отвал » [GUI-Триггеры] Урок 1. Основы.
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Copyright © 2006 - 2022 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz