maximale länge von DIALOG_STYLE_MSGBOX

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
  • Weiß einer wie lang der Text bei einem Dialog mit dem Style: DIALOG_STYLE MSGBOX sein darf?


    hab hier was von kye gefunden, aber stimmt das?


    <Kye> 2048 characters but that will probably be increased



    Frage nr2:
    Wie oft kann ich \n machen?
    irgendwann ist der dialog ja dann nicht mehr im bild, gibts da auch ein limit? also max zeilenanzahl?

    Pessimisten sind Optimisten mit Erfahrung!

  • Das Limit liegt bei 4096, ich denke das reicht :D
    @Tommy
    Die Leerzeichen sind mit Tabs ( \t ) gemacht worden d.h. es ist nur ein Zeichen

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Sieht richtig nice aus, aber ich habe eine Frage.


    Ich möchte sowas ähnliches machen mit den Adminbefehlen.


    Jedoch wie setzt man den ganzen String in den Dialog. Das wird ja eine endlose Linie, dann regt sich der Compiler auf das die Line zu lang ist.


    Könnte mir das einer bitte erklären, wie man das leicht gemacht hat, einfach nur.


    Befehl lauter Leerzeichen ~ Erklärung \n(Nächste Zeile)
    Und das mit mehr als 20 Befehlen als sind mehr als 1024 Zeichen.

    Die Macht etwas zu bewirken, ist in Dir. Du musst sie nur rauslassen


    cristiano-ronaldo-525-portugal-euro-2012-banner-wallpaper.jpg

  • also ich habe es so bei /fraktionen:
    #define DIALOG_ADMINCMDS 90
    ^ganz oben


    und dann halt im befehl, bei mir zb für euch /admincmds:


    new ALLECMDS[1024],CMDS1[256],CMDS2[256],CMDS3[256],CMDS4[256],CMDS5[256]; // bei bedarf erhöhen
    format(CMDS1, sizeof(CMDS1), "/testcommand1 /testcommand2 /testcommand3 /testcommand4 \n/testcommand5 /testcommand6 /testcommand7 /testcommand8"); //entspricht 8 commands für 2 zeilen
    format(CMDS2, sizeof(CMDS2), "/testcommand9 /testcommand10 /testcommand11 /testcommand12 \n/testcommand13 /testcommand14 /testcommand15 /testcommand16"); //entspricht 8 commands für 2 zeilen
    format(CMDS3, sizeof(CMDS3), "/testcommand17 /testcommand18 /testcommand19/testcommand20 \n/testcommand21 /testcommand22 /testcommand23 /testcommand24"); //entspricht 8 commands für 2 zeilen
    format(CMDS4, sizeof(CMDS4), "/testcommand25 /testcommand26 /testcommand27 /testcommand28 \n/testcommand29 /testcommand30 /testcommand31 /testcommand32"); //entspricht 8 commands für 2 zeilen
    format(CMDS5, sizeof(CMDS5), "/testcommand33 /testcommand34 /testcommand35 /testcommand36 \n/testcommand37 /testcommand38 /testcommand39 /testcommand40"); //entspricht 8 commands für 2 zeilen
    format(ALLECMDS, sizeof(ALLECMDS), "%s\n%s\n%s\n%s\n%s",CMDS1,CMDS2,CMDS3,CMDS4,CMDS5); //alle strings werden zusammen gefasst, und als "ALLECMDS" formatiert...
    ShowPlayerDialog(playerid,DIALOG_ADMINCMDS,DIALOG_STYLE_MSGBOX,"Admincommands",ALLECMDS,"OK","");//... und hier dann als dialog für den spieler ausgegeben


    ungetestet ... aber sollte so klappen, habs bei mir halt noch mit variablen usw...
    wenns errors gibt, einfach schicken


    funktioniert:


    //e 1 leerzeichen zu viel im script
    //e 2 bild hinzugefügt

    Pessimisten sind Optimisten mit Erfahrung!

  • new s[256];
    strcat(s,"/testcommand1 /testcommand2 /testcommand3 /testcommand4 \n/testcommand5 /testcommand6 /testcommand7 /testcommand8");
    strcat(s,"/testcommand9 /testcommand10 /testcommand11 /testcommand12 \n/testcommand13 /testcommand14 /testcommand15 /testcommand16");
    //etc...
    ShowPlayerDialog(playerid,DIALOG_ADMINCMDS,DIALOG_STYLE_MSGBOX,"Admincommands",s,"OK","");

  • Man kann es auch mit format machen obwohl es mit strcat eleganter aussieht...



    new ALLECMDS[1024];
    format(ALLECMDS, sizeof(ALLECMDS), "/testcommand1 /testcommand2 /testcommand3 /testcommand4 \n/testcommand5 /testcommand6 /testcommand7 /testcommand8\n"); //entspricht 8 commands für 2 zeilen
    format(ALLECMDS, sizeof(ALLECMDS), "%s/testcommand9 /testcommand10 /testcommand11 /testcommand12 \n/testcommand13 /testcommand14 /testcommand15 /testcommand16\n"); //entspricht 8 commands für 2 zeilen
    format(ALLECMDS, sizeof(ALLECMDS), "%s/testcommand17 /testcommand18 /testcommand19/testcommand20 \n/testcommand21 /testcommand22 /testcommand23 /testcommand24\n"); //entspricht 8 commands für 2 zeilen
    format(ALLECMDS, sizeof(ALLECMDS), "%s/testcommand25 /testcommand26 /testcommand27 /testcommand28 \n/testcommand29 /testcommand30 /testcommand31 /testcommand32\n"); //entspricht 8 commands für 2 zeilen
    format(ALLECMDS, sizeof(ALLECMDS), "%s/testcommand33 /testcommand34 /testcommand35 /testcommand36 \n/testcommand37 /testcommand38 /testcommand39 /testcommand40\n"); //entspricht 8 commands für 2 zeilen
    ShowPlayerDialog(playerid,DIALOG_ADMINCMDS,DIALOG_STYLE_MSGBOX,"Admincommands",ALLECMDS,"OK","");//... und hier dann als dialog für den spieler ausgegeben

  • new stringtest[128];
    strcat(stringtest, "Name: %s",Spielername(playerid));



    geht nicht... also ich kann in wiki nicht erkennen das man da noch eine variable einbauen kann...
    bei einem /stats fenster, dann also die variante von aspire nehmen mit format?

    Pessimisten sind Optimisten mit Erfahrung!

  • da fehlt dann hinten aber noch das ALLECMDS ;)


    also:


    new ALLECMDS[1024];
    format(ALLECMDS, sizeof(ALLECMDS), "/testcommand1 /testcommand2 /testcommand3 /testcommand4 \n/testcommand5 /testcommand6 /testcommand7 /testcommand8\n"); //entspricht 8 commands für 2 zeilen
    format(ALLECMDS, sizeof(ALLECMDS), "%s/testcommand9 /testcommand10 /testcommand11 /testcommand12 \n/testcommand13 /testcommand14 /testcommand15 /testcommand16\n",ALLECMDS); //entspricht 8 commands für 2 zeilen
    format(ALLECMDS, sizeof(ALLECMDS), "%s/testcommand17 /testcommand18 /testcommand19/testcommand20 \n/testcommand21 /testcommand22 /testcommand23 /testcommand24\n",ALLECMDS); //entspricht 8 commands für 2 zeilen
    format(ALLECMDS, sizeof(ALLECMDS), "%s/testcommand25 /testcommand26 /testcommand27 /testcommand28 \n/testcommand29 /testcommand30 /testcommand31 /testcommand32\n",ALLECMDS); //entspricht 8 commands für 2 zeilen
    format(ALLECMDS, sizeof(ALLECMDS), "%s/testcommand33 /testcommand34 /testcommand35 /testcommand36 \n/testcommand37 /testcommand38 /testcommand39 /testcommand40\n",ALLECMDS); //entspricht 8 commands für 2 zeilen
    ShowPlayerDialog(playerid,DIALOG_ADMINCMDS,DIALOG_STYLE_MSGBOX,"Admincommands",ALLECMDS,"OK","");//... und hier dann als dialog für den spieler ausgegeben