From e5d9e13d80e43fb89e00cc9e0ffafcb25e36e435 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 27 三月 2019 16:55:12 +0800
Subject: [PATCH] 6373 【后端】【2.0】删除无用功能代码、封包、配置(页游领地争夺战)

---
 ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py | 2182 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 1,080 insertions(+), 1,102 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
index 1df956a..35cc352 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
@@ -1785,58 +1785,6 @@
 
 
 #------------------------------------------------------
-# AD 01 查询特惠活动信息 #tagCGQueryTeHuiActivetyInfo
-
-class  tagCGQueryTeHuiActivetyInfo(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("ActivityType", c_ubyte),    # 活动类型
-                  ]
-
-    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
-        return
-
-    def GetLength(self):
-        return sizeof(tagCGQueryTeHuiActivetyInfo)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// AD 01 查询特惠活动信息 //tagCGQueryTeHuiActivetyInfo:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                ActivityType:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.ActivityType
-                                )
-        return DumpString
-
-
-m_NAtagCGQueryTeHuiActivetyInfo=tagCGQueryTeHuiActivetyInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGQueryTeHuiActivetyInfo.Cmd,m_NAtagCGQueryTeHuiActivetyInfo.SubCmd))] = m_NAtagCGQueryTeHuiActivetyInfo
-
-
-#------------------------------------------------------
 # AE 07 运镖时间倒计时结束 #tagCGTruckTimeEnd
 
 class  tagCGTruckTimeEnd(Structure):
@@ -2356,6 +2304,62 @@
 
 
 #------------------------------------------------------
+# B5 18 拍卖行修改关注物品 #tagCGAttentionAuctionItemChange
+
+class  tagCGAttentionAuctionItemChange(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("ItemID", c_int),    
+                  ("IsAttention", c_ubyte),    #是否关注,取消关注发0
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xB5
+        self.SubCmd = 0x18
+        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 = 0xB5
+        self.SubCmd = 0x18
+        self.ItemID = 0
+        self.IsAttention = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagCGAttentionAuctionItemChange)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// B5 18 拍卖行修改关注物品 //tagCGAttentionAuctionItemChange:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                ItemID:%d,
+                                IsAttention:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.ItemID,
+                                self.IsAttention
+                                )
+        return DumpString
+
+
+m_NAtagCGAttentionAuctionItemChange=tagCGAttentionAuctionItemChange()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGAttentionAuctionItemChange.Cmd,m_NAtagCGAttentionAuctionItemChange.SubCmd))] = m_NAtagCGAttentionAuctionItemChange
+
+
+#------------------------------------------------------
 # B5 03 交易所查询上架物品#tagCGPYQueryBourseItemOnSale
 
 class  tagCGPYQueryBourseItemOnSale(Structure):
@@ -2424,6 +2428,289 @@
 
 m_NAtagCGPYQueryBourseItemOnSale=tagCGPYQueryBourseItemOnSale()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGPYQueryBourseItemOnSale.Head.Cmd,m_NAtagCGPYQueryBourseItemOnSale.Head.SubCmd))] = m_NAtagCGPYQueryBourseItemOnSale
