Freigeben über


Sammlungen

Wichtig

Economy v2 ist jetzt allgemein verfügbar. Unterstützung und Feedback erhalten Sie im PlayFab-Forum.

Der Economy v2 Inventory-Dienst führt das Konzept von Sammlungen ein, die mehr Flexibilität und Unterstützung für Ihre Bestandsanforderungen erhöhen können. Sammlungen sind der Mechanismus, der es einem einzelnen Player/einer PlayerId ermöglicht, mehrere Inventare zu haben. Dieses Feature kann verwendet werden, um mehrere Inventare für verschiedene Charaktere für denselben Spieler zu verwalten, separate Inventare für verschiedene Plattformen zu haben und vieles mehr!

Inventur-API-Aufrufe können einen CollectionId Parameter annehmen, der die Sammlung bzw. den Bestand angibt, in der die Aktion ausgeführt werden soll. Das Erstellen einer neuen Sammlung erfolgt durch Hinzufügen eines Elements/Stapels zu einer nicht verwendeten CollectionId.

Verwalten von Bestandssammlungen

GetInventoryCollectionIds

Mithilfe der GetInventoryCollectionIds API können Sie eine Liste von CollectionIds für einen bestimmten Spieler abrufen. Spieler dürfen nur auf ihre eigene Liste von IDs zugreifen. Titelentitäten können einen Entity Parameter übergeben, um anzugeben, auf welchen Spielerbestand sie zugreifen möchten.

Eine Beispielanforderung GetInventoryCollectionIds :

{
  "Entity": {
    "Type": "title_player_account",
    "Id": "ABCD12345678"
  },
  "Count": 15,
  "ContinuationToken": "abc="
}

Diese Anforderung würde die folgende Antwort zurückgeben:

{
  "data": {
  "CollectionIds": [
    "default".
    "main_character"
    ]
  }
}

Fortsetzungstoken

Das ContinuationToken Feld, das von einer Suchantwort zurückgegeben wird, kann an eine Bestandsanforderung übergeben werden, um mehrere Anzahlen von Ergebnissen zu paginieren.

Hinzufügen einer neuen Bestandssammlung

Das Erstellen einer neuen Sammlung für einen Spieler erfolgt durch Ausführen einer beliebigen Schreibanforderung mit einer neuen CollectionId.

In der folgenden AddInventoryItems Anforderung wird beispielsweise die collectionId verwendet. main_character

{
    "Entity": {
        "Type": "title_player_account",
        "Id": "ABCD12345678"
    },
    "CollectionId": "main_character",
    "Item": {
        "Id": "0b440353-bdbc-48d8-8873-f0988c1f9d8b",
    },
    "Amount": 10,
}

Die obige Anforderung würde entweder eine brandneue Bestandssammlung von erstellen und 5 des Elements hinzufügen oder der vorhandenen main_character Bestandssammlung 5 hinzufügen, wenn sie bereits vorhanden ist.

DeleteInventoryCollection

In der DeleteInventoryCollectionId API können Sie die definieren, die CollectionId Sie löschen möchten. Das Löschen ist ein asynchroner Vorgang und kann bei umfangreichen Sammlungen länger dauern. Die Sammlung kann erst dann neu erstellt werden, wenn der Löschvorgang abgeschlossen ist.

Eine Beispielanforderung DeleteInventoryCollectionIds :

{
  "Entity": {
    "Type": "title_player_account",
    "Id": "ABCD12345678"
  },
  "CollectionId": "main_character"
}

Notiz

Derzeit sind APIs die einzige Möglichkeit zum Löschen von Bestandssammlungen. Game Manager kann derzeit nur zum Anzeigen und Hinzufügen von Elementen zu neuen und vorhandenen Sammlungen verwendet werden. Weitere Funktionen werden in Zukunft hinzugefügt.

ExecuteInventoryOperations-API

Sie können einen CollectionId Parameter in der ExecuteInventoryOperations API festlegen. Mit diesem Parameter können Sie die Sammlung definieren, in der die Vorgänge ausgeführt werden sollen.

Beispielanforderung ExecuteInventoryOperations mit Stapeln:

{
    "Entity": {
        "Type": "title_player_account",
        "Id": "ABCD12345678"
    },
    "CollectionId": "main_character",
    "Operations": [
        {
            "Update": {
                "Item" {
                    "Id": "0b440353-bdbc-48d8-8873-f0988c1f9d8b",
                    "Amount": 10
                }
            }
        },
        {
            "Subtract": {
                "Item" {
                    "Id": "0b440353-bdbc-48d8-8873-f0988c1f9d8b",
                },
                "Amount": 5
            }
        }
    ]
}