| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 46 节日游历活动信息 #tagMCFeastTravelInfo
|
| | |
|
| | | class tagMCFeastTravelAwardItem(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(tagMCFeastTravelAwardItem)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// AA 46 节日游历活动信息 //tagMCFeastTravelInfo:
|
| | | ItemID:%d,
|
| | | ItemCount:%d,
|
| | | IsBind:%d
|
| | | '''\
|
| | | %(
|
| | | self.ItemID,
|
| | | self.ItemCount,
|
| | | self.IsBind
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCFeastTravelAward(Structure):
|
| | | AwardIndex = 0 #(BYTE AwardIndex)//游历奖励索引
|
| | | NeedTravelPoint = 0 #(WORD NeedTravelPoint)//单次领奖所需游历值
|
| | | AwardCountMax = 0 #(BYTE AwardCountMax)//最大可领取次数,0代表不限
|
| | | AwardItemCount = 0 #(BYTE AwardItemCount)//奖励物品数
|
| | | AwardItemList = list() #(vector<tagMCFeastTravelAwardItem> AwardItemList)//奖励物品列表
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | self.AwardIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.NeedTravelPoint,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.AwardCountMax,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.AwardItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.AwardItemCount):
|
| | | temAwardItemList = tagMCFeastTravelAwardItem()
|
| | | _pos = temAwardItemList.ReadData(_lpData, _pos)
|
| | | self.AwardItemList.append(temAwardItemList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.AwardIndex = 0
|
| | | self.NeedTravelPoint = 0
|
| | | self.AwardCountMax = 0
|
| | | self.AwardItemCount = 0
|
| | | self.AwardItemList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += 1
|
| | | length += 2
|
| | | length += 1
|
| | | length += 1
|
| | | for i in range(self.AwardItemCount):
|
| | | length += self.AwardItemList[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteBYTE(data, self.AwardIndex)
|
| | | data = CommFunc.WriteWORD(data, self.NeedTravelPoint)
|
| | | data = CommFunc.WriteBYTE(data, self.AwardCountMax)
|
| | | data = CommFunc.WriteBYTE(data, self.AwardItemCount)
|
| | | for i in range(self.AwardItemCount):
|
| | | data = CommFunc.WriteString(data, self.AwardItemList[i].GetLength(), self.AwardItemList[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | AwardIndex:%d,
|
| | | NeedTravelPoint:%d,
|
| | | AwardCountMax:%d,
|
| | | AwardItemCount:%d,
|
| | | AwardItemList:%s
|
| | | '''\
|
| | | %(
|
| | | self.AwardIndex,
|
| | | self.NeedTravelPoint,
|
| | | self.AwardCountMax,
|
| | | self.AwardItemCount,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCFeastTravelTask(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("TravelTaskID", c_ubyte), #游历任务ID
|
| | | ("FinishNeedValue", c_ushort), #单次完成所需进度
|
| | | ("FinishTimeMax", c_ubyte), #最大可完成次数,0代表不限
|
| | | ("AddTravelPoint", 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.TravelTaskID = 0
|
| | | self.FinishNeedValue = 0
|
| | | self.FinishTimeMax = 0
|
| | | self.AddTravelPoint = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCFeastTravelTask)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// AA 46 节日游历活动信息 //tagMCFeastTravelInfo:
|
| | | TravelTaskID:%d,
|
| | | FinishNeedValue:%d,
|
| | | FinishTimeMax:%d,
|
| | | AddTravelPoint:%d
|
| | | '''\
|
| | | %(
|
| | | self.TravelTaskID,
|
| | | self.FinishNeedValue,
|
| | | self.FinishTimeMax,
|
| | | self.AddTravelPoint
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCFeastTravelInfo(Structure):
|
| | | Head = tagHead()
|
| | | StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
|
| | | EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
|
| | | ResetType = 0 #(BYTE ResetType)// 重置类型,0-0点重置;1-5点开,5点重置;2-5点开,0点重置
|
| | | TravelTaskCount = 0 #(BYTE TravelTaskCount)// 游历任务数
|
| | | TravelTaskList = list() #(vector<tagMCFeastTravelTask> TravelTaskList)//游历任务信息列表
|
| | | TravelAwardCount = 0 #(BYTE TravelAwardCount)// 游历奖励数
|
| | | TravelAwardList = list() #(vector<tagMCFeastTravelAward> TravelAwardList)//游历奖励信息列表
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x46
|
| | | 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.ResetType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.TravelTaskCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.TravelTaskCount):
|
| | | temTravelTaskList = tagMCFeastTravelTask()
|
| | | _pos = temTravelTaskList.ReadData(_lpData, _pos)
|
| | | self.TravelTaskList.append(temTravelTaskList)
|
| | | self.TravelAwardCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.TravelAwardCount):
|
| | | temTravelAwardList = tagMCFeastTravelAward()
|
| | | _pos = temTravelAwardList.ReadData(_lpData, _pos)
|
| | | self.TravelAwardList.append(temTravelAwardList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x46
|
| | | self.StartDate = ""
|
| | | self.EndtDate = ""
|
| | | self.ResetType = 0
|
| | | self.TravelTaskCount = 0
|
| | | self.TravelTaskList = list()
|
| | | self.TravelAwardCount = 0
|
| | | self.TravelAwardList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 10
|
| | | length += 10
|
| | | length += 1
|
| | | length += 1
|
| | | for i in range(self.TravelTaskCount):
|
| | | length += self.TravelTaskList[i].GetLength()
|
| | | length += 1
|
| | | for i in range(self.TravelAwardCount):
|
| | | length += self.TravelAwardList[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.ResetType)
|
| | | data = CommFunc.WriteBYTE(data, self.TravelTaskCount)
|
| | | for i in range(self.TravelTaskCount):
|
| | | data = CommFunc.WriteString(data, self.TravelTaskList[i].GetLength(), self.TravelTaskList[i].GetBuffer())
|
| | | data = CommFunc.WriteBYTE(data, self.TravelAwardCount)
|
| | | for i in range(self.TravelAwardCount):
|
| | | data = CommFunc.WriteString(data, self.TravelAwardList[i].GetLength(), self.TravelAwardList[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | StartDate:%s,
|
| | | EndtDate:%s,
|
| | | ResetType:%d,
|
| | | TravelTaskCount:%d,
|
| | | TravelTaskList:%s,
|
| | | TravelAwardCount:%d,
|
| | | TravelAwardList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.StartDate,
|
| | | self.EndtDate,
|
| | | self.ResetType,
|
| | | self.TravelTaskCount,
|
| | | "...",
|
| | | self.TravelAwardCount,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCFeastTravelInfo=tagMCFeastTravelInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFeastTravelInfo.Head.Cmd,m_NAtagMCFeastTravelInfo.Head.SubCmd))] = m_NAtagMCFeastTravelInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 47 节日游历活动玩家信息 #tagMCFeastTravelPlayerInfo
|
| | |
|
| | | class tagMCFeastTravelPlayerAward(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("AwardIndex", c_ubyte), #游历奖励索引
|
| | | ("GetAwardCount", c_ubyte), #已领取次数;前端判断是否可领取: 总游历值 >= (已领取次数 + 1) * 单次所需游历值
|
| | | ]
|
| | |
|
| | | 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.AwardIndex = 0
|
| | | self.GetAwardCount = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCFeastTravelPlayerAward)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// AA 47 节日游历活动玩家信息 //tagMCFeastTravelPlayerInfo:
|
| | | AwardIndex:%d,
|
| | | GetAwardCount:%d
|
| | | '''\
|
| | | %(
|
| | | self.AwardIndex,
|
| | | self.GetAwardCount
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCFeastTravelPlayerTask(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("TravelTaskID", c_ubyte), #游历任务ID
|
| | | ("TravelValue", c_int), #当前进度值,一直累加
|
| | | ("FinishCount", c_ubyte), #当前已完成次数; 前端计算未完成次数的进度值=max(0, 当前进度值 - (完成次数 * 单次所需进度))
|
| | | ]
|
| | |
|
| | | 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.TravelTaskID = 0
|
| | | self.TravelValue = 0
|
| | | self.FinishCount = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCFeastTravelPlayerTask)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// AA 47 节日游历活动玩家信息 //tagMCFeastTravelPlayerInfo:
|
| | | TravelTaskID:%d,
|
| | | TravelValue:%d,
|
| | | FinishCount:%d
|
| | | '''\
|
| | | %(
|
| | | self.TravelTaskID,
|
| | | self.TravelValue,
|
| | | self.FinishCount
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCFeastTravelPlayerInfo(Structure):
|
| | | Head = tagHead()
|
| | | TravelPoint = 0 #(DWORD TravelPoint)//当前总游历值,一直累加,不会扣的
|
| | | TravelPlayerTaskCount = 0 #(BYTE TravelPlayerTaskCount)// 游历任务数,不一定有同步,有同步数据则替换即可
|
| | | TravelPlayerTaskList = list() #(vector<tagMCFeastTravelPlayerTask> TravelPlayerTaskList)//游历任务信息列表
|
| | | TravelPlayerAwardCount = 0 #(BYTE TravelPlayerAwardCount)// 游历奖励数,不一定有同步,有同步数据则替换即可
|
| | | TravelPlayerAwardList = list() #(vector<tagMCFeastTravelPlayerAward> TravelPlayerAwardList)//游历奖励信息列表
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x47
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.TravelPoint,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.TravelPlayerTaskCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.TravelPlayerTaskCount):
|
| | | temTravelPlayerTaskList = tagMCFeastTravelPlayerTask()
|
| | | _pos = temTravelPlayerTaskList.ReadData(_lpData, _pos)
|
| | | self.TravelPlayerTaskList.append(temTravelPlayerTaskList)
|
| | | self.TravelPlayerAwardCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.TravelPlayerAwardCount):
|
| | | temTravelPlayerAwardList = tagMCFeastTravelPlayerAward()
|
| | | _pos = temTravelPlayerAwardList.ReadData(_lpData, _pos)
|
| | | self.TravelPlayerAwardList.append(temTravelPlayerAwardList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x47
|
| | | self.TravelPoint = 0
|
| | | self.TravelPlayerTaskCount = 0
|
| | | self.TravelPlayerTaskList = list()
|
| | | self.TravelPlayerAwardCount = 0
|
| | | self.TravelPlayerAwardList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 4
|
| | | length += 1
|
| | | for i in range(self.TravelPlayerTaskCount):
|
| | | length += self.TravelPlayerTaskList[i].GetLength()
|
| | | length += 1
|
| | | for i in range(self.TravelPlayerAwardCount):
|
| | | length += self.TravelPlayerAwardList[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteDWORD(data, self.TravelPoint)
|
| | | data = CommFunc.WriteBYTE(data, self.TravelPlayerTaskCount)
|
| | | for i in range(self.TravelPlayerTaskCount):
|
| | | data = CommFunc.WriteString(data, self.TravelPlayerTaskList[i].GetLength(), self.TravelPlayerTaskList[i].GetBuffer())
|
| | | data = CommFunc.WriteBYTE(data, self.TravelPlayerAwardCount)
|
| | | for i in range(self.TravelPlayerAwardCount):
|
| | | data = CommFunc.WriteString(data, self.TravelPlayerAwardList[i].GetLength(), self.TravelPlayerAwardList[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | TravelPoint:%d,
|
| | | TravelPlayerTaskCount:%d,
|
| | | TravelPlayerTaskList:%s,
|
| | | TravelPlayerAwardCount:%d,
|
| | | TravelPlayerAwardList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.TravelPoint,
|
| | | self.TravelPlayerTaskCount,
|
| | | "...",
|
| | | self.TravelPlayerAwardCount,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCFeastTravelPlayerInfo=tagMCFeastTravelPlayerInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFeastTravelPlayerInfo.Head.Cmd,m_NAtagMCFeastTravelPlayerInfo.Head.SubCmd))] = m_NAtagMCFeastTravelPlayerInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 20 节日巡礼活动信息 #tagMCFeastWeekPartyInfo
|
| | |
|
| | | class tagMCFeastWeekPartyItem(Structure):
|
| | |
| | | Head = tagHead()
|
| | | StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
|
| | | EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
|
| | | ResetType = 0 #(BYTE ResetType)// 重置类型,0-0点重置;1-5点开,5点重置;2-5点开,0点重置
|
| | | WishPoolShowCount = 0 #(BYTE WishPoolShowCount)//祝福池展示物品数
|
| | | WishPoolShowItemList = list() #(vector<DWORD> WishPoolShowItemList)//祝福池展示物品ID列表
|
| | | BottleCount = 0 #(BYTE BottleCount)// 祝福瓶个数
|
| | |
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
|
| | | self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
|
| | | self.ResetType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.WishPoolShowCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.WishPoolShowCount):
|
| | | value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
|
| | |
| | | self.Head.SubCmd = 0x43
|
| | | self.StartDate = ""
|
| | | self.EndtDate = ""
|
| | | self.ResetType = 0
|
| | | self.WishPoolShowCount = 0
|
| | | self.WishPoolShowItemList = list()
|
| | | self.BottleCount = 0
|
| | |
| | | length += self.Head.GetLength()
|
| | | length += 10
|
| | | length += 10
|
| | | length += 1
|
| | | length += 1
|
| | | length += 4 * self.WishPoolShowCount
|
| | | length += 1
|
| | |
| | | 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.ResetType)
|
| | | data = CommFunc.WriteBYTE(data, self.WishPoolShowCount)
|
| | | for i in range(self.WishPoolShowCount):
|
| | | data = CommFunc.WriteDWORD(data, self.WishPoolShowItemList[i])
|
| | |
| | | Head:%s,
|
| | | StartDate:%s,
|
| | | EndtDate:%s,
|
| | | ResetType:%d,
|
| | | WishPoolShowCount:%d,
|
| | | WishPoolShowItemList:%s,
|
| | | BottleCount:%d,
|
| | |
| | | self.Head.OutputString(),
|
| | | self.StartDate,
|
| | | self.EndtDate,
|
| | | self.ResetType,
|
| | | self.WishPoolShowCount,
|
| | | "...",
|
| | | self.BottleCount,
|