+
+
+#------------------------------------------------------
+# B5 16 拍卖行查询关注中的拍品 #tagCGQueryAttentionAuctionItem
+
+class  tagCGQueryAttentionAuctionItem(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xB5
+        self.SubCmd = 0x16
+        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 = 0xB5
+        self.SubCmd = 0x16
+        return
+
+    def GetLength(self):
+        return sizeof(tagCGQueryAttentionAuctionItem)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// B5 16 拍卖行查询关注中的拍品 //tagCGQueryAttentionAuctionItem:
+                                Cmd:%s,
+                                SubCmd:%s
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd
+                                )
+        return DumpString
+
+
+m_NAtagCGQueryAttentionAuctionItem=tagCGQueryAttentionAuctionItem()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGQueryAttentionAuctionItem.Cmd,m_NAtagCGQueryAttentionAuctionItem.SubCmd))] = m_NAtagCGQueryAttentionAuctionItem
+
+
+#------------------------------------------------------
+# B5 10 拍卖行查询拍卖中的物品 #tagCGQueryAuctionItem
+
+class  tagCGQueryAuctionItem(Structure):
+    Head = tagHead()
+    Job = 0    #(BYTE Job)//过滤职业,0为不限制
+    ItemTypeCount = 0    #(BYTE ItemTypeCount)
+    ItemTypeList = list()    #(vector<DWORD> ItemTypeList)//指定的物品类型
+    ClassLV = 0    #(BYTE ClassLV)//过滤阶数,0为不限制
+    SpecItemIDCount = 0    #(BYTE SpecItemIDCount)//指定物品ID个数
+    SpecItemIDList = list()    #(vector<DWORD> SpecItemIDList)//指定物品ID
+    FromItemGUID = ""    #(char FromItemGUID[40])//从哪个物品开始查询
+    QueryDir = 0    #(BYTE QueryDir)//查询方向,1-往后查,2-往前查
+    QueryCount = 0    #(BYTE QueryCount)//查询个数,0为全部
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        self.Head.Cmd = 0xB5
+        self.Head.SubCmd = 0x10
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        _pos = self.Head.ReadData(_lpData, _pos)
+        self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.ItemTypeCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.ItemTypeCount):
+            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
+            self.ItemTypeList.append(value)
+        self.ClassLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.SpecItemIDCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.SpecItemIDCount):
+            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
+            self.SpecItemIDList.append(value)
+        self.FromItemGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
+        self.QueryDir,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.QueryCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        return _pos
+
+    def Clear(self):
+        self.Head = tagHead()
+        self.Head.Clear()
+        self.Head.Cmd = 0xB5
+        self.Head.SubCmd = 0x10
+        self.Job = 0
+        self.ItemTypeCount = 0
+        self.ItemTypeList = list()
+        self.ClassLV = 0
+        self.SpecItemIDCount = 0
+        self.SpecItemIDList = list()
+        self.FromItemGUID = ""
+        self.QueryDir = 0
+        self.QueryCount = 0
+        return
+
+    def GetLength(self):
+        length = 0
+        length += self.Head.GetLength()
+        length += 1
+        length += 1
+        length += 4 * self.ItemTypeCount
+        length += 1
+        length += 1
+        length += 4 * self.SpecItemIDCount
+        length += 40
+        length += 1
+        length += 1
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+        data = CommFunc.WriteBYTE(data, self.Job)
+        data = CommFunc.WriteBYTE(data, self.ItemTypeCount)
+        for i in range(self.ItemTypeCount):
+            data = CommFunc.WriteDWORD(data, self.ItemTypeList[i])
+        data = CommFunc.WriteBYTE(data, self.ClassLV)
+        data = CommFunc.WriteBYTE(data, self.SpecItemIDCount)
+        for i in range(self.SpecItemIDCount):
+            data = CommFunc.WriteDWORD(data, self.SpecItemIDList[i])
+        data = CommFunc.WriteString(data, 40, self.FromItemGUID)
+        data = CommFunc.WriteBYTE(data, self.QueryDir)
+        data = CommFunc.WriteBYTE(data, self.QueryCount)
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                Head:%s,
+                                Job:%d,
+                                ItemTypeCount:%d,
+                                ItemTypeList:%s,
+                                ClassLV:%d,
+                                SpecItemIDCount:%d,
+                                SpecItemIDList:%s,
+                                FromItemGUID:%s,
+                                QueryDir:%d,
+                                QueryCount:%d
+                                '''\
+                                %(
+                                self.Head.OutputString(),
+                                self.Job,
+                                self.ItemTypeCount,
+                                "...",
+                                self.ClassLV,
+                                self.SpecItemIDCount,
+                                "...",
+                                self.FromItemGUID,
+                                self.QueryDir,
+                                self.QueryCount
+                                )
+        return DumpString
+
+
+m_NAtagCGQueryAuctionItem=tagCGQueryAuctionItem()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGQueryAuctionItem.Head.Cmd,m_NAtagCGQueryAuctionItem.Head.SubCmd))] = m_NAtagCGQueryAuctionItem
+
+
+#------------------------------------------------------
+# B5 12 拍卖行查询拍卖记录 #tagCGQueryAuctionRecord
+
+class  tagCGQueryAuctionRecord(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("RecordType", c_ubyte),    #记录类型 0-我的拍品记录 1-仙盟拍品记录 2-我的竞拍记录
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xB5
+        self.SubCmd = 0x12
+        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 = 0xB5
+        self.SubCmd = 0x12
+        self.RecordType = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagCGQueryAuctionRecord)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// B5 12 拍卖行查询拍卖记录 //tagCGQueryAuctionRecord:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                RecordType:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.RecordType
+                                )
+        return DumpString
+
+
+m_NAtagCGQueryAuctionRecord=tagCGQueryAuctionRecord()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGQueryAuctionRecord.Cmd,m_NAtagCGQueryAuctionRecord.SubCmd))] = m_NAtagCGQueryAuctionRecord
+
+
+#------------------------------------------------------
+# B5 17 拍卖行查询定位目标拍品 #tagCGQueryTagAuctionItem
+
+class  tagCGQueryTagAuctionItem(Structure):
+    Head = tagHead()
+    ItemGUID = ""    #(char ItemGUID[40])
+    ItemID = 0    #(DWORD ItemID)
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        self.Head.Cmd = 0xB5
+        self.Head.SubCmd = 0x17
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        _pos = self.Head.ReadData(_lpData, _pos)
+        self.ItemGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
+        self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        return _pos
+
+    def Clear(self):
+        self.Head = tagHead()
+        self.Head.Clear()
+        self.Head.Cmd = 0xB5
+        self.Head.SubCmd = 0x17
+        self.ItemGUID = ""
+        self.ItemID = 0
+        return
+
+    def GetLength(self):
+        length = 0
+        length += self.Head.GetLength()
+        length += 40
+        length += 4
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+        data = CommFunc.WriteString(data, 40, self.ItemGUID)
+        data = CommFunc.WriteDWORD(data, self.ItemID)
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                Head:%s,
+                                ItemGUID:%s,
+                                ItemID:%d
+                                '''\
+                                %(
+                                self.Head.OutputString(),
+                                self.ItemGUID,
+                                self.ItemID
+                                )
+        return DumpString
+
+
+m_NAtagCGQueryTagAuctionItem=tagCGQueryTagAuctionItem()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGQueryTagAuctionItem.Head.Cmd,m_NAtagCGQueryTagAuctionItem.Head.SubCmd))] = m_NAtagCGQueryTagAuctionItem
 
 
 #------------------------------------------------------
@@ -3660,66 +3947,6 @@
 
 
 #------------------------------------------------------
-# A2 08 购买自定义商店物品 #tagCMBuyShopItem
-
-class  tagCMBuyShopItem(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("ShopID", c_int),    
-                  ("ItemShopIndex", c_ushort),    
-                  ("BuyCount", c_ushort),    #购买数量
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xA2
-        self.SubCmd = 0x08
-        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 = 0xA2
-        self.SubCmd = 0x08
-        self.ShopID = 0
-        self.ItemShopIndex = 0
-        self.BuyCount = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagCMBuyShopItem)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// A2 08 购买自定义商店物品 //tagCMBuyShopItem:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                ShopID:%d,
-                                ItemShopIndex:%d,
-                                BuyCount:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.ShopID,
-                                self.ItemShopIndex,
-                                self.BuyCount
-                                )
-        return DumpString
-
-
-m_NAtagCMBuyShopItem=tagCMBuyShopItem()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMBuyShopItem.Cmd,m_NAtagCMBuyShopItem.SubCmd))] = m_NAtagCMBuyShopItem
-
-
-#------------------------------------------------------
 # A2 10 清除副本CD#tagCMClearFBCD
 
 class  tagCMClearFBCD(Structure):
@@ -3769,6 +3996,54 @@
 
 m_NAtagCMClearFBCD=tagCMClearFBCD()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMClearFBCD.Cmd,m_NAtagCMClearFBCD.SubCmd))] = m_NAtagCMClearFBCD
+
+
+#------------------------------------------------------
+# A2 31 前端开始自定义场景 #tagCMClientStartCustomScene
+
+class  tagCMClientStartCustomScene(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xA2
+        self.SubCmd = 0x31
+        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 = 0xA2
+        self.SubCmd = 0x31
+        return
+
+    def GetLength(self):
+        return sizeof(tagCMClientStartCustomScene)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// A2 31 前端开始自定义场景 //tagCMClientStartCustomScene:
+                                Cmd:%s,
+                                SubCmd:%s
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd
+                                )
+        return DumpString
+
+
+m_NAtagCMClientStartCustomScene=tagCMClientStartCustomScene()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMClientStartCustomScene.Cmd,m_NAtagCMClientStartCustomScene.SubCmd))] = m_NAtagCMClientStartCustomScene
 
 
 #------------------------------------------------------
