Плохо! Плохо!:  0
Показано с 1 по 9 из 9

Тема: Как сделать квест. Подробная инструкция с иллюстрациями.

  1. #1
    Маститый Аватар для Nalia
    Информация о пользователе
    Регистрация
    18.09.2009
    Адрес
    Пенза
    Сообщений
    1,371
    Записей в дневнике
    104
    Репутация: 78 Добавить или отнять репутацию

    По умолчанию Как сделать квест. Подробная инструкция с иллюстрациями.

    Как сделать квест?

    Давненько я хочу написать этот туториал, но только сейчас обралась. Возможно, конечно, я буду говорить очевидные вещи— однако новичкам, думаю, статья всё равно поможет.
    Речь пойдёт не о сюжетной основе квеста, а о механической— как с помощью переменных и переключателей регулировать выполнение квеста, причём многоступенчатого и разветвлённого.
    Рассмотрим оный механизм на примере одного из квестов моей игры, «Пастырь и Пастушка», который можно получить в Шейдвуде.
    Шаг 1. Сначала примерно рассмотрим структуру. Есть дух, Пастушка. С ней нужно сделать… А вот тут развилка: мы должны либо изгнать её, либо задобрить. Если мы захотим её изгнать, с ней придётся драться. Если мы задабриваем её— драки не будет.
    Шаг 2, часть первая. Теперь продумаем квестодателей. Кто будет настаивать на изгнании? Местный священник. Кто будет настаивать на том, что духа нужно задобрить? Одна из крестьянок. Но даст квест именно крестьянка. Священник подойдёт к нам, когда мы будем выходить из деревни, и будет доказывать, что духа нужно именно изгнать.
    Я не буду сосредотачиваться на том, как реализовала то, что крестьянка зовёт героя, или то, как священник останавливает его на выходе из деревни— сосредоточу внимание на самой механике процесса квестодавания.
    Итак, мы говорим с крестьянкой. Она такая: «У меня для вас есть работа». И перед нами встаёт первый выбор: согласиться или отказаться.
    Да, это первый выбор практически любого квеста, кроме обязательных.
    И мы должны этот выбор отразить. Где? В переменной, показывающей стадии квеста.
    У меня в игре много переменных и ещё больше переключателей. И большая часть этих переменных— квестовые. Они фиксируют, на какой стадии квест находится. Чаще всего на один квест— одна переменная, но если квест большой и сложный, переменных несколько.
    Итак, создаём переменную. Называет её Пастушка (я назвала по-другому, я переменные по привычке называю исключительно по-английски, но в мейкере в этом нет необходимости). Если Пастушка = 0, то квест не взят. Если мы согласились, то начинается первая стадия квеста: переменной Пастушка присваивается значение 1.
    А если отказались?
    Тонкий момент. Обычно отказ от квеста не значит, что мы его больше не получим (хотя иногда бывает и так, но это не наш случай); мы можем подойти к персонажу и повторно получить просьбу поработать.
    Давайте-ка представим, как это будет выглядеть (в игре это несколько более пространно, но дам более краткий и несколько утрированный вариант).
    Крестьянка: Эй, паладин, у меня есть для тебя работа. Нужно задобрить духа, что обитает на болотах. Сам понимаешь, мы— простые крестьяне, а там с недавних пор шатается всякая нечисть вроде духов воды и слизней, и вообще, рядом ши торчат, так что мы туда ходить боимся, а ты у нас и воин, и маг, и сейв-лоадом владеешь…
    (варианты ответа)
    1. Да, давай.
    2. Нет, не нужна мне работа.
    Если соглашаемся, то Пастушка = 1.

    Спойлер тык:




    Если отказываемся, то… Ничего не происходит? Давайте-ка представим, как подходим к крестьянке во второй раз. И снова:
    Крестьянка: Эй, паладин, у меня есть для тебя работа. Нужно задобрить духа, что обитает на болотах. Сам понимаешь, мы— простые крестьяне…
    И далее по списку.
    Конечно, так можно, но… Может, сделать покрасивее? Чтобы в случае отказа она не твердила всё сначала, а просто спрашивала: «Ну что, всё же решило заработать немножко экспы?». И можно было опять— отказаться либо согласиться.
    Чтобы отразить факт отказа, опять посмотрим на нашу переменную. Присвоим ей в случае отказа значение… Нет, не 2, а -1. То есть Пастушка = 0 это квест не взят, Пастушка = 1 это квест взят, Пастушка = -1 это от квеста отказались.
    Сделаем в событии, которое у нас крестьянка-квестодатель, новую страничку. Если кто не знает или забыл, странички— это такие части события, которые работают в зависимости от разных условий. Чтобы создать новую страницу, нужно нажать на кнопку «Новая страница события» (New event page) наверху события.

    Спойлер тык:





    Это.

    А можно и не это, а это

    Спойлер тык:




    и это

    Спойлер тык:




    Потому что новая страница у нас будет пустая, нужно заново графику события задавать, путь движения и так далее, и, поскольку графика и так далее этой странички не должны отличаться от первой, то лучше не делать лишних телодвижений— скопировать первую страничку и просто заменить реплики.
    И, конечно, поставить условие.
    Эта страничка у нас будет активироваться только если Пастушка = -1 или больше.

    Вот так.

    Спойлер тык:




    А теперь, дети, поднимите руку, кто видит ошибку. Из-за которой наше событие работать не будет. Точнее, оно будет сразу выдавать диалог, как будто мы отказались от работы.
    Да потому что вторая страница будет активироваться, если Пастушка = -1 ИЛИ БОЛЬШЕ. А Пастушка у нас изначально = 0, что точно больше единицы.
    Самый простой способ от этого избавиться—подключить селф-свичи, локальные переключатели, коих по 4 на каждое событие.
    Вернёмся к первой страничке события. Если персонаж согласился взять работу— то Пастушка = 1, всё ОК. А если отказался, то что?...
    То делаем две вещи: Пастушка = -1 и Локальный переключатель А = ON.
    Изменяем условия второй странички. Теперь она у нас будет срабатывать, когда два условия сходятся: Пастушка = -1 и Локальный переключатель А = ON.

    Спойлер тык:




    Спойлер тык:




    А вот сейчас кто-то скажет— а на фига задействовать переменную в случае отказа, когда можно всё решить переключателем? На что отвечу: а если в другом событии придётся проверять, отказались вы или нет? Какой там локальный переключатель включён, вы без скриптов вы не проверите. А переменную— очень даже. Так что на всякий случай не забывайте задействовать переменные.
    Итак, на этой второй страничке в случае, если герой (наконец!) согласится на работу, переменную Пастушка делаем = 1. Если всё ещё отказывается, то оставляем всё как есть. И если мы в третий раз попробуем поговорить с крестьянкой, которой отказали две раза, она встретит нас также, как и во второй раз: вопросом «Ну что, всё же решило заработать немножко экспы?». Вот зачем всё это нужно было.
    Идём дальше. В случае, если мы приняли квест, то нам должны объяснить, что делать, верно? Добавим пару команд на первую страницу, и она будет выглядеть так:

    Спойлер тык:




    То есть крестьянка объясняет нам, куда пойти и даёт квестовый айтем. Всё как полагается.
    Так, а если мы взяли квест и хотим поговорить с крестьянкой второй раз? Что она нам скажет? Сделаем на этот случай ещё одну страничку, третью. Скупое пожелание удачи:

    Спойлер тык:




    При желании тут ещё можно вставить выбор, в котором нерешительный лолодин снова отказывается от квеста и отдаёт горшочек с подношением назад крестьянке. В этом случае переменная Пастушка у нас опять = -1. Но не будем добавлять лишних ломаний, принял и принял.

    Возможно, я объяснила излишне подобно. Но я просто хочу, чтобы вы поняли, как работает этот механизм: предложение квеста, его отказ и его принятие, взаимодействия этих вариантов и отражение на переменных.

    Шаг 2, часто вторая. Продолжаем делать второй шаг. Итак, на выходе из деревни нас ловит священник. Который такой: этот дух злой, его нужно изгнать! Священник—отдельное событие, и странички у него будут тоже свои.
    Но. Появляться это событие будет не просто так, а только когда мы взяли квест от крестьянки. Я не буду останавливаться на том, каким именно образом мы достигаем того, что священник «ловит» лолодина на выходе из деревни. Для простоты будем считать, что выход из деревни у нас шириной в одну клетку, а священник будет стоять и лучших традициях ДжРПГ загораживать проход, пока мы с ним не поговорим.
    Итак, местоположение события «Священник»-- выход из деревни. Структура


    Спойлер тык:





    Чуточку усложнённая. Тут у нас не два варианта— принять предложение или отказаться от него, а три: принять предложение, отказаться и расспросить поподробнее. Последнее тоже абсолютно традиционный поворот для квеста. Рассмотрим спервоначалу этот вариант.

    Спойлер тык:





    Вот так он будет выглядеть. То есть парень нам просто объясняет своё решение, а потом перед нами вновь встаёт выбор— согласиться, сделать так, как он предлагает, или отказаться, сделать так, как предлагает крестьянка.

    Вернёмся к варианту с согласием. Опять обращаемся к переменной Пастушка. Согласились со священником? Она у нас станем равна 2! Пастушка = 2— это значит, что мы поговорили со священником и приняли его предложение. Он там также даёт квестовый айтем: бутылку со святой водой, которую нужно вылить на святилище.
    Отказались? Тогда Пастушка = 3, это значит, что мы остались «верны» крестьянке, и никакого айтема мы не получим.

    Спойлер тык:




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

    Спойлер тык:




    Локальный переключатель А у нас будет включать вторую страницу. На которой не будет ничего, кроме условия появления.

    Спойлер тык:




    Что ещё мы забыли? Ах да, у нас же ветка с уточнением информации! Где лолодину опять предлагают принять/отклонить предложение священника. И с ней нужно что-то делать… Реакция на предложение работы у нас уже есть, так? А теперь самое время задействовать такую штуку, как метки, позволяющие перепрыгнуть в другое место события. Расставить метки вот так: 1, значится, если герой принял предложение священника, 2— если отказал.

    Спойлер тык:




    (стрелками показано, что к чему перепыгнуть)

    Шаг 3. Уф. Закончили с квестодаванием. Теперь вспомним-- куда нужно пойти и что сделать, чтобы квест выполнить? Какую бы развилку мы не выбрали, идти нужно в одно место— к дереву на болоте. Только если мы на стороне крестьянки, мы вливаем на камень перед деревом молоко с мёдом, если на стороне священника— святую воду. То есть второе событие, с которым мы будем работать— святилище. Которое камень. Камень мы рисуем тайлсетом, а поверх него уже ставим событие. Желательно выделить его как-то, показать, что камень— интерактивный объект. Например, у меня это звёздочки. У вас может быть что угодно. Не забыть также поставить приоритет события—«Same as character», на уровне персонажа, иначе оно у вас просто не сработает. Условие появления события— переменная Пастушка = 2 или больше (т.е. мы взяли квест и поговорили со священником).
    Что должно содержаться в событии? Краткое описание алтаря и выбор, который нам предстоит сделать: осквернить или не осквернять.
    Вот так.

    Спойлер тык:




    Ай, стоп. Мы же могли и послать священника куда подальше, и у нас может не быть святой воды для осквернения! Тогда делаем ещё одну страницу.

    Спойлер тык:




    То есть если Пастушка = 2, то есть мы взяли святую воду у священника, то у нас высвечивается первая страница. Если мы отказались брать, то Пастушка = 3 и высвечивается вторая. Понятно?

    Поработаем сначала с первой.

    Спойлер тык:




    Итак, если отдаёт подношение, дух нам благодарен (о чём и сообщается), квестовый айтем отнимается, результат квеста записывается в переменную: Пастушка = 5 (квест выполнен в пользу крестьянки).
    Если выливаем святую воду, то дух вылезает и кидается с нами в бой, квестовый айтем отнимается, результат квеста записывается в переменную: Пастушка = 4 (квест выполнен в пользу священника).
    Если мы отходим, то ничего не происходит.
    Что-то ещё нужно?
    Нет, ничего.

    Теперь вторая страница. Она такая же, как первая, только святой воды у нас нет и быть не может— и не должно быть такого варианта. Просто копируем команды, которые исполняются в варианте подношения на первой странице события.

    Спойлер тык:




    Итак, квест выполнен так или иначе. И камень больше не будет ни подсвечиваться, ни активироваться— он нам больше не нужен.
    Делаем третью страницу. Пустую. Единственное, что на ней будет— условие, что она будет отображаться, когда переменная Пастушка = 4 или больше (Пастушка = 4 и Пастушка = 5 означает, что квест выполнен).

    Шаг 4, часть первая. Квест мы выполнили— теперь нужно его сдать. Если выполнили в пользу крестьянки, то сдать крестьянке, если в пользу священника— священнику.
    Событие-крестьянка у нас где стояла, так и стоит. Добавим в него ещё одна страничку:

    Спойлер тык:




    Крестьянка нас благодарит, и даёт опыт.
    А как она прореагирует, если мы священника послушаем? Ну, например, так.

    Спойлер тык:




    Немного патетично, но сойдёт. И, конечно, никакой экспы для лолодина.
    Обратите внимания, что эту страничку мы вставили до той, которую описали выше. Т.е. сначала идёт страничка с условием Пастушка = 4 или больше (квест выполнен в пользу священника, крестьянка не довольна), потом идёт страничка с условием Пастушка = 5 или больше (квест выполнен в пользу крестьянки, крестьянка довольна).
    И опять вопрос: где я ошиблась, дети? Что не сделала?
    А то, что таким макаром у нас крестьянка, после того, как мы квест ей сдали, будет выдавать опыт бесконечно. Мы к ней подходим— она благодарит и выдаёт опыт. Мы к ней опять подходим— она опять благодарит и выдаёт опыт… Приятный баг, но мы его уберём. Изменим последнюю страничку вот так вот:

    Спойлер тык:




    Задействуем локальный переключатель В. То есть прежде чем дать опят, комп будем смотреть, включён В или нет. Если нет— давать и включать. Если да— не давать. Так что опыт нам дадут только один раз, потом будут просто благодарить.

    Вернёмся к священнику.

    Шаг 4, часть вторая. А давайте вспомним, куда у нас священник девается после того, как на выходе из деревни нас ловит.
    Правильно: никуда. Просто исчезает. Это не есть хорошо— нам ему квест сдавать. Поэтому вспоминаем, когда наша Пастушка чему равна, и создаём событие— священника где-нибудь у выхода из деревни. Он у нас будет отображаться, только когда Пастушка = 2 или больше (т.е. когда мы с ним уже побазарили).

    Спойлер тык:




    Напомню: на момент, когда Пастушка = 2, мы квест ещё не выполнили, поэтому он нам просто желает удачи.
    А если мы отказались ему помогать, т.е. Пастушка = 3?
    Делаем ещё одну страничку.

    Спойлер тык:




    Он, понятное дело, осуждает.

    Что там дальше? Мы выполнили квест в его пользу. Пастушка = 4. ОК, он нас благодарит и даёт экспу. Всё как и в случае с крестьянкой.

    Спойлер тык:




    И последняя страничка— мы выполнили квест в пользу крестьянки, и он осуждает (опять). Можно просто скопировать вторую страничку, и изменить условие.

    Спойлер тык:




    Уф. Конец туториала.

    Замечу две вещи:
    1) Конечно, этот квест можно было построить по-другому. Можно было всё сделать на переключателях, в некоторых случаях обойтись условиями, а не создавать новые страницы, но моей задачей было именно показать, как отцифровать стадии квеста с помощью переменной и страниц. Такая структура наиболее ясная и чёткая.
    2) В игре есть такой квест, но переменные и устройство событий там другие. Я сначала хотела расписать всё точно так же, как в игре, однако там куча команд, значение которых нужно объяснять отдельно, используются скрипты и т.п. Поэтому я от квеста оставила лишь основную структуру.

    Надеюсь, этот туториал вам поможет понять, как делать многоступенчатые квесты с развилками… И почему я так долго делаю лолодина XD
    Последний раз редактировалось Nalia; 28.06.2017 в 19:04.
    Я отрицаю вашу реальность и заменю её своей. (c) Джон Адам Севидж

    Надо работать, работать надо. Ремешки под касками затянуть потуже, шинели в порядок привести, в кобуру засунуть трудолюбие 36 калибра и марш за мейкер! (с) Tall Men

  2. #2
    Местный Аватар для Viktor
    Информация о пользователе
    Регистрация
    05.10.2013
    Адрес
    г. Нижнекамск, Р. Татарстан
    Сообщений
    226
    Репутация: 6 Добавить или отнять репутацию

    По умолчанию

    у меня картинки не грузятся, одна только есть первая. только в ней нечего не видно она маленькая

  3. #3
    Маститый Аватар для Nalia
    Информация о пользователе
    Регистрация
    18.09.2009
    Адрес
    Пенза
    Сообщений
    1,371
    Записей в дневнике
    104
    Репутация: 78 Добавить или отнять репутацию

    По умолчанию

    Теперь всё должно отображаться.
    А что мелко-- ну ничего не могу поделать. Такова специфика изображений из местной галереи.
    Щёлкнуть правой кнопкой и выбрать "открыть изображение в новом окне" помогает.
    Я отрицаю вашу реальность и заменю её своей. (c) Джон Адам Севидж

    Надо работать, работать надо. Ремешки под касками затянуть потуже, шинели в порядок привести, в кобуру засунуть трудолюбие 36 калибра и марш за мейкер! (с) Tall Men

  4. #4
    Маститый Аватар для Yuryol
    Информация о пользователе
    Регистрация
    06.03.2014
    Адрес
    Красноярск
    Сообщений
    1,374
    Записей в дневнике
    44
    Репутация: 57 Добавить или отнять репутацию

    По умолчанию

    а почему урок не в формате видео?

  5. #5
    Маститый Аватар для Nalia
    Информация о пользователе
    Регистрация
    18.09.2009
    Адрес
    Пенза
    Сообщений
    1,371
    Записей в дневнике
    104
    Репутация: 78 Добавить или отнять репутацию

    По умолчанию

    Мне удобнее воспринимать текст и картинки. И что-то в виде текста и картинок представлять тоже.
    Я отрицаю вашу реальность и заменю её своей. (c) Джон Адам Севидж

    Надо работать, работать надо. Ремешки под касками затянуть потуже, шинели в порядок привести, в кобуру засунуть трудолюбие 36 калибра и марш за мейкер! (с) Tall Men

  6. #6
    Авторитет Аватар для Imaginatium
    Информация о пользователе
    Регистрация
    06.12.2015
    Адрес
    Астрал
    Сообщений
    1,549
    Записей в дневнике
    37
    Репутация: 55 Добавить или отнять репутацию

    По умолчанию

    Сначала очень обрадовался, думал тема о том как сделать КВЕСТ на мейкере в смысле квест-жанра игры))) Жалко что мои ожидания не подтвердились, однако почитал с удовольствием и большим интересом) Полезная статья- что уж скажешь)

  7. #7
    Хранитель Форума Аватар для Валера
    Информация о пользователе
    Регистрация
    15.04.2008
    Адрес
    Москва
    Сообщений
    14,006
    Записей в дневнике
    3
    Репутация: 166 Добавить или отнять репутацию

    По умолчанию

    Ели Налия не возражает, сюда же напишем и "как сделать КВЕСТ на мейкере в смысле квест-жанра игры".

    Спойлер И как тебе не стыдно-то, а, Валера?:


    Оборона форта: http://rghost.ru/8kLGxFtD2
    Сделать, чтоб все происходило, как я хочу, - вот, собственно, и весь мейкер!
    Адский Рейд: http://rpgmaker.su/vbdownloads.php?d...downloadid=106

  8. #8
    Маститый Аватар для Nalia
    Информация о пользователе
    Регистрация
    18.09.2009
    Адрес
    Пенза
    Сообщений
    1,371
    Записей в дневнике
    104
    Репутация: 78 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от Валера Посмотреть сообщение
    Ели Налия не возражает, сюда же напишем и "как сделать КВЕСТ на мейкере в смысле квест-жанра игры".
    Нет, это лучше в отдельную тему.
    А квест (как жанр игры) на мейкере сделать-- разве с этим есть какие-то трудности* Просто использовать Кей айтемс и всё.
    Я отрицаю вашу реальность и заменю её своей. (c) Джон Адам Севидж

    Надо работать, работать надо. Ремешки под касками затянуть потуже, шинели в порядок привести, в кобуру засунуть трудолюбие 36 калибра и марш за мейкер! (с) Tall Men

  9. #9
    Хранитель Форума Аватар для Валера
    Информация о пользователе
    Регистрация
    15.04.2008
    Адрес
    Москва
    Сообщений
    14,006
    Записей в дневнике
    3
    Репутация: 166 Добавить или отнять репутацию

    По умолчанию

    Имелись ввиду не технические возможности, а способы творчески-сюжетного оформление этого дела.

    Спойлер И как тебе не стыдно-то, а, Валера?:


    Оборона форта: http://rghost.ru/8kLGxFtD2
    Сделать, чтоб все происходило, как я хочу, - вот, собственно, и весь мейкер!
    Адский Рейд: http://rpgmaker.su/vbdownloads.php?d...downloadid=106

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •