From 2338f83c84cbd1bd27ff4c2c0ca70151e34c05e4 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 27 二月 2020 18:43:08 +0800
Subject: [PATCH] 8384 【主干】【后端】优化控制buff类对boss的影响

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py |  837 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 826 insertions(+), 11 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
index 5b4630e..cae53eb 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
@@ -1248,6 +1248,62 @@
 
 
 #------------------------------------------------------
+# A9 01 获取Boss首杀奖励 #tagCGGetBossFirstKillAward
+
+class  tagCGGetBossFirstKillAward(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("NPCID", c_int),    
+                  ("AwardType", c_ubyte),    # 0-首杀红包奖励;1-个人首杀奖励
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xA9
+        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 = 0xA9
+        self.SubCmd = 0x01
+        self.NPCID = 0
+        self.AwardType = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagCGGetBossFirstKillAward)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// A9 01 获取Boss首杀奖励 //tagCGGetBossFirstKillAward:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                NPCID:%d,
+                                AwardType:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.NPCID,
+                                self.AwardType
+                                )
+        return DumpString
+
+
+m_NAtagCGGetBossFirstKillAward=tagCGGetBossFirstKillAward()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGGetBossFirstKillAward.Cmd,m_NAtagCGGetBossFirstKillAward.SubCmd))] = m_NAtagCGGetBossFirstKillAward
+
+
+#------------------------------------------------------
 # A9 04 查询boss信息 #tagCGQueryBossInfo
 
 class  tagCGQueryBossInfo(Structure):
@@ -1904,6 +1960,115 @@
 
 
 #------------------------------------------------------
