Здравствуйте.
В оригинальном интерфейсе сверху справа есть кнопка изменения отображения "спутниковых" снимков карты.
При её переключении карта переводится в режим отображения объектов на карте (без "спутниковых" текстур).
Как сделать тоже самое, при использовании "собственной" карты созданной с помощью RscMapControl ?
Пример миссии:
Код работающий, но с отображением классической карты со слоем "спутника", а он не нужен (спойлер не нашел):
ALTMAP_Markers = ["Marker_0","Marker_1"]; ALTMAP_ShowMarkerIfNear = { Params ["_control", "_xPos", "_yPos"]; private _MarkerDir = uiNamespace getVariable ["ALTMAP_MarkerDir", 0]; private _MarkerAdd = uiNamespace getVariable ["ALTMAP_MarkerAdd", +1]; private _MarkerSize = uiNamespace getVariable ["ALTMAP_MarkerSize", 2.0]; private _MarkerResz = uiNamespace getVariable ["ALTMAP_MarkerResize", -0.02]; private _posMarkers = []; {_posMarkers set [count _posMarkers, getMarkerPos _x];} forEach ALTMAP_Markers; if (_MarkerDir < 2) then {_MarkerAdd = +1;}; if (_MarkerDir > 358) then {_MarkerAdd = -1;}; if (_MarkerSize < 1.2) then {_MarkerResz = +0.02;}; if (_MarkerSize > 1.8) then {_MarkerResz = -0.02;}; _MarkerDir = _MarkerDir + _MarkerAdd; _MarkerSize = _MarkerSize + _MarkerResz; uiNamespace setVariable ["ALTMAP_MarkerDir", _MarkerDir]; uiNamespace setVariable ["ALTMAP_MarkerAdd", _MarkerAdd]; uiNamespace setVariable ["ALTMAP_MarkerSize", _MarkerSize]; uiNamespace setVariable ["ALTMAP_MarkerResize", _MarkerResz]; private _tmpScreenToWorld = _control ctrlMapScreenToWorld [_xPos, _yPos]; private _nearestMarkerPos = [_posMarkers,_tmpScreenToWorld] call BIS_fnc_nearestPosition; private _tmpMarker = "ALTMAP_PathTo"; if ((_nearestMarkerPos distance _tmpScreenToWorld)<25) then { if ((str (getMarkerPos _tmpMarker)) == "[0,0,0]") then { _tmpMarker = createMarkerLocal ["ALTMAP_PathTo", _nearestMarkerPos]; playSound "Click"; }; _tmpMarker = "ALTMAP_PathTo"; _tmpMarker setMarkerPosLocal _nearestMarkerPos; _tmpMarker setMarkerTypeLocal "selector_selectedMission"; _tmpMarker setMarkerColorLocal "ColorYellow"; _tmpMarker setMarkerTextLocal format ["Jump here!"]; _tmpMarker setMarkerSizeLocal [_MarkerSize,_MarkerSize]; _tmpMarker setMarkerDirLocal _MarkerDir; } else { if (not ((str (getMarkerPos _tmpMarker)) == "[0,0,0]"))then { deleteMarkerLocal _tmpMarker; }; }; true; }; ALTMAP_Click = { Params ["_control", "_button", "_xPos", "_yPos", "_shift", "_ctrl", "_alt"]; private _tmpScreenToWorld = _control ctrlMapScreenToWorld [_xPos, _yPos]; private _posMarkers = []; {_posMarkers set [count _posMarkers, getMarkerPos _x];} forEach ALTMAP_Markers; private _nearestMarkerPos = [_posMarkers,_tmpScreenToWorld] call BIS_fnc_nearestPosition; if ((_nearestMarkerPos distance _tmpScreenToWorld)<25) then { player setPos _tmpScreenToWorld; }; }; ALTMAP_CloseDisplay = { Params ["_control"]; _display = ctrlParent _control; _display CloseDisplay 2; }; OpenAltMAP = { _ATLMAP_Display = findDisplay 46 createDisplay "RscDisplayEmpty"; _ALTMAP_Background = _ATLMAP_Display ctrlCreate["RscText", 8001]; _ALTMAP_Background ctrlSetPosition [safezoneXAbs + 0.01, safezoneY + 0.1, safezoneWAbs - 0.02, safezoneH - 0.2]; _ALTMAP_Background ctrlSetBackgroundColor [0.03,0.03,0.09,0.345]; _ALTMAP_Background ctrlSetTextColor [0.99,0.99,0.99,1]; _ALTMAP_Background ctrlCommit 0; uiNamespace setVariable ["_ALTMAP_Background",_ALTMAP_Background]; _ALTMAP_CloseButton = _ATLMAP_Display ctrlCreate["RscButton", 8002]; _ALTMAP_CloseButton ctrlSetPosition [safezoneWAbs - abs(safezoneXAbs) - 0.01 - 0.01 - 0.04, safezoneY + 0.12, 0.04, 0.04]; // X1: left border 0.01 + right border 0.01 + button width 0.04 + abs(safezoneWAbs), because safezoneWAbs can be negative value!1 _ALTMAP_CloseButton ctrlSetBackgroundColor [0.9,0.1,0.1,0]; _ALTMAP_CloseButton ctrlSetTextColor [0.99,0.99,0.99,1]; _ALTMAP_CloseButton ctrlSetText " < "; _ALTMAP_CloseButton ctrlAddEventHandler ["MouseButtonClick", "_this call ALTMAP_CloseDisplay"]; _ALTMAP_CloseButton ctrlCommit 0; uiNamespace setVariable ["_ALTMAP_CloseButton",_ALTMAP_CloseButton]; _ALTMAP_MAP = _ATLMAP_Display ctrlCreate ["RscMapControl", 8003]; _ALTMAP_MAP ctrlSetPosition [safezoneXAbs + 0.02, safezoneY + 0.18, safezoneWAbs - 0.04, safezoneH - 0.42]; // Y1:0.1 + 0.04 (button height) + 0.2 (button top) + 0.2 (space); W:0.02 + 0.02 left/right border; H:0.18 from start + 0.2 Display bottom + 0.02 top space + 0.02 space bottom space _ALTMAP_MAP ctrlSetBackgroundColor [0.1,0.1,0.1,1]; _ALTMAP_MAP ctrlSetTextColor [0.99,0.99,0.99,1]; _ALTMAP_MAP ctrlCommit 0; uiNamespace setVariable ["_ALTMAP_MAP",_ALTMAP_MAP]; _ALTMAP_MAP ctrlMapAnimAdd [0.75, 0.045, player]; ctrlMapAnimCommit _ALTMAP_MAP; waitUntil {mapAnimDone}; _ALTMAP_MAP ctrlAddEventHandler ["MouseMoving", "_this call ALTMAP_ShowMarkerIfNear"]; _ALTMAP_MAP ctrlAddEventHandler ["MouseHolding", "_this call ALTMAP_ShowMarkerIfNear"]; _ALTMAP_MAP ctrlAddEventHandler ["MouseButtonClick", "_this call ALTMAP_Click"]; }; player AddAction ["Open Map with animate markers", "_this call OpenAltMAP"];