|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #------------------------------------------------------ | 
|---|
|  |  |  | # 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, | 
|---|