/afklist wird nur 1 spielr angezeigt

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 Morgen Breadfish ich habe ein problem mit dem afk system es gibt den befehl /afklist dort sollen alle spieler angezeigt werden die afk sind aber es werden immer nur 1 spieler angezeigt an was liegt das?



    if(!strcmp(cmdtext, "/afklist", true))
    {
    new count = 0, stri[1024], pName[MAX_PLAYER_NAME];
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(GetPlayerName(i, pName,sizeof(pName)))
    {
    if(SpielerIstAFK == true)
    {
    format(stri, sizeof(stri), "%s[%d]{99EE22}%s\n", stri, i, pName);
    count++;
    }
    }
    if(count == 0)
    {
    SendClientMessage(playerid, COLOR_GRAU, "Niemand befindet sich im AFK-Modus!");
    }else ShowPlayerDialog(playerid,DIALOG_AFKLIST,DIALOG_STYLE_LIST,"Folgende Spieler befinden sich im AFK-Modus:",stri,"Schließen","");
    return 1;
    }
    }
    return 0;
    }

  • if(!strcmp(cmdtext, "/afklist", true))
    {
    new count = 0, stri[1024], pName[MAX_PLAYER_NAME];
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(GetPlayerName(i, pName,sizeof(pName)))
    {
    if(SpielerIstAFK == true)
    {
    format(stri, sizeof(stri), "%s[%d]{99EE22}%s\n", stri, i, pName);
    count++;
    }
    }
    if(count == 0)
    {
    SendClientMessage(playerid, COLOR_GRAU, "Niemand befindet sich im AFK-Modus!");
    }else ShowPlayerDialog(playerid,DIALOG_AFKLIST,DIALOG_STYLE_LIST,"Folgende Spieler befinden sich im AFK-Modus:",stri,"Schließen","");
    return 1;
    }
    }
    return 0;
    }]
    Hav ich mal für duch gemacht weil LW

  • oO wieso fragst du den Namen ohne einen Vergleichswert ab?
    if(GetPlayerName(i, pName,sizeof(pName)))[
    {
    streichen
    und dafür beiif(SpielerIstAFK == true)
    {
    GetPlayerName(i, pName,sizeof(pName))
    format(stri, sizeof(stri), "%s[%d]{99EE22}%s\n", stri, i, pName);
    count++;

    Mit freundlichen Grüßen
    Developer
    Go/Python Developer | ehm. Webdeveloper | Fachinformatiker Anwendungsentwicklung
    Arbeitet in einem cloudigen Umfeld bei einem der größten deutschen Rechenzentrumsbetreibern


  • new IsAFK[MAX_PLAYERS];
    // Du solltest bei dem AFK-Befehl o.ä noch die Variable ändern... Sprich hinter der
    // Variable noch ein "[playerid]" anhängen.


    if(!strcmp(cmdtext, "/afklist", true)){
    new str[1024], bool:isOnline, pName[MAX_PLAYER_NAME], str2[64];
    new i;
    for(;i<MAX_PLAYERS;i++){
    if(IsPlayerConnected(i)){
    if(IsAFK[playerid] == true){
    format(str2, sizeof(str2), "Name: %s - ID: %d", GetName(i), i);
    strcat(str, str2);
    isOnline = true;
    }
    }
    }
    if(!isOnline)return SendClientMessage(playerid, COLOR_GREY, "Niemand ist Away from Keyboard.");
    ShowPlayerDialog(playerid, DIALOG_AFK, DIALOG_STYLE_MSGBOX, "AFK-Liste", str, "Schließen", "");
    }


    //Edit
    Funktion "GetName()" hinzugefügt.

    stock GetName(p){
    new n[24];
    GetPlayerName(p, n, 24);
    return n;
    }

  • for(;i<MAX_PLAYERS;i++)



    also wenn dann poste dein command bitte ohne fehler


    for(;i<MAX_PLAYERS;i++)


    zu


    for(new i; i<MAX_PLAYERS;i++) oder wenigstens das ; weg das hat dort nix zu suchen
    und dir fehlt der Zeilenbruch \n in der formatierung des strings


    und ich geh mal davon aus das du dazu deine eigene Function geschrieben hast GetName(i)
    jedoch fehlt trotzdem(i
    GetPlayerName(i, pName, sizeof(pName));


    //edit mir ist auch noch was aufgefallen wenn du new IsAFK[MAX_PLAYERS]; schon als bool verwendest solltest du das auch dementsprechend
    auch definieren also new bool:IsAFK[MAX_PLAYERS]; sonst gibts ein warning