From 29a5e154e1628b11815ee5524f54daa9f7069a4f Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 25 三月 2021 15:01:06 +0800
Subject: [PATCH] 8877 【主干】【BT2】节日游历任务ID支持绝世寻宝(boss复活、仙界盛典、节日游历都支持)

---
 ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py |  594 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 592 insertions(+), 2 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
index ed0706d..f8fea6c 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -346,6 +346,7 @@
                   ("NowMinute", c_ubyte),    
                   ("NowSecond", c_ubyte),    
                   ("NowMicSecond", c_int),    
+                  ("WeekOfYear", c_ubyte),    #一年中的第几周
                   ]
 
     def __init__(self):
@@ -373,6 +374,7 @@
         self.NowMinute = 0
         self.NowSecond = 0
         self.NowMicSecond = 0
+        self.WeekOfYear = 0
         return
 
     def GetLength(self):
@@ -395,7 +397,8 @@
                                 NowHour:%d,
                                 NowMinute:%d,
                                 NowSecond:%d,
-                                NowMicSecond:%d
+                                NowMicSecond:%d,
+                                WeekOfYear:%d
                                 '''\
                                 %(
                                 self.Cmd,
@@ -410,7 +413,8 @@
                                 self.NowHour,
                                 self.NowMinute,
                                 self.NowSecond,
-                                self.NowMicSecond
+                                self.NowMicSecond,
+                                self.WeekOfYear
                                 )
         return DumpString
 
@@ -24733,6 +24737,7 @@
     Head = tagHead()
     StartDate = ""    #(char StartDate[10])// 开始日期 y-m-d
     EndtDate = ""    #(char EndtDate[10])// 结束日期 y-m-d
+    LimitLV = 0    #(WORD LimitLV)// 限制等级
     GroupCount = 0    #(BYTE GroupCount)// 循环购买礼包组数
     GroupList = list()    #(vector<tagMCActGrowupBuyGroup> GroupList)//循环购买礼包组列表
     data = None
@@ -24748,6 +24753,7 @@
         _pos = self.Head.ReadData(_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.GroupCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         for i in range(self.GroupCount):
             temGroupList = tagMCActGrowupBuyGroup()
@@ -24762,6 +24768,7 @@
         self.Head.SubCmd = 0x31
         self.StartDate = ""
         self.EndtDate = ""
+        self.LimitLV = 0
         self.GroupCount = 0
         self.GroupList = list()
         return
@@ -24771,6 +24778,7 @@
         length += self.Head.GetLength()
         length += 10
         length += 10
+        length += 2
         length += 1
         for i in range(self.GroupCount):
             length += self.GroupList[i].GetLength()
@@ -24782,6 +24790,7 @@
         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.WriteWORD(data, self.LimitLV)
         data = CommFunc.WriteBYTE(data, self.GroupCount)
         for i in range(self.GroupCount):
             data = CommFunc.WriteString(data, self.GroupList[i].GetLength(), self.GroupList[i].GetBuffer())
@@ -24792,6 +24801,7 @@
                                 Head:%s,
                                 StartDate:%s,
                                 EndtDate:%s,
+                                LimitLV:%d,
                                 GroupCount:%d,
                                 GroupList:%s
                                 '''\
@@ -24799,6 +24809,7 @@
                                 self.Head.OutputString(),
                                 self.StartDate,
                                 self.EndtDate,
+                                self.LimitLV,
                                 self.GroupCount,
                                 "..."
                                 )
@@ -25237,6 +25248,308 @@
 
 
 #------------------------------------------------------
