7. Задачи миссии и триггеры
Продолжайте работу в World Editor. Добавим обозначения на карту, настроим условия выполнения задач и подготовим брифинг для игроков.
Обозначения на карте
Заголовок раздела «Обозначения на карте»На скриншоте показана разметка, которую мы хотим получить. Игра будет проходить в районе, выделенном оранжевой рамкой. Красную линию пересекать запрещено правилами миссии.

Настройки линии
Заголовок раздела «Настройки линии»В панели Hierarchy нажмите правой кнопкой мыши на свою сцену ShootingStar_Ep1 и создайте слой markers. Дважды щёлкните по нему, чтобы сделать слой активным. Все обозначения карты будем добавлять в этот слой.
В панели Resource Browser откройте LiteLobby → Prefabs → Map и перетащите LL_MapPolyZone.et на местность. Выберите добавленный объект в Hierarchy, а затем нажмите на его компонент LL_MapZoneComponent в панели Object Properties.
Настройте отображение линии:
- В Outline Color выберите красный цвет.
- В Outline Width задайте толщину линии —
10. - Включите Line Mode, чтобы линия не имела заливки, а её концы не соединялись друг с другом.
- Включите Show For Any Faction, чтобы линию видели все стороны.

Рисование линии
Заголовок раздела «Рисование линии»Линия состоит из точек, соединённых отрезками. Расставим их вдоль нужных дорог и ориентиров.
Выберите объект линии и нажмите кнопку с изогнутой линией на верхней панели — Vector Tool. Справа откроются настройки этого инструмента. Включите Snap to terrain, чтобы новые точки располагались на поверхности земли.
Удерживая Ctrl, щёлкайте левой кнопкой мыши по местности, добавляя точки по порядку. Чтобы продолжить уже нарисованную линию, сначала выберите её последнюю точку.

В поле имени вверху Object Properties введите RedLine. С этим именем объект будет проще найти в Hierarchy.

Обозначение порта
Заголовок раздела «Обозначение порта»Добавьте ещё один LL_MapPolyZone.et в слой markers и назовите его Port. В Vector Tool расставьте точки вдоль границы порта, как на скриншоте.
В компоненте LL_MapZoneComponent выберите зелёный цвет в поле Outline Color и укажите толщину 7 в Outline Width. Включите Line Mode и Show For Any Faction, как у линии RedLine.

Эти линии только отображаются на карте. Ниже создадим отдельную область, которая будет определять захват порта.
Нажмите Ctrl+S, чтобы сохранить мир.
Триггеры
Заголовок раздела «Триггеры»Триггеры проверяют условия миссии и сообщают игрокам, когда они выполнены. Настроим захват порта, критические потери, ограничение времени и численное превосходство.
Для проверки захвата, потерь и превосходства нужны группы обеих сторон с игровыми слотами. Если вы пока разместили только группу «Альфа», сначала подготовьте и разместите остальных участников.
Размещение и сообщения
Заголовок раздела «Размещение и сообщения»Префабы триггеров находятся в LiteLobby → Prefabs → Triggers. Если в вашей сцене ещё нет слоя triggers, создайте его. Сделайте этот слой активным и добавляйте в него префабы. Для настройки каждого объекта выбирайте его компонент в панели Object Properties.
У каждого триггера включите Broadcast Message, чтобы игроки получали сообщения, и Show In Briefing, чтобы они видели условия в брифинге. Текст сообщения введите в поле Message. Поля Message Faction и Message Groups оставьте пустыми, если сообщение предназначено всем сторонам.
Триггер захвата
Заголовок раздела «Триггер захвата»Сначала очертим область порта, затем разместим флаги и свяжем их с триггером.
Область захвата
Заголовок раздела «Область захвата»Убедитесь, что слой triggers активен. В Vector Tool нажмите New Polyline. Эта линия задаст границу области, внутри которой триггер будет учитывать бойцов.
Удерживая Ctrl, щёлкайте левой кнопкой мыши вокруг порта, чтобы расставить точки границы. В поле имени вверху панели Object Properties введите PortTrigger.

Выберите PolylineShapeEntity в панели Object Properties, раскройте Unsorted и включите Is Closed. Последняя точка соединится с первой, замкнув границу области.

В Resource Browser найдите в проекте LiteLobby префаб LL_FlagPole.et. Он находится в Prefabs/Structures/Military/Flags/FlagPole_02.
Перетащите префаб на территорию порта и назовите получившийся объект Flag1. Тем же способом разместите остальные флаги. В примере их шесть: Flag1–Flag6. Флаги будут показывать ход захвата и принадлежность порта одной из сторон.

Настройки захвата
Заголовок раздела «Настройки захвата»Из LiteLobby → Prefabs → Triggers добавьте LL_Trigger_ZoneCapture.et в слой triggers. Назовите объект PortCapture и выберите компонент LL_TriggerZoneCapture.
| Поле | Значение |
|---|---|
| Zone Entity Name | PortTrigger — имя нарисованной области. |
| Zone Display Name | Порт — название для игроков. |
| Attacker Faction | US — атакующая сторона. |
| Defender Faction | USSR — сторона, которой порт принадлежит в начале. |
| Flag Names | Добавьте через + строки Flag1, Flag2, …, Flag6. |
| Message | Американские войска захватили порт. |

