Диалоги. Как и с чем их есть?
Эта обучалка научит вас создавать простые диалоговые окна в редакторе SC2. С помощью них мы создадим экран выбора персонажа, знакомый до боли всем любителям РПГ. Конечный результат ваших (и моих надеюсь) трудов будет выглядеть вот так:

Ничего такого, просто работающий диалог.
Начнем. Открываем карту. Идем в редактор триггеров. Там у вас должен находиться триггер инициализации карты, если вы его конечно сами не удалили. Если удалили — создаем заново:
События: Игра - Инициализация Карты.
Действия: Создать Диалог.
Создать Модальный диалоговое окно с размером (800, 1000), связанное с Центр экрана.
Теперь создадим переменную, к которой будет обращаться наше диалоговое окно. Правой кнопкой по пространству, где находится наш триггер, Создать > Создать переменную.
Пометка: Не перепутайте с локальными переменными!
Выбираем тип переменной — диалог. Начальное значение оставляем как «Нет диалогового окна». Назовите ее Character Selection Dialog. Затем вернемся к нашим баранам, т.е. триггеру. Создадим новое действие (Помещайте их ниже предыдущих в списке, пока я не скажу обратное). Выбираем «Задать Переменную» из списка.
Установить Character Selection Dialog=(Последний созданный диалог)
Добавим еще действие.
Действие: Создать элемент диалога (кнопка)
Выбирайте там что захотите, все интуитивно понятно. Единственное, на что можно обратить внимания, это опция «Показать элементы управления стилем» в поле «Текст на кнопке». С помощью нее вы можете редактировать свой текст так как вам вздумается.
Создадим новую переменную. Назовем ее Item Dialog, тип переменной — Элемент диалога.
Варнинг! Ахтунг! Если у вас уже мозг кипит, или вы не хотите использовать массивы — листайте ниже. Если вы хотите свести количество используемых переменных к минимуму, массивы это то что вам нужно. Но они могут посеять хаос в вашем триггере, если правильно не задокументировать все и вся и не запутаться во всем этом. Вообщем, вас предупредили. Ставим галочку напротив Массив, и в первом окне Размер ставим (Сколько надо нам кнопок — 1). К примеру, мне нужно 5 кнопок, поэтому я ставлю 4. НИЧЕГО НЕ ВВОДИТЬ ВО ВТОРОЕ ПОЛЕ РАЗМЕР, ИНАЧЕ ВАШ МАССИВ СТАНЕТ multi-dimensional, ЧТО ВАМ НЕ НАДО. Ахтунг прошел! Варнинг прошел!
Идем к нашему триггерчику. Добавляем еще одно действия типа «Задать переменную». Выбираем нашу переменную (Если с массивом то [0]). Значение — Последний созданный обьект диалога.
Остались последние шаги, создадим кнопки для всех вариантов выбора. Для начала, добавьте новое действие типа «Показать/Скрыть диалоговое окно». Запустите теперь вашу карту, и более — менее разберитесь что за что отвечает. Так вам будет попроще. В общем, создание каждой кнопки будет выглядеть так, если вы используете массивы:
Окно диалога - создать кнопку для диалога (Последний созданный диалог) с размерами 200 и 150, привязанную к Центр со смещением (-270, -380), подсказкой "Призрак", текстом "путь к картинке" и изображением наложения ""
Переменная - Установить Dialog Item[0]=(Последний созданный объект диалога)
Если же не используете массивы — бомбите для каждой кнопки свою переменную.
Вот и наделали мы кнопок, а они же ничего не делают! Непорядок. Сделаем новый триггер для этого. Задаем событие — Элемент диалогового окна используется, ставим на любой диалог. Теперь добавляем действие с типом «Если/то/иначе». Выбираем «Если» и нажимаем Ctrl+k. Выбираем сравнение, оператора "==", Значение 1: Используемое окно диалога, Значение 2: Переменная Dialog Item[0]. Перемещаем наше условие под «если», если оно не там. Создаем действие, которое будет выполняться при нажатии кнопки и ставим его под «то». Под «иначе» нам ничего не нужно. Под «то» также можно добавить действие типа «Показать/Скрыть диалоговое окно», если не хотите чтоб ваш диалог маячил перед вами всю игру.
Все, у вас есть работающий экран выбора персонажей. У вас, конечно пока нет той панельки с информацией о герое, о ней я расскажу вам в следующем туторе.
Мой результат (я оказался немного ленивым :)):

Карта автора, в которой можно покопаться:
Ссылка
Оригинал на английском языке
Статья написана: 2010-08-19 17:29:06
Прочитано раз: 27280
Последний: 2025-04-20 01:18:39