| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A4 0C 多仙盟boss活动信息 #tagGCAllFamilyBossInfo
|
| | |
|
| | | class tagGCAllFamilyBossInfo(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("IsEnd", c_ubyte), # 是否已结束
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xA4
|
| | | self.SubCmd = 0x0C
|
| | | 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.Cmd = 0xA4
|
| | | self.SubCmd = 0x0C
|
| | | self.IsEnd = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagGCAllFamilyBossInfo)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// A4 0C 多仙盟boss活动信息 //tagGCAllFamilyBossInfo:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | IsEnd:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.IsEnd
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagGCAllFamilyBossInfo=tagGCAllFamilyBossInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAllFamilyBossInfo.Cmd,m_NAtagGCAllFamilyBossInfo.SubCmd))] = m_NAtagGCAllFamilyBossInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A4 0A 假仙盟信息 #tagGCFakeFamilyInfo
|
| | |
|
| | | class tagGCFakeFamilyInfo(Structure):
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # B5 04 拍卖行新上架拍品 #tagGCAddAuctionItemInfo
|
| | |
|
| | | class tagGCAddAuctionItem(Structure):
|
| | | 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):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xB5
|
| | | self.Head.SubCmd = 0x04
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_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):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xB5
|
| | | self.Head.SubCmd = 0x04
|
| | | self.AddCount = 0
|
| | | self.AddAuctionItemList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | 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.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,
|
| | | AddCount:%d,
|
| | | AddAuctionItemList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.AddCount,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagGCAddAuctionItemInfo=tagGCAddAuctionItemInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAddAuctionItemInfo.Head.Cmd,m_NAtagGCAddAuctionItemInfo.Head.SubCmd))] = m_NAtagGCAddAuctionItemInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # 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)//自定义数据
|
| | | 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)
|
| | | 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 = ""
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += 40
|
| | | length += 4
|
| | | length += 4
|
| | | length += 2
|
| | | length += 19
|
| | | length += 2
|
| | | length += 2
|
| | | length += len(self.UserData)
|
| | |
|
| | | 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)
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | ItemGUID:%s,
|
| | | FamilyID:%d,
|
| | | ItemID:%d,
|
| | | ItemCount:%d,
|
| | | AddTime:%s,
|
| | | BidderPrice:%d,
|
| | | UserDataLen:%d,
|
| | | UserData:%s
|
| | | '''\
|
| | | %(
|
| | | self.ItemGUID,
|
| | | self.FamilyID,
|
| | | self.ItemID,
|
| | | self.ItemCount,
|
| | | self.AddTime,
|
| | | self.BidderPrice,
|
| | | self.UserDataLen,
|
| | | self.UserData
|
| | | )
|
| | | 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
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # B5 01 拍卖行拍卖中的物品信息 #tagGCAuctionItemInfo
|
| | |
|
| | | class tagGCAuctionItem(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)//自定义数据
|
| | | 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)
|
| | | 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 = ""
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += 40
|
| | | length += 4
|
| | | length += 4
|
| | | length += 2
|
| | | length += 19
|
| | | length += 2
|
| | | length += 2
|
| | | length += len(self.UserData)
|
| | |
|
| | | 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)
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | ItemGUID:%s,
|
| | | FamilyID:%d,
|
| | | ItemID:%d,
|
| | | ItemCount:%d,
|
| | | AddTime:%s,
|
| | | BidderPrice:%d,
|
| | | UserDataLen:%d,
|
| | | UserData:%s
|
| | | '''\
|
| | | %(
|
| | | self.ItemGUID,
|
| | | self.FamilyID,
|
| | | self.ItemID,
|
| | | self.ItemCount,
|
| | | self.AddTime,
|
| | | self.BidderPrice,
|
| | | self.UserDataLen,
|
| | | self.UserData
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagGCAuctionItemInfo(Structure):
|
| | | Head = tagHead()
|
| | | Job = 0 #(BYTE Job)//过滤职业,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
|
| | | FromItemGUID = "" #(char FromItemGUID[40])//从哪个物品开始查询
|
| | | QueryDir = 0 #(BYTE QueryDir)//查询方向,1-往后查,2-往前查,3-定位查询
|
| | | QueryCount = 0 #(BYTE QueryCount)//查询个数,0为全部
|
| | | QueryRemainlCount = 0 #(WORD QueryRemainlCount)//查询条件对应查询方向剩余个数
|
| | | AuctionItemCount = 0 #(BYTE AuctionItemCount)//返回拍品数量
|
| | | AuctionItemList = list() #(vector<tagGCAuctionItem> AuctionItemList)//返回拍品列表
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xB5
|
| | | self.Head.SubCmd = 0x01
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.Job,_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):
|
| | | value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
|
| | | self.SpecItemIDList.append(value)
|
| | | self.FromItemGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
|
| | | self.QueryDir,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.QueryCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.QueryRemainlCount,_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)
|
| | | self.AuctionItemList.append(temAuctionItemList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xB5
|
| | | self.Head.SubCmd = 0x01
|
| | | self.Job = 0
|
| | | self.ItemTypeCount = 0
|
| | | self.ItemTypeList = list()
|
| | | self.ClassLV = 0
|
| | | self.SpecItemIDCount = 0
|
| | | self.SpecItemIDList = list()
|
| | | self.FromItemGUID = ""
|
| | | self.QueryDir = 0
|
| | | self.QueryCount = 0
|
| | | self.QueryRemainlCount = 0
|
| | | self.AuctionItemCount = 0
|
| | | self.AuctionItemList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 1
|
| | | length += 1
|
| | | length += 4 * self.ItemTypeCount
|
| | | length += 1
|
| | | length += 1
|
| | | length += 4 * self.SpecItemIDCount
|
| | | length += 40
|
| | | length += 1
|
| | | length += 1
|
| | | length += 2
|
| | | 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.Job)
|
| | | 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.WriteString(data, 40, self.FromItemGUID)
|
| | | data = CommFunc.WriteBYTE(data, self.QueryDir)
|
| | | data = CommFunc.WriteBYTE(data, self.QueryCount)
|
| | | data = CommFunc.WriteWORD(data, self.QueryRemainlCount)
|
| | | 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,
|
| | | Job:%d,
|
| | | ItemTypeCount:%d,
|
| | | ItemTypeList:%s,
|
| | | ClassLV:%d,
|
| | | SpecItemIDCount:%d,
|
| | | SpecItemIDList:%s,
|
| | | FromItemGUID:%s,
|
| | | QueryDir:%d,
|
| | | QueryCount:%d,
|
| | | QueryRemainlCount:%d,
|
| | | AuctionItemCount:%d,
|
| | | AuctionItemList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.Job,
|
| | | self.ItemTypeCount,
|
| | | "...",
|
| | | self.ClassLV,
|
| | | self.SpecItemIDCount,
|
| | | "...",
|
| | | self.FromItemGUID,
|
| | | self.QueryDir,
|
| | | self.QueryCount,
|
| | | self.QueryRemainlCount,
|
| | | self.AuctionItemCount,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagGCAuctionItemInfo=tagGCAuctionItemInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAuctionItemInfo.Head.Cmd,m_NAtagGCAuctionItemInfo.Head.SubCmd))] = m_NAtagGCAuctionItemInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # 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
|
| | | BidderID = 0 #(DWORD BidderID)//竞拍玩家ID,也就是当前最高竞价玩家ID
|
| | | BidderPrice = 0 #(WORD BidderPrice)//竞拍玩家出价
|
| | | UserDataLen = 0 #(WORD UserDataLen)
|
| | | UserData = "" #(String UserData)//自定义数据
|
| | | 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.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)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.ItemGUID = ""
|
| | | self.FamilyID = 0
|
| | | self.ItemID = 0
|
| | | self.ItemCount = 0
|
| | | self.AddTime = ""
|
| | | self.BidderID = 0
|
| | | self.BidderPrice = 0
|
| | | self.UserDataLen = 0
|
| | | self.UserData = ""
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += 40
|
| | | length += 4
|
| | | length += 4
|
| | | length += 2
|
| | | length += 19
|
| | | length += 4
|
| | | length += 2
|
| | | length += 2
|
| | | length += len(self.UserData)
|
| | |
|
| | | 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.WriteDWORD(data, self.BidderID)
|
| | | data = CommFunc.WriteWORD(data, self.BidderPrice)
|
| | | data = CommFunc.WriteWORD(data, self.UserDataLen)
|
| | | data = CommFunc.WriteString(data, self.UserDataLen, self.UserData)
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | ItemGUID:%s,
|
| | | FamilyID:%d,
|
| | | ItemID:%d,
|
| | | ItemCount:%d,
|
| | | AddTime:%s,
|
| | | BidderID:%d,
|
| | | BidderPrice:%d,
|
| | | UserDataLen:%d,
|
| | | UserData:%s
|
| | | '''\
|
| | | %(
|
| | | self.ItemGUID,
|
| | | self.FamilyID,
|
| | | self.ItemID,
|
| | | self.ItemCount,
|
| | | self.AddTime,
|
| | | self.BidderID,
|
| | | self.BidderPrice,
|
| | | self.UserDataLen,
|
| | | self.UserData
|
| | | )
|
| | | 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):
|
| | | 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):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xB5
|
| | | self.Head.SubCmd = 0x09
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | 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):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xB5
|
| | | self.Head.SubCmd = 0x09
|
| | | self.ClearCount = 0
|
| | | self.ClearAuctionItemList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | 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.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,
|
| | | ClearCount:%d,
|
| | | ClearAuctionItemList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.ClearCount,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagGCClearAuctionItemInfo=tagGCClearAuctionItemInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCClearAuctionItemInfo.Head.Cmd,m_NAtagGCClearAuctionItemInfo.Head.SubCmd))] = m_NAtagGCClearAuctionItemInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # 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)//自定义数据
|
| | | FamilyPlayerIDLen = 0 #(WORD FamilyPlayerIDLen)
|
| | | FamilyPlayerIDInfo = "" #(String FamilyPlayerIDInfo)//可获得收益的仙盟玩家ID信息
|
| | | AuctionType = 0 #(BYTE AuctionType)//拍品类型,0-全服拍品,1-仙盟拍品
|
| | | 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.FamilyPlayerIDLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.FamilyPlayerIDInfo,_pos = CommFunc.ReadString(_lpData, _pos,self.FamilyPlayerIDLen)
|
| | | self.AuctionType,_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.FamilyPlayerIDLen = 0
|
| | | self.FamilyPlayerIDInfo = ""
|
| | | self.AuctionType = 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 += 2
|
| | | length += len(self.FamilyPlayerIDInfo)
|
| | | 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.WriteWORD(data, self.FamilyPlayerIDLen)
|
| | | data = CommFunc.WriteString(data, self.FamilyPlayerIDLen, self.FamilyPlayerIDInfo)
|
| | | data = CommFunc.WriteBYTE(data, self.AuctionType)
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | ItemGUID:%s,
|
| | | FamilyID:%d,
|
| | | ItemID:%d,
|
| | | ItemCount:%d,
|
| | | AddTime:%s,
|
| | | BidderPrice:%d,
|
| | | UserDataLen:%d,
|
| | | UserData:%s,
|
| | | FamilyPlayerIDLen:%d,
|
| | | FamilyPlayerIDInfo:%s,
|
| | | AuctionType:%d
|
| | | '''\
|
| | | %(
|
| | | self.ItemGUID,
|
| | | self.FamilyID,
|
| | | self.ItemID,
|
| | | self.ItemCount,
|
| | | self.AddTime,
|
| | | self.BidderPrice,
|
| | | self.UserDataLen,
|
| | | self.UserData,
|
| | | self.FamilyPlayerIDLen,
|
| | | self.FamilyPlayerIDInfo,
|
| | | self.AuctionType
|
| | | )
|
| | | 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
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # B5 02 拍卖行玩家拍卖中的物品信息 #tagGCPlayerAuctionItemInfo
|
| | |
|
| | | class tagGCPlayerAuctionItem(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)//自定义数据
|
| | | 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)
|
| | | 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 = ""
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += 40
|
| | | length += 4
|
| | | length += 4
|
| | | length += 2
|
| | | length += 19
|
| | | length += 2
|
| | | length += 2
|
| | | length += len(self.UserData)
|
| | |
|
| | | 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)
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | ItemGUID:%s,
|
| | | FamilyID:%d,
|
| | | ItemID:%d,
|
| | | ItemCount:%d,
|
| | | AddTime:%s,
|
| | | BidderPrice:%d,
|
| | | UserDataLen:%d,
|
| | | UserData:%s
|
| | | '''\
|
| | | %(
|
| | | self.ItemGUID,
|
| | | self.FamilyID,
|
| | | self.ItemID,
|
| | | self.ItemCount,
|
| | | self.AddTime,
|
| | | self.BidderPrice,
|
| | | self.UserDataLen,
|
| | | self.UserData
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagGCPlayerAuctionItemInfo(Structure):
|
| | | Head = tagHead()
|
| | | AuctionItemCount = 0 #(BYTE AuctionItemCount)//拍品数量
|
| | | AuctionItemList = list() #(vector<tagGCPlayerAuctionItem> AuctionItemList)//拍品列表
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xB5
|
| | | self.Head.SubCmd = 0x02
|
| | | 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 = tagGCPlayerAuctionItem()
|
| | | _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 = 0x02
|
| | | 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_NAtagGCPlayerAuctionItemInfo=tagGCPlayerAuctionItemInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCPlayerAuctionItemInfo.Head.Cmd,m_NAtagGCPlayerAuctionItemInfo.Head.SubCmd))] = m_NAtagGCPlayerAuctionItemInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # B5 03 拍卖行玩家拍卖记录 #tagGCPlayerAuctionRecordInfo
|
| | |
|
| | | class tagGCPlayerAuctionRecord(Structure):
|
| | | ItemGUID = "" #(char ItemGUID[40])
|
| | | FamilyID = 0 #(DWORD FamilyID)//有值时为仙盟拍品
|
| | | RecordType = 0 #(BYTE RecordType)//记录类型 0-我的拍品记录 1-仙盟拍品记录 2-我的竞拍记录
|
| | | RecordResult = 0 #(BYTE RecordResult)//记录结果 0-流拍 1-拍卖成交 2-回收 3-竞价成功 4-竞价失败
|
| | | RecordTime = "" #(char RecordTime[19])//记录时间 yyyy-MM-dd hh:mm:ss
|
| | | BidderPrice = 0 #(DWORD BidderPrice)//成交价格
|
| | | BidderName = "" #(char BidderName[33])//成交玩家名
|
| | | ItemID = 0 #(DWORD ItemID)
|
| | | ItemCount = 0 #(WORD ItemCount)
|
| | | UserDataLen = 0 #(WORD UserDataLen)
|
| | | UserData = "" #(String UserData)//自定义数据
|
| | | 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.RecordType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.RecordResult,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.RecordTime,_pos = CommFunc.ReadString(_lpData, _pos,19)
|
| | | self.BidderPrice,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.BidderName,_pos = CommFunc.ReadString(_lpData, _pos,33)
|
| | | self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.ItemCount,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.UserDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.ItemGUID = ""
|
| | | self.FamilyID = 0
|
| | | self.RecordType = 0
|
| | | self.RecordResult = 0
|
| | | self.RecordTime = ""
|
| | | self.BidderPrice = 0
|
| | | self.BidderName = ""
|
| | | self.ItemID = 0
|
| | | self.ItemCount = 0
|
| | | self.UserDataLen = 0
|
| | | self.UserData = ""
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += 40
|
| | | length += 4
|
| | | length += 1
|
| | | length += 1
|
| | | length += 19
|
| | | length += 4
|
| | | length += 33
|
| | | length += 4
|
| | | length += 2
|
| | | length += 2
|
| | | length += len(self.UserData)
|
| | |
|
| | | return length
|
| | |
|
| | | 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.WriteBYTE(data, self.RecordResult)
|
| | | data = CommFunc.WriteString(data, 19, self.RecordTime)
|
| | | data = CommFunc.WriteDWORD(data, self.BidderPrice)
|
| | | data = CommFunc.WriteString(data, 33, self.BidderName)
|
| | | data = CommFunc.WriteDWORD(data, self.ItemID)
|
| | | data = CommFunc.WriteWORD(data, self.ItemCount)
|
| | | data = CommFunc.WriteWORD(data, self.UserDataLen)
|
| | | data = CommFunc.WriteString(data, self.UserDataLen, self.UserData)
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | ItemGUID:%s,
|
| | | FamilyID:%d,
|
| | | RecordType:%d,
|
| | | RecordResult:%d,
|
| | | RecordTime:%s,
|
| | | BidderPrice:%d,
|
| | | BidderName:%s,
|
| | | ItemID:%d,
|
| | | ItemCount:%d,
|
| | | UserDataLen:%d,
|
| | | UserData:%s
|
| | | '''\
|
| | | %(
|
| | | self.ItemGUID,
|
| | | self.FamilyID,
|
| | | self.RecordType,
|
| | | self.RecordResult,
|
| | | self.RecordTime,
|
| | | self.BidderPrice,
|
| | | self.BidderName,
|
| | | self.ItemID,
|
| | | self.ItemCount,
|
| | | self.UserDataLen,
|
| | | self.UserData
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagGCPlayerAuctionRecordInfo(Structure):
|
| | | Head = tagHead()
|
| | | Count = 0 #(BYTE Count)
|
| | | AuctionRecordList = list() #(vector<tagGCPlayerAuctionRecord> AuctionRecordList)
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xB5
|
| | | self.Head.SubCmd = 0x03
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.Count):
|
| | | temAuctionRecordList = tagGCPlayerAuctionRecord()
|
| | | _pos = temAuctionRecordList.ReadData(_lpData, _pos)
|
| | | self.AuctionRecordList.append(temAuctionRecordList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xB5
|
| | | self.Head.SubCmd = 0x03
|
| | | self.Count = 0
|
| | | self.AuctionRecordList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 1
|
| | | for i in range(self.Count):
|
| | | length += self.AuctionRecordList[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteBYTE(data, self.Count)
|
| | | for i in range(self.Count):
|
| | | data = CommFunc.WriteString(data, self.AuctionRecordList[i].GetLength(), self.AuctionRecordList[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | Count:%d,
|
| | | AuctionRecordList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.Count,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagGCPlayerAuctionRecordInfo=tagGCPlayerAuctionRecordInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCPlayerAuctionRecordInfo.Head.Cmd,m_NAtagGCPlayerAuctionRecordInfo.Head.SubCmd))] = m_NAtagGCPlayerAuctionRecordInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # B5 08 拍卖行刷新拍品 #tagGCRefreshAuctionItemInfo
|
| | |
|
| | | class tagGCRefreshAuctionItem(Structure):
|
| | | ItemGUID = "" #(char ItemGUID[40])
|
| | | AuctionType = 0 #(BYTE AuctionType)//拍品类型,0-全服拍品,1-仙盟拍品
|
| | | AddTime = "" #(char AddTime[19])//上架时间
|
| | | BidderID = 0 #(DWORD BidderID)//最高竞拍玩家ID,也就是当前最高竞价玩家ID |
| | | BidderPrice = 0 #(DWORD BidderPrice)//最高竞拍价格
|
| | | 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.AuctionType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.AddTime,_pos = CommFunc.ReadString(_lpData, _pos,19)
|
| | | self.BidderID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.BidderPrice,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.ItemGUID = ""
|
| | | self.AuctionType = 0
|
| | | self.AddTime = ""
|
| | | self.BidderID = 0
|
| | | self.BidderPrice = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += 40
|
| | | length += 1
|
| | | length += 19
|
| | | length += 4
|
| | | length += 4
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, 40, self.ItemGUID)
|
| | | data = CommFunc.WriteBYTE(data, self.AuctionType)
|
| | | data = CommFunc.WriteString(data, 19, self.AddTime)
|
| | | data = CommFunc.WriteDWORD(data, self.BidderID)
|
| | | data = CommFunc.WriteDWORD(data, self.BidderPrice)
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | ItemGUID:%s,
|
| | | AuctionType:%d,
|
| | | AddTime:%s,
|
| | | BidderID:%d,
|
| | | BidderPrice:%d
|
| | | '''\
|
| | | %(
|
| | | self.ItemGUID,
|
| | | self.AuctionType,
|
| | | self.AddTime,
|
| | | self.BidderID,
|
| | | self.BidderPrice
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagGCRefreshAuctionItemInfo(Structure):
|
| | | Head = tagHead()
|
| | | RefreshCount = 0 #(BYTE RefreshCount)
|
| | | RefreshAuctionItemList = list() #(vector<tagGCRefreshAuctionItem> RefreshAuctionItemList)
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xB5
|
| | | self.Head.SubCmd = 0x08
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.RefreshCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.RefreshCount):
|
| | | temRefreshAuctionItemList = tagGCRefreshAuctionItem()
|
| | | _pos = temRefreshAuctionItemList.ReadData(_lpData, _pos)
|
| | | self.RefreshAuctionItemList.append(temRefreshAuctionItemList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xB5
|
| | | self.Head.SubCmd = 0x08
|
| | | self.RefreshCount = 0
|
| | | self.RefreshAuctionItemList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 1
|
| | | for i in range(self.RefreshCount):
|
| | | length += self.RefreshAuctionItemList[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteBYTE(data, self.RefreshCount)
|
| | | for i in range(self.RefreshCount):
|
| | | data = CommFunc.WriteString(data, self.RefreshAuctionItemList[i].GetLength(), self.RefreshAuctionItemList[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | RefreshCount:%d,
|
| | | RefreshAuctionItemList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.RefreshCount,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagGCRefreshAuctionItemInfo=tagGCRefreshAuctionItemInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCRefreshAuctionItemInfo.Head.Cmd,m_NAtagGCRefreshAuctionItemInfo.Head.SubCmd))] = m_NAtagGCRefreshAuctionItemInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # B9 13 进入组队副本失败原因 #tagGCEnterTeamFBFailReason
|
| | |
|
| | | class tagGCEnterTeamFBFailReason(Structure):
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A3 09 通知玩家部位套装等级 #tagMCEquipPartSuiteLVInfo
|
| | | # A3 B1 装备部位星数信息 #tagMCEquipPartStarInfo
|
| | |
|
| | | class tagMCEquipPartSuiteLV(Structure):
|
| | | EquipIndex = 0 #(BYTE EquipIndex)
|
| | | Len = 0 #(WORD Len)//长度
|
| | | SuiteLVInfo = "" #(String SuiteLVInfo)//{套装类型:等级}
|
| | | data = None
|
| | | class tagMCEquipPartStar(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("EquipPackIndex", c_ushort), |
| | | ("Star", c_ubyte), |
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | def ReadData(self, stringData, _pos=0, _len=0):
|
| | | self.Clear()
|
| | | self.EquipIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.Len,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.SuiteLVInfo,_pos = CommFunc.ReadString(_lpData, _pos,self.Len)
|
| | | return _pos
|
| | | memmove(addressof(self), stringData[_pos:], self.GetLength())
|
| | | return _pos + self.GetLength()
|
| | |
|
| | | def Clear(self):
|
| | | self.EquipIndex = 0
|
| | | self.Len = 0
|
| | | self.SuiteLVInfo = ""
|
| | | self.EquipPackIndex = 0
|
| | | self.Star = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += 1
|
| | | length += 2
|
| | | length += len(self.SuiteLVInfo)
|
| | |
|
| | | return length
|
| | | return sizeof(tagMCEquipPartStar)
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteBYTE(data, self.EquipIndex)
|
| | | data = CommFunc.WriteWORD(data, self.Len)
|
| | | data = CommFunc.WriteString(data, self.Len, self.SuiteLVInfo)
|
| | | return data
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | EquipIndex:%d,
|
| | | Len:%d,
|
| | | SuiteLVInfo:%s
|
| | | DumpString = '''// A3 B1 装备部位星数信息 //tagMCEquipPartStarInfo:
|
| | | EquipPackIndex:%d,
|
| | | Star:%d
|
| | | '''\
|
| | | %(
|
| | | self.EquipIndex,
|
| | | self.Len,
|
| | | self.SuiteLVInfo
|
| | | self.EquipPackIndex,
|
| | | self.Star
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCEquipPartSuiteLVInfo(Structure):
|
| | | class tagMCEquipPartStarInfo(Structure):
|
| | | Head = tagHead()
|
| | | Count = 0 #(BYTE Count)// 信息个数
|
| | | InfoList = list() #(vector<tagMCEquipPartSuiteLV> InfoList)// 信息列表
|
| | | InfoList = list() #(vector<tagMCEquipPartStar> InfoList)// 信息列表
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xA3
|
| | | self.Head.SubCmd = 0x09
|
| | | self.Head.SubCmd = 0xB1
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | |
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.Count):
|
| | | temInfoList = tagMCEquipPartSuiteLV()
|
| | | temInfoList = tagMCEquipPartStar()
|
| | | _pos = temInfoList.ReadData(_lpData, _pos)
|
| | | self.InfoList.append(temInfoList)
|
| | | return _pos
|
| | |
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xA3
|
| | | self.Head.SubCmd = 0x09
|
| | | self.Head.SubCmd = 0xB1
|
| | | self.Count = 0
|
| | | self.InfoList = list()
|
| | | return
|
| | |
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCEquipPartSuiteLVInfo=tagMCEquipPartSuiteLVInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCEquipPartSuiteLVInfo.Head.Cmd,m_NAtagMCEquipPartSuiteLVInfo.Head.SubCmd))] = m_NAtagMCEquipPartSuiteLVInfo
|
| | | m_NAtagMCEquipPartStarInfo=tagMCEquipPartStarInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCEquipPartStarInfo.Head.Cmd,m_NAtagMCEquipPartStarInfo.Head.SubCmd))] = m_NAtagMCEquipPartStarInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A3 BE 通知客户端法宝精炼等级 #tagMCMagicWeaponMsg
|
| | |
|
| | | class tagMCMagicWeaponLV(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("MWID", c_int), # 法宝ID
|
| | | ("MWLV", 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.MWID = 0
|
| | | self.MWLV = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCMagicWeaponLV)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// A3 BE 通知客户端法宝精炼等级 //tagMCMagicWeaponMsg:
|
| | | MWID:%d,
|
| | | MWLV:%d
|
| | | '''\
|
| | | %(
|
| | | self.MWID,
|
| | | self.MWLV
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCMagicWeaponMsg(Structure):
|
| | | Head = tagHead()
|
| | | Count = 0 #(BYTE Count)// 法宝个数
|
| | | MWInfo = list() #(vector<tagMCMagicWeaponLV> MWInfo)//法宝信息
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xA3
|
| | | self.Head.SubCmd = 0xBE
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.Count):
|
| | | temMWInfo = tagMCMagicWeaponLV()
|
| | | _pos = temMWInfo.ReadData(_lpData, _pos)
|
| | | self.MWInfo.append(temMWInfo)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xA3
|
| | | self.Head.SubCmd = 0xBE
|
| | | self.Count = 0
|
| | | self.MWInfo = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 1
|
| | | for i in range(self.Count):
|
| | | length += self.MWInfo[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteBYTE(data, self.Count)
|
| | | for i in range(self.Count):
|
| | | data = CommFunc.WriteString(data, self.MWInfo[i].GetLength(), self.MWInfo[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | Count:%d,
|
| | | MWInfo:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.Count,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCMagicWeaponMsg=tagMCMagicWeaponMsg()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCMagicWeaponMsg.Head.Cmd,m_NAtagMCMagicWeaponMsg.Head.SubCmd))] = m_NAtagMCMagicWeaponMsg
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A3 46 大师经验信息 #tagMCGreatMasterExp
|
| | |
|
| | | class tagMCGreatMasterExp(Structure):
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A3 B3 装备部位星级信息 #tagMCEquipPartStarLVInfo
|
| | | # A3 B3 装备部位强化信息 #tagMCEquipPartPlusInfo
|
| | |
|
| | | class tagMCEquipPartStarLV(Structure):
|
| | | class tagMCEquipPartPlusLV(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("PackType", c_ubyte),
|
| | | ("EquipIndex", c_ubyte),
|
| | | ("EquipPartStarLV", c_ushort),
|
| | | ("Proficiency", c_int),
|
| | | ("EvolveLV", c_ubyte), |
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | |
| | | self.EquipIndex = 0
|
| | | self.EquipPartStarLV = 0
|
| | | self.Proficiency = 0
|
| | | self.EvolveLV = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCEquipPartStarLV)
|
| | | return sizeof(tagMCEquipPartPlusLV)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// A3 B3 装备部位星级信息 //tagMCEquipPartStarLVInfo:
|
| | | DumpString = '''// A3 B3 装备部位强化信息 //tagMCEquipPartPlusInfo:
|
| | | PackType:%d,
|
| | | EquipIndex:%d,
|
| | | EquipPartStarLV:%d,
|
| | | Proficiency:%d
|
| | | Proficiency:%d,
|
| | | EvolveLV:%d
|
| | | '''\
|
| | | %(
|
| | | self.PackType,
|
| | | self.EquipIndex,
|
| | | self.EquipPartStarLV,
|
| | | self.Proficiency
|
| | | self.Proficiency,
|
| | | self.EvolveLV
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCEquipPartStarLVInfo(Structure):
|
| | | class tagMCEquipPartPlusInfo(Structure):
|
| | | Head = tagHead()
|
| | | Count = 0 #(BYTE Count)// 信息个数
|
| | | InfoList = list() #(vector<tagMCEquipPartStarLV> InfoList)// 信息列表
|
| | | InfoList = list() #(vector<tagMCEquipPartPlusLV> InfoList)// 信息列表
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | |
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.Count):
|
| | | temInfoList = tagMCEquipPartStarLV()
|
| | | temInfoList = tagMCEquipPartPlusLV()
|
| | | _pos = temInfoList.ReadData(_lpData, _pos)
|
| | | self.InfoList.append(temInfoList)
|
| | | return _pos
|
| | |
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCEquipPartStarLVInfo=tagMCEquipPartStarLVInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCEquipPartStarLVInfo.Head.Cmd,m_NAtagMCEquipPartStarLVInfo.Head.SubCmd))] = m_NAtagMCEquipPartStarLVInfo
|
| | | m_NAtagMCEquipPartPlusInfo=tagMCEquipPartPlusInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCEquipPartPlusInfo.Head.Cmd,m_NAtagMCEquipPartPlusInfo.Head.SubCmd))] = m_NAtagMCEquipPartPlusInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A3 11 通知玩家境界渡劫是否开启 #tagMCSyncRealmFBIsOpen
|
| | | # A3 11 通知玩家境界信息 #tagMCSyncRealmInfo
|
| | |
|
| | | class tagMCSyncRealmFBIsOpen(Structure):
|
| | | class tagMCSyncRealmInfo(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("IsOpen", c_ubyte), #是否开启
|
| | | ("SitAllTime", c_ushort), #打坐总时间秒
|
| | | ("SitRemainTime", c_int), #开始打坐前剩余时间秒
|
| | | ("SitStartTime", c_int), #开始打坐时间
|
| | | ("LastEnterTime", c_int), #上次进入渡劫副本时间
|
| | | ("IsPass", c_ubyte), #是否通关副本
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | |
| | | def Clear(self):
|
| | | self.Cmd = 0xA3
|
| | | self.SubCmd = 0x11
|
| | | self.IsOpen = 0
|
| | | self.SitAllTime = 0
|
| | | self.SitRemainTime = 0
|
| | | self.SitStartTime = 0
|
| | | self.LastEnterTime = 0
|
| | | self.IsPass = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCSyncRealmFBIsOpen)
|
| | | return sizeof(tagMCSyncRealmInfo)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// A3 11 通知玩家境界渡劫是否开启 //tagMCSyncRealmFBIsOpen:
|
| | | DumpString = '''// A3 11 通知玩家境界信息 //tagMCSyncRealmInfo:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | IsOpen:%d,
|
| | | SitAllTime:%d,
|
| | | SitRemainTime:%d,
|
| | | SitStartTime:%d,
|
| | | LastEnterTime:%d
|
| | | IsPass:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.IsOpen,
|
| | | self.SitAllTime,
|
| | | self.SitRemainTime,
|
| | | self.SitStartTime,
|
| | | self.LastEnterTime
|
| | | self.IsPass
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCSyncRealmFBIsOpen=tagMCSyncRealmFBIsOpen()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSyncRealmFBIsOpen.Cmd,m_NAtagMCSyncRealmFBIsOpen.SubCmd))] = m_NAtagMCSyncRealmFBIsOpen
|
| | | m_NAtagMCSyncRealmInfo=tagMCSyncRealmInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSyncRealmInfo.Cmd,m_NAtagMCSyncRealmInfo.SubCmd))] = m_NAtagMCSyncRealmInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | |
| | |
|
| | | m_NAtagMCShoppingResult=tagMCShoppingResult()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCShoppingResult.Cmd,m_NAtagMCShoppingResult.SubCmd))] = m_NAtagMCShoppingResult
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A8 16 神秘商店商品信息 #tagMCMysticalShopInfo
|
| | |
|
| | | class tagMCMysticalShopGoods(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("GoodsID", c_int), # 商品ID
|
| | | ]
|
| | |
|
| | | 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.GoodsID = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCMysticalShopGoods)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// A8 16 神秘商店商品信息 //tagMCMysticalShopInfo:
|
| | | GoodsID:%d
|
| | | '''\
|
| | | %(
|
| | | self.GoodsID
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCMysticalShopInfo(Structure):
|
| | | Head = tagHead()
|
| | | RefreshCnt = 0 #(WORD RefreshCnt)// 刷新次数
|
| | | Count = 0 #(BYTE Count)// 商品数
|
| | | GoodsList = list() #(vector<tagMCMysticalShopGoods> GoodsList)// 商品信息
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xA8
|
| | | self.Head.SubCmd = 0x16
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.RefreshCnt,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.Count):
|
| | | temGoodsList = tagMCMysticalShopGoods()
|
| | | _pos = temGoodsList.ReadData(_lpData, _pos)
|
| | | self.GoodsList.append(temGoodsList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xA8
|
| | | self.Head.SubCmd = 0x16
|
| | | self.RefreshCnt = 0
|
| | | self.Count = 0
|
| | | self.GoodsList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 2
|
| | | length += 1
|
| | | for i in range(self.Count):
|
| | | length += self.GoodsList[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteWORD(data, self.RefreshCnt)
|
| | | data = CommFunc.WriteBYTE(data, self.Count)
|
| | | for i in range(self.Count):
|
| | | data = CommFunc.WriteString(data, self.GoodsList[i].GetLength(), self.GoodsList[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | RefreshCnt:%d,
|
| | | Count:%d,
|
| | | GoodsList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.RefreshCnt,
|
| | | self.Count,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCMysticalShopInfo=tagMCMysticalShopInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCMysticalShopInfo.Head.Cmd,m_NAtagMCMysticalShopInfo.Head.SubCmd))] = m_NAtagMCMysticalShopInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | #B4 14 根据类型来决定移动的方式 #tagMCMoveByType
|
| | |
|
| | | class tagMCMoveByType(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("ID", c_int), #玩家ID
|
| | | ("PosX", c_ushort), # 目标X
|
| | | ("PosY", c_ushort), # 目标Y
|
| | | ("MoveType", c_ubyte), #移动方式
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xB4
|
| | | self.SubCmd = 0x14
|
| | | 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.Cmd = 0xB4
|
| | | self.SubCmd = 0x14
|
| | | self.ID = 0
|
| | | self.PosX = 0
|
| | | self.PosY = 0
|
| | | self.MoveType = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCMoveByType)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''//B4 14 根据类型来决定移动的方式 //tagMCMoveByType:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | ID:%d,
|
| | | PosX:%d,
|
| | | PosY:%d,
|
| | | MoveType:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.ID,
|
| | | self.PosX,
|
| | | self.PosY,
|
| | | self.MoveType
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCMoveByType=tagMCMoveByType()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCMoveByType.Cmd,m_NAtagMCMoveByType.SubCmd))] = m_NAtagMCMoveByType
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | #B4 07 被动技能页选择(功法) # tagMCPassivePage
|
| | |
|
| | | class tagMCPassivePage(Structure):
|