Files
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

128 lines
4.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 商店
## 分类
- 项目功能
## 目的
记录商店商品、购买、货币消耗、体力/资源购买和商店 UI 入口。
## 已知线索
- GM 线索:`Assets/Game/GameHFScripte/GameFunction/UIWindows/GMWindow/GMWindow_GM.cs` 中有商店模块注释。
- Tips 线索:`Tips_GetPower` 引用 `ShopGoodsInfo`
- 图集线索:`SpriteAtlasAssets/Shop`
- 代码中可见 `ShopWindow``ShopGetCurrency` 注释引用。
## 已确认内容
协议和数据结构已生成:
- `Network_MsgId.GetShop = 2500`
- `Network_MsgId.ShopBuy = 2501`
- `Network_MsgId.ShopRefresh = 2502`
- `HFEvent_STC_GetShopS2C`
- `HFEvent_STC_ShopBuyS2C`
- `HFEvent_STC_ShopRefreshS2C`
请求/响应字段:
```text
GetShopC2S
-> ShopId
GetShopS2C
-> repeated ShopInfo
ShopBuyC2S
-> GoodsId
-> BuyType
ShopBuyS2C
-> ShopId
-> Goods
-> Item
ShopRefreshC2S
-> ShopId
-> RefreshType
ShopRefreshS2C
-> Shop
```
核心数据结构在:
- `Assets/Game/GameHFScripte/CopyToHF/Network/Player.cs`
- `Assets/Game/GameHFScripte/CopyToHF/Network/Common.cs`
```text
ShopInfo
-> ShopId
-> RefreshInfo : Map<int, ShopRefreshInfo>
-> Goods : Map<int, ShopGoodsInfo>
ShopGoodsInfo
-> GoodsId
-> BuyNum : Map<int, GoodsBuyNumInfo>
-> Item
ShopRefreshInfo
-> RefreshType
-> RefreshNum
GoodsBuyNumInfo
-> BuyType
-> BuyNum
```
体力购买相关:
- `Tips_GetPower` 是当前能看到的体力购买/领取 UI 线索。
- `Tips_GetPower` 读取 `Constants.PurchaseStamina`
- `Tips_GetPower` 监听 `HFEvent_BagItemUpdate` 刷新展示。
- `Stamina_QueryC2S` / `Stamina_GetC2S` 协议已生成,但当前未看到实际发送点。
当前接入状态:
- `MainWindow``OpenWindow<ShopWindow>``ShopGetCurrency``Tips_GetPower` 入口大多处于注释状态。
- 未发现 `GetShopC2S``ShopBuyC2S``ShopRefreshC2S` 在业务代码中的实际发送点。
- 未发现独立商店 manager。
- 因此当前判断:商店协议和部分 UI/资源痕迹存在,但客户端业务主流程未完整接入或处于注释/待开发状态。
## 梳理任务
- [x] 查找是否存在独立商店 manager、window 或配置表。
- [x] 梳理商品数据结构和 `ShopGoodsInfo` 来源。
- [ ] 梳理购买流程:打开、选择、校验、扣费、到账。
- [x] 梳理商店与背包、资源、体力之间的关系。
- [x] 确认当前商店功能是完整实现、部分接入还是已注释/待开发。
## 待确认
- 是否存在未纳入当前工程的 `ShopWindow``ShopGetCurrency` 或旧分支代码。
- 是否存在 `Shop.xlsx``Goods.xlsx``DailyDeals.xlsx` 等相关配置;当前配置列表未登记这些表,但生成代码里有旧表痕迹。
- 商店是否区分普通商店、体力购买、礼包、广告等类型。
- 商店 UI 当前看起来未接入,需要后续确认是否是产品阶段未启用。
## 相关框架
- [背包](背包.md)
- [UI 框架](../../../modules/frameworks/UI窗口系统/README.md)
- [网络框架](../../../modules/frameworks/网络系统.md)
- [数据/配置框架](../../../modules/frameworks/数据配置框架.md)
---
## 文档关联
> 当本文档发生变更时,应同步检查以下关联文档,避免信息不一致。
| 文档 | 关联原因 |
|---|---|
| [modules/模块索引.md](../../../modules/模块索引.md) | 模块索引是项目知识总入口 |
| [modules/features/背包.md](背包.md) | 背包 |
| [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、网络、事件、配置等框架 |