From 23996147f8d33e0a6340e9e37b3d5a8cbe68eb10 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期五, 22 二月 2019 18:15:06 +0800 Subject: [PATCH] 6250 【后端】【2.0】拍卖行开发单(封包) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py | 682 ++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 608 insertions(+), 74 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py index 2553bbd..70a35be 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py @@ -6852,52 +6852,294 @@ # B5 04 拍卖行新上架拍品 #tagGCAddAuctionItem class tagGCAddAuctionItem(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("ItemID", c_int), - ] + Head = tagHead() + ItemGUID = "" #(char ItemGUID[40]) + ItemID = 0 #(DWORD ItemID) + data = None def __init__(self): self.Clear() - self.Cmd = 0xB5 - self.SubCmd = 0x04 + self.Head.Cmd = 0xB5 + self.Head.SubCmd = 0x04 return - def ReadData(self, stringData, _pos=0, _len=0): + def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() - memmove(addressof(self), stringData[_pos:], self.GetLength()) - return _pos + self.GetLength() + _pos = self.Head.ReadData(_lpData, _pos) + self.ItemGUID,_pos = CommFunc.ReadString(_lpData, _pos,40) + self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos) + return _pos def Clear(self): - self.Cmd = 0xB5 - self.SubCmd = 0x04 + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xB5 + self.Head.SubCmd = 0x04 + self.ItemGUID = "" self.ItemID = 0 return def GetLength(self): - return sizeof(tagGCAddAuctionItem) + length = 0 + length += self.Head.GetLength() + length += 40 + length += 4 + + return length def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) + data = '' + data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) + data = CommFunc.WriteString(data, 40, self.ItemGUID) + data = CommFunc.WriteDWORD(data, self.ItemID) + return data def OutputString(self): - DumpString = '''// B5 04 拍卖行新上架拍品 //tagGCAddAuctionItem: - Cmd:%s, - SubCmd:%s, + DumpString = ''' + Head:%s, + ItemGUID:%s, ItemID:%d '''\ %( - self.Cmd, - self.SubCmd, + self.Head.OutputString(), + self.ItemGUID, self.ItemID ) return DumpString m_NAtagGCAddAuctionItem=tagGCAddAuctionItem() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAddAuctionItem.Cmd,m_NAtagGCAddAuctionItem.SubCmd))] = m_NAtagGCAddAuctionItem +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAddAuctionItem.Head.Cmd,m_NAtagGCAddAuctionItem.Head.SubCmd))] = m_NAtagGCAddAuctionItem + + +#------------------------------------------------------ +# B5 07 拍卖行关注的物品ID #tagGCAttentionAuctionItemID + +class tagGCAttentionAuctionItemID(Structure): + Head = tagHead() + AttentionCount = 0 #(BYTE AttentionCount) + AttentionItemIDList = list() #(vector<DWORD> AttentionItemIDList)// 关注的物品ID列表 + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xB5 + self.Head.SubCmd = 0x07 + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + _pos = self.Head.ReadData(_lpData, _pos) + self.AttentionCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) + for i in range(self.AttentionCount): + value,_pos=CommFunc.ReadDWORD(_lpData,_pos) + self.AttentionItemIDList.append(value) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xB5 + self.Head.SubCmd = 0x07 + self.AttentionCount = 0 + self.AttentionItemIDList = list() + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 1 + length += 4 * self.AttentionCount + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) + data = CommFunc.WriteBYTE(data, self.AttentionCount) + for i in range(self.AttentionCount): + data = CommFunc.WriteDWORD(data, self.AttentionItemIDList[i]) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + AttentionCount:%d, + AttentionItemIDList:%s + '''\ + %( + self.Head.OutputString(), + self.AttentionCount, + "..." + ) + return DumpString + + +m_NAtagGCAttentionAuctionItemID=tagGCAttentionAuctionItemID() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAttentionAuctionItemID.Head.Cmd,m_NAtagGCAttentionAuctionItemID.Head.SubCmd))] = m_NAtagGCAttentionAuctionItemID + + +#------------------------------------------------------ +# B5 06 拍卖行关注中的拍品信息 #tagGCAttentionAuctionItemInfo + +class tagGCAttentionAuctionItem(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 tagGCAttentionAuctionItemInfo(Structure): + Head = tagHead() + AuctionItemCount = 0 #(BYTE AuctionItemCount)//拍品数量 + AuctionItemList = list() #(vector<tagGCAttentionAuctionItem> AuctionItemList)//拍品列表 + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xB5 + self.Head.SubCmd = 0x06 + 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 = tagGCAttentionAuctionItem() + _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 = 0x06 + 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_NAtagGCAttentionAuctionItemInfo=tagGCAttentionAuctionItemInfo() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAttentionAuctionItemInfo.Head.Cmd,m_NAtagGCAttentionAuctionItemInfo.Head.SubCmd))] = m_NAtagGCAttentionAuctionItemInfo #------------------------------------------------------ @@ -6912,8 +7154,7 @@ BidderPrice = 0 #(WORD BidderPrice)//竞拍玩家出价 UserDataLen = 0 #(WORD UserDataLen) UserData = "" #(String UserData)//自定义数据 - FamilyPlayerCount = 0 #(BYTE FamilyPlayerCount) - FamilyPlayerIDList = list() #(vector<DWORD> FamilyPlayerIDList)//享受收益的仙盟玩家ID列表 + CanGetMoney = 0 #(BYTE CanGetMoney)//可否获得收益 data = None def __init__(self): @@ -6930,10 +7171,7 @@ self.BidderPrice,_pos = CommFunc.ReadWORD(_lpData, _pos) self.UserDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos) self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen) - self.FamilyPlayerCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) - for i in range(self.FamilyPlayerCount): - value,_pos=CommFunc.ReadDWORD(_lpData,_pos) - self.FamilyPlayerIDList.append(value) + self.CanGetMoney,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): @@ -6945,8 +7183,7 @@ self.BidderPrice = 0 self.UserDataLen = 0 self.UserData = "" - self.FamilyPlayerCount = 0 - self.FamilyPlayerIDList = list() + self.CanGetMoney = 0 return def GetLength(self): @@ -6960,7 +7197,6 @@ length += 2 length += len(self.UserData) length += 1 - length += 4 * self.FamilyPlayerCount return length @@ -6974,9 +7210,7 @@ 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.FamilyPlayerCount) - for i in range(self.FamilyPlayerCount): - data = CommFunc.WriteDWORD(data, self.FamilyPlayerIDList[i]) + data = CommFunc.WriteBYTE(data, self.CanGetMoney) return data def OutputString(self): @@ -6989,8 +7223,7 @@ BidderPrice:%d, UserDataLen:%d, UserData:%s, - FamilyPlayerCount:%d, - FamilyPlayerIDList:%s + CanGetMoney:%d '''\ %( self.ItemGUID, @@ -7001,8 +7234,7 @@ self.BidderPrice, self.UserDataLen, self.UserData, - self.FamilyPlayerCount, - "..." + self.CanGetMoney ) return DumpString @@ -7010,15 +7242,15 @@ class tagGCAuctionItemInfo(Structure): Head = tagHead() Job = 0 #(BYTE Job)//过滤职业,0为不限制 - ItemType = 0 #(BYTE ItemType)//过滤类型,0为不限制 + ItemTypeCount = 0 #(BYTE ItemTypeCount) + ItemTypeList = list() #(vector<DWORD> ItemTypeList)//指定的物品类型 ClassLV = 0 #(BYTE ClassLV)//过滤阶数,0为不限制 SpecItemIDCount = 0 #(BYTE SpecItemIDCount)//指定物品ID个数 SpecItemIDList = list() #(vector<DWORD> SpecItemIDList)//指定物品ID FromNum = 0 #(WORD FromNum)//查询起始数 (从1开始) QueryCount = 0 #(BYTE QueryCount)//查询个数,0为全部 - IsFamily = 0 #(BYTE IsFamily)//是否查询仙盟拍品 QueryTotalCount = 0 #(WORD QueryTotalCount)//查询条件实际总个数 - AuctionItemCount = 0 #(WORD AuctionItemCount)//返回拍品数量 + AuctionItemCount = 0 #(BYTE AuctionItemCount)//返回拍品数量 AuctionItemList = list() #(vector<tagGCAuctionItem> AuctionItemList)//返回拍品列表 data = None @@ -7032,7 +7264,10 @@ self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) - self.ItemType,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.ItemTypeCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) + for i in range(self.ItemTypeCount): + value,_pos=CommFunc.ReadDWORD(_lpData,_pos) + self.ItemTypeList.append(value) self.ClassLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.SpecItemIDCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.SpecItemIDCount): @@ -7040,9 +7275,8 @@ self.SpecItemIDList.append(value) self.FromNum,_pos = CommFunc.ReadWORD(_lpData, _pos) self.QueryCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) - self.IsFamily,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.QueryTotalCount,_pos = CommFunc.ReadWORD(_lpData, _pos) - self.AuctionItemCount,_pos = CommFunc.ReadWORD(_lpData, _pos) + self.AuctionItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.AuctionItemCount): temAuctionItemList = tagGCAuctionItem() _pos = temAuctionItemList.ReadData(_lpData, _pos) @@ -7055,13 +7289,13 @@ self.Head.Cmd = 0xB5 self.Head.SubCmd = 0x01 self.Job = 0 - self.ItemType = 0 + self.ItemTypeCount = 0 + self.ItemTypeList = list() self.ClassLV = 0 self.SpecItemIDCount = 0 self.SpecItemIDList = list() self.FromNum = 0 self.QueryCount = 0 - self.IsFamily = 0 self.QueryTotalCount = 0 self.AuctionItemCount = 0 self.AuctionItemList = list() @@ -7072,14 +7306,14 @@ length += self.Head.GetLength() length += 1 length += 1 + length += 4 * self.ItemTypeCount length += 1 length += 1 length += 4 * self.SpecItemIDCount length += 2 length += 1 + length += 2 length += 1 - length += 2 - length += 2 for i in range(self.AuctionItemCount): length += self.AuctionItemList[i].GetLength() @@ -7089,16 +7323,17 @@ data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.Job) - data = CommFunc.WriteBYTE(data, self.ItemType) + data = CommFunc.WriteBYTE(data, self.ItemTypeCount) + for i in range(self.ItemTypeCount): + data = CommFunc.WriteDWORD(data, self.ItemTypeList[i]) data = CommFunc.WriteBYTE(data, self.ClassLV) data = CommFunc.WriteBYTE(data, self.SpecItemIDCount) for i in range(self.SpecItemIDCount): data = CommFunc.WriteDWORD(data, self.SpecItemIDList[i]) data = CommFunc.WriteWORD(data, self.FromNum) data = CommFunc.WriteBYTE(data, self.QueryCount) - data = CommFunc.WriteBYTE(data, self.IsFamily) data = CommFunc.WriteWORD(data, self.QueryTotalCount) - data = CommFunc.WriteWORD(data, self.AuctionItemCount) + 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 @@ -7107,13 +7342,13 @@ DumpString = ''' Head:%s, Job:%d, - ItemType:%d, + ItemTypeCount:%d, + ItemTypeList:%s, ClassLV:%d, SpecItemIDCount:%d, SpecItemIDList:%s, FromNum:%d, QueryCount:%d, - IsFamily:%d, QueryTotalCount:%d, AuctionItemCount:%d, AuctionItemList:%s @@ -7121,13 +7356,13 @@ %( self.Head.OutputString(), self.Job, - self.ItemType, + self.ItemTypeCount, + "...", self.ClassLV, self.SpecItemIDCount, "...", self.FromNum, self.QueryCount, - self.IsFamily, self.QueryTotalCount, self.AuctionItemCount, "..." @@ -7137,6 +7372,214 @@ m_NAtagGCAuctionItemInfo=tagGCAuctionItemInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAuctionItemInfo.Head.Cmd,m_NAtagGCAuctionItemInfo.Head.SubCmd))] = m_NAtagGCAuctionItemInfo + + +#------------------------------------------------------ +# B5 09 拍卖行清除拍品 #tagGCClearAuctionItem + +class tagGCClearAuctionItem(Structure): + 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 + + +m_NAtagGCClearAuctionItem=tagGCClearAuctionItem() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCClearAuctionItem.Head.Cmd,m_NAtagGCClearAuctionItem.Head.SubCmd))] = m_NAtagGCClearAuctionItem + + +#------------------------------------------------------ +# B5 05 拍卖行仙盟拍卖中的物品信息 #tagGCFamilyAuctionItemInfo + +class tagGCFamilyAuctionItem(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 tagGCFamilyAuctionItemInfo(Structure): + Head = tagHead() + AuctionItemCount = 0 #(BYTE AuctionItemCount)//拍品数量 + AuctionItemList = list() #(vector<tagGCFamilyAuctionItem> AuctionItemList)//拍品列表 + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xB5 + self.Head.SubCmd = 0x05 + 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 = tagGCFamilyAuctionItem() + _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 = 0x05 + 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_NAtagGCFamilyAuctionItemInfo=tagGCFamilyAuctionItemInfo() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCFamilyAuctionItemInfo.Head.Cmd,m_NAtagGCFamilyAuctionItemInfo.Head.SubCmd))] = m_NAtagGCFamilyAuctionItemInfo #------------------------------------------------------ @@ -7151,8 +7594,7 @@ BidderPrice = 0 #(WORD BidderPrice)//竞拍玩家出价 UserDataLen = 0 #(WORD UserDataLen) UserData = "" #(String UserData)//自定义数据 - FamilyPlayerCount = 0 #(BYTE FamilyPlayerCount) - FamilyPlayerIDList = list() #(vector<DWORD> FamilyPlayerIDList)//享受收益的仙盟玩家ID列表 + CanGetMoney = 0 #(BYTE CanGetMoney)//可否获得收益 data = None def __init__(self): @@ -7169,10 +7611,7 @@ self.BidderPrice,_pos = CommFunc.ReadWORD(_lpData, _pos) self.UserDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos) self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen) - self.FamilyPlayerCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) - for i in range(self.FamilyPlayerCount): - value,_pos=CommFunc.ReadDWORD(_lpData,_pos) - self.FamilyPlayerIDList.append(value) + self.CanGetMoney,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): @@ -7184,8 +7623,7 @@ self.BidderPrice = 0 self.UserDataLen = 0 self.UserData = "" - self.FamilyPlayerCount = 0 - self.FamilyPlayerIDList = list() + self.CanGetMoney = 0 return def GetLength(self): @@ -7199,7 +7637,6 @@ length += 2 length += len(self.UserData) length += 1 - length += 4 * self.FamilyPlayerCount return length @@ -7213,9 +7650,7 @@ 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.FamilyPlayerCount) - for i in range(self.FamilyPlayerCount): - data = CommFunc.WriteDWORD(data, self.FamilyPlayerIDList[i]) + data = CommFunc.WriteBYTE(data, self.CanGetMoney) return data def OutputString(self): @@ -7228,8 +7663,7 @@ BidderPrice:%d, UserDataLen:%d, UserData:%s, - FamilyPlayerCount:%d, - FamilyPlayerIDList:%s + CanGetMoney:%d '''\ %( self.ItemGUID, @@ -7240,15 +7674,14 @@ self.BidderPrice, self.UserDataLen, self.UserData, - self.FamilyPlayerCount, - "..." + self.CanGetMoney ) return DumpString class tagGCPlayerAuctionItemInfo(Structure): Head = tagHead() - AuctionItemCount = 0 #(WORD AuctionItemCount)//拍品数量 + AuctionItemCount = 0 #(BYTE AuctionItemCount)//拍品数量 AuctionItemList = list() #(vector<tagGCPlayerAuctionItem> AuctionItemList)//拍品列表 data = None @@ -7261,7 +7694,7 @@ def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) - self.AuctionItemCount,_pos = CommFunc.ReadWORD(_lpData, _pos) + self.AuctionItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.AuctionItemCount): temAuctionItemList = tagGCPlayerAuctionItem() _pos = temAuctionItemList.ReadData(_lpData, _pos) @@ -7280,7 +7713,7 @@ def GetLength(self): length = 0 length += self.Head.GetLength() - length += 2 + length += 1 for i in range(self.AuctionItemCount): length += self.AuctionItemList[i].GetLength() @@ -7289,7 +7722,7 @@ def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) - data = CommFunc.WriteWORD(data, self.AuctionItemCount) + 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 @@ -7469,6 +7902,107 @@ #------------------------------------------------------ +# B5 08 拍卖行刷新拍品 #tagGCRefreshAuctionItem + +class tagGCRefreshAuctionItem(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 + + +m_NAtagGCRefreshAuctionItem=tagGCRefreshAuctionItem() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCRefreshAuctionItem.Head.Cmd,m_NAtagGCRefreshAuctionItem.Head.SubCmd))] = m_NAtagGCRefreshAuctionItem + + +#------------------------------------------------------ # B9 13 进入组队副本失败原因 #tagGCEnterTeamFBFailReason class tagGCEnterTeamFBFailReason(Structure): -- Gitblit v1.8.0