From 0edacf6bca2079c8276d8d541eb3fef561d2c20e Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 19 十月 2018 17:55:54 +0800
Subject: [PATCH] 2184 【1.1.0】【1.0.18】【主干】娲皇角色死亡同时进入下一层的bug

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py |  977 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 934 insertions(+), 43 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
index d989dba..80c8e0f 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -318,6 +318,14 @@
                   ("Day", c_ushort),    # 已开服天数,从0开始
                   ("IsMixServer", c_ubyte),    #是否是合服服务器
                   ("MixDay", c_ushort),    # 已合服天数,从0开始
+                  ("OpenWeekday", c_ubyte),    #开服是周几,1代表周一
+                  ("NowYear", c_ushort),    #服务器当前时间 - 年
+                  ("NowMonth", c_ubyte),    
+                  ("NowDay", c_ubyte),    
+                  ("NowHour", c_ubyte),    
+                  ("NowMinute", c_ubyte),    
+                  ("NowSecond", c_ubyte),    
+                  ("NowMicSecond", c_int),    
                   ]
 
     def __init__(self):
@@ -337,6 +345,14 @@
         self.Day = 0
         self.IsMixServer = 0
         self.MixDay = 0
+        self.OpenWeekday = 0
+        self.NowYear = 0
+        self.NowMonth = 0
+        self.NowDay = 0
+        self.NowHour = 0
+        self.NowMinute = 0
+        self.NowSecond = 0
+        self.NowMicSecond = 0
         return
 
     def GetLength(self):
@@ -351,14 +367,30 @@
                                 SubCmd:%s,
                                 Day:%d,
                                 IsMixServer:%d,
-                                MixDay:%d
+                                MixDay:%d,
+                                OpenWeekday:%d,
+                                NowYear:%d,
+                                NowMonth:%d,
+                                NowDay:%d,
+                                NowHour:%d,
+                                NowMinute:%d,
+                                NowSecond:%d,
+                                NowMicSecond:%d
                                 '''\
                                 %(
                                 self.Cmd,
                                 self.SubCmd,
                                 self.Day,
                                 self.IsMixServer,
-                                self.MixDay
+                                self.MixDay,
+                                self.OpenWeekday,
+                                self.NowYear,
+                                self.NowMonth,
+                                self.NowDay,
+                                self.NowHour,
+                                self.NowMinute,
+                                self.NowSecond,
+                                self.NowMicSecond
                                 )
         return DumpString
 
@@ -2285,8 +2317,9 @@
 
 class  tagGCBossShuntLineState(Structure):
     BossID = 0    #(DWORD BossID)// bossID
-    DeadLineCount = 0    #(BYTE DeadLineCount)
-    DeadLineList = list()    #(vector<BYTE> DeadLineList)// 已死亡的线路列表
+    LineCount = 0    #(BYTE LineCount)
+    LineIDList = list()    #(vector<BYTE> LineIDList)// 线路ID列表
+    StateList = list()    #(vector<BYTE> StateList)// 对应状态列表, 0-被击杀,1-活着
     data = None
 
     def __init__(self):
@@ -2296,43 +2329,52 @@
     def ReadData(self, _lpData, _pos=0, _Len=0):
         self.Clear()
         self.BossID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.DeadLineCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        for i in range(self.DeadLineCount):
+        self.LineCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.LineCount):
             value,_pos=CommFunc.ReadBYTE(_lpData,_pos)
-            self.DeadLineList.append(value)
+            self.LineIDList.append(value)
+        for i in range(self.LineCount):
+            value,_pos=CommFunc.ReadBYTE(_lpData,_pos)
+            self.StateList.append(value)
         return _pos
 
     def Clear(self):
         self.BossID = 0
-        self.DeadLineCount = 0
-        self.DeadLineList = list()
+        self.LineCount = 0
+        self.LineIDList = list()
+        self.StateList = list()
         return
 
     def GetLength(self):
         length = 0
         length += 4
         length += 1
-        length += 1 * self.DeadLineCount
+        length += 1 * self.LineCount
+        length += 1 * self.LineCount
 
         return length
 
     def GetBuffer(self):
         data = ''
         data = CommFunc.WriteDWORD(data, self.BossID)
-        data = CommFunc.WriteBYTE(data, self.DeadLineCount)
-        for i in range(self.DeadLineCount):
-            data = CommFunc.WriteBYTE(data, self.DeadLineList[i])
+        data = CommFunc.WriteBYTE(data, self.LineCount)
+        for i in range(self.LineCount):
+            data = CommFunc.WriteBYTE(data, self.LineIDList[i])
+        for i in range(self.LineCount):
+            data = CommFunc.WriteBYTE(data, self.StateList[i])
         return data
 
     def OutputString(self):
         DumpString = '''
                                 BossID:%d,