+# AA 48 多日连充活动信息 #tagMCActManyDayRechargeInfo
+
+class  tagMCActManyDayRechargeItem(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(tagMCActManyDayRechargeItem)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// AA 48 多日连充活动信息 //tagMCActManyDayRechargeInfo:
+                                ItemID:%d,
+                                ItemCount:%d,
+                                IsBind:%d
+                                '''\
+                                %(
+                                self.ItemID,
+                                self.ItemCount,
+                                self.IsBind
+                                )
+        return DumpString
+
+
+class  tagMCActManyDayRechargeAward(Structure):
+    AwardIndex = 0    #(BYTE AwardIndex)// 奖励索引 0~31
+    NeedRecharge = 0    #(DWORD NeedRecharge)// 单天所需充值额度
+    NeedDays = 0    #(BYTE NeedDays)// 所需充值天数
+    AwardItemCount = 0    #(BYTE AwardItemCount)
+    AwardItemList = list()    #(vector<tagMCActManyDayRechargeItem> 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.NeedRecharge,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.NeedDays,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.AwardItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.AwardItemCount):
+            temAwardItemList = tagMCActManyDayRechargeItem()
+            _pos = temAwardItemList.ReadData(_lpData, _pos)
+            self.AwardItemList.append(temAwardItemList)
+        return _pos
+
+    def Clear(self):
+        self.AwardIndex = 0
+        self.NeedRecharge = 0
+        self.NeedDays = 0
+        self.AwardItemCount = 0
+        self.AwardItemList = list()
+        return
+
+    def GetLength(self):
+        length = 0
+        length += 1
+        length += 4
+        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.WriteDWORD(data, self.NeedRecharge)
+        data = CommFunc.WriteBYTE(data, self.NeedDays)
+        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,
+                                NeedRecharge:%d,
+                                NeedDays:%d,
+                                AwardItemCount:%d,
+                                AwardItemList:%s
+                                '''\
+                                %(
+                                self.AwardIndex,
+                                self.NeedRecharge,
+                                self.NeedDays,
+                                self.AwardItemCount,
+                                "..."
+                                )
+        return DumpString
+
+
+class  tagMCActManyDayRechargeInfo(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)// 限制等级
+    AwardCount = 0    #(BYTE AwardCount)
+    AwardList = list()    #(vector<tagMCActManyDayRechargeAward> AwardList)// 奖励信息列表
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        self.Head.Cmd = 0xAA
+        self.Head.SubCmd = 0x48
+        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.AwardCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.AwardCount):
+            temAwardList = tagMCActManyDayRechargeAward()
+            _pos = temAwardList.ReadData(_lpData, _pos)
+            self.AwardList.append(temAwardList)
+        return _pos
+
+    def Clear(self):
+        self.Head = tagHead()
+        self.Head.Clear()
+        self.Head.Cmd = 0xAA
+        self.Head.SubCmd = 0x48
+        self.ActNum = 0
+        self.StartDate = ""
+        self.EndtDate = ""
+        self.LimitLV = 0
+        self.AwardCount = 0
+        self.AwardList = list()
+        return
+
+    def GetLength(self):
+        length = 0
+        length += self.Head.GetLength()
+        length += 1
+        length += 10
+        length += 10
+        length += 2
+        length += 1
+        for i in range(self.AwardCount):
+            length += self.AwardList[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.AwardCount)
+        for i in range(self.AwardCount):
+            data = CommFunc.WriteString(data, self.AwardList[i].GetLength(), self.AwardList[i].GetBuffer())
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                Head:%s,
+                                ActNum:%d,
+                                StartDate:%s,
+                                EndtDate:%s,
+                                LimitLV:%d,
+                                AwardCount:%d,
+                                AwardList:%s
+                                '''\
+                                %(
+                                self.Head.OutputString(),
+                                self.ActNum,
+                                self.StartDate,
+                                self.EndtDate,
+                                self.LimitLV,
+                                self.AwardCount,
+                                "..."
+                                )
+        return DumpString
+
+
+m_NAtagMCActManyDayRechargeInfo=tagMCActManyDayRechargeInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActManyDayRechargeInfo.Head.Cmd,m_NAtagMCActManyDayRechargeInfo.Head.SubCmd))] = m_NAtagMCActManyDayRechargeInfo
+
+
+#------------------------------------------------------
+# AA 49 多日连充活动玩家信息 #tagMCActManyDayRechargePlayerInfo
+
+class  tagMCActManyDayRechargePlayerInfo(Structure):
+    Head = tagHead()
+    ActNum = 0    #(BYTE ActNum)//活动编号
+    Days = 0    #(BYTE Days)
+    DayRechargeValues = list()    #(vector<DWORD> DayRechargeValues)//活动每天充值列表
+    RecordCount = 0    #(BYTE RecordCount)
+    AwardRecord = list()    #(vector<DWORD> AwardRecord)//奖励领奖记录,按奖励索引二进制位存储是否已领取
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        self.Head.Cmd = 0xAA
+        self.Head.SubCmd = 0x49
+        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.Days,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.Days):
+            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
+            self.DayRechargeValues.append(value)
+        self.RecordCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.RecordCount):
+            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
+            self.AwardRecord.append(value)
+        return _pos
+
+    def Clear(self):
+        self.Head = tagHead()
+        self.Head.Clear()
+        self.Head.Cmd = 0xAA
+        self.Head.SubCmd = 0x49
+        self.ActNum = 0
+        self.Days = 0
+        self.DayRechargeValues = list()
+        self.RecordCount = 0
+        self.AwardRecord = list()
+        return
+
+    def GetLength(self):
+        length = 0
+        length += self.Head.GetLength()
+        length += 1
+        length += 1
+        length += 4 * self.Days
+        length += 1
+        length += 4 * self.RecordCount
+
+        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.Days)
+        for i in range(self.Days):
+            data = CommFunc.WriteDWORD(data, self.DayRechargeValues[i])
+        data = CommFunc.WriteBYTE(data, self.RecordCount)
+        for i in range(self.RecordCount):
+            data = CommFunc.WriteDWORD(data, self.AwardRecord[i])
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                Head:%s,
+                                ActNum:%d,
+                                Days:%d,
+                                DayRechargeValues:%s,
+                                RecordCount:%d,
+                                AwardRecord:%s
+                                '''\
+                                %(
+                                self.Head.OutputString(),
+                                self.ActNum,
+                                self.Days,
+                                "...",
+                                self.RecordCount,
+                                "..."
+                                )
+        return DumpString
+
+
+m_NAtagMCActManyDayRechargePlayerInfo=tagMCActManyDayRechargePlayerInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActManyDayRechargePlayerInfo.Head.Cmd,m_NAtagMCActManyDayRechargePlayerInfo.Head.SubCmd))] = m_NAtagMCActManyDayRechargePlayerInfo
+
+
+#------------------------------------------------------
 # AA 27 充值返利活动信息 #tagMCActRechargePrizeInfo
 
 class  tagMCActRechargePrize(Structure):
