Tutorial in Dialogen

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
  • Hallo Breadfish
    huete Presentiere ich mein 3. Tutorial


    Worum Geht es in den Tutorial?
    Ich zeige euch hier wie ihr ganz einfach und schnell ein Tutorial ganz ohne Timer in einen Dialog macht.
    Vorab weise ich darauf hin das es auf DIESES Register/Login System angepasst ist.


    Ganz zum Anfang definieren wir unser Dialog das sieht so aus


    #define DIALOG_TUTORIAL1 xxx


    das xxx da müsst ihr eine Zahl hinterschreiben, da ich nicht weiß wie viele Dialoge ihr bereits habt
    und die Define´s kommen nach Ganz oben ins Script!


    Als näschtes gehen wir zu den >>stock register<<
    in den Stock gibt ihr ja an was der Spieler alles bekommt und und und
    was haben wir in den stock vor?
    in den stock lassen wir den ersten Dialog anzeigen
    der würde dann so aussehen:


    ShowPlayerDialog(playerid,DIALOG_TUTORIAL1,DIALOG_STYLE_MSGBOX,"Tutorial","Euer Text halt hier","Weiter","");


    Bei den Dialog erklär ich mal kurz ein paar dinge:


    Bedeutung des Aufbaues


    - ShowPlayerDialog ~ Die Funtion sagt das der Dialog angezeigt wird
    - playerid ~ klar den Spieler den es angezeigt werden soll
    - DIALOG_TUTORIAL1 ~ Die eindeutige Dialog definierung
    - DIALOG_STYLE_MSGBOX ~ Das ist der Style des Dialoges
    - "Tutorial" ~ Die Überschrift
    - "Euer Text halt hier" ~ Da gibt ihr euren Text ein um wenn ihr wollt das Texte auch untereinander sind \n zwischen schreiben
    - "Weiter" ~ Steht ja da was es Bedeutet
    - "" ~ Das was ich da gemacht habe bewirkt, das nur 1 Button angezeigt wird wollt ihr da 2 haben schreibt da was rein


    In den Stock würde das so aussehen:


    stock Register(playerid,key[])
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    dini_Create(Spielerdatei);
    dini_Set(Spielerdatei,"Passwort",key);
    ShowPlayerDialog(playerid,DIALOG_TUTORIAL1,DIALOG_STYLE_MSGBOX,"Tutorial","Euer Text halt hier","Weiter","");
    SendClientMessage(playerid,BLAU,"Erfolgreich registriert.");
    SetPlayerScore(playerid,0);
    SetPVarInt(playerid,"loggedin",1);
    return 1;
    }


    Wenn ihr euer Script jetzt Compilt und ein neuen Account auf euren Server regestriert wird dieser Dialog auch angezeigt
    Da es aber kein Sinn macht nur 1 Dialog anzeigen zu lassen werden wir nun zu schritt 2 gehen.


    Ihr geht zu den public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])


    in diesen Public werden den Dialogbuttons eine Funktion zugewiesen also in den fall wenn wir auf Weiter geklickt haben


    nun erstellen wir eine Funktion
    die so aussehen sollte


    if(dialogid==DIALOG_TUTORIAL1)


    ihr seht, das da wieder die Dialog definierung drin steht damit die Dialoge auch verwendet werden können machen wir mal weiter


    wir erweitern nun das Dialog


    if(dialogid==DIALOG_TUTORIAL1)
    {
    if(response==1)//Das ist der Button Weiter
    {

    }
    if(response==0)//Das währe der Button den ich nicht angegeben habe
    {


    }
    }


    So währe schonmal ein Grundgerüst errichtet
    damit auch wenn man auf weiter Drückt ein Dialog kommt definieren wir wieder ein dialog


    also schreibt unter den
    #define DIALOG_TUTORIAL1 xxx
    einfach noch
    #define DIALOG_TUTORIAL2 xxx


    somit haben wir den 2. auch wieder definiert


    Damit das 2. Dialog wenn man auf weiter klickt angezeigt wird erstellen wir in der
    if(dialogid==DIALOG_TUTORIAL1) wieder ein Dialog das so aussehen würde


    if(dialogid==DIALOG_TUTORIAL1)
    {
    if(response==1)//Das ist der Button Weiter
    {
    ShowPlayerDialog(playerid,DIALOG_TUTORIAL2,DIALOG_STYLE_MSGBOX,"Tutorial","Euer Text halt hier","Weiter","");
    }
    if(response==0)//Das währe der Button den ich nicht angegeben habe
    {
    //Hier uninteressant
    }
    }


    ihr seht das ich in der if(response==1) wieder ein Dialog eingetragen habe
    das ist auch richtig so wenn ihr jetzt das Script wieder Compielt und wieder
    ein Testaccount auf euren Server macht, werdet ihr merken, das soblald ihr auf Weiter geklickt
    habt, der 2. Dialog angezeigt wird.


    wenn ihr mehr Dialoge machen wollt, macht es nach den Muster was ich da erstellt habe.


    Ich hoffe, das es soweit verständlich ist und das damit jeder was anfangen kann


    MFG
    Merte

    Einmal editiert, zuletzt von Angelo_Merte ()

  • Hammer Tutorial und sehr gut erklärt. Das habe ich schon lange gesucht :D. 10000/10 ;)

    Die Kritik an anderen hat noch keinem die eigene Leistung erspart.

    – Noël Coward

  • Ich glaub keiner will ein Tutorial in Dialogen, da jeder einfach 'weiter' drückt. :) :*

  • Ich finde es besser in Dialogen, da es mir oft einfach zu lange dauert das per Timer anzusehen

  • huete Presentiere


    naja, das Tutorial ist meiner Meinung nach nicht so sehr sinnvoll ^^


    den stock haste zwar schön aus deinem Script kopiert aber da du ihn nicht erklärst werden sich die User ihn nur kopieren und nicht darüber nachdenken, was sie da überhaupt kopieren :)


    und


    #deine DIALOG_TUTORIAL1 xxx


    sollte das nicht #define heißen :huh:


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Naja, nicht wirklich schwer.
    Habs auch in Dialogen und finde es besser, weil viele Spieler bei der anderen Variante einfach disconnecten und sich nen anderen Server suchen.
    Wer dann nicht weiß was er machen soll, ist selbst Schuld.


    Trotzdem gutes Tutorial.
    Hätte man noch besser ausfüllen können ;D


    8/10 Brotfischen - Gute Arbeit

  • den stock haste zwar schön aus deinem Script kopiert aber da du ihn nicht erklärst werden sich die User ihn nur kopieren und nicht darüber nachdenken, was sie da überhaupt kopieren :)


    Ja Kaliber da hast du zwar recht aber ich habe oben eine Verlinkung gemacht wo ich den bereits erklärt habe