找回密码
 registerss
搜索

洱海月 v0-07-0300 封包解析:ID 1335 GCTSPhoenixShopInfo(凤凰商店信息下发)

[复制链接]
Waylee 发表于 2026-4-15 17:16 | 显示全部楼层 |阅读模式 | Google Chrome | Windows 10

马上注册,查看网站隐藏内容!!

您需要 登录 才可以下载或查看,没有账号?registerss

×

GCTSPhoenixShopInfo 是当前客户端凤凰商店界面的核心下行包。当前 Game.exe 可以直接确认:它固定 140 字节,前 12 字节是商店头信息,后 128 字节是运行时商店状态块。客户端收到后会把这 128 字节写入凤凰商店数据池,再投递一条界面刷新事件。

包信息

项目 内容
封包 ID 1335
包名 GCTSPhoenixShopInfo
方向 GC 服务端 -> 客户端
固定包长 140
当前 Lua 协议定义 现役 /home/ubuntu/Game2 未检出
当前 Lua 发送点 现役 /home/ubuntu/Game2 未检出
当前用途 下发凤凰商店当前店铺 ID、代币数量、关联对象以及商店状态块

包体结构

偏移 长度 字段 类型 含义
0x00 0x04 shop_id uint32 凤凰商店 ID;客户端 Lua Phoenix_Shop.lua 会用它取 Lua_GetTSPhoenixShop(shop_id)
0x04 0x04 currency_count uint32 当前可用代币数量
0x08 0x04 npc_server_id uint32 打开商店时关联的 NPC / 对象服务端 ID
0x0C 0x80 shop_runtime_blob bytes[128] 凤凰商店运行时状态块;客户端会整体复制到数据池

当前实际行为

  • 客户端会先把 shop_runtime_blob 整体复制到凤凰商店数据池。
  • 随后会投递一条客户端事件,并把 shop_id、currency_count、npc_server_id 作为三个参数传出,用于刷新或拉起凤凰商店界面。
  • 当前客户端 Lua Phoenix_Shop.lua 的实际使用链已经给出较强旁证:
    • shop_id 用于 Lua_GetTSPhoenixShop(shop_id)
    • currency_count 用于界面币值显示
    • npc_server_id 用于反查 NPC 对象并维持界面关注
  • shop_runtime_blob 的内部明细在当前证据下仍不宜硬拆;更稳妥的结论是,它承载凤凰商店的限购 / 计数等运行时状态。

服务端落点

当前现役服务端未检出这条包的 Lua 定义与发送链:

  • /home/ubuntu/Game2/services/game/packet.lua
  • /home/ubuntu/Game2/services/msgagent.lua
  • /home/ubuntu/Game2/services/scene/scenecore.lua

客户端实际消费侧可见:

  • /home/ubuntu/Game2 现役服务端未检出
  • 客户端脚本 Phoenix_Shop.lua 会通过 Lua_GetTSPhoenixShop(shop_id) 读取结果

关键代码

Read() {
    read_u32(shop_id);
    read_u32(currency_count);
    read_u32(npc_server_id);
    read_bytes(shop_runtime_blob, 128);
    return 1;
}

GetPacketSize() {
    return 140;
}

Execute() {
    copy_to_tsp_hoenix_shop_pool(shop_runtime_blob, 128);
    fire_event(1389, shop_id, currency_count, npc_server_id);
    return 2;
}

客户端 Lua 的直接消费旁证:

g_Phoenix_Shop_ShopInfo = Lua_GetTSPhoenixShop(tonumber(shopId))
g_UI_Items.Daibi:SetText(...)
g_objCared = DataPool:GetNPCIDByServerID(tonumber(g_Object))

结论

GCTSPhoenixShopInfo(1335) 的当前结论已经比较稳定:

  1. 它是固定 140 字节的凤凰商店信息包。
  2. 前 12 字节可明确命名为 shop_id + currency_count + npc_server_id。
  3. 后 128 字节是凤凰商店运行时状态块,客户端会整体复制到数据池后再由 Lua_GetTSPhoenixShop() 解读。
您需要登录后才可以回帖 登录 | registerss

本版积分规则

QQ|手机版|雪舞知识库 ( 浙ICP备15015590号-1 | 萌ICP备20232229号|浙公网安备33048102000118号 )

GMT+8, 2026-10-24 13:02 , Processed in 0.025346 second(s), 27 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表