|  |  | 
 |  |  |     ItemID = 0    #(DWORD ItemID)
 | 
 |  |  |     ItemCount = 0    #(WORD ItemCount)
 | 
 |  |  |     AddTime = ""    #(char AddTime[19])//上架时间 yyyy-MM-dd hh:mm:ss
 | 
 |  |  |     BidderID = 0    #(DWORD BidderID)//竞拍玩家ID,也就是当前最高竞价玩家ID
 | 
 |  |  |     BidderPrice = 0    #(WORD BidderPrice)//竞拍玩家出价
 | 
 |  |  |     UserDataLen = 0    #(WORD UserDataLen)
 | 
 |  |  |     UserData = ""    #(String UserData)//自定义数据
 | 
 |  |  | 
 |  |  |         self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
 | 
 |  |  |         self.ItemCount,_pos = CommFunc.ReadWORD(_lpData, _pos)
 | 
 |  |  |         self.AddTime,_pos = CommFunc.ReadString(_lpData, _pos,19)
 | 
 |  |  |         self.BidderID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
 | 
 |  |  |         self.BidderPrice,_pos = CommFunc.ReadWORD(_lpData, _pos)
 | 
 |  |  |         self.UserDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
 | 
 |  |  |         self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen)
 | 
 |  |  | 
 |  |  |         self.ItemID = 0
 | 
 |  |  |         self.ItemCount = 0
 | 
 |  |  |         self.AddTime = ""
 | 
 |  |  |         self.BidderID = 0
 | 
 |  |  |         self.BidderPrice = 0
 | 
 |  |  |         self.UserDataLen = 0
 | 
 |  |  |         self.UserData = ""
 | 
 |  |  | 
 |  |  |         length += 4
 | 
 |  |  |         length += 2
 | 
 |  |  |         length += 19
 | 
 |  |  |         length += 4
 | 
 |  |  |         length += 2
 | 
 |  |  |         length += 2
 | 
 |  |  |         length += len(self.UserData)
 | 
 |  |  | 
 |  |  |         data = CommFunc.WriteDWORD(data, self.ItemID)
 | 
 |  |  |         data = CommFunc.WriteWORD(data, self.ItemCount)
 | 
 |  |  |         data = CommFunc.WriteString(data, 19, self.AddTime)
 | 
 |  |  |         data = CommFunc.WriteDWORD(data, self.BidderID)
 | 
 |  |  |         data = CommFunc.WriteWORD(data, self.BidderPrice)
 | 
 |  |  |         data = CommFunc.WriteWORD(data, self.UserDataLen)
 | 
 |  |  |         data = CommFunc.WriteString(data, self.UserDataLen, self.UserData)
 | 
 |  |  | 
 |  |  |                                 ItemID:%d,
 | 
 |  |  |                                 ItemCount:%d,
 | 
 |  |  |                                 AddTime:%s,
 | 
 |  |  |                                 BidderID:%d,
 | 
 |  |  |                                 BidderPrice:%d,
 | 
 |  |  |                                 UserDataLen:%d,
 | 
 |  |  |                                 UserData:%s
 | 
 |  |  | 
 |  |  |                                 self.ItemID,
 | 
 |  |  |                                 self.ItemCount,
 | 
 |  |  |                                 self.AddTime,
 | 
 |  |  |                                 self.BidderID,
 | 
 |  |  |                                 self.BidderPrice,
 | 
 |  |  |                                 self.UserDataLen,
 | 
 |  |  |                                 self.UserData
 | 
 |  |  | 
 |  |  | # B5 03 拍卖行玩家拍卖记录 #tagGCPlayerAuctionRecordInfo
 | 
 |  |  | 
 | 
 |  |  | class  tagGCPlayerAuctionRecord(Structure):
 | 
 |  |  |     ItemGUID = ""    #(char ItemGUID[40])
 | 
 |  |  |     FamilyID = 0    #(DWORD FamilyID)//有值时为仙盟拍品
 | 
 |  |  |     RecordType = 0    #(BYTE RecordType)//记录类型 0-流拍 1-拍卖成交 2-回收 3-竞价成功 4-竞价失败
 | 
 |  |  |     RecordTime = ""    #(char RecordTime[19])//记录时间 yyyy-MM-dd hh:mm:ss
 | 
 |  |  | 
 |  |  | 
 | 
 |  |  |     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.RecordType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
 | 
 |  |  |         self.RecordTime,_pos = CommFunc.ReadString(_lpData, _pos,19)
 | 
 |  |  | 
 |  |  |         return _pos
 | 
 |  |  | 
 | 
 |  |  |     def Clear(self):
 | 
 |  |  |         self.ItemGUID = ""
 | 
 |  |  |         self.FamilyID = 0
 | 
 |  |  |         self.RecordType = 0
 | 
 |  |  |         self.RecordTime = ""
 | 
 |  |  | 
 |  |  | 
 | 
 |  |  |     def GetLength(self):
 | 
 |  |  |         length = 0
 | 
 |  |  |         length += 40
 | 
 |  |  |         length += 4
 | 
 |  |  |         length += 1
 | 
 |  |  |         length += 19
 | 
 |  |  | 
 |  |  | 
 | 
 |  |  |     def GetBuffer(self):
 | 
 |  |  |         data = ''
 | 
 |  |  |         data = CommFunc.WriteString(data, 40, self.ItemGUID)
 | 
 |  |  |         data = CommFunc.WriteDWORD(data, self.FamilyID)
 | 
 |  |  |         data = CommFunc.WriteBYTE(data, self.RecordType)
 | 
 |  |  |         data = CommFunc.WriteString(data, 19, self.RecordTime)
 | 
 |  |  | 
 |  |  | 
 | 
 |  |  |     def OutputString(self):
 | 
 |  |  |         DumpString = '''
 | 
 |  |  |                                 ItemGUID:%s,
 | 
 |  |  |                                 FamilyID:%d,
 | 
 |  |  |                                 RecordType:%d,
 | 
 |  |  |                                 RecordTime:%s,
 | 
 |  |  | 
 |  |  |                                 UserData:%s
 | 
 |  |  |                                 '''\
 | 
 |  |  |                                 %(
 | 
 |  |  |                                 self.ItemGUID,
 | 
 |  |  |                                 self.FamilyID,
 | 
 |  |  |                                 self.RecordType,
 | 
 |  |  |                                 self.RecordTime,
 | 
 |  |  | 
 |  |  | class  tagGCPlayerAuctionRecordInfo(Structure):
 | 
 |  |  |     Head = tagHead()
 | 
 |  |  |     Count = 0    #(BYTE Count)
 | 
 |  |  |     AuctionRecordList = list()    #(vector<tagGCPlayerAuctionRecordInfo> AuctionRecordList)
 | 
 |  |  |     AuctionRecordList = list()    #(vector<tagGCPlayerAuctionRecord> AuctionRecordList)
 | 
 |  |  |     data = None
 | 
 |  |  | 
 | 
 |  |  |     def __init__(self):
 | 
 |  |  | 
 |  |  |         _pos = self.Head.ReadData(_lpData, _pos)
 | 
 |  |  |         self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
 | 
 |  |  |         for i in range(self.Count):
 | 
 |  |  |             temAuctionRecordList = tagGCPlayerAuctionRecordInfo()
 | 
 |  |  |             temAuctionRecordList = tagGCPlayerAuctionRecord()
 | 
 |  |  |             _pos = temAuctionRecordList.ReadData(_lpData, _pos)
 | 
 |  |  |             self.AuctionRecordList.append(temAuctionRecordList)
 | 
 |  |  |         return _pos
 |