@@ -4654,58 +4929,6 @@
 
 
 #------------------------------------------------------
-# A2 07 请求自定义商店物品信息 #tagCMQueryShopItem
-
-class  tagCMQueryShopItem(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("ShopID", c_int),    
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xA2
-        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 = 0xA2
-        self.SubCmd = 0x07
-        self.ShopID = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagCMQueryShopItem)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// A2 07 请求自定义商店物品信息 //tagCMQueryShopItem:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                ShopID:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.ShopID
-                                )
-        return DumpString
-
-
-m_NAtagCMQueryShopItem=tagCMQueryShopItem()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMQueryShopItem.Cmd,m_NAtagCMQueryShopItem.SubCmd))] = m_NAtagCMQueryShopItem
-
-
-#------------------------------------------------------
 # A2 06 快速完成任务#tagCMQuickFinishMission
 
 class  tagCMQuickFinishMission(Structure):
@@ -4762,20 +4985,19 @@
 
 
 #------------------------------------------------------
-# A2 14 刷新定时神秘商店物品#tagCMRefreshShopItem
+# A2 32 神秘商店刷新 #tagCMRefreshMysticalShop
 
-class  tagCMRefreshShopItem(Structure):
+class  tagCMRefreshMysticalShop(Structure):
     _pack_ = 1
     _fields_ = [
                   ("Cmd", c_ubyte),
                   ("SubCmd", c_ubyte),
-                  ("ShopID", c_int),    
                   ]
 
     def __init__(self):
         self.Clear()
         self.Cmd = 0xA2
-        self.SubCmd = 0x14
+        self.SubCmd = 0x32
         return
 
     def ReadData(self, stringData, _pos=0, _len=0):
@@ -4785,32 +5007,29 @@
 
     def Clear(self):
         self.Cmd = 0xA2
-        self.SubCmd = 0x14
-        self.ShopID = 0
+        self.SubCmd = 0x32
         return
 
     def GetLength(self):
-        return sizeof(tagCMRefreshShopItem)
+        return sizeof(tagCMRefreshMysticalShop)
 
     def GetBuffer(self):
         return string_at(addressof(self), self.GetLength())
 
     def OutputString(self):
-        DumpString = '''// A2 14 刷新定时神秘商店物品//tagCMRefreshShopItem:
+        DumpString = '''// A2 32 神秘商店刷新 //tagCMRefreshMysticalShop:
                                 Cmd:%s,
-                                SubCmd:%s,
-                                ShopID:%d
+                                SubCmd:%s
                                 '''\
                                 %(
                                 self.Cmd,
-                                self.SubCmd,
-                                self.ShopID
+                                self.SubCmd
                                 )
         return DumpString
 
 
-m_NAtagCMRefreshShopItem=tagCMRefreshShopItem()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRefreshShopItem.Cmd,m_NAtagCMRefreshShopItem.SubCmd))] = m_NAtagCMRefreshShopItem
+m_NAtagCMRefreshMysticalShop=tagCMRefreshMysticalShop()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRefreshMysticalShop.Cmd,m_NAtagCMRefreshMysticalShop.SubCmd))] = m_NAtagCMRefreshMysticalShop
 
 
 #------------------------------------------------------
@@ -5809,6 +6028,58 @@
 
 
 #------------------------------------------------------
+# A3 16 装备强化进化 #tagCMEquipPlusEvolve
+
+class  tagCMEquipPlusEvolve(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("ItemIndex", c_ushort),    #装备在背包中索引
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xA3
+        self.SubCmd = 0x16
+        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 = 0x16
+        self.ItemIndex = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagCMEquipPlusEvolve)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// A3 16 装备强化进化 //tagCMEquipPlusEvolve:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                ItemIndex:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.ItemIndex
+                                )
+        return DumpString
+
+
+m_NAtagCMEquipPlusEvolve=tagCMEquipPlusEvolve()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMEquipPlusEvolve.Cmd,m_NAtagCMEquipPlusEvolve.SubCmd))] = m_NAtagCMEquipPlusEvolve
+
+
+#------------------------------------------------------
 #A3 05 宝石摘取 #tagCMEquipStonePick
 
 class  tagCMEquipStonePick(Structure):
@@ -6264,6 +6535,62 @@
 
 
 #------------------------------------------------------
+# A3 08 物品过期 #tagCMItemTimeout
+
+class  tagCMItemTimeout(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("PackType", c_ubyte),    #背包类型
+                  ("ItemIndex", c_ubyte),    #物品在背包中索引
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xA3
+        self.SubCmd = 0x08
+        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 = 0x08
+        self.PackType = 0
+        self.ItemIndex = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagCMItemTimeout)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// A3 08 物品过期 //tagCMItemTimeout:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                PackType:%d,
+                                ItemIndex:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.PackType,
+                                self.ItemIndex
+                                )
+        return DumpString
+
+
+m_NAtagCMItemTimeout=tagCMItemTimeout()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMItemTimeout.Cmd,m_NAtagCMItemTimeout.SubCmd))] = m_NAtagCMItemTimeout
+
+
+#------------------------------------------------------
 #A3 02 丢弃背包物品 #tagPlayerDropItem
 
 class  tagPlayerDropItem(Structure):
@@ -6544,118 +6871,6 @@
 
 m_NAtagCMItemCompound=tagCMItemCompound()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMItemCompound.Head.Cmd,m_NAtagCMItemCompound.Head.SubCmd))] = m_NAtagCMItemCompound
-
-
-#------------------------------------------------------
-#A3 17 套装合成#tagCMSuitCompose
-
-class  tagCMSuitCompose(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("SuiteType", c_ubyte),    # 套装类型 1普通 2强化
-                  ("EquipPlace", c_ubyte),    # 装备位置
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xA3
-        self.SubCmd = 0x17
-        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 = 0x17
-        self.SuiteType = 0
-        self.EquipPlace = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagCMSuitCompose)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''//A3 17 套装合成//tagCMSuitCompose:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                SuiteType:%d,
-                                EquipPlace:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.SuiteType,
-                                self.EquipPlace
-                                )
-        return DumpString
-
-
-m_NAtagCMSuitCompose=tagCMSuitCompose()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMSuitCompose.Cmd,m_NAtagCMSuitCompose.SubCmd))] = m_NAtagCMSuitCompose
-
-
-#------------------------------------------------------
-# A3 08 套装拆解 #tagCMSuiteDecompose
-
-class  tagCMSuiteDecompose(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("EquipPlace", c_ubyte),    #部位索引
-                  ("SuiteType", c_ubyte),    #套装类型 0代表全部类型
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xA3
-        self.SubCmd = 0x08
-        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 = 0x08
-        self.EquipPlace = 0
-        self.SuiteType = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagCMSuiteDecompose)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// A3 08 套装拆解 //tagCMSuiteDecompose:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                EquipPlace:%d,
-                                SuiteType:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.EquipPlace,
-                                self.SuiteType
-                                )
-        return DumpString
-
-
-m_NAtagCMSuiteDecompose=tagCMSuiteDecompose()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMSuiteDecompose.Cmd,m_NAtagCMSuiteDecompose.SubCmd))] = m_NAtagCMSuiteDecompose
 
 
 #------------------------------------------------------
@@ -7136,6 +7351,90 @@
 
 
 #------------------------------------------------------
+# A3 32 诛仙装备分解 #tagCMZhuXianEquipDecompose
+
+class  tagCMZhuXianEquipDecompose(Structure):
+    Head = tagHead()
+    Count = 0    #(BYTE Count)//材料所在背包索引的数量
+    IndexList = list()    #(vector<WORD> IndexList)//材料所在背包索引列表
+    ItemIDList = list()    #(vector<DWORD> ItemIDList)//材料所在背包物品ID列表
+    IsAuto = 0    #(BYTE IsAuto)//是否自动分解
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        self.Head.Cmd = 0xA3
+        self.Head.SubCmd = 0x32
+        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):
+            value,_pos=CommFunc.ReadWORD(_lpData,_pos)
+            self.IndexList.append(value)
+        for i in range(self.Count):
+            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
+            self.ItemIDList.append(value)
+        self.IsAuto,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        return _pos
+
+    def Clear(self):
+        self.Head = tagHead()
+        self.Head.Clear()
+        self.Head.Cmd = 0xA3
+        self.Head.SubCmd = 0x32
+        self.Count = 0
+        self.IndexList = list()
+        self.ItemIDList = list()
+        self.IsAuto = 0
+        return
+
+    def GetLength(self):
+        length = 0
+        length += self.Head.GetLength()
+        length += 1
+        length += 2 * self.Count
+        length += 4 * self.Count
+        length += 1
+
+        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.WriteWORD(data, self.IndexList[i])
+        for i in range(self.Count):
+            data = CommFunc.WriteDWORD(data, self.ItemIDList[i])
+        data = CommFunc.WriteBYTE(data, self.IsAuto)
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                Head:%s,
+                                Count:%d,
+                                IndexList:%s,
+                                ItemIDList:%s,
+                                IsAuto:%d
+                                '''\
+                                %(
+                                self.Head.OutputString(),
+                                self.Count,
+                                "...",
+                                "...",
+                                self.IsAuto
+                                )
+        return DumpString
+
+
+m_NAtagCMZhuXianEquipDecompose=tagCMZhuXianEquipDecompose()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMZhuXianEquipDecompose.Head.Cmd,m_NAtagCMZhuXianEquipDecompose.Head.SubCmd))] = m_NAtagCMZhuXianEquipDecompose
+
+
+#------------------------------------------------------
 # A5 30 购买魔魂铜钱经验什么的 #tagCMBuySomething
 
 class  tagCMBuySomething(Structure):
