[docs][refactor]: 将旧 01~06 中文教程合并整理为 modules/frameworks 文件夹结构
- 删除 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>
This commit is contained in:
148
business-reference/playballoons/features/地图进度.md
Normal file
148
business-reference/playballoons/features/地图进度.md
Normal file
@@ -0,0 +1,148 @@
|
||||
# 地图/关卡进度
|
||||
|
||||
## 分类
|
||||
|
||||
- 项目功能
|
||||
|
||||
## 目的
|
||||
|
||||
记录地图、关卡、波次、进度奖励和关卡状态。
|
||||
|
||||
## 已知线索
|
||||
|
||||
- 地图逻辑:`Assets/Game/GameHFScripte/GameFunction/Logic/MapManager/`
|
||||
- 关卡资源:`Assets/Game/GameHFResource/CN/Map/Level.prefab`
|
||||
- 配置线索:`XLSX_SRC/CN/Wave.xlsx`
|
||||
- 网络线索:`UserRolePeripheryProgressReward*`
|
||||
|
||||
## 已确认内容
|
||||
|
||||
地图加载:
|
||||
|
||||
```text
|
||||
HFMapManager.CreateMap(levelid, finish)
|
||||
-> ClearMap()
|
||||
-> HFFunCatalogue.Asset.LoadAsset(1501)
|
||||
-> GetOrAddComponent<HFM_DLevelSetting>()
|
||||
-> OnSetFinishLoad()
|
||||
```
|
||||
|
||||
当前 `CreateMap` 传入了 `levelid`,但实际读取关卡配置的代码被注释:
|
||||
|
||||
```text
|
||||
// MapInfo = HFFunCatalogue.NDB.ds_Level83D033B2TableData.ReadTableByPK(levelid);
|
||||
```
|
||||
|
||||
地图配置数据:
|
||||
|
||||
- `stMapInfo` 使用 `MemoryPack`,包含障碍物/实体位置列表 `ObstaclesPos`。
|
||||
- `stMapEntityInfo` 包含 `Postion`、`EntityId`、`CellIndexs`。
|
||||
- `HF_MapEditor` 可以保存/读取地图配置文件到 `Assets/Game/GameHFResource/CN/MapInfoData/<Configuration>.txt`,但实体加载/放置代码大多处于注释状态。
|
||||
- `HFM_MapSetting` 记录地图出生点、终点、Hero 引用。
|
||||
- `HF_WaveInfo` 记录波次中的起止时间、怪物 id、数量和 Boss 卡显示等。
|
||||
|
||||
关卡/波次协议:
|
||||
|
||||
- `GetLevelInfo = 3004`
|
||||
- `GetLevelWaveReward = 3005`
|
||||
- `BattleLevelEnter = 3000`
|
||||
- `BattleLevelExit = 3001`
|
||||
- `BattleLevelWin = 3002`
|
||||
- `BattleLevelFail = 3003`
|
||||
|
||||
字段线索:
|
||||
|
||||
```text
|
||||
GetLevelInfoS2C
|
||||
-> Levels
|
||||
|
||||
GetLevelWaveRewardC2S
|
||||
-> Id
|
||||
-> Wave
|
||||
GetLevelWaveRewardS2C
|
||||
-> Level
|
||||
-> Item
|
||||
|
||||
BattleLevelEnterC2S
|
||||
-> Id
|
||||
BattleLevelWinC2S
|
||||
-> Id
|
||||
-> ChestType
|
||||
-> KillMons
|
||||
-> MaxWave
|
||||
BattleLevelFailC2S
|
||||
-> Id
|
||||
-> MaxWave
|
||||
-> KillMons
|
||||
```
|
||||
|
||||
外围进度奖励协议:
|
||||
|
||||
- `GetUserRolePeripheryProgressReward1Data = 5000`
|
||||
- `UserRolePeripheryClaimedProgressReward1Reward = 5001`
|
||||
- `SetUserRolePeripheryLevelWaveProgress = 5901`,当前主要在 GM 调试入口看到。
|
||||
|
||||
字段线索:
|
||||
|
||||
```text
|
||||
UserRolePeripheryDataProgressReward1
|
||||
-> LevelId
|
||||
-> MaxWave
|
||||
-> State
|
||||
-> ClaimedWave
|
||||
|
||||
GetUserRolePeripheryProgressReward1DataS2C
|
||||
-> ProgressReward1 : repeated UserRolePeripheryDataProgressReward1
|
||||
|
||||
UserRolePeripheryClaimedProgressReward1RewardC2S
|
||||
-> LevelId
|
||||
UserRolePeripheryClaimedProgressReward1RewardS2C
|
||||
-> Rewards : Map<int, int>
|
||||
```
|
||||
|
||||
当前接入状态:
|
||||
|
||||
- PVE 战斗内波次由 `HFWaveManager` 读取 `Wave.xlsx`,属于战斗流程。
|
||||
- 地图/关卡进度协议已生成,但业务 UI 和普通发送链路未确认。
|
||||
- `GMWindow_GM.cs` 中有外围进度设置和领取奖励调试入口。
|
||||
- 地图编辑器、关卡配置、地图实体摆放等代码保留较多注释,当前更像半接入/调试状态。
|
||||
|
||||
## 梳理任务
|
||||
|
||||
- [x] 梳理地图/关卡数据结构。
|
||||
- [ ] 梳理关卡解锁、当前关卡、已通关状态。
|
||||
- [x] 梳理波次和关卡配置的关系。
|
||||
- [x] 梳理进度奖励领取条件和网络消息。
|
||||
- [ ] 梳理地图进度如何驱动主界面或 PVE 入口。
|
||||
|
||||
## 待确认
|
||||
|
||||
- 地图是否有章节/大关/小关层级;`ChapterWindow` 有注释入口,但当前未确认实装。
|
||||
- `Level` 相关配置表是否为旧表残留或当前未登记源表。
|
||||
- 关卡进度是否全部由服务器维护。
|
||||
- `GetLevelWaveReward` 与外围进度奖励 `ProgressReward1` 的产品边界。
|
||||
- 地图进度如何驱动主界面或 PVE 入口。
|
||||
|
||||
## 相关框架
|
||||
|
||||
- [PVE/关卡战斗](PVE关卡战斗.md)
|
||||
- [数据/配置框架](../../../modules/frameworks/数据配置框架.md)
|
||||
- [网络框架](../../../modules/frameworks/网络系统.md)
|
||||
- [UI 框架](../../../modules/frameworks/UI窗口系统/README.md)
|
||||
|
||||
---
|
||||
|
||||
## 文档关联
|
||||
|
||||
> 当本文档发生变更时,应同步检查以下关联文档,避免信息不一致。
|
||||
|
||||
| 文档 | 关联原因 |
|
||||
|---|---|
|
||||
| [modules/模块索引.md](../../../modules/模块索引.md) | 模块索引是项目知识总入口 |
|
||||
| [modules/features/PVE关卡战斗.md](PVE关卡战斗.md) | PVE/关卡战斗 |
|
||||
| [modules/frameworks/数据配置框架.md](../../../modules/frameworks/数据配置框架.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、网络、事件、配置等框架 |
|
||||
Reference in New Issue
Block a user