跳到主要内容

PRD-025 装备系统

文档编号:PRD-025
版本:v1.0
状态:已通过
适用端:服务端 / 客户端
关联模块:ItemBase.xml、ScenesServer/Item.cpp、RecordServer

1. 背景与目标​

装备是角色养成的主干。当前装备穿戴校验分散、替换时属性重算不一致、绑定规则不清晰。本 PRD 统一装备的穿戴、替换、绑定、耐久与套装效果。

目标

  • 10 个装备槽位,支持职业/等级/性别限制。
  • 穿戴/卸下后属性实时重算,客户端展示一致。
  • 绑定、耐久、套装效果规则明确。

2. 核心规则​

2.1 槽位​

槽位说明
武器决定普攻与技能系数
副手盾/法器,部分职业可用
头盔、项链、衣服、腰带、护腕、戒指×2、鞋子防御/属性
时装仅外观,不影响属性

2.2 品质与属性​

品质颜色附加属性条数
普通白0
优秀绿1
精良蓝2
史诗紫3
传说橙4
  • 基础属性由 ItemBase 决定,附加属性在掉落/打造时随机。
  • 套装:集齐 2/4/6 件激活对应效果,效果不叠加同档。

2.3 穿戴与替换​

  • 校验等级、职业、性别、槽位、背包中存在。
  • 替换时旧装备回到背包;背包满则拒绝替换。
  • 替换后立即重算属性、战力、技能可用性。
  • 装备中的物品不可出售/分解/交易(可配置)。

2.4 绑定与耐久​

  • 装备后绑定(可配置为获取时绑定)。
  • 耐久在死亡/PK 中损耗,耐久为 0 时属性失效但不掉落。
  • 修理消耗金币,可在 NPC 或商城道具修理。

3. 服务端设计​

3.1 模块职责​

模块职责
EquipManager穿戴、卸下、替换、槽位管理
AttributeManager装备属性汇总与重算
ItemManager背包物品扣除/增加
RecordServer装备栏、绑定、耐久持久化

3.2 数据结构​

struct EquipSlot {
uint8_t slot;
uint64_t item_uid;
uint32_t item_id;
uint16_t durability;
bool bound;
};

struct EquipSet {
EquipSlot slots[10];
uint32_t set_flags; // 已激活套装位掩码
};

3.3 协议​

方向协议说明
C→SCS_EquipItem穿戴/替换
C→SCS_UnequipItem卸下
C→SCS_RepairItem修理
S→CSC_EquipChange槽位变化
S→CSC_EquipList登录全量装备
S→CSC_AttributeUpdate属性/战力变化

3.4 穿戴流程​

CS_EquipItem(item_uid, slot)
→ 校验物品存在、槽位匹配、等级/职业/性别
→ 校验背包空间(替换时)
→ 扣背包/旧装备入包
→ 更新装备栏、绑定标记
→ 重算属性/战力/套装
→ 广播 SC_EquipChange + SC_AttributeUpdate
→ 异步写库

3.5 属性重算​

  • 以“基础属性 + 装备 + 宝石 + 强化 + 套装 + Buff”顺序汇总。
  • 百分比属性在固定值之后计算,避免顺序影响结果。
  • 重算后对比旧属性,只同步变化的字段。
  • 战斗中的装备切换默认禁止(可配置允许切换但进入 CD)。

4. 客户端设计​

  • 角色面板:纸娃娃展示 10 个槽位,点击槽位筛选背包可用装备。
  • 背包对比:悬停装备显示与当前装备的属性差(绿色提升/红色下降)。
  • 一键穿戴:按职业推荐自动选择最优装备,需二次确认。
  • 套装提示:集齐件数高亮,未激活显示缺失部位。
  • 耐久提示:低于 20% 时图标变黄,为 0 时红色并提示修理。

5. 配置与数值​

ItemBase.xml 装备字段:

字段说明
id物品 ID
slot槽位
quality品质
level_limit等级限制
job_limit职业限制
gender_limit性别限制
base_attr基础属性
rand_attr_group随机属性组
set_id套装 ID
max_durability最大耐久
bind_type获取/装备/永不绑定

6. 边界与异常​

场景处理
背包满时卸下拒绝并提示
装备被删除/回收登录校验,清空槽位并补发邮件
转职后装备不匹配允许继续穿戴但属性失效,或自动卸下(配置)
耐久为 0属性失效,装备不消失
重复穿戴同一件幂等,返回当前状态
交易/邮件中的装备无法穿戴,需先取出

7. 埋点与运营​

  • 各槽位装备品质分布、平均等级、套装覆盖率。
  • 修理消耗与耐久损耗。
  • 后台可调整掉落、修理费用、套装效果。

8. 验收标准​

  • 10 个槽位穿戴/卸下/替换正确,属性实时更新。
  • 背包满、等级/职业不符时拒绝且不丢装备。
  • 绑定、耐久、套装效果按配置生效。
  • 客户端属性对比与服务端一致。
  • 断线重连后装备栏与属性正确恢复。