-                                DeadLineCount:%d,
-                                DeadLineList:%s
+                                LineCount:%d,
+                                LineIDList:%s,
+                                StateList:%s
                                 '''\
                                 %(
                                 self.BossID,
-                                self.DeadLineCount,
+                                self.LineCount,
+                                "...",
                                 "..."
                                 )
         return DumpString
@@ -2868,6 +2910,7 @@
     RecordLen = 0    #(WORD RecordLen)// 长度
     KillRecord = ""    #(String KillRecord)// 最近击杀记录时间玩家名size = RecordLen
     RefreshSecond = 0    #(DWORD RefreshSecond)// 刷新倒计时, 秒    
+    RefreshCD = 0    #(DWORD RefreshCD)// 刷新总CD时, 秒    
     data = None
 
     def __init__(self):
@@ -2881,6 +2924,7 @@
         self.RecordLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
         self.KillRecord,_pos = CommFunc.ReadString(_lpData, _pos,self.RecordLen)
         self.RefreshSecond,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.RefreshCD,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         return _pos
 
     def Clear(self):
@@ -2889,6 +2933,7 @@
         self.RecordLen = 0
         self.KillRecord = ""
         self.RefreshSecond = 0
+        self.RefreshCD = 0
         return
 
     def GetLength(self):
@@ -2897,6 +2942,7 @@
         length += 1
         length += 2
         length += len(self.KillRecord)
+        length += 4
         length += 4
 
         return length
@@ -2908,6 +2954,7 @@
         data = CommFunc.WriteWORD(data, self.RecordLen)
         data = CommFunc.WriteString(data, self.RecordLen, self.KillRecord)
         data = CommFunc.WriteDWORD(data, self.RefreshSecond)
+        data = CommFunc.WriteDWORD(data, self.RefreshCD)
         return data
 
     def OutputString(self):
@@ -2916,14 +2963,16 @@
                                 IsAlive:%d,
                                 RecordLen:%d,
                                 KillRecord:%s,
-                                RefreshSecond:%d
+                                RefreshSecond:%d,
+                                RefreshCD:%d
                                 '''\
                                 %(
                                 self.BossID,
                                 self.IsAlive,
                                 self.RecordLen,
                                 self.KillRecord,
-                                self.RefreshSecond
+                                self.RefreshSecond,
+                                self.RefreshCD
                                 )
         return DumpString
 
@@ -4185,6 +4234,114 @@
 
 
 #------------------------------------------------------
+# A9 06 商城全服购买次数通知 #tagGCStoreServerBuyCntInfo
+
+class  tagGCStoreServerBuyCnt(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("GoodsID", c_int),    #商品标识
+                  ("BuyCnt", c_int),    #购买次数
+                  ]
+
+    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.GoodsID = 0
+        self.BuyCnt = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagGCStoreServerBuyCnt)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// A9 06 商城全服购买次数通知 //tagGCStoreServerBuyCntInfo:
+                                GoodsID:%d,
+                                BuyCnt:%d
+                                '''\
+                                %(
+                                self.GoodsID,
+                                self.BuyCnt
+                                )
+        return DumpString
+
+
+class  tagGCStoreServerBuyCntInfo(Structure):
+    Head = tagHead()
+    Count = 0    #(WORD Count)//数量
+    InfoList = list()    #(vector<tagGCStoreServerBuyCnt> InfoList)//次数信息
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        self.Head.Cmd = 0xA9
+        self.Head.SubCmd = 0x06
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        _pos = self.Head.ReadData(_lpData, _pos)
+        self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        for i in range(self.Count):
+            temInfoList = tagGCStoreServerBuyCnt()
+            _pos = temInfoList.ReadData(_lpData, _pos)
+            self.InfoList.append(temInfoList)
+        return _pos
+
+    def Clear(self):
+        self.Head = tagHead()
+        self.Head.Clear()
+        self.Head.Cmd = 0xA9
+        self.Head.SubCmd = 0x06
+        self.Count = 0
+        self.InfoList = list()
+        return
+
+    def GetLength(self):
+        length = 0
+        length += self.Head.GetLength()
+        length += 2
+        for i in range(self.Count):
+            length += self.InfoList[i].GetLength()
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+        data = CommFunc.WriteWORD(data, self.Count)
+        for i in range(self.Count):
+            data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer())
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                Head:%s,
+                                Count:%d,
+                                InfoList:%s
+                                '''\
+                                %(
+                                self.Head.OutputString(),
+                                self.Count,
+                                "..."
+                                )
+        return DumpString
+
+
+m_NAtagGCStoreServerBuyCntInfo=tagGCStoreServerBuyCntInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCStoreServerBuyCntInfo.Head.Cmd,m_NAtagGCStoreServerBuyCntInfo.Head.SubCmd))] = m_NAtagGCStoreServerBuyCntInfo
+
+
+#------------------------------------------------------
 #A9 21 角色改名结果 #tagUpdatePlayerNameResult
 
 class  tagUpdatePlayerNameResult(Structure):
@@ -4402,6 +4559,7 @@
                   ("SubCmd", c_ubyte),
                   ("Point", c_int),    # 复活点数
                   ("TotalPoint", c_int),    # 复活总点数
+                  ("RebornCnt", c_ushort),    # 复活次数
                   ]
 
     def __init__(self):
