跳到主要内容

PRD-005 师徒系统

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

1. 背景与目标​

师徒系统用于新手带教与老玩家留存。当前存在师傅收徒数量超限、出师奖励重复领取、解除关系后任务残留等问题。本 PRD 统一拜师、师徒任务、出师、奖励与解除。

2. 核心规则​

2.1 关系条件​

  • 师傅等级 ≥ 50,徒弟等级 ≤ 30,等级差 ≥ 20。
  • 师傅同时最多 3 个徒弟,徒弟只能有 1 个师傅。
  • 双方不在同一队伍/帮会不限制,但需在线确认。
  • 拜师后 24 小时内不可解除。

2.2 师徒任务​

  • 师徒共同完成指定任务(副本、杀怪、答题)获得师德/师徒值。
  • 徒弟升级、出师时师傅获得师德。
  • 师德可兑换商店道具,每周上限。
  • 徒弟出师后任务关闭,未领取奖励邮件补发。

2.3 出师​

  • 徒弟等级 ≥ 50 且完成出师任务即可出师。
  • 出师后双方获得一次性奖励,关系保留为“已出师”。
  • 已出师徒弟不占师傅收徒名额(可配置)。
  • 出师奖励按徒弟等级/任务完成度分档。

2.4 解除​

  • 师傅可单方面解除,需 24 小时确认期。
  • 徒弟可申请解除,师傅 72 小时未处理自动解除。
  • 解除后师徒任务进度清零,师德保留。

3. 服务端设计​

3.1 数据结构​

struct MentorRelation {
uint64_t master_id;
uint64_t apprentice_id;
uint8_t state; // pending/active/graduated/ended
uint32_t start_time;
uint32_t graduated_time;
uint32_t mentor_points;
};

3.2 协议​

方向协议说明
C→SCS_MentorApply拜师/收徒申请
C→SCS_MentorReply同意/拒绝
C→SCS_MentorTask师徒任务
C→SCS_MentorGraduate出师
C→SCS_MentorEnd解除
S→CSC_MentorInfo关系/任务/师德
S→CSC_MentorResult结果

3.3 校验与事务​

  • 拜师/收徒双方确认后写关系,检查双方名额。
  • 师徒任务进度由 EventBus 驱动,双方都在线/同图才计数(可配置)。
  • 出师事务:更新关系、发双方奖励、写日志。
  • 解除事务:清理任务、通知双方、保留师德。

4. 客户端设计​

  • 师徒面板:关系、任务、师德、出师进度。
  • 拜师/收徒推荐:按等级/职业/在线筛选。
  • 师徒任务列表:目标、进度、奖励、前往。
  • 出师仪式:弹窗、奖励展示、称号。
  • 解除确认:说明冷却与影响。

5. 配置​

Mentor.xml:master_level、apprentice_level、level_gap、max_apprentices、graduate_level、reward_group、end_cooldown。

6. 边界与异常​

场景处理
师傅名额已满拒绝
徒弟已有师傅拒绝
双方等级变化不满足已建立关系不强制解除,新申请校验
出师时徒弟离线师傅可代为领取,邮件通知
重复出师幂等
解除后重新拜师按冷却限制

7. 验收标准​

  • 拜师/收徒/任务/出师/解除全流程正确。
  • 名额、等级、冷却校验完整。
  • 师徒任务双方计数一致,无单独刷进度。
  • 出师奖励不重复发放。
  • 解除后任务/称号/关系正确清理。