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

Titre: Crash avec spawn
Posté 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
Titre: Re : Crash avec spawn
Posté par: Syg le 04 Juin 2008, 22:32:10
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



Titre: Re : Crash avec spawn
Posté par: Nikko™ le 04 Juin 2008, 22:33:40
Pas compri ou je devait changer
new rand = random(5); ??

++
nikko
Titre: Re : Crash avec spawn
Posté par: Syg le 04 Juin 2008, 22:36:32
Ben oui, tu n'as qu'un seul random () dans ton script donc c'est celui là.

++
Syg
Titre: Re : Crash avec spawn
Posté par: Nikko™ le 04 Juin 2008, 22:37:30
Ok, cest changer, jesper qu'il n'y aura plus de bug et j'esper que ca vien de la :)
Merci syyyyg  :)

++
nikko