GCBankRemoveItem 是从钱庄取出物品时的结果回包。当前 Lua 与 Game.exe 都确认它由 4 个单字节字段组成,并且 operate_type 的现役语义已经明确。
包信息
| 项目 |
内容 |
| 封包 ID |
538 |
| 包名 |
GCBankRemoveItem |
| 方向 |
Server -> Client |
| 包长 |
4 |
| 对应请求 |
CGBankRemoveItem(109) |
| 作用 |
回报银行物品取回或交换的结果 |
包体结构
| 偏移 |
长度 |
字段 |
类型 |
含义 |
0x00 |
0x01 |
to_type |
uint8 |
目标容器类型 |
0x01 |
0x01 |
from_index |
uint8 |
银行来源格索引 |
0x02 |
0x01 |
to_index |
uint8 |
背包目标格索引 |
0x03 |
0x01 |
operate_type |
uint8 |
结果类型;0=失败、1=移动到空格、2=与目标格交换 |
当前实际行为
- 当前
scenecore:char_bank_remove_item() 在操作结束后会构造这条回包。
operate_type 的三个现役取值在 Lua 主链里已经明确定义。
- 客户端收到后可以立即刷新银行面板和背包对应格子。
- 这条包只负责结果,不携带完整道具详情。
服务端落点
- 协议定义:
/home/ubuntu/Game2/services/game/packet.lua
- 业务入口:
/home/ubuntu/Game2/services/scene/scenecore.lua
关键代码
msg.to_type = to_type
msg.from_index = from_index
msg.to_index = to_index
msg.operate_type = operate_type
结论
GCBankRemoveItem(538) 的现版结果语义已经完全清晰,特别是 operate_type 三种状态可以直接对应到失败、挪到空格和交换。
|