|  |  |  | 
|---|
|  |  |  | 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 | 
|---|