跳转至

GDD-34 好友与组队系统设计

文档类型:游戏设计文档(Game Design Document) 版本:1.2 日期:2026-07-06 关联文档:GDD-03(战斗系统)、GDD-06(经济系统)、GDD-08(大陆地图与区域开放)、GDD-16(社交系统与玩法扩展)、GDD-22(开放世界随机事件)、GDD-23(能量体系)、GDD-29(聊天与信息传递系统)、GDD-33(世界Boss与大型PVE协作机制)

本文档定位:在 GDD-16 社交关系链(师徒/道侣/结义)和 GDD-29 聊天系统的基础上,系统性地设计好友关系管理与组队协作的完整机制框架。好友系统提供轻量级社交关系载体,组队系统提供多人协作的基础设施。两者共同服务于「玩家互动优先」(✅97) 的设计哲学,与无任务系统、概率/机遇驱动的核心约束一致。


已确认决策记录(GDD-34 本地,跨文档引用写 GDD-34 ✅F0X

# 决策
✅F01 好友关系单向确认制:A 添加 B 为好友,B 同意后双方互为好友;删除好友单向操作,对方无感(对齐 GDD-29 ✅C06 屏蔽双轨理念)
✅F02 好友度五档体系:萍水相逢(0-99) / 相识(100-299) / 同道(300-599) / 莫逆(600-999) / 生死之交(1000+),影响组队BUFF、传送权限、好友数量上限
✅F03 好友组队BUFF叠加:好友度越高组队战斗增益越强,同队内多名好友叠加有递减(第二人 70%、第三人 50%、第四人 35%),防止纯好友队碾压
✅F04 组队人数上限 5 人:与 GDD-29 队伍频道上限一致、与 GDD-33 组队副本建议人数对齐
✅F05 跨层级组队受降维护佑约束:高境界带低境界组队时,高境界玩家触发降维护佑(GDD-08 ✅Q06),伤害大幅压制但获得声望/好友度额外加成作为"带新"补偿
✅F06 队伍掉落三模式:贡献分配(默认)/ 随机掷骰 / 队长分配,由队长在组队时选择,进入战斗后不可更改
✅F07 好友传送消耗道具:传送消耗「同行符」道具,同层 1 张、跨 1 层 3 张、跨 2 层 5 张(对齐 GDD-29 ✅C12 传音符消耗梯度);好友度 ≥ 莫逆可减免 50%
✅F08 好友上限按境界扩展:炼气 30 人 / 筑基 50 人 / 金丹 80 人 / 元婴 120 人 / 化神 150 人 / 合体 200 人 / 大乘 250 人 / 渡劫 300 人 / 飞升 500 人
✅F09 组队匹配按目标分类:副本 / 世界Boss / 游历 / 委托 / 自由五类目标,匹配时综合境界、职业、好友度优先推荐好友

第一章 好友系统

1.1 好友关系总览

好友是洪荒大陆最轻量级的社交关系,介于「陌生人」与「同道/道侣/结义」之间。好友关系提供在线感知、快速组队、好友传送、组队加成等基础社交功能,不涉及深度绑定或共享资源。

维度 规则
关系类型 轻量级双向关系(确认制)
好友上限 按境界递增(✅F08)
好友度 共同行为累积,影响组队BUFF与传送权限
在线状态 实时推送好友上下线通知
与深层关系 好友是师徒/道侣/结义的前置条件(GDD-16 §1.1)

1.2 好友添加与删除

1.2.1 添加好友

维度 规则
添加方式 ① 面对面点击对方角色 → 「加为好友」;② 聊天消息中点击「加为好友」按钮(GDD-29 ✅C09);③ 好友推荐列表一键添加;④ 输入角色名精确搜索添加
确认机制 单向申请 → 对方收到通知 → 同意/拒绝;同意后双方互为好友
申请上限 每日最多发送 20 个好友申请(防刷,对齐 GDD-29 §9.3)
待处理上限 未处理的好友申请最多保留 50 个,超出自动覆盖最旧申请
冷却 被拒绝后同一目标 24 小时内不可重复申请;被删除后 7 天内不可重复添加同一人
屏蔽冲突 若任一方已屏蔽对方,不可发起好友申请(对齐 GDD-29 ✅C06)

1.2.2 删除好友

维度 规则
操作方式 好友列表中长按/右键 → 「删除好友」
确认 二次确认弹窗
对方感知 无感(对方好友列表中仍显示你,直到对方刷新或发现互动失败)
好友度处理 删除后好友度归零;重新添加后好友度从零开始累积
深层关系 若存在师徒/道侣/结义关系,需先解除深层关系才可删除好友

1.2.3 好友黑名单联动

维度 规则
拉黑效果 与 GDD-29 §6.1 个人屏蔽一致:对方所有频道消息不可见、私聊不接收、不可查看位置分享
好友关系 拉黑后自动解除好友关系,好友度归零
解除拉黑 解除后不自动恢复好友关系,需重新添加

1.3 好友度系统

好友度是衡量两名玩家社交深度的量化指标,通过共同行为自然累积,体现「机遇/概率驱动」的设计哲学——没有任务式刷好友度的路径,只有自然互动中概率性增长。

1.3.1 好友度档位

档位 好友度区间 称号 解锁能力
萍水相逢 0 - 99 基础好友功能(在线查看、私聊)
相识 100 - 299 初识 组队基础BUFF(+2%攻击/防御);好友位置查看(同层)
同道 300 - 599 同道 组队进阶BUFF(+5%攻击/防御);好友传送解锁(同层);双修前置(GDD-16 §1.3)
莫逆 600 - 999 莫逆之交 组队高级BUFF(+8%攻击/防御 + 3%掉落率);好友传送(跨层,消耗减免 50%);道侣/结义前置(GDD-16 §1.4)
生死之交 1000+ 生死之交 组队顶级BUFF(+12%攻击/防御 + 5%掉落率 + 2%暴击);传送消耗减免 50%;好友被击杀时收到复仇通知

1.3.2 好友度获取规则

好友度的获取遵循「自然互动、概率触发」原则,不可通过重复机械操作刷取。

行为 好友度增长 每日上限 说明
组队战斗胜利 +3 ~ +8(按战斗难度) +30 副本/世界Boss/区域Boss/游历战斗均计入
组队完成副本 +5 ~ +15(按副本难度) +40 难度越高增长越多
组队完成委托 +2 ~ +5 +20 佣兵委托/日常委托均计入
赠送礼物 +1 ~ +3(按礼物品质) +10 消耗道具「心意笺」或稀有材料,对方需在线接收
好友传送到达 +1 +5 传送到好友位置时双方各增
共同参与世界事件 +5 ~ +10 +30 世界Boss/妖潮/混沌裂隙等(GDD-33)
护法/助战 +3 ~ +8 +20 好友渡劫时护法(GDD-16 §1.4)、好友被追杀时助战
道侣/结义前置 自动 好友度达到「同道」是双修/道侣/结义的前置条件(GDD-16 §1.1)

防滥用机制: - 同一好友每日通过组队战斗获取的好友度有上限(+30),防止反复刷低难度战斗 - 赠送礼物需消耗道具,道具本身有获取成本 - 好友度增长存在边际递减:当日累计超过 50 点后,后续获取效率减半 - 系统检测异常模式(如短时间内反复添加/删除同一好友)自动冻结好友度增长

1.3.3 好友度衰减

维度 规则
衰减触发 连续 14 现实天无任何好友互动(组队/私聊/传送/赠送)
衰减速率 每 7 现实天衰减当前好友度的 5%(最低降至 0)
衰减保护 「生死之交」档位不衰减(已达最高档,象征永久羁绊)
恢复 重新互动后好友度不再衰减,但已损失的不自动恢复

1.4 在线状态与好友信息

1.4.1 在线状态

状态 显示 推送通知
在线 绿色标识
战斗中 红色标识 + 剑图标
修炼中 蓝色标识 + 打坐图标
挂机中 黄色标识 + 时钟图标
离线 灰色标识 + 最后在线时间 上线时推送「你的好友 [名字] 已上线」

通知规则: - 好友上线通知仅推送一次,不重复打扰 - 玩家可设置「免打扰模式」,关闭好友上线通知 - 好友度 ≥ 莫逆的好友上线时,通知带特殊标识(金边)

1.4.2 好友信息面板

点击好友列表中的好友,可查看以下信息:

信息 可见条件
角色名、种族、境界 始终可见
当前位置(区域名) 好友度 ≥ 相识
当前坐标(地图标记) 好友度 ≥ 同道 + 同层
当前状态(在线/战斗/修炼/挂机) 始终可见
好友度数值与档位 始终可见
所属帮派/门派/家族 始终可见
装备评分(概要) 好友度 ≥ 相识
最近成就/称号 好友度 ≥ 同道

1.5 好友传送

好友传送允许玩家消耗道具瞬间移动到好友所在位置,是社交互动的重要便利功能。

1.5.1 传送规则

维度 规则
解锁条件 好友度 ≥ 同道(300+)
消耗道具 「同行符」(生活技能制作 / 商城购买 / 世界事件掉落 / 坊市交易)
消耗数量 同层 1 张 / 跨 1 层 3 张 / 跨 2 层 5 张 / 跨 3 层 8 张(对齐 GDD-29 ✅C12 传音符梯度)
莫逆减免 好友度 ≥ 莫逆时消耗减半(向下取整,最少 1 张)
目标要求 目标好友必须在线且处于非战斗状态
区域限制 不可传送到禁区/副本内部/渡劫区域
冷却 每次传送后 30 游戏分钟冷却(约 10 现实分钟)
同层限制 层级 1(凡界)玩家不可使用跨层传送

1.5.2 传送与道侣传送的区别

维度 好友传送 道侣传送(GDD-16 §1.4.1)
前置关系 好友度 ≥ 同道 道侣关系
消耗 同行符(道具) 少量内力或传送道具
冷却 30 游戏分钟 30~60 游戏分钟
跨层 可(消耗递增) 可(消耗更低)
特殊效果 到达后双方获短暂增益(道侣羁绊)

1.6 好友推荐

维度 规则
推荐来源 ① 同种族同层级活跃玩家;② 组队战斗过的非好友玩家;③ 帮派/门派/家族中的非好友成员;④ 师徒/道侣/结义关系链中的二度人脉
推荐数量 每日推荐 10 名玩家
推荐排序 优先推荐:同种族 > 同帮派 > 同区域 > 最近组队过的玩家
一键添加 推荐列表中可一键发送好友申请
刷新 每日 08:00 刷新推荐列表(现实时间,对齐项目每日刷新锚点)

第二章 组队系统

2.1 组队总览

组队是洪荒大陆多人协作的核心基础设施,服务于副本挑战、世界Boss讨伐、委托完成、游历探索等场景。组队系统与 GDD-03 战斗系统、GDD-33 世界Boss机制、GDD-16 社交关系深度联动。

维度 规则
队伍人数 2 - 5 人(✅F04)
组队方式 邀请组队 / 匹配组队 / 聊天组队
队伍频道 组队后自动创建队伍频道(GDD-29 §1.2.1)
队伍存续 队长解散 / 全员离线超过 30 游戏分钟自动解散
跨层组队 允许,但受降维护佑约束(✅F05)

2.2 组队创建与管理

2.2.1 创建队伍

维度 规则
创建方式 ① 点击其他玩家 → 「邀请组队」;② 聊天消息中点击「邀请组队」按钮(GDD-29 ✅C09);③ 组队匹配面板中创建队伍并设置目标
创建者 自动成为队长
队伍目标 创建时可设置:副本 / 世界Boss / 游历 / 委托 / 自由(✅F09)
队伍公告 队长可设置队伍公告(50 字以内),在匹配列表中展示

2.2.2 加入队伍

维度 规则
邀请加入 队长或队员邀请 → 目标收到弹窗通知 → 同意/拒绝
申请加入 匹配列表中选择队伍 → 申请 → 队长审批
自动匹配 设置目标后进入匹配队列,系统自动分配队伍(见 §2.4)
邀请冷却 同一目标每 5 游戏分钟只能邀请 1 次(对齐 GDD-29 §9.3)
战斗中限制 战斗中的玩家不可加入/退出队伍
境界限制 队伍成员境界差距超过 3 大境界时,系统提示「境界差距过大,高境界成员将受降维护佑约束」

2.2.3 队伍管理

操作 权限 说明
踢出队员 队长 被踢出者收到通知,3 游戏分钟内不可加入同一队伍
转让队长 队长 队长可将队长身份转让给任意队员
退出队伍 任意队员 退出后若为队长,队长自动转移给最早加入的队员;最后一名队员退出则队伍解散
设置掉落模式 队长 组队时选择,进入战斗后不可更改(✅F06)
设置队伍目标 队长 可随时修改,影响匹配列表展示
队伍招募 队长 在区域频道/世界频道发布队伍招募信息,带「申请加入」按钮

2.3 队伍BUFF系统

组队本身提供战斗增益,好友度进一步增强增益效果,鼓励社交互动。

2.3.1 基础组队BUFF

队伍人数 攻击加成 防御加成 经验加成 掉落率加成
2 人 +3% +3% +5% +2%
3 人 +5% +5% +8% +3%
4 人 +7% +7% +10% +4%
5 人 +10% +10% +12% +5%

基础组队BUFF仅与队伍人数相关,与成员境界/种族无关。

2.3.2 好友度加成(✅F03)

队伍中好友关系 攻击加成 防御加成 掉落率加成 备注
1 名相识好友 +2% +2% +1% 基础好友加成
1 名同道好友 +5% +5% +2%
1 名莫逆好友 +8% +8% +3%
1 名生死之交好友 +12% +12% +5% 含 2% 暴击加成
第 2 名好友(叠加) 基础值 × 70% 基础值 × 70% 基础值 × 70% 边际递减
第 3 名好友(叠加) 基础值 × 50% 基础值 × 50% 基础值 × 50% 边际递减
第 4 名好友(叠加) 基础值 × 35% 基础值 × 35% 基础值 × 35% 边际递减

叠加规则: - 好友度加成按好友度档位取值,与基础组队BUFF加法叠加 - 多名好友的加成按递减系数叠加,防止纯好友队碾压 - 道侣/结义成员在队伍中时,额外触发关系专属加成(见 §3.3)

示例计算

场景:5 人队伍,其中 3 名好友(莫逆/同道/相识)

基础组队BUFF = +10% 攻击 / +10% 防御 / +5% 掉落
好友加成 = 莫逆(+8%) + 同道(+5%)×70% + 相识(+2%)×50% = +8% + 3.5% + 1% = +12.5% 攻击

总计:+22.5% 攻击 / +22.5% 防御 / +8.5% 掉落(取整后)

2.3.3 义团/道侣队伍专属加成

当队伍中存在 GDD-16 定义的深层关系时,触发额外专属加成:

关系 加成条件 效果
道侣同队 2 名道侣在同一队伍 双方共享合体技冷却缩减 20%;双方受到致命伤害时有 10% 概率触发道侣护盾(吸收 30% 最大生命伤害)
义团同队 ≥ 2 名义团成员在同一队伍 全员获得 GDD-16 §1.4.2 定义的义团增益(5%~10% 非速度类战斗增益)
师徒同队 师父与徒弟在同一队伍 徒弟经验获取 +15%;师父获得「尊师值」微量增长
道侣 + 义团同队 同时存在道侣和义团关系 两种加成独立生效,不互相覆盖

2.4 队伍匹配机制

2.4.1 匹配分类(✅F09)

匹配目标 匹配逻辑 优先级
副本 按副本推荐境界 + 职业搭配匹配 坦克/输出/辅助各至少 1 人(如适用)
世界Boss 按Boss推荐境界匹配 优先匹配同层玩家
游历 按当前区域 + 境界匹配 优先匹配同种族玩家
委托 按委托难度 + 境界匹配 优先匹配同帮派/门派玩家
自由 仅按境界范围匹配 无特殊优先级

2.4.2 匹配算法

匹配评分 = 境界匹配分 × 0.4
         + 职业互补分 × 0.2
         + 好友优先分 × 0.2
         + 等待时间分 × 0.2

境界匹配分:
  - 相同大境界:100 分
  - 差距 1 大境界:80 分
  - 差距 2 大境界:50 分
  - 差距 3 大境界:20 分(触发降维护佑提示)

职业互补分:
  - 队伍缺少坦克/辅助时,对应职业玩家 +100 分
  - 队伍职业齐全时,所有玩家 +50 分

好友优先分:
  - 已有好友在队伍中:+80 分
  - 已有同帮派成员:+40 分
  - 已有同门派成员:+30 分
  - 已有同种族成员:+20 分

等待时间分:
  - 每等待 10 秒 +10 分(最高 100 分)

2.4.3 匹配规则

维度 规则
匹配范围 同世界层级内匹配;世界Boss匹配可跨层(但受降维护佑约束)
匹配超时 120 秒未匹配成功,放宽境界限制(±1 大境界);240 秒仍未匹配,放宽至 ±2 大境界
匹配取消 匹配中可随时取消,无惩罚
拒绝惩罚 匹配成功后拒绝加入,30 秒冷却后可重新匹配
AFK 惩罚 匹配成功加入队伍后 5 分钟内无操作,队长可踢出且该玩家 5 分钟内不可重新匹配

2.5 队伍掉落分配规则(✅F06)

2.5.1 三种分配模式

模式 说明 适用场景
贡献分配 按战斗贡献度比例分配掉落 默认模式;世界Boss、高难副本
随机掷骰 每件掉落全员掷骰(1-100),点数最高者获得 休闲组队、低价值掉落
队长分配 队长手动分配掉落给指定队员 固定团队、帮派副本、有明确分配规则的队伍

2.5.2 贡献分配算法

个人贡献度 = 伤害贡献 × 0.6 + 承受伤害 × 0.2 + 治疗量 × 0.15 + 辅助贡献 × 0.05

辅助贡献 = 控制技能命中次数 × 权重 + 增益技能施放次数 × 权重

掉落分配:
  每件掉落物品按贡献度比例分配概率
  贡献度最高的玩家获得最高概率,但不保证必得
  最低贡献门槛:个人贡献度 ≥ 队伍总贡献度 × 5%(防止挂机蹭奖)

2.5.3 掷骰规则

维度 规则
骰子范围 1 - 100
掷骰时间 掉落后 30 秒内掷骰,超时自动弃权
需求/贪婪 掉落物品分为「需求」和「贪婪」两轮:需求轮仅对该物品有需求的队员开放;无人需求则进入贪婪轮全员掷骰
队长裁定 若出现相同点数,队长裁定归属
绑定规则 掷骰获得的物品按原绑定规则处理(绑定物品不可交易)

2.5.4 队长分配规则

维度 规则
分配权 仅队长可操作,30 秒内完成分配
超时处理 30 秒未分配的物品自动进入随机掷骰
公示 队长分配结果在队伍频道公示
防滥用 队伍成员可对队长发起「分配不公」投票,超过 50% 成员同意则队长被罢免,分配权转移

第三章 跨层级组队规则

3.1 降维护佑约束(✅F05)

跨层级组队时,高境界玩家受 GDD-08 ✅Q06 降维护佑约束,防止高境界碾压低层内容。

3.1.1 伤害压制

对齐 GDD-33 §4.1 降维护佑公式:

有效伤害 = 原始伤害 × 降维系数

降维系数 = max(0.1, 1.0 - (玩家层级 - 队伍目标层级) × 0.25)

示例(高境界玩家带低境界队友刷低层副本):
  - 层3玩家参与层2副本:系数 = 0.75(伤害降低 25%)
  - 层4玩家参与层2副本:系数 = 0.50(伤害降低 50%)
  - 层5玩家参与层1副本:系数 = 0.10(伤害降低 90%)

3.1.2 高境界带新补偿

高境界玩家在低层组队虽受伤害压制,但获得「带新」补偿:

补偿类型 条件 效果
好友度加成 队伍中有境界差距 ≥ 2 大境界的队友 好友度获取 +50%(鼓励高境界带新人)
声望加成 同上 声望获取 +20%(GDD-16 ✅S05)
尊师值 师徒关系同队 师父额外获得尊师值(GDD-16 §1.2)
义气值 义团关系同队 义团成员额外获得义气值

3.1.3 低境界队友保护

保护机制 说明
伤害保底 低境界队友每次行动至少造成目标最大血量 × 0.001% 的伤害(对齐 GDD-33 §4.2)
生存保底 低境界队友受到高境界区域怪物的伤害有额外减伤:减伤率 = min(50%, (怪物层级 - 玩家层级) × 15%)
奖励保底 低境界队友获得不低于基准值 10% 的贡献度(对齐 GDD-33 ✅WB06)

3.2 跨层级组队场景

场景 组队规则 降维护佑
低层副本 高境界队友参与低层副本时触发降维护佑 伤害压制 + 属性封印
高层副本 低境界队友参与高层副本时获生存保底 伤害保底 + 减伤保护
世界Boss 按 GDD-33 §4 跨境界规则处理 降维护佑 + 境界分层奖励
游历探索 高境界队友可护送低境界队友穿越危险区域 伤害压制但可吸引仇恨
委托协作 按委托难度匹配,跨层委托需境界差 ≤ 2 大境界 视委托类型而定

3.3 跨层级队伍BUFF调整

维度 规则
BUFF 等级 队伍BUFF按队伍中最低境界成员的境界等级计算基准值
好友度加成 好友度加成按实际好友度计算,不受境界差距影响
经验分配 低境界队友获得的经验值按自身境界修正(不因高境界队友而降低)
掉落分配 掉落品阶按各成员自身境界独立计算(对齐 GDD-33 §4.3 境界分层奖励)

第四章 与其他系统的联动

4.1 与聊天系统的联动(GDD-29)

联动点 说明
队伍频道 组队后自动创建队伍频道(GDD-29 §1.2.1),队伍解散后清除
聊天发起组队 聊天消息中可直接点击「邀请组队」按钮(GDD-29 ✅C09)
聊天发起好友申请 聊天消息中可直接点击「加为好友」按钮(GDD-29 ✅C09)
队伍招募广播 队长可在区域频道/世界频道发布队伍招募信息,带「申请加入」按钮
好友私聊 好友间可使用私聊频道通信,不受区域限制(GDD-29 §1.2.8)
跨层通信 好友跨层通信需消耗传音符(GDD-29 §1.2.9),好友度 ≥ 莫逆时消耗减半
好友上下线通知 通过 Nakama 实时推送,复用聊天系统的 WebSocket 连接(GDD-29 §10.7)
位置分享 好友间可在聊天中分享位置,好友度 ≥ 同道时自动标记在小地图(GDD-29 §3.3.6)

4.2 与世界Boss的联动(GDD-33)

联动点 说明
组队参与Boss战 玩家可组队参与世界Boss战,队伍成员的伤害贡献独立计算(GDD-33 ✅W03 伤害汇总制)
队伍贡献排名 队伍成员的贡献度汇总为「队伍贡献」,参与帮派/种族排名(GDD-33 §3.1.2)
掉落分配 组队参与Boss战时,队伍内部掉落按 §2.5 分配模式处理;个人奖励按 GDD-33 §3.2 独立发放
镜像实例 组队参与时,全队进入同一镜像实例(GDD-33 §3.4),不拆散队伍
Boss战好友度 共同参与世界Boss战的好友获得好友度增长(§1.3.2)
跨层Boss组队 低境界队友参与高层Boss时获生存保底(GDD-33 §4.2),高境界队友受降维护佑(GDD-33 §4.1)

4.3 与社交系统的联动(GDD-16)

联动点 说明
师徒组队 师徒同队时,徒弟经验 +15%,师父获尊师值(GDD-16 §1.2)
道侣组队 道侣同队触发合体技冷却缩减与护盾效果(§2.3.3)
义团组队 义团同队触发义团增益(5%~10%),共享委托进度(GDD-16 §1.4.2)
双修前置 好友度 ≥ 同道是双修的前置条件(GDD-16 §1.3)
道侣前置 好友度 ≥ 莫逆是道侣结契的前置条件(GDD-16 §1.4.1)
结义前置 好友度 ≥ 莫逆是结义的前置条件(GDD-16 §1.4.2)
声望联动 组队战斗后可互评队友表现,累积声望值(GDD-16 ✅S05)
好友度 → 深层关系 好友度自然累积为深层关系的前置条件,不设任务式刷取路径

4.4 与战斗系统的联动(GDD-03)

联动点 说明
组队副本战斗 组队副本中每位队员独立进行 ATB 战斗(复用 GDD-03 1v1 模型),与 GDD-33 ✅W03 伤害汇总制一致
队伍BUFF生效 组队BUFF在 ATB 战斗结算时叠加到角色属性(攻击/防御/暴击/掉落率)
职业互补 组队副本按职业匹配,确保坦克/输出/辅助搭配(§2.4.1)
战报分享 组队战斗结束后,可在队伍频道分享战报(GDD-29 §3.3.4)
能量消耗 组队战斗消耗能量,与单人战斗一致(GDD-33 ✅W07)

第五章 数据模型与接口

5.1 数据库表设计

5.1.1 friends 表(好友关系)

字段 类型 约束 说明
id uuid PK 关系记录 ID
character_id uuid FK → characters.id, IX 发起者
friend_id uuid FK → characters.id, IX 被添加者
friendship_score int 好友度数值
friendship_tier varchar(16) 档位:STRANGER / ACQUAINTANCE / COMRADE / SWORN / LIFELINK
status varchar(16) IX PENDING / ACCEPTED / BLOCKED
created_at timestamptz 申请时间
accepted_at timestamptz 确认时间
last_interaction_at timestamptz IX 最后互动时间(衰减计算用)

唯一约束(character_id, friend_id)

索引策略: - (character_id, status) — 查询某玩家的好友列表 - (friend_id, status) — 查询谁添加了某玩家 - (last_interaction_at) — 好友度衰减定时任务

5.1.2 friend_gift_log 表(好友赠送记录)

字段 类型 约束 说明
id uuid PK 记录 ID
sender_id uuid FK → characters.id, IX 赠送者
receiver_id uuid FK → characters.id, IX 接收者
item_id uuid 赠送的道具 ID
item_count int 赠送数量
score_gained int 获得的好友度
created_at timestamptz IX 赠送时间

5.1.3 teams 表(队伍)

字段 类型 约束 说明
id uuid PK 队伍 ID
leader_id uuid FK → characters.id, IX 队长
target_type varchar(16) DUNGEON / WORLD_BOSS / ADVENTURE / QUEST / FREE
target_id varchar(64) 目标 ID(副本 ID / Boss ID / 委托 ID)
loot_mode varchar(16) CONTRIBUTION / ROLL / LEADER_ASSIGN
max_members int 最大成员数(默认 5)
world_tier smallint 队伍所在世界层级
region_id varchar(64) 队伍所在区域
announcement varchar(100) 队伍公告
created_at timestamptz 创建时间
dissolved_at timestamptz 解散时间

5.1.4 team_members 表(队伍成员)

字段 类型 约束 说明
id uuid PK 记录 ID
team_id uuid FK → teams.id, IX 队伍 ID
character_id uuid FK → characters.id, IX 成员角色 ID
role varchar(16) LEADER / MEMBER
joined_at timestamptz 加入时间
left_at timestamptz 离开时间

唯一约束(team_id, character_id) where left_at IS NULL

5.1.5 team_loot_distribution 表(队伍掉落分配记录)

字段 类型 约束 说明
id uuid PK 记录 ID
team_id uuid FK → teams.id, IX 队伍 ID
item_id uuid 掉落物品 ID
loot_mode varchar(16) 分配模式
winner_id uuid FK → characters.id 获得者(掷骰/队长分配)
contribution_data jsonb 贡献度数据(贡献分配模式)
roll_data jsonb 掷骰数据(掷骰模式)
distributed_at timestamptz 分配时间

5.1.6 friend_teleport_log 表(好友传送记录)

字段 类型 约束 说明
id uuid PK 记录 ID
teleporter_id uuid FK → characters.id, IX 传送发起者
target_friend_id uuid FK → characters.id, IX 目标好友
from_region varchar(64) 出发区域
to_region varchar(64) 到达区域
tier_diff smallint 层级差距
items_consumed int 消耗的同行符数量
created_at timestamptz IX 传送时间

5.2 Valkey 缓存结构

# 好友列表缓存
friends:{character_id} → Set<friend_character_id>

# 好友度缓存
friendship:{char_id_1}:{char_id_2} → int(score)

# 好友在线状态
friend:online:{character_id} → Hash<status, last_active_at>

# 队伍信息缓存
team:{team_id} → Hash<leader_id, target_type, loot_mode, max_members, ...>

# 队伍成员缓存
team:members:{team_id} → Set<character_id>

# 匹配队列
match:queue:{target_type}:{world_tier} → Sorted Set<character_id, match_score>

5.3 核心接口(TDD-05 扩展)

接口 方法 路径 说明
发送好友申请 POST /api/v1/friends/apply 发送好友申请
处理好友申请 POST /api/v1/friends/respond 同意/拒绝好友申请
删除好友 DELETE /api/v1/friends/{friend_id} 删除好友
获取好友列表 GET /api/v1/friends 分页获取好友列表
获取好友详情 GET /api/v1/friends/{friend_id} 获取好友详情与好友度
好友传送 POST /api/v1/friends/{friend_id}/teleport 传送到好友位置
获取好友推荐 GET /api/v1/friends/recommendations 获取每日推荐好友
创建队伍 POST /api/v1/teams 创建队伍
加入队伍 POST /api/v1/teams/{team_id}/join 申请加入队伍
退出队伍 DELETE /api/v1/teams/{team_id}/leave 退出队伍
踢出队员 POST /api/v1/teams/{team_id}/kick 踢出队员
转让队长 POST /api/v1/teams/{team_id}/transfer 转让队长
设置队伍目标 PUT /api/v1/teams/{team_id}/target 设置/修改队伍目标
设置掉落模式 PUT /api/v1/teams/{team_id}/loot-mode 设置掉落分配模式
匹配队伍 POST /api/v1/teams/match 进入匹配队列
取消匹配 DELETE /api/v1/teams/match 取消匹配
获取队伍列表 GET /api/v1/teams 获取可加入的队伍列表
赠送好友礼物 POST /api/v1/friends/{friend_id}/gift 赠送礼物提升好友度

5.4 Nakama 实时消息协议

// 好友申请通知(服务端 → 客户端)
message FriendApplyNotify {
  string applicant_id = 1;
  string applicant_name = 2;
  string applicant_race = 3;
  int32 applicant_realm_tier = 4;
  int64 timestamp = 5;
}

// 好友上下线通知(服务端 → 客户端)
message FriendStatusNotify {
  string friend_id = 1;
  string friend_name = 2;
  string status = 3;        // ONLINE / OFFLINE / IN_BATTLE / MEDITATING / AFK
  int64 timestamp = 4;
}

// 组队邀请通知(服务端 → 客户端)
message TeamInviteNotify {
  string team_id = 1;
  string inviter_id = 2;
  string inviter_name = 3;
  string target_type = 4;   // DUNGEON / WORLD_BOSS / ADVENTURE / QUEST / FREE
  string target_name = 5;
  int32 current_members = 6;
  int32 max_members = 7;
  int64 timestamp = 8;
}

// 队伍状态变更(服务端 → 客户端)
message TeamStatusNotify {
  string team_id = 1;
  string event_type = 2;    // MEMBER_JOIN / MEMBER_LEAVE / LEADER_CHANGE / DISSOLVED / TARGET_CHANGE
  string character_id = 3;
  string character_name = 4;
  int64 timestamp = 5;
}

// 匹配结果通知(服务端 → 客户端)
message MatchResultNotify {
  string team_id = 1;
  bool success = 2;
  string message = 3;
  int64 timestamp = 4;
}

第六章 Nacos 配置项

friend_team:
  # 好友系统
  friend:
    max_friends_by_tier:         # 各境界好友上限
      refining: 30               # 炼气
      foundation: 50             # 筑基
      golden_core: 80            # 金丹
      nascent_soul: 120          # 元婴
      spirit_severing: 150       # 化神
      body_integration: 200      # 合体
      mahayana: 250              # 大乘
      tribulation: 300           # 渡劫
      ascension: 500             # 飞升

    apply_daily_limit: 20        # 每日好友申请上限
    apply_pending_max: 50        # 未处理申请上限
    apply_reject_cooldown_hours: 24  # 被拒冷却时间(小时)
    delete_readd_cooldown_days: 7    # 删除后重新添加冷却(天)

    friendship:
      daily_gain_cap: 50         # 每日好友度增长上限
      decay_trigger_days: 14     # 衰减触发天数
      decay_rate: 0.05           # 每周期衰减比例
      decay_period_days: 7       # 衰减周期(天)

    recommendation:
      daily_count: 10            # 每日推荐数量
      refresh_hour: 8            # 刷新时间(现实小时)

  # 好友传送
  teleport:
    cooldown_minutes: 30         # 传送冷却(游戏分钟)
    cost_same_tier: 1            # 同层消耗
    cost_cross_1: 3              # 跨1层消耗
    cost_cross_2: 5              # 跨2层消耗
    cost_cross_3: 8              # 跨3层消耗
    sworn_reduction: 0.5         # 莫逆减免比例

  # 组队系统
  team:
    max_members: 5               # 队伍最大人数
    auto_dissolve_minutes: 30    # 全员离线自动解散时间(游戏分钟)
    invite_cooldown_minutes: 5   # 邀请冷却时间(游戏分钟)
    match_timeout_seconds: 120   # 匹配超时时间
    match_relax_seconds: 240     # 匹配放宽超时
    afk_kick_minutes: 5          # AFK踢出时间

    # 组队BUFF
    buff:
      attack_by_count: [3, 5, 7, 10]     # 攻击加成(2/3/4/5人)
      defense_by_count: [3, 5, 7, 10]    # 防御加成
      exp_by_count: [5, 8, 10, 12]       # 经验加成
      drop_by_count: [2, 3, 4, 5]        # 掉落率加成

    # 好友度组队加成
    friendship_buff:
      acquaintance_attack: 2     # 相识攻击加成
      comrade_attack: 5          # 同道攻击加成
      sworn_attack: 8            # 莫逆攻击加成
      lifelink_attack: 12        # 生死之交攻击加成
      lifelink_crit: 2           # 生死之交暴击加成

      # 叠加递减系数
      stack_decay: [1.0, 0.7, 0.5, 0.35]  # 第1/2/3/4名好友

    # 跨层级
    cross_realm:
      max_tier_diff: 3           # 最大境界差距
      damage_suppression_per_tier: 0.25   # 每层级伤害压制
      min_damage_coefficient: 0.1         # 最低伤害系数
      friendship_gain_bonus: 0.5          # 带新好友度加成
      reputation_gain_bonus: 0.2          # 带新声望加成

第七章 已确认决策记录表

编号 决策 来源
GDD-34 ✅F01 好友关系单向确认制(申请→同意→互为好友;删除单向无感) 对齐 GDD-29 ✅C06
GDD-34 ✅F02 好友度五档体系(萍水相逢/相识/同道/莫逆/生死之交) 本文
GDD-34 ✅F03 好友组队BUFF叠加递减(70%/50%/35%) 本文
GDD-34 ✅F04 组队人数上限 5 人 GDD-29 队伍频道、GDD-33 组队副本
GDD-34 ✅F05 跨层级组队受降维护佑约束 GDD-08 ✅Q06、GDD-33 ✅WB06
GDD-34 ✅F06 队伍掉落三模式(贡献/随机/队长分配) 本文
GDD-34 ✅F07 好友传送消耗同行符,梯度对齐传音符(GDD-29 ✅C12),莫逆减半 本文
GDD-34 ✅F08 好友上限按境界递增(30→500) 本文
GDD-34 ✅F09 组队匹配按五类目标分类,好友优先 本文

第八章 验收标准

8.1 功能验收

编号 验收项 验收标准
AC-01 好友申请 通过面对面/聊天/搜索/推荐四种方式均可发送好友申请,对方收到通知
AC-02 好友确认 同意后双方互为好友,拒绝后 24 小时内不可重复申请
AC-03 删除好友 单向删除,对方无感,好友度归零
AC-04 好友度增长 组队战斗/副本/委托/赠送/传送/世界事件均可增长好友度,每日上限正确
AC-05 好友度衰减 14 天无互动后开始衰减,每 7 天衰减 5%,生死之交不衰减
AC-06 好友度档位 五档阈值正确,各档解锁能力正确生效
AC-07 在线状态 好友上下线实时推送,状态标识正确(在线/战斗/修炼/挂机/离线)
AC-08 好友传送 消耗同行符数量按层级差距正确计算,莫逆减半,冷却正确
AC-09 好友推荐 每日推荐 10 名玩家,排序逻辑正确
AC-10 创建队伍 队长创建队伍,设置目标/公告/掉落模式
AC-11 邀请/申请/匹配 三种入队方式均正常工作
AC-12 队伍管理 踢人/转让队长/退出/解散均正确处理
AC-13 基础组队BUFF 2-5 人队伍的攻击/防御/经验/掉落加成正确
AC-14 好友度组队加成 好友度档位加成正确,多人叠加递减正确
AC-15 道侣/义团/师徒同队加成 深层关系同队时专属加成正确触发
AC-16 匹配算法 境界/职业/好友/等待时间四维度评分正确,超时放宽逻辑正确
AC-17 贡献分配 掉落按贡献度比例分配,最低门槛正确
AC-18 随机掷骰 需求/贪婪两轮掷骰,超时弃权,同点数队长裁定
AC-19 队长分配 队长手动分配,超时自动掷骰,分配不公投票正确
AC-20 跨层降维护佑 高境界玩家伤害压制系数正确,低境界保底正确
AC-21 带新补偿 高境界带新时好友度/声望加成正确
AC-22 聊天联动 从聊天发起组队/好友申请正常工作
AC-23 世界Boss联动 组队参与Boss战,队伍进入同一镜像实例
AC-24 社交关系联动 好友度是师徒/道侣/结义的前置条件,阈值正确

8.2 性能验收

编号 验收项 验收标准
PERF-01 好友列表加载 500 人好友列表加载 ≤ 1 秒
PERF-02 在线状态推送 好友上下线通知延迟 ≤ 1 秒
PERF-03 组队操作响应 创建/加入/退出队伍操作延迟 ≤ 500ms
PERF-04 匹配等待时间 平均匹配等待时间 ≤ 60 秒(活跃时段)
PERF-05 好友度计算 组队BUFF实时计算延迟 ≤ 100ms
PERF-06 好友度衰减任务 全服好友度衰减定时任务执行时间 ≤ 10 分钟

8.3 安全验收

编号 验收项 验收标准
SEC-01 好友申请频率 服务端限制每日 20 个申请,客户端不可绕过
SEC-02 好友度刷取 异常模式检测生效(反复添加/删除、重复低难度战斗)
SEC-03 组队防滥用 AFK 踢出、拒绝冷却、战斗中限制均正确执行
SEC-04 掉落分配防滥用 队长分配不公投票机制正确,挂机贡献门槛正确
SEC-05 传送防滥用 战斗中/禁区不可传送,冷却时间不可绕过

第九章 与核心系统的接口总表

系统 接口点
GDD-03 战斗 组队副本复用 ATB 1v1 模型 + 伤害汇总制;队伍BUFF在战斗结算时叠加
GDD-06 经济 好友赠送道具消耗;同行符消耗;组队掉落分配接入经济 faucet
GDD-08 地图 跨层级组队降维护佑(✅Q06);区域匹配范围;传送区域限制
GDD-16 社交 好友度是师徒/道侣/结义前置条件;道侣/义团/师徒同队专属加成;声望互评
GDD-22 世界事件 共同参与世界事件增长好友度;事件Boss组队参与
GDD-23 能量 好友传送消耗能量/道具;组队战斗能量消耗与单人一致
GDD-29 聊天 队伍频道自动创建;聊天发起组队/好友申请;好友私聊;跨层传音;上下线推送
GDD-33 世界Boss 组队参与Boss战;镜像实例不拆散队伍;贡献度排名汇总;跨境界规则对齐
TDD-04 数据库 friends / teams / team_members 等表
TDD-05 API 好友与组队 RESTful + WebSocket 接口

第十章 待设计内容

内容 优先级 关联
好友赠送礼物完整道具列表(心意笺制作材料/商城价格) GDD-06 经济联调
同行符详细数值(制作材料/商城价格/掉落概率) GDD-06 经济联调
组队副本完整列表与推荐人数/职业搭配 GDD-03 战斗系统 + GDD-18 副本引擎
好友推荐算法详细权重调参 数据驱动,上线后 A/B 测试
组队UI/UX原型(组队面板/匹配界面/队伍信息栏) 客户端 TDD
好友度各行为增长数值平衡 GDD-21 数值平衡联调
跨服好友方案(若后续支持多服) 架构评估

GDD-34 v1.1 | 2026-07-02 | 术语一致性修复:将"飞升"替换为"天启"(✅F08好友上限列表) | 前序:v1.0

GDD-34 v1.2 | 2026-07-06 | 第九境界名称修正:✅F08好友上限列表"天启"→"飞升"(v1.1误将飞升改为天启,但天启是世界解锁机制✅122,飞升才是第九大境界✅116);跨层组队引用修正:GDD-33 ✅W06→✅WB06(W前缀属GDD-18,WB前缀属GDD-33) | 前序:v1.1

GDD-34 v1.0 | 2026-07-02 | 初版:好友与组队系统完整设计,覆盖好友管理/好友度/在线状态/传送/组队创建/匹配/掉落分配/BUFF/跨层级规则/系统联动九大模块 | 前序:GDD-16 v1.6 社交系统 / GDD-29 v1.0 聊天系统 / GDD-33 v1.0 世界Boss