Files

134 lines
3.8 KiB
Markdown
Raw Permalink Normal View History

# 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、网络、事件、配置等框架 |