GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Nikko™ le 02 Mai 2009, 13:19:31

Titre: Contraction de loop ?
Posté par: Nikko™ le 02 Mai 2009, 13:19:31
Bonjour,

Voila je me suis mit a placé mes vehicule (tant que je le pouvais) dans des loop, cest plus simple a voir et ca gagne de la place ...
Mais par exmple, pour mes vehicules du skate park, j'ai 4 loop (ici 27 vehicules):

for (new i=0 ; i<10 ; i++)
{
   AddStaticVehicle (522, 1910.6034+i*2.0, -1414.9003,13.1412, 3, -1, -1); //
}
for (new i=0 ; i<7 ; i++)
{
   AddStaticVehicle (521, 1864.2863,-1405.0085+i*2.0,13.0617, 270, -1, -1); //
}
for (new i=0 ; i<5 ; i++)
{
   AddStaticVehicle (522, 1826.6686,-1374.8966+i*2.0,13.9859, 270, 0, 0); //
}
for (new i=0 ; i<5 ; i++)
{
   AddStaticVehicle (471, 1816.8929,-1372.6219+i*2.0,14.5602, 270, -1, -1); //
}

Est-il possible de faire en sorte de placer tout dans une seule loop et quand la premiere arrive a 10, ca changer de vehicule et ca change de parametre de placement ?
 
Et 2eme question: Est-il possible de faire un loop lorsqu'on a 4 vehicule positionnés: 2 devant (alignés) et 2 derriere (alignés a ceux de devant) ??

Merci d'avance :)

++
nikko
Titre: Re : Contraction de loop ?
Posté par: S!m le 02 Mai 2009, 15:21:50
Salut,

si tes véhicules sont côtes-à-cotes, il est possible de faire des loop de se genre:

new i;
for ( i=0 ; i<10 ; i++)
{
   AddStaticVehicle (522, 1910.6034+i*2.0, -1414.9003,13.1412, 3, -1, -1); //
}
for ( i=10 ; i<17 ; i++)
{
   AddStaticVehicle (522, 1910.6034+i*2.0, -1414.9003,13.1412, 3, -1, -1); //
}
for ( i=17 ; i<22 ; i++)
{
   AddStaticVehicle (522, 1910.6034+i*2.0, -1414.9003,13.1412, 3, -1, -1); //
}
...

tout faire dans une seule loop t'attirerais plus de problèmes que d'avantages....

Deuxièmement, il est éffectivement possible de placer des véhicules comme tu le désire, en carré si l'on peut dire, il te suffira dès lors de lancer une loop dans la première:

new o;
for (new i=0 ; i<2 ; i++)
{
for ( o=0 ; o<2 ; o++)
{
AddStaticVehicle (522, 1910.6034+i*2.0, -1414.9003+o*2.0,13.1412, 3, -1, -1); //
}
}

++Sim++
Titre: Re : Contraction de loop ?
Posté par: Nikko™ le 02 Mai 2009, 16:10:15
new o;
for (new i=0 ; i<2 ; i++)
{
for ( o=0 ; o<2 ; i++)
{
AddStaticVehicle (522, 1910.6034+i*2.0, -1414.9003+o*2.0,13.1412, 3, -1, -1); //
}
}

Avec celle la ca place 4 vehicules en carré ou 2 vehicules ?

++
nikko
Titre: Re : Contraction de loop ?
Posté par: S!m le 02 Mai 2009, 16:36:22
Salut,

ces loops placent 4 véhicules en carré comme ceci:

¤       ¤

¤       ¤

++Sim++

Titre: Re : Contraction de loop ?
Posté par: Nikko™ le 02 Mai 2009, 16:38:34
on peux savoir dans quel ordre ? Et comment le configurer ? on prend le dernier - le premier ? ou autre ?

Je viens d'avoir un pb avec un loop, les vehicules ne se mettent pas ... c'est etonnant car il est comme les autres ...

