外观
训练与教练 · 技术实现
「玩家设定 →」
1. 代码位置
| 层 | 类 | 职责 |
|---|---|---|
| Controller | controller/TrainingController(/api/training) | 训练状态/目标切换/开始/停止(占位) |
| Service | service/TrainingService | 独立练功房已下线:仅保留目标写入与日志提示,setActive(false) 恒不激活 |
| Service | service/TrainingExperienceService | 训练经验结算(挂机收益并入地图战斗) |
| Service | service/SettlementService(settleTraining) | 训练结算路径(无实际收益) |
| domain | domain/TrainingState、domain/TrainingTarget | 训练状态与目标模型 |
2. 数据表
| 表 | 关键列 | 说明 |
|---|---|---|
training_state | player_id、target、active、last_tick_at | 训练目标状态(V1;active 恒为 0) |
training_log | player_id、message、create_time | 训练日志(V1,记录下线提示) |
map_coach_target | map_id、coach_target | 地图教练怪目标(V4,训练承接方) |
3. 配置与常量
- 下线状态注释与日志文案:emberfall-server/src/main/java/com/emberfall/service/TrainingService.java:27源码读取失败,片段不可用
- 前端重定向:
emberfall-web/src/router/index.ts:48{ path: '/training', redirect: '/maps' } - yml 键:无
4. 数据流简述
GET /api/training/status 仍可返回目标与日志,但 start()/stop()/tick() 一律 setActive(false) 并写入「独立练功房已下线」日志(TrainingService.java:35,45,74)。训练属性的实际来源为地图挂机战斗中的教练怪(map_coach_target),由 SettlementService 在地图结算中发放。前端 /training 已重定向 /maps,TrainingView.vue 不再可达。
5. 已知差异
(独立练功房已下线,训练并入地图教练怪)6. 相关代码
- 地图挂机战斗(
MapService:教练怪) - 训练经验(
TrainingExperienceService) - 战斗结算(
CombatService)