+# B0 13 取消协助Boss #tagCGCancelAssistBoss
+
+class  tagCGCancelAssistBoss(Structure):
+    Head = tagHead()
+    AssistGUID = ""    #(char AssistGUID[40])//协助GUID
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        self.Head.Cmd = 0xB0
+        self.Head.SubCmd = 0x13
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        _pos = self.Head.ReadData(_lpData, _pos)
+        self.AssistGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
+        return _pos
+
+    def Clear(self):
+        self.Head = tagHead()
+        self.Head.Clear()
+        self.Head.Cmd = 0xB0
+        self.Head.SubCmd = 0x13
+        self.AssistGUID = ""
+        return
+
+    def GetLength(self):
+        length = 0
+        length += self.Head.GetLength()
+        length += 40
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+        data = CommFunc.WriteString(data, 40, self.AssistGUID)
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                Head:%s,
+                                AssistGUID:%s
+                                '''\
+                                %(
+                                self.Head.OutputString(),
+                                self.AssistGUID
+                                )
+        return DumpString
+
+
+m_NAtagCGCancelAssistBoss=tagCGCancelAssistBoss()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGCancelAssistBoss.Head.Cmd,m_NAtagCGCancelAssistBoss.Head.SubCmd))] = m_NAtagCGCancelAssistBoss
+
+
+#------------------------------------------------------
+# B0 15 接收协助感谢礼物 #tagCGGetAssistThanksGift
+
+class  tagCGGetAssistThanksGift(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("IsPreview", c_ubyte),    #是否预览,非预览即确认领取,无额外奖励确认时也需要回复领取包代表已读
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xB0
+        self.SubCmd = 0x15
+        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 = 0xB0
+        self.SubCmd = 0x15
+        self.IsPreview = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagCGGetAssistThanksGift)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// B0 15 接收协助感谢礼物 //tagCGGetAssistThanksGift:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                IsPreview:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.IsPreview
+                                )
+        return DumpString
+
+
+m_NAtagCGGetAssistThanksGift=tagCGGetAssistThanksGift()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGGetAssistThanksGift.Cmd,m_NAtagCGGetAssistThanksGift.SubCmd))] = m_NAtagCGGetAssistThanksGift
+
+
+#------------------------------------------------------
 #B0 25 请求家族悬赏任务完成情况 #tagQueryFamilyArrestOverState
 
 class  tagQueryFamilyArrestOverState(Structure):
@@ -1949,6 +2114,119 @@
 
 m_NAtagQueryFamilyArrestOverState=tagQueryFamilyArrestOverState()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagQueryFamilyArrestOverState.Cmd,m_NAtagQueryFamilyArrestOverState.SubCmd))] = m_NAtagQueryFamilyArrestOverState
+
+
+#------------------------------------------------------
+# B0 12 开始协助Boss #tagCGStartAssistBoss
+
+class  tagCGStartAssistBoss(Structure):
+    Head = tagHead()
+    AssistGUID = ""    #(char AssistGUID[40])//协助GUID
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        self.Head.Cmd = 0xB0
+        self.Head.SubCmd = 0x12
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        _pos = self.Head.ReadData(_lpData, _pos)
+        self.AssistGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
+        return _pos
+
+    def Clear(self):
+        self.Head = tagHead()
+        self.Head.Clear()
+        self.Head.Cmd = 0xB0
+        self.Head.SubCmd = 0x12
+        self.AssistGUID = ""
+        return
+
+    def GetLength(self):
+        length = 0
+        length += self.Head.GetLength()
+        length += 40
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+        data = CommFunc.WriteString(data, 40, self.AssistGUID)
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                Head:%s,
+                                AssistGUID:%s
+                                '''\
+                                %(
+                                self.Head.OutputString(),
+                                self.AssistGUID
+                                )
+        return DumpString
+
+
+m_NAtagCGStartAssistBoss=tagCGStartAssistBoss()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGStartAssistBoss.Head.Cmd,m_NAtagCGStartAssistBoss.Head.SubCmd))] = m_NAtagCGStartAssistBoss
+
+
+#------------------------------------------------------
+# B0 14 使用协助感谢礼盒 #tagCGUseAssistThanksGift
+
+class  tagCGUseAssistThanksGift(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("ItemID", c_int),    
+                  ("IsPreview", c_ubyte),    #是否预览,非预览即确认使用
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xB0
+        self.SubCmd = 0x14
+        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 = 0xB0
+        self.SubCmd = 0x14
+        self.ItemID = 0
+        self.IsPreview = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagCGUseAssistThanksGift)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// B0 14 使用协助感谢礼盒 //tagCGUseAssistThanksGift:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                ItemID:%d,
+                                IsPreview:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.ItemID,
+                                self.IsPreview
+                                )
+        return DumpString
+
+
+m_NAtagCGUseAssistThanksGift=tagCGUseAssistThanksGift()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGUseAssistThanksGift.Cmd,m_NAtagCGUseAssistThanksGift.SubCmd))] = m_NAtagCGUseAssistThanksGift
 
 
 #------------------------------------------------------
@@ -5659,6 +5937,58 @@
 
 
 #------------------------------------------------------
+# A2 07 接受任务 #tagCMTakeTask
+
+class  tagCMTakeTask(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("TaskID", 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.TaskID = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagCMTakeTask)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// A2 07 接受任务 //tagCMTakeTask:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                TaskID:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.TaskID
+                                )
+        return DumpString
+
+
+m_NAtagCMTakeTask=tagCMTakeTask()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMTakeTask.Cmd,m_NAtagCMTakeTask.SubCmd))] = m_NAtagCMTakeTask
+
+
+#------------------------------------------------------
 #A2 12 查看玩家详细信息#tagCMViewPlayerInfo
 
 class  tagCMViewPlayerInfo(Structure):
@@ -6208,6 +6538,104 @@
 
 m_NAtagCMEquipEnchase=tagCMEquipEnchase()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMEquipEnchase.Cmd,m_NAtagCMEquipEnchase.SubCmd))] = m_NAtagCMEquipEnchase