@@ -7353,58 +7652,6 @@
 
 m_NAtagCMActiveAllEquipAttr=tagCMActiveAllEquipAttr()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActiveAllEquipAttr.Cmd,m_NAtagCMActiveAllEquipAttr.SubCmd))] = m_NAtagCMActiveAllEquipAttr
-
-
-#------------------------------------------------------
-# A5 12 激活法宝之魂 #tagCMActiveMWSoul
-
-class  tagCMActiveMWSoul(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("ID", c_ubyte),    #编号
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xA5
-        self.SubCmd = 0x12
-        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 = 0xA5
-        self.SubCmd = 0x12
-        self.ID = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagCMActiveMWSoul)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// A5 12 激活法宝之魂 //tagCMActiveMWSoul:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                ID:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.ID
-                                )
-        return DumpString
-
-
-m_NAtagCMActiveMWSoul=tagCMActiveMWSoul()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActiveMWSoul.Cmd,m_NAtagCMActiveMWSoul.SubCmd))] = m_NAtagCMActiveMWSoul
 
 
 #------------------------------------------------------
@@ -8024,106 +8271,6 @@
 
 m_NAtagCMBuyKillBossCnt=tagCMBuyKillBossCnt()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMBuyKillBossCnt.Cmd,m_NAtagCMBuyKillBossCnt.SubCmd))] = m_NAtagCMBuyKillBossCnt
-
-
-#------------------------------------------------------
-#A5 36 天梯清除挑战CD#tagCMHighLadderClearCD
-
-class  tagCMHighLadderClearCD(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xA5
-        self.SubCmd = 0x36
-        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 = 0xA5
-        self.SubCmd = 0x36
-        return
-
-    def GetLength(self):
-        return sizeof(tagCMHighLadderClearCD)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''//A5 36 天梯清除挑战CD//tagCMHighLadderClearCD:
-                                Cmd:%s,
-                                SubCmd:%s
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd
-                                )
-        return DumpString
-
-
-m_NAtagCMHighLadderClearCD=tagCMHighLadderClearCD()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMHighLadderClearCD.Cmd,m_NAtagCMHighLadderClearCD.SubCmd))] = m_NAtagCMHighLadderClearCD
-
-
-#------------------------------------------------------
-#A5 35 查询天梯竞技场奖励#tagCMQueryHighLadderReward
-
-class  tagCMQueryHighLadderReward(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("Type", c_ubyte),    #0,查询  1,领取    
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xA5
-        self.SubCmd = 0x35
-        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 = 0xA5
-        self.SubCmd = 0x35
-        self.Type = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagCMQueryHighLadderReward)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''//A5 35 查询天梯竞技场奖励//tagCMQueryHighLadderReward:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                Type:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.Type
-                                )
-        return DumpString
-
-
-m_NAtagCMQueryHighLadderReward=tagCMQueryHighLadderReward()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMQueryHighLadderReward.Cmd,m_NAtagCMQueryHighLadderReward.SubCmd))] = m_NAtagCMQueryHighLadderReward
 
 
 #------------------------------------------------------
@@ -8950,6 +9097,90 @@
 
 
 #------------------------------------------------------
