Freigeben über


Zugreifen auf archivierte Turnierergebnisse

In diesem Tutorial wird veranschaulicht, wie Sie auf archivierte Bestenlistenzustände zugreifen können.

Jede Bestenliste kann manuell oder automatisch zurückgesetzt werden. Dies bedeutet, dass Statistikwerte für alle Spieler entfernt werden, was zu einem klaren Zustand führt und die Bestenliste-Version implementiert wird.

Bevor dies geschieht, erstellt PlayFab jedoch eine Momentaufnahme aller Statistikwerte der Bestenliste für jeden Spieler. Dadurch können Sie auf diese archivierte Version der Bestenliste zugreifen.

Notiz

Mit allen Titeln können Sie auf die zuletzt archivierte Version einer Bestenliste zugreifen. Dadurch erhalten Sie die aktuellen und die meisten früheren Versionen. Wenn Ihre aktuelle Leaderboard-Version beispielsweise 3 ist, können Sie nur auf Version 3 und die archivierte Version 2 zugreifen.

Ersteinrichtung

Bevor Sie diesen Leitfaden verwenden, stellen Sie sicher, dass Sie bereits einige Spieler für den Titel registriert haben. Der folgende Screenshot zeigt 5 Spieler, die mithilfe des Api-Aufrufs LoginWithCustomID künstlich registriert wurden.

Game Manager – Spieler – Letzte Anmeldungen

Definieren und Simulieren einer Bestenliste

In diesem Schritt erstellen wir eine Bestenliste für unsere Testzwecke. Anschließend simulieren wir den Iterationsprozess der Bestenliste, indem wir die Bestenliste mehrmals auffüllen und zurücksetzen.

Öffnen Sie den Game Manager:

  1. Navigieren Sie zum Abschnitt Bestenlisten .
  2. Wählen Sie die Schaltfläche Neue Bestenliste aus, wie unten gezeigt.

So konfigurieren Sie die neue Bestenliste:

  1. Legen Sie den Namen der Statistik auf TestScore fest.
  2. Behalten Sie die Zurücksetzungshäufigkeitmanuell bei.
  3. Übernehmen Sie die Standardaggregationsmethode .
  4. Senden Sie die Datei, indem Sie Bestenliste speichern auswählen.

Game Manager – Bestenlisten – Neue Bestenliste – Eigenschaften

Sie gelangen auf die neue Seite "Bestenlisten ", auf der leere Daten gerendert werden (siehe unten).

Game Manager – Bestenlisten – Bearbeiten der Bestenliste

Abschnitt "Test beginnen"

Wichtig

Der folgende Abschnitt ist ein Beispiel für das Auffüllen von Testdaten für die Zwecke dieses Beispiels. Ihr echtes Spiel füllt diese Daten auf natürlichere Weise auf.

Unser nächster Schritt besteht darin, einige Daten für unsere Bestenliste zu simulieren. Die schnellste Möglichkeit besteht darin, einen CloudScript-Handler zu erstellen, der zufällige Statistiken für einen bestimmten Spieler festlegt. Wir rufen diesen Handler für jeden Spieler über das Segment Alle Spieler auf.

Als Ergebnis erhält jeder Spieler einen zufälligen statistischen Wert, der eine gute Annäherung an ein reales Szenario ist.

Beginnen wir mit der Definition von CloudScript (weitere Informationen finden Sie in den Codekommentaren).

// Should be invoked from a task that runs over certain segment
handlers.PopulateLeaderboard = (args,ctx) => {
    // When handler is executed as a task over the segment
    // we can extract individual player id using the next line:
    let playerId = ctx.playerProfile.PlayerId;

    // Use player id and update player statistics as follows:
    server.UpdatePlayerStatistics({
        PlayFabId : playerId,
        Statistics : [
            {
                "StatisticName": "TestScore",
                "Value": getRandomInRange(100,1000)
            }
        ]
    });
}

// Utility method to generate random number
let getRandomInRange = (min, max) => {
    return Math.round(Math.random() * (max - min) + min);
}

Laden wir CloudScript hoch. Verwenden von Game Manager:

  1. Navigieren Sie zur Registerkarte Automatisierung .
  2. Navigieren Sie dann zur Unterregisterkarte CloudScript .
  3. Fügen Sie den CloudScript-Code ein.
  4. Wählen Sie Als Revision speichern aus.
  5. Schließlich stellen Sie Revision bereit.

Game Manager – Automatisierung – CloudScript – Hochladen von CloudScript

Als Nächstes müssen wir eine Aufgabe definieren, um unser CloudScript über ein bestimmtes Segment auszuführen:

  1. Navigieren Sie zur Registerkarte Spieler .
  2. Navigieren Sie dann zur Unterregisterkarte Segmente .

Standardmäßig generiert PlayFab ein Segment "Alle Spieler " für Sie. Dieses Segment ist besonders nützlich, wenn Sie alle Spieler in Ihrem Titel registrieren müssen (was genau bei uns der Fall ist).

  1. Wählen Sie das Segment Alle Spieler aus.
  2. Wählen Sie abschließend Task ausführen... aus.

