Skip to content

商业化上线 ​

网络服里用钻石/绿宝石购买的商品,必须走商品审核,通过后才能上架;商品在游戏里生效,要配合官方商城插件(neteaseShop)。

商品提审 ​

  1. 开发者平台【PE 商品管理】添加商品,填基本信息后保存
    • 实现指令:开发者自定义的指令,每次购买执行 1 次
    • 首充内容:勾选后玩家首次购买有额外发货;首充实现指令首次购买执行 1 次
  2. 在【查看详情 → 库存编辑】提交审核
  3. 审核通过的商品出现在【橱窗编辑】,点上架即可在客户端显示(未过审无法在橱窗展示)

关联商城插件 ​

强烈推荐用官方商城插件实现发货。

打开道具商店 ​

端配置
仅 PE 端可用引擎自带商店(use_custom_shop=false)或插件自定义商店(true)
需支持 PC 端PC 引擎无自带商店,必须用插件自定义商店(use_custom_shop=true)

实现发货逻辑 ​

  • 无特殊发货:自动发货(auto_detect=true),监听 ServerShipItemsEvent 处理
  • 有特殊发货(如到特定 NPC 对话):关闭自动发货(auto_detect=false),用 API StartShipProcess 触发查单
python
class TestServerSystem(ServerSystem):
    def __init__(self, namespace, systemName):
        self.ListenForEvent("neteaseShop", "neteaseShopDev",
            "ServerShipItemsEvent", self, self.OnServerShipItems)

    def OnServerShipItems(self, args):
        # args["entities"] 每项含 uuid、item_num、orderid、cmd、buy_time 等
        for entity in args["entities"]:
            itemNum = entity["item_num"]
            cmd = entity["cmd"]
            # TODO: 根据 cmd 给玩家发货
        self.ShipSuccess(args)   # 发完货必须通知 Apollo

    def ShipSuccess(self, args):
        shop = serverApi.GetSystem("neteaseShop", "neteaseShopDev")
        shop.ShipOrderSuccess(args)   # 通知发货成功

entities 里每笔订单的 uuid 形如 8a0886b5-xxxx-xxxx-xxxx-xxxxxxxxxxxx(玩家唯一编号),发完货必须回调 ShipOrderSuccess 告知 Apollo,否则订单不闭环。

Spigot 开服的商城

用 Spigot 框架开服时,商城插件实现不同,参考第三方框架章节。

测试 ​

  1. 申请测试货币:MC Studio【管理 → PC 组件管理】申请,只在测试环境生效
  2. 移动端:测试版登录器进游戏,左上角商店入口购买
  3. PC 端:【开发测试】开客户端,必须用插件自定义商店(use_custom_shop=true),左上角【打开商店】
  4. MC Studio:【线上服务器 → 更多 → 商店】打开测试商店界面

下一篇监控与日志:Grafana 监控报警、ELK 日志检索。回到基岩版网络游戏首页。