/admins Befehl funktioniert nicht!

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
  • HeyHoo,


    Ich habe folgenden Befehl gebastelt:

    ocmd:admins(playerid,params[])
    {
    new str[256];
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if(SpielerInfo[i][pAdmin] >= 1 && SpielerInfo[i][pAdmin] <= 1338)
    {
    new admlvl[64];
    if(SpielerInfo[i][pAdmin] == 1)format(admlvl,sizeof(admlvl),"Supporter");
    else if(SpielerInfo[i][pAdmin] == 3)format(admlvl,sizeof(admlvl),"Moderator");
    else if(SpielerInfo[i][pAdmin] == 1335)format(admlvl,sizeof(admlvl),"Admin");
    else if(SpielerInfo[i][pAdmin] == 1337)format(admlvl,sizeof(admlvl),"Lead-Admin");
    else if(SpielerInfo[i][pAdmin] == 1338)format(admlvl,sizeof(admlvl),"Serverowner");
    format(str,sizeof(str),"- %s{FF0000}(%s){FFFFFF}\n",PlayerName(i),admlvl);
    ShowPlayerDialog(playerid,DIALOG_ADMINS,DIALOG_STYLE_MSGBOX,"{00FF00}Adminteam",str,"Schliessen","");
    }
    }
    }
    return 1;
    }


    Allerdings, wird man selber nicht als Admin dort ausgezählt, obwohl man admin ist!


    bitte um Hilfe!


    lg
    Deagle

  • Ich habe drei mögliche Fehlerquellen gefunden.


    1. Entweder du hast ein Adminlevel welches nicht 1, 3, 1335, 1337 oder 1338 ist.
    2. Du überschreibst mit dieser Zeile:
    format(str,sizeof(str),"- %s{FF0000}(%s){FFFFFF}\n",PlayerName(i),admlvl);

    Den String 'str', weshalb eigentlich nur 1 Admin angezeigt werden kann.
    3. Wenn ich mich in (2) geirrt habe, dann ist eine weitere Fehlermöglichkeit, das du dem Spieler schon den Dialog anzeigst, bevor er überhaupt mit der For-Schleife fertig ist. Also solltest du die ShowPlayerDialog-Zeile außerhalb der For-Schleife aufrufen.