Spieler in einer Liste anzeigen, nur wie ?

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



    Ich hab mal eine kleine Frage,
    Und zwar wie erstellt man einen Befehl der mehrere Spieler in einer Liste anzeigen lässt, also Beispiel.


    Fraktions Mitglieder:


    - Stinki, Torsten, harald, usw..




    hoffe ihr habt meine Frage verstanden ^^




    Grüße

  • Tralala. Ohne Gewähr:



    new string[1024]; //bzw. die Größe, die du brauchst
    for(new i; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(Var[i] == 5000)format(string, sizeof(string), "%s\nDer Typ heißt %s", string, name);
    }
    ShowPlayerDialog(string...

    Berlin - Tel Aviv - Moskau

  • Es wird ein String erstellt.
    Dann folgt eine Schleife, die alle Spieler durchgeht & überprüft, ob der jeweilige Spieler online ist.
    Wenn nicht, springt die Schleife gleich zum nächsten über.
    Die letzte Abfrage musst du so an das anpassen, was du abfragen möchtest - z.B.: "if(GetPVarInt(i, "AdminLevel") > 0)".
    Folglicherweise würde bei dem Beispiel der momentane String erweitert.
    Das "format" sorgt mit dem ersten "%s" dafür, dass der String nicht komplett neu "gefüllt" wird, sondern an den bisherigen Inhalt
    das "\n" und den Text dahinter hinzufügt ("\n" steht für eine neue Zeile - steht auch irgendwo im Wiki).


    Nach der Schleife fehlt noch ein "ShowPlayerDialog" mit dem formatierten String & das wars schon.
    Im Beispiel würden alle Spieler aufgelistet werden, deren Adminlevel > 0 ist.

    Berlin - Tel Aviv - Moskau

  • Also, es funktioniert soweit eigentlich alles bis auf das der Spieler der eigentlich kein Admin ist, in der "Admin Online" liste angezeigt wird.
    eigentlich sollten dort nur Admins angezeigt werden die auch den Admin Rang besitzen


    Code:


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(!strcmp("/admins", cmdtext, true))
    {
    SendClientMessage(playerid,GRUN,"Admins online:");
    new string[128],name[MAX_PLAYER_NAME],var;
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i) && isPlayerAnAdmin(i,1))
    {
    GetPlayerName(i,name,sizeof(name));
    format(string, sizeof(string), "- Admin %s",SpielerName(i));
    SendClientMessage(playerid,WEIS,string);
    var++;
    }
    }
    if(!var)
    SendClientMessage(playerid,ROT,"Kein Admin Online");

    }
    new string[128];
    format(string,sizeof(string),"{A8BCB5}Der angebende Befehl {B7320E}%s {A8BCB5}Existiert nicht",cmdtext);
    return SendClientMessage(playerid,WEIS,string);
    }




    Grüße