Блокировка нужных дверей в зданиях (скрипт)

Иногда есть такая необходимость, как заблокировать дверь или несколько дверей. При этом только в определённом здании, и только некоторые двери.
Это можно сделать вот таким вот образом:

1.) Узнаём номер двери:
1.1) Находим здание и ставим на него модуль из «Окружение» под названием «Edit Terrain Object» ( класснейм ModuleEditTerrainObject_F).
1.2) Нам показывает номера дверей.

1.3) Выбираем одну, или несколько.
1.4) Удаляем модуль «Edit Terrain Object» . Ибо он был нужен только для отображения номеров дверей.

2.) Узнаём класснейм здания:
2.1) Находим в списке предложенных объектов (справа) именно это здание.
2.2) Ставим его → нажимаем нём ПКМ → Занести → Занести классы в буфер обмена.
2.3) Вставляем в код полученный класс (класснейм).
3.) Блокируем дверь:
3.1) Ставим объект «Логика игры» рядом с нужным зданием.
3.2) В неё пишем вот этот код:

Код в чистом виде:

((nearestobjects [this, ["Land_i_House_Big_01_V1_F"], 5]) select 0) setVariable ['bis_disabled_Door_2',1,true];

Код с расшифровкой:

// nearestobjects → Ищем ближайшие объекты
// ["Land_i_House_Big_01_V1_F"] → указываем тип (класснейм) объекта (здания)
// , 5 → указываем радиус действия
// → указываем какую именно дверь надо заблокировать bis_disabled_Door_НОМЕРДВЕРИ((nearestobjects [this, ["Land_i_House_Big_01_V1_F"], 5]) select 0) setVariable ['bis_disabled_Door_2',1,true];

Если это здание поставили вы сами, то он не покажет номер двери (актуально на момент написания статьи), так как не повесится сам модуль на него.
Тогда находим желаемое здание на карте, и смотрим на нём номера дверей. Лучше где-то записать, если планируете часто пользоваться.

!!!ВАЖНО!!!

Если нам нужно заблокировать несколько дверей, например 1,2 и 3, то код будет выглядеть так:

((nearestobjects [this, ["Land_i_House_Big_01_V1_F"], 5]) select 0) setVariable ['bis_disabled_Door_1',1,true];
((nearestobjects [this, ["Land_i_House_Big_01_V1_F"], 5]) select 0) setVariable ['bis_disabled_Door_2',1,true];
((nearestobjects [this, ["Land_i_House_Big_01_V1_F"], 5]) select 0) setVariable ['bis_disabled_Door_3',1,true];
!!!Здания из модов!!!

Не все здания в модах (например CUP) выполнены корректно, а по этой причине данный приём может не сработать. Со зданиями из «ванили» работает всегда.

П.С. — Если вы потом открыли свою миссию, а там нет этой самой «Логика игры» с этим кодом. не пугайтесь, двери будут и дальше оставаться заблокированными, он прописывается самостоятельно в миссию (почему — хз).
При этом надо понимать, что потом вы возможно захотите разблокировать двери — а это я не делал, и никак тут это не описано.

Дополнение:

BIS`ы добавили эту опцию в модуле «Редактировать объекты ландшафта».
Как это выглядит:



Правда, у этого метода есть один недостаток:

Он не работает с теми зданиями, которые вы сами поставили.
Поэтому, пример выше всё ещё актуален и полезен.

Обновление:

В одном из недавних обновлений, разработчики добавили эту функцию ко всем зданиям, которые вы ставите в редакторе сами — теперь двери там закрываются во вкладке «Специальные состояния».

Обсудить этот метод можно в нашем Discord канале