PRD-055 转职与职业进阶
文档编号:PRD-055
版本:v1.0
状态:已通过
适用端:服务端 / 客户端
脚本挂载:lua/numeric/class_advance.lua
1. 背景与目标
转职提供职业分支与数值成长。转职条件、技能映射、装备转换、属性重置适合用 Lua 编排,减少硬编码。
目标
- 50 级一转、80 级二转,每职业 2–3 个分支。
- 转职后技能、天赋、装备、属性正确迁移。
- 支持限时转职活动与转职回退(可配置)。
2. 核心规则
2.1 转职条件
- 等级达到要求,完成转职任务链。
- 消耗转职令牌/金币,当前无转职冷却。
- 不能有未领取的转职奖励、未完成的转职任务。
- 转职后 24 小时内可免费回退一次(可配置)。
2.2 数值迁移
- 一级属性按新职业成长重算,保留等级/经验。
- 技能点重置,已学技能按映射表转换。
- 天赋树清空并返还点数。
- 装备:本职业专用装备转换为新职业对应装备;无法转换的卸下到背包。
- 战力重新计算,排行榜延迟刷新。
2.3 技能映射
- 旧技能 → 新技能按
skill_map表转换,等级保留。 - 未映射技能返还技能书/点数。
- 转职后自动装配推荐技能栏。
3. 服务端设计
3.1 Lua 脚本设计
-- lua/numeric/class_advance.lua
Advance = {
[1] = { level=50, from="warrior", to={"berserker","guardian"}, cost={item=7001,count=1} },
[2] = { level=80, from="berserker", to={"bloodlord"}, cost={item=7002,count=1} },
}
function OnAdvance(ctx, role, target_class)
local cfg = Advance[ctx:GetAdvanceStage(role)]
if not cfg or not ctx:InList(cfg.to, target_class) then
return ctx:Fail(role, "转职目标不合法")
end
if ctx:GetLevel(role) < cfg.level then return ctx:Fail(role, "等级不足") end
if not ctx:Consume(role, cfg.cost) then return ctx:Fail(role, "材料不足") end
ctx:BackupClass(role) -- 用于 24h 回退
ctx:SetClass(role, target_class)
ctx:RemapSkills(role)
ctx:ResetTalents(role, true)
ctx:ConvertEquipments(role)
ctx:RecalcAttributes(role)
ctx:RefreshRank(role)
end
- 转职是一个事务:备份、改职业、技能/天赋/装备、属性、持久化。
- 任一步失败回滚到备份。
- 回退使用同一事务,24 小时后清理备份。
3.2 协议
| 方向 | 协议 | 说明 |
|---|---|---|
| C→S | CS_ClassAdvance | 转职 |
| C→S | CS_ClassRollback | 回退 |
| S→C | SC_ClassInfo | 职业/分支/冷却 |
| S→C | SC_ClassResult | 结果/技能变化 |
3.3 竞技与榜单
- 转职后战力重算,排行榜异步刷新。
- 竞技场赛季中允许转职,但匹配按新职业战力。
- 转职后 1 小时内不参与跨服联赛(可配置)。
4. 客户端设计
- 转职面板:分支预览、技能/属性对比、消耗。
- 转职动画/仪式、全服公告(可配置)。
- 技能栏自动替换提示。
- 装备转换结果列表,无法转换的显示背包位置。
- 回退入口与倒计时。
5. 配置与 Lua 接口
| 配置 | 说明 |
|---|---|
stage | 转职阶段 |
from / to | 职业分支 |
level | 等级要求 |
cost | 消耗 |
skill_map | 技能映射 |
equip_map | 装备映射 |
Lua 接口:GetAdvanceStage、BackupClass、SetClass、RemapSkills、ResetTalents、ConvertEquipments、RollbackClass。
6. 边界与异常
| 场景 | 处理 |
|---|---|
| 背包满导致装备无法卸下 | 转职前校验,拒绝 |
| 技能映射缺失 | 返还技能书并提示 |
| 转职中断线 | 事务回滚/重连查询结果 |
| 回退超过 24h | 清理备份,不可回退 |
| 转职后参加联赛 | 按冷却限制 |
7. 验收标准
- 各阶段转职条件/分支/消耗正确。
- 技能/天赋/装备/属性迁移正确。
- 失败回滚、24h 回退可用。
- 战力/榜单刷新正确。
- 客户端预览与实际结果一致。