商店快速入门(旧版 Economy)
重要
经济 v1 API 处于维护模式,将不会收到任何新功能,只有 bug 修复。 v1 API 将在可预见的未来进行维护。 请参阅“Economy v2 概述”,详细了解 PlayFab Economy 的下一版本!
商店是玩家在游戏中购买物品的最佳方式。
如物品快速入门中所示,PlayFab 支持从目录中购买物品,但这不是大多数游戏的购买结构。 无论你制作的是闲置点击器、RPG、FPS 还是无休止的运行程序,游戏中可能都有供应商。 玩家可以购买武器、盔甲或跑鞋的位置。
我们面向游戏内供应商和商店的解决方案是 Store,这是目录的一个子集,可以替代价格。
在本商店快速入门中,您将:
- 以常规价格将物品添加到目录。
- 创建一个商店,其中以折扣价格包含这些物品。
- 使用 PlayFab API 从商店购买物品。
- 使用 Game Manager 中的信息确认物品是以折扣商店价格购买的。
将物品添加到目录
首先,在目录中添加一些待售物品:
- 打开 Game Manager 并在左侧栏中选择 Economy。
- 选择 Catalogs 选项卡,然后打开 main 目录。
- 多次选择 New Item,创建一些物品:
- apricot,GD 价格为 4。
- pear,GD 价格为 3。
- grape,无 GD 价格(不选择任何价格)。
提示
不必为目录中的物品分配虚拟货币价格即可使它们显示在商店中。
在以下示例中,名为 apricot 的物品添加到 main 目录中,其 GD 价格为 4 。
创建商店
现在目录中应有几个具有价格的物品。 我们创建一个商店将它们卖给玩家。
- 打开 main 目录,然后选择 Stores。
- 选择 New store。
- 将 Store Id 和 Store name 设置为 fruits(如以下示例所示)。
- 选择 ADD TO STORE。
- 弹出屏幕 - 类似于下面所示屏幕 - 将显示当前目录中的所有物品、捆绑包和容器。
- 通过选择物品旁边的 Add 按钮,将几个物品添加到商店。
设置物品的商店价格
现在可以看到 STORE CONTENTS 中列出了您的物品,它们至少要有一个价格才会有效。
价格文本框旁边的小静态数字(例如,< 4)是原始目录价格。 只需为每行中的一个 框输入一个价格,不过,您可以随意输入多个价格。
- 如果不为物品输入任何价格,该物品将从商店中移除。
- 如果商店物品没有某种货币的价格,则无法使用这种货币购买该物品。
- 商店价格可以高于目录价格,零是物品的有效价格。
提示
您可以拖放商店内容中的行来重新排列物品的顺序。
- 为物品添加一些 GD 价格,但使它们低于目录价格:
- Apricot: 3。
- Pear: 2。
- Grape: 1。
- 完成后选择 SAVE STORE。
在以下示例中,对于名为 apricot 且目录价格为 4 GD 的物品,给出的商店价格为 3GD。
从商店购买物品
现在您有了一个商店,我们使用 PlayFab API 从您游戏中的商店购买某个商品。
- 通过在请求中使用以下参数调用 GetStoreItems 来获取您的商店:
CatalogVersion = "main"
StoreId = "fruits"
-
GetStoreItemsResult 中的
Store
字段应包含商店物品及其价格的列表。 - 使用请求中的值调用 PurchaseItem,这些值指定您要购买的物品的货币和商店价格。
CatalogVersion = "main"
StoreId = "fruits"
ItemId = "pear"
VirtualCurrency = "GD"
Price = 2
提示
如果在调用 PurchaseItem 时未指定 StoreId
,则尝试按照目录价格购买。
确认购买价格
打开 Game Manager,确认此购买是以 2 GD 的商店价格进行的。
- 从左侧栏中选择 Players,打开 Players 选项卡。
- 选择购买了此物品的玩家的 ID 。
- 查看此玩家的以下信息:
- 打开 Inventory 选项卡。现在物品栏应包含 pear。
- 打开 Virtual Currency 选项卡。检查虚拟货币 Amount ,以便验证玩家是否仅花费了 2 GD。
- 打开 PlayStream 选项卡。可以看到显示商店购买流程的事件。 这些应包括玩家虚拟货币物品已购买事件,以及显示虚拟货币余额更改了 2 GD 的玩家虚拟货币余额已更改事件。
提示
可以使用 Game Manager 更改商店中物品的顺序以及随时调整价格。
后续步骤
您已经学会了如何在游戏中创建和利用商店,那么准备探索商店的一些更高级用途。
例如,通过将细分与商店结合使用,您能够在不接触游戏代码的情况下为某些玩家提供特价。