Fehler|/admins - Befehl buggt

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
  • Hallo, liebe com ich habe das Problem das bei meinem /admins immer nur 1 Admin angezeigt wird. :(


    Wie kann ich das ändern?


    if (strcmp("/admins", cmdtext, true) == 0)
    {
    new sendername[MAX_PLAYER_NAME+1];
    new string[190];
    SendClientMessage(playerid,COLOR_GREEN," ");
    SendClientMessage(playerid,COLOR_GREEN,"Hinweis: {FFFFFF}Das Adminlevel von Spielern wird als Score angezeigt!");
    if(IsPlayerConnected(playerid))
    {
    SendClientMessage(playerid, NGR, "~> {FF0000}Admins {FFFFFF}und {00A500}Supporter{FFFFFF}:");
    for(new i; i < GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i) && i != INVALID_PLAYER_ID)
    {
    new klmtext[50];
    if(Aduty[i] == 1) { klmtext = "Im Dienst"; }
    else{ klmtext = "Nicht im Dienst"; }
    if(sSpieler[i][Adminlevel] == 1)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string,sizeof(string),"Supporter: %s[%d] [%s]",sendername,i,klmtext);
    SendClientMessage(playerid, COLOR_GREY, string);
    }
    if(sSpieler[i][Adminlevel] == 2)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string,sizeof(string),"Probe-Moderator: %s[%d] [%s]",sendername,i,klmtext);
    SendClientMessage(playerid, COLOR_GREY, string);
    }
    if(sSpieler[i][Adminlevel] == 3)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string,sizeof(string),"Moderator: %s[%d] [%s]",sendername,i,klmtext);
    SendClientMessage(playerid, COLOR_GREY, string);
    }
    if(sSpieler[i][Adminlevel] == 4)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string,sizeof(string),"Super-Moderator: %s[%d] [%s]",sendername,i,klmtext);
    SendClientMessage(playerid, COLOR_GREY, string);
    }
    if(sSpieler[i][Adminlevel] == 5)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string,sizeof(string),"Administrator: %s[%d] [%s]",sendername,i,klmtext);
    SendClientMessage(playerid, COLOR_GREY, string);
    }
    if(sSpieler[i][Adminlevel] == 6)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string,sizeof(string),"Full Admin: %s[%d] [%s]",sendername,i,klmtext);
    SendClientMessage(playerid, COLOR_GREY, string);
    }
    if(sSpieler[i][Adminlevel] == 7)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string,sizeof(string),"Head-Admin: %s[%d] [%s]",sendername,i,klmtext);
    SendClientMessage(playerid, COLOR_GREY, string);
    }
    if(sSpieler[i][Adminlevel] == 8)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string,sizeof(string),"Serverleitung: %s[%d] [%s]",sendername,i,klmtext);
    SendClientMessage(playerid, COLOR_GREY, string);
    }
    return 1;
    }
    }
    }
    //return 1;
    }



    Danke im Voraus :)


  • Also beim 2 . und die anderen immer


    else if


  • Also beim 2 . und die anderen immer


    else if

    Mal abgesehen davon das man einiges an dem Befehl besser machen könnte ist die nicht verwendung von else if nicht das Problem sondern das return 1; in der schleife welches
    des code danach abbrechen lässt wie die schleife an sich auch.


    Zu dem ist die verwendung von switch und case schneller als else if und funktionieren nach dem selben prinzip das sollte eine Bedingung stimmen das die weiteren nicht
    zusätzlichen noch abgefragt werden.

  • öhm die beste variante ist aber


    if(adminlevel == wert)
    else if(adminlevel == wert) und so weiter?!


    nein ist sie nicht wenn du meinen text lesen würdest


    switch(adminlevel){
    case 1:
    case 2:
    ....
    }


    wäre die schnellste Möglichkeit und die Beste.


    Jedoch hat dies nix mit dem hier geschilderten Problem zutun

  • Dass return 1; muss weg und das auskommentierte muss aus dem kommentar raus.
    Denn soweit ich weiß beendet das return 1; die schleife weil 1 admin gefunden wurde und somit kein weiterer gesucht wird.

    >> sPa.M << go, go,Bann me, Bann me