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