|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #------------------------------------------------------ | 
|---|
|  |  |  | # AA 60 天帝礼包活动信息 #tagMCActGodGiftInfo | 
|---|
|  |  |  |  | 
|---|
|  |  |  | class  tagMCActGodGiftItem(Structure): | 
|---|
|  |  |  | _pack_ = 1 | 
|---|
|  |  |  | _fields_ = [ | 
|---|
|  |  |  | ("ItemNum", c_ubyte),    # 物品在本库中的编号 | 
|---|
|  |  |  | ("ItemID", c_int), | 
|---|
|  |  |  | ("ItemCount", c_ushort), | 
|---|
|  |  |  | ("IsBind", c_ubyte), | 
|---|
|  |  |  | ("CanChooseTimes", c_ubyte),    #可选择次数,0代表不限次数 | 
|---|
|  |  |  | ("ChooseTimes", c_ubyte),    #已选次数 | 
|---|
|  |  |  | ("IsChoose", 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.ItemNum = 0 | 
|---|
|  |  |  | self.ItemID = 0 | 
|---|
|  |  |  | self.ItemCount = 0 | 
|---|
|  |  |  | self.IsBind = 0 | 
|---|
|  |  |  | self.CanChooseTimes = 0 | 
|---|
|  |  |  | self.ChooseTimes = 0 | 
|---|
|  |  |  | self.IsChoose = 0 | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def GetLength(self): | 
|---|
|  |  |  | return sizeof(tagMCActGodGiftItem) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def GetBuffer(self): | 
|---|
|  |  |  | return string_at(addressof(self), self.GetLength()) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def OutputString(self): | 
|---|
|  |  |  | DumpString = '''// AA 60 天帝礼包活动信息 //tagMCActGodGiftInfo: | 
|---|
|  |  |  | ItemNum:%d, | 
|---|
|  |  |  | ItemID:%d, | 
|---|
|  |  |  | ItemCount:%d, | 
|---|
|  |  |  | IsBind:%d, | 
|---|
|  |  |  | CanChooseTimes:%d, | 
|---|
|  |  |  | ChooseTimes:%d, | 
|---|
|  |  |  | IsChoose:%d | 
|---|
|  |  |  | '''\ | 
|---|
|  |  |  | %( | 
|---|
|  |  |  | self.ItemNum, | 
|---|
|  |  |  | self.ItemID, | 
|---|
|  |  |  | self.ItemCount, | 
|---|
|  |  |  | self.IsBind, | 
|---|
|  |  |  | self.CanChooseTimes, | 
|---|
|  |  |  | self.ChooseTimes, | 
|---|
|  |  |  | self.IsChoose | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | return DumpString | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | class  tagMCActGodGiftItemLib(Structure): | 
|---|
|  |  |  | ItemLibType = 0    #(BYTE ItemLibType)//物品库类型 | 
|---|
|  |  |  | ChooseItemCount = 0    #(BYTE ChooseItemCount)//可选择物品个数 | 
|---|
|  |  |  | ChooseItemList = list()    #(vector<tagMCActGodGiftItem> ChooseItemList)//可选物品列表 | 
|---|
|  |  |  | data = None | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def __init__(self): | 
|---|
|  |  |  | self.Clear() | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def ReadData(self, _lpData, _pos=0, _Len=0): | 
|---|
|  |  |  | self.Clear() | 
|---|
|  |  |  | self.ItemLibType,_pos = CommFunc.ReadBYTE(_lpData, _pos) | 
|---|
|  |  |  | self.ChooseItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) | 
|---|
|  |  |  | for i in range(self.ChooseItemCount): | 
|---|
|  |  |  | temChooseItemList = tagMCActGodGiftItem() | 
|---|
|  |  |  | _pos = temChooseItemList.ReadData(_lpData, _pos) | 
|---|
|  |  |  | self.ChooseItemList.append(temChooseItemList) | 
|---|
|  |  |  | return _pos | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def Clear(self): | 
|---|
|  |  |  | self.ItemLibType = 0 | 
|---|
|  |  |  | self.ChooseItemCount = 0 | 
|---|
|  |  |  | self.ChooseItemList = list() | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def GetLength(self): | 
|---|
|  |  |  | length = 0 | 
|---|
|  |  |  | length += 1 | 
|---|
|  |  |  | length += 1 | 
|---|
|  |  |  | for i in range(self.ChooseItemCount): | 
|---|
|  |  |  | length += self.ChooseItemList[i].GetLength() | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return length | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def GetBuffer(self): | 
|---|
|  |  |  | data = '' | 
|---|
|  |  |  | data = CommFunc.WriteBYTE(data, self.ItemLibType) | 
|---|
|  |  |  | data = CommFunc.WriteBYTE(data, self.ChooseItemCount) | 
|---|
|  |  |  | for i in range(self.ChooseItemCount): | 
|---|
|  |  |  | data = CommFunc.WriteString(data, self.ChooseItemList[i].GetLength(), self.ChooseItemList[i].GetBuffer()) | 
|---|
|  |  |  | return data | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def OutputString(self): | 
|---|
|  |  |  | DumpString = ''' | 
|---|
|  |  |  | ItemLibType:%d, | 
|---|
|  |  |  | ChooseItemCount:%d, | 
|---|
|  |  |  | ChooseItemList:%s | 
|---|
|  |  |  | '''\ | 
|---|
|  |  |  | %( | 
|---|
|  |  |  | self.ItemLibType, | 
|---|
|  |  |  | self.ChooseItemCount, | 
|---|
|  |  |  | "..." | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | return DumpString | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | class  tagMCActGodGiftInfo(Structure): | 
|---|
|  |  |  | Head = tagHead() | 
|---|
|  |  |  | ActNum = 0    #(BYTE ActNum)// 活动编号 | 
|---|
|  |  |  | StartDate = ""    #(char StartDate[10])// 开始日期 y-m-d | 
|---|
|  |  |  | EndtDate = ""    #(char EndtDate[10])// 结束日期 y-m-d | 
|---|
|  |  |  | IsDayReset = 0    #(BYTE IsDayReset)// 是否每日重置 | 
|---|
|  |  |  | LimitLV = 0    #(WORD LimitLV)// 限制等级 | 
|---|
|  |  |  | CostMoneyType = 0    #(BYTE CostMoneyType)//消耗货币类型 | 
|---|
|  |  |  | CostMoneyValueCount = 0    #(BYTE CostMoneyValueCount) | 
|---|
|  |  |  | CostMoneyValueList = list()    #(vector<DWORD> CostMoneyValueList)//消耗货币值列表 | 
|---|
|  |  |  | PrizeMoneyType = 0    #(BYTE PrizeMoneyType)//奖励货币类型 | 
|---|
|  |  |  | PrizeMoneyValueCount = 0    #(BYTE PrizeMoneyValueCount) | 
|---|
|  |  |  | PrizeMoneyValueList = list()    #(vector<DWORD> PrizeMoneyValueList)//奖励货币值列表 | 
|---|
|  |  |  | ResetLimitTimes = 0    #(BYTE ResetLimitTimes)//至少抽几次才可重置奖池 | 
|---|
|  |  |  | ResetCountMax = 0    #(BYTE ResetCountMax)//最大可重置奖池次数 | 
|---|
|  |  |  | IsAwardPoolOK = 0    #(BYTE IsAwardPoolOK)//奖池是否选择完毕,否的话需要先选择奖池才可抽奖 | 
|---|
|  |  |  | ItemLibCount = 0    #(BYTE ItemLibCount)//奖池库个数 | 
|---|
|  |  |  | ItemLibList = list()    #(vector<tagMCActGodGiftItemLib> ItemLibList)//奖池库信息列表 | 
|---|
|  |  |  | data = None | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def __init__(self): | 
|---|
|  |  |  | self.Clear() | 
|---|
|  |  |  | self.Head.Cmd = 0xAA | 
|---|
|  |  |  | self.Head.SubCmd = 0x60 | 
|---|
|  |  |  | 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.IsDayReset,_pos = CommFunc.ReadBYTE(_lpData, _pos) | 
|---|
|  |  |  | self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos) | 
|---|
|  |  |  | self.CostMoneyType,_pos = CommFunc.ReadBYTE(_lpData, _pos) | 
|---|
|  |  |  | self.CostMoneyValueCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) | 
|---|
|  |  |  | for i in range(self.CostMoneyValueCount): | 
|---|
|  |  |  | value,_pos=CommFunc.ReadDWORD(_lpData,_pos) | 
|---|
|  |  |  | self.CostMoneyValueList.append(value) | 
|---|
|  |  |  | self.PrizeMoneyType,_pos = CommFunc.ReadBYTE(_lpData, _pos) | 
|---|
|  |  |  | self.PrizeMoneyValueCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) | 
|---|
|  |  |  | for i in range(self.PrizeMoneyValueCount): | 
|---|
|  |  |  | value,_pos=CommFunc.ReadDWORD(_lpData,_pos) | 
|---|
|  |  |  | self.PrizeMoneyValueList.append(value) | 
|---|
|  |  |  | self.ResetLimitTimes,_pos = CommFunc.ReadBYTE(_lpData, _pos) | 
|---|
|  |  |  | self.ResetCountMax,_pos = CommFunc.ReadBYTE(_lpData, _pos) | 
|---|
|  |  |  | self.IsAwardPoolOK,_pos = CommFunc.ReadBYTE(_lpData, _pos) | 
|---|
|  |  |  | self.ItemLibCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) | 
|---|
|  |  |  | for i in range(self.ItemLibCount): | 
|---|
|  |  |  | temItemLibList = tagMCActGodGiftItemLib() | 
|---|
|  |  |  | _pos = temItemLibList.ReadData(_lpData, _pos) | 
|---|
|  |  |  | self.ItemLibList.append(temItemLibList) | 
|---|
|  |  |  | return _pos | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def Clear(self): | 
|---|
|  |  |  | self.Head = tagHead() | 
|---|
|  |  |  | self.Head.Clear() | 
|---|
|  |  |  | self.Head.Cmd = 0xAA | 
|---|
|  |  |  | self.Head.SubCmd = 0x60 | 
|---|
|  |  |  | self.ActNum = 0 | 
|---|
|  |  |  | self.StartDate = "" | 
|---|
|  |  |  | self.EndtDate = "" | 
|---|
|  |  |  | self.IsDayReset = 0 | 
|---|
|  |  |  | self.LimitLV = 0 | 
|---|
|  |  |  | self.CostMoneyType = 0 | 
|---|
|  |  |  | self.CostMoneyValueCount = 0 | 
|---|
|  |  |  | self.CostMoneyValueList = list() | 
|---|
|  |  |  | self.PrizeMoneyType = 0 | 
|---|
|  |  |  | self.PrizeMoneyValueCount = 0 | 
|---|
|  |  |  | self.PrizeMoneyValueList = list() | 
|---|
|  |  |  | self.ResetLimitTimes = 0 | 
|---|
|  |  |  | self.ResetCountMax = 0 | 
|---|
|  |  |  | self.IsAwardPoolOK = 0 | 
|---|
|  |  |  | self.ItemLibCount = 0 | 
|---|
|  |  |  | self.ItemLibList = list() | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def GetLength(self): | 
|---|
|  |  |  | length = 0 | 
|---|
|  |  |  | length += self.Head.GetLength() | 
|---|
|  |  |  | length += 1 | 
|---|
|  |  |  | length += 10 | 
|---|
|  |  |  | length += 10 | 
|---|
|  |  |  | length += 1 | 
|---|
|  |  |  | length += 2 | 
|---|
|  |  |  | length += 1 | 
|---|
|  |  |  | length += 1 | 
|---|
|  |  |  | length += 4 * self.CostMoneyValueCount | 
|---|
|  |  |  | length += 1 | 
|---|
|  |  |  | length += 1 | 
|---|
|  |  |  | length += 4 * self.PrizeMoneyValueCount | 
|---|
|  |  |  | length += 1 | 
|---|
|  |  |  | length += 1 | 
|---|
|  |  |  | length += 1 | 
|---|
|  |  |  | length += 1 | 
|---|
|  |  |  | for i in range(self.ItemLibCount): | 
|---|
|  |  |  | length += self.ItemLibList[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.WriteBYTE(data, self.IsDayReset) | 
|---|
|  |  |  | data = CommFunc.WriteWORD(data, self.LimitLV) | 
|---|
|  |  |  | data = CommFunc.WriteBYTE(data, self.CostMoneyType) | 
|---|
|  |  |  | data = CommFunc.WriteBYTE(data, self.CostMoneyValueCount) | 
|---|
|  |  |  | for i in range(self.CostMoneyValueCount): | 
|---|
|  |  |  | data = CommFunc.WriteDWORD(data, self.CostMoneyValueList[i]) | 
|---|
|  |  |  | data = CommFunc.WriteBYTE(data, self.PrizeMoneyType) | 
|---|
|  |  |  | data = CommFunc.WriteBYTE(data, self.PrizeMoneyValueCount) | 
|---|
|  |  |  | for i in range(self.PrizeMoneyValueCount): | 
|---|
|  |  |  | data = CommFunc.WriteDWORD(data, self.PrizeMoneyValueList[i]) | 
|---|
|  |  |  | data = CommFunc.WriteBYTE(data, self.ResetLimitTimes) | 
|---|
|  |  |  | data = CommFunc.WriteBYTE(data, self.ResetCountMax) | 
|---|
|  |  |  | data = CommFunc.WriteBYTE(data, self.IsAwardPoolOK) | 
|---|
|  |  |  | data = CommFunc.WriteBYTE(data, self.ItemLibCount) | 
|---|
|  |  |  | for i in range(self.ItemLibCount): | 
|---|
|  |  |  | data = CommFunc.WriteString(data, self.ItemLibList[i].GetLength(), self.ItemLibList[i].GetBuffer()) | 
|---|
|  |  |  | return data | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def OutputString(self): | 
|---|
|  |  |  | DumpString = ''' | 
|---|
|  |  |  | Head:%s, | 
|---|
|  |  |  | ActNum:%d, | 
|---|
|  |  |  | StartDate:%s, | 
|---|
|  |  |  | EndtDate:%s, | 
|---|
|  |  |  | IsDayReset:%d, | 
|---|
|  |  |  | LimitLV:%d, | 
|---|
|  |  |  | CostMoneyType:%d, | 
|---|
|  |  |  | CostMoneyValueCount:%d, | 
|---|
|  |  |  | CostMoneyValueList:%s, | 
|---|
|  |  |  | PrizeMoneyType:%d, | 
|---|
|  |  |  | PrizeMoneyValueCount:%d, | 
|---|
|  |  |  | PrizeMoneyValueList:%s, | 
|---|
|  |  |  | ResetLimitTimes:%d, | 
|---|
|  |  |  | ResetCountMax:%d, | 
|---|
|  |  |  | IsAwardPoolOK:%d, | 
|---|
|  |  |  | ItemLibCount:%d, | 
|---|
|  |  |  | ItemLibList:%s | 
|---|
|  |  |  | '''\ | 
|---|
|  |  |  | %( | 
|---|
|  |  |  | self.Head.OutputString(), | 
|---|
|  |  |  | self.ActNum, | 
|---|
|  |  |  | self.StartDate, | 
|---|
|  |  |  | self.EndtDate, | 
|---|
|  |  |  | self.IsDayReset, | 
|---|
|  |  |  | self.LimitLV, | 
|---|
|  |  |  | self.CostMoneyType, | 
|---|
|  |  |  | self.CostMoneyValueCount, | 
|---|
|  |  |  | "...", | 
|---|
|  |  |  | self.PrizeMoneyType, | 
|---|
|  |  |  | self.PrizeMoneyValueCount, | 
|---|
|  |  |  | "...", | 
|---|
|  |  |  | self.ResetLimitTimes, | 
|---|
|  |  |  | self.ResetCountMax, | 
|---|
|  |  |  | self.IsAwardPoolOK, | 
|---|
|  |  |  | self.ItemLibCount, | 
|---|
|  |  |  | "..." | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | return DumpString | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | m_NAtagMCActGodGiftInfo=tagMCActGodGiftInfo() | 
|---|
|  |  |  | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActGodGiftInfo.Head.Cmd,m_NAtagMCActGodGiftInfo.Head.SubCmd))] = m_NAtagMCActGodGiftInfo | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #------------------------------------------------------ | 
|---|
|  |  |  | # AA 61 天帝礼包活动玩家信息 #tagMCActGodGiftPlayerInfo | 
|---|
|  |  |  |  | 
|---|
|  |  |  | class  tagMCActGodGiftAwardItem(Structure): | 
|---|
|  |  |  | _pack_ = 1 | 
|---|
|  |  |  | _fields_ = [ | 
|---|
|  |  |  | ("ItemLibType", c_ubyte),    #物品库类型 | 
|---|
|  |  |  | ("ItemNum", 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.ItemLibType = 0 | 
|---|
|  |  |  | self.ItemNum = 0 | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def GetLength(self): | 
|---|
|  |  |  | return sizeof(tagMCActGodGiftAwardItem) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def GetBuffer(self): | 
|---|
|  |  |  | return string_at(addressof(self), self.GetLength()) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def OutputString(self): | 
|---|
|  |  |  | DumpString = '''// AA 61 天帝礼包活动玩家信息 //tagMCActGodGiftPlayerInfo: | 
|---|
|  |  |  | ItemLibType:%d, | 
|---|
|  |  |  | ItemNum:%d | 
|---|
|  |  |  | '''\ | 
|---|
|  |  |  | %( | 
|---|
|  |  |  | self.ItemLibType, | 
|---|
|  |  |  | self.ItemNum | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | return DumpString | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | class  tagMCActGodGiftPlayerInfo(Structure): | 
|---|
|  |  |  | Head = tagHead() | 
|---|
|  |  |  | ActNum = 0    #(BYTE ActNum)// 活动编号 | 
|---|
|  |  |  | ResetCount = 0    #(BYTE ResetCount)// 本次活动已重置次数 | 
|---|
|  |  |  | AwardItemCount = 0    #(BYTE AwardItemCount)// 本次奖池已抽中奖品个数,也代表本次奖池已抽奖次数 | 
|---|
|  |  |  | AwardItemList = list()    #(vector<tagMCActGodGiftAwardItem> AwardItemList)// 本次奖池已抽中物品列表 | 
|---|
|  |  |  | data = None | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def __init__(self): | 
|---|
|  |  |  | self.Clear() | 
|---|
|  |  |  | self.Head.Cmd = 0xAA | 
|---|
|  |  |  | self.Head.SubCmd = 0x61 | 
|---|
|  |  |  | 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.ResetCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) | 
|---|
|  |  |  | self.AwardItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) | 
|---|
|  |  |  | for i in range(self.AwardItemCount): | 
|---|
|  |  |  | temAwardItemList = tagMCActGodGiftAwardItem() | 
|---|
|  |  |  | _pos = temAwardItemList.ReadData(_lpData, _pos) | 
|---|
|  |  |  | self.AwardItemList.append(temAwardItemList) | 
|---|
|  |  |  | return _pos | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def Clear(self): | 
|---|
|  |  |  | self.Head = tagHead() | 
|---|
|  |  |  | self.Head.Clear() | 
|---|
|  |  |  | self.Head.Cmd = 0xAA | 
|---|
|  |  |  | self.Head.SubCmd = 0x61 | 
|---|
|  |  |  | self.ActNum = 0 | 
|---|
|  |  |  | self.ResetCount = 0 | 
|---|
|  |  |  | self.AwardItemCount = 0 | 
|---|
|  |  |  | self.AwardItemList = list() | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def GetLength(self): | 
|---|
|  |  |  | length = 0 | 
|---|
|  |  |  | length += self.Head.GetLength() | 
|---|
|  |  |  | length += 1 | 
|---|
|  |  |  | length += 1 | 
|---|
|  |  |  | length += 1 | 
|---|
|  |  |  | for i in range(self.AwardItemCount): | 
|---|
|  |  |  | length += self.AwardItemList[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.ResetCount) | 
|---|
|  |  |  | 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 = ''' | 
|---|
|  |  |  | Head:%s, | 
|---|
|  |  |  | ActNum:%d, | 
|---|
|  |  |  | ResetCount:%d, | 
|---|
|  |  |  | AwardItemCount:%d, | 
|---|
|  |  |  | AwardItemList:%s | 
|---|
|  |  |  | '''\ | 
|---|
|  |  |  | %( | 
|---|
|  |  |  | self.Head.OutputString(), | 
|---|
|  |  |  | self.ActNum, | 
|---|
|  |  |  | self.ResetCount, | 
|---|
|  |  |  | self.AwardItemCount, | 
|---|
|  |  |  | "..." | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | return DumpString | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | m_NAtagMCActGodGiftPlayerInfo=tagMCActGodGiftPlayerInfo() | 
|---|
|  |  |  | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActGodGiftPlayerInfo.Head.Cmd,m_NAtagMCActGodGiftPlayerInfo.Head.SubCmd))] = m_NAtagMCActGodGiftPlayerInfo | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #------------------------------------------------------ | 
|---|
|  |  |  | # AA 31 成长必买活动信息 #tagMCActGrowupBuyInfo | 
|---|
|  |  |  |  | 
|---|
|  |  |  | class  tagMCActGrowupBuyCTGItem(Structure): | 
|---|