Files
UnityAI/business-reference/playballoons/features/地图进度.md
lms ee1ff7f444 [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>
2026-07-07 18:36:15 +08:00

4.6 KiB
Raw Blame History

地图/关卡进度

分类

  • 项目功能

目的

记录地图、关卡、波次、进度奖励和关卡状态。

已知线索

  • 地图逻辑: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 包含 PostionEntityIdCellIndexs
  • 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

字段线索:

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 调试入口看到。

字段线索:

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