Вот пример:
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 — то что-то делать. Ну, надеюсь, принцип понятен.