Salut,
ta solution, spiirou,est très dangereuse.
La fonction GetMaxPlayer est disponible seulement dans les fonctions. En remplaçant ainsi une constante par une fonction, tu amène ce problème:
new mavariable[MAX_PLAYERS];
plus aucune déclaration de ce genre ne sera fonctionnelle...
La solution idéale c'est de modifier la valeur de MAX_PLAYERS à la main avec la méthode de Gilux et dans les boucles comportant plus d'une instruction utiliser un IsPlayerConnected vaut la peine.
Exemple:
for(new i = 0; i < MAX_PLAYERS; i++)
{
SendClientMessage(i, COLOR_GREEN, "Bravo, tu as reçu ce message!");
}
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
SetPlayerInterior(i, 1);
SetPlayerVirtualWorld(i, i);//tous des vw différents
SetPlayerPos(i, 1982.321, 1243.3213, 1005.31);
}
}
Voila, la raison: la plupart des fonctions font en elle-même le test pour vérifier si le joueur est connecté, ça évite des problèmes pour les scripteurs inattentifs, donc lancer une fonction sur tous les joueurs même ceux qui ne sont pas connectés ne pose aucun problème.
Toutefois, dans le second cas, si le joueur n'est pas connecté, 3 fonctions sont appelées inutilement. L'ajout du test IsPlayerConnected permet donc de réduire ce nombre à 1 dans ces cas.
Cordialement,
++Sim++