创造你的世界
经济

产品 API 使用示例

18min

以下是使用产品API管理世界货币和世界产品的示例。

此示例使您能够基本了解产品API,并实现服务器与客户端之间的消息发送和接收,以便您可以轻松测试授予和扣除世界货币和产品。

此示例包括世界货币和世界产品客户端脚本的描述,随后是处理所有服务器端处理的集成服务器脚本,并包括以下功能:

  • 授予世界货币
  • 扣除世界货币
  • 在不扣除货币的情况下授予世界产品
  • 扣除世界产品
Document image




授予与扣除世界货币

以下是管理世界货币授予和扣除的完整客户端代码,以及如何实现它。

货币客户端脚本

CurrencyManagerSample




货币客户端脚本描述

  • 当角色加载时,会向服务器发送房间消息以加载现有的货币余额。然后根据从服务器接收到的余额信息更新 UI。
TypeScript

  • 为了促进消息交换,CurrencyMessage 接口被定义。
TypeScript

  • 当用户增加或减少他们的货币时,他们会作为房间消息向服务器发送请求。 它包括有关要增加或减少哪种货币以及增加或减少多少的数据。
TypeScript

  • 服务器然后处理货币的增加或减少,并将最终余额信息发送给客户端。客户端接收此信息并更新用户界面。
TypeScript




授予与扣除世界产品

以下是管理世界产品授予和扣除的完整客户端代码,以及如何实现它。

产品客户端脚本

ProductManagerSample




产品客户端脚本描述

  • 当角色加载时,使用 InventoryServiceZEPETO.Inventory 来加载初始产品库存。然后更新UI。
TypeScript

  • 要发送和接收消息,定义 ProductMessage 接口。定义一个 ProductAction 枚举以供示例实现。
TypeScript

  • 当您增加或减少产品时,您将该数据作为房间消息发送到服务器。 它包括有关要增加或减少哪个产品以及增加或减少多少的数据。
TypeScript

  • 处理产品变更后,服务器将最终库存信息发送给客户端,客户端相应地更新UI。
TypeScript




服务器脚本

以下是管理世界货币和产品的完整服务器代码,以及如何实现它。

完整服务器脚本

TypeScript




服务器脚本描述

  • 通过管理世界货币 ZEPETO.Multiplay.Currency.
  • 使用 currency.credit()currency.debit() 来增加或减少所需货币的余额。之后,调用 currency.getBalances() 来获取每种货币的当前余额。
TypeScript

  • 通过管理世界产品 ZEPETO.Multiplay.Inventory.
  • 使用 inventory.add()inventory.use() 来增加或减少所需货币的余额。
TypeScript

  • 处理来自客户的增加或减少货币和产品的请求。
  • 使用loadBalance()来获取在ZEPETO Studio中注册的货币信息。
  • 如果有多种货币,您可以根据特定的货币ID值进行条件筛选,以仅获取该货币的余额。
  • 将最终余额值作为房间消息传递给客户端。