Tu crées un tableau de cette forme :
new TeamJoueur[MAX_PLAYERS] = {0};Ceci va créer un tableau d'une case, et d'un nombre de lignes égal au nombre maximum de joueurs. Pour attribuer une team à un joueur, tu feras :
TeamJoueur[playerid] = TEAM_BALLAS;Ce n'est qu'un exemple, et tu peux utiliser des chiffres plutôt que des directives de préprocesseur (dans mon exemple, ça requiert un
#define TEAM_BALLAS 1 en haut de ton script, et pour les autres teams, tu modifie le
1 en
2, puis
3...).
Enfin, pour la vérification de l'équipe...
if(TeamJoueur[playerid] == TEAM_BALLAS) { ... }C'est aussi simple que ça.
Sinon, une autre technique (dont je ne suis plus très sûr, vérifies sur le wiki que les fonctions existent) consiste à utiliser
SetPlayerTeam(playerid, teamid) et
GetPlayerTeam(playerid). Tu évites ainsi de consommer de la mémoire avec un tableau. Les tirs alliés seront impossibles avec cette technique.
EDIT - Après vérification, cette seconde technique fonctionne. Je ne me souvenais plus de si les fonctions étaient présentes nativement sous SA:MP ou non. Voici les liens vers le wiki :
Enfin, pour un meilleur fonctionnement en interne du serveur, tu peux utiliser
SetTeamCount, dans la
callback OnGameModeInit(). C'est recommandé, mais pas obligatoire.