Mitglieder-Liste im Dialog

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. Ich würde gerne eine Mitglieder-Liste erstellen, im Dialog, welche alle Mitglieder einer Fraktion angezeigt, ob offline oder online.
    Dazu habe ich bereits folgenden Befehl:

    CMD:mitglieder(playerid)
    {
    if(Spieler[playerid][pFraktion] < 1)return SendClientMessage(playerid, COLOR_GREY, "Du bist in keiner Fraktion!");
    new query[128], pName[24], level[11], lv, StateStr[16], str2[2048], string[96];
    format(query, sizeof(query), "SELECT `Name`, `Level` FROM `accounts` WHERE `Fraktion` ='%d'", Spieler[playerid][pFraktion]);
    mysql_query(query);
    mysql_store_result();
    while(mysql_fetch_row_format(query))
    {
    mysql_fetch_field_row(pName, "Name");
    mysql_fetch_field_row(level, "Level");
    lv = strval(level);
    if( IsPlayerConnected( GetPlayerIdFromName(pName) ) ) {
    strcat(StateStr, "Online");
    } else {
    strcat(StateStr, "Offline");
    }
    format(string, sizeof(string), "{FFFFFF}(Status: %s, Name: %s, Level: %d, Rank: Kommt noch)", StateStr, pName, lv);
    strcat(str2, string);
    }
    mysql_free_result();
    ShowPlayerDialog(playerid, DIALOG_MEMBERS, DIALOG_STYLE_MSGBOX, "Mitglieder Liste", str2, "Schließen", "");
    return 1;
    }

    Dies klappt bisher auch ganz gut. Ich möchte aber dass ab 20 Einträgen eine zweite Seite erstellt wird, wenn die 20 Einträge erreicht hat eine dritte Seite, usw.
    Und wenn Seite 1 z.B. nicht voll ist, möchte ich nur einen "Abbrechen" Knopf haben. Wenn ich auf der zweiten Seite bin kommt dann nur "Abbrechen" "Weiter"
    Und wenn die zweite Seite nicht voll ist, steht dann ebenfalls nur "Abbrechen" dort im Knopf.
    Ich hoffe ihr könnt helfen, denn jedes bisschen Hilfe kann Wunder bewirken. :)

  • Was du eben machen musst ist eine Variable mitzählen lassen, die den Vorgang bei 20 stoppt und dir den Dialog erstellt. Dabei musst du nun bei dem Dialog in OnDialogResponse die nächsten 20 Mitglieder auslesen und zeigen. Dabei wäre es sinnvoll eine globale Variable mitzählen zu lassen, sodass du alles in einem Dialog handhaben kannst und nicht sehr viele Dialoge erstellen musst. Ein sinnvoller Ansatz wäre hier auch mysql_num_rows() zu verwenden, um zu schauen, wie der Dialog aussehen wird.