+# A5 C5 装备部位升星 #tagCMEquipPartStarUp
+
+class  tagCMEquipPartStarUp(Structure):
+    Head = tagHead()
+    EquipPackIndex = 0    #(WORD EquipPackIndex)// 部位格子索引
+    CostEquipCnt = 0    #(BYTE CostEquipCnt)// 装备个数
+    CostEquipIndex = list()    #(vector<WORD> CostEquipIndex)// 装备索引
+    CostEquipID = list()    #(vector<DWORD> CostEquipID)// 装备物品ID
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        self.Head.Cmd = 0xA5
+        self.Head.SubCmd = 0xC5
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        _pos = self.Head.ReadData(_lpData, _pos)
+        self.EquipPackIndex,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.CostEquipCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.CostEquipCnt):
+            value,_pos=CommFunc.ReadWORD(_lpData,_pos)
+            self.CostEquipIndex.append(value)
+        for i in range(self.CostEquipCnt):
+            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
+            self.CostEquipID.append(value)
+        return _pos
+
+    def Clear(self):
+        self.Head = tagHead()
+        self.Head.Clear()
+        self.Head.Cmd = 0xA5
+        self.Head.SubCmd = 0xC5
+        self.EquipPackIndex = 0
+        self.CostEquipCnt = 0
+        self.CostEquipIndex = list()
+        self.CostEquipID = list()
+        return
+
+    def GetLength(self):
+        length = 0
+        length += self.Head.GetLength()
+        length += 2
+        length += 1
+        length += 2 * self.CostEquipCnt
+        length += 4 * self.CostEquipCnt
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+        data = CommFunc.WriteWORD(data, self.EquipPackIndex)
+        data = CommFunc.WriteBYTE(data, self.CostEquipCnt)
+        for i in range(self.CostEquipCnt):
+            data = CommFunc.WriteWORD(data, self.CostEquipIndex[i])
+        for i in range(self.CostEquipCnt):
+            data = CommFunc.WriteDWORD(data, self.CostEquipID[i])
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                Head:%s,
+                                EquipPackIndex:%d,
+                                CostEquipCnt:%d,
+                                CostEquipIndex:%s,
+                                CostEquipID:%s
+                                '''\
+                                %(
+                                self.Head.OutputString(),
+                                self.EquipPackIndex,
+                                self.CostEquipCnt,
+                                "...",
+                                "..."
+                                )
+        return DumpString
+
+
+m_NAtagCMEquipPartStarUp=tagCMEquipPartStarUp()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMEquipPartStarUp.Head.Cmd,m_NAtagCMEquipPartStarUp.Head.SubCmd))] = m_NAtagCMEquipPartStarUp
+
+
+#------------------------------------------------------
 # A5 48 兑换大师等级经验 #tagCMExchangeMasterEXP
 
 class  tagCMExchangeMasterEXP(Structure):
@@ -9608,54 +9839,6 @@
 
 
 #------------------------------------------------------
-#A5 37 天梯增加挑战次数#tagCMHighLadderAddCount
-
-class  tagCMHighLadderAddCount(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xA5
-        self.SubCmd = 0x37
-        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 = 0xA5
-        self.SubCmd = 0x37
-        return
-
-    def GetLength(self):
-        return sizeof(tagCMHighLadderAddCount)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''//A5 37 天梯增加挑战次数//tagCMHighLadderAddCount:
-                                Cmd:%s,
-                                SubCmd:%s
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd
-                                )
-        return DumpString
-
-
-m_NAtagCMHighLadderAddCount=tagCMHighLadderAddCount()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMHighLadderAddCount.Cmd,m_NAtagCMHighLadderAddCount.SubCmd))] = m_NAtagCMHighLadderAddCount
-
-
-#------------------------------------------------------
 # A5 27 坐骑提升 #tagCMHorseUp
 
 class  tagCMHorseUp(Structure):
@@ -9716,114 +9899,6 @@
 
 
 #------------------------------------------------------
-# A5 0D 升级法宝技能 #tagCMMagicWeaponSkillUp
-
-class  tagCMMagicWeaponSkillUp(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("SkillTypeID", c_ushort),    
-                  ("CostIndex", c_ubyte),    
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xA5
-        self.SubCmd = 0x0D
-        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 = 0xA5
-        self.SubCmd = 0x0D
-        self.SkillTypeID = 0
-        self.CostIndex = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagCMMagicWeaponSkillUp)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// A5 0D 升级法宝技能 //tagCMMagicWeaponSkillUp:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                SkillTypeID:%d,
-                                CostIndex:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.SkillTypeID,
-                                self.CostIndex
-                                )
-        return DumpString
-
-
-m_NAtagCMMagicWeaponSkillUp=tagCMMagicWeaponSkillUp()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMMagicWeaponSkillUp.Cmd,m_NAtagCMMagicWeaponSkillUp.SubCmd))] = m_NAtagCMMagicWeaponSkillUp
-
-
-#------------------------------------------------------
-# A5 16 法宝状态记录 #tagCMMagicWeaponState
-
-class  tagCMMagicWeaponState(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("MWID", c_int),    #法宝ID
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xA5
-        self.SubCmd = 0x16
-        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 = 0xA5
-        self.SubCmd = 0x16
-        self.MWID = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagCMMagicWeaponState)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// A5 16 法宝状态记录 //tagCMMagicWeaponState:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                MWID:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.MWID
-                                )
-        return DumpString
-
-
-m_NAtagCMMagicWeaponState=tagCMMagicWeaponState()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMMagicWeaponState.Cmd,m_NAtagCMMagicWeaponState.SubCmd))] = m_NAtagCMMagicWeaponState
-
-
-#------------------------------------------------------
 # A5 15 提升法宝等级 #tagCMMagicWeaponUp
 
 class  tagCMMagicWeaponUp(Structure):
@@ -9873,62 +9948,6 @@
 
 m_NAtagCMMagicWeaponUp=tagCMMagicWeaponUp()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMMagicWeaponUp.Cmd,m_NAtagCMMagicWeaponUp.SubCmd))] = m_NAtagCMMagicWeaponUp
-
-
-#------------------------------------------------------
-# A5 77 玩家精炼法宝 #tagCMMWRefine
-
-class  tagCMMWRefine(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("MWID", c_int),    # 法宝ID
-                  ("MaterialID", c_int),    #材料ID
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xA5
-        self.SubCmd = 0x77
-        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 = 0xA5
-        self.SubCmd = 0x77
-        self.MWID = 0
-        self.MaterialID = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagCMMWRefine)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// A5 77 玩家精炼法宝 //tagCMMWRefine:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                MWID:%d,
-                                MaterialID:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.MWID,
-                                self.MaterialID
-                                )
-        return DumpString
-
-
-m_NAtagCMMWRefine=tagCMMWRefine()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMMWRefine.Cmd,m_NAtagCMMWRefine.SubCmd))] = m_NAtagCMMWRefine
 
 
 #------------------------------------------------------
@@ -10266,54 +10285,6 @@
 
 
 #------------------------------------------------------
-#A5 34 查询天梯竞技场状态#tagCMQueryHighLadderState
-
-class  tagCMQueryHighLadderState(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xA5
-        self.SubCmd = 0x34
-        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 = 0xA5
-        self.SubCmd = 0x34
-        return
-
-    def GetLength(self):
-        return sizeof(tagCMQueryHighLadderState)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''//A5 34 查询天梯竞技场状态//tagCMQueryHighLadderState:
-                                Cmd:%s,
-                                SubCmd:%s
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd
-                                )
-        return DumpString
-
-
-m_NAtagCMQueryHighLadderState=tagCMQueryHighLadderState()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMQueryHighLadderState.Cmd,m_NAtagCMQueryHighLadderState.SubCmd))] = m_NAtagCMQueryHighLadderState
-
-
-#------------------------------------------------------
 #A5 07 查询在线奖励 #tagCMQueryOnlinePrizeInfo
 
 class  tagCMQueryOnlinePrizeInfo(Structure):
@@ -10491,58 +10462,6 @@
 
 m_NAtagCMRecoverGain=tagCMRecoverGain()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRecoverGain.Head.Cmd,m_NAtagCMRecoverGain.Head.SubCmd))] = m_NAtagCMRecoverGain
-
-
-#------------------------------------------------------
-# A5 0C 使用道具减少渡劫打坐时间 #tagCMReduceSitTime
-
-class  tagCMReduceSitTime(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("ItemCnt", c_ushort),    # 道具数量
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xA5
-        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 = 0xA5
-        self.SubCmd = 0x0C
-        self.ItemCnt = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagCMReduceSitTime)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// A5 0C 使用道具减少渡劫打坐时间 //tagCMReduceSitTime:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                ItemCnt:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.ItemCnt
-                                )
-        return DumpString
-
-
-m_NAtagCMReduceSitTime=tagCMReduceSitTime()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMReduceSitTime.Cmd,m_NAtagCMReduceSitTime.SubCmd))] = m_NAtagCMReduceSitTime
 
 
 #------------------------------------------------------
@@ -11116,6 +11035,54 @@
 
 m_NAtagCMStartBindJadeWheel=tagCMStartBindJadeWheel()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMStartBindJadeWheel.Cmd,m_NAtagCMStartBindJadeWheel.SubCmd))] = m_NAtagCMStartBindJadeWheel
+
+
+#------------------------------------------------------
+# A5 21 境界修为池提取 #tagCMTakeOutRealmExp
+
+class  tagCMTakeOutRealmExp(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xA5
+        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 = 0xA5
+        self.SubCmd = 0x21
+        return
+
+    def GetLength(self):
+        return sizeof(tagCMTakeOutRealmExp)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// A5 21 境界修为池提取 //tagCMTakeOutRealmExp:
+                                Cmd:%s,
+                                SubCmd:%s
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd
+                                )
+        return DumpString
+
+
+m_NAtagCMTakeOutRealmExp=tagCMTakeOutRealmExp()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMTakeOutRealmExp.Cmd,m_NAtagCMTakeOutRealmExp.SubCmd))] = m_NAtagCMTakeOutRealmExp
 
 
 #------------------------------------------------------
@@ -12400,174 +12367,6 @@
 
 
 #------------------------------------------------------
-# AA 02 领取升阶功能特惠奖励 #tagCMGetClassUPDayAward
-
-class  tagCMGetClassUPDayAward(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("DayType", c_ubyte),    # 升阶日类型
-                  ("ClassLV", c_ubyte),    # 阶级
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xAA
-        self.SubCmd = 0x02
-        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 = 0x02
-        self.DayType = 0
-        self.ClassLV = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagCMGetClassUPDayAward)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// AA 02 领取升阶功能特惠奖励 //tagCMGetClassUPDayAward:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                DayType:%d,
-                                ClassLV:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.DayType,
-                                self.ClassLV
-                                )
-        return DumpString
-
-
-m_NAtagCMGetClassUPDayAward=tagCMGetClassUPDayAward()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGetClassUPDayAward.Cmd,m_NAtagCMGetClassUPDayAward.SubCmd))] = m_NAtagCMGetClassUPDayAward
-
-
-#------------------------------------------------------
-# AA 04 领取消费奖励 #tagCMGetCostAward
-
-class  tagCMGetCostAward(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("ActionID", c_int),    # 活动ID
-                  ("Index", c_ubyte),    # 索引
-                  ]
-
-    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.ActionID = 0
-        self.Index = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagCMGetCostAward)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// AA 04 领取消费奖励 //tagCMGetCostAward:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                ActionID:%d,
-                                Index:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.ActionID,
-                                self.Index
-                                )
-        return DumpString
-
-
-m_NAtagCMGetCostAward=tagCMGetCostAward()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGetCostAward.Cmd,m_NAtagCMGetCostAward.SubCmd))] = m_NAtagCMGetCostAward
-
-
-#------------------------------------------------------
-# AA 03 领取充值特惠奖励 #tagCMGetRechargeTeHuiAward
-
-class  tagCMGetRechargeTeHuiAward(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("ActionID", c_int),    # 活动ID
-                  ("Index", c_ubyte),    # 规则索引
-                  ]
-
-    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.ActionID = 0
-        self.Index = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagCMGetRechargeTeHuiAward)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// AA 03 领取充值特惠奖励 //tagCMGetRechargeTeHuiAward:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                ActionID:%d,
-                                Index:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.ActionID,
-                                self.Index
-                                )
-        return DumpString
-
-
-m_NAtagCMGetRechargeTeHuiAward=tagCMGetRechargeTeHuiAward()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGetRechargeTeHuiAward.Cmd,m_NAtagCMGetRechargeTeHuiAward.SubCmd))] = m_NAtagCMGetRechargeTeHuiAward
-
-
-#------------------------------------------------------
 #AA 01 领取累计登陆礼 # tagCMGetTotalLoginDayAward
 
 class  tagCMGetTotalLoginDayAward(Structure):
@@ -12617,6 +12416,54 @@
 
 m_NAtagCMGetTotalLoginDayAward=tagCMGetTotalLoginDayAward()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGetTotalLoginDayAward.Cmd,m_NAtagCMGetTotalLoginDayAward.SubCmd))] = m_NAtagCMGetTotalLoginDayAward
+
+
+#------------------------------------------------------
+# AA 08 开始幸运鉴宝 #tagCMStartLuckyTreasure
+
+class  tagCMStartLuckyTreasure(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xAA
+        self.SubCmd = 0x08
+        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 = 0x08
+        return
+
+    def GetLength(self):
+        return sizeof(tagCMStartLuckyTreasure)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// AA 08 开始幸运鉴宝 //tagCMStartLuckyTreasure:
+                                Cmd:%s,
+                                SubCmd:%s
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd
+                                )
+        return DumpString
+
+
+m_NAtagCMStartLuckyTreasure=tagCMStartLuckyTreasure()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMStartLuckyTreasure.Cmd,m_NAtagCMStartLuckyTreasure.SubCmd))] = m_NAtagCMStartLuckyTreasure
 
 
 #------------------------------------------------------
@@ -12676,6 +12523,7 @@
                   ("Cmd", c_ubyte),
                   ("SubCmd", c_ubyte),
                   ("RedPaketID", c_int),    # 红包ID
+                  ("GetWay", c_ubyte),    #获得途径
                   ]
 
     def __init__(self):
@@ -12693,6 +12541,7 @@
         self.Cmd = 0xAB
         self.SubCmd = 0x12
         self.RedPaketID = 0
+        self.GetWay = 0
         return
 
     def GetLength(self):
@@ -12705,12 +12554,14 @@
         DumpString = '''// AB 12 抢红包 //tagCMGrabFamilyRedPacket:
                                 Cmd:%s,
                                 SubCmd:%s,
