Dialog mit einer 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
  • Hi,
    nun erläre ich euch mal wir ihr ein Dialog mit einer MSGBOX erstellen könnt.
    Hier erst eimal ein Bild aus meinem Server, damit ihr wisst wie es aussieht.



    So,
    als erstes müssen wir das Dialog definieren.
    Das geht mit einem



    #define


    Oben in den Script fügen wir also folgendes ein:



    #define DIALOG_BEISPIEL 1


    Dann erstellen wir ein stock.
    Unten in den Script fügen wir folgendes ein:



    stock ShowPlayerBeispielDialog(playerid) // Ich nenne das stock einfach mal so
    {
    return ShowPlayerDialog(playerid,DIALOG_BEISPIEL,DIALOG_STYLE_MSGBOX,"Ueberschrift","Sonstiger Text\nSonstiger Text\nSonstiger Text","OK","Abbrechen");
    }


    Da wir den Dialog mit DIALOG_BEISPIEL definiert haben müssen wir es logischer Weise auch hier so nennen
    Mit \n fängt er eine neue Zeile an.
    DIALOG_STYLE_MSGBOX ist einer von drei anderen Styles.


    Hier die anderen beiden Styles:


    DIALOG_STYLE_INPUT
    DIALOG_STYLE_LIST


    So nun sind wir mit den Dialog fertig. Jetzt könnten wir noch einbauen,
    dass man den Dialog mit einem Befehl öffnen kann.
    Das Ginge dann so:



    if(!strcmp("/beispiel",cmd,true))
    {
    ShowPlayerBeispielDialog(playerid); // Hier muss der Name des "stock" eingesetzt werden, damit das GUI geöffnet werden kann!
    return 1;
    }


    Den Befehl muss man bei OnPlayerCommandText einfügen.


    So nun habt ihr euer eigenen Dialog erstellt.
    Wenn man sich das Tutorial genau durchliest weißt man, dass es eigentlich
    garnicht so schwer ist.


    MfG Markus

    3 Mal editiert, zuletzt von Markus ()

  • Bin ich dumm oder ist da was flasch..?!

    Zitat von Markus

    #define DIALOG_BEISPIEL


    Muass das dann nicht:
    #define DIALOG_BEISPIEL 1234 (oder eine sonstige Zahl)
    sein?
    Sonst würde das Script doch durcheinander kommen oder? :)
    MfG
    Maxx

  • GUI = Graphical User Interface.
    Sprich bei SA:MP die Schwarzen Kästen.
    Der Dialog ist aber der eigentliche Austausch an Informationen zwischen System und Benutzer.
    Daher kann beides auch von einander differenzieren.
    Wenn du sagst definieren wir ein GUI, heißt es für mich, dass du die Größe, den Font-Style, etc. definierst. Und nicht den Dialog.

  • return ShowPlayerDialog(playerid,DIALOG_BEISPIEL,DIALOG_STYLE_MSGBOX,"Ein kleiner Test","Ein klitze\nkleiner Text\nSonstiger Text","OK","Abbrechen");


    ERRORS:

    Code
    C:\Dokumente und Einstellungen\LoLi\Desktop\Server\gamemodes\Uf0.0.1BETA.pwn(1908) : error 029: invalid expression, assumed zero
    C:\Dokumente und Einstellungen\LoLi\Desktop\Server\gamemodes\Uf0.0.1BETA.pwn(1908) : warning 215: expression has no effect
    C:\Dokumente und Einstellungen\LoLi\Desktop\Server\gamemodes\Uf0.0.1BETA.pwn(1908) : warning 215: expression has no effect
    C:\Dokumente und Einstellungen\LoLi\Desktop\Server\gamemodes\Uf0.0.1BETA.pwn(1908) : warning 215: expression has no effect
    C:\Dokumente und Einstellungen\LoLi\Desktop\Server\gamemodes\Uf0.0.1BETA.pwn(1908) : warning 215: expression has no effect
    C:\Dokumente und Einstellungen\LoLi\Desktop\Server\gamemodes\Uf0.0.1BETA.pwn(1908) : warning 215: expression has no effect
    C:\Dokumente und Einstellungen\LoLi\Desktop\Server\gamemodes\Uf0.0.1BETA.pwn(1908) : error 001: expected token: ";", but found ")"
    C:\Dokumente und Einstellungen\LoLi\Desktop\Server\gamemodes\Uf0.0.1BETA.pwn(1908) : error 029: invalid expression, assumed zero
    C:\Dokumente und Einstellungen\LoLi\Desktop\Server\gamemodes\Uf0.0.1BETA.pwn(1908) : fatal error 107: too many error messages on one line
  • {
    new rand = random(sizeof(RandomMessages)); // Sucht automatisch eine zufällige Naricht aus.
    GameTextForAll(RandomMessages[rand], 15000, 5);


    //SendClientMessageToAll(0xFFFF00FF, RandomMessages[rand]); // Naricht zu Allen, FARBE gegen deine Textfarbe tauschen, RandomMessages[rand][] Gibt den Text aus
    return 1;
    }
    stock ShowPlayerBeispielDialog(playerid) // Ich nenne das stock einfach mal so
    {
    return ShowPlayerDialog(playerid,DIALOG_BEISPIEL,DIALOG_STYLE_MSGBOX,"Ein kleiner Test","Ein klitze\n kleiner Text\nSonstiger Text","OK","Abbrechen");
    }

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