GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Nikko™ le 04 Juin 2008, 22:16:18
-
Bonsoir,
Voila jai un ptit bug avec mon serveur. je vous explique.
Jai mi un truc de spawn aléatoire avec
new Float:PlayerSpawns[5][3] = {
{2101.3003,-2609.0527,13.5469},
{368.7010,2529.5010,16.6484},
{1675.6984,1622.0275,10.8203},
{-2372.0303,-1616.0259,493.8817},
{-2260.9221,2332.6301,4.8125}
};
Et ca dans le oneplayerspwan:
new rand = random(sizeof(PlayerSpawns));
SetPlayerPos(playerid, PlayerSpawns[rand][0], PlayerSpawns[rand][1], PlayerSpawns[rand][2]);//
Le probleme cest que quand on meurt, et qu'on est respawner, on crash.
Merci
++
nikko
-
A ton avis, que vaut sizeof (PlayerSpawns) ?
5, 15 ou 15 fois la taille d'un élément de ton tableau ?
Bon, je te donne la réponse : c'est 15 (5x3 qui est le nombre d'éléments de ton tableau).
Le sizeof marche bien avec un chaine (ou un tableau à 1 dimension) mais pas avec les tableau multidimensionnels.
Quand tu fais random (15), tu obtiens un nombre compris entre 0 et 14. Donc tu as 2 chances sur trois pour obtenir un nombre supérieur à 4 et que tu tombes en dehors de ton tableau (et que ton serveur crash).
Pour corriger ton erreur, remplace sizeof (PlayerSpawns) par 5 dans random ().
++
Syg
-
Pas compri ou je devait changer
new rand = random(5); ??
++
nikko
-
Ben oui, tu n'as qu'un seul random () dans ton script donc c'est celui là.
++
Syg
-
Ok, cest changer, jesper qu'il n'y aura plus de bug et j'esper que ca vien de la :)
Merci syyyyg :)
++
nikko