找回密码
 registerss
搜索
查看: 48|回复: 0

洱海月 v0-07-0300 封包解析:ID 1100 WGCRankingListRet(通用排行榜返回)

[复制链接]
  • 打卡等级:本地老炮
  • 打卡总天数:603
  • 打卡月天数:1
  • 打卡总奖励:600
  • 最近打卡:2026-10-03 06:32:28
Waylee 发表于 2026-4-15 17:41 | 显示全部楼层 |阅读模式 | Google Chrome | Windows 10

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

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

×

WGCRankingListRet 是当前版本里一条体量较大的通用排行榜返回包。当前 Game.exe 已能稳定确认它由 69 字节固定头和若干条 804 字节排行榜记录组成;客户端随后通过 lua_GetJSRankingListDataCount()、lua_GetJSRankingListInfo()、lua_GetJSRankingListMemberInfo()、lua_GetJSRankingListMyInfo()、lua_GetJSRankingListParam() 这组接口对外提供访问。

包信息

项目 内容
封包 ID 1100
包名 WGCRankingListRet
方向 WGC 特殊通道 -> 客户端
包长 变长,69 + 804 * entry_count
当前 Lua 状态 当前 /home/ubuntu/Game2 主链未检出同名协议定义或发送链
主要作用 返回一组排行榜缓存数据,并供客户端多个排行界面统一读取

包体结构

主包结构

偏移 长度 字段 类型 含义
0x00 0x10 header_prefix bytes[16] 排行榜头部控制参数前段
0x10 0x01 entry_count uint8 排行榜记录数量
0x11 0x16 header_params bytes[22] 排行榜头部控制参数后段
0x27 0x1E ranking_name char[30] 排行榜名称
0x45 0x324 * entry_count entry_list ranking_entry[entry_count] 排行榜记录数组

ranking_entry 结构

字段 长度 类型 含义
ranking_entry 804 bytes[804] 单条排行榜记录

当前实际行为

  • 当前客户端多个排行榜界面都会消费这条包,包括:
    • DoublePK_TopList
    • DoublePlay_TopList
    • Frozen_Answer_List
    • ShaXing_TopList
    • MenPaiWar_TopList
  • 当前 Game.exe 虽然把记录整体按 804 字节条目缓存,但对外已经暴露出比较稳定的读取接口:
    • lua_GetJSRankingListInfo(type, index)
    • 可读取单条记录的 rank / name / score(or use_time) / state
    • lua_GetJSRankingListMemberInfo(type, index, member_index)
    • 可读取成员级信息,如 member_guid / member_name / menpai / level
    • lua_GetJSRankingListMyInfo(type)
    • 可读取当前玩家与该排行榜相关的个人信息
    • lua_GetJSRankingListParam(type, index, param_index)
    • 可读取若干扩展参数,例如关系值、区服参数等
  • 这说明 804 字节条目内部并不是一段无意义原始块,而是“排行主记录 + 成员信息 + 扩展参数”的统一缓存结构。
  • 但仅凭当前公开证据,还不足以把头部 69 字节和单条 804 字节完整展开到每一个偏移,因此文档保留为“稳定出口 + 保守块命名”的写法更安全。

服务端落点

当前 /home/ubuntu/Game2 主链未找到 WGCRankingListRet 的现役 Lua 落点,已确认的检查范围包括:

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

当前客户端可确认的消费范围是:

  • 多个活动 / 玩法排行榜界面共享的本地排行缓存

关键代码

当前 Game.exe 的长度公式

PacketSize = 69 + 804 * entry_count;

当前客户端对外暴露的读取接口

lua_GetJSRankingListDataCount(type)
lua_GetJSRankingListInfo(type, index)
lua_GetJSRankingListMemberInfo(type, index, member_index)
lua_GetJSRankingListMyInfo(type)
lua_GetJSRankingListParam(type, index, param_index)

结论

  1. WGCRankingListRet(1100) 是当前版本的通用排行榜返回包,结构为 69 字节头加 804 字节记录数组。
  2. entry_count 和 ranking_name 已经能从当前 Game.exe 稳定确认,其余头部参数仍应保守处理。
  3. 单条 804 字节记录内部已被客户端 getter 实际消费为“排行主记录 + 成员信息 + 扩展参数”。
  4. 这条包的主要依据来自当前 Game.exe 和当前客户端真实消费链;当前 /home/ubuntu/Game2 现役 Lua 主链未检出同名发送实现。
您需要登录后才可以回帖 登录 | registerss

本版积分规则

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

GMT+8, 2026-10-4 11:26 , Processed in 0.066783 second(s), 26 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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