Hallo Community,
ich habe folgendes Problem und bitte um Hilfe,
Eine Funktion berechnet eine Zufällige zahl von autos, und parkt die zufällig auf parkplätzen aber mitten in einer whileschleife wird abgebrochen.
printf("\n\n\n\n\n\nStart");
rnd = random(sizeof RandomCarPositions);//Zufällige Anzahl autos
new ZiviAuto;
new bool:fehler;
new Parkplatz;
new belegt[sizeof RandomCarPositions];
printf("Anzahl Autos: %d",rnd);
for(new i = 0;i < rnd; i++)
{
do{
ZiviAuto = random(sizeof ZiviCars);//Zufällige Carid
Parkplatz = random(sizeof RandomCarPositions); //Zufälliger Parkplatz
printf("Schleifen durchlauf %d",i);
fehler = false;
printf("Start Sekundärschleife");
for(new y = 0; y < i;y++)//Alle schon erstellten autos
{
printf("Prüfzahl %d",y);
if(Parkplatz == belegt[y])//ist ein Parkplatz schon belegt?
{
fehler = true;//dann nochmal von do{
printf("fehler: %d %d",Parkplatz, belegt[y]);
break;
}
}
printf("SekundärSchleife Fertig %d",fehler);
}while(fehler);//laut debug funktioniert das
printf("debug"); //´diser print wird unten nicht aufgelistet den print hab ich später eingefügt, dieser wird allerdings IMMER angezeigt
//ab hier crasht es MANCHMAL ich kann aber auch nicht erkennen,
//Dass ich auf ein undefiniertes Arryelement zugreif
printf("%d %f %f %f %f",ZiviCars[ZiviAuto],RandomCarPositions[Parkplatz][car_x],RandomCarPositions[Parkplatz][car_y],RandomCarPositions[Parkplatz][car_z],RandomCarPositions[rnd2][car_a]);//1030
CreateVehicle(ZiviCars[ZiviAuto],RandomCarPositions[Parkplatz][car_x],RandomCarPositions[Parkplatz][car_y],RandomCarPositions[Parkplatz][car_z],RandomCarPositions[rnd2][car_a] + random(2) * 180,random(128),random(128),-1);
printf("Auto %d Erstellt",i);
belegt[i] = Parkplatz;//der belegte parkplatz kann nicht wieder verwendet werden
}
printf("PrimärSchleife Fertig!");
}
Der Compiler Printet Folgendes
Start
[16:59:46] Anzahl Autos: 0
[16:59:46] PrimärSchleife Fertig!
[16:59:57]
Soweit stimmt das wird ja keins erstellt
ABER es wird auch folgendes geprintet
[17:01:19]Start
[17:01:19] Anzahl Autos: 4
[17:01:19] Schleifen durchlauf 0
[17:01:19] Start Sekundärschleife
[17:01:19] SekundärSchleife Fertig 0
Hier crasht die Funktion oft nicht immer aber immer öfter
//EDIT:
In Ganz wenigen fällen funktioniert alles dann sehen die Prints so aus:
[17:05:31]Start
[17:05:31] Anzahl Autos: 3
[17:05:31] Schleifen durchlauf 0
[17:05:31] Start Sekundärschleife
[17:05:31] SekundärSchleife Fertig 0
[17:05:31] 400 2792.743164 -1875.301513 9.555800 179.667602
[17:05:31] Auto 0 Erstellt
[17:05:31] Schleifen durchlauf 1
[17:05:31] Start Sekundärschleife
[17:05:31] Prüfzahl 0
[17:05:31] SekundärSchleife Fertig 0
[17:05:31] 401 2782.895751 -1875.850585 9.516599 179.667602
[17:05:31] Auto 1 Erstellt
[17:05:31] Schleifen durchlauf 2
[17:05:31] Start Sekundärschleife
[17:05:31] Prüfzahl 0
[17:05:31] Prüfzahl 1
[17:05:31] SekundärSchleife Fertig 0
[17:05:31] 405 2797.901611 -1876.006103 9.575400 179.667602
[17:05:31] Auto 2 Erstellt
[17:05:31] PrimärSchleife Fertig!
//EDIT: Weiterer Debug eingefügt und fehler eingeschränkt
//EDIT: Überschrift verbessert
//EDIT: Zeile Markiert