Rangfolge von Spielern nach Statistiken
In diesem Tutorial erfahren Sie, wie Sie sowohl Leaderboards als auch Statistikdienste zusammen verwenden. Das Endergebnis ist, dass, wenn eine Statistik für eine Entität aktualisiert wird, automatisch in der entsprechenden Bestenliste angezeigt wird. Weitere Informationen zu Azure PlayFab-Statistiken finden Sie unter Übersicht über Statistiken.
Beginnen wir mit einem Beispiel für ein Shooter-Spiel, das beide Dienste verwendet. Hier nutzen wir das Tutorial erstellen einer einfachen Statistik und fahren mit der Annahme fort, dass wir bereits Statistiken für das Spiel erstellt haben. Jetzt möchten wir lange Schüsse jedes Mal nachverfolgen, wenn ein Spieler in einem Spiel einen trifft. Wir werden eine Statistik haben, die den besten Long shot eines Spielers und eine Bestenliste mit den besten Spielern erfasst, die Longshots treffen.
Erstellen einer Bestenliste, die mit einer Statistik verknüpft ist
Der erste Schritt besteht darin, eine Bestenlistendefinition zu erstellen, die die vom Statistikdienst nachverfolgten Informationen als Eingabe übernehmen kann. Das folgende Beispiel zeigt, wie Sie die Bestenlistendefinition mithilfe des C#-SDK erstellen.
public static async Task CreateStatLinkedLeaderboardDefinitionAsync(PlayFabAuthenticationContext context, string leaderboardName, string statName)
{
PlayFabProgressionInstanceAPI leaderboardsAPI = new PlayFabProgressionInstanceAPI(context);
CreateLeaderboardDefinitionRequest leaderboardDefinitionRequest = new CreateLeaderboardDefinitionRequest()
{
AuthenticationContext = context,
EntityType = EntityType,
Name = leaderboardName,
SizeLimit = 1000,
VersionConfiguration = new VersionConfiguration()
{
MaxQueryableVersions = 1,
ResetInterval = ResetInterval.Manual,
},
Columns = new List<LeaderboardColumn>()
{
new LeaderboardColumn()
{
Name = "Distance",
SortDirection = LeaderboardSortDirection.Descending,
LinkedStatisticColumn = new LinkedStatisticColumn()
{
LinkedStatisticName = statName,
LinkedStatisticColumnName = "Distance",
}
},
new LeaderboardColumn()
{
Name = "Caliber of the bullet",
SortDirection = LeaderboardSortDirection.Ascending,
LinkedStatisticColumn = new LinkedStatisticColumn()
{
LinkedStatisticName = statName,
LinkedStatisticColumnName = "Caliber",
}
}
}
};
PlayFabResult<PlayFab.LeaderboardsModels.EmptyResponse> createLbDefinitionResult = await leaderboardsAPI.CreateLeaderboardDefinitionAsync(leaderboardDefinitionRequest);
}
Nun erläutern wir den Standard Unterschied zu den anderen Bestenlistendefinitionen, die wir zuvor erstellt haben. Beachten Sie das LeaderboardColumn
-Objekt mit einer Eigenschaft namens LinkedStatisticColumn
, die es uns ermöglicht, eine Verknüpfung zwischen den Statistiken und der Bestenliste zu erstellen. Wir müssen den Statistiknamen und den Spaltennamen in dieser Statistik angeben, um die Zuordnung zu erstellen.
Auf diese Weise verfolgen wir den Fortschritt des Spielers mit dem Statistikdienst nach. Anschließend verwendet der Bestenlistendienst diese Informationen und füllt die verknüpfte Bestenliste auf.
Aufheben der Verknüpfung der Statistik mit der Bestenliste
Der Dienst verfügt auch über einen Mechanismus, um die Verknüpfung der Statistiken mit der Bestenliste bei Bedarf aufzuheben. Es kann mehrere Gründe geben, warum ein Entwickler diese Aktion ausführen möchte, z. B. das Testen verschiedener Konfigurationen oder das Zuordnen verschiedener Statistiken. Das folgende Beispiel zeigt, wie Sie die Verknüpfung der Statistiken mit der Bestenliste mithilfe des C#-SDK aufheben.
public static async Task UnlinkLeaderboard(PlayFabAuthenticationContext context, string statName, string leaderboardName)
{
PlayFabProgressionInstanceAPI leaderboardsAPI = new PlayFabProgressionInstanceAPI(context);
UnlinkLeaderboardFromStatisticRequest unlinkLbRequest = new UnlinkLeaderboardFromStatisticRequest()
{
AuthenticationContext = context,
Name = leaderboardName,
StatisticName = statName,
};
PlayFabResult<PlayFab.LeaderboardsModels.EmptyResponse> lbResponse = await leaderboardsAPI.UnlinkLeaderboardFromStatisticAsync(unlinkLbRequest);
}
Mit diesen Informationen können wir statistiken von Bestenlisten bei Bedarf verknüpfen und aufheben. Es gibt einige wichtige Einschränkungen, die Sie beachten sollten:
- Bestenlisten können nicht direkt aktualisiert werden. Sie sollten immer die Statistikaktualisierung durchlaufen, um den automatischen Mechanismus zu nutzen.
- Bestenlisten können ihre Version nicht unabhängig von der Statistik erhöhen.
- Bestenlisten können nur gelöscht werden, wenn wir den Prozess zum Aufheben der Verknüpfung durchlaufen.
Schlüsse
In diesem Tutorial haben wir gelernt, wie Sie eine von Statistiken unterstützte Bestenliste erstellen und die Verknüpfung der Dienste aufheben. Weitere Informationen zu anderen Features finden Sie auf den folgenden Seiten: