| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 40 集字活动信息 #tagMCActCollectWordsInfo
|
| | |
|
| | | class tagMCActCollectWordsNeedItem(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("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.ItemID = 0
|
| | | self.ItemCount = 0
|
| | | self.IsBind = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCActCollectWordsNeedItem)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// AA 40 集字活动信息 //tagMCActCollectWordsInfo:
|
| | | ItemID:%d,
|
| | | ItemCount:%d,
|
| | | IsBind:%d
|
| | | '''\
|
| | | %(
|
| | | self.ItemID,
|
| | | self.ItemCount,
|
| | | self.IsBind
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCActCollectWordsExchangeItem(Structure):
|
| | | ExchangeNum = 0 #(BYTE ExchangeNum)//兑换编号
|
| | | ExchangeCountMax = 0 #(BYTE ExchangeCountMax)//最大兑换次数,0不限制
|
| | | ItemID = 0 #(DWORD ItemID)//目标物品
|
| | | ItemCount = 0 #(WORD ItemCount)
|
| | | IsBind = 0 #(BYTE IsBind)
|
| | | NeedItemCount = 0 #(BYTE NeedItemCount)
|
| | | NeedItemList = list() #(vector<tagMCActCollectWordsNeedItem> NeedItemList)// 所需物品列表
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | self.ExchangeNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.ExchangeCountMax,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.ItemCount,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.IsBind,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.NeedItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.NeedItemCount):
|
| | | temNeedItemList = tagMCActCollectWordsNeedItem()
|
| | | _pos = temNeedItemList.ReadData(_lpData, _pos)
|
| | | self.NeedItemList.append(temNeedItemList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.ExchangeNum = 0
|
| | | self.ExchangeCountMax = 0
|
| | | self.ItemID = 0
|
| | | self.ItemCount = 0
|
| | | self.IsBind = 0
|
| | | self.NeedItemCount = 0
|
| | | self.NeedItemList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += 1
|
| | | length += 1
|
| | | length += 4
|
| | | length += 2
|
| | | length += 1
|
| | | length += 1
|
| | | for i in range(self.NeedItemCount):
|
| | | length += self.NeedItemList[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteBYTE(data, self.ExchangeNum)
|
| | | data = CommFunc.WriteBYTE(data, self.ExchangeCountMax)
|
| | | data = CommFunc.WriteDWORD(data, self.ItemID)
|
| | | data = CommFunc.WriteWORD(data, self.ItemCount)
|
| | | data = CommFunc.WriteBYTE(data, self.IsBind)
|
| | | data = CommFunc.WriteBYTE(data, self.NeedItemCount)
|
| | | for i in range(self.NeedItemCount):
|
| | | data = CommFunc.WriteString(data, self.NeedItemList[i].GetLength(), self.NeedItemList[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | ExchangeNum:%d,
|
| | | ExchangeCountMax:%d,
|
| | | ItemID:%d,
|
| | | ItemCount:%d,
|
| | | IsBind:%d,
|
| | | NeedItemCount:%d,
|
| | | NeedItemList:%s
|
| | | '''\
|
| | | %(
|
| | | self.ExchangeNum,
|
| | | self.ExchangeCountMax,
|
| | | self.ItemID,
|
| | | self.ItemCount,
|
| | | self.IsBind,
|
| | | self.NeedItemCount,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCActCollectWordsInfo(Structure):
|
| | | Head = tagHead()
|
| | | ActNum = 0 #(BYTE ActNum)//活动编号,1 或 2,相互独立的活动,可同时开启
|
| | | StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
|
| | | EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
|
| | | LimitLV = 0 #(WORD LimitLV)// 限制等级
|
| | | LastDayOnlyExchange = 0 #(BYTE LastDayOnlyExchange)//最后一天是否仅兑换
|
| | | ExchangeCount = 0 #(BYTE ExchangeCount)
|
| | | ExchangeItemList = list() #(vector<tagMCActCollectWordsExchangeItem> ExchangeItemList)//兑换组合列表
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x40
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
|
| | | self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
|
| | | self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.LastDayOnlyExchange,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.ExchangeCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.ExchangeCount):
|
| | | temExchangeItemList = tagMCActCollectWordsExchangeItem()
|
| | | _pos = temExchangeItemList.ReadData(_lpData, _pos)
|
| | | self.ExchangeItemList.append(temExchangeItemList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x40
|
| | | self.ActNum = 0
|
| | | self.StartDate = ""
|
| | | self.EndtDate = ""
|
| | | self.LimitLV = 0
|
| | | self.LastDayOnlyExchange = 0
|
| | | self.ExchangeCount = 0
|
| | | self.ExchangeItemList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 1
|
| | | length += 10
|
| | | length += 10
|
| | | length += 2
|
| | | length += 1
|
| | | length += 1
|
| | | for i in range(self.ExchangeCount):
|
| | | length += self.ExchangeItemList[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteBYTE(data, self.ActNum)
|
| | | data = CommFunc.WriteString(data, 10, self.StartDate)
|
| | | data = CommFunc.WriteString(data, 10, self.EndtDate)
|
| | | data = CommFunc.WriteWORD(data, self.LimitLV)
|
| | | data = CommFunc.WriteBYTE(data, self.LastDayOnlyExchange)
|
| | | data = CommFunc.WriteBYTE(data, self.ExchangeCount)
|
| | | for i in range(self.ExchangeCount):
|
| | | data = CommFunc.WriteString(data, self.ExchangeItemList[i].GetLength(), self.ExchangeItemList[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | ActNum:%d,
|
| | | StartDate:%s,
|
| | | EndtDate:%s,
|
| | | LimitLV:%d,
|
| | | LastDayOnlyExchange:%d,
|
| | | ExchangeCount:%d,
|
| | | ExchangeItemList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.ActNum,
|
| | | self.StartDate,
|
| | | self.EndtDate,
|
| | | self.LimitLV,
|
| | | self.LastDayOnlyExchange,
|
| | | self.ExchangeCount,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCActCollectWordsInfo=tagMCActCollectWordsInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActCollectWordsInfo.Head.Cmd,m_NAtagMCActCollectWordsInfo.Head.SubCmd))] = m_NAtagMCActCollectWordsInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 41 集字活动玩家信息 #tagMCActCollectWordsPlayerInfo
|
| | |
|
| | | class tagMCActCollectWordsExchangeInfo(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("ExchangeNum", c_ubyte), #兑换编号
|
| | | ("ExchangeCount", c_ushort), #已兑换次数
|
| | | ]
|
| | |
|
| | | 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.ExchangeNum = 0
|
| | | self.ExchangeCount = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCActCollectWordsExchangeInfo)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// AA 41 集字活动玩家信息 //tagMCActCollectWordsPlayerInfo:
|
| | | ExchangeNum:%d,
|
| | | ExchangeCount:%d
|
| | | '''\
|
| | | %(
|
| | | self.ExchangeNum,
|
| | | self.ExchangeCount
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCActCollectWordsPlayerInfo(Structure):
|
| | | Head = tagHead()
|
| | | ActNum = 0 #(BYTE ActNum)//活动编号,1 或 2,相互独立的活动,可同时开启
|
| | | ExchangeCount = 0 #(BYTE ExchangeCount)
|
| | | ExchangeInfoList = list() #(vector<tagMCActCollectWordsExchangeInfo> ExchangeInfoList)//兑换数据列表
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x41
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.ExchangeCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.ExchangeCount):
|
| | | temExchangeInfoList = tagMCActCollectWordsExchangeInfo()
|
| | | _pos = temExchangeInfoList.ReadData(_lpData, _pos)
|
| | | self.ExchangeInfoList.append(temExchangeInfoList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x41
|
| | | self.ActNum = 0
|
| | | self.ExchangeCount = 0
|
| | | self.ExchangeInfoList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 1
|
| | | length += 1
|
| | | for i in range(self.ExchangeCount):
|
| | | length += self.ExchangeInfoList[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteBYTE(data, self.ActNum)
|
| | | data = CommFunc.WriteBYTE(data, self.ExchangeCount)
|
| | | for i in range(self.ExchangeCount):
|
| | | data = CommFunc.WriteString(data, self.ExchangeInfoList[i].GetLength(), self.ExchangeInfoList[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | ActNum:%d,
|
| | | ExchangeCount:%d,
|
| | | ExchangeInfoList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.ActNum,
|
| | | self.ExchangeCount,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCActCollectWordsPlayerInfo=tagMCActCollectWordsPlayerInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActCollectWordsPlayerInfo.Head.Cmd,m_NAtagMCActCollectWordsPlayerInfo.Head.SubCmd))] = m_NAtagMCActCollectWordsPlayerInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 0C 登录奖励活动信息 #tagMCActLoginAwardInfo
|
| | |
|
| | | class tagMCActLoginAwardAction(Structure):
|