В списке Conditions уже есть две записи LL_TriggerFactionCondition. Укажите для них следующие значения:
| Поле | Первая запись | Вторая запись |
|---|---|---|
| Faction | US | US |
| Operator | GREATER_EQUAL | GREATER_EQUAL |
| Versus Faction | USSR | Пусто |
| Versus Multiplier | 2 | Не используется |
| Versus Number | Не используется | 1 |
Первое условие требует, чтобы американских бойцов в порту было как минимум вдвое больше, чем советских: например, четыре против двух. По второму условию в порту должен находиться хотя бы один американский боец. Без этой проверки первое условие считалось бы выполненным даже в пустом порту.
В поле Hold Seconds укажите 120. Теперь для захвата порта оба условия должны выполняться непрерывно в течение двух минут. Если хотя бы одно из них перестанет выполняться, отсчёт сбросится.

Триггер критических потерь
Заголовок раздела «Триггер критических потерь»Добавьте LL_Trigger_CriticalLoss.et, назовите объект USSRLoss и выберите LL_TriggerCriticalLoss.
- Faction Key —
USSR. - Threshold —
5. - Message —
Советские войска понесли критические потери.
Триггер сработает, когда у советской стороны останется пять живых бойцов или меньше. Поле Threshold задаёт число оставшихся в живых, а не число погибших.

Для американской стороны добавьте второй такой триггер и назовите его USLoss. В поле Faction Key укажите US, а в Threshold — 7. Напишите сообщение о критических потерях американских войск.
В начале проверки живых бойцов в слотах лобби должно быть больше, чем указано в Threshold. Проверьте, что сообщение появляется, когда после потерь их численность снижается до этого порога.
Триггер времени
Заголовок раздела «Триггер времени»Добавьте LL_Trigger_MissionEndTimer.et, назовите его MissionTimer и выберите LL_TriggerMissionEndTimer.
В поле Seconds укажите 4800 — это 80 минут. Отсчёт начнётся после окончания фризтайма. В поле Message введите: Атакующая сторона не успела выполнить задачу в отведённое время.

Триггер превосходства
Заголовок раздела «Триггер превосходства»Добавьте LL_Trigger_Supremacy.et, назовите объект USSRSupremacy и выберите LL_TriggerSupremacy.
- Faction Key —
USSR. - Versus Faction —
US. - Supremacy Ratio —
4. - Message —
Советская сторона получила численное превосходство над американской.
С такими настройками триггер сработает, когда живых советских бойцов будет как минимум вчетверо больше, чем американских: например, 20 против 5.

Чтобы отслеживать превосходство американской стороны, добавьте второй триггер USSupremacy. Поменяйте стороны местами и задайте нужное соотношение численности.
Условия в брифинге
Заголовок раздела «Условия в брифинге»Если включён флажок Show In Briefing, Lite Lobby автоматически формирует описание условия по настройкам триггера. Поэтому вручную добавлять это условие в текст брифинга не требуется.

Брифинг
Заголовок раздела «Брифинг»Из брифинга игроки должны понять, куда идти, что захватить и какие действия запрещены правилами миссии.
Создайте слой descriptions и сделайте его активным. Из LiteLobby → Prefabs → Map перетащите LL_MissionDescription.et в мир. Назовите объект MissionConditions.
В панели Object Properties выберите LL_MissionDescription. В поле Title введите Обстановка и задача. Нажмите … у поля Text Data и в открывшемся окне замените пример своим текстом.

В текст можно добавлять заголовки, разделители и ссылки на объекты карты с помощью простой разметки. В примере ниже ссылка ведёт на область PortTrigger, созданную выше. Если вы используете другой объект, укажите его имя вместо PortTrigger; этот объект уже должен существовать в вашем мире.
<h>Обстановка</h>Порт удерживают советские войска.<hr/><h>Задача США</h>Захватить <link=PortTrigger>порт</link>.<br/>Условия захвата приведены в разделе условий миссии.Текст между <h> и </h> отображается как заголовок. Запись <hr/> добавляет разделитель, а <br/> переносит текст на новую строку. При нажатии на ссылку <link=PortTrigger> карта переместится к объекту с именем PortTrigger.
Если включён флажок Show For Any Faction, текст видят игроки обеих сторон. Чтобы подготовить приказ только для одной стороны, добавьте ещё один LL_MissionDescription.et. Отключите у него этот флажок и укажите US или USSR в Visible For Factions.
Параметр Order определяет порядок записей в брифинге. Записи с меньшим значением отображаются раньше.
Сохраните мир нажатием Ctrl+S. В следующей главе проверим миссию и подготовим её к публикации.