GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: MultiGamers le 03 Septembre 2007, 22:46:49
-
Bonjour, J'aimerait savoir comment mettre un SetTimer en ALL (Pour tout le monde sur le serveur..).
Merci d'avance et passer une bonne journer ! :D
Ordixp ;)
-
Bonjour !
Pourquoi tu veut mettre un Timer?
-
bien pour un truc ;) moi je demande comment mettre pour tous (en all) ;)
-
Ben en fait, c'est simple, tu appelles le fonction SetTimer et Ho !!, magie, il est pour tout le monde.
Juste pour dire qu'un timer n'est pas lié à un joueur et qu'il est forcément pour tout le monde.
Après ça depend de ce que tu fais dans le fonction du timer.
++
Syg
-
Bien ou que j'ai mis le SetTimer bien il y a une boucle... (Donc il faut mettre le i) Sinon il ne démare pas... ;)
EDIT: J'atend toujours une réponse de votre part... ;)
-
Je n'ai pas compris ce que tu veux dire.
La fonction SetTimer n'admet que trois paramètres qui sont le nom de la fonction à appeler (entre quotes ""), la durée avant l'appel à la fonction ci-avant et un indicateur de répétition (true=on répète l'appel à la fonction, false=on appelle la fonction qu'une seule fois).
Je ne vois pas ce que viens faire le i là dedans. A moins que ce ne soit une variable de la fonction du timer.
Essaies d'expliquer mieux ton problème ou de poster la partie de ton script qui te pose problème (dans le pastebin (http://pastebin.gtaonline.fr/pastebin.php)).
++
Syg
-
je peut pas mettre une boucle car sinon le Timer ne souvra pas apres 2minute... ::) ;)
-
Où est-ce que tu ne peux pas mettre de boucle, dans le timer, autour de l'appel à SetTimer ?
Et deux minutes, ça correspond à quoi, la durée de ton timer ?
Si tu fais pas l'effort d'expliquer mieux, on ne pourra pas t'aider correctement.
Donc essaies d'expliquer ton problème clairement et n'aies pas peur d'écrire plusieurs lignes.
Et si c'est parce que tu ne veux pas dévoiler ce que tu veux faire avec ton Timer de peur que l'on te piques ton idée et bien .... je ne sais pas, inventes.
++
Syg
-
Ouais je voulait pas trop parler vue que s'est chiant de parler sur sa PSP... ::) Bon retournons au script.. :D
public Originalcheckpoint(playerid) {
for(new i=0; i<MAX_PLAYERS; i++)
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;
}
J'ai fait cela mais cela ne fonctionne pas... :'( J'atend vos réponse ;)
-
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
-
Euh met cela ne va pas faire pour tout le monde ? car sinon sa va le faire pour tout le monde et status du checkpoint sera pas bien atribuer (la mauvaise...) ;)