DIALOG Tutorial

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
  • //edit 1 Dies ist mein erstes Tutorial.
    //edit 2 Define verwendet ^^
    DIALOG Tutorial


    Guten Abend, da mir gerade langweilig ist dachte ich mir mache ich ein kleines Tutorial zum Thema Dialoge.


    Ich möchte euch auf 2 Wegen erklären wie man DIALOGE erstellen kann.
    1. Durch Pickups
    2. Durch Commands.


    So dann fangen wir mal mit dem Tutorial für Pickups an.


    Als erstes müssen wir erstmal unseren Pickup Namen definieren damit wir in später wieder aufrufen können. Das machen wir mit:


    new bsnenter;


    So nun haben wir unseren Pickup definiert.


    Als nächstest müssen wir noch unseren DIALOG Namen definieren. Dazu verwenden wir:


    #define DIALOG_BSN 1


    So jetzt haben wir die ersten zwei Sachen Definiert, jetzt kommen wir zum nächsten Schritt:


    Als nächstest müssen wir natürlich auch unseren Pickup erstellen den wir oben definiert haben. Dazu gehen wir zu


    OnGameModeInit
    . Als nächstest schreiben wir bsnenter=createpickup damit das Script weiß "ah dieses pickup hat den Namen bsnenter". Soweit so gut soweit sind wir nun:


    bsnenter=createpickup
    nun müssen noch die Pickup ID scripten. Alle Pickup IDs seht ihr hier Pickup Ids.
    Wir verwenden jetzt erstmal folgende PickupID 1240. Zusammen sieht es jetzt so aus


    bsnenter=createpickup(1240,0,
    Die 1 steht dafür da ob das Pickup bleiben soll wenn man drauf geht oder sich entfernen soll. In diesem Fall schreiben wir die 0 damit es sich nicht wieder öffnet wenn wir es schließen. Jetzt weiß das Script aber noch nicht wo das Pickup gesetzt werden soll. Dafür verwenden wir die x,y,z Daten. Die kann man ganz einfach Ingame herausfinden mit /save Name. Ich verwende jetzt einfach mal folgende x,y,z Daten


    1199.2235,-918.1543,43.1233


    Zusammen gesetzt sieht es nun wie folgt aus:


    bsnenter=createpickup(1240,0,1199.2235,-918.1543,43.1233);



    So nun haben wir ein Pickup gesetzt kommen wir zum nächsten Schritt.


    Jetzt gehen wir zu


    public OnPlayerPickUpPickup(playerid, pickupid)
    {


    Als erstes frägt er uns ab welchen Pickup Namen wir verwenden. Denn haben wir ja oben mit bsnenter definiert. Das sieht dann wie folgt aus


    if(pickupid==bsnenter)


    So jetzt weiß das Script," ah okay dieses Pickup ist gemeint".
    Als nächstes wollen wir natürlich den DIALOG anzeigen lassen dies geht wie folgt


    ShowPlayerDialog(playerid,DIALOG_BSN,DIALOG_STYLE_LIST,"Essen"


    ShowPlayerDialog heißt das dem Spieler dem Dialog angezeigt wird. Als nächstes kommt DIALOG_BSN, damit das Script weiß ah okay dieser Dialog ist gemeint, denn haben wir oben Definiert. DIALOG_STYLE_LIST, ist eine DIALOG art, die verwenden wir da wir mehrere Sachen anklicken wollen. Essen steht dann für den Dialog Namen der oben im Dialog dann steht.


    Als nächstest muss das Script ja wissen was man zur Auswahl hat, dies machen wir dann so:


    ShowPlayerDialog(playerid,DIALOG_BSN,DIALOG_STYLE_LIST,"Essen,"Essen 1\Essen 2\Essen 3","Auswählen","Beenden");"


    Nun haben wir erst mal 3 Gerichte zur Auswahl die wir auswählen können. \n heißt das eine neue Zeile angefangen wird, machen wir dies nicht, steht jedes gericht in einer Zeile und wir können nur eins anklicken. Und das sieht dann insgesamt dann so aus:




    [pwn]public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid==bsnenter)
    {
    ShowPlayerDialog(playerid,DIALOG_BSN,DIALOG_STYLE_LIST,"Essen","Essen 1\nEssen 2\nEssen 3","Auswählen","Beenden");




    als nächstest müssen wir das Script noch mit einer Klammer schließen }. Dies bedeutet dann das, dass Script weiß ah okay der Code ist nun fertig. Als letztes müssen wir dann noch ein return setzen damit uns das Script kein Unknown Command sendet. Dies sieht dann so aus


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid==bsnenter)
    {
    ShowPlayerDialog(playerid,DIALOG_BSN,DIALOG_STYLE_LIST,"Essen","Essen 1\nEssen 2\nEssen 3","Auswählen","Beenden");
    }
    return 1;
    }


    So und schon haben wir den nächsten Schritt geschafft. Jetzt folgt die Ausführung.
    Dazu gehen wir zu


    OnDialogResponse



    Als erstes müssen wir natürlich wieder abfragen welchen Dialog wir benutzen. Dies geht mit



    if(dialogid == DIALOG_BSN)


    Zusammen sieht das dann so aus




    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == DIALOG_SKIN)
    {



    Als nächstes müssen wir ein


    if(response)
    machen, leider weiß ich selber genau nicht was dies bedeutet. Ich werde es dann später edetieren.
    So das sieht dann so aus




    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == DIALOG_SKIN)
    {
    if(response)
    {



    Als nächstes frägt er uns was passieren soll wenn er Essen drückt dies geht dann so



    if(listitem == 0)
    {
    SetPlayerHealth(playerid,100);
    }


    Wir verwenden jetzt einfach mal SetPlayerHealth. Das bedeutet das wir seine HP auf 100 setzten. Und dies machen wir dann auch noch mit den anderen 2 Gerichten


    if(listitem == 1)
    {
    SetPlayerHealth(playerid,100);


    }
    if(listitem == 2)
    {
    SetPlayerHealth(playerid,100);
    }
    return 0;
    }
    }
    return 1;
    }


    Am ende müssen wir wieder ein return 0 machen damit kein Unknown Command kommt. Und am ende von OnDialogResponse kommt ein return 1;.
    Dies war dann mal mein erster Teil zu diesem Thema.


    Ich entschuldige mich das ich am ende wenig erklärt habe, da ich müde bin und nun ins Bett gehe. Den Rest werde ich dann eventuell morgen fertig machen.


    Mit freundlichen grüßen magnussoft

    3 Mal editiert, zuletzt von magnussoft ()

  • Auch dir danke, ich werde es später bearbeiten ;).


    Mfg magnussoft.

  • new DIALOG_BSN
    ShowPlayerDialog(playerid,DIALOG_BSN,DIALOG_STYLE_LIST,"Essen","Essen 1\nEssen 2\nEssen 3","Auswählen","Beenden");


    wenn man das so macht wirds ab dem 2ten Dialog schwer.
    viel schöner und übersichtlicher ists so


    #define DIALOG_BSN 0

  • Danke erstmal für die Bewertungen,


    Pato Ubs ich wusste ich habe was vergessen bearbeite ich ^^. Mist ich wollte Define verwenden eig Fail. Danke für den Hinweiß

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Habe es nun mit #define gemacht morgen oder Freitag kommt Teil 2.