- 删除 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>
4.6 KiB
4.6 KiB
地图/关卡进度
分类
- 项目功能
目的
记录地图、关卡、波次、进度奖励和关卡状态。
已知线索
- 地图逻辑:
Assets/Game/GameHFScripte/GameFunction/Logic/MapManager/ - 关卡资源:
Assets/Game/GameHFResource/CN/Map/Level.prefab - 配置线索:
XLSX_SRC/CN/Wave.xlsx - 网络线索:
UserRolePeripheryProgressReward*
已确认内容
地图加载:
HFMapManager.CreateMap(levelid, finish)
-> ClearMap()
-> HFFunCatalogue.Asset.LoadAsset(1501)
-> GetOrAddComponent<HFM_DLevelSetting>()
-> OnSetFinishLoad()
当前 CreateMap 传入了 levelid,但实际读取关卡配置的代码被注释:
// 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 = 3004GetLevelWaveReward = 3005BattleLevelEnter = 3000BattleLevelExit = 3001BattleLevelWin = 3002BattleLevelFail = 3003
字段线索:
GetLevelInfoS2C
-> Levels
GetLevelWaveRewardC2S
-> Id
-> Wave
GetLevelWaveRewardS2C
-> Level
-> Item
BattleLevelEnterC2S
-> Id
BattleLevelWinC2S
-> Id
-> ChestType
-> KillMons
-> MaxWave
BattleLevelFailC2S
-> Id
-> MaxWave
-> KillMons
外围进度奖励协议:
GetUserRolePeripheryProgressReward1Data = 5000UserRolePeripheryClaimedProgressReward1Reward = 5001SetUserRolePeripheryLevelWaveProgress = 5901,当前主要在 GM 调试入口看到。
字段线索:
UserRolePeripheryDataProgressReward1
-> LevelId
-> MaxWave
-> State
-> ClaimedWave
GetUserRolePeripheryProgressReward1DataS2C
-> ProgressReward1 : repeated UserRolePeripheryDataProgressReward1
UserRolePeripheryClaimedProgressReward1RewardC2S
-> LevelId
UserRolePeripheryClaimedProgressReward1RewardS2C
-> Rewards : Map<int, int>
当前接入状态:
- PVE 战斗内波次由
HFWaveManager读取Wave.xlsx,属于战斗流程。 - 地图/关卡进度协议已生成,但业务 UI 和普通发送链路未确认。
GMWindow_GM.cs中有外围进度设置和领取奖励调试入口。- 地图编辑器、关卡配置、地图实体摆放等代码保留较多注释,当前更像半接入/调试状态。
梳理任务
- 梳理地图/关卡数据结构。
- 梳理关卡解锁、当前关卡、已通关状态。
- 梳理波次和关卡配置的关系。
- 梳理进度奖励领取条件和网络消息。
- 梳理地图进度如何驱动主界面或 PVE 入口。
待确认
- 地图是否有章节/大关/小关层级;
ChapterWindow有注释入口,但当前未确认实装。 Level相关配置表是否为旧表残留或当前未登记源表。- 关卡进度是否全部由服务器维护。
GetLevelWaveReward与外围进度奖励ProgressReward1的产品边界。- 地图进度如何驱动主界面或 PVE 入口。
相关框架
文档关联
当本文档发生变更时,应同步检查以下关联文档,避免信息不一致。
| 文档 | 关联原因 |
|---|---|
| modules/模块索引.md | 模块索引是项目知识总入口 |
| modules/features/PVE关卡战斗.md | PVE/关卡战斗 |
| modules/frameworks/数据配置框架.md | 数据/配置框架 |
| modules/frameworks/网络系统.md | 网络框架 |
| modules/frameworks/UI窗口系统/README.md | UI 框架 |
| rules/10-架构说明.md | 架构说明定义总体分层和依赖方向 |
| rules/30-模块登记规则.md | 模块登记规则定义分类和状态口径 |
| TODO:补充依赖的框架/模块文档 | 如 UI、网络、事件、配置等框架 |