Schönen Guten Nachmittag, liebe Brotfische!
Da jetzt die Nachfrage nach einem Dialog Stats Menü etwas gestiegen ist,
habe ich mir gedacht, ich schreibe ein Tutorial darüber!
In diesem kleinem Tutorial, erkläre ich euch wie ihr den Namen, den Score und das Geld abfragen könnt.
Vorerst sag ich euch das dieses Tutorial zum Lernen dient, und ich somit einige stellen "Zensiert" habe
Auf gehts!
1)
Zu aller erst legen wir ein forward an, was den zweck hat unser "Public" "weiterzuleiten/zuladen".
forward MyDialogStatsSystem(playerid); // Legt das Forward ab diesem Moment an!
2)
Nun kommen wir zu dem Dialog Public, das könnt ihr ambesten einfach ganz unten ans Script dranhängen.
Wir erstellen ein neues Public namens MyDialogStatsSystem - Wichtig ist das es genauso wie unser Forward heißt!
public MyDialogStatsSystem(playerid)
3)
Nun legen wir im Public "neue" sachen an - (String,Name,Geld,Score) - Unser Hauptapteil der Stats
public MyDialogStatsSystem(playerid){ // Klammer öffnen
new String[128], Name[MAX_PLAYER_NAME], Geld = GetPlayerMoney(playerid), Score = GetPlayerScore(playerid); // String, Name, Geld, und Score angelegt.
return 1;
} // Klammer wieder schließen.
4)
Nun haben wir schonmal alles angelegt, jedoch müssen wir noch den Namen von dem Aufrufer herrausfinden.
Das geht so:
GetPlayerName(playerid,Name,sizeof Name); // Fügen wir unter dem neu angelegten ein.
Unser Public sollte nun so aussehen:
public MyDialogStatsSystem(playerid){ // Klammer öffnen
// new .....
GetPlayerName(playerid,Name,sizeof Name);
return 1;
} // Klammer wieder schließen.
5)
Jetzt können wir uns an den eigentlichen Dialog "rannmachen",
dazu benötigen wir einmal die format funktion und unseren String.
Folgendes fügen wir nun in unser Public ein:
format(String, sizeof(String), "[Stats von %s]\nNickname: %s\nScore: %d\n Geld: %d", Name, Name, Score, Geld); // Unsere (New's) die wir oben neu angelegt haben - immer mit einem , trennen :5
ShowPlayerDialog(playerid, DIALOG_STYLE_MSGBOX, 0, "Mein Spiel Stand", String, "Weiter", "Weiter"); // Öffne das Dialog fenster beim Spieler
Erklärung:
%s steht für einen String - BSP: Name
%d steht für eine Zahl,einen Integer - BSP: Geld
\n steht für eine Neue Zeile - BSP: Zeilenumbruch
Hier seht ihr auch die Tabelle.
Erklärung²: ShowPlayerDialog(playerid, dialogid, style, caption[], info[], button1[], button2[])
Nun sollte das Public so aussehen:
public MyDialogStatsSystem(playerid){ // Klammer öffnen
// new .....
// GetPlayerName .....
format(String, sizeof(String), "[Stats von %s]\nNickname: %s\nScore: %d\n Geld: %d", Name, Name, Score, Geld); // Unsere (New's) die wir oben neu angelegt haben - immer mit einem , trennen :5
ShowPlayerDialog(playerid, DIALOG_STYLE_MSGBOX, 0, "Mein Spiel Stand", String, "Weiter", "Weiter"); // Öffne das Dialog fenster beim Spieler
return 1;
} // Klammer wieder schließen.
6)
Endlich geschafft!
Unser Public ist nun endlich fertig, kann aber jederzeit erweitert werden!
Nun können wir unseren Dialog mit "MyDialogStatsSystem(playerid);" aufrufen.
Sprich:
if (strcmp(cmd, "/stats", true) == 0) // unser Command, kann natürlich auch anders angeordnet sein jenachdem wie er bei euch im Script definiert ist!
{
MyDialogStatsSystem(playerid); // Öffnet unsere Stats :5
return 1;
}
---
Ingame Outcome:
---
So hiermit bedanke ich mich bei euch für das tolle Lesen, und hoffe auf ein positives Feedback.
Falls weitere Fragen existieren, könnt ihr hier gerne im Theard fragenstellen.
---
Dieses Tutorial darf verändert und verbreitet werden, jedoch müsst ihr meinen Namen oder eine Verlinkung auf mein Profil erstellen!
---
Rechtschreibfehler können natürlich auch hier erhalten sein, falls ihr welche findet -> Radiert ihn aus!
---
Mit Freundlichen Grüßen
Dominik K.