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

Вариативность квестов (новичок просит помощи :)

Больше
4 года 11 мес. назад #122846 от Eloth001
Доброго времени суток! Сразу оговорюсь, что только начал знакомство с редактором, поскольку понял, насколько это мощный инструмент, и вдохновился. Посмотрел несколько обучающих видео, часть полученной информации применил на практике. Получилось. Вроде бы. Вопрос в том, что, когда уже начинаешь искать информацию под конкретные задачи, приходится перерывать горы материала, и все равно не факт, что найдешь. Поэтому я хотел бы описать здесь на форуме, в чем конкретно у меня возникли сложности, буду благодарен если ветераны смогут помочь советом :) Сложности возникли при попытке придать квесту вид нелинейности. Выглядит все как-то так:

1. Игрок находит в пустоши некое тело. Тело оказывается не до конца мертвым и неожиданно хватает игрока.
2. Его можно с перепугу сразу добить. В этом случае игрок не получает ничего.
3. Можно не добивать. Тогда тело сунет игроку пару квестовых предметов (записку и ключ), назовет нужное имя и само отойдет в мир иной. В этом случае у игрока будут эти предметы, нужные для квеста.
4. Даже если в предыдущем действии мы добили тело, его затем можно обыскать, тем самым получив с него все нужные предметы. Тут первая сложность: как настроить, чтобы при обыске квестовые предметы не выдавались повторно, если они у нас уже есть? Тут же и вторая сложность: как реализовать, чтобы обыскивать тело можно было только один раз, и при повторном обыске не добавлялись расходники (голда и т.п.)? Мне пока приходит мысль с переключателем и отдельной страницей ивента, но может как-то еще можно.
5. Далее. Тело можно похоронить. Даже если мы до этого ничего от него не получали и не обыскивали. Таким образом, все квестовые предметы остаются на теле в могиле, недоступной к взаимодействию.
6. Еще далее. Невдалеке от места действия стоит шатер, в котором сидит закованная пленница тела. Если у нас есть ключ - то все в порядке, освобождаем. Но ключ может быть в могиле :laugh: В этом случае нужно, чтобы после разговора с пленницей активировалась возможность эксгумации :laugh:
7. Ничто не мешает игроку пойти сначала не к телу, а в шатер. При этом диалог будет кардинально различаться в зависимости от того, контактировал игрок уже с телом или нет, вне зависимости, есть у него при себе ключевые предметы или нет.

Хотелось бы для себя понять, за счет каких параметров выставлять условия в ивентах вышеописанного нехитрого сценария. Спасибо всем, кто осилил данную простыню. Буду благодарен за подсказки.
Спасибо сказали: Dmy, Zeacton

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 1 место Разработчик 3 место 3 место в Обучающем конкурсе Учитель Оратор 1 место в Обучающем конкурсе Паладин Проект года 3 место Проект года 1 место
Больше
4 года 11 мес. назад #122848 от Alx_Yago
В самом общем виде всё это делается при помощи переменных, переключателей, или локальных переключателей.
Переключатели удобны, когда надо просто обозначить, что событие произошло. Переменные - для цепочки событий (произошло первое, потом второе, потом третье). Локальные триггеры - для событий и проверок внутри конкретного ивента (ты обыскал сундук, и в ивенте сундука включается локальный триггер).
При том, или ином действии любой из этих параметров меняется, а когда нужно, проводится проверка (умеешь ведь делать ветвление условий?). Также можно делать проверку наличия предмета.
Если не получится самому разобраться, пиши, сделаю и заскриню конкретные примеры.
Спасибо сказали: Dmy, Sleeping Visitor, Eloth001

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
4 года 11 мес. назад #122873 от Eloth001
Доброго здравия! Благодаря функции ветвления условий удалось решить 99% поставленных задач. Я еще не совсем понял, как работать с переменными, поэтому пока что "заякориваю" определенные события на скрытые предметы, которые по необходимости добавляю/убираю из инвентаря. Я еще не понял, насколько это оптимально, но пока что выглядит удобно.

А вот и начались первые странности.
Ивент "могила" при тесте вообще никак не реагирует на мои действия, несмотря на то, что ивент прописан. Вот смотрю я на это и вообще не могу понять, где я накосячил. Хотя бы сообщение по клику должно выходить, но и этого нет.

Спасибо сказали: Dmy

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

1 место в Готв 3 место Учитель Разработчик 3 место Готв Ветеран Писатель 2 место Тестер
Больше
4 года 11 мес. назад #122874 от Демий
Лучше бы разобраться с переменными и переключателями, потому что с ними проще работать и создавать их. Очень рекомендую изучить в справке(доступна у меня в подписи на русском) почитать о них. Там всё довольно легко.

