From 8449a1a53dc3ce66817b86a9400bc6768c43c506 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期一, 25 二月 2019 11:40:58 +0800 Subject: [PATCH] 6250 【后端】【2.0】拍卖行开发单(封包) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py | 315 ++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 289 insertions(+), 26 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py index 8bfb261..3b7dc92 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py @@ -6849,12 +6849,57 @@ #------------------------------------------------------ -# B5 04 拍卖行新上架拍品 #tagGCAddAuctionItem +# B5 04 拍卖行新上架拍品 #tagGCAddAuctionItemInfo class tagGCAddAuctionItem(Structure): - Head = tagHead() ItemGUID = "" #(char ItemGUID[40]) ItemID = 0 #(DWORD ItemID) + data = None + + def __init__(self): + self.Clear() + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + self.ItemGUID,_pos = CommFunc.ReadString(_lpData, _pos,40) + self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos) + return _pos + + def Clear(self): + self.ItemGUID = "" + self.ItemID = 0 + return + + def GetLength(self): + length = 0 + length += 40 + length += 4 + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteString(data, 40, self.ItemGUID) + data = CommFunc.WriteDWORD(data, self.ItemID) + return data + + def OutputString(self): + DumpString = ''' + ItemGUID:%s, + ItemID:%d + '''\ + %( + self.ItemGUID, + self.ItemID + ) + return DumpString + + +class tagGCAddAuctionItemInfo(Structure): + Head = tagHead() + AddCount = 0 #(BYTE AddCount) + AddAuctionItemList = list() #(vector<tagGCAddAuctionItem> AddAuctionItemList) data = None def __init__(self): @@ -6866,8 +6911,11 @@ def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) - self.ItemGUID,_pos = CommFunc.ReadString(_lpData, _pos,40) - self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.AddCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) + for i in range(self.AddCount): + temAddAuctionItemList = tagGCAddAuctionItem() + _pos = temAddAuctionItemList.ReadData(_lpData, _pos) + self.AddAuctionItemList.append(temAddAuctionItemList) return _pos def Clear(self): @@ -6875,41 +6923,43 @@ self.Head.Clear() self.Head.Cmd = 0xB5 self.Head.SubCmd = 0x04 - self.ItemGUID = "" - self.ItemID = 0 + self.AddCount = 0 + self.AddAuctionItemList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() - length += 40 - length += 4 + length += 1 + for i in range(self.AddCount): + length += self.AddAuctionItemList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) - data = CommFunc.WriteString(data, 40, self.ItemGUID) - data = CommFunc.WriteDWORD(data, self.ItemID) + data = CommFunc.WriteBYTE(data, self.AddCount) + for i in range(self.AddCount): + data = CommFunc.WriteString(data, self.AddAuctionItemList[i].GetLength(), self.AddAuctionItemList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, - ItemGUID:%s, - ItemID:%d + AddCount:%d, + AddAuctionItemList:%s '''\ %( self.Head.OutputString(), - self.ItemGUID, - self.ItemID + self.AddCount, + "..." ) return DumpString -m_NAtagGCAddAuctionItem=tagGCAddAuctionItem() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAddAuctionItem.Head.Cmd,m_NAtagGCAddAuctionItem.Head.SubCmd))] = m_NAtagGCAddAuctionItem +m_NAtagGCAddAuctionItemInfo=tagGCAddAuctionItemInfo() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAddAuctionItemInfo.Head.Cmd,m_NAtagGCAddAuctionItemInfo.Head.SubCmd))] = m_NAtagGCAddAuctionItemInfo #------------------------------------------------------ @@ -7375,11 +7425,213 @@ #------------------------------------------------------ -# B5 09 拍卖行清除拍品 #tagGCClearAuctionItem +# B5 10 拍卖行玩家竞价中的物品信息 #tagGCBiddingItemInfo + +class tagGCBiddingItem(Structure): + ItemGUID = "" #(char ItemGUID[40]) + FamilyID = 0 #(DWORD FamilyID)//有值时为仙盟拍品 + ItemID = 0 #(DWORD ItemID) + ItemCount = 0 #(WORD ItemCount) + AddTime = "" #(char AddTime[19])//上架时间 yyyy-MM-dd hh:mm:ss + BidderPrice = 0 #(WORD BidderPrice)//竞拍玩家出价 + UserDataLen = 0 #(WORD UserDataLen) + UserData = "" #(String UserData)//自定义数据 + CanGetMoney = 0 #(BYTE CanGetMoney)//可否获得收益 + data = None + + def __init__(self): + self.Clear() + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + self.ItemGUID,_pos = CommFunc.ReadString(_lpData, _pos,40) + self.FamilyID,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.ItemCount,_pos = CommFunc.ReadWORD(_lpData, _pos) + self.AddTime,_pos = CommFunc.ReadString(_lpData, _pos,19) + self.BidderPrice,_pos = CommFunc.ReadWORD(_lpData, _pos) + self.UserDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos) + self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen) + self.CanGetMoney,_pos = CommFunc.ReadBYTE(_lpData, _pos) + return _pos + + def Clear(self): + self.ItemGUID = "" + self.FamilyID = 0 + self.ItemID = 0 + self.ItemCount = 0 + self.AddTime = "" + self.BidderPrice = 0 + self.UserDataLen = 0 + self.UserData = "" + self.CanGetMoney = 0 + return + + def GetLength(self): + length = 0 + length += 40 + length += 4 + length += 4 + length += 2 + length += 19 + length += 2 + length += 2 + length += len(self.UserData) + length += 1 + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteString(data, 40, self.ItemGUID) + data = CommFunc.WriteDWORD(data, self.FamilyID) + data = CommFunc.WriteDWORD(data, self.ItemID) + data = CommFunc.WriteWORD(data, self.ItemCount) + data = CommFunc.WriteString(data, 19, self.AddTime) + data = CommFunc.WriteWORD(data, self.BidderPrice) + data = CommFunc.WriteWORD(data, self.UserDataLen) + data = CommFunc.WriteString(data, self.UserDataLen, self.UserData) + data = CommFunc.WriteBYTE(data, self.CanGetMoney) + return data + + def OutputString(self): + DumpString = ''' + ItemGUID:%s, + FamilyID:%d, + ItemID:%d, + ItemCount:%d, + AddTime:%s, + BidderPrice:%d, + UserDataLen:%d, + UserData:%s, + CanGetMoney:%d + '''\ + %( + self.ItemGUID, + self.FamilyID, + self.ItemID, + self.ItemCount, + self.AddTime, + self.BidderPrice, + self.UserDataLen, + self.UserData, + self.CanGetMoney + ) + return DumpString + + +class tagGCBiddingItemInfo(Structure): + Head = tagHead() + AuctionItemCount = 0 #(BYTE AuctionItemCount)//拍品数量 + AuctionItemList = list() #(vector<tagGCBiddingItem> AuctionItemList)//拍品列表 + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xB5 + self.Head.SubCmd = 0x10 + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + _pos = self.Head.ReadData(_lpData, _pos) + self.AuctionItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) + for i in range(self.AuctionItemCount): + temAuctionItemList = tagGCBiddingItem() + _pos = temAuctionItemList.ReadData(_lpData, _pos) + self.AuctionItemList.append(temAuctionItemList) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xB5 + self.Head.SubCmd = 0x10 + self.AuctionItemCount = 0 + self.AuctionItemList = list() + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 1 + for i in range(self.AuctionItemCount): + length += self.AuctionItemList[i].GetLength() + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) + data = CommFunc.WriteBYTE(data, self.AuctionItemCount) + for i in range(self.AuctionItemCount): + data = CommFunc.WriteString(data, self.AuctionItemList[i].GetLength(), self.AuctionItemList[i].GetBuffer()) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + AuctionItemCount:%d, + AuctionItemList:%s + '''\ + %( + self.Head.OutputString(), + self.AuctionItemCount, + "..." + ) + return DumpString + + +m_NAtagGCBiddingItemInfo=tagGCBiddingItemInfo() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCBiddingItemInfo.Head.Cmd,m_NAtagGCBiddingItemInfo.Head.SubCmd))] = m_NAtagGCBiddingItemInfo + + +#------------------------------------------------------ +# B5 09 拍卖行清除拍品 #tagGCClearAuctionItemInfo class tagGCClearAuctionItem(Structure): - Head = tagHead() ItemGUID = "" #(char ItemGUID[40]) + data = None + + def __init__(self): + self.Clear() + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + self.ItemGUID,_pos = CommFunc.ReadString(_lpData, _pos,40) + return _pos + + def Clear(self): + self.ItemGUID = "" + return + + def GetLength(self): + length = 0 + length += 40 + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteString(data, 40, self.ItemGUID) + return data + + def OutputString(self): + DumpString = ''' + ItemGUID:%s + '''\ + %( + self.ItemGUID + ) + return DumpString + + +class tagGCClearAuctionItemInfo(Structure): + Head = tagHead() + ClearCount = 0 #(BYTE ClearCount) + ClearAuctionItemList = list() #(vector<tagGCClearAuctionItem> ClearAuctionItemList) data = None def __init__(self): @@ -7391,7 +7643,11 @@ def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) - self.ItemGUID,_pos = CommFunc.ReadString(_lpData, _pos,40) + self.ClearCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) + for i in range(self.ClearCount): + temClearAuctionItemList = tagGCClearAuctionItem() + _pos = temClearAuctionItemList.ReadData(_lpData, _pos) + self.ClearAuctionItemList.append(temClearAuctionItemList) return _pos def Clear(self): @@ -7399,36 +7655,43 @@ self.Head.Clear() self.Head.Cmd = 0xB5 self.Head.SubCmd = 0x09 - self.ItemGUID = "" + self.ClearCount = 0 + self.ClearAuctionItemList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() - length += 40 + length += 1 + for i in range(self.ClearCount): + length += self.ClearAuctionItemList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) - data = CommFunc.WriteString(data, 40, self.ItemGUID) + data = CommFunc.WriteBYTE(data, self.ClearCount) + for i in range(self.ClearCount): + data = CommFunc.WriteString(data, self.ClearAuctionItemList[i].GetLength(), self.ClearAuctionItemList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, - ItemGUID:%s + ClearCount:%d, + ClearAuctionItemList:%s '''\ %( self.Head.OutputString(), - self.ItemGUID + self.ClearCount, + "..." ) return DumpString -m_NAtagGCClearAuctionItem=tagGCClearAuctionItem() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCClearAuctionItem.Head.Cmd,m_NAtagGCClearAuctionItem.Head.SubCmd))] = m_NAtagGCClearAuctionItem +m_NAtagGCClearAuctionItemInfo=tagGCClearAuctionItemInfo() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCClearAuctionItemInfo.Head.Cmd,m_NAtagGCClearAuctionItemInfo.Head.SubCmd))] = m_NAtagGCClearAuctionItemInfo #------------------------------------------------------ -- Gitblit v1.8.0