GCChannelResult 是客户端保留的一条旧式频道系统结果包。当前 Game.exe 能确认它是固定 7 字节结构,但 Temp_Release_v0-07-0300 的现役 Lua 主链没有接入这条下行包。
包信息
| 项目 |
内容 |
| 封包 ID |
129 |
| 包名 |
GCChannelResult |
| 方向 |
Server -> Client |
| 包长 |
7 |
| 当前 Lua 协议定义 |
未发现 |
| 作用 |
返回旧式频道相关操作的结果数据 |
包体结构
| 偏移 |
长度 |
字段 |
类型 |
含义 |
0x00 |
0x01 |
result_code |
uint8 |
结果码 |
0x01 |
0x04 |
reserved_0 |
uint32 |
当前客户端会读写,但执行阶段未直接消费 |
0x05 |
0x02 |
reserved_1 |
uint16 |
当前客户端会读写,但执行阶段未直接消费 |
当前实际行为
- 当前
Game.exe 中,GetPacketID() 返回 129,GetPacketSize() 返回 7。
Read() / Write() 固定处理 1 + 4 + 2 三段数据。
- 当前客户端
Execute() 不解析包体业务内容,只在内部做一次空指针断言检查后直接返回 2。
- 现役 Lua 服务端没有定义
packet.GCChannelResult,也没有频道结果包的发送点。
- 结合当前项目现状,这条包更接近“客户端保留的旧频道结果壳子”,并不是现役 Lua 主链正在使用的协议。
服务端落点
当前 Lua 主链未发现这条包的正式落点:
/home/ubuntu/Game2/services/game/packet.lua
/home/ubuntu/Game2/services/msgagent.lua
/home/ubuntu/Game2/services/scene/scenecore.lua
关键代码
GetPacketID() = 129;
GetPacketSize() = 7;
Read(stream) {
read_u8(result_code);
read_u32(reserved_0);
read_u16(reserved_1);
}
Write(stream) {
write_u8(result_code);
write_u32(reserved_0);
write_u16(reserved_1);
}
Execute() {
assert(packet_object != nullptr);
return 2;
}
结论
GCChannelResult(129) 的当前可确认结论很直接:它是一条固定 7 字节的旧式频道结果包,客户端仍保留收包类,但执行阶段没有消费包体字段,现役 Lua 服务端也没有接入发送链,因此当前只能把首字节稳定命名为 result_code,后两段按保留字段记录。
|