Войти на сайт

Авторизация, ждите ...
×
Правила раздела:
1 Задавайте конкретные вопросы. Для болтовни есть свободный раздел.
2 По возможности давайте конкретные ответы.
3 Один вопрос=одна тема. Если хотите задать ещё вопрос, то начинайте новую тему.
4 Название темы должно составлять сам вопрос, и быть максимально конкретным. Рекомендуется начинать тему словами "Как", "Что", "Почему". А первый пост повторяет вопрос и даёт расширенные сведения.
5 Рекомендуется указывать версию мейкера (2000, 2003, RMXP, RMVX, ACE, IGM, и.т.д.. Это важно, и всё равно ведь спросят.
6 Темы "Пара вопросов", "Помогите", и подобные им - самый лёгкий путь к бану.
7 Поиск находится вверху справа.
А. Названия подразделов этого раздела уточняются. Советы принимаются.

ТЕМА: Дневник персонажа

Дневник персонажа 6 года 6 мес. назад #106208

  • Event1
  • Event1 аватар
  • Вне сайта
  • Бывалый
  • Сообщений: 55
  • Спасибо получено: 72
  • Проект месяца 3 местоПроект месяца 1 место
Здравствуйте, знатоки, адепты и просветлённые. У меня есть задумка сделать дневник персонажа. Куда он записывает свои мысли, происходящие события, а заодно и задания. То есть самый обычный дневник, с перелистыванием страниц вправо-влево, с отменой и так далее. Но с реализацией возникли проблемы. То не открывается, то не листается. Картинки сделаны отдельно. Дневник открывается через Общие события с подставлением этих картинок. Где-то ошибка в командах. Я совершенно запутался из-за множества переменных. Дело в том, что игра планируется нелинейная. Много выборов, много событий и очерёдность их появления может быть любая. Посмотрите пожалуйста, где ошибка. Движок VX Ace.
Администратор запретил публиковать записи гостям.

Дневник персонажа 6 года 6 мес. назад #106209

  • Dmy
  • Dmy аватар
  • Вне сайта
  • Заблокирован
  • Сообщений: 1142
  • Спасибо получено: 2480
  • Поддержка ФондаДаритель СтимкеяПроект месяца 3 местоЗа 2 место на конкурсе маппингаУчитель2 место ПаладинПрограммист RubyВетеранРазработчик
А можно показать нам скриншот и нижних команд события, не только верхних?
Администратор запретил публиковать записи гостям.

Дневник персонажа 6 года 6 мес. назад #106210

  • Aiaz Marx
  • Aiaz Marx аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 334
  • Спасибо получено: 492
  • Проект месяца 2 местоПроект месяца 1 место
Подобное можно без каких-либо проблем реализовать на других движках. Поищи информацию по интерактивным рассказам. Писать такое на Мейкере дело неблагодарное.
Последнее редактирование: 6 года 6 мес. назад от Aiaz Marx.
Администратор запретил публиковать записи гостям.

Дневник персонажа 6 года 6 мес. назад #106211

  • Dmy
  • Dmy аватар
  • Вне сайта
  • Заблокирован
  • Сообщений: 1142
  • Спасибо получено: 2480
  • Поддержка ФондаДаритель СтимкеяПроект месяца 3 местоЗа 2 место на конкурсе маппингаУчитель2 место ПаладинПрограммист RubyВетеранРазработчик
Aiaz Marx пишет:
Подобное можно без каких-либо проблем реализовать на других движках. Поищи информацию по интерактивным рассказам. Писать такое на Мейкере дело неблагодарное.
Насколько я понял, дневник — лишь часть RPG-игры, а не единственная механика.

_____________

Добавлено в 10:43:
Из того, что вижу сейчас: команда «Прервать цикл» завершит вообще все повторения, а не только текущее. Я не знаю, что у тебя там после цикла (поэтому мне нужен скриншот), но, скорее всего, там ничего нет — т.е. событие закончится и тут же начнётся заново, заново заменит картинку №1 на My_Diary_Title и т.д.

Скорее всего, тебе нужно не заканчивать цикл, а сделать в начале цикла метку и сделать переход к этой метке. Чтобы закончилось только вот одно повторение цикла, а не весь цикл.

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

Ну и «Завершить выполнение» завершит выполнение только одной итерации. Но ведь у тебя событие автоматически начнётся заново, оно же автозапускаемое. Т.е. надо выключать переключатель 0004:My_Diary перед «Завершить выполнение».

Ещё, вероятно, где-то в цикле надо вставить команду «Ждать 1 кадр», чтобы цикл ожидал ответа игрока.

Или, как вариант, вообще убрать цикл и сделать это одним общим событием, которое перезапускается в начале каждого следующего кадра.
Последнее редактирование: 6 года 6 мес. назад от Dmy.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Aiaz Marx, Event1

Дневник персонажа 6 года 6 мес. назад #106212

  • Aiaz Marx
  • Aiaz Marx аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 334
  • Спасибо получено: 492
  • Проект месяца 2 местоПроект месяца 1 место
Верно. Моя невнимательность.
Администратор запретил публиковать записи гостям.

Дневник персонажа 6 года 6 мес. назад #106213

  • Dmy
  • Dmy аватар
  • Вне сайта
  • Заблокирован
  • Сообщений: 1142
  • Спасибо получено: 2480
  • Поддержка ФондаДаритель СтимкеяПроект месяца 3 местоЗа 2 место на конкурсе маппингаУчитель2 место ПаладинПрограммист RubyВетеранРазработчик
Я бы сделал так:
  • разбил дневник на 2 события: одно его открывает (и вызывается один раз), второе перелистывает страницы,
  • сохранил бы номер страницы в переменную,
  • убрал бы цикл, а вместо него использовал бы факт, что событие автозапускаемое (т.е. оно запустится само после того, как закончится).

Я сделал проект-пример:
DiaryTest.zip (1,4 Мб)

Или, если удобнее, вот скриншоты:
Скриншоты общих событий из проекта [ Нажмите, чтобы развернуть ]


Если что-то непонятно — спрашивайте.
Последнее редактирование: 6 года 6 мес. назад от Dmy.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Cabbit, Doctor_Bug, Aiaz Marx, Event1

Дневник персонажа 6 года 6 мес. назад #106214

  • Event1
  • Event1 аватар
  • Вне сайта
  • Бывалый
  • Сообщений: 55
  • Спасибо получено: 72
  • Проект месяца 3 местоПроект месяца 1 место
Сколько ответов сразу, спасибо :) И информации тоже много. Конечно, дневник только часть игры. Приключенческая вариативная фентези-RPG. Просто мне показалось банальным делать обычный журнал квестов. Дневник персонажа, где описываются мысли, происходящие события, реакция персонажа на эти события, задания, которые дают персонажи. Мне в этом плане очень понравилась реализация данной идеи в игре Life Is Strange. То есть событие может произойти, а может и не произойти, и производные линии происходящего от этого. И наверное я слишком вариативную игру задумал делать) Боюсь, может скилла не хватить :laugh:
Демку я посмотрел, большое спасибо) Почти понял. Надо ещё разбираться. Я пока в Мейкере пару месяцев, ещё не всё освоил.
Делаю сразу две игры. Дома на MV, а на работе на VX Ace. Принцип одинаковый, что очень облегчает задачу.
Нижняя часть окна, хотя наверное уже не актуально:
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy

