- Сообщений: 11
- Спасибо получено: 10
Правила раздела:
1 Задавайте конкретные вопросы. Для болтовни есть свободный раздел.
2 По возможности давайте конкретные ответы.
3 Один вопрос=одна тема. Если хотите задать ещё вопрос, то начинайте новую тему.
4 Название темы должно составлять сам вопрос, и быть максимально конкретным. Рекомендуется начинать тему словами "Как", "Что", "Почему". А первый пост повторяет вопрос и даёт расширенные сведения.
5 Рекомендуется указывать версию мейкера (2000, 2003, RMXP, RMVX, ACE, IGM, и.т.д.. Это важно, и всё равно ведь спросят.
6 Темы "Пара вопросов", "Помогите", и подобные им - самый лёгкий путь к бану.
7 Поиск находится вверху справа.
А. Названия подразделов этого раздела уточняются. Советы принимаются.
1 Задавайте конкретные вопросы. Для болтовни есть свободный раздел.
2 По возможности давайте конкретные ответы.
3 Один вопрос=одна тема. Если хотите задать ещё вопрос, то начинайте новую тему.
4 Название темы должно составлять сам вопрос, и быть максимально конкретным. Рекомендуется начинать тему словами "Как", "Что", "Почему". А первый пост повторяет вопрос и даёт расширенные сведения.
5 Рекомендуется указывать версию мейкера (2000, 2003, RMXP, RMVX, ACE, IGM, и.т.д.. Это важно, и всё равно ведь спросят.
6 Темы "Пара вопросов", "Помогите", и подобные им - самый лёгкий путь к бану.
7 Поиск находится вверху справа.
А. Названия подразделов этого раздела уточняются. Советы принимаются.
[VX Ace] Появление события по условию
- ShinkoriVera
-
Автор темы
- Не в сети
- Забанен
-
Скрыть
Больше
7 года 6 мес. назад #106977
от ShinkoriVera
ShinkoriVera создал тему: [VX Ace] Появление события по условию
Снова нужна помощь. Можно ли в мейкере сделать так, чтобы некое событие появилось после того, как были посещены несколько других? Да, можно создавать ветки мапов, но можно ли по условию? Просто те события передвигаются, и после выходит не очень, когда перемещаешься на изначальную точку события, когда оно переместилось в другое место
Надеюсь, меня поймут...
Надеюсь, меня поймут...
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
7 года 6 мес. назад - 7 года 6 мес. назад #106978
от Dmy
Dmy ответил в теме [VX Ace] Появление события по условию
Можно создать параллельное событие на карте и добавить проверку туда.
В параллельном событии сделать что-то типа:
ЕСЛИ условие 1 ТО
ЕСЛИ условие 2 ТО
ЕСЛИ условие 3 ТО
Переключатель: установить «событие появилось» в ВКЛ
КОНЕЦ ЕСЛИ
КОНЕЦ ЕСЛИ
КОНЕЦ ЕСЛИ
Ждать 1 кадр
Проверка «если» делается командой «Ветвление условий».
А то появляющееся событие сделать зависимым от переключателя «событие появилось».
Если непонятно, спрашивайте, могу описать подробнее.
В параллельном событии сделать что-то типа:
ЕСЛИ условие 1 ТО
ЕСЛИ условие 2 ТО
ЕСЛИ условие 3 ТО
Переключатель: установить «событие появилось» в ВКЛ
КОНЕЦ ЕСЛИ
КОНЕЦ ЕСЛИ
КОНЕЦ ЕСЛИ
Ждать 1 кадр
Проверка «если» делается командой «Ветвление условий».
А то появляющееся событие сделать зависимым от переключателя «событие появилось».
Если непонятно, спрашивайте, могу описать подробнее.
Последнее редактирование: 7 года 6 мес. назад пользователем Dmy.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- ShinkoriVera
-
Автор темы
- Не в сети
- Забанен
-
Скрыть
Больше
- Сообщений: 11
- Спасибо получено: 10
7 года 6 мес. назад #106979
от ShinkoriVera
ShinkoriVera ответил в теме [VX Ace] Появление события по условию
Да, поясните, пожалуйста. У меня просто ещё версия на английском, а я вообще немецкий изучал. Заранее спасибо
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
7 года 6 мес. назад - 7 года 6 мес. назад #106980
от Dmy
Dmy ответил в теме [VX Ace] Появление события по условию
Вот пример:
TestSwitchConditions.zip
(1.3M). Ниже подробнее описано, что происходит.
_____
Для начала создаём пару других событий, которые нужно посетить первыми. Они будут после своего посещения включать переключатели (switches) с помощью команды Переключатели (Control Switches). Переключатели — это такие невидимые штуки, которые могут быть включены и выключены. Их удобно использовать, чтобы записывать продвижение по сюжету.
Нужно использовать именно глобальные переключатели (switches), а не локальные (self-switches), потому что локальные переключатели не видны другим событиям.
Команда «Переключатели» выбирается вот тут:
Настраивается она вот так:
Вам нужно, чтобы при посещении событий включался соответствующий им переключатель. При щелке по номеру переключателя открывается окно выбора переключателя, где можно сразу задать им названия — лучше задать, ориентироваться по названию легче:
В результате каждое событие при посещении будет устанавливать свой переключатель «Событие N посещено», вот так:
Таких событий можно наделать, сколько угодно. В принципе, можно сразу же в них добавить проверку «Все события посещены?», и если все, то ВКЛючать переключатель «Все события посещены». Но это неудобно: придётся копировать проверку во все события (а потом, если надо будет добавить новое событие, редактировать его в трёх местах). Лучше сделать параллельное событие.
Щёлкните в каком-то месте, где точно не нужны будут события, например, на краю карты, и создайте там невидимое событие. Не нужно выбирать ему графику, оно чисто техническое: оно будет проверять условия.
Выберите пункт «Запуск события»: «Параллельно» (Trigger: Parallel, если не ошибаюсь). Большинство событий выполняются по очереди: в один момент может выполняться только одно, и все остальные блокируются. Но параллельные выполняются «в фоновом режиме» и не блокируют выполнение других событий. Для технического события «параллельное» выполнение — самое то.
Справа надо вставить код, который будет постоянно выполняться в фоновом режиме. Код будет проверять, что все переключатели включены. Для этого можно использовать команду «Условие» (Conditional Branch, в других переводах Ветвление условий):
При выборе этой команды откроется настройка условия. Выберите первое условие на первой странице (проверку переключателя) и выберите проверку, что переключатель ВКЛючён (ON). Выберите свой первый переключатель, а снизу уберите галочку «Добавить ветку «Иначе» (Add ELSE branch) — оно нам не нужно:
В результате создастся вот такая структура (в других переводах вместо «УСЛОВИЕ» может быть «ЕСЛИ»):
@> УСЛОВИЕ: Переключатель [0001:Событие 1 посещено] == ВКЛ
@>
: КОНЕЦ
@>
Между «УСЛОВИЕ» и «КОНЕЦ» можно размещать команды, которые выполняться, только если условие выполняется. Щёлкните по внутренней строке «@>», чтобы добавить команду, и добавьте туда ещё одну проверку условий, на этот раз проверяя второй переключатель:
@> УСЛОВИЕ: Переключатель [0001:Событие 1 посещено] == ВКЛ
@> УСЛОВИЕ: Переключатель [0002:Событие 2 посещено] == ВКЛ
@>
: КОНЕЦ
@>
: КОНЕЦ
@>
И-и-и-и ещё раз! Добавьте внутрь ещё одно условие:
@> УСЛОВИЕ: Переключатель [0001:Событие 1 посещено] == ВКЛ
@> УСЛОВИЕ: Переключатель [0002:Событие 2 посещено] == ВКЛ
@> УСЛОВИЕ: Переключатель [0003:Событие 3 посещено] == ВКЛ
@>
: КОНЕЦ
@>
: КОНЕЦ
@>
: КОНЕЦ
@>
И уже внутри, когда все три условия выполняются, включайте переключатель «Все события посещены» командой «Переключатель» (Control Switches):
@> УСЛОВИЕ: Переключатель [0001:Событие 1 посещено] == ВКЛ
@> УСЛОВИЕ: Переключатель [0002:Событие 2 посещено] == ВКЛ
@> УСЛОВИЕ: Переключатель [0003:Событие 3 посещено] == ВКЛ
@> Переключатель: [0004:Все события посещены] = ВКЛ
@>
: КОНЕЦ
@>
: КОНЕЦ
@>
: КОНЕЦ
@>
В результате это событие в фоновом режиме проверяет, посещены ли все события. Если посещены — включает переключатель «Все события посещены». Но! Много параллельных событий могут нагружать компьютер. Поэтому лучше добавлять команду «Ждать», чтобы выполнение следующей проверки произошло не сразу тут же, а через какое-то время:
Ожидание задаётся в кадрах. Кадр — 1/60 секунды (по умолчанию игры на мейкере идут со скоростю 60 кадров в секунду; это можно поменять). Почти всегда безопасно ждать 1 кадр, но обычно можно ставить числа побольше. Игроки вряд ли заметят задежку в 1/6 секунды.
Итак, событие получается таким:
Ну и после этого нужно добавить само событие, которое реагирует на первые. Для этого добавим в него проверку переключателя «Все события посещены». Это можно сделать либо с помощью той же команды «Условие» (Conditional Branch), либо создав у события две страниц — первую без условий, вторую с условием «переключатель Все события посещены включён».
Вот пример всего того, что написано выше: TestSwitchConditions.zip (1.3M).
Альтернативный вариант: как вариант, вместо трёх переключателей можно использовать переменную (variable): завести переменную «Число посещённых событий» и увеличивать её значение на 1. А потом сравнивать значение переменной, если оно равно 3 — то что-то делать. Ну, надеюсь, принцип понятен.
_____
Для начала создаём пару других событий, которые нужно посетить первыми. Они будут после своего посещения включать переключатели (switches) с помощью команды Переключатели (Control Switches). Переключатели — это такие невидимые штуки, которые могут быть включены и выключены. Их удобно использовать, чтобы записывать продвижение по сюжету.
Нужно использовать именно глобальные переключатели (switches), а не локальные (self-switches), потому что локальные переключатели не видны другим событиям.
Команда «Переключатели» выбирается вот тут:
Настраивается она вот так:
Вам нужно, чтобы при посещении событий включался соответствующий им переключатель. При щелке по номеру переключателя открывается окно выбора переключателя, где можно сразу задать им названия — лучше задать, ориентироваться по названию легче:
В результате каждое событие при посещении будет устанавливать свой переключатель «Событие N посещено», вот так:
Таких событий можно наделать, сколько угодно. В принципе, можно сразу же в них добавить проверку «Все события посещены?», и если все, то ВКЛючать переключатель «Все события посещены». Но это неудобно: придётся копировать проверку во все события (а потом, если надо будет добавить новое событие, редактировать его в трёх местах). Лучше сделать параллельное событие.
Щёлкните в каком-то месте, где точно не нужны будут события, например, на краю карты, и создайте там невидимое событие. Не нужно выбирать ему графику, оно чисто техническое: оно будет проверять условия.
Выберите пункт «Запуск события»: «Параллельно» (Trigger: Parallel, если не ошибаюсь). Большинство событий выполняются по очереди: в один момент может выполняться только одно, и все остальные блокируются. Но параллельные выполняются «в фоновом режиме» и не блокируют выполнение других событий. Для технического события «параллельное» выполнение — самое то.
Справа надо вставить код, который будет постоянно выполняться в фоновом режиме. Код будет проверять, что все переключатели включены. Для этого можно использовать команду «Условие» (Conditional Branch, в других переводах Ветвление условий):
При выборе этой команды откроется настройка условия. Выберите первое условие на первой странице (проверку переключателя) и выберите проверку, что переключатель ВКЛючён (ON). Выберите свой первый переключатель, а снизу уберите галочку «Добавить ветку «Иначе» (Add ELSE branch) — оно нам не нужно:
В результате создастся вот такая структура (в других переводах вместо «УСЛОВИЕ» может быть «ЕСЛИ»):
@> УСЛОВИЕ: Переключатель [0001:Событие 1 посещено] == ВКЛ
@>
: КОНЕЦ
@>
Между «УСЛОВИЕ» и «КОНЕЦ» можно размещать команды, которые выполняться, только если условие выполняется. Щёлкните по внутренней строке «@>», чтобы добавить команду, и добавьте туда ещё одну проверку условий, на этот раз проверяя второй переключатель:
@> УСЛОВИЕ: Переключатель [0001:Событие 1 посещено] == ВКЛ
@> УСЛОВИЕ: Переключатель [0002:Событие 2 посещено] == ВКЛ
@>
: КОНЕЦ
@>
: КОНЕЦ
@>
И-и-и-и ещё раз! Добавьте внутрь ещё одно условие:
@> УСЛОВИЕ: Переключатель [0001:Событие 1 посещено] == ВКЛ
@> УСЛОВИЕ: Переключатель [0002:Событие 2 посещено] == ВКЛ
@> УСЛОВИЕ: Переключатель [0003:Событие 3 посещено] == ВКЛ
@>
: КОНЕЦ
@>
: КОНЕЦ
@>
: КОНЕЦ
@>
И уже внутри, когда все три условия выполняются, включайте переключатель «Все события посещены» командой «Переключатель» (Control Switches):
@> УСЛОВИЕ: Переключатель [0001:Событие 1 посещено] == ВКЛ
@> УСЛОВИЕ: Переключатель [0002:Событие 2 посещено] == ВКЛ
@> УСЛОВИЕ: Переключатель [0003:Событие 3 посещено] == ВКЛ
@> Переключатель: [0004:Все события посещены] = ВКЛ
@>
: КОНЕЦ
@>
: КОНЕЦ
@>
: КОНЕЦ
@>
В результате это событие в фоновом режиме проверяет, посещены ли все события. Если посещены — включает переключатель «Все события посещены». Но! Много параллельных событий могут нагружать компьютер. Поэтому лучше добавлять команду «Ждать», чтобы выполнение следующей проверки произошло не сразу тут же, а через какое-то время:
Ожидание задаётся в кадрах. Кадр — 1/60 секунды (по умолчанию игры на мейкере идут со скоростю 60 кадров в секунду; это можно поменять). Почти всегда безопасно ждать 1 кадр, но обычно можно ставить числа побольше. Игроки вряд ли заметят задежку в 1/6 секунды.
Итак, событие получается таким:
Ну и после этого нужно добавить само событие, которое реагирует на первые. Для этого добавим в него проверку переключателя «Все события посещены». Это можно сделать либо с помощью той же команды «Условие» (Conditional Branch), либо создав у события две страниц — первую без условий, вторую с условием «переключатель Все события посещены включён».
Вот пример всего того, что написано выше: TestSwitchConditions.zip (1.3M).
Альтернативный вариант: как вариант, вместо трёх переключателей можно использовать переменную (variable): завести переменную «Число посещённых событий» и увеличивать её значение на 1. А потом сравнивать значение переменной, если оно равно 3 — то что-то делать. Ну, надеюсь, принцип понятен.
Последнее редактирование: 7 года 6 мес. назад пользователем Dmy.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- ShinkoriVera
-
Автор темы
- Не в сети
- Забанен
-
Скрыть
Больше
- Сообщений: 11
- Спасибо получено: 10
7 года 6 мес. назад #107027
от ShinkoriVera
ShinkoriVera ответил в теме [VX Ace] Появление события по условию
Спасибо большое, всё сделал, всё работает, как и хотел) Ещё раз спасибо~
Спасибо сказали: Dmy
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Время создания страницы: 0.101 секунд
