/stats im GUI Menu wiedergeben

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
  • Nabend liebe Brotfische,


    Ich stelle heute mein erstes Tutorial vor. Es geht darum den Befehl /stats in einem GUI Menu anzuzeigen lassen. Da ich in der Suchfunktion auf nix gestoßen bin, schreibe ich einfach ein Tutorial.


    Vorraussetzungen:

    • Login und Register System


    Schritt 1:

    Wir definieren im oberen Scriptabschnitt den Dialog "stats" mit:
    #define stats 1


    Erklärung: "stats" ist der Dialog und 1 die DialogID.



    Schritt 2:


    Wir gehen zu "public OnPlayerCommandText" und fügen folgendes ein:

    if (strcmp("/stats", cmdtext, true, 10) == 0)
    {
    new name[MAX_PLAYER_NAME], string[256];
    GetPlayerName(playerid, name, sizeof(name));
    format(string,sizeof(string),"Name: %s\n Level: %d\nBargeld: %s\nAdminlevel: %d",name,GetPlayerScore(playerid),GetPlayerMoney(playerid),Player[playerid][Adminlevel]);//bei Player[playerid][Adminlevel] eure Adminlevelabfrage.
    ShowPlayerDialog(playerid,stats,DIALOG_STYLE_MSGBOX,"Statistik von dir",string,"Ok","Abbrechen");
    return 1;
    }


    Erklärung:

    • new name[MAX_PLAYER_NAME] = Variable für alle Spielernamen die aktuell auf dem Server sind.
    • string[256] = Datei mit 256 Zeichen oder Bytes.
    • GetPlayerName(playerid,name,sizeof(name) = Fragt den Namen des Spielers der den Command "/stats" eingeben hat ab.
    • format = Formatiert alles
    • %s | %d = %s gibt den String wieder, in dem Fall den Spielernamen | %d gibt eine Zahl wieder, z.B.: Das Adminlevel oder der Score.
    • ShowPlayerDialog(playerid,stats,DIALOG_STYLE_MSGBOX,"Statistik von dir",string,"Ok","Abbrechen"); = Zeig dem Spieler den Dialog "stats" mit dem Style "MSGBOX", mit der Überschrift "Statistik von dir", "string" fügt den formatierten String ein. "Ok" und "Abbrechen geben 2 Buttons Namen.


    Natürlich könnt ihr noch mehrere Sachen reintun, jetzt wusst ich nicht wie ihr die benutz, wäre zu umständlich gewesen. ;)
    Das wars eigentlich schon. Bei Fragen nur in das Therad hier. PN's werden nicht beantwortet



    Liebe Grüße


    xXDarkDoomXx


    //edit: Im Text was geändert

    "Stay hungry! Stay foolish!" - Steve Jobs

    Einmal editiert, zuletzt von r0b ()

  • Joar,nicht schlecht!;)


    GetPlayerName und format kannst Du aber noch kürzer machen und auch ohne "sizeof"!;)


    z.b
    GetPlayerName(playerid,name,128);
    format(string,128),"bla...%s",name);


    Ansonsten ganz gut erklärt!
    Für Anfänger hilfreich!


    Allerdings gibt es schon ein solches Tutorial für Stats via GUI!




    Mfg, Hardcore

  • GetPlayerName(playerid,name,12;

    wieso 12? Ein Name kann mehr als 12 Zeichen lang sein :O 32 oder 24 weiß es grad nicht genau... Ich würd einfach MAX_PLAYER_NAME verwenden.
    Und außerdem ist format(string,12,"bla...%s",name); auch falsch. Wenn der Name schon 12 Zeichen lang wäre, dann würden es mit "bla..." mehr sein. Also reicht
    12 auch nicht...

  • GetPlayerName(playerid,name,12;

    wieso 12? Ein Name kann mehr als 12 Zeichen lang sein :O 32 oder 24 weiß es grad nicht genau... Ich würd einfach MAX_PLAYER_NAME verwenden.
    Und außerdem ist format(string,12,"bla...%s",name); auch falsch. Wenn der Name schon 12 Zeichen lang wäre, dann würden es mit "bla..." mehr sein. Also reicht
    12 auch nicht...


    Jaa,sorry man kann sich ja mal vertippen>.<
    Sollte eigentlich 128 sein!


    Und GetPlayerName sollte eig. so aussehen:
    GetPlayerName(playerid,name,128);

  • Joar ich weis,war blos als Beispiel gedacht!;)


    Ich selber nehme für den namen immer 32...
    Für strings etc. 128-256 esseiden der String ist wesentlich kleiner!


    B2T:
    Trotzdem gutes Tutorial


    Bewertung: 9/10 Sternen!

  • Bei mir geht das net :(


    Zeile 131:

    Code
    format(string,sizeof(string),"Name: %s\n Level: %d\nBargeld: %s\nAdminlevel: %d",name,GetPlayerScore(playerid),GetPlayerMoney(playerid),Player[playerid][Adminlevel]);//bei Player[playerid][Adminlevel] eure Adminlevelabfrage.


    MfG Evo

  • kmarco:
    format(string,sizeof(string),"Name: %s\n Level: %d\nGeld: %d\nAdminLevel: %d\nHandynummerID: %d",name,GetPlayerScore(playerid),GetPlayerMoney(playerid),SpielerInfo[playerid][Administrator],player[playerid][number]);


    Versuch es mal so^^.


    //Edit: Etwas vergessen.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen