Français Afficher sa position sur la carte quand on a un GPS (ou pas)

  • Auteur de la discussion Auteur de la discussion Zomblard
  • Date de début Date de début

Zomblard

User
11/6/20
194
9
19
800
Merci à Maxence pour m'avoir aidé a faire ceci.

Item GPS nécessaire :

Rendez-vous dans : Mission.map\core\civilian
Éditez le fichier fn_civMarkers.sqf
Ajoutez en dessous de
Code:
_members = units (group player);
Ceci :
Code:
if ("ItemGPS" in (assignedItems player)) then {
    _marker = createMarkerLocal ["moi_marker",(visiblePosition player)];
    _marker setMarkerTextLocal "Moi"; // modifier ici le texte
    _marker setMarkerTypeLocal "mil_dot"; // modifier ici le marker
    _marker setMarkerColorLocal "ColorCivilian"; // modifier ici la couleur
    _markers pushBack [_marker,player];
};

Item GPS non-obligatoire :
Rendez-vous dans : Mission.map\core\civilian
Éditez le fichier fn_civMarkers.sqf
Ajoutez en dessous de
Code:
_members = units (group player);
Ceci :
Code:
_marker = createMarkerLocal ["moi_marker",(visiblePosition player)];
_marker setMarkerTextLocal "Moi"; // modifier ici le texte
_marker setMarkerTypeLocal "mil_dot"; // modifier ici le marker
_marker setMarkerColorLocal "ColorCivilian"; // modifier ici la couleur
_markers pushBack [_marker,player];

Voilà
 
Dernière édition par un modérateur:
C'est cool comme ajout mais maintenant faut éviter les createMarker qui finissent par de vilaines boucles.
Cette fonctionne est plus adéquate et bien moins gourmande pour le coup.
Si sa t'intéresse tu peux apprendre le fonctionnement et en faire un tuto :)
 
C'est cool comme ajout mais maintenant faut éviter les createMarker qui finissent par de vilaines boucles.
Cette fonctionne est plus adéquate et bien moins gourmande pour le coup.
Si sa t'intéresse tu peux apprendre le fonctionnement et en faire un tuto :)
Ca c'est une très bonne idée (mieux qu'une boucle effectivement)
 
Bonjour,

Merci pour le tuto ça à fait une bonne partie de ce que je voulais. Par contre, il y a un soucis, les gendarmes qui ont un gps voient leur collègue qui n'en ont pas. Un peu dérangeant dans le fait que si un gendarme se fait enlever il sera toujours visible pour ses collègues.

Une seconde, chose, les membres d'un même groupe ne se voient pas sur la map. Avez-vous une idée ?

Salutations.
 
Bonjour,

Merci pour le tuto ça à fait une bonne partie de ce que je voulais. Par contre, il y a un soucis, les gendarmes qui ont un gps voient leur collègue qui n'en ont pas. Un peu dérangeant dans le fait que si un gendarme se fait enlever il sera toujours visible pour ses collègues.

Une seconde, chose, les membres d'un même groupe ne se voient pas sur la map. Avez-vous une idée ?

Salutations.
Ce sont tes réglages de difficultés ou de script, rien a voir avec ce script :)
 
Normalement ça devrait être bon j'ai ça comme configuration en custom, mais ça n'a pas régler le problème.


Code:
    class CustomDifficulty
    {
        class Options
        {
            reducedDamage=0;
            groupIndicators=0;
            friendlyTags=0;
            enemyTags=0;
            detectedMines=0;
            commands=2;
            waypoints=2;
            tacticalPing=1;
            weaponInfo=2;
            stanceIndicator=0;
            staminaBar=1;
            weaponCrosshair=1;
            visionAid=0;
            thirdPersonView=1;
            cameraShake=1;
            scoreTable=0;
            deathMessages=0;
            vonID=0;
            mapContent=0;
            mapContentFriendly=1;
            mapContentEnemy=0;
            mapContentMines=0;
            autoReport=0;
            multipleSaves=1;
        };
    };
 
En fait, c'est comme ça dans la mission de base et ça n'a pas de rapport avec ce tuto. Pour le changer, dans ton fn_copMarkers.sqf, remplace :
Code:
if !(_x isEqualTo player) then {
par :
Code:
if (!(_x isEqualTo player) && ("ItemGPS" in (assignedItems player)) && ("ItemGPS" in (assignedItems _x))) then {
 
En fait, c'est comme ça dans la mission de base et ça n'a pas de rapport avec ce tuto. Pour le changer, dans ton fn_copMarkers.sqf, remplace :
Code:
if !(_x isEqualTo player) then {
par :
Code:
if (!(_x isEqualTo player) && ("ItemGPS" in (assignedItems player)) && ("ItemGPS" in (assignedItems _x))) then {

Je teste ça dans la soirée et je te redis. Merci.
 
J'ai testé et les gendarmes ne se voient plus sur la carte. Si un gendarmes supprime son gps il est quand même vu par ses collègue.

J'ai cette configuration actuellement. Tu vois une erreur ?


Code:
private ["_markers","_cops"];
_markers = [];
_cops = [];

sleep 0.5;
if (visibleMap) then {
    {if (side _x isEqualTo west) then {_cops pushBack _x;}} forEach playableUnits; //Fetch list of cops / blufor

    //Create markers
    {
        if (!(_x isEqualTo player) && ("ItemGPS" in (assignedItems player)) && ("ItemGPS" in (assignedItems _x))) then {
            _marker = createMarkerLocal [format ["%1_marker",_x],visiblePosition _x];
            _marker setMarkerColorLocal "ColorBLUFOR";
            _marker setMarkerTypeLocal "Mil_dot";
            _marker setMarkerTextLocal format ["%1", _x getVariable ["realname",name _x]];

            _markers pushBack [_marker,_x];
        };
    } forEach _cops;

    while {visibleMap} do {
        {
            private ["_unit"];
            _unit = _x select 1;
            if (!isNil "_unit" && !isNull _unit) then {
                (_x select 0) setMarkerPosLocal (visiblePosition _unit);
            };
        } forEach _markers;
        if (!visibleMap) exitWith {};
        sleep 0.02;
    };

    {deleteMarkerLocal (_x select 0);} forEach _markers;
    _markers = [];
    _cops = [];
};
 
ça me semble bon pourtant
Tu avais un GPS sur toi également ?

Je viens de refaire le tutoriel et ça à l'air bon. Hormis le fait que le gendarme ne se voit pas sur la map mais pas très dérangeant. En tout cas merci encore t'es un chef !
 
Eh bien pour ça tu as juste à suivre le tutoriel au dessus et d'ajouter les lignes qui te sont dites dans le fn_copMarkers, en dessous de :
Code:
{if (side _x isEqualTo west) then {_cops pushBack _x;}} forEach playableUnits;
au lieu de :
Code:
_members = units (group player);