Dialog box zeigt nicht alle admins an die on sind

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
  • Guten abend liebe user ich habe echt kein plan warum der immer nur 2 user oder auch nur ein user in der box anzeigt obwohl 4
    admins online dind könnt ihr mir helfen weil jetzt geht garnix mehr :D


    if (strcmp(cmd, "/admins", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    new adminbox[500];
    if(IsPlayerConnected(i))
    {
    if(PlayerInfo[i][pAdmin] == 1338)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string,sizeof(string),"{0532FA}Co Owner: %s\n",sendername);
    }
    if(PlayerInfo[i][pAdmin] == 1337)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string,sizeof(string),"%s{9005FA}Administrator: %s\n",string, sendername);
    }
    if(PlayerInfo[i][pAdmin] == 4)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string,sizeof(string),"%s{2EFA05}Supporter: %s\n" ,string, sendername);
    }
    if(PlayerInfo[i][pAdmin] == 3)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string,sizeof(string),"%s{2EFA05}Supporter auf Probe: %s\n",string, sendername);
    }
    if(PlayerInfo[i][pAdmin] == 2)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string,sizeof(string),"%s{FA7F05}Moderator: %s\n",string, sendername);
    }
    if(PlayerInfo[i][pAdmin] == 1)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string,sizeof(string),"%s{FA7F05}Moderator auf Probe: %s\n",string, sendername);
    }
    if(PlayerInfo[i][pAdmin] == 1339)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string,sizeof(string),"%s{FA0542}Serverleitung: %s\n",string, sendername);
    }
    ShowPlayerDialog(playerid,DIALOG_ADMINS,DIALOG_STYLE_MSGBOX,"{FCFCFC}Admins die online sind:",adminbox,"Fertig","");
    }
    }
    }
    return 1;
    }

  • Wie immer ohne Gewähr.
    String wird bei jedem User neu erstellt => Jedes mal wieder leer.


    if (strcmp(cmd, "/admins", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    new adminbox[500];
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(PlayerInfo[i][pAdmin] == 1338)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(adminbox,sizeof(adminbox),"{0532FA}Co Owner: %s\n",sendername);
    }
    if(PlayerInfo[i][pAdmin] == 1337)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(adminbox,sizeof(adminbox),"%s{9005FA}Administrator: %s\n",adminbox, sendername);
    }
    if(PlayerInfo[i][pAdmin] == 4)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(adminbox,sizeof(adminbox),"%s{2EFA05}Supporter: %s\n" ,adminbox, sendername);
    }
    if(PlayerInfo[i][pAdmin] == 3)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(adminbox,sizeof(adminbox),"%s{2EFA05}Supporter auf Probe: %s\n",adminbox, sendername);
    }
    if(PlayerInfo[i][pAdmin] == 2)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(adminbox,sizeof(adminbox),"%s{FA7F05}Moderator: %s\n",adminbox, sendername);
    }
    if(PlayerInfo[i][pAdmin] == 1)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(adminbox,sizeof(adminbox),"%s{FA7F05}Moderator auf Probe: %s\n",adminbox, sendername);
    }
    if(PlayerInfo[i][pAdmin] == 1339)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(adminbox,sizeof(adminbox),"%s{FA0542}Serverleitung: %s\n",adminbox, sendername);
    }
    }
    }
    ShowPlayerDialog(playerid,DIALOG_ADMINS,DIALOG_STYLE_MSGBOX,"{FCFCFC}Admins die online sind:",adminbox,"Fertig","");
    }
    return 1;
    }

    Berlin - Tel Aviv - Moskau

  • Also, es ist doch eigentlich recht einfach:
    Schauen wir uns dazu mal diese Zeile an ;)

    if(PlayerInfo[i][pAdmin] == 1338)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(adminbox,sizeof(adminbox),"{0532FA}Co Owner: %s\n",sendername);
    }
    if(PlayerInfo[i][pAdmin] == 1337)


    Bei allen anderen stimmt es übrigens :)
    Hier jedoch, wird der String wieder komplett gecleared und neu beschrieben.
    Setzen wir doch einfach den "alten" String wieder mit ein und fertig ;)



    if(PlayerInfo[i][pAdmin] == 1338)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(adminbox,sizeof(adminbox),"%s{0532FA}Co Owner: %s\n",adminbox,sendername);
    }
    if(PlayerInfo[i][pAdmin] == 1337)


    Haben wir also einen Administrator mit Level 1138, so würde der String (in der alten Version :D ) nur durch den Text mit der Adminzeile ersetzt.
    Warum du es genau hier einmal falsch gemacht, sonst aber überall brav den vorherigen String mit eingefügt hast, ist mir ein Rätsel :huh:



    Hinweis: Keinen Kontakt über TeamViewer oder Skype !
    Grüßt den Fehlerklärbär von mir.
    Coming soon: Pawn-Café ( Concept-Sharing | Scripting-First-Aid )

  • Angenommen er macht:



    new string[512];
    for(new i; i < MAX_PLAYERS; i++)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string,sizeof(string),"%sAdminrang: %s\n",string,sendername);
    }
    ShowPlayerDialog(...,string,..);


    Er nimmt den String "string" um formatiert ihn:
    Leer
    => Supporter: Hans\n
    => Supporter: Hans
    Admin: Klaus\n


    Das \n sorgt ja dafür, dass ein "neues" Listitem "erstellt" wird.

    Berlin - Tel Aviv - Moskau

  • Nein, das tut er nicht ;)
    Wir erstellen ja keine Liste, sondern eine MSG_BOX.
    (Wie auch ersichtlich durch ShowPlayerDialog(..) am Ende des Codes)


    "\n" produziert dabei einen Zeilenumbruch.



    Hinweis: Keinen Kontakt über TeamViewer oder Skype !
    Grüßt den Fehlerklärbär von mir.
    Coming soon: Pawn-Café ( Concept-Sharing | Scripting-First-Aid )

  • also muss ich auch den string zu adminbox umbenennen und dan geht das ? ^^

  • Sorry, stimmt natürlich. (Etwas müde :D )




    Wie auch immer, ist das \n entscheidend, da es wie gesagt einen Zeilenumbruch bewirkt und so wie es jetzt ist, sollte es funktionieren.


    Pawn:


    Ja und das "new adminboc[500];" über direkt nach IsPlayerConnected, bzw. vor der "for"-Schleife verschieben.

    Berlin - Tel Aviv - Moskau

  • Du musst ganz oben den String neu definieren:
    new string[500];
    und danach wie Face schrieb:

    if(PlayerInfo[i][pAdmin] == 1338)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(adminbox,sizeof(adminbox),"%s{0532FA}Co Owner: %s\n",adminbox,sendername);
    }

  • also würde er so alle anzeigen ?


    if(IsPlayerConnected(playerid))
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    new adminbox[500];
    if(IsPlayerConnected(i))
    {
    if(PlayerInfo[i][pAdmin] == 1338)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(adminbox,sizeof(adminbox),"%s{0532FA}Co Owner: %s\n",adminbox,sendername);
    }
    if(PlayerInfo[i][pAdmin] == 1337)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(adminbox,sizeof(adminbox),"%s{0532FA}Admin: %s\n",adminbox,sendername);
    }
    if(PlayerInfo[i][pAdmin] == 4)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(adminbox,sizeof(adminbox),"%s{0532FA}Supporter: %s\n",adminbox,sendername);
    }
    if(PlayerInfo[i][pAdmin] == 3)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(adminbox,sizeof(adminbox),"%s{0532FA}Supporter auf probe: %s\n",adminbox,sendername);
    }
    if(PlayerInfo[i][pAdmin] == 2)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(adminbox,sizeof(adminbox),"%s{0532FA}Moderator: %s\n",adminbox,sendername);
    }
    if(PlayerInfo[i][pAdmin] == 1)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(adminbox,sizeof(adminbox),"%s{0532FA}Moderator auf probe: %s\n",adminbox,sendername);
    }
    if(PlayerInfo[i][pAdmin] == 1339)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(adminbox,sizeof(adminbox),"%s{0532FA}Co Owner: %s\n",adminbox,sendername);
    }
    ShowPlayerDialog(playerid,DIALOG_ADMINS,DIALOG_STYLE_MSGBOX,"{FCFCFC}Admins die online sind:",adminbox,"Fertig","");
    }
    }
    }

  • er zeigt leider immer noch nur ein admin an
    ich will das er alle auflistet die grade da sind und wen keiner da ist soll halt kommen "kein admin da"