So, ich weiß nicht ob es funktioniert aber so sollte es nie doppelte Nummern geben (Ungetestet):
stock GiveNummer(playerid)
{
new nummer = 10000 + random ( 89999 ) ;
if(IsValidNumber(nummer))
{
AddNummer(nummer);
//Hier dem Spieler die Nummer zuweisen. z.B. PlayerInfo[playerid][pNumber] = nummer;
return 1;
}
else return GiveNummer(playerid);
}
stock IsValidNumber(nummer1)
{
new nummer[5];
format(nummer,5,"%d",nummer1);
new File: file = fopen("Nummern.txt", io_read);
if (file)
{
new nrr[5];
while (fread(file, nrr))
{
StripNewLine(nrr);
if (!strcmp(nrr, nummer, true, strlen(nummer)))
{
fclose(file);
return false;
}
}
}
fclose(file);
return true;
}
stock StripNewLine(string[])
{
new len = strlen(string);
if (string[0]==0) return ;
if ((string[len - 1] == '\n') || (string[len - 1] == '\r')) {
string[len - 1] = 0;
if (string[0]==0) return ;
if ((string[len - 2] == '\n') || (string[len - 2] == '\r')) string[len - 2] = 0;
}
}
stock AddNummer(nummer)
{
new string[9];
new File:hFile;
format(string, 9, "%d\r\n",nummer);
hFile = fopen("Nummern.txt", io_append);
fwrite(hFile, string);
fclose(hFile);
return 1;
}