GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: MultiGamers le 22 Décembre 2007, 16:20:05
-
Bonjour,
voila après plusieurs mois d'arache pied ! Je demande votre aide ! :D
if(PlayerToPoint(10.0,playerid, Float:Xflic, Float:Yflic, Float:Zflic))
{
if(gTeam[playerid] == TEAM_DEFENCE)
{
DisablePlayerCheckpoint(playerid);
PutPlayerInVehicle(playerid,gvID,2);
GameTextForPlayer(playerid, "Busted!", 3000, 5);
TogglePlayerControllable(playerid,0);
}
Je ne veut pas faire une boucle pour sa car sinon sa marchera pas...
Car cette ligne: if(gTeam[playerid] == TEAM_DEFENCE) le playerid il faut qui reste comme cela ! :(
J'aimerait que sa (Le code) démare pour tout le monde sans faire une boucle ! Merci d'avance ! >:(
@ + ;)
-
Utilise
for (new i=0 ; i<MAX_PLAYERS ; i++)
{
NV.
-
Je vient de dire pas de boucle! ::)
EDIT: Vous savez comment faire ?!? ;)
-
Premièrement, On va créer une nouvelle variable tout en haut de ton script (Désactivée):
new IsPlayerDefence[MAX_PLAYERS]=0;
Ensuite, Dans OnPlayerSpawn, Dans la case de la team défense, Nous allons activer la variable :
IsPlayerDefence[MAX_PLAYERS]=1;
Enfin, Dans ton code, Tu suprimme tout le if de la team défense et tu mets notre variable à la place ET tu rajoute la boucle :
if(PlayerToPoint(10.0,playerid, Float:Xflic, Float:Yflic, Float:Zflic)){
for(new i = 0; i < MAX_PLAYERS; i ++) {
if(IsPlayerConnected(i)) {
if (IsPlayerDefence[i]==1) {
DisablePlayerCheckpoint(playerid);
PutPlayerInVehicle(playerid,gvID,2);
GameTextForPlayer(playerid, "Busted!", 3000, 5);
TogglePlayerControllable(playerid,0);
}
}
}
}
C'est à peut pres tout...
-
Arh.. vous comprenez pas... ::)
-
Pour la boucle c'est obligé, sa ne va jamais marcher si tu la mets pas !
++
R@f
-
Tu as qu'à démarré un timer pour chaque joueur de la team défense avec SetTimerEx.
Ca évite d'exécuter le code pour tous les autres joueurs qui sont dans les autres teams.
++
Syg
-
Ce Syg alors, Toujours des bonnes idées :)