Moin moin,
ich hatte grade Langeweile und dachte, ich schreibe ein kleines Tutorial, wie man ein 2 Teiliges Statsmenü codet.
Nun denn:
1. Schritt:
Zu Anfang müsst ihr alles definen.
z.B. so:
#define Stats 200//der erste dialog - bitte nehmt eine definierte Zahl, die ihr noch nicht in einem Dialog verwendet
#define Stats2 201//der zweite dialog - bitte nehmt eine definierte Zahl, die ihr noch nicht in einem Dialog verwendet
forward ShowStats(playerid,targetid);//die Definition des Publics
2. Schritt:
Der Befehl, um den Dialog aufzurufen...
In meinem Beispiel habe ich oben die Public, wie im Godfather - Mode definiert, daher:
if (strcmp(cmd, "/stats", true) == 0)//Der Befehl, um das Menü aufzurufen
{
if(IsPlayerConnected(playerid))//Die Abfrage, ob der Spieler online ist
{
if (gPlayerLogged[playerid] != 0)//Die Abfrage, ob der Spieler eingeloggt ist
{
ShowStats(playerid,playerid);//Die aufzurufende Public
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, " Du bist nicht eingeloggt !");
}
}
return 1;
}
3. Schritt:
Nun zum Inhalt des oben definierten und aufgerufenen Publics...
public ShowStats(playerid,targetid)
{
if(IsPlayerConnected(playerid)&&IsPlayerConnected(targetid))
{
new name[MAX_PLAYER_NAME];//Als Beispiel einfach mal die Namensanzeige
GetPlayerName(targetid, name, sizeof(name));//Die Abfrage des Namens
new string2[256];//Die Definition des strings
new coordsstring0[256];//Die Definition des Inhalts vom definierten string
format(coordsstring0, sizeof(coordsstring0),"Name: %s", name);//Der Inhalt des strings, hier der Name des Spielers
format(string2,sizeof(string2),"%s",coordsstring0);//Wie der Dialog aussehen soll
ShowPlayerDialog(playerid,Stats,DIALOG_STYLE_MSGBOX,"Statistiken",string2,"Weiter","Schließen");//Hier der zu öffnende Dialog, mit dem oben definierten Inhalt
}
}
4. Schritt:
Um den Stats Dialog dann 2-Teilig zu machen...
Unter public OnDialogResponse:
if(dialogid == Stats)
{
if(response == 0)//Was passiert, wenn der Spieler auf schließen drückt.
{
//Also nichts
}
if(response == 1)//Hier, was angezeigt werden soll, wenn der Spieler auf "Weiter" drückt
{
new name[MAX_PLAYER_NAME];//Als Beispiel einfach nochmal die Namensanzeige
GetPlayerName(targetid, name, sizeof(name));//Die Abfrage des Namens
new string2[256];//Die Definition des strings
new coordsstring0[256];//Die Definition des Inhalts vom definierten string
format(coordsstring0, sizeof(coordsstring0),"Name: %s", name);//Der Inhalt des strings, hier der Name des Spielers
format(string2,sizeof(string2),"%s",coordsstring0);//Wie der Dialog aussehen soll
ShowPlayerDialog(playerid,Stats2,DIALOG_STYLE_MSGBOX,"Statistiken",string2,"Zurück","Schließen");//Hier zu öffnende Dialog, wenn der Spieler auf Weiter geklickt hat. Es öffnet sich dann der 2. Statsdialog
}
}
if(dialogid == Stats2)
{
if(response == 0)//Was passiert, wenn der Spieler auf schließen drückt.
{
//Also nichts
}
if(response == 1)//Hier, was angezeigt werden soll, wenn der Spieler auf "Zurück" drückt
{
new name[MAX_PLAYER_NAME];//Als Beispiel wieder die Namensanzeige
GetPlayerName(targetid, name, sizeof(name));//Die Abfrage des Namens
new string2[256];//Die Definition des strings
new coordsstring0[256];//Die Definition des Inhalts vom definierten string
format(coordsstring0, sizeof(coordsstring0),"Name: %s", name);//Der Inhalt des strings, hier der Name des Spielers
format(string2,sizeof(string2),"%s",coordsstring0);//Wie der Dialog aussehen soll
ShowPlayerDialog(playerid,Stats,DIALOG_STYLE_MSGBOX,"Statistiken",string2,"Weiter","Schließen");//Hier zu öffnende Dialog, wenn der Spieler auf Weiter geklickt hat. Es öffnet sich dann wieder der 1. Stats dialog
}
}
Das war mein kleines Tutorial, für einen 2 - Teiligen /stats Dialog. Ihr könnt dieses Tutorial auch zur Vorlage für einen
1 - Seitigen /stats Dialog nutzen. Ich denke, dass es ganz hilfreich für Anfänger ist.
Viel Spaß beim ausprobieren. Alle Angaben sind ohne Gewähr und für den Godfather - Gamemode ausgelegt.
ps: Rechtschreibfehler sind Special-Effects meiner Tastatur
lg ~Jean~
$dit 4 Fehlerbehebungen