hey,
also ich wollte fragen, wie und w ich es machen, das ein spieler, wenn er /test eingibt, aus einer datei mit spielernamen einen zufallig zieht?
Danke schonmal im vorraus
LG
hey,
also ich wollte fragen, wie und w ich es machen, das ein spieler, wenn er /test eingibt, aus einer datei mit spielernamen einen zufallig zieht?
Danke schonmal im vorraus
LG
Ist die Anzahl der Namen in der Datei bekannt?
#define ANZAHL_DER_NAMEN 20
stock GetName()
{
new File:test = fopen("deine_datei.txt",io_read);
new name[MAX_PLAYER_NAME], i , rand = random( ANZAHL_DER_NAMEN );
while(fread(test,name) && i != ANZAHL_DER_NAMEN)
{
if(i == rand)return name;
i++;
}
name = "Keiner";
return name;
}
nicht die beste lösung
Verbesserte Version von Haxler's Funktion. Hier werden die Namen automatisch gezählt.stock GetName()
{
new File:test = fopen("deine_datei.txt",io_read);
if(test)
{
new name[MAX_PLAYER_NAME], count[2];
while(fread(test,name))
{
if(strcmp(name, '\0', true) && strcmp(name, '\n', true))
{
count[0]++; // Zählt die Namen
}
}
fseek(test, 0);
new foo = random(count[0]);
while(fread(test,name))
{
if(count[1] == foo)
{
strdel(name, strlen(name)-1, strlen(name));
return name;
}
count[1]++;
}
}
name = "Keiner";
return name;
}
Meta du hast das random vergessen
Ach ja
Habs editiert.
Mhm... Danke aber iwie bekomme ich es jetzt nicht hin, das eine .txt dateiberstellt wird, sobald der spieler level 2 ist... Habt ihr ne idee?
if(IrgendwasMitDemDuCheckstDassDerGeradeLevel2ErreichtHat)
{
new string[MAX_PLAYER_NAME+10], playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
format(string, sizeof(string), "%s_namen.ini", playername);
new File: foo = fopen(string, io_write);
fwrite(foo, "Horst\nPeter\nAlfred\nMeta\nDMA\nOsama\nPeter_Griffin\nDeineMudder\nCreeper");
fclose(foo);
}