• 资源道具化


    概念

    概念:系统中的每一个资源分配一个唯一标识。

    举例:金币、钻石、道具、礼包、勋章、英雄、英雄碎片、活动积分、表情等。

    中间层:处理资源增减请求。


    举例

    签到为例

    yes
    签到请求
    是否可签
    读取奖励配置
    直接获得奖励
    结束
    提出资源增加请求

    红色要优于橙色。

    红线逻辑,签到模块不关心奖励是怎么加上去的。

    中间层处理资源

    增加
    没有该英雄
    有该英雄 不允许分解
    有该英雄 允许分解
    资源增减请求
    增加or减少
    不同的类型
    加金币
    加英雄碎片
    调用背包模块
    加英雄
    调用英雄模块
    读取碎片数 发起加碎片请求

    中间层实现了增减资源的操作。

    两张表

    资源表

    idtypedescext…
    资源ID唯一标识不同的类型描述一些扩展字段

    签到表

    dayidcount
    第几天资源ID数量

    需求扩展

    需求:签到给英雄,如果玩家已经拥有该英雄,则改为给3个英雄碎片。

    实现:兑换表:英雄、英雄碎片、兑换个数。把自动拆为碎片的逻辑放入中间层,签到模块不用关心。

    需求:如果玩家获得A道具100次,获得S勋章。获得3次S勋章,达成Y成就。

    实现:勋章表:道具、收集次数。成就表:勋章、收集次数。

    增加道具时,对应计数+1。判断是否触发勋章获得的条件,如果达成,增加对应的勋章。

    增加勋章时,对应计数+1。判断是否触发成就获得的条件,如果达成,增加对应的成就。

    道具、勋章、成就,都资源化,无差别对待。根据资源表中的type,做不同逻辑。

    不同的模块,可以复用这套逻辑。

    需求:签到给积分,积分可以兑换英雄碎片。

    实现:积分作为一种资源,分配一个ID,对接兑换模块。

    兑换模块,先发起减请求,再发起加请求。


    总结

    • 资源道具化,统一性。
    • 中间层,对外界屏蔽不同资源的差异。
    • 子模块不直接交互,通过中间层间接交互。
  • 相关阅读:
    进程间通信之信号灯 || 网络协议UDP/TCP || 三次握手四次挥手
    【算法】快速排序与归并排序
    35 | find方式的使用
    让图片说话SadTalker
    【博客718】时序数据库基石:LSM Tree(log-structured merge-tree)
    离线安装python
    安装robotframework的RIDE/wxPython 依赖VC的编译器, 使用VC BuildTool 解决
    数据结构入门4-2(广义表、例题)
    Sourcetree 无法打开/闪退问题
    数据结构线性表之双链表
  • 原文地址:https://blog.csdn.net/tianxia_taiping/article/details/125627250