C'est normal
Tu as utilisé un FOR(oChiffre = 1; oChiffre < 43; oChiffre++)
cela veut dire que une fois qu'il clickera sur un portail, il passera par tous les portails les uns apres les autres dans l'ordre de oChiffre, cad wp 1, wp 2, wp 3...wp 42, wp 43
pauvre testeur j'imagine etre teleporté 43 x ca doit pas etre la joie ^^
a la place du for (que tu vas enlever tout de suite !! ^^)
met plutot :
object oPC=GetLastUsedBy(); object oStart; int oChiffre;
void main() { oChiffre = Random(43); while((oStart = GetObjectByTag("WP_LAB_"+ IntToString(oChiffre))) != OBJECT_INVALID) { AssignCommand(oPC,ActionJumpToObject(oStart)); oChiffre = Random(43); } } }
Le random(43) va generer un entier aleatoire entre 0 et 43, si tu n'as pas de waypoint 0, ca peut faire planter mais c geré par le test
("WP_LAB_"+ IntToString(oChiffre))) != OBJECT_INVALID)
Mais toi tu l'utilisais avec un IF, cad que si jamais le waypoint n'etait pas valide, alors il ne serait pas teleporté, mais tu veux qu'il soit teleporté a un autre endroit si le waypoint initial n'etait pas valide.
Donc au lieu d'un if, tu utilise un while qui va refaire un nombre aleatoire puis retester si ce coup ci le waypoint est valide et relancer la procedure jusqu'a ce qu'il trouve un waypoint valide.
Normalement, ca ne devrait pas foirer
|