На скрине четвёртая страница, которая активируется локальным переключателем, точно ли она запускается?
Хотя скорее всего причина в том, что приоритет стоит "под персонажем" в таком случае, чтобы активировать ивент, на нём надо стоять.
Спасибо сказали: Dmy, Alx_Yago, Eloth001

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
4 года 11 мес. назад - 4 года 11 мес. назад #122881 от Eloth001
Н-да, ненадолго я покинул этот топик :silly:
Затык образовался с вещью вроде бы простой, но поиск по ресурсам, и не только в рунете, мне почему-то не дал результатов.
В общем, надо сделать так, чтобы при первой встрече НПЦ приветствовало героя одной конкретной фразой. Но только один раз.
При повторном запуске НПЦ должно говорить другую, тоже конкретную, фразу.
Единственный рабочий вариант, который у меня пока есть, это создание для каждого отдельного приветствия своей страницы ивента. И он мне не нравится, потому что очень глаза мозолит все это пустое место.
Пробовал решать это дело с помощью переменной, изменив ее значение после стартовой фразы, но у меня оно почему-то так не сработало.

Последнее редактирование: 4 года 11 мес. назад пользователем Eloth001.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Разработчик Проект месяца 3 место Организатор конкурсов Проект месяца 2 место Оратор Проект месяца 1 место
Больше
4 года 11 мес. назад #122882 от Snake Fightin
Красную строчку переместить в ветку "Эй, Батч"
Спасибо сказали: Eloth001

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
4 года 11 мес. назад #122883 от Eloth001
Спасибо, так я тоже уже пробовал. По-разному пробовал, все равно не работает :(

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Разработчик Проект месяца 3 место Организатор конкурсов Проект месяца 2 место Оратор Проект месяца 1 место
Больше
4 года 11 мес. назад #122884 от Snake Fightin
А что конкретно означает "не сработало" ?
Кстати, хочу напомнить, что без обнуления переменной при тестировании переменная будет иметь значение отличное от нуля и первого варианта не увидишь.
Спасибо сказали: Eloth001

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
4 года 11 мес. назад #122885 от Eloth001

Snake Fightin пишет: А что конкретно означает "не сработало" ?


Это означает, что я так и продолжаю видеть только первый вариант, второй при тесте не появляется.

Snake Fightin пишет: Кстати, хочу напомнить, что без обнуления переменной при тестировании переменная будет иметь значение отличное от нуля и первого варианта не увидишь.


Оу) Для меня, как для человека, третий день знакомящегося с Мейкером это не напоминание, а новая информация)))
Для чистоты эксперимента изменил нуль на целое число. Вот так теперь это выглядит (но эффект по-прежнему нулевой):

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

1 место в Готв 3 место Учитель Разработчик 3 место Готв Ветеран Писатель 2 место Тестер
Больше
4 года 11 мес. назад #122886 от Демий
Лучше всего в данном случае воспользоваться локальным переключателем и страницей эвента. Как-то так:
страница 1

страница 2


Точно так же, вместо локального, можно использовать глобальный, но тогда надо следить, чтобы он не активировался раньше времени:
страница 1

страница 2


Но вообще, странный момент, потому что судя по тому, что я вижу, всё должно работать. Может есть ещё какие-то страницы у ивента, например?
Спасибо сказали: Eloth001

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
4 года 11 мес. назад #122887 от Eloth001

Демий пишет: Лучше всего в данном случае воспользоваться локальным переключателем и страницей эвента.


Да, этот способ на данный момент остается самым очевидным и рабочим для меня. Просто он меня иррационально бесит из-за некомпактности, что ли... но, если нет других вариантов, придется воспользоваться им. Благодарю за наглядность!

Демий пишет: Но вообще, странный момент, потому что судя по тому, что я вижу, всё должно работать. Может есть ещё какие-то страницы у ивента, например?


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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
4 года 11 мес. назад - 4 года 11 мес. назад #122888 от Братец Лис

Eloth001 пишет:


Оно и не будет работать.

Ибо при каждом старте диалога ты приравниваешь переменную к единице. После строки диалога, её значение, как и нужно, меняется на 2, но запуская диалог вновь, переменная опять становится равна 1, и стало быть, верным остается первое условие в ветвлении.
Удали первую строку (Переменная: #0001 Приветствие = 1), замени во второй 1 на 0, и все будет ОК. Snake Fightin всё верно тебе выше писал.



Примерно вот так:



Но вариант с локальным переключателем лучше (У Демия первый вариант)
Последнее редактирование: 4 года 11 мес. назад пользователем Братец Лис.
Спасибо сказали: Демий, Alx_Yago, Eloth001

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.112 секунд
Работает на Kunena форум