Fraktionen

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 weiss nicht wie ich den Spieler herrausfinden soll ohne das er Online ist trozdem dadrin steht.


    Code:


    Spoiler anzeigen
    CMD:fraktionen(playerid)
    {
    if(!(pInfo[playerid][pEingeloggt] == 1))return 1;
    if(pInfo[playerid][pTutorial] > 0)return SCM(playerid, Grau, "Du bist derzeit im Tutorial, und kannst diesen Befehl nicht benutzen.");
    for(new i=0;i<GetMaxPlayers();i++)
    {
    new SpielerLogin[25],string[128],Frakstring[512];
    if(pInfo[i][pEingeloggt] == 0){ SpielerLogin = "{FF2800}Offline{AFAFAF}"; }
    else if(pInfo[i][pEingeloggt] == 1){ SpielerLogin = "{05FF00}Online{AFAFAF}"; }
    strdel(Frakstring,0,sizeof(Frakstring));
    format(string,sizeof(string),"SAPD\t\t\t| Leader: %s\t| Status: %s\n",pInfo[i][pName],SpielerLogin);
    strcat(Frakstring,string);
    format(string,sizeof(string),"Sanitäter\t\t| Leader: %s\t| Status: %s\n",pInfo[i][pName],SpielerLogin);
    strcat(Frakstring,string);
    format(string,sizeof(string),"Ordnungsamt\t\t| Leader: %s\t| Status: %s\n",pInfo[i][pName],SpielerLogin);
    strcat(Frakstring,string);
    format(string,sizeof(string),"Transport GmbH\t| Leader: %s\t| Status: %s\n",pInfo[i][pName],SpielerLogin);
    strcat(Frakstring,string);
    format(string,sizeof(string),"Grove Street\t\t| Leader: %s\t| Status: %s\n",pInfo[i][pName],SpielerLogin);
    strcat(Frakstring,string);
    format(string,sizeof(string),"Ballas\t\t\t| Leader: %s\t| Status: %s\n",pInfo[i][pName],SpielerLogin);
    strcat(Frakstring,string);
    format(string,sizeof(string),"Yakuza\t\t\t| Leader: %s\t| Status: %s\n",pInfo[i][pName],SpielerLogin);
    strcat(Frakstring,string);
    format(string,sizeof(string),"SF Rifa\t\t\t| Leader: %s\t| Status: %s\n",pInfo[i][pName],SpielerLogin);
    strcat(Frakstring,string);
    ShowPlayerDialog(playerid,Dialog_Fraktionen,DIALOG_STYLE_MSGBOX,"Fraktionen / Leader",Frakstring,"Schließen","");
    }
    return 1;
    }


    Jeffry:

  • Im Befehl (das Query gegebenenfalls an deine Spaltennamen anpassen):
    mysql_pquery(handle, "SELECT name, fraktion FROM users WHERE rank = 8;", "OnLeaderOnline", "d", playerid);


    Ganz unten im Gamemode (das FraktionsName musst du anpassen):
    forward OnLeaderOnline(playerid);
    public OnLeaderOnline(playerid)
    {
    new rows = cache_get_row_count();
    if(!rows) return SendClientMessage(playerid, 0xFF0000FF, "Error: Etwas ist schief gegangen.");
    new str[512], name[32], frak;
    for(new i = 0; i < rows; i++)
    {
    cache_get_field_content(i, "name", name);
    frak = cache_get_field_content_int(i, "fraktion");
    if(ReturnPlayerID(name) != INVALID_PLAYER_ID) format(str, sizeof(str), "%s{FFFFFF}%s [%s] - {00FF00}Online\n", str, name, FraktionsName[frak]);
    else format(str, sizeof(str), "%s{FFFFFF}%s [%s] - {FF0000}Offline\n", str, name, FraktionsName[frak]);
    }
    ShowPlayerDialog(playerid, 4521, DIALOG_STYLE_MSGBOX, "OnlineList", str, "Ok");
    return 1;
    }stock ReturnPlayerID(l_PlayerName[]) //©Jeffry
    {
    new l_name[MAX_PLAYER_NAME];
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    GetPlayerName(i, l_name, MAX_PLAYER_NAME);
    if(!strcmp(l_name,l_PlayerName, true)) return i;
    }
    }
    return INVALID_PLAYER_ID;
    }

  • Dann müssen wir die Namen zwischenspeichern.
    Das müsstest du dann so schreiben:
    forward OnLeaderOnline(playerid);
    public OnLeaderOnline(playerid)
    {
    new rows = cache_get_row_count();
    if(!rows) return SendClientMessage(playerid, 0xFF0000FF, "Error: Etwas ist schief gegangen.");
    new str[512], name[MAX_FRAKS][32], frak;
    for(new i = 0; i < rows; i++)
    {
    frak = cache_get_field_content_int(i, "fraktion");
    cache_get_field_content(i, "name", name[frak]);
    }
    for(new i = 0; i < MAX_FRAKS; i++)
    {
    if(!strlen(FraktionsName[i])) format(str, sizeof(str), "%s{FFFFFF}-Offen- [-Offen-] - {00FF00}Online\n", str); //Fraktion existiert nicht (?)
    else if(!strlen(name[i])) format(str, sizeof(str), "%s{FFFFFF}-Offen- [%s] - {00FF00}Online\n", str, FraktionsName[i]); //Fraktion hat keinen Leader
    else if(ReturnPlayerID(name[i]) != INVALID_PLAYER_ID) format(str, sizeof(str), "%s{FFFFFF}%s [%s] - {00FF00}Online\n", str, name[i], FraktionsName[i]); //Leader ist online
    else format(str, sizeof(str), "%s{FFFFFF}%s [%s] - {FF0000}Offline\n", str, name[i], FraktionsName[i]); //Leader ist offline
    }
    ShowPlayerDialog(playerid, 4521, DIALOG_STYLE_MSGBOX, "OnlineList", str, "Ok");
    return 1;
    }


    Beachte, dass du deine Anpassungen hier wieder machen musst.