From 9a2fd2a8b061b3c876be62d397b939daccaeb69a Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 26 三月 2019 11:51:30 +0800
Subject: [PATCH] 3138 【主干】【BUG】拍卖行获得仙玉数值错误(最少收税1) 其他bug: 1. 修复一组拍品个数大于1时无法竞价、一口价的bug 2. 修复竞价后短时间内无法再竞价的bug,会提示有人正在竞价中(正常会提示该情况的一般只有两个人同时点击竞价的时候有可能出现)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py | 1541 +++++++++-------------------------------------------------
 1 files changed, 251 insertions(+), 1,290 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
index e174e31..e8ff6de 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -899,6 +899,58 @@
 
 
 #------------------------------------------------------
+# A4 0C 多仙盟boss活动信息 #tagGCAllFamilyBossInfo
+
+class  tagGCAllFamilyBossInfo(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("IsEnd", c_ubyte),    # 是否已结束
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xA4
+        self.SubCmd = 0x0C
+        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 = 0xA4
+        self.SubCmd = 0x0C
+        self.IsEnd = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagGCAllFamilyBossInfo)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// A4 0C 多仙盟boss活动信息 //tagGCAllFamilyBossInfo:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                IsEnd:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.IsEnd
+                                )
+        return DumpString
+
+
+m_NAtagGCAllFamilyBossInfo=tagGCAllFamilyBossInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAllFamilyBossInfo.Cmd,m_NAtagGCAllFamilyBossInfo.SubCmd))] = m_NAtagGCAllFamilyBossInfo
+
+
+#------------------------------------------------------
 # A4 0A 假仙盟信息 #tagGCFakeFamilyInfo
 
 class  tagGCFakeFamilyInfo(Structure):
@@ -4136,124 +4188,6 @@
 
 
 #------------------------------------------------------
-# A9 07 定时商店刷新倒计时 #tagGCShopRefreshTimeList
-
-class  tagGCShopRefreshTime(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("ShopID", c_int),    # 商店ID
-                  ("RemainSecond", c_int),    # 多少秒后刷新
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xA9
-        self.SubCmd = 0x07
-        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 = 0xA9
-        self.SubCmd = 0x07
-        self.ShopID = 0
-        self.RemainSecond = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagGCShopRefreshTime)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// A9 07 定时商店刷新倒计时 //tagGCShopRefreshTimeList:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                ShopID:%d,
-                                RemainSecond:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.ShopID,
-                                self.RemainSecond
-                                )
-        return DumpString
-
-
-class  tagGCShopRefreshTimeList(Structure):
-    Head = tagHead()
-    ShopCnt = 0    #(BYTE ShopCnt)//商店信息个数
-    ShopTimeInfoList = list()    #(vector<tagGCShopRefreshTime> ShopTimeInfoList)//商店信息列表
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xA9
-        self.Head.SubCmd = 0x07
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        _pos = self.Head.ReadData(_lpData, _pos)
-        self.ShopCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        for i in range(self.ShopCnt):
-            temShopTimeInfoList = tagGCShopRefreshTime()
-            _pos = temShopTimeInfoList.ReadData(_lpData, _pos)
-            self.ShopTimeInfoList.append(temShopTimeInfoList)
-        return _pos
-
-    def Clear(self):
-        self.Head = tagHead()
-        self.Head.Clear()
-        self.Head.Cmd = 0xA9
-        self.Head.SubCmd = 0x07
-        self.ShopCnt = 0
-        self.ShopTimeInfoList = list()
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 1
-        for i in range(self.ShopCnt):
-            length += self.ShopTimeInfoList[i].GetLength()
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteBYTE(data, self.ShopCnt)
-        for i in range(self.ShopCnt):
-            data = CommFunc.WriteString(data, self.ShopTimeInfoList[i].GetLength(), self.ShopTimeInfoList[i].GetBuffer())
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                ShopCnt:%d,
-                                ShopTimeInfoList:%s
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.ShopCnt,
-                                "..."
-                                )
-        return DumpString
-
-
-m_NAtagGCShopRefreshTimeList=tagGCShopRefreshTimeList()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCShopRefreshTimeList.Head.Cmd,m_NAtagGCShopRefreshTimeList.Head.SubCmd))] = m_NAtagGCShopRefreshTimeList
-
-
-#------------------------------------------------------
 # A9 06 商城全服购买次数通知 #tagGCStoreServerBuyCntInfo
 
 class  tagGCStoreServerBuyCnt(Structure):
@@ -5044,6 +4978,58 @@
 
 
 #------------------------------------------------------
