CGAskFashionDepotData 是客户端向服务端请求时装衣柜完整数据的请求包。当前版本里,Lua 服务端收到后会直接回发 GCAskFashionDepotData 的整包快照。
包信息
| 项目 |
内容 |
| 封包 ID |
1029 |
| 包名 |
CGAskFashionDepotData |
| 方向 |
CG 客户端 -> 游戏服 |
| 固定包长 |
10 |
| 专用回包 |
GCAskFashionDepotData(1028) |
| 当前 Lua 协议定义 |
/home/ubuntu/Game2/services/game/packet.lua |
| 当前请求入口 |
/home/ubuntu/Game2/services/msgagent.lua 的 request:CGAskFashionDepotData() |
| 当前场景落点 |
/home/ubuntu/Game2/services/scene/scenecore.lua 的 ask_fashion_depot_data() |
| 当前用途 |
请求服务端下发完整时装衣柜数据 |
当前 Game.exe 可直接确认:
GetPacketID() = 1029;
GetPacketSize() = 10;
Read() = read_u8(request_type), read_u32(param_1), read_u32(param_2), read_u8(reserved_1);
Write() = 同结构写回;
Execute() = 2;
包体结构
| 偏移 |
长度 |
字段 |
类型 |
含义 |
0x00 |
0x01 |
request_type |
uint8 |
请求类型;当前 Lua 未使用 |
0x01 |
0x04 |
param_1 |
uint32 |
预留参数;当前 Lua 未使用 |
0x05 |
0x04 |
param_2 |
uint32 |
预留参数;当前 Lua 未使用 |
0x09 |
0x01 |
reserved_1 |
uint8 |
预留字节;当前 Lua 未使用 |
当前实际行为
- 当前 Lua
request:CGAskFashionDepotData() 不读取请求包里的业务参数。
- 请求进入场景层后,服务端会直接调用
ask_fashion_depot_data(),再回发完整 GCAskFashionDepotData 快照。
- 当前
packet.lua 的 Lua 版本只定义了前 9 字节:
Game.exe 可以确认线上客户端类仍保留最后的 1 字节尾字段,因此协议总长以 10 字节为准。
- 当前场景逻辑并不依赖这 4 个字段的值。
服务端落点
- 协议定义:
/home/ubuntu/Game2/services/game/packet.lua
- 请求入口:
/home/ubuntu/Game2/services/msgagent.lua
- 场景处理:
/home/ubuntu/Game2/services/scene/scenecore.lua
关键代码
当前 Lua 请求入口
function request:CGAskFashionDepotData()
skynet.call(my_scene, "lua", "ask_fashion_depot_data", my_obj_id)
end
当前 Lua 协议定义
packet.CGAskFashionDepotData = {
xy_id = packet.XYID_CG_ASK_FASHION_DEPOT_DATA,
ctor = function(self)
self.unknow_1 = 0
self.unknow_2 = 0
self.unknow_3 = 0
end,
bis = function(self, buffer)
local stream = bistream.new()
stream:attach(buffer)
self.unknow_1 = stream:readuchar()
self.unknow_2 = stream:readuint()
self.unknow_3 = stream:readuint()
end
}
当前 Game.exe 关键结论
__int64 GetPacketID() { return 1029; }
__int64 GetPacketSize() { return 10; }
__int64 Read(Packet *pkt, Stream *s) {
s->Read(&pkt->request_type, 1);
s->Read(&pkt->param_1, 4);
s->Read(&pkt->param_2, 4);
s->Read(&pkt->reserved_1, 1);
return 1;
}
结论
CGAskFashionDepotData 的客户端协议总长是固定 10 字节。
- 当前 Lua 只实际消费前
9 字节,最后 1 字节尾字段未接入业务逻辑。
- 现役服务端处理链不依赖包内参数,只把它当作“请求整包时装衣柜快照”的触发器。
- 当前主回包是
GCAskFashionDepotData(1028)。
|