[MySQL plugin R34] Memberliste Offline Spieler anzeigen lassen

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 Brotfische,


    Ich würde gerne in meinem Clan-System auch Offline Spieler in der Mitgliederliste anzeigen lassen, dazu muss ja die Datenbank durchlaufen also loopen (Spielerlliste).


    Mein Problem: Er zeigt nur einen Member an, also er geht die Liste nicht durch und ich weis nicht wie ich das machen soll.


    Mein Code:


    COMMAND:cmember(playerid,params[])
    {
    if(SpielerInfo[playerid][NoCommand] == 1) return SendClientMessage(playerid,COLOR_GREY,"Du kann jetzt keinen Befehl ausführen!");
    if(SpielerInfo[playerid][eingeloggt] == 0) return SendClientMessage(playerid,COLOR_GREY,"Du bist nicht eingeloggt!");
    if(SpielerInfo[playerid][clan] == 0) return SendClientMessage(playerid,COLOR_GREY,"Du bist in keinem Clan!");
    new querya[128];
    format(querya, sizeof(querya), "SELECT * FROM `user` WHERE `clanname` = '%s'", SpielerInfo[playerid][clanname]);
    mysql_function_query(dbhandle, querya, true,"OnClanMemberCheck", "i", playerid);
    return 1;
    }
    public OnClanMemberCheck(playerid)
    {
    new string[MAX_PLAYER_NAME * 10],uid[24];
    new num_rows,num_fields;
    cache_get_data(num_rows,num_fields,dbhandle);
    if(num_rows==0)
    {
    SendClientMessage(playerid,COLOR_GREY,"Dein Clan hat keine Mitglieder!");
    return 1;
    }
    else
    {
    cache_get_row(0,1,uid);
    format ( string , sizeof string , "%s\n{BEBEBE}(Name:%s)" , string , uid);
    ShowPlayerDialog(playerid,DIALOG_CMEMBER,DIALOG_STYLE_MSGBOX,"Clan Mitglieder",string, "Ok", "");
    }
    return 1;
    }

  • @Homez


    Danke für die Rückmelden, aber was soll das bringen? Es funktioniert ja auch, jetzt weis ich nur nicht wie ich die Datenbank durch laufen lasse und überprüfe wer welche (user = in meinem clan sind) und anschließend in der Mitgliederliste auftauchen.

  • Du brauchst eine Schleife. Min = 0, Max = NumRows.
    Und dann von jedem Spieler den Namen in den string "strcat"en.


    Sieht so aus:



    for(new i=0;i<num_rows;i++)
    {
    cache_get_row(i,1,uid);
    new pName[50];
    format ( pName , sizeof pName , "{BEBEBE}(Name:%s)\n" , uid);
    strcat(string,pName);
    }
    ShowPlayerDialog(playerid,DIALOG_CMEMBER,DIALOG_STYLE_MSGBOX,"Clan Mitglieder",string, "Ok", "");


    Allerdings wird dein string bald an seine Grenzen kommen. Du musst die Länge vergrößern.

  • Habe dir das eben gemacht:
    public OnClanMemberCheck(playerid)
    {
    new count = 0,rows,fields,string[MAX_PLAYER_NAME*10],result[MAX_PLAYER_NAME];
    cache_get_data(rows,fields,dbhandle);
    if(rows)
    {
    while(count<rows)
    {
    cache_get_field_content(count,"HIER NAME DER SPALTE DIE AUSGELESEN WERDEN SOLL",result);
    format(string,sizeof(string),"%s\n{BEBEBE}(Name:%s)",string,result);
    count++;
    }
    return ShowPlayerDialog(playerid,DIALOG_CMEMBER,DIALOG_STYLE_MSGBOX,"Clan Mitglieder",string,"Ok","");
    }
    return SendClientMessage(playerid,COLOR_GREY,"Dein Clan hat keine Mitglieder!");
    }


    Bei "HIER NAME DER SPALTE DIE AUSGELESEN WERDEN SOLL" einfach den Namen der Spalte 1zu1 angeben, in der die Namen gelistet werden.


    MfG