Français Afficher les Markers avec le zoom

  • Auteur de la discussion Auteur de la discussion BastienWolf
  • Date de début Date de début
29/12/19
318
45
61
1 100
25
Bonjour à tous.
Je vous partage un petit script que j'ai réalisé très rapidement la nuit dernière. Ce script vous permet d'afficher les markers seulement si vous zoomez sur la map.
Plutôt pratique quand vous avez beaucoup de markers au même endroit.
Voici un petit exemple :
https://gyazo.com/576b7503b8facdf82bd9ae1671b76c83
Installation du script :
  • Dans votre fichier function.hpp, ajoutez en dessous de file = "dialog\function"; :
    Code:
    Développer Réduire Copier
    class mapZoom {};
  • Dans votre fichier core/fn_setupEVH.sqf , remplacer :
    Code:
    Développer Réduire Copier
    addMissionEventHandler ["Map", {_this call life_fnc_checkMap}]
    par :
    Code:
    Développer Réduire Copier
    addMissionEventHandler ["Map", {_this call life_fnc_checkMap; _this call life_fnc_mapZoom;}];
  • Maintenant, rendez vous dans dialog/function puis créer un fichiez nommé : fn_mapZoom.sqf et insérez ceci à l'intérieur :
    Code:
    Développer Réduire Copier
    params [ ["_mapOpen",false,[false]]
    ];
    
    if (_mapOpen) then {
    uiNamespace getVariable "RscDiary" displayCtrl 51 ctrlAddEventHandler [ "MouseZChanged", {
    params[ "_ctrl" ];
    
    _markerShowMinMax = [ 0.01, 0.1 ]; //select 0 = Min , Select 1 = Max (Entre 0 et 1)
    _zoom = ctrlMapScale _ctrl;
    _show = _zoom > ( _markerShowMinMax select 0 ) && _zoom < ( _markerShowMinMax select 1 );
    
    {
    _x setMarkerAlphaLocal ( parseNumber _show );
    } forEach allMapMarkers;
    
    }];
    };
  • Si vous voulez faire en sorte que cela fonctionne seulement pour certains markers alors faites comme ceci :

    Code:
    Développer Réduire Copier
     params [ ["_mapOpen",false,[false]]
    ];
    _markers = ["Marker_Name1","Marker_name2"]; //Remplacer par vos markeurs
    if (_mapOpen) then {
    uiNamespace getVariable "RscDiary" displayCtrl 51 ctrlAddEventHandler [ "MouseZChanged", {
    params[ "_ctrl" ];
    
    _markerShowMinMax = [ 0.01, 0.1 ]; //select 0 = Min , Select 1 = Max (Entre 0 et 1)
    _zoom = ctrlMapScale _ctrl;
    _show = _zoom > ( _markerShowMinMax select 0 ) && _zoom < ( _markerShowMinMax select 1 );
    
    {
    _x setMarkerAlphaLocal ( parseNumber _show );
    } forEach _markers;
    
    }];
    };

    Et voilà, bon développement à vous.
 
Dernière édition:
Code:
Développer Réduire Copier
 params [ ["_mapOpen",false,[false]]
];
_markers = ["Marker_Name1","Marker_name2"]; //Remplacer par vos markeurs
if (_mapOpen) then {
uiNamespace getVariable "RscDiary" displayCtrl 51 ctrlAddEventHandler [ "MouseZChanged", {
params[ "_ctrl" ];

_markerShowMinMax = [ 0.01, 0.1 ]; //select 0 = Min , Select 1 = Max (Entre 0 et 1)
_zoom = ctrlMapScale _ctrl;
_show = _zoom > ( _markerShowMinMax select 0 ) && _zoom < ( _markerShowMinMax select 1 );

{
_x setMarkerAlphaLocal ( parseNumber _show );
} forEach _markers;

}];
};

Ceci ne fonctionne pas pour moi
 
Code:
Développer Réduire Copier
_markers = ["Marker_Name1","Marker_name2"]; //Remplacer par vos markeurs

Vue que tu l'as collé comme ça, tu as bien modifié le nom de tes markeurs / changé la variable ?
 
Oui tout est ok genre quand je met celui-ci :
Code:
Développer Réduire Copier
params [ ["_mapOpen",false,[false]]
];
if (_mapOpen) then {
uiNamespace getVariable "RscDiary" displayCtrl 51 ctrlAddEventHandler [ "MouseZChanged", {
params[ "_ctrl" ];
_markerShowMinMax = [ 0.01, 0.1 ]; //select 0 = Min , Select 1 = Max (Entre 0 et 1)
_zoom = ctrlMapScale _ctrl;
_show = _zoom > ( _markerShowMinMax select 0 ) && _zoom < ( _markerShowMinMax select 1 );
{
_x setMarkerAlphaLocal ( parseNumber _show );
} forEach allMapMarkers;

}];

};

Mais l'autre non et oui j'ai bien changer le nom des marker la j'ai juste copié coller celui de Bastien
 
C'est bon sa fonctionne finalement j'ai trouvé.
Alors je sais pas pourquoi sa ne fonctionne pas de manière traditionnel mais voici ce que j'ai du faire :

Code:
Développer Réduire Copier
params [ ["_mapOpen",false,[false]]
];

if (_mapOpen) then {
uiNamespace getVariable "RscDiary" displayCtrl 51 ctrlAddEventHandler [ "MouseZChanged", {
params[ "_ctrl" ];

_markerShowMinMax = [ 0.01, 0.1 ]; //select 0 = Min , Select 1 = Max (Entre 0 et 1)
_zoom = ctrlMapScale _ctrl;
_show = _zoom > ( _markerShowMinMax select 0 ) && _zoom < ( _markerShowMinMax select 1 );

{
_x setMarkerAlphaLocal ( parseNumber _show );
} forEach ["Marker_Name1","Marker_name2"]; //Plutôt que les déclarer dans un variable j'ai du les mettre ici directement.

}];
};

Voilà !
 
  • Like
Les réactions: Nirawin
Activité
Pour l'instant, il n'y a personne ici