+# AC 07 骑宠Boss信息 #tagGCHorsePetBossInfo
+
+class  tagGCHorsePetBossInfo(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("IsEnd", c_int),    # 是否已结束(按位代表对应线路是否结束)
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xAC
+        self.SubCmd = 0x07
+        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 = 0xAC
+        self.SubCmd = 0x07
+        self.IsEnd = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagGCHorsePetBossInfo)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// AC 07 骑宠Boss信息 //tagGCHorsePetBossInfo:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                IsEnd:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.IsEnd
+                                )
+        return DumpString
+
+
+m_NAtagGCHorsePetBossInfo=tagGCHorsePetBossInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCHorsePetBossInfo.Cmd,m_NAtagGCHorsePetBossInfo.SubCmd))] = m_NAtagGCHorsePetBossInfo
+
+
+#------------------------------------------------------
 # AC 01 通知领地争夺占领情况 #tagGCManorWarInfo
 
 class  tagGCManorInfo(Structure):
@@ -5673,132 +5659,6 @@
 
 m_NAtagGCXMZZFightInfo=tagGCXMZZFightInfo()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCXMZZFightInfo.Head.Cmd,m_NAtagGCXMZZFightInfo.Head.SubCmd))] = m_NAtagGCXMZZFightInfo
-
-
-#------------------------------------------------------
-# AD 01 特惠活动信息 #tagGCTeHuiActivityInfoList
-
-class  tagGCTeHuiActivityInfo(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("ActivityType", c_ubyte),    # 活动类型
-                  ("ActivityValue", c_int),    # 活动值
-                  ("StartDate", c_int),    # 开始时间time
-                  ("EndDate", c_int),    # 结束时间time
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xAD
-        self.SubCmd = 0x01
-        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 = 0xAD
-        self.SubCmd = 0x01
-        self.ActivityType = 0
-        self.ActivityValue = 0
-        self.StartDate = 0
-        self.EndDate = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagGCTeHuiActivityInfo)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// AD 01 特惠活动信息 //tagGCTeHuiActivityInfoList:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                ActivityType:%d,
-                                ActivityValue:%d,
-                                StartDate:%d,
-                                EndDate:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.ActivityType,
-                                self.ActivityValue,
-                                self.StartDate,
-                                self.EndDate
-                                )
-        return DumpString
-
-
-class  tagGCTeHuiActivityInfoList(Structure):
-    Head = tagHead()
-    ActivityCount = 0    #(BYTE ActivityCount)//活动信息个数
-    ActivityInfoList = list()    #(vector<tagGCTeHuiActivityInfo> ActivityInfoList)//活动信息列表
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xAD
-        self.Head.SubCmd = 0x01
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        _pos = self.Head.ReadData(_lpData, _pos)
-        self.ActivityCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        for i in range(self.ActivityCount):
-            temActivityInfoList = tagGCTeHuiActivityInfo()
-            _pos = temActivityInfoList.ReadData(_lpData, _pos)
-            self.ActivityInfoList.append(temActivityInfoList)
-        return _pos
-
-    def Clear(self):
-        self.Head = tagHead()
-        self.Head.Clear()
-        self.Head.Cmd = 0xAD
-        self.Head.SubCmd = 0x01
-        self.ActivityCount = 0
-        self.ActivityInfoList = list()
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 1
-        for i in range(self.ActivityCount):
-            length += self.ActivityInfoList[i].GetLength()
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteBYTE(data, self.ActivityCount)
-        for i in range(self.ActivityCount):
-            data = CommFunc.WriteString(data, self.ActivityInfoList[i].GetLength(), self.ActivityInfoList[i].GetBuffer())
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                ActivityCount:%d,
-                                ActivityInfoList:%s
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.ActivityCount,
-                                "..."
-                                )
-        return DumpString
-
-
-m_NAtagGCTeHuiActivityInfoList=tagGCTeHuiActivityInfoList()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCTeHuiActivityInfoList.Head.Cmd,m_NAtagGCTeHuiActivityInfoList.Head.SubCmd))] = m_NAtagGCTeHuiActivityInfoList
 
 
 #------------------------------------------------------
@@ -13890,127 +13750,6 @@
 
 
 #------------------------------------------------------
