| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 57 垃圾收集活动玩家信息 #tagMCActGarbagePlayerInfo
|
| | |
|
| | | class tagMCActGarbageAwardItemResult(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("ItemLibType", c_ubyte), #物品库类型;9-固定为大奖库,非9-策划自定义库
|
| | | ("ItemID", c_int), # 注意: 不同库物品ID可能相同,但个数不同
|
| | | ("ItemCount", c_ushort), |
| | | ("PosNum", c_ubyte), # 被抽中时的位置编号,1~99,前端自定义展示位置编号,0代表未被抽中;
|
| | | ("TotalTimesNow", c_ubyte), #当前已产出次数,不限制次数时不记录,即同样为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.ItemLibType = 0
|
| | | self.ItemID = 0
|
| | | self.ItemCount = 0
|
| | | self.PosNum = 0
|
| | | self.TotalTimesNow = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCActGarbageAwardItemResult)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// AA 57 垃圾收集活动玩家信息 //tagMCActGarbagePlayerInfo:
|
| | | ItemLibType:%d,
|
| | | ItemID:%d,
|
| | | ItemCount:%d,
|
| | | PosNum:%d,
|
| | | TotalTimesNow:%d
|
| | | '''\
|
| | | %(
|
| | | self.ItemLibType,
|
| | | self.ItemID,
|
| | | self.ItemCount,
|
| | | self.PosNum,
|
| | | self.TotalTimesNow
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCActGarbagePlayerInfo(Structure):
|
| | | Head = tagHead()
|
| | | ActNum = 0 #(BYTE ActNum)//活动编号
|
| | | GuideTaskFinish = 0 #(BYTE GuideTaskFinish)//引导任务是否已完成,有需要NPC对话引导任务时,则需要先完成才显示活动界面
|
| | | EnvironmentValue = 0 #(DWORD EnvironmentValue)//当前可用环保值
|
| | | EnvironmentValueHis = 0 #(DWORD EnvironmentValueHis)//历史环保值
|
| | | AwardItemResult=tagMCActGarbageAwardItemResult() #(tagMCActGarbageAwardItemResult AwardItemResult)//本次抽奖结果物品信息,可能为空
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x57
|
| | | 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.GuideTaskFinish,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.EnvironmentValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.EnvironmentValueHis,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | _pos = self.AwardItemResult.ReadData(_lpData,_pos)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x57
|
| | | self.ActNum = 0
|
| | | self.GuideTaskFinish = 0
|
| | | self.EnvironmentValue = 0
|
| | | self.EnvironmentValueHis = 0
|
| | | self.AwardItemResult=tagMCActGarbageAwardItemResult()
|
| | | self.AwardItemResult.Clear()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 1
|
| | | length += 1
|
| | | length += 4
|
| | | length += 4
|
| | | length += self.AwardItemResult.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.GuideTaskFinish)
|
| | | data = CommFunc.WriteDWORD(data, self.EnvironmentValue)
|
| | | data = CommFunc.WriteDWORD(data, self.EnvironmentValueHis)
|
| | | data = CommFunc.WriteString(data,self.AwardItemResult.GetLength(),self.AwardItemResult.GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | ActNum:%d,
|
| | | GuideTaskFinish:%d,
|
| | | EnvironmentValue:%d,
|
| | | EnvironmentValueHis:%d,
|
| | | AwardItemResult:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.ActNum,
|
| | | self.GuideTaskFinish,
|
| | | self.EnvironmentValue,
|
| | | self.EnvironmentValueHis,
|
| | | self.AwardItemResult.OutputString()
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCActGarbagePlayerInfo=tagMCActGarbagePlayerInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActGarbagePlayerInfo.Head.Cmd,m_NAtagMCActGarbagePlayerInfo.Head.SubCmd))] = m_NAtagMCActGarbagePlayerInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 55 垃圾收集活动信息 #tagMCActGarbageSortingInfo
|
| | |
|
| | | class tagMCActGarbageAwardItem(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("ItemLibType", c_ubyte), #物品库类型;9-固定为大奖库,非9-策划自定义库
|
| | | ("ItemID", c_int), # 注意: 不同库物品ID可能相同,但个数不同
|
| | | ("ItemCount", c_ushort), |
| | | ("PosNum", c_ubyte), # 被抽中时的位置编号,1~99,前端自定义展示位置编号,0代表未被抽中;
|
| | | ("TotalTimesNow", c_ubyte), #当前已产出次数,不限制次数时不记录,即同样为0
|
| | | ("TotalTimesMax", c_ubyte), #最大可产出次数,0不限
|
| | | ("LayerLimit", c_ubyte), #大于等于X层后可产出,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.ItemLibType = 0
|
| | | self.ItemID = 0
|
| | | self.ItemCount = 0
|
| | | self.PosNum = 0
|
| | | self.TotalTimesNow = 0
|
| | | self.TotalTimesMax = 0
|
| | | self.LayerLimit = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCActGarbageAwardItem)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// AA 55 垃圾收集活动信息 //tagMCActGarbageSortingInfo:
|
| | | ItemLibType:%d,
|
| | | ItemID:%d,
|
| | | ItemCount:%d,
|
| | | PosNum:%d,
|
| | | TotalTimesNow:%d,
|
| | | TotalTimesMax:%d,
|
| | | LayerLimit:%d
|
| | | '''\
|
| | | %(
|
| | | self.ItemLibType,
|
| | | self.ItemID,
|
| | | self.ItemCount,
|
| | | self.PosNum,
|
| | | self.TotalTimesNow,
|
| | | self.TotalTimesMax,
|
| | | self.LayerLimit
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCActGarbageSortingInfo(Structure):
|
| | | Head = tagHead()
|
| | |
| | | StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
|
| | | EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
|
| | | LimitLV = 0 #(WORD LimitLV)// 限制等级
|
| | | LayerNum = 0 #(BYTE LayerNum)//当前奖池第几层
|
| | | AwardItemCount = 0 #(BYTE AwardItemCount)
|
| | | AwardItemList = list() #(vector<tagMCActGarbageAwardItem> AwardItemList)// 奖池物品列表,已生成的,包含已选择的大奖物品
|
| | | SuperItemCount = 0 #(BYTE SuperItemCount)
|
| | | SuperItemList = list() #(vector<tagMCActGarbageAwardItem> SuperItemList)// 大奖物品待选择库,由玩家从库中选择放入奖池的物品;
|
| | | SuperItemCanChooseCount = 0 #(BYTE SuperItemCanChooseCount)// 大奖物品可选择个数
|
| | | ResetType = 0 #(BYTE ResetType)// 重置类型,0-0点重置;1-5点开,5点重置;2-5点开,0点重置
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | |
| | | self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
|
| | | self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
|
| | | self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.LayerNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.AwardItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.AwardItemCount):
|
| | | temAwardItemList = tagMCActGarbageAwardItem()
|
| | | _pos = temAwardItemList.ReadData(_lpData, _pos)
|
| | | self.AwardItemList.append(temAwardItemList)
|
| | | self.SuperItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.SuperItemCount):
|
| | | temSuperItemList = tagMCActGarbageAwardItem()
|
| | | _pos = temSuperItemList.ReadData(_lpData, _pos)
|
| | | self.SuperItemList.append(temSuperItemList)
|
| | | self.SuperItemCanChooseCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.ResetType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | |
| | | self.StartDate = ""
|
| | | self.EndtDate = ""
|
| | | self.LimitLV = 0
|
| | | self.LayerNum = 0
|
| | | self.AwardItemCount = 0
|
| | | self.AwardItemList = list()
|
| | | self.SuperItemCount = 0
|
| | | self.SuperItemList = list()
|
| | | self.SuperItemCanChooseCount = 0
|
| | | self.ResetType = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | |
| | | length += 10
|
| | | length += 10
|
| | | length += 2
|
| | | length += 1
|
| | | length += 1
|
| | | for i in range(self.AwardItemCount):
|
| | | length += self.AwardItemList[i].GetLength()
|
| | | length += 1
|
| | | for i in range(self.SuperItemCount):
|
| | | length += self.SuperItemList[i].GetLength()
|
| | | length += 1
|
| | |
|
| | | return length
|
| | |
| | | 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.LayerNum)
|
| | | data = CommFunc.WriteBYTE(data, self.AwardItemCount)
|
| | | for i in range(self.AwardItemCount):
|
| | | data = CommFunc.WriteString(data, self.AwardItemList[i].GetLength(), self.AwardItemList[i].GetBuffer())
|
| | | data = CommFunc.WriteBYTE(data, self.SuperItemCount)
|
| | | for i in range(self.SuperItemCount):
|
| | | data = CommFunc.WriteString(data, self.SuperItemList[i].GetLength(), self.SuperItemList[i].GetBuffer())
|
| | | data = CommFunc.WriteBYTE(data, self.SuperItemCanChooseCount)
|
| | | data = CommFunc.WriteBYTE(data, self.ResetType)
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | |
| | | StartDate:%s,
|
| | | EndtDate:%s,
|
| | | LimitLV:%d,
|
| | | LayerNum:%d,
|
| | | AwardItemCount:%d,
|
| | | AwardItemList:%s,
|
| | | SuperItemCount:%d,
|
| | | SuperItemList:%s,
|
| | | SuperItemCanChooseCount:%d
|
| | | ResetType:%d
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | |
| | | self.StartDate,
|
| | | self.EndtDate,
|
| | | self.LimitLV,
|
| | | self.LayerNum,
|
| | | self.AwardItemCount,
|
| | | "...",
|
| | | self.SuperItemCount,
|
| | | "...",
|
| | | self.SuperItemCanChooseCount
|
| | | self.ResetType
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 59 仙匣秘境抽奖结果 #tagMCActXianXiaMJAwardItemResult
|
| | |
|
| | | class tagMCActXianXiaMJAwardItemResult(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("ActNum", c_ubyte), # 活动编号
|
| | | ("ItemLibType", c_ubyte), #物品库类型;9-固定为大奖库,非9-策划自定义库
|
| | | ("ItemID", c_int), # 注意: 不同库物品ID可能相同,但个数不同
|
| | | ("ItemCount", c_ushort), |
| | | ("PosNum", c_ubyte), # 被抽中时的位置编号,1~99,前端自定义展示位置编号,0代表未被抽中;
|
| | | ("TotalTimesNow", c_ubyte), #当前已产出次数,不限制次数时不记录,即同样为0
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xAA
|
| | | self.SubCmd = 0x59
|
| | | 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.Cmd = 0xAA
|
| | | self.SubCmd = 0x59
|
| | | self.ActNum = 0
|
| | | self.ItemLibType = 0
|
| | | self.ItemID = 0
|
| | | self.ItemCount = 0
|
| | | self.PosNum = 0
|
| | | self.TotalTimesNow = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCActXianXiaMJAwardItemResult)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// AA 59 仙匣秘境抽奖结果 //tagMCActXianXiaMJAwardItemResult:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | ActNum:%d,
|
| | | ItemLibType:%d,
|
| | | ItemID:%d,
|
| | | ItemCount:%d,
|
| | | PosNum:%d,
|
| | | TotalTimesNow:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.ActNum,
|
| | | self.ItemLibType,
|
| | | self.ItemID,
|
| | | self.ItemCount,
|
| | | self.PosNum,
|
| | | self.TotalTimesNow
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCActXianXiaMJAwardItemResult=tagMCActXianXiaMJAwardItemResult()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActXianXiaMJAwardItemResult.Cmd,m_NAtagMCActXianXiaMJAwardItemResult.SubCmd))] = m_NAtagMCActXianXiaMJAwardItemResult
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 58 仙匣秘境活动信息 #tagMCActXianXiaMJInfo
|
| | |
|
| | | class tagMCActXianXiaMJAwardItem(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("ItemLibType", c_ubyte), #物品库类型;9-固定为大奖库,非9-策划自定义库
|
| | | ("ItemID", c_int), # 注意: 不同库物品ID可能相同,但个数不同
|
| | | ("ItemCount", c_ushort), |
| | | ("PosNum", c_ubyte), # 被抽中时的位置编号,1~99,前端自定义展示位置编号,0代表未被抽中;
|
| | | ("TotalTimesNow", c_ubyte), #当前已产出次数,不限制次数时不记录,即同样为0
|
| | | ("TotalTimesMax", c_ubyte), #最大可产出次数,0不限
|
| | | ("LayerLimit", c_ubyte), #大于等于X层后可产出,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.ItemLibType = 0
|
| | | self.ItemID = 0
|
| | | self.ItemCount = 0
|
| | | self.PosNum = 0
|
| | | self.TotalTimesNow = 0
|
| | | self.TotalTimesMax = 0
|
| | | self.LayerLimit = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCActXianXiaMJAwardItem)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// AA 58 仙匣秘境活动信息 //tagMCActXianXiaMJInfo:
|
| | | ItemLibType:%d,
|
| | | ItemID:%d,
|
| | | ItemCount:%d,
|
| | | PosNum:%d,
|
| | | TotalTimesNow:%d,
|
| | | TotalTimesMax:%d,
|
| | | LayerLimit:%d
|
| | | '''\
|
| | | %(
|
| | | self.ItemLibType,
|
| | | self.ItemID,
|
| | | self.ItemCount,
|
| | | self.PosNum,
|
| | | self.TotalTimesNow,
|
| | | self.TotalTimesMax,
|
| | | self.LayerLimit
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCActXianXiaMJInfo(Structure):
|
| | | Head = tagHead()
|
| | | ActNum = 0 #(BYTE ActNum)// 活动编号
|
| | | StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
|
| | | EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
|
| | | LimitLV = 0 #(WORD LimitLV)// 限制等级
|
| | | ResetType = 0 #(BYTE ResetType)// 重置类型,0-0点重置;1-5点开,5点重置;2-5点开,0点重置
|
| | | MoneyType = 0 #(BYTE MoneyType)//消耗货币类型
|
| | | MoneyValue = 0 #(WORD MoneyValue)//消耗货币值
|
| | | LayerNum = 0 #(BYTE LayerNum)//当前奖池第几层
|
| | | AwardItemCount = 0 #(BYTE AwardItemCount)
|
| | | AwardItemList = list() #(vector<tagMCActXianXiaMJAwardItem> AwardItemList)// 奖池物品列表,已生成的,包含已选择的大奖物品
|
| | | SuperItemCount = 0 #(BYTE SuperItemCount)
|
| | | SuperItemList = list() #(vector<tagMCActXianXiaMJAwardItem> SuperItemList)// 大奖物品待选择库,由玩家从库中选择放入奖池的物品;
|
| | | SuperItemCanChooseCount = 0 #(BYTE SuperItemCanChooseCount)// 大奖物品可选择个数
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x58
|
| | | 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.ResetType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.MoneyType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.MoneyValue,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.LayerNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.AwardItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.AwardItemCount):
|
| | | temAwardItemList = tagMCActXianXiaMJAwardItem()
|
| | | _pos = temAwardItemList.ReadData(_lpData, _pos)
|
| | | self.AwardItemList.append(temAwardItemList)
|
| | | self.SuperItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.SuperItemCount):
|
| | | temSuperItemList = tagMCActXianXiaMJAwardItem()
|
| | | _pos = temSuperItemList.ReadData(_lpData, _pos)
|
| | | self.SuperItemList.append(temSuperItemList)
|
| | | self.SuperItemCanChooseCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x58
|
| | | self.ActNum = 0
|
| | | self.StartDate = ""
|
| | | self.EndtDate = ""
|
| | | self.LimitLV = 0
|
| | | self.ResetType = 0
|
| | | self.MoneyType = 0
|
| | | self.MoneyValue = 0
|
| | | self.LayerNum = 0
|
| | | self.AwardItemCount = 0
|
| | | self.AwardItemList = list()
|
| | | self.SuperItemCount = 0
|
| | | self.SuperItemList = list()
|
| | | self.SuperItemCanChooseCount = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 1
|
| | | length += 10
|
| | | length += 10
|
| | | length += 2
|
| | | length += 1
|
| | | length += 1
|
| | | length += 2
|
| | | length += 1
|
| | | length += 1
|
| | | for i in range(self.AwardItemCount):
|
| | | length += self.AwardItemList[i].GetLength()
|
| | | length += 1
|
| | | for i in range(self.SuperItemCount):
|
| | | length += self.SuperItemList[i].GetLength()
|
| | | length += 1
|
| | |
|
| | | 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.ResetType)
|
| | | data = CommFunc.WriteBYTE(data, self.MoneyType)
|
| | | data = CommFunc.WriteWORD(data, self.MoneyValue)
|
| | | data = CommFunc.WriteBYTE(data, self.LayerNum)
|
| | | data = CommFunc.WriteBYTE(data, self.AwardItemCount)
|
| | | for i in range(self.AwardItemCount):
|
| | | data = CommFunc.WriteString(data, self.AwardItemList[i].GetLength(), self.AwardItemList[i].GetBuffer())
|
| | | data = CommFunc.WriteBYTE(data, self.SuperItemCount)
|
| | | for i in range(self.SuperItemCount):
|
| | | data = CommFunc.WriteString(data, self.SuperItemList[i].GetLength(), self.SuperItemList[i].GetBuffer())
|
| | | data = CommFunc.WriteBYTE(data, self.SuperItemCanChooseCount)
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | ActNum:%d,
|
| | | StartDate:%s,
|
| | | EndtDate:%s,
|
| | | LimitLV:%d,
|
| | | ResetType:%d,
|
| | | MoneyType:%d,
|
| | | MoneyValue:%d,
|
| | | LayerNum:%d,
|
| | | AwardItemCount:%d,
|
| | | AwardItemList:%s,
|
| | | SuperItemCount:%d,
|
| | | SuperItemList:%s,
|
| | | SuperItemCanChooseCount:%d
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.ActNum,
|
| | | self.StartDate,
|
| | | self.EndtDate,
|
| | | self.LimitLV,
|
| | | self.ResetType,
|
| | | self.MoneyType,
|
| | | self.MoneyValue,
|
| | | self.LayerNum,
|
| | | self.AwardItemCount,
|
| | | "...",
|
| | | self.SuperItemCount,
|
| | | "...",
|
| | | self.SuperItemCanChooseCount
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCActXianXiaMJInfo=tagMCActXianXiaMJInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActXianXiaMJInfo.Head.Cmd,m_NAtagMCActXianXiaMJInfo.Head.SubCmd))] = m_NAtagMCActXianXiaMJInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 15 仙界盛典全民来嗨玩家信息 #tagMCAllPeoplePartyInfo
|
| | |
|
| | | class tagMCAllPeoplePartyCount(Structure):
|