+
+
+#------------------------------------------------------
+# A3 30 装备神装进阶 #tagCMEquipEvolve
+
+class  tagCMEquipEvolve(Structure):
+    Head = tagHead()
+    EquipIndex = 0    #(BYTE EquipIndex)// 要进阶的装备在装备背包中索引
+    NeedEquipIDIndex = 0    #(BYTE NeedEquipIDIndex)// 所需固定装备B在背包中索引
+    NeedItemIDIndexCnt = 0    #(BYTE NeedItemIDIndexCnt)// 附加材料在背包中索引个数
+    NeedItemIDIndex = list()    #(vector<BYTE> NeedItemIDIndex)// 附加材料在背包的索引列表
+    NeedSuitIndexCnt = 0    #(BYTE NeedSuitIndexCnt)// 所需套装材料在背包中索引个数
+    NeedSuitIndex = list()    #(vector<BYTE> NeedSuitIndex)// 所需套装材料在背包的索引列表
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        self.Head.Cmd = 0xA3
+        self.Head.SubCmd = 0x30
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        _pos = self.Head.ReadData(_lpData, _pos)
+        self.EquipIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.NeedEquipIDIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.NeedItemIDIndexCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.NeedItemIDIndexCnt):
+            value,_pos=CommFunc.ReadBYTE(_lpData,_pos)
+            self.NeedItemIDIndex.append(value)
+        self.NeedSuitIndexCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.NeedSuitIndexCnt):
+            value,_pos=CommFunc.ReadBYTE(_lpData,_pos)
+            self.NeedSuitIndex.append(value)
+        return _pos
+
+    def Clear(self):
+        self.Head = tagHead()
+        self.Head.Clear()
+        self.Head.Cmd = 0xA3
+        self.Head.SubCmd = 0x30
+        self.EquipIndex = 0
+        self.NeedEquipIDIndex = 0
+        self.NeedItemIDIndexCnt = 0
+        self.NeedItemIDIndex = list()
+        self.NeedSuitIndexCnt = 0
+        self.NeedSuitIndex = list()
+        return
+
+    def GetLength(self):
+        length = 0
+        length += self.Head.GetLength()
+        length += 1
+        length += 1
+        length += 1
+        length += 1 * self.NeedItemIDIndexCnt
+        length += 1
+        length += 1 * self.NeedSuitIndexCnt
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+        data = CommFunc.WriteBYTE(data, self.EquipIndex)
+        data = CommFunc.WriteBYTE(data, self.NeedEquipIDIndex)
+        data = CommFunc.WriteBYTE(data, self.NeedItemIDIndexCnt)
+        for i in range(self.NeedItemIDIndexCnt):
+            data = CommFunc.WriteBYTE(data, self.NeedItemIDIndex[i])
+        data = CommFunc.WriteBYTE(data, self.NeedSuitIndexCnt)
+        for i in range(self.NeedSuitIndexCnt):
+            data = CommFunc.WriteBYTE(data, self.NeedSuitIndex[i])
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                Head:%s,
+                                EquipIndex:%d,
+                                NeedEquipIDIndex:%d,
+                                NeedItemIDIndexCnt:%d,
+                                NeedItemIDIndex:%s,
+                                NeedSuitIndexCnt:%d,
+                                NeedSuitIndex:%s
+                                '''\
+                                %(
+                                self.Head.OutputString(),
+                                self.EquipIndex,
+                                self.NeedEquipIDIndex,
+                                self.NeedItemIDIndexCnt,
+                                "...",
+                                self.NeedSuitIndexCnt,
+                                "..."
+                                )
+        return DumpString
+
+
+m_NAtagCMEquipEvolve=tagCMEquipEvolve()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMEquipEvolve.Head.Cmd,m_NAtagCMEquipEvolve.Head.SubCmd))] = m_NAtagCMEquipEvolve
 
 
 #------------------------------------------------------
@@ -7529,7 +7957,7 @@
     _fields_ = [
                   ("Cmd", c_ubyte),
                   ("SubCmd", c_ubyte),
-                  ("HorseID", c_int),    #坐骑ID
+                  ("HorseID", c_int),    #坐骑幻化ID
                   ]
 
     def __init__(self):
@@ -7571,6 +7999,62 @@
 
 m_NAtagPlayerActivateHorse=tagPlayerActivateHorse()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerActivateHorse.Cmd,m_NAtagPlayerActivateHorse.SubCmd))] = m_NAtagPlayerActivateHorse
+
+
+#------------------------------------------------------
+# A5 C7 激活大师强化等级 #tagCMActivateMasterPlusLV
+
+class  tagCMActivateMasterPlusLV(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("ClassLV", c_ubyte),    # 所属装备阶
+                  ("MasterPlusLV", c_ushort),    # 大师强化等级
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xA5
+        self.SubCmd = 0xC7
+        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 = 0xC7
+        self.ClassLV = 0
+        self.MasterPlusLV = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagCMActivateMasterPlusLV)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// A5 C7 激活大师强化等级 //tagCMActivateMasterPlusLV:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                ClassLV:%d,
+                                MasterPlusLV:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.ClassLV,
+                                self.MasterPlusLV
+                                )
+        return DumpString
+
+
+m_NAtagCMActivateMasterPlusLV=tagCMActivateMasterPlusLV()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActivateMasterPlusLV.Cmd,m_NAtagCMActivateMasterPlusLV.SubCmd))] = m_NAtagCMActivateMasterPlusLV
 
 
 #------------------------------------------------------
@@ -9136,6 +9620,7 @@
     CostEquipCnt = 0    #(BYTE CostEquipCnt)// 装备个数
     CostEquipIndex = list()    #(vector<WORD> CostEquipIndex)// 装备索引
     CostEquipID = list()    #(vector<DWORD> CostEquipID)// 装备物品ID
+    AutoBuy = 0    #(BYTE AutoBuy)// 自动购买 0-不自动购买,1-自动购买并升星,2-自动购买预览(未满概率时预览消耗时使用)
     data = None
 
     def __init__(self):
@@ -9155,6 +9640,7 @@
         for i in range(self.CostEquipCnt):
             value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
             self.CostEquipID.append(value)
+        self.AutoBuy,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         return _pos
 
     def Clear(self):
@@ -9166,6 +9652,7 @@
         self.CostEquipCnt = 0
         self.CostEquipIndex = list()
         self.CostEquipID = list()
+        self.AutoBuy = 0
         return
 
     def GetLength(self):
@@ -9175,6 +9662,7 @@
         length += 1
         length += 2 * self.CostEquipCnt
         length += 4 * self.CostEquipCnt
+        length += 1
 
         return length
 
@@ -9187,6 +9675,7 @@
             data = CommFunc.WriteWORD(data, self.CostEquipIndex[i])
         for i in range(self.CostEquipCnt):
             data = CommFunc.WriteDWORD(data, self.CostEquipID[i])
+        data = CommFunc.WriteBYTE(data, self.AutoBuy)
         return data
 
     def OutputString(self):
@@ -9195,20 +9684,86 @@
                                 EquipPackIndex:%d,
                                 CostEquipCnt:%d,
                                 CostEquipIndex:%s,
-                                CostEquipID:%s
+                                CostEquipID:%s,
+                                AutoBuy:%d
                                 '''\
                                 %(
                                 self.Head.OutputString(),
                                 self.EquipPackIndex,
                                 self.CostEquipCnt,
                                 "...",
-                                "..."
+                                "...",
+                                self.AutoBuy
                                 )
         return DumpString
 
 
 m_NAtagCMEquipPartStarUp=tagCMEquipPartStarUp()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMEquipPartStarUp.Head.Cmd,m_NAtagCMEquipPartStarUp.Head.SubCmd))] = m_NAtagCMEquipPartStarUp
