Dans ton bout de script, tu n'utilise jamais la variable i.
Est-ce que c'est pas plutôt ça que tu voulais écrire :
public Originalcheckpoint()
{
for(new j=0; j<MAX_PLAYERS; j++)
if (IsPlayerConnected (j))
if(gTeam[j] == TEAM_DEFENCE)
{
gPlayerCheckpointStatus[j] = CHECKPOINT_PLANE;
SetPlayerCheckpoint(j,-2169.7300,-2394.4500,30.4700,10.0);
}
else if(gTeam[j] == TEAM_ATTACK)
{
gPlayerCheckpointStatus[j] = CHECKPOINT_AREA51;
SetPlayerCheckpoint(j,-2169.7300,-2394.4500,30.4700,10.0);
}
return 1;
} Note : J'ai mis j au lieu de i sinon ça faisait la balise pour l'italique.
Il suffit maintenant d'appeler cette fonction une seule fois pour que tous les joueurs connectés aient un checkpoint en fonction de leur team.
Mais il serait plus judicieux de faire une fonction pour un seul joueur qui serait appeler au moment du spawn par exemple (OnPlayerSpawn) :
public Originalcheckpoint(playerid)
{
if(gTeam[playerid] == TEAM_DEFENCE)
{
gPlayerCheckpointStatus[playerid] = CHECKPOINT_PLANE;
SetPlayerCheckpoint(playerid,-2169.7300,-2394.4500,30.4700,10.0);
}
else if(gTeam[playerid] == TEAM_ATTACK)
{
gPlayerCheckpointStatus[playerid] = CHECKPOINT_AREA51;
SetPlayerCheckpoint(playerid,-2169.7300,-2394.4500,30.4700,10.0);
}
return 1;
}
En plus, ça éviterait un timer.
Dernière remarque, les coordonnées de tes deux checkpoints sont les mêmes. Mais ça je te laisse corriger.
++
Syg