Si c'est possible mais il n'y a pas de fonction directe pour faire ça.
En fait, il faut jouer sur la couleur du joueur et donc utiliser la fonction SetPlayerColor.
Donc tout d'abord, petit cours sur les couleurs dans SA-MP (et dans la plupart des autres jeux et applications).
Une couleur est définie par 4 composantes :
- La composante Rouge
- La composante Verte
- La composante Bleue
- La composante Alpha (transparence)
Les trois premières composantes donne le triplet RGB (ou RVB en français) qui permet de définir 16 millions de couleurs différentes.
La quatrième composante donne la transparence de la couleur définie par le triplet RGB (cette composante n'est pas souvent utilisée dans les logiciels de dessin).
Dans SA-MP, cette composante n'a aucune incidence sur le chat, le tableau des joueur (touche TAB) ou le nom au dessus du joueur (avec la barre de vie et l'armure) mais elle est utilisée pour afficher le marqueur du joueur sur la carte et sur la mini-carte.
Donc en rendant complètement transparente la couleur d'un admin, son marqueur ne sera pas visible sur la carte (ni sur la mini-carte).
Et pour rendre complément transparente une couleur, il suffit de mettre sa composante Alpha à 0.
Voici un petit bout de code que l'on peut mettre dans une commande (ou ailleurs) et qui fait disparaitre la marqueur du joueur.
new OldColor = GetPlayerColor (playerid);
SetPlayerColor (playerid, OldColor & 0xFFFFFF00);
Hey !!! Encore un exemple d'utilisation de l'opérateur & (ET bit à bit dans ce cas).
Explication :
Une couleur peut être représentée par un nombre en héxadécimal sous la forme suivante : 0xRRGGBBAA (vous avez certainement plein de #define de couleur pour que vous voyez un exemple).
Si on applique le masque 0xFFFFFF00 sur 0xRRGGBBAA, on obtient 0xRRGGBB00.
Car quel que soit le nombre 0xHH, 0xHH & 0xFF = 0xHH et 0xHH & 0x00 = 0x00.
On a bien mis la composante Alpha à 0 donc rendu la couleur complètement transparente.
++
Syg