Автор: Сорнемус В данной статье я расскажу, как работать с диалоговыми окнами на примере мини-диалога. Для начала я объясню некоторые вещи: 1. Если я пишу ХХХ => УУУ => ZZZ, то это значит, что надо зайти в меню ХХХ, нажать там УУУ и выбрать ZZZ. 2. После некоторых указаний в круглых скобочках я буду указывать горячую клавишу этого действия. Также желательно чтобы Читатель знал триггеры на уровне новичка. Итак, начинаем! Первым делом нам надо будет подготовить всё для создания мини-диалога: Включаем World Editor. Создаём новую карту (если у вас отключен пункт «Автоматически создавать карту при запуске WE»). Потом идём в Слой => Юниты (U). Создадим где-нибудь паладина, а неподалёку пехотинца: Далее создадим небольшую область рядом с паладином, и назовём её «Paladin»: Дальше пойдёт триггерная часть: Для начала нам нужно пойти в «Редактор Переменных» (Ctrl + B). Создаём там переменную-массив типа «Кнопка» («Button») размером 3 ячейки, переменную типа «Диалог» («Dialog»), и две переменных типа «Боевая единица» («Unit»). Массив кнопок назовём «Buttons», наш диалог «Dialog», одну переменную юнита назовём «Footman», а другую «Paladin»: Далее создаём папку триггеров «Dialog». Там создаём 5 триггеров: «Init», «ShowDialog», «ClickFirst», «ClickSecond» и «ClickThird». Заходим в триггер «Init». Ставим событием «Elapsed time in 0.01» («Времени прошло 0.01 секунд»). Назначаем там переменной «Footman» пехотинца, а «Paladin» паладина соответственно. Теперь нам надо назначить описание для диалога и кнопок. Но для начала позвольте мне разъяснить некоторый момент – я поставил событие не Инициализацию карты, потому что диалоги, как и мультиборды/таблицы рекордов не могут работать с событием Инициализации, поэтому надо использовать событие «Elapsed time». Итак, продолжим. Назначаем текст диалогу действием «Диалог – Change title». А для назначения кнопкам текста надо использовать 2 действия – сначала мы создаём кнопку действием «Диалог – Create Dialog Button»,а потом занесём её в переменную «Set Buttons [1/2/3] = Last Created Dialog Button». Давайте поставим текст диалогу «Выберите ответ:», а кнопкам «Привет!», «Ты кто?» и «Пошёл вон!». Вот как всё будет выглядеть, если вы сделали всё правильно: Дальше нам надо сделать так, чтобы при определённых действиях это окно показывалось, верно? Для примера, я сделаю, чтобы оно показывалось во время разговора между Пехотинцем и Паладином, а данный разговор начинался, когда Пехотинец входит в нашу зону «Paladin». Итак, идём в триггер «ShowDialog», там ставим событие «Боевая единица – A unit enters region». В регион ставим нашу область «Paladin». Далее, в условиях, выбираем «Unit Comparison» и ставим там «(Entering unit) равно (==) Footman». Потом в действиях включаем ролик действием «Спецэффекты – Cinematic Mode». Потом делаем так, чтобы паладин говорил Пехотинцу «Здраствуй.». Тут нам поможет действие «Спецэффекты – Transmission from Unit». Ну а теперь можно и показывать диалог. Если всё правильно, то триггер «ShowDialog» у вас должен выглядеть так: Теперь мы должны сделать, чтобы при нажатии определённых кнопок диалога, паладин реагировал по-разному. Для начала идём в «ClickFirst». Ставим событие «Диалог – A dialog button is clicked for Dialog». Теперь мы должны поставить условие, что нажатая кнопка, это «Buttons[1]». То же самое мы будем делать и с другими кнопками. Ставим «Dialog Button Comparison» где проставляет значения таким образом: «(Clicked dialog button) равно (==) Buttons [1]». Потом нам надо сделать, чтобы Пехотинец говорил нужную фразу, в данном случае это «Привет!». А паладин должен будет ему ответить. У нас диалог небольшой, поэтому паладин ответит один раз. Его фразой будет «Извини, я спешу. До встречи!». А Пехотинец ответит «Ну до встречи...». Ну и в конце выключаем режим ролика. В конечном итоге выйдет так: Далее ставим в триггер «ClickedSecond» те же самые события и условия, но в условии заменяем «Buttons [1]» на «Buttons [2]». Но теперь паладин будет отвечать по другому, то есть у нас выйдет вот такой коротенький разговор: Пехотинец: Ты кто? Ну и наконец, третий ответ. В нём пехотинец отвечает грубо, поэтому и ответ паладина будет грубым ;-) Пехотинец: Пошёл вон! Ну, вот и всё. На этом статья закончена. Удачи вам в создании диалогов, и прочего ;-) Карта-пример: Скачать P.S. Некоторые могут жаловаться на то, что у большинства русские триггеры. Так вот, если у вас русские триггеры, то открывайте карту-пример, и сравнивайте то, что в карте, и то, что в статье. Тогда всё должно быть более-менее понятно. | |
Просмотров: 2141 | | |
Всего комментариев: 0 | |