Автоматическое устранение трупов

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

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

Содержание

Описание

Для уменьшения торможения в больших миссиях используется известный приём - устранение трупов с поля боя. Это можно сделать, добавив обработчик события для каждого юнита: если юнит убит, запускается скрипт, который выполняет паузу на определённое время, а потом удаляет тело.

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

  • init.sqf
  • f\common\f_setLocalVars.sqf
  • f\common\f_addRemoveBodyEH.sqf
  • f\common\f_removeBody.sqf

Как активировать

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

// F2 - Automatic Body Removal

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

// f_removeBodyDelay = 180;
// f_doNotRemoveBodies = [];
// [] execVM "f\common\f_addRemoveBodyEH.sqf";

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

Настройки по умолчанию

Этот компонент настроен таким образом, чтобы удалять все мёртвые тела по истечению 180 секунд (3 минуты) после смерти юнита.

Изменение задержки

Для изменения времени задержки, откройте файл init.sqf и найдите фрагмент кода:

// BAS f - Automatic Body Remover

Отредактируйте следующую строку, изменив значение f_removeBodyDelay на желаемое количество секунд::

f_removeBodyDelay = 180;

Исключение указанных групп

Так как снаряжение на мёртвом теле удаляется, возможно, вы захотите отключить эту функцию для некоторых групп солдат (например, групп игроков). Для исключения группы, откройте файл init.sqf и найдите фрагмент кода:

// BAS f - Automatic Body Remover

Отредактируйте следующую строку, изменив значение f_doNotRemoveBodies с [] на желаемые имена групп для исключения.

f_doNotRemoveBodies = [];

Например, для исключения группы GrpUSMC_1Plt_Charlie, измените строку на:

f_doNotRemoveBodies = [GrpUSMC_1Plt_Charlie];

Для исключения более одной группы, используйте запятые:

f_doNotRemoveBodies = [GrpUSMC_1Plt_Charlie,GrpUSMC_1Plt_C1,GrpUSMC_1Plt_C2,GrpUSMC_1Plt_C3];

Советы

  • Важное ограничение этого компонента заключается в невозможности автоматического добавления обработчика события для юнитов, созданных динамически во время миссии (например, если вы используете скрипт для динамической генерации врагов или гражданских). Но вы можете установить обработчик для всех динамически созданных юнитов, вставив следующий код в их поле Инициализация:
this addEventHandler ["killed", {_this execVM "f\common\f_removeBody.sqf"}];

Авторы

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