lawless/docs/设计文档/GDD-34-好友与组队系统设计.md

866 行
42 KiB
Markdown

# GDD-34 好友与组队系统设计
> 文档类型游戏设计文档Game Design Document
> 版本1.1
> 日期2026-07-02
> 关联文档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 ✅W06 |
### 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 实时消息协议
```protobuf
// 好友申请通知(服务端 → 客户端)
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 ✅W06 |
| 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.0 | 2026-07-02 | 初版:好友与组队系统完整设计,覆盖好友管理/好友度/在线状态/传送/组队创建/匹配/掉落分配/BUFF/跨层级规则/系统联动九大模块 | 前序GDD-16 v1.6 社交系统 / GDD-29 v1.0 聊天系统 / GDD-33 v1.0 世界Boss*