Перейти к содержимому


Фотография

Как удалить стандартные здания.


Лучший Ответ HarryWorner , 01 June 2017 - 07:45

removeMapObjects.sqf

_markerArray = _this select 0;

{
_terrainobjects = nearestTerrainObjects [(getMarkerPos _x),[],(getMarkerSize _x)select 0];
{hideObjectGlobal _x} forEach _terrainobjects;
}forEach _markerArray;

init.sqf:

_removeObjects = compile loadFile "removeMapObjects.sqf";
_null = [["mark1","mark2","mark3","mark4","mark5","mark6"]] call _removeObjects;

"mark1","mark2","mark3","mark4","mark5","mark6" - название маркеров. Хотя судя по коду можно поставить один маркер на карту и задать размер достаточный чтобы маркер покрыл весь остров.

 

источник

Перейти к сообщению


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 OFFLINE   WorLDSine

WorLDSine

    Рядовой

  • Пользователи
  • 5 сообщений
  • Откуда:Россия,Республика Татарстан,Набережные Челны.

Отправлено 26 May 2017 - 19:56

А возможно такое чтобы уже готовую карту изменить? К примеру Алтис. Я хочу убрать оттуда все и сделать по своему желанию. Или есть специальные кары для этого в WorkShop?


  • 0

#2 OFFLINE   HarryWorner

HarryWorner

    Лейтенант

  • Модераторы
  • 1035 сообщений

Отправлено 01 June 2017 - 07:45   Лучший Ответ

removeMapObjects.sqf

_markerArray = _this select 0;

{
_terrainobjects = nearestTerrainObjects [(getMarkerPos _x),[],(getMarkerSize _x)select 0];
{hideObjectGlobal _x} forEach _terrainobjects;
}forEach _markerArray;

init.sqf:

_removeObjects = compile loadFile "removeMapObjects.sqf";
_null = [["mark1","mark2","mark3","mark4","mark5","mark6"]] call _removeObjects;

"mark1","mark2","mark3","mark4","mark5","mark6" - название маркеров. Хотя судя по коду можно поставить один маркер на карту и задать размер достаточный чтобы маркер покрыл весь остров.

 

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание


  • 0

#3 OFFLINE   Kartaviy

Kartaviy

    Рядовой

  • Пользователи
  • 25 сообщений

Отправлено 02 June 2017 - 13:07

Есть проблема,  если ты в той области поставишь новое здание, то при выполнении удаления здания через маркер, удалится и твой новый объект. Тогда нужно прописывать условие в новые объект. Но это гемор. Достаточно просто создать файл:

{  
    if (str _x find ": " > -1) then { 
		if (_x getVariable ["DelThis", true]) then 
        {_x hideobjectglobal true;};
    };  
} forEach nearestObjects [(getmarkerpos "3"), [], 100]

где - 3 это название маркера

В объект, который не должен трогать скрипт, прописать

this setVariable ["DelThis", false];

Но это все костыли. Гораздо проще удалить здание через его ID.


  • 0

#4 OFFLINE   dreamforce

dreamforce

    Рядовой

  • Пользователи
  • 3 сообщений
  • Откуда:Крайний Север

Отправлено 05 June 2020 - 17:16

Я вижу, что тема от 2017 года, но всё-же:

Но это все костыли. Гораздо проще удалить здание через его ID.

Где узнать ID здания ?


  • 0




Яндекс.Метрика