Notiz

Wenn Sie kein Segment Alle Spieler in der Liste haben, lesen Sie bitte unseren Schnellstart zur Spielersegmentierung , um eins zu erstellen.

Game Manager – Spieler – Segmente – Alle Spieler – Aufgabe ausführen

So konfigurieren Sie die Aufgabe:

  1. Richten Sie den Namen ein.
  2. Stellen Sie sicher, dass der Tasktyp auf Aktionen für jeden Player in einem Segment ausführen festgelegt ist.
    • Vergewissern Sie sich außerdem, dass unter Segmentdie Option Alle Spieler ausgewählt ist.
  3. Fügen Sie eine neue Aktion hinzu.
  4. Wählen Sie unter Typdie Option CloudScript ausführen aus.
  5. Wählen Sie dann unter CloudScript-Funktion den Handler PopulateLeaderboard aus.
  6. Wählen Sie abschließend die Schaltfläche Speichern und ausführen aus.

Game Manager – Aufgabe konfigurieren

  • Stellen Sie sicher, dass das Ausführungsergebnis erfolgreich ist.

Game Manager – Taskausführung erfolgreich

Ende des Testabschnitts

Auffüllen von Testdaten

  1. Navigieren Sie erneut zur Registerkarte Bestenlisten .
  2. Wählen Sie unsere Bestenliste aus.

Game Manager – Bestenlisten – Testergebnis

  1. Sie werden sehen, dass Ihre Bestenliste mit Zufallswerten aufgefüllt wurde.
  2. Setzen Sie die Bestenliste zurück.

Zurücksetzen der Testbewertungs-Bestenliste

Dadurch wird eine Momentaufnahme aller daten erstellt, die wir derzeit haben, und dann werden statistikwerte für jeden Spieler zunichte gemacht und die Version erhöht.

  • Nachdem Ihre Bestenliste zurückgesetzt wurde, führen Sie die CloudScript-Aufgabe erneut aus.
  • Wiederholen Sie dies 2-3 Mal, setzen Sie dann zurück, und füllen Sie sie erneut aus.

Sie erhalten mehrere Leaderboard-Versionen(1):

  • Aktuelle Versionsdaten werden in der Tabelle links (3) angezeigt.
  • Archivierte Daten sind für frühere Versionen (2) verfügbar.
  • Es ist nur die neueste Version verfügbar. Dies gilt für alle Titel.

Game Manager – Bestenlisten – Leaderboards – Leaderboard-Versionen

Zugreifen auf archivierte Daten mithilfe von Game Manager

Sie können auf archivierte Ergebnisse direkt über die Bestenlistenseite zugreifen:

  1. Navigieren Sie zur Registerkarte Bestenlisten .
  2. Wählen Sie die gewünschte Bestenliste aus.

Game Manager – Bestenlisten – Bestenliste auswählen

  1. Wenn Ihre Bestenliste archivierte Revisionen enthält, können Sie JSON-Daten über den Downloadlink im folgenden Screenshot herunterladen.

Game Manager – Bestenlisten – Archivierte Revision herunterladen

Zugreifen auf archivierte Daten mithilfe der API

Mit dem folgenden Code können Sie die neueste (aktuelle) Version der Bestenliste abrufen.

PlayFabClientAPI.GetLeaderboard(new GetLeaderboardRequest()
{
    StatisticName = "TestScore",
}, result =>
{
    Debug.Log("Leaderboard version: "+result.Version);
    foreach (var entry in result.Leaderboard)
    {
        Debug.Log(entry.PlayFabId+" "+entry.StatValue);
    }
}, FailureCallback);

Das Ergebnis sieht wie im folgenden Beispiel aus.

Debugausgabe: Anzeigen von Leaderboard-Versionen

Alternativ können Sie eine Version der Bestenliste angeben, die Sie laden möchten.

PlayFabClientAPI.GetLeaderboard(new GetLeaderboardRequest()
{
    StatisticName = "TestScore",
    Version = 1
}, result =>
{
    Debug.Log("Leaderboard version: "+result.Version);

    foreach (var entry in result.Leaderboard)
    {
        Debug.Log(entry.PlayFabId+" "+entry.StatValue);
    }
}, FailureCallback);

Das Ergebnis sieht wie im folgenden Beispiel aus.

Debugausgabe: Anzeigen der Bestenliste Version 1

Mit allen Titeln können Sie auf die neueste archivierte Version der Bestenliste zugreifen. Der Versuch, eine ältere Version zu pullen, führt zu einem Fehler (siehe unten).

Fehler: Leaderboard-Version nicht verfügbar

Die gleichen Regeln gelten für alle Leaderboard-Anforderungen.

Informationen zu nützlichen Eigenschaften, die Sie mit den Bestenlistendaten erhalten können, finden Sie in der Dokumentation für das GetLeaderboardResult-Objekt .