| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # B5 08 拍卖行刷新拍品 #tagGCRefreshAuctionItem
|
| | | # B5 08 拍卖行刷新拍品 #tagGCRefreshAuctionItemInfo
|
| | |
|
| | | class tagGCRefreshAuctionItem(Structure):
|
| | | Head = tagHead()
|
| | | 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):
|
| | |
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.ItemGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
|
| | | self.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)
|
| | | 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.Clear()
|
| | | self.Head.Cmd = 0xB5
|
| | | self.Head.SubCmd = 0x08
|
| | | self.ItemGUID = ""
|
| | | self.AuctionType = 0
|
| | | self.AddTime = ""
|
| | | self.BidderID = 0
|
| | | self.BidderPrice = 0
|
| | | self.RefreshCount = 0
|
| | | self.RefreshAuctionItemList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 40
|
| | | length += 1
|
| | | length += 19
|
| | | length += 4
|
| | | length += 4
|
| | | 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.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)
|
| | | 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,
|
| | | ItemGUID:%s,
|
| | | AuctionType:%d,
|
| | | AddTime:%s,
|
| | | BidderID:%d,
|
| | | BidderPrice:%d
|
| | | RefreshCount:%d,
|
| | | RefreshAuctionItemList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.ItemGUID,
|
| | | self.AuctionType,
|
| | | self.AddTime,
|
| | | self.BidderID,
|
| | | self.BidderPrice
|
| | | self.RefreshCount,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagGCRefreshAuctionItem=tagGCRefreshAuctionItem()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCRefreshAuctionItem.Head.Cmd,m_NAtagGCRefreshAuctionItem.Head.SubCmd))] = m_NAtagGCRefreshAuctionItem
|
| | | m_NAtagGCRefreshAuctionItemInfo=tagGCRefreshAuctionItemInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCRefreshAuctionItemInfo.Head.Cmd,m_NAtagGCRefreshAuctionItemInfo.Head.SubCmd))] = m_NAtagGCRefreshAuctionItemInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | #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):
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # B5 08 拍卖行刷新拍品 #tagGCRefreshAuctionItem
|
| | | # B5 08 拍卖行刷新拍品 #tagGCRefreshAuctionItemInfo
|
| | |
|
| | | class tagGCRefreshAuctionItem(Structure):
|
| | | Head = tagHead()
|
| | | 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):
|
| | |
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.ItemGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
|
| | | self.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)
|
| | | 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.Clear()
|
| | | self.Head.Cmd = 0xB5
|
| | | self.Head.SubCmd = 0x08
|
| | | self.ItemGUID = ""
|
| | | self.AuctionType = 0
|
| | | self.AddTime = ""
|
| | | self.BidderID = 0
|
| | | self.BidderPrice = 0
|
| | | self.RefreshCount = 0
|
| | | self.RefreshAuctionItemList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 40
|
| | | length += 1
|
| | | length += 19
|
| | | length += 4
|
| | | length += 4
|
| | | 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.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)
|
| | | 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,
|
| | | ItemGUID:%s,
|
| | | AuctionType:%d,
|
| | | AddTime:%s,
|
| | | BidderID:%d,
|
| | | BidderPrice:%d
|
| | | RefreshCount:%d,
|
| | | RefreshAuctionItemList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.ItemGUID,
|
| | | self.AuctionType,
|
| | | self.AddTime,
|
| | | self.BidderID,
|
| | | self.BidderPrice
|
| | | self.RefreshCount,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagGCRefreshAuctionItem=tagGCRefreshAuctionItem()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCRefreshAuctionItem.Head.Cmd,m_NAtagGCRefreshAuctionItem.Head.SubCmd))] = m_NAtagGCRefreshAuctionItem
|
| | | m_NAtagGCRefreshAuctionItemInfo=tagGCRefreshAuctionItemInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCRefreshAuctionItemInfo.Head.Cmd,m_NAtagGCRefreshAuctionItemInfo.Head.SubCmd))] = m_NAtagGCRefreshAuctionItemInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | #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):
|