GCLangYuTianGeShopInfo 是琅嬛天阁商店的整表同步包。当前 Game.exe 已能稳定确认它的网络结构非常直接:前 1600 字节是一整块商店状态数据,尾部 4 字节是总条目数。客户端收到后会把这条包缓存下来,再由 Lua_GetLangYuTianGeShopData() 与 Lua_GetLangYuTianGeShopTotalCount() 供返利商店界面分页读取。
包信息
| 项目 |
内容 |
| 封包 ID |
1117 |
| 包名 |
GCLangYuTianGeShopInfo |
| 方向 |
GC 服务端 -> 客户端 |
| 固定包长 |
1604 |
| 当前 Lua 状态 |
当前 /home/ubuntu/Game2 主链未检出同名协议定义或发送链 |
| 主要作用 |
同步琅嬛天阁 / 返利商店整表状态 |
当前 Game.exe 的直接结论为:
PacketID = 1117;
PacketSize = 1604;
包体结构
| 偏移 |
长度 |
字段 |
类型 |
含义 |
0x00 |
0x640 |
shop_state_blob |
bytes[1600] |
琅嬛天阁商店整表状态块 |
0x640 |
0x04 |
total_count |
uint32 |
当前商店总条目数 |
当前实际行为
- 当前客户端
FanLiShop.lua 会通过以下接口消费这条包:
Lua_GetLangYuTianGeShopData(page, perPage)
Lua_GetLangYuTianGeShopTotalCount()
- 当前
Game.exe 的读写逻辑没有额外类型分支,结构固定。
- 前
1600 字节整块状态不会在 Lua 脚本层被显式拆解,而是交给客户端内部 getter 解释。
- 因此这条协议的最佳落地写法是“整表同步 + 总数控制”,而不是硬拆未经证实的细粒度字段。
服务端落点
当前 /home/ubuntu/Game2 主链未找到 GCLangYuTianGeShopInfo 的现役 Lua 落点,已确认的检查范围包括:
/home/ubuntu/Game2/services/game/packet.lua
/home/ubuntu/Game2/services/msgagent.lua
/home/ubuntu/Game2/services/scene
/home/ubuntu/Game2/services/scripts
当前可以确认的客户端消费界面为:
关键代码
当前 Game.exe 的读写形态
Read(stream) {
read(shop_state_blob, 1600);
read(total_count, 4);
}
当前客户端界面的读取方式
local total = Lua_GetLangYuTianGeShopTotalCount()
local list = Lua_GetLangYuTianGeShopData(cur_page, per_page)
结论
GCLangYuTianGeShopInfo(1117) 是固定 1604 字节的琅嬛天阁商店同步包。
- 包体可以稳定确认成
1600 字节状态块加 1 个 total_count。
- 当前客户端通过
Lua_GetLangYuTianGeShopData / TotalCount 读取本包缓存数据。
- 当前
/home/ubuntu/Game2 现役 Lua 主链未检出同名协议定义或发送点,因此本文主要依据当前 Game.exe 客户端链路。
|