+
+
+#------------------------------------------------------
+# A5 C6 装备部位星级套装激活 #tagCMEquipPartSuiteActivate
+
+class  tagCMEquipPartSuiteActivate(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("ClassLV", c_ubyte),    # 所属装备阶
+                  ("SuiteID", c_ushort),    # 套装ID
+                  ("SuiteCount", c_ubyte),    # 件数
+                  ("Star", c_ubyte),    # 星数
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xA5
+        self.SubCmd = 0xC6
+        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 = 0xC6
+        self.ClassLV = 0
+        self.SuiteID = 0
+        self.SuiteCount = 0
+        self.Star = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagCMEquipPartSuiteActivate)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// A5 C6 装备部位星级套装激活 //tagCMEquipPartSuiteActivate:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                ClassLV:%d,
+                                SuiteID:%d,
+                                SuiteCount:%d,
+                                Star:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.ClassLV,
+                                self.SuiteID,
+                                self.SuiteCount,
+                                self.Star
+                                )
+        return DumpString
+
+
+m_NAtagCMEquipPartSuiteActivate=tagCMEquipPartSuiteActivate()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMEquipPartSuiteActivate.Cmd,m_NAtagCMEquipPartSuiteActivate.SubCmd))] = m_NAtagCMEquipPartSuiteActivate
 
 
 #------------------------------------------------------
