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

Titre: Bug énervant !!!
Posté 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 !  >:(

@ +  ;)
Titre: Re : Bug énervant !!!
Posté par: NatiVe™ le 22 Décembre 2007, 16:21:40
Utilise

for (new i=0 ; i<MAX_PLAYERS ; i++)
{

NV.

Titre: Re : Bug énervant !!!
Posté par: MultiGamers le 22 Décembre 2007, 16:22:37
Je vient de dire pas de boucle!  ::)

EDIT: Vous savez comment faire ?!?  ;)
Titre: Re : Bug énervant !!!
Posté par: UrbanGhetto le 22 Décembre 2007, 22:08:39
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...
Titre: Re : Bug énervant !!!
Posté par: MultiGamers le 22 Décembre 2007, 23:01:43
Arh.. vous comprenez pas...  ::)
Titre: Re : Bug énervant !!!
Posté par: R@f le 22 Décembre 2007, 23:02:59
Pour la boucle c'est obligé, sa ne va jamais marcher si tu la mets pas !

++
R@f
Titre: Re : Bug énervant !!!
Posté par: Syg le 23 Décembre 2007, 02:49:21
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
Titre: Re : Bug énervant !!!
Posté par: UrbanGhetto le 23 Décembre 2007, 10:45:59
Ce Syg alors, Toujours des bonnes idées  :)