-# A3 09 通知玩家部位套装等级 #tagMCEquipPartSuiteLVInfo
-
-class  tagMCEquipPartSuiteLV(Structure):
-    EquipIndex = 0    #(BYTE EquipIndex)
-    Len = 0    #(WORD Len)//长度
-    SuiteLVInfo = ""    #(String SuiteLVInfo)//{套装类型:等级}
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        self.EquipIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        self.Len,_pos = CommFunc.ReadWORD(_lpData, _pos)
-        self.SuiteLVInfo,_pos = CommFunc.ReadString(_lpData, _pos,self.Len)
-        return _pos
-
-    def Clear(self):
-        self.EquipIndex = 0
-        self.Len = 0
-        self.SuiteLVInfo = ""
-        return
-
-    def GetLength(self):
-        length = 0
-        length += 1
-        length += 2
-        length += len(self.SuiteLVInfo)
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteBYTE(data, self.EquipIndex)
-        data = CommFunc.WriteWORD(data, self.Len)
-        data = CommFunc.WriteString(data, self.Len, self.SuiteLVInfo)
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                EquipIndex:%d,
-                                Len:%d,
-                                SuiteLVInfo:%s
-                                '''\
-                                %(
-                                self.EquipIndex,
-                                self.Len,
-                                self.SuiteLVInfo
-                                )
-        return DumpString
-
-
-class  tagMCEquipPartSuiteLVInfo(Structure):
-    Head = tagHead()
-    Count = 0    #(BYTE Count)// 信息个数
-    InfoList = list()    #(vector<tagMCEquipPartSuiteLV> InfoList)// 信息列表
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xA3
-        self.Head.SubCmd = 0x09
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        _pos = self.Head.ReadData(_lpData, _pos)
-        self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        for i in range(self.Count):
-            temInfoList = tagMCEquipPartSuiteLV()
-            _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 = 0x09
-        self.Count = 0
-        self.InfoList = list()
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 1
-        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.WriteBYTE(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_NAtagMCEquipPartSuiteLVInfo=tagMCEquipPartSuiteLVInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCEquipPartSuiteLVInfo.Head.Cmd,m_NAtagMCEquipPartSuiteLVInfo.Head.SubCmd))] = m_NAtagMCEquipPartSuiteLVInfo
-
-
-#------------------------------------------------------
 # A3 BB 装备位洗练属性信息 #tagMCEquipPartXLAttrInfo
 
 class  tagMCEquipPartXLAttrValue(Structure):
@@ -15786,126 +15525,6 @@
 
 
 #------------------------------------------------------
-# A3 53 法宝特权数据 #tagMCMWPrivilegeDataInfo
-
-class  tagMCMWPrivilegeData(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("PriID", c_int),    # 特权ID
-                  ("State", c_ubyte),    #激活状态
-                  ("CurValue", c_int),    #当前总进度
-                  ("GotValue", c_int),    #已领取进度
-                  ("ItemAwardState", 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.PriID = 0
-        self.State = 0
-        self.CurValue = 0
-        self.GotValue = 0
-        self.ItemAwardState = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagMCMWPrivilegeData)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// A3 53 法宝特权数据 //tagMCMWPrivilegeDataInfo:
-                                PriID:%d,
-                                State:%d,
-                                CurValue:%d,
-                                GotValue:%d,
-                                ItemAwardState:%d
-                                '''\
-                                %(
-                                self.PriID,
-                                self.State,
-                                self.CurValue,
-                                self.GotValue,
-                                self.ItemAwardState
-                                )
-        return DumpString
-
-
-class  tagMCMWPrivilegeDataInfo(Structure):
-    Head = tagHead()
-    Count = 0    #(BYTE Count)// 信息个数
-    InfoList = list()    #(vector<tagMCMWPrivilegeData> InfoList)// 信息列表
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xA3
-        self.Head.SubCmd = 0x53
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        _pos = self.Head.ReadData(_lpData, _pos)
-        self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        for i in range(self.Count):
-            temInfoList = tagMCMWPrivilegeData()
-            _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 = 0x53
-        self.Count = 0
-        self.InfoList = list()
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 1
-        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.WriteBYTE(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_NAtagMCMWPrivilegeDataInfo=tagMCMWPrivilegeDataInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCMWPrivilegeDataInfo.Head.Cmd,m_NAtagMCMWPrivilegeDataInfo.Head.SubCmd))] = m_NAtagMCMWPrivilegeDataInfo
-
-
-#------------------------------------------------------
 # A3 26 NPCID已采集次数信息 #tagMCNPCIDCollectionCntInfo
 
 class  tagMCNPCIDCollectionCnt(Structure):
@@ -16649,6 +16268,66 @@
 
 m_NAtagMCPrayElixirResult=tagMCPrayElixirResult()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPrayElixirResult.Cmd,m_NAtagMCPrayElixirResult.SubCmd))] = m_NAtagMCPrayElixirResult
+
+
+#------------------------------------------------------
+# A3 27 境界修为池信息 #tagMCRealmExpInfo
+
+class  tagMCRealmExpInfo(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("BeginTime", c_int),    #开始计时时间
+                  ("CurExp", c_int),    #当前总经验
+                  ("CurExpPoint", c_int),    #当前总经验点
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xA3
+        self.SubCmd = 0x27
+        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 = 0x27
+        self.BeginTime = 0
+        self.CurExp = 0
+        self.CurExpPoint = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagMCRealmExpInfo)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// A3 27 境界修为池信息 //tagMCRealmExpInfo:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                BeginTime:%d,
+                                CurExp:%d,
+                                CurExpPoint:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.BeginTime,
+                                self.CurExp,
+                                self.CurExpPoint
+                                )
+        return DumpString
+
+
+m_NAtagMCRealmExpInfo=tagMCRealmExpInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCRealmExpInfo.Cmd,m_NAtagMCRealmExpInfo.SubCmd))] = m_NAtagMCRealmExpInfo
 
 
 #------------------------------------------------------
@@ -17506,18 +17185,14 @@
 
 
 #------------------------------------------------------
