48

RPG Maker MZ: урок №11. Выбор, Метка и Ввод числа

Так, ну пока не начали, вернемся к срываемым грибам, которые я вам задал в качестве самостоятельной работы. Делаются они очень просто, с помощью Локальных переключателей.


Разумеется, для желающих есть и видео версия:

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


Теперь перейдем к сегодняшним темам, и начнем с команды «Показать Выбор».

Извините за политическую шутку, но показалось уместным:)


Команда располагается в поле «Сообщение» прямо под командой «Показать сообщение» и вызывает вот такое окно:

Действие команды похоже на Ветвление Условий, только в качестве условия принимается личный выбор игрока. Нажал игрок на соответствующий вариант – выполнился тот код, который находится под этой веткой. Так можно реализовывать вложенные друг в друга ветки диалогов и не только.


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


Настройки справа:


Фон – то же самое, что и Фон у окна ввода сообщения, дает выбор между оконным режимом, уменьшенной освещенностью и прозрачностью


Положение окна (Справа, Середина, Слева) – определяет местоположение меню выбора на экране


По умолчанию – на каком из вариантов будет стоять курсор при появлении выбора. Учитывайте это, так как многие игроки любят скипать диалоги и случайно клацают пробелом тогда, когда нужно было сделать выбор. Возможность можно отключить, выбрав вариант «нет» и тогда курсор по умолчанию будет скрыт.


При отмене – выбор варианта, который будет выбран при нажатии игроком клавиши Отмена. Можно отключить, путем выбора варианта «нет», либо создать отдельное ветвление, которое будет работать в случае нажатия кнопки «Отмена».


Давайте применим на практике эту команду. Вернемся к нашему многострадальному квесту с грибами. Кстати, я его немного доработал, сделав грибы срываемыми, поэтому размножил их ивенты и раскидал по карте. Теперь у нас тут растут 5 мухоморов и 5 опят.

Давайте сразу займемся самым сложным из НПС, которые у нас имеются – Любителем грибов.


Добавим в начальный диалог выбор для игрока, хочет ли он брать данный квест.

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

Под сообщением ставим выбор с двумя вариантами:

Появилось новое ветвление с двумя «Если» для каждого из них. Можно так и оставить, просто перетащить переключатель квеста на сбор грибов под первый вариант, но мы немного заморочимся и создадим еще пару сообщений, чтобы игрок понимал, что его действия имеют какой-то эффект, поверьте, так делать действительно важно.

Работает. Кстати, заметили, что фразы персонажей и НПС никак физически не привязаны к ним самим? Не знаю, нужно ли это пояснять, но на всякий случай – диалоги, это просто сообщения на экране с разными настройками. Т.е. в ивенте НПС прописываются не только его фразы, но и ответы игрока. Диалог двух НПС обычно пишется в ивенте одного из них, а второй выступает просто в роли болванчика для вида. Так проще, но иногда новички недоумевают, мол, как так, говорит герой, но команда на это сообщение находится не в нем, а черт знает где.

Нужно привыкать к тому, что НПС и герои – это просто графика на экране, а управляться она может откуда угодно.


Так, ну простой вариант выбора мы разобрали. А что если сделать длинный ветвистый диалог? Да, это возможно, но потребуется внимательность, так как лесенки из вложений дело опасное и трудночитаемое.


Обратимся к любителю мухоморов и запилим в его ивенте после первого сообщения диалог следующего вида:

Дальше, под вариантом «Сейчас принесу» включаем переключатель квеста(я его уже задействовал в ивентах мухоморов) и добавляем сообщение от лица героя, намекающее игроку на поставленную задачу.


Ниже, под вариантом «А зачем тебе мухоморы» выдаем сообщение, что НПС ими питается и вопрос, любит ли мухоморы наш герой.


Третий вариант с отказом оставляем как есть, так как он у нас выбран в качестве варианта отказа от квеста.

Теперь под вопросом НПС мы создадим еще один выбор:

