| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 43 节日祝福活动信息 #tagMCFeastWishInfo
|
| | |
|
| | | class tagMCFeastWishBottleItem(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("RecordIndex", c_ubyte), #物品索引,用于选择及记录是否已选择
|
| | | ("ItemID", c_int), |
| | | ("ItemCount", c_ushort), |
| | | ("IsBind", 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.RecordIndex = 0
|
| | | self.ItemID = 0
|
| | | self.ItemCount = 0
|
| | | self.IsBind = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCFeastWishBottleItem)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// AA 43 节日祝福活动信息 //tagMCFeastWishInfo:
|
| | | RecordIndex:%d,
|
| | | ItemID:%d,
|
| | | ItemCount:%d,
|
| | | IsBind:%d
|
| | | '''\
|
| | | %(
|
| | | self.RecordIndex,
|
| | | self.ItemID,
|
| | | self.ItemCount,
|
| | | self.IsBind
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCFeastWishBottleInfo(Structure):
|
| | | BottleNum = 0 #(BYTE BottleNum)//瓶子编号
|
| | | NeedWishValue = 0 #(WORD NeedWishValue)//单次领奖所需祝福值
|
| | | ChooseTimeMax = 0 #(BYTE ChooseTimeMax)//最大可领奖次数
|
| | | ChoosePrizeCount = 0 #(BYTE ChoosePrizeCount)//可选择奖励个数
|
| | | ChoosePrizeList = list() #(vector<tagMCFeastWishBottleItem> ChoosePrizeList)// 选择奖励物品列表,已选过的无法再选
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | self.BottleNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.NeedWishValue,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.ChooseTimeMax,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.ChoosePrizeCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.ChoosePrizeCount):
|
| | | temChoosePrizeList = tagMCFeastWishBottleItem()
|
| | | _pos = temChoosePrizeList.ReadData(_lpData, _pos)
|
| | | self.ChoosePrizeList.append(temChoosePrizeList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.BottleNum = 0
|
| | | self.NeedWishValue = 0
|
| | | self.ChooseTimeMax = 0
|
| | | self.ChoosePrizeCount = 0
|
| | | self.ChoosePrizeList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += 1
|
| | | length += 2
|
| | | length += 1
|
| | | length += 1
|
| | | for i in range(self.ChoosePrizeCount):
|
| | | length += self.ChoosePrizeList[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteBYTE(data, self.BottleNum)
|
| | | data = CommFunc.WriteWORD(data, self.NeedWishValue)
|
| | | data = CommFunc.WriteBYTE(data, self.ChooseTimeMax)
|
| | | data = CommFunc.WriteBYTE(data, self.ChoosePrizeCount)
|
| | | for i in range(self.ChoosePrizeCount):
|
| | | data = CommFunc.WriteString(data, self.ChoosePrizeList[i].GetLength(), self.ChoosePrizeList[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | BottleNum:%d,
|
| | | NeedWishValue:%d,
|
| | | ChooseTimeMax:%d,
|
| | | ChoosePrizeCount:%d,
|
| | | ChoosePrizeList:%s
|
| | | '''\
|
| | | %(
|
| | | self.BottleNum,
|
| | | self.NeedWishValue,
|
| | | self.ChooseTimeMax,
|
| | | self.ChoosePrizeCount,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCFeastWishInfo(Structure):
|
| | | Head = tagHead()
|
| | | StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
|
| | | EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
|
| | | WishPoolShowCount = 0 #(BYTE WishPoolShowCount)//祝福池展示物品数
|
| | | WishPoolShowItemList = list() #(vector<DWORD> WishPoolShowItemList)//祝福池展示物品ID列表
|
| | | BottleCount = 0 #(BYTE BottleCount)// 祝福瓶个数
|
| | | BottleInfoList = list() #(vector<tagMCFeastWishBottleInfo> BottleInfoList)// 祝福瓶信息
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x43
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
|
| | | self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
|
| | | self.WishPoolShowCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.WishPoolShowCount):
|
| | | value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
|
| | | self.WishPoolShowItemList.append(value)
|
| | | self.BottleCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.BottleCount):
|
| | | temBottleInfoList = tagMCFeastWishBottleInfo()
|
| | | _pos = temBottleInfoList.ReadData(_lpData, _pos)
|
| | | self.BottleInfoList.append(temBottleInfoList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x43
|
| | | self.StartDate = ""
|
| | | self.EndtDate = ""
|
| | | self.WishPoolShowCount = 0
|
| | | self.WishPoolShowItemList = list()
|
| | | self.BottleCount = 0
|
| | | self.BottleInfoList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 10
|
| | | length += 10
|
| | | length += 1
|
| | | length += 4 * self.WishPoolShowCount
|
| | | length += 1
|
| | | for i in range(self.BottleCount):
|
| | | length += self.BottleInfoList[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteString(data, 10, self.StartDate)
|
| | | data = CommFunc.WriteString(data, 10, self.EndtDate)
|
| | | data = CommFunc.WriteBYTE(data, self.WishPoolShowCount)
|
| | | for i in range(self.WishPoolShowCount):
|
| | | data = CommFunc.WriteDWORD(data, self.WishPoolShowItemList[i])
|
| | | data = CommFunc.WriteBYTE(data, self.BottleCount)
|
| | | for i in range(self.BottleCount):
|
| | | data = CommFunc.WriteString(data, self.BottleInfoList[i].GetLength(), self.BottleInfoList[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | StartDate:%s,
|
| | | EndtDate:%s,
|
| | | WishPoolShowCount:%d,
|
| | | WishPoolShowItemList:%s,
|
| | | BottleCount:%d,
|
| | | BottleInfoList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.StartDate,
|
| | | self.EndtDate,
|
| | | self.WishPoolShowCount,
|
| | | "...",
|
| | | self.BottleCount,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCFeastWishInfo=tagMCFeastWishInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFeastWishInfo.Head.Cmd,m_NAtagMCFeastWishInfo.Head.SubCmd))] = m_NAtagMCFeastWishInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 44 节日祝福活动玩家信息 #tagMCFeastWishPlayerInfo
|
| | |
|
| | | class tagMCFeastWishPlayerBottle(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("BottleNum", c_ubyte), #瓶子编号
|
| | | ("WishValue", c_ushort), #当前可用祝福值
|
| | | ("ChooseRecord", c_int), #已选物品索引记录,与记录索引位运算判断是否已选择;累计已选择次数前端自己计算,通过该值可算出
|
| | | ]
|
| | |
|
| | | 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.BottleNum = 0
|
| | | self.WishValue = 0
|
| | | self.ChooseRecord = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCFeastWishPlayerBottle)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// AA 44 节日祝福活动玩家信息 //tagMCFeastWishPlayerInfo:
|
| | | BottleNum:%d,
|
| | | WishValue:%d,
|
| | | ChooseRecord:%d
|
| | | '''\
|
| | | %(
|
| | | self.BottleNum,
|
| | | self.WishValue,
|
| | | self.ChooseRecord
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCFeastWishPlayerInfo(Structure):
|
| | | Head = tagHead()
|
| | | BottleCount = 0 #(BYTE BottleCount)// 祝福瓶个数
|
| | | PlayerBottleInfo = list() #(vector<tagMCFeastWishPlayerBottle> PlayerBottleInfo)// 祝福瓶信息
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x44
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.BottleCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.BottleCount):
|
| | | temPlayerBottleInfo = tagMCFeastWishPlayerBottle()
|
| | | _pos = temPlayerBottleInfo.ReadData(_lpData, _pos)
|
| | | self.PlayerBottleInfo.append(temPlayerBottleInfo)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x44
|
| | | self.BottleCount = 0
|
| | | self.PlayerBottleInfo = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 1
|
| | | for i in range(self.BottleCount):
|
| | | length += self.PlayerBottleInfo[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteBYTE(data, self.BottleCount)
|
| | | for i in range(self.BottleCount):
|
| | | data = CommFunc.WriteString(data, self.PlayerBottleInfo[i].GetLength(), self.PlayerBottleInfo[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | BottleCount:%d,
|
| | | PlayerBottleInfo:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.BottleCount,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCFeastWishPlayerInfo=tagMCFeastWishPlayerInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFeastWishPlayerInfo.Head.Cmd,m_NAtagMCFeastWishPlayerInfo.Head.SubCmd))] = m_NAtagMCFeastWishPlayerInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 45 节日祝福祝福结果 #tagMCFeastWishResult
|
| | |
|
| | | class tagMCFeastWishResult(Structure):
|
| | | Head = tagHead()
|
| | | AddWishValue = 0 #(WORD AddWishValue)// 本次增加的祝福值
|
| | | WishResultLen = 0 #(WORD WishResultLen)
|
| | | WishResult = "" #(String WishResult)// 获得物品结果[[物品ID,个数,是否绑定], ...]
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x45
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.AddWishValue,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.WishResultLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.WishResult,_pos = CommFunc.ReadString(_lpData, _pos,self.WishResultLen)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x45
|
| | | self.AddWishValue = 0
|
| | | self.WishResultLen = 0
|
| | | self.WishResult = ""
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 2
|
| | | length += 2
|
| | | length += len(self.WishResult)
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteWORD(data, self.AddWishValue)
|
| | | data = CommFunc.WriteWORD(data, self.WishResultLen)
|
| | | data = CommFunc.WriteString(data, self.WishResultLen, self.WishResult)
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | AddWishValue:%d,
|
| | | WishResultLen:%d,
|
| | | WishResult:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.AddWishValue,
|
| | | self.WishResultLen,
|
| | | self.WishResult
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCFeastWishResult=tagMCFeastWishResult()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFeastWishResult.Head.Cmd,m_NAtagMCFeastWishResult.Head.SubCmd))] = m_NAtagMCFeastWishResult
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 02 首充信息 #tagMCFirstGoldInfo
|
| | |
|
| | | class tagMCFirstGoldInfo(Structure):
|