跳到主要内容

PRD-024 装备强化与升星

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

1. 背景与目标​

强化是装备线的主要消耗点。当前存在成功率不透明、失败降级无提示、连续强化请求可绕过材料校验等问题。本 PRD 定义强化/升星的等级、消耗、成功率、保底、降级与转移规则。

目标

  • 强化等级 0–15,升星 0–5,成功率与消耗可配置。
  • 失败是否降级、是否碎装由配置决定,客户端明确提示。
  • 支持一键强化到目标等级,中途可停止。

2. 核心规则​

2.1 强化等级​

等级段成功率失败处理消耗
+0 → +5100%无强化石 + 金币
+6 → +1060% → 35%失败降 1 级强化石 + 金币 + 保护符(可选)
+11 → +1530% → 10%失败降 2 级或碎装高级强化石 + 保护符

2.2 保底​

  • 连续失败 N 次后,下一次成功率提升 pity_bonus,成功后重置计数。
  • 保底计数按角色 + 装备槽位记录,不随装备替换清空(可配置)。
  • 使用保护符时失败不降级,但保底计数仍累计。

2.3 升星​

  • 升星消耗同名装备碎片/星石,成功率独立于强化。
  • 升星失败只扣材料,不降强化等级。
  • 星级提供固定属性与特殊效果,满星解锁外观。

2.4 转移​

  • 强化等级可转移到同部位、同品质的新装备。
  • 转移消耗转移石,目标装备继承强化等级,原装备清零。
  • 星级不可转移,避免低阶装备刷星。

3. 服务端设计​

3.1 模块职责​

模块职责
EnhanceManager强化/升星/转移逻辑
ItemManager材料扣除、装备状态更新
ProbabilityService随机与保底
RecordServer强化等级、保底计数、日志

3.2 数据结构​

struct EnhanceState {
uint64_t item_uid;
uint8_t level; // 0-15
uint8_t star; // 0-5
uint32_t pity_count; // 连续失败次数
};

struct EnhanceRequest {
uint64_t item_uid;
uint32_t target_level; // 一键强化目标
bool use_protect;
uint32_t request_id;
};

3.3 协议​

方向协议说明
C→SCS_Enhance单次/一键强化
C→SCS_EnhanceStop停止一键强化
C→SCS_StarUp升星
C→SCS_EnhanceTransfer强化转移
S→CSC_EnhanceResult成功/失败/降级/碎装
S→CSC_EnhanceState当前等级、保底计数

3.4 强化流程​

CS_Enhance
→ 校验装备已穿戴/未锁定、目标等级合法
→ 校验材料/金币/保护符
→ 扣除材料(事务)
→ 计算成功率 + 保底加成
→ 随机判定
→ 成功:等级 +1,重置保底
→ 失败:按配置降级/碎装/不变,保底 +1
→ 更新属性、广播 SC_EnhanceResult
→ 写日志(材料、概率、结果、种子)

3.5 一键强化​

  • 服务端循环执行,每次单独扣材料、单独判定。
  • 达到目标等级、材料不足、失败降级到阈值、玩家停止时结束。
  • 一键强化过程中断线,已执行的结果保留,未执行的不扣材料。
  • 客户端每收到一次结果刷新一次,不等待全部完成。

4. 客户端设计​

  • 强化面板:左侧装备槽,中间等级/属性预览,右侧材料与保护符。
  • 成功率展示:基础成功率 + 保底加成,实时刷新。
  • 动画:成功金光、失败碎裂、降级红字、碎装确认。
  • 一键强化:设置目标等级、是否使用保护符、是否失败即停。
  • 预览:显示强化到目标等级的属性差与预计消耗。

5. 配置与数值​

tbl/EquipEnhance.xml 字段:

字段说明
level当前等级
success_rate基础成功率
fail_downgrade失败降级数
fail_destroy是否碎装
material_group材料组
gold_cost金币消耗
pity_threshold保底次数
pity_bonus保底加成
attr_bonus强化属性加成

6. 边界与异常​

场景处理
连续点击强化按 request_id 幂等,处理中锁定按钮
材料不足拒绝,不扣任何材料
强化中装备被替换锁定装备,替换请求排队或拒绝
降级到 0 以下夹到 0
碎装装备消失,材料不返还,邮件通知
断线已扣材料的结果保留,重连同步等级
一键强化中目标等级降低以当前请求为准,执行到目标或停止

7. 埋点与运营​

  • 各等级成功率、平均消耗、保底触发率、碎装率。
  • 强化材料产出/消耗比,市场价格监控。
  • 后台可调整成功率、保底、材料、公告。

8. 验收标准​

  • 强化/升星/转移按配置扣材料并更新属性。
  • 失败降级、碎装、保护符、保底均正确。
  • 一键强化可停止,断线不重复扣材料。
  • 客户端成功率、消耗、结果与服务端一致。
  • 强化日志可按角色/装备追溯。