++
nikko
Titre: Re : Contraction de loop ?
Posté par: Ssk le 02 Mai 2009, 16:50:46
regarde si les position Z sont assez haute pour quelles puissent tomber sur la route et sinon montre nous tes boucle ( ou loop ) pour voir
Titre: Re : Contraction de loop ?
Posté par: Nikko™ le 02 Mai 2009, 19:36:26
Ce qui est bizar, cest que dans ces deux loop (voir dessous) un seul vehicule apparait a la bonne place ... les 20 ou 30 autre marche a la perfection ...

for (new i=0 ; i<5 ; i++) // Quad
{
   AddStaticVehicle (471,-1107.0942,-1676.3724*i-2,75.8552,268.8448, -1, -1); //
}
for (new i=0 ; i<7 ; i++) // Sanchez
{
   AddStaticVehicle (468,-1106.0966*i-2,-1641.9479,76.0363,179.1158,0,0); //
}

++
nikko
Titre: Re : Contraction de loop ?
Posté par: Syg le 03 Mai 2009, 01:36:07
Regarde bien cette ligne (prise dans ton premier post).
AddStaticVehicle (522, 1910.6034+i*2.0, -1414.9003,13.1412, 3, -1, -1);
C'est une ligne d'une boucle qui place les véhicules correctement.

Maintenant regarde bien celle-ci (prise dans ton dernier post) :
AddStaticVehicle (471,-1107.0942,-1676.3724*i-2,75.8552,268.8448, -1, -1);

Compare les parties que j'ai mise en gras, l'erreur devrait te sauter aux yeux.

Si tu ne vois toujours pas, j'ai mis ci-dessous les deux parties précitées alignées correctement :
 1910.6034+i*2.0
-1676.3724*i-2

Maintenant, si tu ne vois toujours pas ...

++
Syg
Titre: Re : Contraction de loop ?
Posté par: Nikko™ le 03 Mai 2009, 11:00:46
Salut syg,

Merci, je m'en suis apercu apres mon post et j'ai oublier d'éditer.
C'est sur qu'au bout du 25eme loop .. ca fatigue les neurones .. ^^

Pour le double loop, quand je l'installe sur mon serv, le serv refuse de s'allumer, d'ou ca peut venir ?

Double loop:
new o;
for (new i=0 ; i<2 ; i++)
{
for ( o=0 ; o<2 ; i++)
{
AddStaticVehicle (522, 1910.6034+i*2.0, -1414.9003+o*2.0,13.1412, 3, -1, -1); //
}
}

Merci

++
nikko
Titre: Re : Re : Contraction de loop ?
Posté par: S!m le 03 Mai 2009, 16:40:06
salut nikko,

new o;
for (new i=0 ; i<2 ; i++)
{
for ( o=0 ; o<2 ; i++)
{
AddStaticVehicle (522, 1910.6034+i*2.0, -1414.9003+o*2.0,13.1412, 3, -1, -1); //
}
}


si tu regarde ton code, tu verra que tu incrémente le i plutôt que le o dans la seconde loop

++Sim++
Titre: Re : Contraction de loop ?
Posté par: Nikko™ le 03 Mai 2009, 17:22:36
Mais d'ou viens le probleme que le serveur ne se lance pas ?

++
nikko
Titre: Re : Contraction de loop ?
Posté par: S!m le 03 Mai 2009, 18:38:42
Salut,

Je dirais plutôt que ta loop s'exécute à l'infini puisque tu n'atteindra jamais la fin (ton o est toujours plus petit que 2, donc ton serveur calcule et calcule sans arrêts...

PS. j'ai corrigé le post qui contenait cette erreur, désolé

++Sim++
Titre: Re : Contraction de loop ?
Posté par: Nikko™ le 03 Mai 2009, 18:43:33
Ah oui je n'avais pas vu ...
Je testerai ca dans le courant de la soirée.

++
nikko