Sobald man ein Fahrzeug bestellt, soll dieses in die Datenbank eingetragen werden.
Trucker sollen dann Einsicht in diese Einträge haben (InGame) und aus dieser Einsicht wählen können (List-Dialog).
Dafür ist es aber egal, ob der Index AUTO INCREMENT hat oder nicht. Wenn du die Datenbank-ID in eine Variable speicherst, auf die der Index verweist
db_ID[listitem]
dann funktioniert es auch mit einem AUTO INCREMENT.
Eine wesentlich einfachere Möglichkeit wäre es, das ganze über eine Datei zu lösen. Dann brauchst du die neuen Fahrzeuge nur mit io_append hinten anfügen und die erledigten Fahrzeuge löschst du aus der Datei, die anderen Zeilen rücken logischerweise nach, wenn du eine Zeile löschst. Somit hast du das Problem gar nicht mehr.
Falls du trotzdem das System gerne mit MySQL machen willst, dann sieht das so aus:
new string[256],str[256],seller,model,reward,id,i;
mysql_query("SELECT * FROM `Ordereddealercars`");
mysql_store_result();
while(mysql_fetch_row_format(string))
{
sscanf(string,"p<|>iddd",id,seller,model,reward);
db_ID[i] = id;
format(str,sizeof str,"%s{00FF00}%s {FFFFFF}für {00FF00}%s{FFFFFF}€\n",str,PlayerVehicle[model-400],inspoints(reward));
i++;
}
mysql_free_result();
if(strlen(str) > 0)
{
ShowPlayerDialog(playerid,DLG_TRUCKER_CARIMPORT,DIALOG_STYLE_LIST,"Fahrzeugbestellungen",str,"Auswählen","Abbrechen");
}
else
{
SendClientMessage(playerid,COLOR_LIGHTRED,"Es gibt zur Zeit keine Fahrzeugbestellungen!");
}
Und beim Select:
format(query, sizeof(query), "SELECT `Seller`, `Model`, `Reward` FROM `Ordereddealercars` WHERE `ID` = '%d'", db_ID[listitem]);
mysql_query(query);
ebenso beim löschen des Datensatzes:
format(query, sizeof(query), "DELETE * FROM `Ordereddealercars` WHERE `ID` = '%d'", db_ID[listitem]);
mysql_query(query);
Nicht vergessen die
new db_ID[MAX_FAHRZEUGE];
zu erstellen.
Außerdem solltest du, sobald ein Spieler ein Fahrzeug ausgewählt hat, für alle die den Dialog mit den ganzen Autos offen haben, den Dialog neu anzeigen, da es sonst vorkommen kann, dass zwei Spieler den gleichen Index auswählen. Oder du fängst das ab, wenn der Datensatz nicht mehr existiert, dass dann eine Fehlermeldung kommt.