/fraktionsliste Hilfe

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
  • Hey. Ich möchte einen /fraktionsliste Befehl machen. Ich habe bisher drei Fraktionen mit folgenden ID'S: Medic (1), LSPD (2), SWAT (3).
    Der Leader ist rang 6 immer.


    Ich möchte es wenn man /fraktionsliste macht soll ein Dialog kommen ich weiß nicht ob MSGBox oder DIALOG Style List am besten wär.
    Dann möchte ich es haben das dort steht.


    Medic | Leader: NAME | Offline/Online
    LSPD | Leader: NAME | offline/Online
    SWAT | Leader: NAME | Offline /ONLINE


    Der Name soll ausgelesen werden aus der Tabelle users wenn er zum Beispiel bei Medic bei Fraktion die 1 hat und rang 6.
    Bei Swat dann bei Fraktion die 2 und rang 6. Und Online ist eingeloggt=1 im Script (db gibts das ned) und Offline ist eingeloggt=0

  • 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;
    }


    Du nimmst diese Funktion, damit kannst du dann abfragen, ob der Spieler online ist.
    if(ReturnPlayerID(entsprechenderName) != INVALID_PLAYER_ID) //online
    else //offline


    Zum Beispiel:
    if (strcmp(cmd, "/ot", true) == 0)
    {
    new str[512];
    if(ReturnPlayerID("Basti") != INVALID_PLAYER_ID) format(str, sizeof(str), "%s{FFFFFF}Basti - {00FF00}Online\n", str);
    else format(str, sizeof(str), "%s{FFFFFF}Basti - {FF0000}Offline\n", str);
    if(ReturnPlayerID("Hansi") != INVALID_PLAYER_ID) format(str, sizeof(str), "%s{FFFFFF}Hansi - {00FF00}Online\n", str);
    else format(str, sizeof(str), "%s{FFFFFF}Hansi - {FF0000}Offline\n", str);
    if(ReturnPlayerID("Ulli") != INVALID_PLAYER_ID) format(str, sizeof(str), "%s{FFFFFF}Ulli - {00FF00}Online\n", str);
    else format(str, sizeof(str), "%s{FFFFFF}Ulli - {FF0000}Offline\n", str);
    ShowPlayerDialog(playerid, 4521, DIALOG_STYLE_MSGBOX, "Spieler", str, "Ok");
    return 1;
    }


    Dort wo jetzt die Namen "hart" drin stehen kannst du dann die Variable für den entsprechenden Leader einfügen.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Da ihr anscheinend beide die gleiche Methode nutzt.
    Um das aus der Datenbank auszulesen:

    SQL
    SELECT name, fraktion FROM users WHERE rang = 6;


    Dann damit den Cache auslesen (das Result) und entsprechend dann anzeigen.


    Den Beispielcode habe ich oben gepostet, da muss man dann den Name der aus der Datenbank ausgelesen wurde einfügen.
    Versucht damit mal wie weit ihr kommt, und postet dann gegebenenfalls den Code den ihr bis zum Problem habt, falls eines auftaucht.

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


    Ganz unten im Gamemode (das FraktionsName müsst ihr 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;
    }

  • gamemodes\gr.pwn(4721) : error 017: undefined symbol "cache_get_row_count"
    C:\Users\Media Markt\Desktop\Virtual Roleplay Selfmade\Projekt\gamemodes\gr.pwn(4726) : error 017: undefined symbol "cache_get_field_content"
    C:\Users\Media Markt\Desktop\Virtual Roleplay Selfmade\Projekt\gamemodes\gr.pwn(4727) : error 017: undefined symbol "cache_get_field_content_int"