From bff1837b1f805a35dc99ca4439f27112a986747f Mon Sep 17 00:00:00 2001 From: xdh <xiefantasy@qq.com> Date: 星期六, 13 十月 2018 17:12:12 +0800 Subject: [PATCH] 4075 【后端】限时抢购开发-预约通知修改 --- ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 53 insertions(+), 5 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py index 51d6d86..c9d94d8 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py @@ -20179,10 +20179,50 @@ #------------------------------------------------------ # AA 18 限时抢购活动玩家预约信息 #tagMCFlashSaleAppointmentInfo +class tagMCFlashSaleAppointmentState(Structure): + _pack_ = 1 + _fields_ = [ + ("GoodsMark", c_int), # 商品标识 + ("State", c_ubyte), # 是否预约 + ] + + def __init__(self): + self.Clear() + return + + def ReadData(self, stringData, _pos=0, _len=0): + self.Clear() + memmove(addressof(self), stringData[_pos:], self.GetLength()) + return _pos + self.GetLength() + + def Clear(self): + self.GoodsMark = 0 + self.State = 0 + return + + def GetLength(self): + return sizeof(tagMCFlashSaleAppointmentState) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// AA 18 限时抢购活动玩家预约信息 //tagMCFlashSaleAppointmentInfo: + GoodsMark:%d, + State:%d + '''\ + %( + self.GoodsMark, + self.State + ) + return DumpString + + class tagMCFlashSaleAppointmentInfo(Structure): Head = tagHead() + IsAll = 0 #(BYTE IsAll)// 是否全部 GoodsCount = 0 #(WORD GoodsCount)// 商品数 - GoodsList = list() #(vector<DWORD> GoodsList)// 预约的商品 + GoodsList = list() #(vector<tagMCFlashSaleAppointmentState> GoodsList)// 预约的商品 data = None def __init__(self): @@ -20194,10 +20234,12 @@ def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) + self.IsAll,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.GoodsCount,_pos = CommFunc.ReadWORD(_lpData, _pos) for i in range(self.GoodsCount): - value,_pos=CommFunc.ReadDWORD(_lpData,_pos) - self.GoodsList.append(value) + temGoodsList = tagMCFlashSaleAppointmentState() + _pos = temGoodsList.ReadData(_lpData, _pos) + self.GoodsList.append(temGoodsList) return _pos def Clear(self): @@ -20205,6 +20247,7 @@ self.Head.Clear() self.Head.Cmd = 0xAA self.Head.SubCmd = 0x18 + self.IsAll = 0 self.GoodsCount = 0 self.GoodsList = list() return @@ -20212,27 +20255,32 @@ def GetLength(self): length = 0 length += self.Head.GetLength() + length += 1 length += 2 - length += 4 * self.GoodsCount + for i in range(self.GoodsCount): + length += self.GoodsList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) + data = CommFunc.WriteBYTE(data, self.IsAll) data = CommFunc.WriteWORD(data, self.GoodsCount) for i in range(self.GoodsCount): - data = CommFunc.WriteDWORD(data, self.GoodsList[i]) + data = CommFunc.WriteString(data, self.GoodsList[i].GetLength(), self.GoodsList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, + IsAll:%d, GoodsCount:%d, GoodsList:%s '''\ %( self.Head.OutputString(), + self.IsAll, self.GoodsCount, "..." ) -- Gitblit v1.8.0