PRD-014 帮会系统
文档编号:PRD-014
版本:v1.0
状态:已通过
适用端:服务端 / 客户端
关联模块:SessionServer/Tong.cpp、RecordServer、tbl/Tong.xml
1. 背景与目标
帮会是长线社交与国战组织单位。当前存在职位权限混乱、帮会资金可被单人提取、解散后成员 Buff 残留等问题。本 PRD 统一创建、职位、申请、建设、俸禄、活动与解散。
2. 核心规则
2.1 创建与加入
- 创建消耗金币/道具,角色等级 ≥ 20,未加入其他帮会。
- 帮会名称唯一,2–8 个汉字,敏感词校验。
- 加入需申请/邀请,管理员审批,成员上限随帮会等级提升。
- 退会后 24 小时内不可加入新帮会。
2.2 职位与权限
| 职位 | 人数 | 权限 |
|---|---|---|
| 帮主 | 1 | 全部 |
| 副帮主 | 2 | 审批、踢人、活动报名 |
| 长老 | 4 | 审批、发言管理 |
| 精英 | 10 | 无管理权限 |
| 成员 | 不限 | 基础 |
- 帮主可转让,7 天未上线自动转让给副帮主。
- 踢人/审批/资金操作写帮会日志。
2.3 建设与俸禄
- 成员完成帮会任务/捐献获得贡献与帮会资金。
- 帮会资金用于升级、活动报名、俸禄发放。
- 俸禄按职位/贡献每周发放,帮主可调整比例。
- 资金提取仅帮主/副帮主,单日上限可配置。
2.4 帮会活动
- 帮会 Boss、帮会战、运镖、领地战。
- 活动报名由有权限职位发起,成员确认后进入。
- 活动期间退会/被踢不保留奖励。
3. 服务端设计
3.1 数据结构
struct Guild {
uint64_t guild_id;
std::string name;
uint64_t leader_id;
uint32_t level;
uint64_t funds;
uint32_t member_count;
uint32_t create_time;
};
struct GuildMember {
uint64_t role_id;
uint8_t position;
uint32_t contribution;
uint32_t join_time;
uint32_t last_online;
};
3.2 协议
| 方向 | 协议 | 说明 |
|---|---|---|
| C→S | CS_GuildCreate | 创建 |
| C→S | CS_GuildApply | 申请 |
| C→S | CS_GuildApprove | 审批 |
| C→S | CS_GuildKick | 踢人 |
| C→S | CS_GuildPosition | 任免 |
| C→S | CS_GuildDonate | 捐献 |
| C→S | CS_GuildSalary | 俸禄 |
| S→C | SC_GuildInfo | 帮会信息 |
| S→C | SC_GuildMemberList | 成员列表 |
3.3 权限与事务
- 所有管理操作校验职位权限与目标职位。
- 资金变动使用事务,记录 before/after 与操作人。
- 帮会升级扣资金与加等级原子完成。
- 解散需二次确认,24 小时冷静期可取消。
4. 客户端设计
- 帮会大厅:公告、等级、资金、成员数、活动入口。
- 成员列表:职位、贡献、在线、最后登录。
- 申请审批:一键同意/拒绝、批量。
- 捐献/任务:显示今日贡献与上限。
- 帮会日志:审批、踢人、资金、职位变更。
5. 配置
Tong.xml:create_cost、max_members、level_up_cost、salary_rate、donate_limit、transfer_days、quit_cooldown。
6. 边界与异常
| 场景 | 处理 |
|---|---|
| 帮会名重复 | 拒绝 |
| 帮会满员 | 拒绝申请/邀请 |
| 帮主 7 天未上线 | 自动转让 |
| 资金不足升级 | 拒绝 |
| 解散时仍有成员 | 二次确认,邮件通知 |
| 国战期间解散 | 禁止或延迟到活动结束 |
7. 验收标准
- 创建/申请/审批/退会/踢人/转让/解散正确。
- 职位权限与人数限制生效。
- 捐献、资金、俸禄、升级事务一致。
- 帮会日志完整可追溯。
- 解散/转让后 Buff、活动资格正确清理。