Stats mit ShowPlayerDialog Problem

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 die Stats in einem ShowPlayerDialog erstellen. Ich habe folgendes schon im Script:

    new coordsstring[10][256],string[256];
    format(coordsstring[0], sizeof(coordsstring),"Übersicht des Accounts:");
    format(coordsstring[1], sizeof(coordsstring),"Personalien: Name: %s Alter: %d" ,name,age);
    format(coordsstring[2], sizeof(coordsstring),"Geschlecht: %s",atext);
    format(coordsstring[3], sizeof(coordsstring),"Partner: %s Leben: %.1f",married,shealth+50);
    format(coordsstring[4], sizeof(coordsstring),"Level: %d",level);
    format(coordsstring[5], sizeof(coordsstring),"Respektpunkte: %d/%d",exp,expamount);
    format(string,sizeof(string),"%s\n%s\n%s\n%s\n%s\n%s", coordsstring[0],coordsstring[1],coordsstring[2],coordsstring[3],coordsstring[4],coordsstring[5]);
    ShowPlayerDialog(playerid,1251, DIALOG_STYLE_MSGBOX,"Deine Statisik",string,"Ok","Schließen");


    Nun, das Fenster wird erstellt, aber leider ist die Fenstergröße ziemlich klein (so wie ein Allgemeines Loginfenster). Ich weiß nicht an was da liegen könnte. Ich hoffe ihr könnt mir helfen.


    Grüße

  • Das GUI wird nur dann größer, wenn du mehrere Dinge in eine Spalte schreibst.
    Wieso benutzt du so unnötig viele Strings?


    //ed: Rechtschreibung;)

  • Hi,
    ich habe jetzt die Stats ein wenig gekürzt. Es sieht jetzt nun wie folgt aus im Script:

    new coordsstring[256];
    format(coordsstring, sizeof(coordsstring),"Übersicht des Accounts:\nPersonalien:\nName: %s Alter: %d\nGeschlecht: %s\nPartner: %s Leben: %.1f\nLevel: %d\nRespektpunkte: %d/%d",name,age,married,shealth+50,level,exp,expamount);
    ShowPlayerDialog(playerid,3000, DIALOG_STYLE_MSGBOX,"Deine Statistik",coordsstring,"Ok","Schließen");


    Aber wenn ich jetzt Ingame /Stats mache, dann sieht es wie folgt aus:


    Es sieht zwar jetzt schon besser aus als vorher, aber die Fenstergröße ist immernoch die gleiche wie die von gestern. An was kann das liegen?


    Grüße

  • Hi nochmals,
    nachdem ich jetzt einigermaßen alles hinbekommen habe, damit es so wird, wie es sein sollte, kam jetzt nun ein neues Problem. Ab einer bestimmten Zeile werden keine Daten mehr angezeigt aber ich weiß nicht warum. Wisst ihr vielleicht an was das liegen könnte?


    Grüße


    /edit 1: Rechtschreibung D:

  • Ich würde mit 256 anfangen, und dann auch noch ein
    printf("%d", strlen(stringname));
    da einfügen dann sieht man ob die Stringlänge ausreicht bzw verkleinert werden kann / vergrößert werden muss ;)

  • Guten Tag mal wieder,
    ich habe das jetzt einigermaßen hinbekommen, nur bekomme ich eine ärgerliche Meldung, nämlich die, dass zu viele Zeichen in einer Zeile sind. Nun möchte das nun Scripten, sodass, wenn man /Stats eingibt, sich ein Fenster öffnet, dann man auf weiter klicken kann sodass man dann auf auf weiteres Fenster gelangt, in dem die weiteren Informationen enthalten sind. Ich hatte schonmal etwas rumgesucht, und sah da was mit dialogid, aber ich habe das leider nicht so recht verstanden. Was muss ich machen, damit dies funktioniert? Hier ist mein ShowPlayerDialog in gekürzter Fassung:



    new coordsstring[1000];
    format(coordsstring, sizeof(coordsstring),"Personalien: Name: %s....",name);
    ShowPlayerDialog(playerid,3000, DIALOG_STYLE_MSGBOX,"Deine Statistik",coordsstring,"Ok","Schließen");


    Grüße



    //Edit 1: PWN-Code untereinander formatiert

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Entweder eine Variable machen für den Spieler, und den dann auf 1 und 0 setzten für Teil a und b des Dialogs, oder einen ganz neuen Dialog öffnen lassen bei response in dem Stats Dialog ;)

    PAWNit gratis nutzen?
    Geschenkcode: 2017VQXPKB8V3KA

    Hier könnte Ihre Werbung stehen.

  • Unter
    OnDialogResponse

    if(dialogid==3000)
    {
    if(response)
    {
    new coordsstring[1000];
    format(coordsstring, sizeof(coordsstring),"Personalien: Name: %s....",name);// Hier die Infos der 2. Seite rein machen
    ShowPlayerDialog(playerid,3001, DIALOG_STYLE_MSGBOX,"Deine Statistik",coordsstring,"Ok","Schließen");// Hier wird die Dialogid 3001 verwendet. Also noch oben definiere ;)
    }
    }

    PAWNit gratis nutzen?
    Geschenkcode: 2017VQXPKB8V3KA

    Hier könnte Ihre Werbung stehen.

  • Uhhh, habs kapiert...ist ja doch eigtl. ziemlich einfach. Mal gucken ob es so funktioniert, wie es sein sollte..


    //Edit: Also, ich habe das jetzt so eingefügt, aber wenn ich es compile, kommt ein Error, von wegen undefinied Symbol so und so (Informationen von den Stats). Soll ich diese Informationen nun auch unter OnDialogResponse definieren?

  • Nice, funktioniert. Danke dir. Wenn ich Probleme habe, werde ich wieder schreiben :P


    Grüße


    //EDIT 1:


    So, habe jetzt fleißig dran gearbeitet. Da ich jetzt das zweite Dialogfenster auch vollgeklatscht habe, wollte ich nun ein drittes createn lassen. Dazu habe ich einfach das definiert:



    if(dialogid==3000)
    {
    if(response==1)
    {
    new coordsstring[1000];
    format(coordsstring, sizeof(coordsstring),"Telefon:.....",.....);
    ShowPlayerDialog(playerid,3001, DIALOG_STYLE_MSGBOX,"Deine Statistik",coordsstring,"Weiter","Schließen");
    }
    if(response==0)
    {
    new coordsstring[1000];
    format(coordsstring, sizeof(coordsstring),"Spielzeit:......",......);
    ShowPlayerDialog(playerid,3002, DIALOG_STYLE_MSGBOX,"Deine Statistik",coordsstring,"Ok","Schließen");
    }


    Aber leider funktioniert das nicht so, wie ich das möchte, denn es wird nur ein neues Fenster gecreatet. An was kann das liegen?


    Grüße


    //EDIT 2: Die Definitionen von den Stats bei format habe ich nur abgekürzt, da es sonst zu lang ist.

  • Da du jetzt 3 Seiten hast, kannst du sie so aufrufen:
    Seite 0 <- Aktuelle Seite (Wenn man /stats eingibt) -> Seite 2
    Dann brauchst du, genauso wie du es jetzt gemacht hast, das nur bei else unter if(response) einfügen.
    Wenn du nur 3 Seiten haben möchtest, kannst du bei dem 2 Dialog auch die gleiche ID nehmen ;)

    PAWNit gratis nutzen?
    Geschenkcode: 2017VQXPKB8V3KA

    Hier könnte Ihre Werbung stehen.

  • Hm, verstehe ich nicht so recht...wenn ich /stats eingebe, dann Enter drücke, komme ich auf die zweite Seite. Wenn ich dann ebenfalls wieder Enter drücke, soll ich dann auf die dritte und letzte Seite kommen. Im Script habe ich das jetzt so gemacht, wenn ich das richtig verstanden habe:



    if(dialogid==3000)
    {
    if(response==1)
    {
    ......
    }
    if(response==0)
    {
    {

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