Deine Lösunger ist totaler Schrott,firestormZ.
Wieso fügst du ein Callback unter OnPlayerStateChange ein und noch zusätzlich eine Funktion ? Das klappt nicht.
ZitatBei einem printf kommt:
Auto Id: 0
Auto Id: 1
Auto Id: 2
Auto Id: 3
Und das obwohl es bis jetzt nur 3 Autos sind!
Deine Auswertung der Daten ist falsch. So wirst du niemals richtige Daten erhalten.
Vom Prinzip her ist die for-Schleife unnötig und du müsstest lediglich in der while-Schleife den Index für die Fahrzeuge ( z.B. i ) erhöhen.
for(new i = 0; i <= MAX_CARS; i++) { // Wir machen also MAX_CARS's mal alles hier drunter
while(mysql_fetch_row_format(data, "|")) { // Eine While Schleife durch ALLE Ergebnisse die wir durch store_result() haben.
sscanf(data, "p<|>iffffii", CarInfo[i][ModelId], CarInfo[i][Car_PosX], CarInfo[i][Car_PosY],CarInfo[i][Car_PosZ],CarInfo[i][Car_PosA],CarInfo[i][CarColor1],CarInfo[i][CarColor2]);
norm_car[i] = CreateVehicle(CarInfo[i][ModelId], CarInfo[i][Car_PosX], CarInfo[i][Car_PosY], CarInfo[i][Car_PosZ],CarInfo[i][Car_PosA],CarInfo[i][CarColor1],CarInfo[i][CarColor2],5);
}
printf("%d",i); // <-- i wird erst im NÄCHSTEN Schleifen Durchgang erhöht. Da haben wir aber keine weiteren Ergebnisse mehr in store_result(), da wir alle durch die while-Schleife ausgelesen haben
}
while(mysql_fetch_row_format(data, "|")) { // Eine While Schleife durch ALLE Ergebnisse die wir durch store_result() haben.
sscanf(data, "p<|>iffffii", CarInfo[i][ModelId], CarInfo[i][Car_PosX], CarInfo[i][Car_PosY],CarInfo[i][Car_PosZ],CarInfo[i][Car_PosA],CarInfo[i][CarColor1],CarInfo[i][CarColor2]);
norm_car[i] = CreateVehicle(CarInfo[i][ModelId], CarInfo[i][Car_PosX], CarInfo[i][Car_PosY], CarInfo[i][Car_PosZ],CarInfo[i][Car_PosA],CarInfo[i][CarColor1],CarInfo[i][CarColor2],5);
}
printf("%d",i); // <-- i wird erst im NÄCHSTEN Schleifen Durchgang erhöht. Da haben wir aber keine weiteren Ergebnisse mehr in store_result(), da wir alle durch die while-Schleife ausgelesen haben
}