@@ -9941,7 +10496,6 @@
     _fields_ = [
                   ("Cmd", c_ubyte),
                   ("SubCmd", c_ubyte),
-                  ("HorseID", c_int),    #坐骑ID
                   ("UseItemCnt", c_ubyte),    #消耗材料个数
                   ("IsAutoBuy", c_ubyte),    #是否自动购买
                   ]
@@ -9960,7 +10514,6 @@
     def Clear(self):
         self.Cmd = 0xA5
         self.SubCmd = 0x27
-        self.HorseID = 0
         self.UseItemCnt = 0
         self.IsAutoBuy = 0
         return
@@ -9975,14 +10528,12 @@
         DumpString = '''// A5 27 坐骑提升 //tagCMHorseUp:
                                 Cmd:%s,
                                 SubCmd:%s,
-                                HorseID:%d,
                                 UseItemCnt:%d,
                                 IsAutoBuy:%d
                                 '''\
                                 %(
                                 self.Cmd,
                                 self.SubCmd,
-                                self.HorseID,
                                 self.UseItemCnt,
                                 self.IsAutoBuy
                                 )
@@ -10153,7 +10704,8 @@
     _fields_ = [
                   ("Cmd", c_ubyte),
                   ("SubCmd", c_ubyte),
-                  ("Index", c_int),    #选择索引
+                  ("ChooseType", c_ubyte),    # 1-按等阶,2-按幻化
+                  ("LVID", c_ubyte),    # 阶等级或幻化ID
                   ]
 
     def __init__(self):
@@ -10170,7 +10722,8 @@
     def Clear(self):
         self.Cmd = 0xA5
         self.SubCmd = 0x02
-        self.Index = 0
+        self.ChooseType = 0
+        self.LVID = 0
         return
 
     def GetLength(self):
@@ -10183,12 +10736,14 @@
         DumpString = '''//A5 02 坐骑选择 //tagPlayerChooseHorse:
                                 Cmd:%s,
                                 SubCmd:%s,
-                                Index:%d
+                                ChooseType:%d,
+                                LVID:%d
                                 '''\
                                 %(
                                 self.Cmd,
                                 self.SubCmd,
-                                self.Index
+                                self.ChooseType,
+                                self.LVID
                                 )
         return DumpString
 
@@ -13503,6 +14058,154 @@
 
 
 #------------------------------------------------------