-                                RedPaketID:%d
+                                RedPaketID:%d,
+                                GetWay:%d
                                 '''\
                                 %(
                                 self.Cmd,
                                 self.SubCmd,
-                                self.RedPaketID
+                                self.RedPaketID,
+                                self.GetWay
                                 )
         return DumpString
 
@@ -12828,84 +12679,6 @@
 
 
 #------------------------------------------------------
-# AB 06 活动物品兑换 #tagCMExchangeActionItem
-
-class  tagCMExchangeActionItem(Structure):
-    Head = tagHead()
-    ActionKeyLen = 0    #(BYTE ActionKeyLen)
-    ActionKey = ""    #(String ActionKey)
-    ItemID = 0    #(DWORD ItemID)// 兑换的目标物品ID
-    ExcCnt = 0    #(WORD ExcCnt)// 兑换个数,默认1个
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xAB
-        self.Head.SubCmd = 0x06
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        _pos = self.Head.ReadData(_lpData, _pos)
-        self.ActionKeyLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        self.ActionKey,_pos = CommFunc.ReadString(_lpData, _pos,self.ActionKeyLen)
-        self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.ExcCnt,_pos = CommFunc.ReadWORD(_lpData, _pos)
-        return _pos
-
-    def Clear(self):
-        self.Head = tagHead()
-        self.Head.Clear()
-        self.Head.Cmd = 0xAB
-        self.Head.SubCmd = 0x06
-        self.ActionKeyLen = 0
-        self.ActionKey = ""
-        self.ItemID = 0
-        self.ExcCnt = 0
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 1
-        length += len(self.ActionKey)
-        length += 4
-        length += 2
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteBYTE(data, self.ActionKeyLen)
-        data = CommFunc.WriteString(data, self.ActionKeyLen, self.ActionKey)
-        data = CommFunc.WriteDWORD(data, self.ItemID)
-        data = CommFunc.WriteWORD(data, self.ExcCnt)
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                ActionKeyLen:%d,
-                                ActionKey:%s,
-                                ItemID:%d,
-                                ExcCnt:%d
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.ActionKeyLen,
-                                self.ActionKey,
-                                self.ItemID,
-                                self.ExcCnt
-                                )
-        return DumpString
-
-
-m_NAtagCMExchangeActionItem=tagCMExchangeActionItem()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMExchangeActionItem.Head.Cmd,m_NAtagCMExchangeActionItem.Head.SubCmd))] = m_NAtagCMExchangeActionItem
-
-
-#------------------------------------------------------
 # AB 07 领取节日登陆奖励 #tagCMGetFestivalLoginAward
 
 class  tagCMGetFestivalLoginAward(Structure):
@@ -12959,106 +12732,6 @@
 
 m_NAtagCMGetFestivalLoginAward=tagCMGetFestivalLoginAward()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGetFestivalLoginAward.Cmd,m_NAtagCMGetFestivalLoginAward.SubCmd))] = m_NAtagCMGetFestivalLoginAward
-
-
-#------------------------------------------------------
-# AB 02 领取领地争夺战每日奖励 #tagCMGetManorWarDailyAward
-
-class  tagCMGetManorWarDailyAward(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("MapID", c_int),    # 领地id
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xAB
-        self.SubCmd = 0x02
-        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 = 0xAB
-        self.SubCmd = 0x02
-        self.MapID = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagCMGetManorWarDailyAward)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// AB 02 领取领地争夺战每日奖励 //tagCMGetManorWarDailyAward:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                MapID:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.MapID
-                                )
-        return DumpString
-
-
-m_NAtagCMGetManorWarDailyAward=tagCMGetManorWarDailyAward()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGetManorWarDailyAward.Cmd,m_NAtagCMGetManorWarDailyAward.SubCmd))] = m_NAtagCMGetManorWarDailyAward
-
-
-#------------------------------------------------------
-# AB 01 领取领地争夺战参与奖 #tagCMGetManorWarJoinAward
-
-class  tagCMGetManorWarJoinAward(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xAB
-        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 = 0xAB
-        self.SubCmd = 0x01
-        return
-
-    def GetLength(self):
-        return sizeof(tagCMGetManorWarJoinAward)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// AB 01 领取领地争夺战参与奖 //tagCMGetManorWarJoinAward:
-                                Cmd:%s,
-                                SubCmd:%s
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd
-                                )
-        return DumpString
-
-
-m_NAtagCMGetManorWarJoinAward=tagCMGetManorWarJoinAward()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGetManorWarJoinAward.Cmd,m_NAtagCMGetManorWarJoinAward.SubCmd))] = m_NAtagCMGetManorWarJoinAward
 
 
 #------------------------------------------------------
@@ -14206,6 +13879,83 @@
 
 
 #------------------------------------------------------
+# B2 06 玩家加点 #tagCMAddPoint
+
+class  tagCMAddPoint(Structure):
+    Head = tagHead()
+    PointAttrIDCount = 0    #(BYTE PointAttrIDCount)// 加点属性ID个数
+    PointAttrIDList = list()    #(vector<BYTE> PointAttrIDList)// 加点属性ID列表
+    PointValueList = list()    #(vector<WORD> PointValueList)// 加点属性ID对应的点数列表
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        self.Head.Cmd = 0xB2
+        self.Head.SubCmd = 0x06
+        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 = 0xB2
+        self.Head.SubCmd = 0x06
+        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_NAtagCMAddPoint=tagCMAddPoint()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMAddPoint.Head.Cmd,m_NAtagCMAddPoint.Head.SubCmd))] = m_NAtagCMAddPoint
+
+
+#------------------------------------------------------
 #B2 01 脱机挂状态 # tagCMLoginState
 
 class  tagCMLoginState(Structure):
@@ -14554,6 +14304,66 @@
 
 m_NAtagCMFightMove=tagCMFightMove()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMFightMove.Cmd,m_NAtagCMFightMove.SubCmd))] = m_NAtagCMFightMove
+
+
+#------------------------------------------------------
+#B4 0B 根据类型来决定移动的方式 #tagCMMoveByType
+
+class  tagCMMoveByType(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("PosX", c_ushort),    # 目标X
+                  ("PosY", c_ushort),    # 目标Y
+                  ("MoveType", c_ubyte),    #移动方式
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xB4
+        self.SubCmd = 0x0B
+        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 = 0xB4
+        self.SubCmd = 0x0B
+        self.PosX = 0
+        self.PosY = 0
+        self.MoveType = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagCMMoveByType)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''//B4 0B 根据类型来决定移动的方式 //tagCMMoveByType:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                PosX:%d,
+                                PosY:%d,
+                                MoveType:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.PosX,
+                                self.PosY,
+                                self.MoveType
+                                )
+        return DumpString
+
+
+m_NAtagCMMoveByType=tagCMMoveByType()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMMoveByType.Cmd,m_NAtagCMMoveByType.SubCmd))] = m_NAtagCMMoveByType
 
 
 #------------------------------------------------------
@@ -15273,6 +15083,70 @@
 
 
 #------------------------------------------------------
+# B5 14 拍卖行竞价物品 #tagCMBiddingAuctionItem
+
+class  tagCMBiddingAuctionItem(Structure):
+    Head = tagHead()
+    ItemGUID = ""    #(char ItemGUID[40])
+    BiddingPrice = 0    #(WORD BiddingPrice)//竞价价格
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        self.Head.Cmd = 0xB5
+        self.Head.SubCmd = 0x14
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        _pos = self.Head.ReadData(_lpData, _pos)
+        self.ItemGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
+        self.BiddingPrice,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        return _pos
+
+    def Clear(self):
+        self.Head = tagHead()
+        self.Head.Clear()
+        self.Head.Cmd = 0xB5
+        self.Head.SubCmd = 0x14
+        self.ItemGUID = ""
+        self.BiddingPrice = 0
+        return
+
+    def GetLength(self):
+        length = 0
+        length += self.Head.GetLength()
+        length += 40
+        length += 2
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+        data = CommFunc.WriteString(data, 40, self.ItemGUID)
+        data = CommFunc.WriteWORD(data, self.BiddingPrice)
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                Head:%s,
+                                ItemGUID:%s,
+                                BiddingPrice:%d
+                                '''\
+                                %(
+                                self.Head.OutputString(),
+                                self.ItemGUID,
+                                self.BiddingPrice
+                                )
+        return DumpString
+
+
+m_NAtagCMBiddingAuctionItem=tagCMBiddingAuctionItem()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMBiddingAuctionItem.Head.Cmd,m_NAtagCMBiddingAuctionItem.Head.SubCmd))] = m_NAtagCMBiddingAuctionItem
+
+
+#------------------------------------------------------
 # B5 02 交易所购买物品#tagCMPYBuyBourseItem
 
 class  tagCMPYBuyBourseItem(Structure):