@@ -4420,6 +4578,7 @@
         self.SubCmd = 0x08
         self.Point = 0
         self.TotalPoint = 0
+        self.RebornCnt = 0
         return
 
     def GetLength(self):
@@ -4433,13 +4592,15 @@
                                 Cmd:%s,
                                 SubCmd:%s,
                                 Point:%d,
-                                TotalPoint:%d
+                                TotalPoint:%d,
+                                RebornCnt:%d
                                 '''\
                                 %(
                                 self.Cmd,
                                 self.SubCmd,
                                 self.Point,
-                                self.TotalPoint
+                                self.TotalPoint,
+                                self.RebornCnt
                                 )
         return DumpString
 
@@ -4457,6 +4618,7 @@
     EndtDate = ""    #(char EndtDate[10])// 结束日期 y-m-d
     WorldLV = 0    #(WORD WorldLV)// 世界等级
     LimitLV = 0    #(WORD LimitLV)// 限制等级
+    ResetType = 0    #(BYTE ResetType)// 重置类型 0-0点重置 1-5点重置
     data = None
 
     def __init__(self):
@@ -4472,6 +4634,7 @@
         self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
         self.WorldLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
         self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.ResetType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         return _pos
 
     def Clear(self):
@@ -4483,6 +4646,7 @@
         self.EndtDate = ""
         self.WorldLV = 0
         self.LimitLV = 0
+        self.ResetType = 0
         return
 
     def GetLength(self):
@@ -4492,6 +4656,7 @@
         length += 10
         length += 2
         length += 2
+        length += 1
 
         return length
 
@@ -4502,6 +4667,7 @@
         data = CommFunc.WriteString(data, 10, self.EndtDate)
         data = CommFunc.WriteWORD(data, self.WorldLV)
         data = CommFunc.WriteWORD(data, self.LimitLV)
+        data = CommFunc.WriteBYTE(data, self.ResetType)
         return data
 
     def OutputString(self):
@@ -4510,14 +4676,16 @@
                                 StartDate:%s,
                                 EndtDate:%s,
                                 WorldLV:%d,
-                                LimitLV:%d
+                                LimitLV:%d,
+                                ResetType:%d
                                 '''\
                                 %(
                                 self.Head.OutputString(),
                                 self.StartDate,
                                 self.EndtDate,
                                 self.WorldLV,
-                                self.LimitLV
+                                self.LimitLV,
+                                self.ResetType
                                 )
         return DumpString
 
@@ -10216,6 +10384,62 @@
 
 
 #------------------------------------------------------
+# A3 24 通知绑玉转盘结果 #tagMCBindJadeWheelResult
+
+class  tagMCBindJadeWheelResult(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("Index", c_ubyte),    # 格子
+                  ("Cnt", c_ubyte),    #今日已转次数
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xA3
+        self.SubCmd = 0x24
+        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 = 0xA3
+        self.SubCmd = 0x24
+        self.Index = 0
+        self.Cnt = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagMCBindJadeWheelResult)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// A3 24 通知绑玉转盘结果 //tagMCBindJadeWheelResult:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                Index:%d,
+                                Cnt:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.Index,
+                                self.Cnt
+                                )
+        return DumpString
+
+
+m_NAtagMCBindJadeWheelResult=tagMCBindJadeWheelResult()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCBindJadeWheelResult.Cmd,m_NAtagMCBindJadeWheelResult.SubCmd))] = m_NAtagMCBindJadeWheelResult
+
+
+#------------------------------------------------------
 #A3 B7 当日累计攻击boss次数 #tagMCBOSSAttactCnt
 
 class  tagMCBossCntInfo(Structure):
@@ -11536,19 +11760,15 @@
 #------------------------------------------------------
 #A3 0A 副本鼓舞信息通知 #tagMCFBEncourageInfo
 
-class  tagMCFBEncourageInfo(Structure):
+class  tagMCFBEncourageCnt(Structure):
     _pack_ = 1
     _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("Cnt1", c_ubyte),    # 当前铜钱鼓舞次数
-                  ("Cnt2", c_ubyte),    # 当前仙玉鼓舞次数
+                  ("MoneyType", c_ubyte),    # 金钱类型
+                  ("EncourageCnt", c_ubyte),    # 当前鼓舞次数
                   ]
 
     def __init__(self):
         self.Clear()
-        self.Cmd = 0xA3
-        self.SubCmd = 0x0A
         return
 
     def ReadData(self, stringData, _pos=0, _len=0):
@@ -11557,36 +11777,92 @@
         return _pos + self.GetLength()
 
     def Clear(self):
-        self.Cmd = 0xA3
-        self.SubCmd = 0x0A
-        self.Cnt1 = 0
-        self.Cnt2 = 0
+        self.MoneyType = 0
+        self.EncourageCnt = 0
         return
 
     def GetLength(self):
-        return sizeof(tagMCFBEncourageInfo)
+        return sizeof(tagMCFBEncourageCnt)
 
     def GetBuffer(self):
         return string_at(addressof(self), self.GetLength())
 
     def OutputString(self):
         DumpString = '''//A3 0A 副本鼓舞信息通知 //tagMCFBEncourageInfo:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                Cnt1:%d,
-                                Cnt2:%d
+                                MoneyType:%d,
+                                EncourageCnt:%d
                                 '''\
                                 %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.Cnt1,
