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

> 文档类型：游戏设计文档（Game Design Document）
> 版本：1.4
> 日期：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（按战斗难度） | 副本/世界Boss/区域Boss/游历战斗均计入 |
| **组队完成副本** | +5 ~ +15（按副本难度） | 难度越高增长越多 |
| **组队完成委托** | +2 ~ +5 | 佣兵委托/日常委托均计入 |
| **赠送礼物** | +1 ~ +3（按礼物品质） | 消耗道具「心意笺」或稀有材料，对方需在线接收 |
| **好友传送到达** | +1 | 传送到好友位置时双方各增 |
| **共同参与世界事件** | +5 ~ +10 | 世界Boss/妖潮/混沌裂隙等（GDD-33） |
| **护法/助战** | +3 ~ +8 | 好友渡劫时护法（GDD-16 §1.4）、好友被追杀时助战 |
| **道侣/结义前置** | 自动 | 好友度达到「同道」是双修/道侣/结义的前置条件（GDD-16 §1.1） |

> **无每日上限**：好友度增长无每日上限，真实反映互动频率。

**设计原则**：
- 赠送礼物需消耗道具，道具本身有获取成本
- 好友度增长完全由真实互动决定，无每日上限、无边际递减
- 真实随机、无保底——好友度增长完全取决于实际互动频率

#### 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 实时消息协议

```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]    # 防御加成
      cultivation_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.3 | 2026-07-06 | 术语澄清：游戏不存在独立"经验值"系统，能量积累本身即修炼进度（GDD-02/GDD-23权威）；§2.3.1/§3.3表格及配置示例中"经验加成/经验分配"改为"修炼加成"，exp_by_count改名cultivation_by_count | 前序：v1.2*

*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*

*GDD-34 v1.4 | 2026-07-06 | 层级命名统一：§1.5.1"层级1（凡界）"改为"层级1（出生地）" | 前序：v1.3*
