CGGetReturnPage 是旧补偿归还系统里用于请求分页列表数据的客户端请求包。
包信息
| 项目 |
内容 |
| 封包 ID |
82 |
| 包名 |
CGGetReturnPage |
| 对应回包 |
当前 Lua 主链未见专用回包 |
| 作用 |
按指定分页和补偿类型请求补偿列表数据 |
包体结构
按当前 Temp_Release_v0-07-0300 的 Game.exe,CGGetReturnPage 固定长度为 5 字节。
| 偏移 |
长度 |
字段 |
类型 |
含义 |
0x00 |
0x01 |
return_type |
uint8 |
补偿列表类别;当前客户端 ReturnTool::GetPageInfo() 只允许 1~3 |
0x01 |
0x04 |
page |
int32 |
请求页码 |
总长度:
5 字节
当前实际行为
- 当前
Game.exe 已确认:
GetPacketID = 82
GetPacketSize = 5
Read/Write 顺序为 return_type -> page
- 当前客户端
ReturnTool::GetPageInfo(page, return_type) 会先检查两个 Lua 参数:
- 第
2 个参数必须是数字,作为 page
- 第
3 个参数必须是数字,作为 return_type
- 当前客户端只接受
return_type = 1/2/3,超出这个范围不会继续发包。
- 结合当前客户端发送函数可明确确认:
return_type 序列化为前面的 1 字节
page 序列化为后面的 4 字节
- 当前
Game.exe 的 Execute() 只是直接返回常量 2,没有客户端本地处理逻辑,所以这条包本质上是纯发送型请求。
- 当前仓库中的 Lua 服务端没有发现:
packet.CGGetReturnPage
request:CGGetReturnPage()
- 对应场景服处理入口
- 结合现有
CGReturnAsk 文档和客户端调用线索,这条包应归类为“补偿归还系统的前置读页请求”,不是当前 Lua 主链已接入的有效业务包。
服务端落点
- 当前 Lua 协议定义未发现:
/home/ubuntu/Game2/services/game/packet.lua
- 当前 Lua 请求入口未发现:
/home/ubuntu/Game2/services/msgagent.lua
- 当前 Lua 场景处理未发现:
/home/ubuntu/Game2/services/scene
- 相关后续请求文档:
packet.CGReturnAsk.md
关键代码
CGGetReturnPage
GetPacketID() = 82;
GetPacketSize() = 5;
Read(stream) {
read_u8(return_type);
read_i32(page);
return 1;
}
Write(stream) {
write_u8(return_type);
write_i32(page);
return 1;
}
// 当前客户端发送入口
ReturnTool::GetPageInfo(page, return_type)
{
if (!is_number(arg2)) error("[2] param parameter error");
if (!is_number(arg3)) error("[3] param parameter error");
page = (int)arg2;
return_type = (int)arg3;
if (return_type >= 1 && return_type <= 3) {
pkt.return_type = return_type; // 1 byte
pkt.page = page; // 4 bytes
send(pkt);
}
}
Execute() {
return 2;
}
结论
CGGetReturnPage 的封包 ID 是 82,固定长度 5 字节。
- 包体结构已经可以明确写成
return_type:uint8 + page:int32。
- 这条包由客户端
ReturnTool::GetPageInfo(page, return_type) 发送,当前只允许 return_type = 1/2/3。
- 当前客户端
Execute() 是空壳返回,当前 Lua 服务端也没有找到正式接入链。
- 结合
CGReturnAsk 的调用关系,CGGetReturnPage 更适合定性为“补偿归还系统的列表读取请求包”。
|