- 删除 01~05 旧中文教程目录 - 将 03 核心功能教程拆分为各 framework 模块的子文档 - 06 工具脚本移入 modules/frameworks/编辑器工具/UI工具/ - 非框架内容合并进 rules/20-开发规则.md 与 rules/40-工作流清单.md - 更新所有交叉链接与文档关联表 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
134 lines
3.8 KiB
Markdown
134 lines
3.8 KiB
Markdown
# GM/调试功能
|
||
|
||
## 分类
|
||
|
||
- 项目功能
|
||
|
||
## 目的
|
||
|
||
记录 GM 面板、调试请求、测试入口和开发验证流程。
|
||
|
||
## 已知线索
|
||
|
||
- UI 路径:`Assets/Game/GameHFScripte/GameFunction/UIWindows/GMWindow/`
|
||
- 背包数据:`GMWindow_BagData.cs`
|
||
- 请求配置:`GMWindow_GM.cs`
|
||
- 能看到背包、战斗、商店等调试请求线索。
|
||
|
||
## 已确认内容
|
||
|
||
窗口定义:
|
||
|
||
```text
|
||
GMWindow : AbsHFUIWindow
|
||
-> [HFAssetBundlePath(..., "UIWindows/GMWindow/GMWindow.prefab")]
|
||
-> [HFUIWindowLayer(UIWindow, Popup)]
|
||
```
|
||
|
||
生命周期:
|
||
|
||
```text
|
||
GMWindow.OnRunAwake()
|
||
-> OnRunAwake_BagData()
|
||
-> OnRunAwake_GM()
|
||
|
||
GMWindow.OnOpen()
|
||
-> OnOpen_BagData()
|
||
-> OnOpen_GM()
|
||
|
||
GMWindow.OnClose()
|
||
-> OnClose_BagData()
|
||
-> OnClose_GM()
|
||
```
|
||
|
||
GM 请求结构:
|
||
|
||
```text
|
||
GM_Network_MsgId
|
||
-> msgId : Network_MsgId
|
||
-> tip
|
||
-> args : List<GM_Network_MsgId_Arg>
|
||
|
||
GM_Network_MsgId_Arg
|
||
-> tip
|
||
-> contentType
|
||
-> value
|
||
```
|
||
|
||
发送链路:
|
||
|
||
```text
|
||
点击 btnSendGM
|
||
-> OnSendGM()
|
||
-> new GMC2S()
|
||
-> gmC2S.Msgid = (int)selected.msgId
|
||
-> gmC2S.Args.AddRange(...)
|
||
-> HFSeverManager.Instance.SendMsg(gmC2S)
|
||
```
|
||
|
||
当前 GM 覆盖范围:
|
||
|
||
- 背包:
|
||
- 请求背包数据:`GetBagItem`
|
||
- 添加道具:`PlayerResourceChange`
|
||
- 关卡:
|
||
- `BattleLevelEnter`
|
||
- `BattleLevelExit`
|
||
- `BattleLevelWin`
|
||
- `BattleLevelFail`
|
||
- 用户外围数据:
|
||
- 设置关卡完成波数:`SetUserRolePeripheryLevelWaveProgress`
|
||
- 领取用户关卡进度奖励:`UserRolePeripheryClaimedProgressReward1Reward`
|
||
- 时间:
|
||
- `GetServerTimeStamp`
|
||
- 宝箱:
|
||
- 添加用户宝箱:`AddUserRolePeripheryTreasureChest`
|
||
- 删除用户宝箱:`DelUserRolePeripheryTreasureChest`
|
||
- 获取/开启/领取/结束冷却相关操作存在注释。
|
||
- 商店:
|
||
- `SetDailyFeaturedTotalRefreshCount` 使用硬编码 `(Network_MsgId)7090`。
|
||
- Tower:
|
||
- 上阵、下阵、升级、添加 Tower 的 GM 配置块存在,但全部注释。
|
||
|
||
当前接入状态:
|
||
|
||
- GMWindow 本身是完整 UI 窗口。
|
||
- GM 请求通过统一 `GMC2S` 包装真实业务 `Network_MsgId` 和参数。
|
||
- 未看到明显的开发环境开关;MainWindow 中 GM 按钮也有编辑器开关注释,当前入口是否开放待确认。
|
||
|
||
## 梳理任务
|
||
|
||
- [ ] 梳理 GMWindow 打开入口。
|
||
- [x] 梳理 GM 请求结构和参数配置。
|
||
- [x] 梳理 GM 对背包、PVE、商店等功能的覆盖范围。
|
||
- [ ] 梳理 GM 功能是否只在开发环境启用。
|
||
- [x] 梳理 GM 请求和网络框架的关系。
|
||
|
||
## 待确认
|
||
|
||
- GMWindow 的正式打开入口待确认。
|
||
- 是否有权限/环境开关待确认。
|
||
- 是否允许线上包保留 GM 面板待确认。
|
||
- GM 操作通过服务器 GM 协议,有修改服务器数据的能力风险,需要上线前明确禁用策略。
|
||
|
||
## 相关框架
|
||
|
||
- [UI 框架](../../../modules/frameworks/UI窗口系统/README.md)
|
||
- [网络框架](../../../modules/frameworks/网络系统.md)
|
||
- [事件框架](../../../modules/frameworks/事件系统/README.md)
|
||
|
||
---
|
||
|
||
## 文档关联
|
||
|
||
> 当本文档发生变更时,应同步检查以下关联文档,避免信息不一致。
|
||
|
||
| 文档 | 关联原因 |
|
||
|---|---|
|
||
| [modules/模块索引.md](../../../modules/模块索引.md) | 模块索引是项目知识总入口 |
|
||
| [modules/frameworks/事件系统/README.md](../../../modules/frameworks/事件系统/README.md) | 事件框架 |
|
||
| [modules/frameworks/网络系统.md](../../../modules/frameworks/网络系统.md) | 网络框架 |
|
||
| [modules/frameworks/UI窗口系统/README.md](../../../modules/frameworks/UI窗口系统/README.md) | UI 框架 |
|
||
| [rules/10-架构说明.md](../../../rules/10-架构说明.md) | 架构说明定义总体分层和依赖方向 |
|
||
| [rules/30-模块登记规则.md](../../../rules/30-模块登记规则.md) | 模块登记规则定义分类和状态口径 |
|
||
| TODO:补充依赖的框架/模块文档 | 如 UI、网络、事件、配置等框架 | |