@@ -25336,6 +25649,7 @@
     Head = tagHead()
     StartDate = ""    #(char StartDate[10])// 开始日期 y-m-d
     EndtDate = ""    #(char EndtDate[10])// 结束日期 y-m-d
+    LimitLV = 0    #(WORD LimitLV)// 限制等级
     IsDayReset = 0    #(BYTE IsDayReset)//是否每天重置
     PrizeDays = 0    #(BYTE PrizeDays)
     PrizeDayInfo = list()    #(vector<tagMCActRechargePrizeDay> PrizeDayInfo)//每天对应信息; 如果只有一天,但是活动有多天,则代表每天奖励都一样
@@ -25352,6 +25666,7 @@
         _pos = self.Head.ReadData(_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.IsDayReset,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         self.PrizeDays,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         for i in range(self.PrizeDays):
@@ -25367,6 +25682,7 @@
         self.Head.SubCmd = 0x27
         self.StartDate = ""
         self.EndtDate = ""
+        self.LimitLV = 0
         self.IsDayReset = 0
         self.PrizeDays = 0
         self.PrizeDayInfo = list()
@@ -25377,6 +25693,7 @@
         length += self.Head.GetLength()
         length += 10
         length += 10
+        length += 2
         length += 1
         length += 1
         for i in range(self.PrizeDays):
@@ -25389,6 +25706,7 @@
         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.WriteWORD(data, self.LimitLV)
         data = CommFunc.WriteBYTE(data, self.IsDayReset)
         data = CommFunc.WriteBYTE(data, self.PrizeDays)
         for i in range(self.PrizeDays):
@@ -25400,6 +25718,7 @@
                                 Head:%s,
                                 StartDate:%s,
                                 EndtDate:%s,
+                                LimitLV:%d,
                                 IsDayReset:%d,
                                 PrizeDays:%d,
                                 PrizeDayInfo:%s
@@ -25408,6 +25727,7 @@
                                 self.Head.OutputString(),
                                 self.StartDate,
                                 self.EndtDate,
+                                self.LimitLV,
                                 self.IsDayReset,
                                 self.PrizeDays,
                                 "..."
@@ -25417,6 +25737,196 @@
 
 m_NAtagMCActRechargePrizeInfo=tagMCActRechargePrizeInfo()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActRechargePrizeInfo.Head.Cmd,m_NAtagMCActRechargePrizeInfo.Head.SubCmd))] = m_NAtagMCActRechargePrizeInfo
