[ Godfather + Selfmade ] 2-Teiliger /stats 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
  • Moin moin,
    ich hatte grade Langeweile und dachte, ich schreibe ein kleines Tutorial, wie man ein 2 Teiliges Statsmenü codet.
    Nun denn:


    1. Schritt:


    Zu Anfang müsst ihr alles definen.
    z.B. so:
    #define Stats 200//der erste dialog - bitte nehmt eine definierte Zahl, die ihr noch nicht in einem Dialog verwendet
    #define Stats2 201//der zweite dialog - bitte nehmt eine definierte Zahl, die ihr noch nicht in einem Dialog verwendet
    forward ShowStats(playerid,targetid);//die Definition des Publics


    2. Schritt:
    Der Befehl, um den Dialog aufzurufen...
    In meinem Beispiel habe ich oben die Public, wie im Godfather - Mode definiert, daher:
    if (strcmp(cmd, "/stats", true) == 0)//Der Befehl, um das Menü aufzurufen
    {
    if(IsPlayerConnected(playerid))//Die Abfrage, ob der Spieler online ist
    {
    if (gPlayerLogged[playerid] != 0)//Die Abfrage, ob der Spieler eingeloggt ist
    {
    ShowStats(playerid,playerid);//Die aufzurufende Public
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, " Du bist nicht eingeloggt !");
    }
    }
    return 1;
    }


    3. Schritt:
    Nun zum Inhalt des oben definierten und aufgerufenen Publics...
    public ShowStats(playerid,targetid)
    {
    if(IsPlayerConnected(playerid)&&IsPlayerConnected(targetid))
    {
    new name[MAX_PLAYER_NAME];//Als Beispiel einfach mal die Namensanzeige
    GetPlayerName(targetid, name, sizeof(name));//Die Abfrage des Namens
    new string2[256];//Die Definition des strings
    new coordsstring0[256];//Die Definition des Inhalts vom definierten string
    format(coordsstring0, sizeof(coordsstring0),"Name: %s", name);//Der Inhalt des strings, hier der Name des Spielers
    format(string2,sizeof(string2),"%s",coordsstring0);//Wie der Dialog aussehen soll
    ShowPlayerDialog(playerid,Stats,DIALOG_STYLE_MSGBOX,"Statistiken",string2,"Weiter","Schließen");//Hier der zu öffnende Dialog, mit dem oben definierten Inhalt
    }
    }


    4. Schritt:
    Um den Stats Dialog dann 2-Teilig zu machen...
    Unter public OnDialogResponse:
    if(dialogid == Stats)
    {
    if(response == 0)//Was passiert, wenn der Spieler auf schließen drückt.
    {
    //Also nichts
    }
    if(response == 1)//Hier, was angezeigt werden soll, wenn der Spieler auf "Weiter" drückt
    {
    new name[MAX_PLAYER_NAME];//Als Beispiel einfach nochmal die Namensanzeige
    GetPlayerName(targetid, name, sizeof(name));//Die Abfrage des Namens
    new string2[256];//Die Definition des strings
    new coordsstring0[256];//Die Definition des Inhalts vom definierten string
    format(coordsstring0, sizeof(coordsstring0),"Name: %s", name);//Der Inhalt des strings, hier der Name des Spielers
    format(string2,sizeof(string2),"%s",coordsstring0);//Wie der Dialog aussehen soll
    ShowPlayerDialog(playerid,Stats2,DIALOG_STYLE_MSGBOX,"Statistiken",string2,"Zurück","Schließen");//Hier zu öffnende Dialog, wenn der Spieler auf Weiter geklickt hat. Es öffnet sich dann der 2. Statsdialog
    }
    }


    if(dialogid == Stats2)
    {
    if(response == 0)//Was passiert, wenn der Spieler auf schließen drückt.
    {
    //Also nichts
    }
    if(response == 1)//Hier, was angezeigt werden soll, wenn der Spieler auf "Zurück" drückt
    {
    new name[MAX_PLAYER_NAME];//Als Beispiel wieder die Namensanzeige
    GetPlayerName(targetid, name, sizeof(name));//Die Abfrage des Namens
    new string2[256];//Die Definition des strings
    new coordsstring0[256];//Die Definition des Inhalts vom definierten string
    format(coordsstring0, sizeof(coordsstring0),"Name: %s", name);//Der Inhalt des strings, hier der Name des Spielers
    format(string2,sizeof(string2),"%s",coordsstring0);//Wie der Dialog aussehen soll
    ShowPlayerDialog(playerid,Stats,DIALOG_STYLE_MSGBOX,"Statistiken",string2,"Weiter","Schließen");//Hier zu öffnende Dialog, wenn der Spieler auf Weiter geklickt hat. Es öffnet sich dann wieder der 1. Stats dialog
    }
    }


    Das war mein kleines Tutorial, für einen 2 - Teiligen /stats Dialog. Ihr könnt dieses Tutorial auch zur Vorlage für einen
    1 - Seitigen /stats Dialog nutzen. Ich denke, dass es ganz hilfreich für Anfänger ist.
    Viel Spaß beim ausprobieren. ^^ Alle Angaben sind ohne Gewähr und für den Godfather - Gamemode ausgelegt.


    ps: Rechtschreibfehler sind Special-Effects meiner Tastatur


    lg ~Jean~


    $dit 4 Fehlerbehebungen

    Einmal editiert, zuletzt von ~Jean~ ()

  • new coordsstring0[256];//Die Definition des Inhalts vom definierten string


    format(string2,sizeof(string2),"%s",coordstring0);//hast dich vertippt coordstring0 = coordsstring0

    Zitat

    error 017: undefined symbol "targetid"

    GetPlayerName(targetid, name, sizeof(name));//Die Abfrage des Namens
    kommt auch noch