GCRetReportWaigua 是 CGReportWaigua(type == 1) 查询被举报玩家资料后的下行回包。客户端收到后会触发举报界面事件,打开 AccusationStudio 并显示目标名字、等级、门派等信息。
包信息
| 项目 |
内容 |
| 封包 ID |
79 |
| 包名 |
GCRetReportWaigua |
| 方向 |
GC 游戏服 -> 客户端 |
| 包长 |
固定 42 字节 |
| 对应请求 |
CGReportWaigua(1215) 的 type == 1 分支 |
| 作用 |
回传被举报玩家资料,驱动客户端打开外挂举报界面 |
包体结构
| 偏移 |
长度 |
字段 |
类型 |
含义 |
0x00 |
0x1E |
name |
char[30] |
被举报玩家名,GBK 固定槽 |
0x1E |
0x04 |
level |
int32 |
被举报玩家等级 |
0x22 |
0x04 |
menpai |
int32 |
被举报玩家门派 |
0x26 |
0x04 |
guid |
int32 |
被举报玩家 GUID |
长度校验:
30 + 4 + 4 + 4 = 42
当前实际行为
- 服务端只在
CGReportWaigua.type == 1 查询到目标玩家资料时发送本包。
- 客户端收到后触发
OPEN_REPORTWAIGUA_UI,举报界面会重置选项并显示目标信息。
- 本包不是举报提交结果;真正提交填写内容的是
CGReportWaigua.type == 2。
服务端落点
- 协议定义:
/home/ubuntu/Game2/services/game/packet.lua
- 发送入口:
/home/ubuntu/Game2/services/msgagent.lua 的 request:CGReportWaigua()
- 目标资料来源:
.world 的 get_player_info / get_player_info_by_name
关键代码
当前 Lua 下行写包:
packet.GCRetReportWaigua = {
xy_id = packet.XYID_GC_RET_REPORT_WAIGUA,
ctor = function(self)
self.name = ""
self.level = 0
self.menpai = 0
self.guid = 0
end,
bos = function(self)
local stream = bostream.new()
stream:write(packet_build_gbk_bytes(self.name, 0x1E), 0x1E)
stream:writeint(self.level or 0)
stream:writeint(self.menpai or 0)
stream:writeint(self.guid or 0)
return stream:get()
end
}
当前 Lua 发送点:
local msg = packet_def.GCRetReportWaigua.new()
msg.name = target_info.name or self.name or ""
msg.level = target_info.level or 0
msg.menpai = target_info.menpai or 0
msg.guid = target_info.guid or self.guid or 0
Net:send(msg)
结论
GCRetReportWaigua(79) 是外挂举报界面的资料回包,固定 42 字节。它的作用是让客户端打开并填充 AccusationStudio,不是举报提交成功提示包。
|