コレクション
Important
エコノミー v2 が一般提供になりました。 サポートとフィードバックについては、PlayFab フォーラムをご利用ください。
Economy v2 インベントリ サービスでは、インベントリの柔軟性を高め、さらなるニーズに応えることのできる、コレクションの概念が導入されています。 コレクションは、1 人のプレイヤー/PlayerId が複数のインベントリを保有できるメカニズムです。 この機能を使用すると、同じプレイヤーのキャラクターごとに複数のインベントリを管理したり、プラットフォームごとに個別のインベントリを作成したりできます。
インベントリ API 呼び出しは、アクションを実行するコレクション/インベントリを指定する CollectionId
パラメーターを受け取ることができます。 新しいコレクションを作成するには、未使用の CollectionId にアイテム/スタックを追加します。
インベントリ コレクションの管理
GetInventoryCollectionIds
GetInventoryCollectionIds
API を使用すると、特定のプレイヤーの CollectionId
の一覧を取得できます。 プレイヤーは、自分の ID の一覧にしかアクセスできません。 タイトル エンティティでは、Entity
パラメーターを渡して、どのプレイヤーのインベントリにアクセスしたいかを示すことができます。
GetInventoryCollectionIds
要求の一例:
{
"Entity": {
"Type": "title_player_account",
"Id": "ABCD12345678"
},
"Count": 15,
"ContinuationToken": "abc="
}
この要求は、次の応答を返します:
{
"data": {
"CollectionIds": [
"default".
"main_character"
]
}
}
継続トークン
検索応答から返される ContinuationToken
フィールドは、ページ分割された複数の結果を扱う場合にインベントリ要求に含めて渡すことができます。
新しいインベントリ コレクションの追加
プレイヤーの新しいコレクションを作成するには、新しい CollectionId を使用して書き込み要求を実行します。
たとえば、次の AddInventoryItems
要求では collectionId main_character
を使用します。
{
"Entity": {
"Type": "title_player_account",
"Id": "ABCD12345678"
},
"CollectionId": "main_character",
"Item": {
"Id": "0b440353-bdbc-48d8-8873-f0988c1f9d8b",
},
"Amount": 10,
}
上記の要求では、新しいインベントリ コレクションを作成し、5 つのアイテムを追加するか、既に存在する場合は既存の main_character
インベントリ コレクションに 5 つ追加します。
DeleteInventoryCollection
DeleteInventoryCollectionId
API では、削除する CollectionId
を定義できます。 削除は非同期操作であり、大きいコレクションでは時間がかかる場合があります。 削除操作が完了するまで、コレクションを再作成することはできません。
DeleteInventoryCollectionIds
要求の一例:
{
"Entity": {
"Type": "title_player_account",
"Id": "ABCD12345678"
},
"CollectionId": "main_character"
}
注意
現時点では、API がインベントリ コレクションを削除する唯一の方法です。 ゲーム マネージャーは現在、新規および既存のコレクションのアイテムの表示および追加にしか使用できません。 今後、他の機能も追加される予定です。
ExecuteInventoryOperations API
ExecuteInventoryOperations
API で CollectionId
パラメーターを設定できます。 このパラメーターを使用すると、操作を実行するコレクションを定義できます。
スタックを使用した ExecuteInventoryOperations
リクエストの例:
{
"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
}
}
]
}