namen per zufall aus .txt datei lesen

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • 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

    Mein Selfmade:

    1.Haussytem [99/100%]
    2.Handysystem [95/100%]
    3.Payday [95/100%]
    4.Autosystem [100/100%]
    5. kleinigkeiten, wo ich noch bugs habe^^ [75/100%]
    Wer mir helfen möchte und vorallem Lust oder Zeit hat, darf sich natürlich bei mir melden. :D


    >> ¡Einfach PN an mich! <<

    Marco

  • 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;
    }

    3 Mal editiert, zuletzt von Meta ()

  • 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?

    Mein Selfmade:

    1.Haussytem [99/100%]
    2.Handysystem [95/100%]
    3.Payday [95/100%]
    4.Autosystem [100/100%]
    5. kleinigkeiten, wo ich noch bugs habe^^ [75/100%]
    Wer mir helfen möchte und vorallem Lust oder Zeit hat, darf sich natürlich bei mir melden. :D


    >> ¡Einfach PN an mich! <<

    Marco

  • 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);
    }