GCXbwLobbyInfo 是当前客户端保留的新比武大厅状态同步包。Game.exe 已能稳定确认它为固定 12 字节结构,并且客户端 Lua 接口还能直接读取 bHaveTeam、teamNum、bInLobby、nextMatchTime 等大厅状态键。
包信息
| 项目 |
内容 |
| 封包 ID |
999 |
| 包名 |
GCXbwLobbyInfo |
| 方向 |
GC 服务端 -> 客户端 |
| 固定包长 |
12 |
| 当前 Lua 协议定义 |
未发现 |
| 当前 Lua 发送入口 |
未发现 |
| 主要作用 |
同步客户端本地新比武大厅状态并触发大厅界面刷新 |
当前 Game.exe 可直接确认:
GCXbwLobbyInfo
GetPacketID() = 999;
GetPacketSize() = 12;
Read = 0x140618650;
Write = 0x140618720;
Execute thunk = 0x140618640 -> sub_140095880;
包体结构
| 偏移 |
长度 |
字段 |
类型 |
含义 |
0x00 |
0x01 |
bHaveTeam |
uint8 |
是否已有队伍 |
0x01 |
0x01 |
teamNum |
uint8 |
队伍人数 |
0x02 |
0x01 |
bMenPaiFit |
uint8 |
门派条件是否满足 |
0x03 |
0x01 |
bInLobby |
uint8 |
是否处于大厅状态 |
0x04 |
0x01 |
bXbwTeamFit |
uint8 |
新比武队伍条件是否满足 |
0x05 |
0x04 |
nextMatchTime |
uint32 |
下次匹配或刷新时间 |
0x09 |
0x01 |
round_or_dayWinCnt_1 |
uint8 |
包尾双字节状态区之一 |
0x0A |
0x01 |
round_or_dayWinCnt_2 |
uint8 |
包尾双字节状态区之一 |
0x0B |
0x01 |
timeType |
uint8 |
时间类型/时间阶段 |
客户端脚本侧还可以读取 round 与 dayWinCnt。结合当前 Read() 顺序和大厅状态 getter,可以确定这两个值来自包尾的两个单字节状态位,但暂时无法仅凭现役证据 100% 区分它们在线路上的先后次序,因此本文保留为 round_or_dayWinCnt_*。
当前实际行为
当前客户端 Execute() 会把整条包写入本地新比武大厅状态块,并立即触发事件 945。此外,客户端内置 Lua getter sub_140074100 能读取以下键:
bHaveTeam
teamNum
bMenPaiFit
bInLobby
bXbwTeamFit
timeType
round
nextMatchTime
dayWinCnt
这说明 GCXbwLobbyInfo 的 12 字节并不是匿名保留字段,而是大厅界面脚本实际读取的一组状态快照。
服务端落点
当前 /home/ubuntu/Game2 未发现这条协议的现役落点:
- 未发现协议定义:
/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 的读写骨架
Read(stream) {
read_u8(bHaveTeam);
read_u8(teamNum);
read_u8(bMenPaiFit);
read_u8(bInLobby);
read_u8(bXbwTeamFit);
read_u32(nextMatchTime);
read_u8(round_or_dayWinCnt_1);
read_u8(round_or_dayWinCnt_2);
read_u8(timeType);
}
当前 Game.exe 的执行结论
Execute() {
update_local_xbw_lobby_state(packet);
fire_event(945);
return 2;
}
结论
GCXbwLobbyInfo(999) 是固定 12 字节的新比武大厅状态同步包。
- 当前客户端已明确把其中的大部分字段暴露成
bHaveTeam/teamNum/bInLobby/nextMatchTime/timeType 等脚本可读状态。
- 包尾两个
uint8 最终对应 round/dayWinCnt,但在线路上的精确先后仍建议保守处理。
- 当前
/home/ubuntu/Game2 未发现现役发送链。
|