集锦
重要
Economy v2 现已正式发布。 有关支持和反馈,请转到 PlayFab 论坛。
经济 v2 库存服务引入了集合的概念,可为库存需求增加更大的灵活性和支持。 集合是允许单个玩家/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 项,或者将 5 添加到现有 main_character
库存集合(如果已存在)。
DeleteInventoryCollection
在 DeleteInventoryCollectionId
API 中,可以定义要删除的 CollectionId
。 删除是一种异步操作,对于大型集合,可能需要更长时间。 在删除操作完成之前,无法重新映射集合。
请求 DeleteInventoryCollectionIds
示例:
{
"Entity": {
"Type": "title_player_account",
"Id": "ABCD12345678"
},
"CollectionId": "main_character"
}
注意
目前,API 是删除库存集合的唯一方法。 Game Manager 目前只能用于查看和添加新集合和现有集合中的项。 将来将添加其他功能。
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
}
}
]
}