Du weist der Variable den Wert nicht zu.
if(dialogid == DIALOG_GUTSCHEIN) // Gutscheinsystem
{
if(response)
{
if(listitem == 0) // Namenschange
{
new rand = random(999998)+1;
for(new g = 0; g <MAX_GUTSCHEINE; g++)
{
if(Gutschein[g][gCode] == 0)
{
Gutschein[g][gCode] = rand;
break;
}
}
format(string, sizeof(string), "Du hast ein Gutschen für eine Namensänderung gekauft - der Gutscheincode ist: %d", rand);
SendClientMessage(playerid, COLOR_YELLOW, string);
SendClientMessage(playerid, COLOR_WHITE, "Wichtig: Schreibe dir diesen Code auf, falls du ihn an einen Spieler weiter geben möchtest.");
format(string, sizeof(string), "INSERT INTO `gutscheine` (`gOwner`, `gCode`, `gUsed`, `gAktion`) VALUES ('%s', '%d', '0', '1')", SpielerName(playerid), rand);
self_mysql_query(string);
}
}
}
Dann geht es.
ABER:
Mit INSERT INTO musst du aufpassen. Wenn du einen Gutschein wieder löschst, und du AUTO_INCREMENT eingestellt hast, dann stimmen die g's (Index) nicht mehr mit der ID in der Datenbank überein.
Es wäre sinnvoller, 500 Zeilen in der Tabelle anzulegen (manuell, das geht ja über die SQL-Eingabe) und dann mit UPDATE zu arbeiten.