-                                self.Cnt2
+                                self.MoneyType,
+                                self.EncourageCnt
+                                )
+        return DumpString
+
+
+class  tagMCFBEncourageInfo(Structure):
+    Head = tagHead()
+    Cnt = 0    #(BYTE Cnt)// 
+    InfoList = list()    #(vector<tagMCFBEncourageCnt> InfoList)// 次数信息
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        self.Head.Cmd = 0xA3
+        self.Head.SubCmd = 0x0A
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        _pos = self.Head.ReadData(_lpData, _pos)
+        self.Cnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.Cnt):
+            temInfoList = tagMCFBEncourageCnt()
+            _pos = temInfoList.ReadData(_lpData, _pos)
+            self.InfoList.append(temInfoList)
+        return _pos
+
+    def Clear(self):
+        self.Head = tagHead()
+        self.Head.Clear()
+        self.Head.Cmd = 0xA3
+        self.Head.SubCmd = 0x0A
+        self.Cnt = 0
+        self.InfoList = list()
+        return
+
+    def GetLength(self):
+        length = 0
+        length += self.Head.GetLength()
+        length += 1
+        for i in range(self.Cnt):
+            length += self.InfoList[i].GetLength()
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+        data = CommFunc.WriteBYTE(data, self.Cnt)
+        for i in range(self.Cnt):
+            data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer())
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                Head:%s,
+                                Cnt:%d,
+                                InfoList:%s
+                                '''\
+                                %(
+                                self.Head.OutputString(),
+                                self.Cnt,
+                                "..."
                                 )
         return DumpString
 
 
 m_NAtagMCFBEncourageInfo=tagMCFBEncourageInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFBEncourageInfo.Cmd,m_NAtagMCFBEncourageInfo.SubCmd))] = m_NAtagMCFBEncourageInfo
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFBEncourageInfo.Head.Cmd,m_NAtagMCFBEncourageInfo.Head.SubCmd))] = m_NAtagMCFBEncourageInfo
 
 
 #------------------------------------------------------
@@ -13802,6 +14078,62 @@
 
 m_NAtagMCPlayerStoveMsg=tagMCPlayerStoveMsg()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPlayerStoveMsg.Cmd,m_NAtagMCPlayerStoveMsg.SubCmd))] = m_NAtagMCPlayerStoveMsg
+
+
+#------------------------------------------------------
+# A3 21 祈福丹药结果 #tagMCPrayElixirResult
+
+class  tagMCPrayElixirResult(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("ItemID", c_int),    # 物品ID
+                  ("PrayCnt", c_ubyte),    # 今日祈福次数
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xA3
+        self.SubCmd = 0x21
+        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 = 0xA3
+        self.SubCmd = 0x21
+        self.ItemID = 0
+        self.PrayCnt = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagMCPrayElixirResult)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// A3 21 祈福丹药结果 //tagMCPrayElixirResult:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                ItemID:%d,
+                                PrayCnt:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.ItemID,
+                                self.PrayCnt
+                                )
+        return DumpString
+
+
+m_NAtagMCPrayElixirResult=tagMCPrayElixirResult()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPrayElixirResult.Cmd,m_NAtagMCPrayElixirResult.SubCmd))] = m_NAtagMCPrayElixirResult
 
 
 #------------------------------------------------------
@@ -19728,6 +20060,7 @@
     Head = tagHead()
     StartDate = ""    #(char StartDate[10])// 开始日期 y-m-d
     EndtDate = ""    #(char EndtDate[10])// 结束日期 y-m-d
+    AdvanceMinutes = 0    #(WORD AdvanceMinutes)// 提前显示分钟
     ActivityTimeCount = 0    #(BYTE ActivityTimeCount)
     ActivityTime = list()    #(vector<tagMCFlashGiftbagTime> ActivityTime)//活动时间
     IsDayReset = 0    #(BYTE IsDayReset)//是否每天重置
@@ -19747,6 +20080,7 @@
         _pos = self.Head.ReadData(_lpData, _pos)
         self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
         self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
+        self.AdvanceMinutes,_pos = CommFunc.ReadWORD(_lpData, _pos)
         self.ActivityTimeCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         for i in range(self.ActivityTimeCount):
             temActivityTime = tagMCFlashGiftbagTime()
@@ -19768,6 +20102,7 @@
         self.Head.SubCmd = 0x12
         self.StartDate = ""
         self.EndtDate = ""
+        self.AdvanceMinutes = 0
         self.ActivityTimeCount = 0
         self.ActivityTime = list()
         self.IsDayReset = 0
@@ -19781,6 +20116,7 @@
         length += self.Head.GetLength()
         length += 10
         length += 10
+        length += 2
         length += 1
         for i in range(self.ActivityTimeCount):
             length += self.ActivityTime[i].GetLength()
@@ -19797,6 +20133,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.AdvanceMinutes)
         data = CommFunc.WriteBYTE(data, self.ActivityTimeCount)
         for i in range(self.ActivityTimeCount):
             data = CommFunc.WriteString(data, self.ActivityTime[i].GetLength(), self.ActivityTime[i].GetBuffer())
@@ -19812,6 +20149,7 @@
                                 Head:%s,
                                 StartDate:%s,
                                 EndtDate:%s,
+                                AdvanceMinutes:%d,
                                 ActivityTimeCount:%d,
                                 ActivityTime:%s,
                                 IsDayReset:%d,
@@ -19823,6 +20161,7 @@
                                 self.Head.OutputString(),
                                 self.StartDate,
                                 self.EndtDate,
+                                self.AdvanceMinutes,
                                 self.ActivityTimeCount,
                                 "...",
                                 self.IsDayReset,
@@ -19943,6 +20282,420 @@
 
 m_NAtagMCFlashGiftbagPlayerInfo=tagMCFlashGiftbagPlayerInfo()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFlashGiftbagPlayerInfo.Head.Cmd,m_NAtagMCFlashGiftbagPlayerInfo.Head.SubCmd))] = m_NAtagMCFlashGiftbagPlayerInfo
+
+
+#------------------------------------------------------
+# AA 18 限时抢购活动玩家预约信息 #tagMCFlashSaleAppointmentInfo
+
+class  tagMCFlashSaleAppointmentState(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("GoodsMark", c_int),    # 商品标识
+                  ("State", 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.GoodsMark = 0
+        self.State = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagMCFlashSaleAppointmentState)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// AA 18 限时抢购活动玩家预约信息 //tagMCFlashSaleAppointmentInfo:
+                                GoodsMark:%d,
+                                State:%d
+                                '''\
+                                %(
+                                self.GoodsMark,
+                                self.State
+                                )
+        return DumpString
+
+
+class  tagMCFlashSaleAppointmentInfo(Structure):
+    Head = tagHead()
+    IsAll = 0    #(BYTE IsAll)// 是否全部
+    GoodsCount = 0    #(WORD GoodsCount)// 商品数
+    GoodsList = list()    #(vector<tagMCFlashSaleAppointmentState> GoodsList)// 预约的商品
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        self.Head.Cmd = 0xAA
+        self.Head.SubCmd = 0x18
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        _pos = self.Head.ReadData(_lpData, _pos)
+        self.IsAll,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.GoodsCount,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        for i in range(self.GoodsCount):
+            temGoodsList = tagMCFlashSaleAppointmentState()
+            _pos = temGoodsList.ReadData(_lpData, _pos)
+            self.GoodsList.append(temGoodsList)
+        return _pos
+
+    def Clear(self):
+        self.Head = tagHead()
+        self.Head.Clear()
+        self.Head.Cmd = 0xAA
+        self.Head.SubCmd = 0x18
+        self.IsAll = 0
+        self.GoodsCount = 0
+        self.GoodsList = list()
+        return
+
+    def GetLength(self):
+        length = 0
+        length += self.Head.GetLength()
+        length += 1
+        length += 2
+        for i in range(self.GoodsCount):
+            length += self.GoodsList[i].GetLength()
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+        data = CommFunc.WriteBYTE(data, self.IsAll)
+        data = CommFunc.WriteWORD(data, self.GoodsCount)
+        for i in range(self.GoodsCount):
+            data = CommFunc.WriteString(data, self.GoodsList[i].GetLength(), self.GoodsList[i].GetBuffer())
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                Head:%s,
+                                IsAll:%d,
+                                GoodsCount:%d,
+                                GoodsList:%s
+                                '''\
+                                %(
+                                self.Head.OutputString(),
+                                self.IsAll,
+                                self.GoodsCount,
+                                "..."
+                                )
+        return DumpString
+
+
+m_NAtagMCFlashSaleAppointmentInfo=tagMCFlashSaleAppointmentInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFlashSaleAppointmentInfo.Head.Cmd,m_NAtagMCFlashSaleAppointmentInfo.Head.SubCmd))] = m_NAtagMCFlashSaleAppointmentInfo
+
+
+#------------------------------------------------------
+# AA 17 限时抢购活动信息 #tagMCFlashSaleInfo
+
+class  tagMCFlashSaleGiftbag(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("GiftID", c_int),    #商城表的物品ID
+                  ("BuyCountLimit", c_ubyte),    #限购数
+                  ("ServerBuyCountLimit", c_ushort),    #全服限购数
+                  ("MoneyType", c_ubyte),    #消耗货币类型
+                  ("MoneyNumber", c_int),    #消耗货币数量
+                  ("MoneyOriginal", c_int),    #原价
+                  ("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.GiftID = 0
+        self.BuyCountLimit = 0
+        self.ServerBuyCountLimit = 0
+        self.MoneyType = 0
+        self.MoneyNumber = 0
+        self.MoneyOriginal = 0
+        self.ItemID = 0
+        self.ItemCount = 0
+        self.IsBind = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagMCFlashSaleGiftbag)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// AA 17 限时抢购活动信息 //tagMCFlashSaleInfo:
+                                GiftID:%d,
+                                BuyCountLimit:%d,
+                                ServerBuyCountLimit:%d,
+                                MoneyType:%d,
+                                MoneyNumber:%d,
+                                MoneyOriginal:%d,
+                                ItemID:%d,
+                                ItemCount:%d,
+                                IsBind:%d
+                                '''\
+                                %(
+                                self.GiftID,
+                                self.BuyCountLimit,
+                                self.ServerBuyCountLimit,
+                                self.MoneyType,
+                                self.MoneyNumber,
+                                self.MoneyOriginal,
+                                self.ItemID,
+                                self.ItemCount,
+                                self.IsBind
+                                )
+        return DumpString
+
+
+class  tagMCFlashSaleShop(Structure):
+    DayIndex = 0    #(BYTE DayIndex)// 活动第几天
+    TimeIndex = 0    #(BYTE TimeIndex)// 第几个时间段
+    GiftbagCount = 0    #(BYTE GiftbagCount)// 商店礼包数
+    GiftbagInfo = list()    #(vector<tagMCFlashSaleGiftbag> GiftbagInfo)// 礼包信息
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        self.DayIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.TimeIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.GiftbagCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.GiftbagCount):
+            temGiftbagInfo = tagMCFlashSaleGiftbag()
+            _pos = temGiftbagInfo.ReadData(_lpData, _pos)
+            self.GiftbagInfo.append(temGiftbagInfo)
+        return _pos
+
+    def Clear(self):
+        self.DayIndex = 0
+        self.TimeIndex = 0
+        self.GiftbagCount = 0
+        self.GiftbagInfo = list()
+        return
+
+    def GetLength(self):
+        length = 0
+        length += 1
+        length += 1
+        length += 1
+        for i in range(self.GiftbagCount):
+            length += self.GiftbagInfo[i].GetLength()
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteBYTE(data, self.DayIndex)
+        data = CommFunc.WriteBYTE(data, self.TimeIndex)
+        data = CommFunc.WriteBYTE(data, self.GiftbagCount)
+        for i in range(self.GiftbagCount):
+            data = CommFunc.WriteString(data, self.GiftbagInfo[i].GetLength(), self.GiftbagInfo[i].GetBuffer())
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                DayIndex:%d,
+                                TimeIndex:%d,
+                                GiftbagCount:%d,
+                                GiftbagInfo:%s
+                                '''\
+                                %(
+                                self.DayIndex,
+                                self.TimeIndex,
+                                self.GiftbagCount,
+                                "..."
+                                )
+        return DumpString
+
+
+class  tagMCFlashSaleTime(Structure):
+    StartTime = ""    #(char StartTime[5])// 开始时间 H:M
+    EndtTime = ""    #(char EndtTime[5])// 结束时间 H:M
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        self.StartTime,_pos = CommFunc.ReadString(_lpData, _pos,5)
+        self.EndtTime,_pos = CommFunc.ReadString(_lpData, _pos,5)
+        return _pos
+
+    def Clear(self):
+        self.StartTime = ""
+        self.EndtTime = ""
+        return
+
+    def GetLength(self):
+        length = 0
+        length += 5
+        length += 5
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteString(data, 5, self.StartTime)
+        data = CommFunc.WriteString(data, 5, self.EndtTime)
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                StartTime:%s,
+                                EndtTime:%s
+                                '''\
+                                %(
+                                self.StartTime,
+                                self.EndtTime
+                                )
+        return DumpString
+
+
+class  tagMCFlashSaleInfo(Structure):
+    Head = tagHead()
+    StartDate = ""    #(char StartDate[10])// 开始日期 y-m-d
+    EndtDate = ""    #(char EndtDate[10])// 结束日期 y-m-d
+    AdvanceMinutes = 0    #(WORD AdvanceMinutes)// 提前显示分钟
+    ActivityTimeCount = 0    #(BYTE ActivityTimeCount)
+    ActivityTime = list()    #(vector<tagMCFlashSaleTime> ActivityTime)//活动时间
+    IsDayReset = 0    #(BYTE IsDayReset)//是否每天重置
+    LimitLV = 0    #(WORD LimitLV)// 限制等级
+    ShopCount = 0    #(BYTE ShopCount)// 商店数
+    ShopInfo = list()    #(vector<tagMCFlashSaleShop> ShopInfo)// 商店信息, 当有多个商店且有多个活动时间段时则每个时间段对应一个商店;
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        self.Head.Cmd = 0xAA
+        self.Head.SubCmd = 0x17
+        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.AdvanceMinutes,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.ActivityTimeCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.ActivityTimeCount):
+            temActivityTime = tagMCFlashSaleTime()
+            _pos = temActivityTime.ReadData(_lpData, _pos)
+            self.ActivityTime.append(temActivityTime)
+        self.IsDayReset,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.ShopCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.ShopCount):
+            temShopInfo = tagMCFlashSaleShop()
+            _pos = temShopInfo.ReadData(_lpData, _pos)
+            self.ShopInfo.append(temShopInfo)
+        return _pos
+
+    def Clear(self):
+        self.Head = tagHead()
+        self.Head.Clear()
+        self.Head.Cmd = 0xAA
+        self.Head.SubCmd = 0x17
+        self.StartDate = ""
+        self.EndtDate = ""
+        self.AdvanceMinutes = 0
+        self.ActivityTimeCount = 0
+        self.ActivityTime = list()
+        self.IsDayReset = 0
+        self.LimitLV = 0
+        self.ShopCount = 0
+        self.ShopInfo = list()
+        return
+
+    def GetLength(self):
+        length = 0
+        length += self.Head.GetLength()
+        length += 10
+        length += 10
+        length += 2
+        length += 1
+        for i in range(self.ActivityTimeCount):
+            length += self.ActivityTime[i].GetLength()
+        length += 1
+        length += 2
+        length += 1
+        for i in range(self.ShopCount):
+            length += self.ShopInfo[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.AdvanceMinutes)
+        data = CommFunc.WriteBYTE(data, self.ActivityTimeCount)
+        for i in range(self.ActivityTimeCount):
+            data = CommFunc.WriteString(data, self.ActivityTime[i].GetLength(), self.ActivityTime[i].GetBuffer())
+        data = CommFunc.WriteBYTE(data, self.IsDayReset)
+        data = CommFunc.WriteWORD(data, self.LimitLV)
+        data = CommFunc.WriteBYTE(data, self.ShopCount)
+        for i in range(self.ShopCount):
+            data = CommFunc.WriteString(data, self.ShopInfo[i].GetLength(), self.ShopInfo[i].GetBuffer())
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                Head:%s,
+                                StartDate:%s,
+                                EndtDate:%s,
+                                AdvanceMinutes:%d,
+                                ActivityTimeCount:%d,
+                                ActivityTime:%s,
+                                IsDayReset:%d,
+                                LimitLV:%d,
+                                ShopCount:%d,
+                                ShopInfo:%s
+                                '''\
+                                %(
+                                self.Head.OutputString(),
+                                self.StartDate,
+                                self.EndtDate,
+                                self.AdvanceMinutes,
+                                self.ActivityTimeCount,
+                                "...",
+                                self.IsDayReset,
+                                self.LimitLV,
+                                self.ShopCount,
+                                "..."
+                                )
+        return DumpString
+
+
+m_NAtagMCFlashSaleInfo=tagMCFlashSaleInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFlashSaleInfo.Head.Cmd,m_NAtagMCFlashSaleInfo.Head.SubCmd))] = m_NAtagMCFlashSaleInfo
 
 
 #------------------------------------------------------
@@ -20371,6 +21124,7 @@
     Head = tagHead()
     StartDate = ""    #(char StartDate[10])// 开始日期 y-m-d
     EndtDate = ""    #(char EndtDate[10])// 结束日期 y-m-d
+    AdvanceMinutes = 0    #(WORD AdvanceMinutes)// 提前显示分钟
     ActivityTimeCount = 0    #(BYTE ActivityTimeCount)
     ActivityTime = list()    #(vector<tagMCSpringSaleTime> ActivityTime)//活动时间
     IsDayReset = 0    #(BYTE IsDayReset)//是否每天重置
@@ -20390,6 +21144,7 @@
         _pos = self.Head.ReadData(_lpData, _pos)
         self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
         self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
+        self.AdvanceMinutes,_pos = CommFunc.ReadWORD(_lpData, _pos)
         self.ActivityTimeCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         for i in range(self.ActivityTimeCount):
             temActivityTime = tagMCSpringSaleTime()
@@ -20411,6 +21166,7 @@
         self.Head.SubCmd = 0x11
         self.StartDate = ""
         self.EndtDate = ""
+        self.AdvanceMinutes = 0
         self.ActivityTimeCount = 0
         self.ActivityTime = list()
         self.IsDayReset = 0
@@ -20424,6 +21180,7 @@
         length += self.Head.GetLength()
         length += 10
         length += 10
+        length += 2
         length += 1
         for i in range(self.ActivityTimeCount):
             length += self.ActivityTime[i].GetLength()
@@ -20440,6 +21197,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.AdvanceMinutes)
         data = CommFunc.WriteBYTE(data, self.ActivityTimeCount)
         for i in range(self.ActivityTimeCount):
             data = CommFunc.WriteString(data, self.ActivityTime[i].GetLength(), self.ActivityTime[i].GetBuffer())
@@ -20455,6 +21213,7 @@
                                 Head:%s,
                                 StartDate:%s,
                                 EndtDate:%s,
+                                AdvanceMinutes:%d,
                                 ActivityTimeCount:%d,
                                 ActivityTime:%s,
                                 IsDayReset:%d,
@@ -20466,6 +21225,7 @@
                                 self.Head.OutputString(),
                                 self.StartDate,
                                 self.EndtDate,
+                                self.AdvanceMinutes,
                                 self.ActivityTimeCount,
                                 "...",
                                 self.IsDayReset,
@@ -20478,6 +21238,70 @@
 
 m_NAtagMCSpringSaleInfo=tagMCSpringSaleInfo()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSpringSaleInfo.Head.Cmd,m_NAtagMCSpringSaleInfo.Head.SubCmd))] = m_NAtagMCSpringSaleInfo
+
+
+#------------------------------------------------------
+# AA 16 通知超值礼包信息 #tagMCSuperGiftInfo
+
+class  tagMCSuperGiftInfo(Structure):
+    Head = tagHead()
+    GiftID = 0    #(DWORD GiftID)//商品ID
+    EndtDate = ""    #(char EndtDate[10])// 结束日期 y-m-d
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        self.Head.Cmd = 0xAA
+        self.Head.SubCmd = 0x16
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        _pos = self.Head.ReadData(_lpData, _pos)
+        self.GiftID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
+        return _pos
+
+    def Clear(self):
+        self.Head = tagHead()
+        self.Head.Clear()
+        self.Head.Cmd = 0xAA
+        self.Head.SubCmd = 0x16
+        self.GiftID = 0
+        self.EndtDate = ""
+        return
+
+    def GetLength(self):
+        length = 0
+        length += self.Head.GetLength()
+        length += 4
+        length += 10
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+        data = CommFunc.WriteDWORD(data, self.GiftID)
+        data = CommFunc.WriteString(data, 10, self.EndtDate)
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                Head:%s,
+                                GiftID:%d,
+                                EndtDate:%s
+                                '''\
+                                %(
+                                self.Head.OutputString(),
+                                self.GiftID,
+                                self.EndtDate
+                                )
+        return DumpString
+
+
+m_NAtagMCSuperGiftInfo=tagMCSuperGiftInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSuperGiftInfo.Head.Cmd,m_NAtagMCSuperGiftInfo.Head.SubCmd))] = m_NAtagMCSuperGiftInfo
 
 
 #------------------------------------------------------
