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

洱海月 v0-07-0300 封包解析:ID 082 CGGetReturnPage(补偿列表分页请求)

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

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

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

×

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;
}

结论

  1. CGGetReturnPage 的封包 ID 是 82,固定长度 5 字节。
  2. 包体结构已经可以明确写成 return_type:uint8 + page:int32。
  3. 这条包由客户端 ReturnTool::GetPageInfo(page, return_type) 发送,当前只允许 return_type = 1/2/3。
  4. 当前客户端 Execute() 是空壳返回,当前 Lua 服务端也没有找到正式接入链。
  5. 结合 CGReturnAsk 的调用关系,CGGetReturnPage 更适合定性为“补偿归还系统的列表读取请求包”。
您需要登录后才可以回帖 登录 | registerss

本版积分规则

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

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

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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