+
+
+#------------------------------------------------------
+# AA 29 累计充值返利仙玉活动信息 #tagMCActRechargeRebateGoldInfo
+
+class  tagMCActRechargeRebate(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("RMBMin", c_int),    # 充值RMB最小值
+                  ("RMBMax", c_int),    # 充值RMB最大值,0代表无上限
+                  ("RebateRate", 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.RMBMin = 0
+        self.RMBMax = 0
+        self.RebateRate = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagMCActRechargeRebate)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// AA 29 累计充值返利仙玉活动信息 //tagMCActRechargeRebateGoldInfo:
+                                RMBMin:%d,
+                                RMBMax:%d,
+                                RebateRate:%d
+                                '''\
+                                %(
+                                self.RMBMin,
+                                self.RMBMax,
+                                self.RebateRate
+                                )
+        return DumpString
+
+
+class  tagMCActRechargeRebateDay(Structure):
+    Rebates = 0    #(BYTE Rebates)// 返利档数
+    RebateInfo = list()    #(vector<tagMCActRechargeRebate> RebateInfo)// 返利档信息
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        self.Rebates,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.Rebates):
+            temRebateInfo = tagMCActRechargeRebate()
+            _pos = temRebateInfo.ReadData(_lpData, _pos)
+            self.RebateInfo.append(temRebateInfo)
+        return _pos
+
+    def Clear(self):
+        self.Rebates = 0
+        self.RebateInfo = list()
+        return
+
+    def GetLength(self):
+        length = 0
+        length += 1
+        for i in range(self.Rebates):
+            length += self.RebateInfo[i].GetLength()
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteBYTE(data, self.Rebates)
+        for i in range(self.Rebates):
+            data = CommFunc.WriteString(data, self.RebateInfo[i].GetLength(), self.RebateInfo[i].GetBuffer())
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                Rebates:%d,
+                                RebateInfo:%s
+                                '''\
+                                %(
+                                self.Rebates,
+                                "..."
+                                )
+        return DumpString
+
+
+class  tagMCActRechargeRebateGoldInfo(Structure):
+    Head = tagHead()
+    StartDate = ""    #(char StartDate[10])// 开始日期 y-m-d
+    EndtDate = ""    #(char EndtDate[10])// 结束日期 y-m-d
+    LimitLV = 0    #(WORD LimitLV)// 限制等级
+    IsDayReset = 0    #(BYTE IsDayReset)//是否每天重置
+    RebateDays = 0    #(BYTE RebateDays)
+    RebateDayInfo = list()    #(vector<tagMCActRechargeRebateDay> RebateDayInfo)//每天对应信息; 如果只有一天,但是活动有多天,则代表每天奖励都一样
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        self.Head.Cmd = 0xAA
+        self.Head.SubCmd = 0x29
+        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.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.IsDayReset,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.RebateDays,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.RebateDays):
+            temRebateDayInfo = tagMCActRechargeRebateDay()
+            _pos = temRebateDayInfo.ReadData(_lpData, _pos)
+            self.RebateDayInfo.append(temRebateDayInfo)
+        return _pos
+
+    def Clear(self):
+        self.Head = tagHead()
+        self.Head.Clear()
+        self.Head.Cmd = 0xAA
+        self.Head.SubCmd = 0x29
+        self.StartDate = ""
+        self.EndtDate = ""
+        self.LimitLV = 0
+        self.IsDayReset = 0
+        self.RebateDays = 0
+        self.RebateDayInfo = list()
+        return
+
+    def GetLength(self):
+        length = 0
+        length += self.Head.GetLength()
+        length += 10
+        length += 10
+        length += 2
+        length += 1
+        length += 1
+        for i in range(self.RebateDays):
+            length += self.RebateDayInfo[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.WriteWORD(data, self.LimitLV)
+        data = CommFunc.WriteBYTE(data, self.IsDayReset)
+        data = CommFunc.WriteBYTE(data, self.RebateDays)
+        for i in range(self.RebateDays):
+            data = CommFunc.WriteString(data, self.RebateDayInfo[i].GetLength(), self.RebateDayInfo[i].GetBuffer())
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                Head:%s,
+                                StartDate:%s,
+                                EndtDate:%s,
+                                LimitLV:%d,
+                                IsDayReset:%d,
+                                RebateDays:%d,
+                                RebateDayInfo:%s
+                                '''\
+                                %(
+                                self.Head.OutputString(),
+                                self.StartDate,
+                                self.EndtDate,
+                                self.LimitLV,
+                                self.IsDayReset,
+                                self.RebateDays,
+                                "..."
+                                )
+        return DumpString
+
+
+m_NAtagMCActRechargeRebateGoldInfo=tagMCActRechargeRebateGoldInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActRechargeRebateGoldInfo.Head.Cmd,m_NAtagMCActRechargeRebateGoldInfo.Head.SubCmd))] = m_NAtagMCActRechargeRebateGoldInfo
 
 
 #------------------------------------------------------
@@ -27120,6 +27630,7 @@
 
 class  tagMCDailyGiftbagInfo(Structure):
     Head = tagHead()
+    LimitLV = 0    #(WORD LimitLV)// 限制等级
     GiftbagCount = 0    #(BYTE GiftbagCount)// 礼包数
     GiftbagInfo = list()    #(vector<tagMCDailyGiftbag> GiftbagInfo)// 礼包信息
     data = None
@@ -27133,6 +27644,7 @@
     def ReadData(self, _lpData, _pos=0, _Len=0):
         self.Clear()
         _pos = self.Head.ReadData(_lpData, _pos)
+        self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
         self.GiftbagCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         for i in range(self.GiftbagCount):
             temGiftbagInfo = tagMCDailyGiftbag()
@@ -27145,6 +27657,7 @@
         self.Head.Clear()
         self.Head.Cmd = 0xAA
         self.Head.SubCmd = 0x25
+        self.LimitLV = 0
         self.GiftbagCount = 0
         self.GiftbagInfo = list()
         return
@@ -27152,6 +27665,7 @@
     def GetLength(self):
         length = 0
         length += self.Head.GetLength()
+        length += 2
         length += 1
         for i in range(self.GiftbagCount):
             length += self.GiftbagInfo[i].GetLength()
@@ -27161,6 +27675,7 @@
     def GetBuffer(self):
         data = ''
         data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+        data = CommFunc.WriteWORD(data, self.LimitLV)
         data = CommFunc.WriteBYTE(data, self.GiftbagCount)
         for i in range(self.GiftbagCount):
             data = CommFunc.WriteString(data, self.GiftbagInfo[i].GetLength(), self.GiftbagInfo[i].GetBuffer())
@@ -27169,11 +27684,13 @@
     def OutputString(self):
         DumpString = '''
                                 Head:%s,
+                                LimitLV:%d,
                                 GiftbagCount:%d,
                                 GiftbagInfo:%s
                                 '''\
                                 %(
                                 self.Head.OutputString(),
+                                self.LimitLV,
                                 self.GiftbagCount,
                                 "..."
                                 )
@@ -27451,6 +27968,7 @@
     Head = tagHead()
     StartDate = ""    #(char StartDate[10])// 开始日期 y-m-d
     EndtDate = ""    #(char EndtDate[10])// 结束日期 y-m-d
+    LimitLV = 0    #(WORD LimitLV)// 限制等级
     DayCount = 0    #(BYTE DayCount)// 总共几天
     DayAwardList = list()    #(vector<tagMCFeastLoginDayAward> DayAwardList)//登录天奖励列表
     data = None
@@ -27466,6 +27984,7 @@
         _pos = self.Head.ReadData(_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.DayCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         for i in range(self.DayCount):
             temDayAwardList = tagMCFeastLoginDayAward()
@@ -27480,6 +27999,7 @@
         self.Head.SubCmd = 0x42
         self.StartDate = ""
         self.EndtDate = ""
+        self.LimitLV = 0
         self.DayCount = 0
         self.DayAwardList = list()
         return
@@ -27489,6 +28009,7 @@
         length += self.Head.GetLength()
         length += 10
         length += 10
+        length += 2
         length += 1
         for i in range(self.DayCount):
             length += self.DayAwardList[i].GetLength()
@@ -27500,6 +28021,7 @@
         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.WriteWORD(data, self.LimitLV)
         data = CommFunc.WriteBYTE(data, self.DayCount)
         for i in range(self.DayCount):
             data = CommFunc.WriteString(data, self.DayAwardList[i].GetLength(), self.DayAwardList[i].GetBuffer())
@@ -27510,6 +28032,7 @@
                                 Head:%s,
                                 StartDate:%s,
                                 EndtDate:%s,
+                                LimitLV:%d,
                                 DayCount:%d,
                                 DayAwardList:%s
                                 '''\
@@ -27517,6 +28040,7 @@
                                 self.Head.OutputString(),
                                 self.StartDate,
                                 self.EndtDate,
+                                self.LimitLV,
                                 self.DayCount,
                                 "..."
                                 )
