CGInviteAddMeFriend 是旧好友系统保留的固定长度请求包,包体只携带一个目标角色 GUID,用于向目标发起“把我加入好友”的邀请。
包信息
| 项目 |
内容 |
| 封包 ID |
686 |
| 包名 |
CGInviteAddMeFriend |
| 方向 |
CG 客户端 -> 服务端 |
| 包长 |
4 |
| 历史对应通知 |
GCInviteAddMeFriend(786) |
| 当前 Lua 协议定义 |
未发现 |
| 当前 Lua 请求入口 |
未发现 |
| 主要作用 |
向目标玩家发起“请把我加入好友”的邀请 |
当前 Game.exe 可确认:
GetPacketID() = 686;
GetPacketSize() = 4;
Read() = read_u32(target_guid);
Write() = write_u32(target_guid);
包体结构
| 偏移 |
长度 |
字段 |
类型 |
含义 |
0x00 |
0x04 |
target_guid |
uint32 |
目标角色 GUID |
当前实际行为
- 当前
Game.exe 仍保留这条包的完整类定义,结构可以稳定确认。
- 当前
/home/ubuntu/Game2 Lua 主链没有发现 packet.CGInviteAddMeFriend 定义,也没有 msgagent 请求入口。
- 因此在当前项目里,这条包应归类为客户端保留的旧好友请求包,而不是现役 Lua 协议。
- 旧 Server 仅能提供命名线索:该字段历史上命名为
m_TargetGuid,语义与当前 Game.exe 的 4 字节 GUID 结构一致。
服务端落点
- 当前 Lua 主链未发现协议定义:
/home/ubuntu/Game2/services/game/packet.lua
- 当前 Lua 主链未发现请求入口:
/home/ubuntu/Game2/services/msgagent.lua
- 当前 Lua 主链未发现场景处理:
/home/ubuntu/Game2/services/scene/scenecore.lua
关键代码
Read(stream) {
read_u32(target_guid);
return 1;
}
Write(stream) {
write_u32(target_guid);
return 1;
}
// 旧 Server 仅用于字段命名参考
SocketInputStream::Read(iStream, &this->m_TargetGuid, 4u);
结论
CGInviteAddMeFriend(686) 在当前版本里可以明确确定为“单个目标 GUID”的 4 字节旧好友邀请请求包。当前 Lua 服务端未接入,因此文档层应把它记录为客户端保留协议。
|