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
-
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
-
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++
-
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
-
Salut,
ces loops placent 4 véhicules en carré comme ceci:
¤ ¤
¤ ¤
++Sim++
-
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
-
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
-
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
-
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
-
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
-
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++
-
Mais d'ou viens le probleme que le serveur ne se lance pas ?
++
nikko
-
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++
-
Ah oui je n'avais pas vu ...
Je testerai ca dans le courant de la soirée.
++
nikko