Контроллер окончания сетевой миссии

Материал из F2 RU

Перейти к: навигация, поиск

Содержание

Описание

По некоторым причинам не всегда просто заставить миссию завершиться корректно для всех клиентов и для сервера - не все игроки видят правильный дебрифинг (из файла briefing.html). Контроллер окончания сетевой миссии позволит выполнять окончание миссии на сервере только после того, как она завершится у всех клиентов - это значит, что все игроки увидят корректный дебрифинг.

Требуемые файлы

  • init.sqf
  • f\common\f_mpEndSetup.sqf
  • f\common\f_mpEndReceiver.sqf
  • f\server\f_mpEndBroadcast.sqf

Как использовать

Редактирование вашей миссии

В вашей миссии там, где вы хотите завершить миссию (например, триггер или скрипт), используйте следующий код (myEnd – можете переименовать как хотите, n - номер сценария, который вы хотите вызвать для окончания; возможные значения: 1,2,3,4,5,6):

myEnd = [n] execVM "f\server\f_mpEndBroadcast.sqf";

Учтите, что этот код можно вызвать на любом компьютере, но он будет работать только в том случае (вызывая окончание миссии), если он также запущен на сервере.

Вы можете поместить код выше в поле Активация обычного триггера или в свой скрипт (.sqf файл). Если вы используете триггеры, то вы должны использовать тип Переключить, а не типы Конец #1 / Конец #2 и тд. (потому, что сетевой контроллер окончания автоматически создаёт и использует триггер Конец).

Компонент сначала автоматически проверит, произошло ли окончание на клиентах, а потом на сервере. Ваша миссия завершится корректно на всех компьютерах, показывая правильный дебрифинг для всех игроков (убедитесь, что файл briefing.html содержит текст для всех окончаний, которые вы собираетесь использовать – смотрите раздел шаблон файла брифинга для дальнейшей информации).

Выполнение собственного кода в конце миссии

Если вы хотите использовать этот компонент для выполнения дополнительных задач, например, установки выполненных/проваленных заданий или показа скриптовых заставок, откройте файл f\common\f_mpEndReceiver.sqf и найдите фрагмент кода:

// CLEAN-UP OBJECTIVES & TRIGGER CUT-SCENES ETC.

Если вы просмотрите эту секцию, то увидите отмеченные пропуски:

// Ending #1
case 1:
{
// Place any custom code for ending #1 after this line:
};

Пропущенное место будет для каждого возможного окончания (от 1 до 6). Просто вставьте ваш код в указанное место.

Советы

  • Окончание миссии - это отличное место для выполнения собственного кода изменения статусов заданий.

Как отключить

Откройте файл init.sqf и найдите фрагмент кода:

// F2 - Multiplayer Ending Controller

Отредактируйте строку ниже, добавив символы // в начало:

f_endSelected = -1;
[] execVM "f\common\f_mpEndSetUp.sqf";

Авторы

  • Headspace
  • Rom
  • Fer
Личные инструменты