集锦

重要

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
            }
        }
    ]
}