После первого варианта (Люблю) можно ставить запуск квеста. Второй – на ваше усмотрение, например, можно отказаться от выполнения и вызвать отмену, как сделал я, а можно поставить еще одно сообщение, где НПС скажет, что его не волнует, любит ли игрок мухоморы, мол, иди и собирай.


Нас же интересует третий вариант, где герой просит повторить предыдущую реплику. Это очень важная возможность на тот случай, если игрок промотал сообщение, а теперь жалеет об этом.


Поскольку RPG Maker создан не для запиливания новелл (в отличие от Visual Novel Maker от этой же компании), то функции прокрутки сообщений взад-вперед в нем по умолчанию нет. Функции нет, но необходимость есть. Реализовать такую возможность удается с помощью команды «Метка».


Команда расположена в поле «Управление процессом» и вызывает простенькое окно настроек с единственной возможностью – ввести имя метки.

Для погроммистов и сочувствующих – метка, это что-то вроде Go To.


Метка ставится в какой-либо части кода, к которой мы хотим иметь возможность вернуться при необходимости. Помним, да, что выполнение команд происходит подряд сверху вниз? Так вот, при обращении к метке, игра начинает заново выполнять команды ивента начиная с того места, где метка стоит.


Возврат на метку осуществляется командой «Переход к метке», которая находится прямо под командой «Метка». В ее окне требуется ввести имя метки, заданное ранее. Таким образом, в отличии от имен переменных и переключателей, имя метки используется движком, хоть и никак не видно игроку.


Внимание: в команде «Переход к метке» нужно вводить имя метки без ошибок и точно так же, как вводили при ее создании! Регистр имеет значение, т.е. мукер различает большие и маленькие буквы. Язык ввода имени метки значения не имеет.

Создадим метку перед сообщением о том, что НПС ест мухоморы и обратимся к ней при выборе варианта «Повтори, я не расслышал»

Кстати, если кто-то из вас играл в Final Fantasy IX, то может помните момент, где нужно было 63 раза переспросить НПС таким вот образом, чтобы увидеть пасхалку?) Подумайте – как можно такое реализовать, а я на следующем уроке расскажу, если не забуду.


Ну и давайте применим еще одну простенькую команду, которую я в названии анонсировал – «Ввести число».


Расположена она в поле «Сообщение» под «Показать выбор»

Эта команда делает лишь то, что запрашивает у игрока какое-либо число и записывает его значение в переменную. Всё. Тоже мне команда, скажете вы! И толку от нее? От нее толку немного, но иногда можно его извлечь, например, делая кодовый дверной замок.


Но замки нам тут не нужны. А нужна нам, например, возможность избавиться от лишних грибов, ведь мы помним, что Любитель Грибов требует ровно 5 штук и если у игрока будет перебор, то квест не засчитается.


Окей, нет проблем, создадим яму!

Графика подходящей ямы лежит у нас на вкладке D, которую мы создавали в первых уроках.


Рассмотрим код этого ивента:


Сперва идет сообщение о том, что эта яма делает. Затем выбор из двух видов грибов и варианта отмены. Далее просим игрока ввести число, длиною в один разряд – нам больше и не нужно. Потом у нас идет ветвление, где сравнивается значение переменной «Мухоморы» и переменной «На выброс» и, если Мухоморы больше или равны ей, то вычитаем значение «На выброс» из значения «Мухоморы». И выводим простенькое сообщение, мол, операция прошла успешно.


Вроде бы все просто, верно? Проверим, как это все работает:

Как видно, все работает. Ввод цифр непосредственно с клавиатуры мукер из коробки не поддерживает (разумеется, есть плагины на этот случай) потому, что копирует механики классических JRPG, которые создавались под консольное управление. А в MZ добавили еще и кнопки на экране, которые можно тыкать мышью или жирными пальцАми на сенсорном экране. В MV таких кнопок нет.


Синьоронора!

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

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

- Выдавать чужой труд за свой

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


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"