-# A3 11 通知玩家境界渡劫是否开启 #tagMCSyncRealmFBIsOpen
+# A3 11 通知玩家境界信息 #tagMCSyncRealmInfo
 
-class  tagMCSyncRealmFBIsOpen(Structure):
+class  tagMCSyncRealmInfo(Structure):
     _pack_ = 1
     _fields_ = [
                   ("Cmd", c_ubyte),
                   ("SubCmd", c_ubyte),
-                  ("IsOpen", c_ubyte),    #是否开启
-                  ("SitAllTime", c_ushort),    #打坐总时间秒
-                  ("SitRemainTime", c_int),    #开始打坐前剩余时间秒
-                  ("SitStartTime", c_int),    #开始打坐时间
-                  ("LastEnterTime", c_int),    #上次进入渡劫副本时间
+                  ("IsPass", c_ubyte),    #是否通关副本
                   ]
 
     def __init__(self):
@@ -17534,43 +17209,31 @@
     def Clear(self):
         self.Cmd = 0xA3
         self.SubCmd = 0x11
-        self.IsOpen = 0
-        self.SitAllTime = 0
-        self.SitRemainTime = 0
-        self.SitStartTime = 0
-        self.LastEnterTime = 0
+        self.IsPass = 0
         return
 
     def GetLength(self):
-        return sizeof(tagMCSyncRealmFBIsOpen)
+        return sizeof(tagMCSyncRealmInfo)
 
     def GetBuffer(self):
         return string_at(addressof(self), self.GetLength())
 
     def OutputString(self):
-        DumpString = '''// A3 11 通知玩家境界渡劫是否开启 //tagMCSyncRealmFBIsOpen:
+        DumpString = '''// A3 11 通知玩家境界信息 //tagMCSyncRealmInfo:
                                 Cmd:%s,
                                 SubCmd:%s,
-                                IsOpen:%d,
-                                SitAllTime:%d,
-                                SitRemainTime:%d,
-                                SitStartTime:%d,
-                                LastEnterTime:%d
+                                IsPass:%d
                                 '''\
                                 %(
                                 self.Cmd,
                                 self.SubCmd,
-                                self.IsOpen,
-                                self.SitAllTime,
-                                self.SitRemainTime,
-                                self.SitStartTime,
-                                self.LastEnterTime
+                                self.IsPass
                                 )
         return DumpString
 
 
-m_NAtagMCSyncRealmFBIsOpen=tagMCSyncRealmFBIsOpen()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSyncRealmFBIsOpen.Cmd,m_NAtagMCSyncRealmFBIsOpen.SubCmd))] = m_NAtagMCSyncRealmFBIsOpen
+m_NAtagMCSyncRealmInfo=tagMCSyncRealmInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSyncRealmInfo.Cmd,m_NAtagMCSyncRealmInfo.SubCmd))] = m_NAtagMCSyncRealmInfo
 
 
 #------------------------------------------------------
@@ -21414,126 +21077,6 @@
 
 
 #------------------------------------------------------
-# A8 04 通知商店限购物品已购买次数信息 # tagMCShopItemBuyCntInfoList
-
-class  tagMCShopItemBuyCntInfo(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("ShopID", c_int),    
-                  ("ItemShopIndex", c_ushort),    
-                  ("ItemID", c_int),    
-                  ("BuyCnt", c_int),    # 个人已购买数
-                  ("ServerBuyCnt", 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.ShopID = 0
-        self.ItemShopIndex = 0
-        self.ItemID = 0
-        self.BuyCnt = 0
-        self.ServerBuyCnt = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagMCShopItemBuyCntInfo)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// A8 04 通知商店限购物品已购买次数信息 // tagMCShopItemBuyCntInfoList:
-                                ShopID:%d,
-                                ItemShopIndex:%d,
-                                ItemID:%d,
-                                BuyCnt:%d,
-                                ServerBuyCnt:%d
-                                '''\
-                                %(
-                                self.ShopID,
-                                self.ItemShopIndex,
-                                self.ItemID,
-                                self.BuyCnt,
-                                self.ServerBuyCnt
-                                )
-        return DumpString
-
-
-class  tagMCShopItemBuyCntInfoList(Structure):
-    Head = tagHead()
-    Count = 0    #(BYTE Count)//通知个数
-    BuyCntList = list()    #(vector<tagMCShopItemBuyCntInfo> BuyCntList)
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xA8
-        self.Head.SubCmd = 0x04
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        _pos = self.Head.ReadData(_lpData, _pos)
-        self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        for i in range(self.Count):
-            temBuyCntList = tagMCShopItemBuyCntInfo()
-            _pos = temBuyCntList.ReadData(_lpData, _pos)
-            self.BuyCntList.append(temBuyCntList)
-        return _pos
-
-    def Clear(self):
-        self.Head = tagHead()
-        self.Head.Clear()
-        self.Head.Cmd = 0xA8
-        self.Head.SubCmd = 0x04
-        self.Count = 0
-        self.BuyCntList = list()
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 1
-        for i in range(self.Count):
-            length += self.BuyCntList[i].GetLength()
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteBYTE(data, self.Count)
-        for i in range(self.Count):
-            data = CommFunc.WriteString(data, self.BuyCntList[i].GetLength(), self.BuyCntList[i].GetBuffer())
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                Count:%d,
-                                BuyCntList:%s
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.Count,
-                                "..."
-                                )
-        return DumpString
-
-
-m_NAtagMCShopItemBuyCntInfoList=tagMCShopItemBuyCntInfoList()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCShopItemBuyCntInfoList.Head.Cmd,m_NAtagMCShopItemBuyCntInfoList.Head.SubCmd))] = m_NAtagMCShopItemBuyCntInfoList
-
-
-#------------------------------------------------------
 # A8 02 通知NPC商店物品今日已购买次数 #tagMCShopItemDayBuyCntInfo
 
 class  tagMCShopItemDayBuyCnt(Structure):