@@ -27751,6 +28275,7 @@
     Head = tagHead()
     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点重置
     TravelTaskCount = 0    #(BYTE TravelTaskCount)// 游历任务数
     TravelTaskList = list()    #(vector<tagMCFeastTravelTask> TravelTaskList)//游历任务信息列表
@@ -27769,6 +28294,7 @@
         _pos = self.Head.ReadData(_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.TravelTaskCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         for i in range(self.TravelTaskCount):
@@ -27789,6 +28315,7 @@
         self.Head.SubCmd = 0x46
         self.StartDate = ""
         self.EndtDate = ""
+        self.LimitLV = 0
         self.ResetType = 0
         self.TravelTaskCount = 0
         self.TravelTaskList = list()
@@ -27801,6 +28328,7 @@
         length += self.Head.GetLength()
         length += 10
         length += 10
+        length += 2
         length += 1
         length += 1
         for i in range(self.TravelTaskCount):
@@ -27816,6 +28344,7 @@
         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.WriteWORD(data, self.LimitLV)
         data = CommFunc.WriteBYTE(data, self.ResetType)
         data = CommFunc.WriteBYTE(data, self.TravelTaskCount)
         for i in range(self.TravelTaskCount):
@@ -27830,6 +28359,7 @@
                                 Head:%s,
                                 StartDate:%s,
                                 EndtDate:%s,
+                                LimitLV:%d,
                                 ResetType:%d,
                                 TravelTaskCount:%d,
                                 TravelTaskList:%s,
@@ -27840,6 +28370,7 @@
                                 self.Head.OutputString(),
                                 self.StartDate,
                                 self.EndtDate,
+                                self.LimitLV,
                                 self.ResetType,
                                 self.TravelTaskCount,
                                 "...",
@@ -28667,6 +29198,7 @@
     Head = tagHead()
     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点重置
     WishPoolShowCount = 0    #(BYTE WishPoolShowCount)//祝福池展示物品数
     WishPoolShowItemList = list()    #(vector<DWORD> WishPoolShowItemList)//祝福池展示物品ID列表
@@ -28685,6 +29217,7 @@
         _pos = self.Head.ReadData(_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.WishPoolShowCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         for i in range(self.WishPoolShowCount):
@@ -28704,6 +29237,7 @@
         self.Head.SubCmd = 0x43
         self.StartDate = ""
         self.EndtDate = ""
+        self.LimitLV = 0
         self.ResetType = 0
         self.WishPoolShowCount = 0
         self.WishPoolShowItemList = list()
@@ -28716,6 +29250,7 @@
         length += self.Head.GetLength()
         length += 10
         length += 10
+        length += 2
         length += 1
         length += 1
         length += 4 * self.WishPoolShowCount
@@ -28730,6 +29265,7 @@
         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.WriteWORD(data, self.LimitLV)
         data = CommFunc.WriteBYTE(data, self.ResetType)
         data = CommFunc.WriteBYTE(data, self.WishPoolShowCount)
         for i in range(self.WishPoolShowCount):
@@ -28744,6 +29280,7 @@
                                 Head:%s,
                                 StartDate:%s,
                                 EndtDate:%s,
+                                LimitLV:%d,
                                 ResetType:%d,
                                 WishPoolShowCount:%d,
                                 WishPoolShowItemList:%s,
@@ -28754,6 +29291,7 @@
                                 self.Head.OutputString(),
                                 self.StartDate,
                                 self.EndtDate,
+                                self.LimitLV,
                                 self.ResetType,
                                 self.WishPoolShowCount,
                                 "...",
@@ -30467,6 +31005,58 @@
 
 
 #------------------------------------------------------
+# AA 30 累计充值返利仙玉玩家活动信息 #tagMCRechargeRebateGoldPlayerInfo
+
+class  tagMCRechargeRebateGoldPlayerInfo(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("RechargeRMBTotal", c_int),    # 活动已累计充值RMB
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xAA
+        self.SubCmd = 0x30
+        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 = 0x30
+        self.RechargeRMBTotal = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagMCRechargeRebateGoldPlayerInfo)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// AA 30 累计充值返利仙玉玩家活动信息 //tagMCRechargeRebateGoldPlayerInfo:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                RechargeRMBTotal:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.RechargeRMBTotal
+                                )
+        return DumpString
+
+
+m_NAtagMCRechargeRebateGoldPlayerInfo=tagMCRechargeRebateGoldPlayerInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCRechargeRebateGoldPlayerInfo.Cmd,m_NAtagMCRechargeRebateGoldPlayerInfo.SubCmd))] = m_NAtagMCRechargeRebateGoldPlayerInfo
+
+
+#------------------------------------------------------
 # AA 11 限时特惠活动信息 #tagMCSpringSaleInfo
 
 class  tagMCSpringSaleItem(Structure):

--
Gitblit v1.8.0