@@ -21125,6 +21949,7 @@
     Head = tagHead()
     StartDate = ""    #(char StartDate[10])// 开始日期 y-m-d
     EndtDate = ""    #(char EndtDate[10])// 结束日期 y-m-d
+    ResetType = 0    #(BYTE ResetType)// 重置类型,0-0点重置;1-5点重置
     LimitLV = 0    #(WORD LimitLV)// 限制等级
     TaskCnt = 0    #(BYTE TaskCnt)
     TaskInfo = list()    #(vector<tagMCBossRebornTaskInfo> TaskInfo)
@@ -21141,6 +21966,7 @@
         _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.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
         self.TaskCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         for i in range(self.TaskCnt):
@@ -21156,6 +21982,7 @@
         self.Head.SubCmd = 0x04
         self.StartDate = ""
         self.EndtDate = ""
+        self.ResetType = 0
         self.LimitLV = 0
         self.TaskCnt = 0
         self.TaskInfo = list()
@@ -21166,6 +21993,7 @@
         length += self.Head.GetLength()
         length += 10
         length += 10
+        length += 1
         length += 2
         length += 1
         for i in range(self.TaskCnt):
@@ -21178,6 +22006,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.WriteBYTE(data, self.ResetType)
         data = CommFunc.WriteWORD(data, self.LimitLV)
         data = CommFunc.WriteBYTE(data, self.TaskCnt)
         for i in range(self.TaskCnt):
