CGPlayerCallOfResult 是玩家召集确认框对应的结果回应包。当前 Game.exe 明确显示它只有一个 uint32 结果码,客户端在召集弹窗里点击确认或取消后,会把接受 / 拒绝结果发回服务端链路。
包信息
| 项目 |
内容 |
| 封包 ID |
625 |
| 包名 |
CGPlayerCallOfResult |
| 方向 |
CG 客户端 -> 服务端 |
| 固定包长 |
4 |
| 当前 Lua 协议定义 |
未检出 |
| 当前处理入口 |
未检出 |
| 当前专用回包 |
无专用回包 |
| 关联下行 |
GCPlayerCallOf(398) |
当前 Game.exe 可直接确认:
GetPacketID() = 625;
GetPacketSize() = 4;
Read() = read_u32(result_code);
Write() = write_u32(result_code);
Execute() = return 2;
包体结构
| 偏移 |
长度 |
字段 |
类型 |
含义 |
0x00 |
0x04 |
result_code |
uint32 |
召集结果码;当前现役为 0=接受、1=拒绝 |
当前实际行为
- 当前客户端在
OPEN_CALLOF_PLAYER 弹窗链里,点击确认会调用 Friend:CallOf("ok"),点击取消会调用 Friend:CallOf("cancel")。
- 当前 Lua 只保留了召集结果码枚举:
CALLOF_RESULT_CODE_ACCEPT = 0
CALLOF_RESULT_CODE_REFUSE = 1
- 当前 Lua
services/scene/ai/human.lua 还保留 push_command_call_of_result(resultcode) 残留入口,但项目里没有检出 packet.lua、msgagent.lua、scenecore.lua 的现役收包链。
- 结合当前客户端弹窗逻辑与 Lua 枚举定义,可以确认这条包在现版本里就是“召集接受 / 拒绝”的结果上报包。
服务端落点
- 当前 Lua 未检出
CGPlayerCallOfResult 协议定义。
- 当前 Lua 未检出
CGPlayerCallOfResult 请求入口。
- 当前仅保留结果码与残留处理:
/home/ubuntu/Game2/lualib/define.lua
/home/ubuntu/Game2/services/scene/ai/human.lua
关键代码
当前 Lua 结果码定义
define.ENUM_CALLOF_RESULT_CODE = {
CALLOF_RESULT_CODE_INVALID = -1,
CALLOF_RESULT_CODE_ACCEPT = 0,
CALLOF_RESULT_CODE_REFUSE = 1,
CALLOF_RESULT_CODE_NUMBERS = 2
}
当前客户端弹窗行为
function Relive_Out_Ghost()
if( g_Event == Event_Callof ) then
Friend:CallOf("ok");
this:Hide();
end
end
function AcceptBox_Cancel_Clicked(bClick)
if( 1 == bClick ) then
if( PVPFLAG.ACCEPTDUEL == g_FrameInfo ) then
DuelAccept( tostring( PVPFLAG.DuelName ), tostring( PVPFLAG.DuelGUID ), 0 )
end
end
this:Hide();
end
结论
CGPlayerCallOfResult 是固定 4 字节的单字段请求包。
- 唯一有效字段是
result_code。
- 当前现役结果语义已经能明确确认为
0=接受、1=拒绝。
- 当前 Lua 只剩召集结果码残留定义,没有检出现役网络处理链。
|