GCBankMoney 是钱庄存钱、取钱完成后的结果回包。当前 Lua 主链稳定使用其中的 op、bank_save_money 和 result 三个字段,其余尾部结构保留在协议里,但现役发送分支没有继续填充。
包信息
| 项目 |
内容 |
| 封包 ID |
428 |
| 包名 |
GCBankMoney |
| 方向 |
Server -> Client |
| 包长 |
6 + MsgIODataStream |
| 对应请求 |
CGBankMoney(95) |
| 作用 |
返回银行当前存款并确认存钱 / 取钱操作 |
包体结构
| 偏移 |
长度 |
字段 |
类型 |
含义 |
0x00 |
0x01 |
op |
uint8 |
操作类型,当前 0=存钱、1=取钱 |
0x01 |
0x04 |
bank_save_money |
uint32 |
操作后的银行存款 |
0x05 |
0x01 |
result |
uint8 |
结果码,当前 Lua 发送 0 |
0x06 |
0x04 |
list_size |
uint32 |
扩展列表数量,现役主链通常为 0 |
变长 |
list_size * 8 |
list |
bytes[n] |
旧协议保留的扩展列表区 |
变长 |
0x04 |
extra_size |
uint32 |
附加数据长度 |
变长 |
extra_size |
extra_data |
bytes[n] |
旧协议保留的附加字节流 |
当前实际行为
- 当前
scenecore:char_bank_money() 在真正改完人物金钱和银行存款后,回包只显式填写 op、bank_save_money、result。
- 当前 Lua
packet.lua 仍保留了 list_size/list/extra_data 的历史结构,但现役发送分支不再填值。
- 因此这条包在当前项目里实际表现接近固定头结果回包,扩展段只是协议兼容保留。
- 客户端最终看到的是更新后的存款数,而不是一次完整的银行状态快照。
服务端落点
- 协议定义:
/home/ubuntu/Game2/services/game/packet.lua
- 业务入口:
/home/ubuntu/Game2/services/scene/scenecore.lua
关键代码
local msg = packet_def.GCBankMoney.new()
msg.op = bm.op
msg.bank_save_money = obj_me:get_bank_save_money()
msg.result = 0
self:send2client(obj_me, msg)
结论
GCBankMoney(428) 的现版用途已经很明确:确认存钱 / 取钱完成,并把银行最新存款额同步给客户端。扩展列表和附加字节流仍在协议中,但当前 Lua 主链没有实际使用。
|