+# B0 29 活跃放置明细查询 #tagCMActivityPlaceQuery
+
+class  tagCMActivityPlaceQuery(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xB0
+        self.SubCmd = 0x29
+        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 = 0xB0
+        self.SubCmd = 0x29
+        return
+
+    def GetLength(self):
+        return sizeof(tagCMActivityPlaceQuery)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// B0 29 活跃放置明细查询 //tagCMActivityPlaceQuery:
+                                Cmd:%s,
+                                SubCmd:%s
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd
+                                )
+        return DumpString
+
+
+m_NAtagCMActivityPlaceQuery=tagCMActivityPlaceQuery()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActivityPlaceQuery.Cmd,m_NAtagCMActivityPlaceQuery.SubCmd))] = m_NAtagCMActivityPlaceQuery
+
+
+#------------------------------------------------------
+# B0 28 活跃放置快速完成 #tagCMActivityPlaceQuickFinish
+
+class  tagCMActivityPlaceQuickFinish(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("FinishCount", c_ubyte),    #完成次数
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xB0
+        self.SubCmd = 0x28
+        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 = 0xB0
+        self.SubCmd = 0x28
+        self.FinishCount = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagCMActivityPlaceQuickFinish)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// B0 28 活跃放置快速完成 //tagCMActivityPlaceQuickFinish:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                FinishCount:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.FinishCount
+                                )
+        return DumpString
+
+
+m_NAtagCMActivityPlaceQuickFinish=tagCMActivityPlaceQuickFinish()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActivityPlaceQuickFinish.Cmd,m_NAtagCMActivityPlaceQuickFinish.SubCmd))] = m_NAtagCMActivityPlaceQuickFinish
+
+
+#------------------------------------------------------
+# B0 27 活跃放置启动 #tagCMActivityPlaceStart
+
+class  tagCMActivityPlaceStart(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xB0
+        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 = 0xB0
+        self.SubCmd = 0x27
+        return
+
+    def GetLength(self):
+        return sizeof(tagCMActivityPlaceStart)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// B0 27 活跃放置启动 //tagCMActivityPlaceStart:
+                                Cmd:%s,
+                                SubCmd:%s
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd
+                                )
+        return DumpString
+
+
+m_NAtagCMActivityPlaceStart=tagCMActivityPlaceStart()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActivityPlaceStart.Cmd,m_NAtagCMActivityPlaceStart.SubCmd))] = m_NAtagCMActivityPlaceStart
+
+
+#------------------------------------------------------
 # B0 50 钓鱼收杆 #tagCMDoFish
 
 class  tagCMDoFish(Structure):
@@ -13659,6 +14362,118 @@
 
 
 #------------------------------------------------------
+# B0 10 请求协助Boss #tagCMRequestAssistBoss
+
+class  tagCMRequestAssistBoss(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("ObjID", c_int),    
+                  ("NPCID", c_int),    
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xB0
+        self.SubCmd = 0x10
+        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 = 0xB0
+        self.SubCmd = 0x10
+        self.ObjID = 0
+        self.NPCID = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagCMRequestAssistBoss)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// B0 10 请求协助Boss //tagCMRequestAssistBoss:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                ObjID:%d,
+                                NPCID:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.ObjID,
+                                self.NPCID
+                                )
+        return DumpString
+
+
+m_NAtagCMRequestAssistBoss=tagCMRequestAssistBoss()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRequestAssistBoss.Cmd,m_NAtagCMRequestAssistBoss.SubCmd))] = m_NAtagCMRequestAssistBoss
+
+
+#------------------------------------------------------
+# B0 11 请求协助组队副本 #tagCMRequestAssistTeamFB
+
+class  tagCMRequestAssistTeamFB(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("MapID", c_ushort),    
+                  ("LineID", c_ushort),    
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xB0
+        self.SubCmd = 0x11
+        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 = 0xB0
+        self.SubCmd = 0x11
+        self.MapID = 0
+        self.LineID = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagCMRequestAssistTeamFB)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// B0 11 请求协助组队副本 //tagCMRequestAssistTeamFB:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                MapID:%d,
+                                LineID:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.MapID,
+                                self.LineID
+                                )
+        return DumpString
+
+
+m_NAtagCMRequestAssistTeamFB=tagCMRequestAssistTeamFB()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRequestAssistTeamFB.Cmd,m_NAtagCMRequestAssistTeamFB.SubCmd))] = m_NAtagCMRequestAssistTeamFB
+
+
+#------------------------------------------------------
 # B0 05 开始世界传送 #tagCMWorldTransfer
 
 class  tagCMWorldTransfer(Structure):

--
Gitblit v1.8.0