А возможно такое чтобы уже готовую карту изменить? К примеру Алтис. Я хочу убрать оттуда все и сделать по своему желанию. Или есть специальные кары для этого в WorkShop?
![Фотография](https://arma3.ru/forums/uploads/profile/photo-33657.jpg?_r=1496473780)
Как удалить стандартные здания.
![](https://arma3.ru/forums/uploads/profile/photo-thumb-4.jpg?_r=1415881959)
Лучший Ответ 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" - название маркеров. Хотя судя по коду можно поставить один маркер на карту и задать размер достаточный чтобы маркер покрыл весь остров.
Перейти к сообщению
![](https://arma3.ru/forums/public/style_images/GreyRed/right_white_10px.png)
#1
OFFLINE
Отправлено 26 May 2017 - 19:56
#2
OFFLINE
Отправлено 01 June 2017 - 07:45 Лучший Ответ
![](https://arma3.ru/forums/uploads/badges/1.png)
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
OFFLINE
Отправлено 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.
#4
OFFLINE
Отправлено 05 June 2020 - 17:16
Я вижу, что тема от 2017 года, но всё-же:
Но это все костыли. Гораздо проще удалить здание через его ID.
Где узнать ID здания ?