@@ -15419,6 +15293,58 @@
 
 m_NAtagCMPYPlayerSellBourseItem=tagCMPYPlayerSellBourseItem()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMPYPlayerSellBourseItem.Head.Cmd,m_NAtagCMPYPlayerSellBourseItem.Head.SubCmd))] = m_NAtagCMPYPlayerSellBourseItem
+
+
+#------------------------------------------------------
+# B5 13 拍卖行上架拍品 #tagCMSellAuctionItem
+
+class  tagCMSellAuctionItem(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("ItemIndex", c_ubyte),    #物品在背包中索引
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xB5
+        self.SubCmd = 0x13
+        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 = 0xB5
+        self.SubCmd = 0x13
+        self.ItemIndex = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagCMSellAuctionItem)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// B5 13 拍卖行上架拍品 //tagCMSellAuctionItem:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                ItemIndex:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.ItemIndex
+                                )
+        return DumpString
+
+
+m_NAtagCMSellAuctionItem=tagCMSellAuctionItem()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMSellAuctionItem.Cmd,m_NAtagCMSellAuctionItem.SubCmd))] = m_NAtagCMSellAuctionItem
 
 
 #------------------------------------------------------
@@ -15698,6 +15624,58 @@
 
 
 #------------------------------------------------------
+# C1 08 跨服PK挑战机器人结算 #tagCMCrossRealmPKRobotOver
+
+class  tagCMCrossRealmPKRobotOver(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("IsWin", c_ubyte),    #是否获胜
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xC1
+        self.SubCmd = 0x08
+        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 = 0xC1
+        self.SubCmd = 0x08
+        self.IsWin = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagCMCrossRealmPKRobotOver)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// C1 08 跨服PK挑战机器人结算 //tagCMCrossRealmPKRobotOver:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                IsWin:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.IsWin
+                                )
+        return DumpString
+
+
+m_NAtagCMCrossRealmPKRobotOver=tagCMCrossRealmPKRobotOver()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMCrossRealmPKRobotOver.Cmd,m_NAtagCMCrossRealmPKRobotOver.SubCmd))] = m_NAtagCMCrossRealmPKRobotOver
+
+
+#------------------------------------------------------
 # C1 05 进入跨服地图 #tagCMEnterCrossServer
 
 class  tagCMEnterCrossServer(Structure):

--
Gitblit v1.8.0