Так, ну пока не начали, вернемся к срываемым грибам, которые я вам задал в качестве самостоятельной работы. Делаются они очень просто, с помощью Локальных переключателей.
Разумеется, для желающих есть и видео версия:
Просто создаем на второй странице локальный переключатель, переходим на третью, которую оставляем пустой и без графики. Формально ивент остается на своем месте, но уже располагается под персонажем, никак не взаимодействует с игроком, и не несет никакой вычислительной нагрузки.
Теперь перейдем к сегодняшним темам, и начнем с команды «Показать Выбор».
Извините за политическую шутку, но показалось уместным:)
Команда располагается в поле «Сообщение» прямо под командой «Показать сообщение» и вызывает вот такое окно:
Действие команды похоже на Ветвление Условий, только в качестве условия принимается личный выбор игрока. Нажал игрок на соответствующий вариант – выполнился тот код, который находится под этой веткой. Так можно реализовывать вложенные друг в друга ветки диалогов и не только.
Как мы видим, мукер предлагает нам максимум шесть вариантов, с возможностью вбить в его поле какой-то текст, который будет виден на экране игры.
Настройки справа:
Фон – то же самое, что и Фон у окна ввода сообщения, дает выбор между оконным режимом, уменьшенной освещенностью и прозрачностью
Положение окна (Справа, Середина, Слева) – определяет местоположение меню выбора на экране
По умолчанию – на каком из вариантов будет стоять курсор при появлении выбора. Учитывайте это, так как многие игроки любят скипать диалоги и случайно клацают пробелом тогда, когда нужно было сделать выбор. Возможность можно отключить, выбрав вариант «нет» и тогда курсор по умолчанию будет скрыт.
При отмене – выбор варианта, который будет выбран при нажатии игроком клавиши Отмена. Можно отключить, путем выбора варианта «нет», либо создать отдельное ветвление, которое будет работать в случае нажатия кнопки «Отмена».
Давайте применим на практике эту команду. Вернемся к нашему многострадальному квесту с грибами. Кстати, я его немного доработал, сделав грибы срываемыми, поэтому размножил их ивенты и раскидал по карте. Теперь у нас тут растут 5 мухоморов и 5 опят.
Давайте сразу займемся самым сложным из НПС, которые у нас имеются – Любителем грибов.
Добавим в начальный диалог выбор для игрока, хочет ли он брать данный квест.
Под сообщением с требованием собрать грибы, создаем новое, где спрашиваем игрока, согласен ли он это делать. Такие сообщения не являются обязательными, но лучше их добавлять, чтобы игрок четко понял – ему сейчас предлагают квест, а не просто болтают.
Под сообщением ставим выбор с двумя вариантами:
Появилось новое ветвление с двумя «Если» для каждого из них. Можно так и оставить, просто перетащить переключатель квеста на сбор грибов под первый вариант, но мы немного заморочимся и создадим еще пару сообщений, чтобы игрок понимал, что его действия имеют какой-то эффект, поверьте, так делать действительно важно.
Работает. Кстати, заметили, что фразы персонажей и НПС никак физически не привязаны к ним самим? Не знаю, нужно ли это пояснять, но на всякий случай – диалоги, это просто сообщения на экране с разными настройками. Т.е. в ивенте НПС прописываются не только его фразы, но и ответы игрока. Диалог двух НПС обычно пишется в ивенте одного из них, а второй выступает просто в роли болванчика для вида. Так проще, но иногда новички недоумевают, мол, как так, говорит герой, но команда на это сообщение находится не в нем, а черт знает где.
Нужно привыкать к тому, что НПС и герои – это просто графика на экране, а управляться она может откуда угодно.
Так, ну простой вариант выбора мы разобрали. А что если сделать длинный ветвистый диалог? Да, это возможно, но потребуется внимательность, так как лесенки из вложений дело опасное и трудночитаемое.
Обратимся к любителю мухоморов и запилим в его ивенте после первого сообщения диалог следующего вида:
Дальше, под вариантом «Сейчас принесу» включаем переключатель квеста(я его уже задействовал в ивентах мухоморов) и добавляем сообщение от лица героя, намекающее игроку на поставленную задачу.
Ниже, под вариантом «А зачем тебе мухоморы» выдаем сообщение, что НПС ими питается и вопрос, любит ли мухоморы наш герой.
Третий вариант с отказом оставляем как есть, так как он у нас выбран в качестве варианта отказа от квеста.
Теперь под вопросом НПС мы создадим еще один выбор:
После первого варианта (Люблю) можно ставить запуск квеста. Второй – на ваше усмотрение, например, можно отказаться от выполнения и вызвать отмену, как сделал я, а можно поставить еще одно сообщение, где НПС скажет, что его не волнует, любит ли игрок мухоморы, мол, иди и собирай.
Нас же интересует третий вариант, где герой просит повторить предыдущую реплику. Это очень важная возможность на тот случай, если игрок промотал сообщение, а теперь жалеет об этом.
Поскольку RPG Maker создан не для запиливания новелл (в отличие от Visual Novel Maker от этой же компании), то функции прокрутки сообщений взад-вперед в нем по умолчанию нет. Функции нет, но необходимость есть. Реализовать такую возможность удается с помощью команды «Метка».
Команда расположена в поле «Управление процессом» и вызывает простенькое окно настроек с единственной возможностью – ввести имя метки.
Для погроммистов и сочувствующих – метка, это что-то вроде Go To.
Метка ставится в какой-либо части кода, к которой мы хотим иметь возможность вернуться при необходимости. Помним, да, что выполнение команд происходит подряд сверху вниз? Так вот, при обращении к метке, игра начинает заново выполнять команды ивента начиная с того места, где метка стоит.
Возврат на метку осуществляется командой «Переход к метке», которая находится прямо под командой «Метка». В ее окне требуется ввести имя метки, заданное ранее. Таким образом, в отличии от имен переменных и переключателей, имя метки используется движком, хоть и никак не видно игроку.
Внимание: в команде «Переход к метке» нужно вводить имя метки без ошибок и точно так же, как вводили при ее создании! Регистр имеет значение, т.е. мукер различает большие и маленькие буквы. Язык ввода имени метки значения не имеет.
Создадим метку перед сообщением о том, что НПС ест мухоморы и обратимся к ней при выборе варианта «Повтори, я не расслышал»
Кстати, если кто-то из вас играл в Final Fantasy IX, то может помните момент, где нужно было 63 раза переспросить НПС таким вот образом, чтобы увидеть пасхалку?) Подумайте – как можно такое реализовать, а я на следующем уроке расскажу, если не забуду.
Ну и давайте применим еще одну простенькую команду, которую я в названии анонсировал – «Ввести число».
Расположена она в поле «Сообщение» под «Показать выбор»
Эта команда делает лишь то, что запрашивает у игрока какое-либо число и записывает его значение в переменную. Всё. Тоже мне команда, скажете вы! И толку от нее? От нее толку немного, но иногда можно его извлечь, например, делая кодовый дверной замок.
Но замки нам тут не нужны. А нужна нам, например, возможность избавиться от лишних грибов, ведь мы помним, что Любитель Грибов требует ровно 5 штук и если у игрока будет перебор, то квест не засчитается.
Окей, нет проблем, создадим яму!
Графика подходящей ямы лежит у нас на вкладке D, которую мы создавали в первых уроках.
Рассмотрим код этого ивента:
Сперва идет сообщение о том, что эта яма делает. Затем выбор из двух видов грибов и варианта отмены. Далее просим игрока ввести число, длиною в один разряд – нам больше и не нужно. Потом у нас идет ветвление, где сравнивается значение переменной «Мухоморы» и переменной «На выброс» и, если Мухоморы больше или равны ей, то вычитаем значение «На выброс» из значения «Мухоморы». И выводим простенькое сообщение, мол, операция прошла успешно.
Вроде бы все просто, верно? Проверим, как это все работает:
Как видно, все работает. Ввод цифр непосредственно с клавиатуры мукер из коробки не поддерживает (разумеется, есть плагины на этот случай) потому, что копирует механики классических JRPG, которые создавались под консольное управление. А в MZ добавили еще и кнопки на экране, которые можно тыкать мышью или жирными пальцАми на сенсорном экране. В MV таких кнопок нет.
Синьоронора!