Дневник персонажа 6 года 6 мес. назад #106215

  • Dmy
  • Dmy аватар
  • Вне сайта
  • Заблокирован
  • Сообщений: 1142
  • Спасибо получено: 2480
  • Поддержка ФондаДаритель СтимкеяПроект месяца 3 местоЗа 2 место на конкурсе маппингаУчитель2 место ПаладинПрограммист RubyВетеранРазработчик
Event1 пишет:
То есть событие может произойти, а может и не произойти, и производные линии происходящего от этого. И наверное я слишком вариативную игру задумал делать)
Если событий очень много, то можно сделать уменьшение по шагам. Разместить много условий подряд, начаная с самого маленького. Типа, когда игрок нажимает «вправо», делать что-то такое:

— Увеличить текущую страницу на 1
— Если текущая страница = 1:
 — Если страница 1 доступна, показать её и завершить выполнение;
 — иначе увеличить текущую страницу на 1
— Если текущая страница = 2:
 — Если страница 2 доступна, показать её и завершить выполнение;
 — иначе увеличить текущую страницу на 1
— Если текущая страница = 3:
 — Если страница 3 доступна, показать её и завершить выполнение;
 — иначе увеличить текущую страницу на 1
...

(Это сработает, только если последняя страница видна всегда. Но можно вместо неё заднюю сторону тетради показывать.)

Ну и аналогичные проверки придётся повторить при нажатии влево:

— Уменьшить текущую страницу на 1
— Если текущая страница = 3:
 — Если страница 3 доступна, показать её и завершить выполнение;
 — иначе уменьшить текущую страницу на 1
— Если текущая страница = 2:
 — Если страница 2 доступна, показать её и завершить выполнение;
 — иначе уменьшить текущую страницу на 1
...
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Event1
Время создания страницы: 0.212 секунд