Кондишены и их параметры. Полный список

Экшены и их параметры. Полный список


Условия и Действия

ВСЯ скриптовая логика в игре собирается путем сочетания и комбинирования простейших связок — Триггеров: ЕСЛИ выполнилось “**Условие-X**” → ТО активируется “**Действие-Y**”.

Условие-X” — condition / ”кондишн” “Действие-Y” — action / ”экшен”

Кондишены


Структура кондишена

{ "c": "ConditionName", "p": [ "parameter1", "parameter2" ], "counter": X }

Кондишены БЕЗ параметров могут быть прописаны любым из следующих способов:

Описание кондишена

❗Кондишен = слушатель. То есть он срабатывает ОДИН РАЗ, когда впервые удовлетворяется его условие, и ВЫКЛЮЧАЕТСЯ.

Кондишен не включится обратно и не сработает повторно, если, условие перестало выполняться Например, сработавший единожды кондишен “Counter” не узнает, если счетчик принял значение, которое больше не удовлетворяет его условию.

<aside> ❗

Все кондишены проверяются ТОЛЬКО для тех игроков, у кого активен квест, который их содержит (определяется полем “sharing” квеста. Подробнее — см. ПОДРОБНОЕ ОПИСАНИЕ ВНУТРЕННИХ ПОЛЕЙ “quests”

ОДНАКО кондишены Игрока X все еще могут проверять героев / захваченные объекты Игрока Y — если их конкретные сиды прописаны в параметрах.

</aside>

Комбинированные кондишены

Существует возможность создавать комплексные слушатели, требующего выполнения / не-выполнения нескольких кондишенов одновременно. Для этого используется вспомогательное опциональное поле “conditionsLogic”.

Пример использования:

{
	  "conditionsLogic": "Or",
	  "conditions":
	  [
		    { "c": "HeroKill", "p": [ "campaign_hero_1" ] },
		    { "c": "HeroKill", "p": [ "campaign_hero_2" ] }
	  ],

	  "actions":
	  [
		    { "a": "GameLose" }
	  ]
}

Возможные значения поля “conditionsLogic”:

<aside> ❗

Так как кондишены — одноразовые слушатели, комбинированные условия типа “And” будут считаться выполненными, как только каждый из кондишенов сработает по 1 разу. ДАЖЕ если условия обоих никогда не будут удовлетворены одновременно.

Для решения этой проблемы используются вспомогательные экшены TriggerClear и TriggerClearCustom. Подробнее — см. Действия с квестлогом

</aside>

Экшены


Структура экшена

{ "a": "ActionName", "p": [ "parameter1", "parameter2" ] }

Экшены БЕЗ параметров могут быть прописаны любым из следующих способов:

Описание экшена

Экшен — одно простейшее действие, которое выполняется мгновенно.

Все действия совершаются последовательно одно за другим. Экшены в скрипт-файле срабатывают сразу друг за другом (если у одного из действий в цепочке не был указан дополнительный параметр break, прерывающий выполнение всех последующих действий).

<aside> ❗

Все экшены, кроме диалогов, по умолчанию не умеют “дожидаться” завершения предыдущего вызванного экшена. Например, если вызывать подряд два экшена MoveCamera, камера лишь на долю секунды начнет движение в первую точку, прежде чем сразу же перейти к полноценному движению во вторую.

</aside>

<aside> ❗

Если в написании экшена была допущена ошибка, то не только он, но и ВСЕ экшены данного триггера не будут работать.

</aside>

Добавление скриптов на карту

Скриптовая логика добавляется на карту в двух формах:

<aside> ❗

Чтобы КАКАЯ-ЛИБО скриптовая логика работала на карте, в той же папке, где хранится файл *название_карты.map* обязательно нужно создать квестовый файл *название_карты*.json с блоком “quests”. (хотя бы пустой — см. Заготовка — пустой скрипт-файл: map_name.json)

Иначе даже самые простые триггеры взаимодействия, прикрепленные через Actions Before / After к объектам, сломают загрузку карты.

</aside>

Скрипты в квестовом файле

Кондишены и их параметры. Полный список

Экшены и их параметры. Полный список