Voir, sur la map, la position de tous les joueurs ainsi que leur direction de déplacement.
Parcourir tous les slots de la mission et pour chaque slot :
Le marqueur est local est propre à chaque joueur.
Donnez un nom avec le même préfixe à tous les slots de votre map. Par ex
Dans cet exemple le préfixe est soldat .
(Remarquez le nom du soldat “soldat1”)
Créé autant de soldat que vous avez besoin pour votre mission et pour chaque soldat, changez le nom avec votre préfixe plus le numéro d'ordre.
Le script est appelé par un déclencheur que vous avez posé, dans l'éditeur, sur la carte.
Attention à bien entrer dans le champs “Condition” :
local player
(Cela permettra au déclencheur de se lancer au bon moment.)
Attention aussi de bien saisir la ligne d'appel du script dans le champs “Sur act.” :
void = [3,"soldat"] execVM "show_players_markers.sqf";
(Cette ligne appellera le script)
Enregistrer le code dans un fichier nommé par exemple “show_players_markers.sqf”
/*################################################################## Etape d'initialisation ##################################################################*/ _nb_slot = 3; // Nb de slots fixé par defaut _slot_name = "soldat"; // Nom des slots par défaut _arr_markers = []; // Tableau qui contiendra les marqueurs /*#################################################################*/ /*################################################################## Récupération et traitement des parametres ##################################################################*/ // Si le parametre 1 (nb de slot) est envoyé if( (count _this) >0 )then { // On fixe le nb de slot avec le parametre passé à la fonction _nb_slot = _this select 0; }; // Si le parametre 2 (Nom des slots) est envoyé if( (count _this) >1 ) then { // On fixe le nom des slots avec le parametre passé à la fonction _slot_name = _this select 1; }; /*#################################################################*/ /*################################################################## Etape de creation des marqueurs ##################################################################*/ // Boucle sur le nombre de slot de la mission for "_i" from 1 to _nb_slot do { // On Créé un marquer local _marker = createMarkerLocal [ format["Marker_Slot#%1",_i],[0,0] ]; // On ajoute ce marqueur au tableau des marqueurs _arr_markers = _arr_markers + [ _marker ]; // Marqueur de type fleche _marker setMarkerTypeLocal "Arrow"; // Marqueur de couleur jaune _marker setMarkerColorLocal "ColorGreen"; // Marquer de petite taille _marker setMarkerSizeLocal [0.5, 0.5]; }; /*#################################################################*/ /*################################################################## Etape d'affichage des marqueurs ##################################################################*/ // Boucle sans fin _les_poules_auront_des_dents = false; while { ! (_les_poules_auront_des_dents) } do { // Boucle sur le nombre de slot de la mission for "_i" from 1 to _nb_slot do { // Creation de la variable représentant le joueur _joueur = [] call compile format ["%1%2",_slot_name,_i]; // On ressort du tableau des marqueurs celui qui correspond au joueur _marker = _arr_markers select (_i - 1); // Si le joueur est toujours vivant if ( ! isnil ("_joueur") )then { if( alive _joueur ) then { // On reposition son marquer en fonction de la position du joueur sur la map _marker setmarkerposlocal ( getpos (vehicle _joueur) ); // On oriente son marquer (fleche) en fonction de la direction du joueur sur la map _marker setmarkerdirlocal ( getdir (vehicle _joueur) ); // Attribution du nom du joueur au marqueur _marker setmarkertextlocal format ["%1", ( name _joueur ) ]; } else { // On depla provisoirement le marquer dans une zone non-visible pour le masquer _marker setmarkerposlocal [0,0]; }; }; }; sleep 1; // On laisse le neurone de notre PC se reposer un peu (mais pas trop, il pourrait en prendre l'habitude). }; /*#################################################################*/