@@ -21189,6 +22018,7 @@
                                 Head:%s,
                                 StartDate:%s,
                                 EndtDate:%s,
+                                ResetType:%d,
                                 LimitLV:%d,
                                 TaskCnt:%d,
                                 TaskInfo:%s
@@ -21197,6 +22027,7 @@
                                 self.Head.OutputString(),
                                 self.StartDate,
                                 self.EndtDate,
+                                self.ResetType,
                                 self.LimitLV,
                                 self.TaskCnt,
                                 "..."
@@ -22206,6 +23037,66 @@
 
 
 #------------------------------------------------------
+# B1 06 通知玩家向目标点移动 #tagMCNotifyPlayerMove
+
+class  tagMCNotifyPlayerMove(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("PosX", c_int),    
+                  ("PosY", c_int),    
+                  ("NPCID", c_int),    #目标点寻路NPCID, 可能为0
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xB1
+        self.SubCmd = 0x06
+        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 = 0xB1
+        self.SubCmd = 0x06
+        self.PosX = 0
+        self.PosY = 0
+        self.NPCID = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagMCNotifyPlayerMove)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// B1 06 通知玩家向目标点移动 //tagMCNotifyPlayerMove:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                PosX:%d,
+                                PosY:%d,
+                                NPCID:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.PosX,
+                                self.PosY,
+                                self.NPCID
+                                )
+        return DumpString
+
+
+m_NAtagMCNotifyPlayerMove=tagMCNotifyPlayerMove()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCNotifyPlayerMove.Cmd,m_NAtagMCNotifyPlayerMove.SubCmd))] = m_NAtagMCNotifyPlayerMove
+
+
+#------------------------------------------------------
 # B1 03 通知玩家死亡时间 #tagMCPlayerDeadTime
 
 class  tagMCPlayerDeadTime(Structure):

--
Gitblit v1.8.0