@@ -21643,239 +21186,6 @@
 
 m_NAtagMCShopItemDayBuyCntInfo=tagMCShopItemDayBuyCntInfo()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCShopItemDayBuyCntInfo.Head.Cmd,m_NAtagMCShopItemDayBuyCntInfo.Head.SubCmd))] = m_NAtagMCShopItemDayBuyCntInfo
-
-
-#------------------------------------------------------
-# A8 03 通知自定义商店物品信息 #tagMCShopItemInfoList
-
-class  tagMCShopItemInfo(Structure):
-    ShopID = 0    #(DWORD ShopID)
-    ItemShopIndex = 0    #(WORD ItemShopIndex)
-    DataSize = 0    #(DWORD DataSize)
-    ItemList = ""    #(String ItemList)//物品列表[[物品ID,数量,是否绑定,是否定制]]
-    PriceType = 0    #(BYTE PriceType)
-    Price = 0    #(DWORD Price)
-    OriginalPrice = 0    #(DWORD OriginalPrice)// 原价
-    PlayerLVLimit = 0    #(WORD PlayerLVLimit)// 购买等级限制
-    FamilyLVLimit = 0    #(BYTE FamilyLVLimit)// 购买战盟等级限制
-    MaxBuyCnt = 0    #(DWORD MaxBuyCnt)// 个人限购数
-    ServerMaxBuyCnt = 0    #(DWORD ServerMaxBuyCnt)// 全服限购数
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        self.ShopID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.ItemShopIndex,_pos = CommFunc.ReadWORD(_lpData, _pos)
-        self.DataSize,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.ItemList,_pos = CommFunc.ReadString(_lpData, _pos,self.DataSize)
-        self.PriceType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        self.Price,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.OriginalPrice,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.PlayerLVLimit,_pos = CommFunc.ReadWORD(_lpData, _pos)
-        self.FamilyLVLimit,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        self.MaxBuyCnt,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.ServerMaxBuyCnt,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        return _pos
-
-    def Clear(self):
-        self.ShopID = 0
-        self.ItemShopIndex = 0
-        self.DataSize = 0
-        self.ItemList = ""
-        self.PriceType = 0
-        self.Price = 0
-        self.OriginalPrice = 0
-        self.PlayerLVLimit = 0
-        self.FamilyLVLimit = 0
-        self.MaxBuyCnt = 0
-        self.ServerMaxBuyCnt = 0
-        return
-
-    def GetLength(self):
-        length = 0
-        length += 4
-        length += 2
-        length += 4
-        length += len(self.ItemList)
-        length += 1
-        length += 4
-        length += 4
-        length += 2
-        length += 1
-        length += 4
-        length += 4
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteDWORD(data, self.ShopID)
-        data = CommFunc.WriteWORD(data, self.ItemShopIndex)
-        data = CommFunc.WriteDWORD(data, self.DataSize)
-        data = CommFunc.WriteString(data, self.DataSize, self.ItemList)
-        data = CommFunc.WriteBYTE(data, self.PriceType)
-        data = CommFunc.WriteDWORD(data, self.Price)
-        data = CommFunc.WriteDWORD(data, self.OriginalPrice)
-        data = CommFunc.WriteWORD(data, self.PlayerLVLimit)
-        data = CommFunc.WriteBYTE(data, self.FamilyLVLimit)
-        data = CommFunc.WriteDWORD(data, self.MaxBuyCnt)
-        data = CommFunc.WriteDWORD(data, self.ServerMaxBuyCnt)
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                ShopID:%d,
-                                ItemShopIndex:%d,
-                                DataSize:%d,
-                                ItemList:%s,
-                                PriceType:%d,
-                                Price:%d,
-                                OriginalPrice:%d,
-                                PlayerLVLimit:%d,
-                                FamilyLVLimit:%d,
-                                MaxBuyCnt:%d,
-                                ServerMaxBuyCnt:%d
-                                '''\
-                                %(
-                                self.ShopID,
-                                self.ItemShopIndex,
-                                self.DataSize,
-                                self.ItemList,
-                                self.PriceType,
-                                self.Price,
-                                self.OriginalPrice,
-                                self.PlayerLVLimit,
-                                self.FamilyLVLimit,
-                                self.MaxBuyCnt,
-                                self.ServerMaxBuyCnt
-                                )
-        return DumpString
-
-
-class  tagMCShopItemInfoList(Structure):
-    Head = tagHead()
-    Count = 0    #(BYTE Count)//通知个数
-    ShopItemList = list()    #(vector<tagMCShopItemInfo> ShopItemList)
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xA8
-        self.Head.SubCmd = 0x03
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        _pos = self.Head.ReadData(_lpData, _pos)
-        self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        for i in range(self.Count):
-            temShopItemList = tagMCShopItemInfo()
-            _pos = temShopItemList.ReadData(_lpData, _pos)
-            self.ShopItemList.append(temShopItemList)
-        return _pos
-
-    def Clear(self):
-        self.Head = tagHead()
-        self.Head.Clear()
-        self.Head.Cmd = 0xA8
-        self.Head.SubCmd = 0x03
-        self.Count = 0
-        self.ShopItemList = list()
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 1
-        for i in range(self.Count):
-            length += self.ShopItemList[i].GetLength()
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteBYTE(data, self.Count)
-        for i in range(self.Count):
-            data = CommFunc.WriteString(data, self.ShopItemList[i].GetLength(), self.ShopItemList[i].GetBuffer())
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                Count:%d,
-                                ShopItemList:%s
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.Count,
-                                "..."
-                                )
-        return DumpString
-
-
-m_NAtagMCShopItemInfoList=tagMCShopItemInfoList()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCShopItemInfoList.Head.Cmd,m_NAtagMCShopItemInfoList.Head.SubCmd))] = m_NAtagMCShopItemInfoList
-
-
-#------------------------------------------------------
-# A8 05 通知神秘商店刷新次数 #tagMCShopRefreshCnt
-
-class  tagMCShopRefreshCnt(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("ShopID", c_int),    #商店ID
-                  ("RefreshCnt", c_ushort),    #已手动刷新次数
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xA8
-        self.SubCmd = 0x05
-        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 = 0xA8
-        self.SubCmd = 0x05
-        self.ShopID = 0
-        self.RefreshCnt = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagMCShopRefreshCnt)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// A8 05 通知神秘商店刷新次数 //tagMCShopRefreshCnt:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                ShopID:%d,
-                                RefreshCnt:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.ShopID,
-                                self.RefreshCnt
-                                )
-        return DumpString
-
-
-m_NAtagMCShopRefreshCnt=tagMCShopRefreshCnt()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCShopRefreshCnt.Cmd,m_NAtagMCShopRefreshCnt.SubCmd))] = m_NAtagMCShopRefreshCnt
 
 
 #------------------------------------------------------
@@ -23323,240 +22633,6 @@
 
 m_NAtagMCAllPeoplePartyInfo=tagMCAllPeoplePartyInfo()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCAllPeoplePartyInfo.Head.Cmd,m_NAtagMCAllPeoplePartyInfo.Head.SubCmd))] = m_NAtagMCAllPeoplePartyInfo
-
-
-#------------------------------------------------------
-# AA 03 升阶功能特惠奖励记录 #tagMCClassUPDayAwardRecordList
-
-class  tagMCClassUPDayAwardRecord(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("DayType", c_ubyte),    # 奖励日类型
-                  ("Record", c_int),    # 奖励记录
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xAA
-        self.SubCmd = 0x03
-        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 = 0x03
-        self.DayType = 0
-        self.Record = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagMCClassUPDayAwardRecord)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// AA 03 升阶功能特惠奖励记录 //tagMCClassUPDayAwardRecordList:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                DayType:%d,
-                                Record:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.DayType,
-                                self.Record
-                                )
-        return DumpString
-
-
-class  tagMCClassUPDayAwardRecordList(Structure):
-    Head = tagHead()
-    RecordCount = 0    #(BYTE RecordCount)//记录个数
-    RecordInfoList = list()    #(vector<tagMCClassUPDayAwardRecord> RecordInfoList)//记录列表
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xAA
-        self.Head.SubCmd = 0x03
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        _pos = self.Head.ReadData(_lpData, _pos)
-        self.RecordCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        for i in range(self.RecordCount):
-            temRecordInfoList = tagMCClassUPDayAwardRecord()
-            _pos = temRecordInfoList.ReadData(_lpData, _pos)
-            self.RecordInfoList.append(temRecordInfoList)
-        return _pos
-
-    def Clear(self):
-        self.Head = tagHead()
-        self.Head.Clear()
-        self.Head.Cmd = 0xAA
-        self.Head.SubCmd = 0x03
-        self.RecordCount = 0
-        self.RecordInfoList = list()
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 1
-        for i in range(self.RecordCount):
-            length += self.RecordInfoList[i].GetLength()
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteBYTE(data, self.RecordCount)
-        for i in range(self.RecordCount):
-            data = CommFunc.WriteString(data, self.RecordInfoList[i].GetLength(), self.RecordInfoList[i].GetBuffer())
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                RecordCount:%d,
-                                RecordInfoList:%s
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.RecordCount,
-                                "..."
-                                )
-        return DumpString
-
-
-m_NAtagMCClassUPDayAwardRecordList=tagMCClassUPDayAwardRecordList()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCClassUPDayAwardRecordList.Head.Cmd,m_NAtagMCClassUPDayAwardRecordList.Head.SubCmd))] = m_NAtagMCClassUPDayAwardRecordList
-
-
-#------------------------------------------------------
-# AA 06 消费奖励信息 #tagMCCostProfitInfo
-
-class  tagMCCostProfitInfo(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("ActionID", c_int),    # 活动ID
-                  ("TotalCost", c_int),    # 总消费
-                  ("AwardState", c_int),    # 奖励领取状态
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xAA
-        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 = 0xAA
-        self.SubCmd = 0x06
-        self.ActionID = 0
-        self.TotalCost = 0
-        self.AwardState = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagMCCostProfitInfo)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// AA 06 消费奖励信息 //tagMCCostProfitInfo:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                ActionID:%d,
-                                TotalCost:%d,
-                                AwardState:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.ActionID,
-                                self.TotalCost,
-                                self.AwardState
-                                )
-        return DumpString
-
-
-m_NAtagMCCostProfitInfo=tagMCCostProfitInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCostProfitInfo.Cmd,m_NAtagMCCostProfitInfo.SubCmd))] = m_NAtagMCCostProfitInfo
-
-
-#------------------------------------------------------
-# AA 07 消费排行特惠信息 #tagMCCostRankTeHuiInfo
-
-class  tagMCCostRankTeHuiInfo(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("ActionID", c_int),    # 活动ID
-                  ("TotalCost", c_int),    # 总累计消费钻石
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xAA
-        self.SubCmd = 0x07
-        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 = 0x07
-        self.ActionID = 0
-        self.TotalCost = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagMCCostRankTeHuiInfo)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// AA 07 消费排行特惠信息 //tagMCCostRankTeHuiInfo:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                ActionID:%d,
-                                TotalCost:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.ActionID,
-                                self.TotalCost
-                                )
-        return DumpString
-
-
-m_NAtagMCCostRankTeHuiInfo=tagMCCostRankTeHuiInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCostRankTeHuiInfo.Cmd,m_NAtagMCCostRankTeHuiInfo.SubCmd))] = m_NAtagMCCostRankTeHuiInfo
 
 
 #------------------------------------------------------
@@ -25755,198 +24831,6 @@
 
 m_NAtagMCNewXJSDRecharge=tagMCNewXJSDRecharge()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCNewXJSDRecharge.Cmd,m_NAtagMCNewXJSDRecharge.SubCmd))] = m_NAtagMCNewXJSDRecharge
-
-
-#------------------------------------------------------
-# AA 05 充值排行特惠信息 #tagMCRechargeRankTeHuiInfo
-
-class  tagMCRechargeRankTeHuiInfo(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("ActionID", c_int),    # 活动ID
-                  ("TotalGold", c_int),    # 总累计充值元宝
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xAA
-        self.SubCmd = 0x05
-        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 = 0x05
-        self.ActionID = 0
-        self.TotalGold = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagMCRechargeRankTeHuiInfo)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// AA 05 充值排行特惠信息 //tagMCRechargeRankTeHuiInfo:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                ActionID:%d,
-                                TotalGold:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.ActionID,
-                                self.TotalGold
-                                )
-        return DumpString
-
-
-m_NAtagMCRechargeRankTeHuiInfo=tagMCRechargeRankTeHuiInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCRechargeRankTeHuiInfo.Cmd,m_NAtagMCRechargeRankTeHuiInfo.SubCmd))] = m_NAtagMCRechargeRankTeHuiInfo
-
-
-#------------------------------------------------------
-# AA 04 充值特惠信息 #tagMCRechargeTeHuiInfoList
-
-class  tagMCRechargeTeHuiInfo(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("GotCnt", c_ubyte),    # 已领取次数
-                  ("CanGetCnt", c_ubyte),    # 当前可领取次数
-                  ("CurTotalGold", c_int),    # 当前规则累计充值元宝-仅针对累充规则
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xAA
-        self.SubCmd = 0x04
-        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 = 0x04
-        self.GotCnt = 0
-        self.CanGetCnt = 0
-        self.CurTotalGold = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagMCRechargeTeHuiInfo)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// AA 04 充值特惠信息 //tagMCRechargeTeHuiInfoList:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                GotCnt:%d,
-                                CanGetCnt:%d,
-                                CurTotalGold:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.GotCnt,
-                                self.CanGetCnt,
-                                self.CurTotalGold
-                                )
-        return DumpString
-
-
-class  tagMCRechargeTeHuiInfoList(Structure):
-    Head = tagHead()
-    ActionID = 0    #(DWORD ActionID)// 活动ID
-    TotalGold = 0    #(DWORD TotalGold)// 总累计充值元宝
-    InfoCnt = 0    #(BYTE InfoCnt)// 信息个数
-    InfoList = list()    #(vector<tagMCRechargeTeHuiInfo> InfoList)// 信息列表
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xAA
-        self.Head.SubCmd = 0x04
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        _pos = self.Head.ReadData(_lpData, _pos)
-        self.ActionID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.TotalGold,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.InfoCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        for i in range(self.InfoCnt):
-            temInfoList = tagMCRechargeTeHuiInfo()
-            _pos = temInfoList.ReadData(_lpData, _pos)
-            self.InfoList.append(temInfoList)
-        return _pos
-
-    def Clear(self):
-        self.Head = tagHead()
-        self.Head.Clear()
-        self.Head.Cmd = 0xAA
-        self.Head.SubCmd = 0x04
-        self.ActionID = 0
-        self.TotalGold = 0
-        self.InfoCnt = 0
-        self.InfoList = list()
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 4
-        length += 4
-        length += 1
-        for i in range(self.InfoCnt):
-            length += self.InfoList[i].GetLength()
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteDWORD(data, self.ActionID)
-        data = CommFunc.WriteDWORD(data, self.TotalGold)
-        data = CommFunc.WriteBYTE(data, self.InfoCnt)
-        for i in range(self.InfoCnt):
-            data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer())
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                ActionID:%d,
-                                TotalGold:%d,
-                                InfoCnt:%d,
-                                InfoList:%s
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.ActionID,
-                                self.TotalGold,
-                                self.InfoCnt,
-                                "..."
-                                )
-        return DumpString
-
-
-m_NAtagMCRechargeTeHuiInfoList=tagMCRechargeTeHuiInfoList()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCRechargeTeHuiInfoList.Head.Cmd,m_NAtagMCRechargeTeHuiInfoList.Head.SubCmd))] = m_NAtagMCRechargeTeHuiInfoList
 
 
 #------------------------------------------------------
@@ -28813,6 +27697,83 @@
 
 
 #------------------------------------------------------
+# B1 07 玩家点数信息 #tagMCRolePointInfo
+
+class  tagMCRolePointInfo(Structure):
+    Head = tagHead()
+    PointAttrIDCount = 0    #(BYTE PointAttrIDCount)// 点类型个数
+    PointAttrIDList = list()    #(vector<BYTE> PointAttrIDList)// 点类型列表
+    PointValueList = list()    #(vector<WORD> PointValueList)// 点类型对应已加自由点数列表
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        self.Head.Cmd = 0xB1
+        self.Head.SubCmd = 0x07
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        _pos = self.Head.ReadData(_lpData, _pos)
+        self.PointAttrIDCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.PointAttrIDCount):
+            value,_pos=CommFunc.ReadBYTE(_lpData,_pos)
+            self.PointAttrIDList.append(value)
+        for i in range(self.PointAttrIDCount):
+            value,_pos=CommFunc.ReadWORD(_lpData,_pos)
+            self.PointValueList.append(value)
+        return _pos
+
+    def Clear(self):
+        self.Head = tagHead()
+        self.Head.Clear()
+        self.Head.Cmd = 0xB1
+        self.Head.SubCmd = 0x07
+        self.PointAttrIDCount = 0
+        self.PointAttrIDList = list()
+        self.PointValueList = list()
+        return
+
+    def GetLength(self):
+        length = 0
+        length += self.Head.GetLength()
+        length += 1
+        length += 1 * self.PointAttrIDCount
+        length += 2 * self.PointAttrIDCount
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+        data = CommFunc.WriteBYTE(data, self.PointAttrIDCount)
+        for i in range(self.PointAttrIDCount):
+            data = CommFunc.WriteBYTE(data, self.PointAttrIDList[i])
+        for i in range(self.PointAttrIDCount):
+            data = CommFunc.WriteWORD(data, self.PointValueList[i])
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                Head:%s,
+                                PointAttrIDCount:%d,
+                                PointAttrIDList:%s,
+                                PointValueList:%s
+                                '''\
+                                %(
+                                self.Head.OutputString(),
+                                self.PointAttrIDCount,
+                                "...",
+                                "..."
+                                )
+        return DumpString
+
+
+m_NAtagMCRolePointInfo=tagMCRolePointInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCRolePointInfo.Head.Cmd,m_NAtagMCRolePointInfo.Head.SubCmd))] = m_NAtagMCRolePointInfo
+
+
+#------------------------------------------------------
 # B1 01 玩家技能连击通知 #tagMCSkillCombo
 
 class  tagMCSkillCombo(Structure):

--
Gitblit v1.8.0