From c82ca7ce4eaa66b71a9df0e7f54434530ac59c9d Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 02 十一月 2020 16:28:03 +0800
Subject: [PATCH] 8469 【BT】【后端】个人BOSS,获得S评级的BOSS可进行扫荡

---
 ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py | 1074 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 1,061 insertions(+), 13 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
index b2c6d08..87db781 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/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
 
 
 #------------------------------------------------------
@@ -3286,6 +3564,58 @@
 
 m_NAtagCGQueryTeamMemFuncData=tagCGQueryTeamMemFuncData()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGQueryTeamMemFuncData.Cmd,m_NAtagCGQueryTeamMemFuncData.SubCmd))] = m_NAtagCGQueryTeamMemFuncData
+
+
+#------------------------------------------------------
+# B9 11 请求加入队伍 #tagCGRequestJoinTeam
+
+class  tagCGRequestJoinTeam(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("TeamID", c_int),    # 目标队伍ID
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xB9
+        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 = 0xB9
+        self.SubCmd = 0x11
+        self.TeamID = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagCGRequestJoinTeam)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// B9 11 请求加入队伍 //tagCGRequestJoinTeam:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                TeamID:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.TeamID
+                                )
+        return DumpString
+
+
+m_NAtagCGRequestJoinTeam=tagCGRequestJoinTeam()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGRequestJoinTeam.Cmd,m_NAtagCGRequestJoinTeam.SubCmd))] = m_NAtagCGRequestJoinTeam
 
 
 #------------------------------------------------------
@@ -5659,6 +5989,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 +6590,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 +8009,7 @@
     _fields_ = [
                   ("Cmd", c_ubyte),
                   ("SubCmd", c_ubyte),
-                  ("HorseID", c_int),    #坐骑ID
+                  ("HorseID", c_int),    #坐骑幻化ID
                   ]
 
     def __init__(self):
@@ -7571,6 +8051,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 +9672,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 +9692,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 +9704,7 @@
         self.CostEquipCnt = 0
         self.CostEquipIndex = list()
         self.CostEquipID = list()
+        self.AutoBuy = 0
         return
 
     def GetLength(self):
@@ -9175,6 +9714,7 @@
         length += 1
         length += 2 * self.CostEquipCnt
         length += 4 * self.CostEquipCnt
+        length += 1
 
         return length
 
@@ -9187,6 +9727,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 +9736,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
 
 
 #------------------------------------------------------
@@ -9598,6 +10205,7 @@
                   ("Cmd", c_ubyte),
                   ("SubCmd", c_ubyte),
                   ("SuccID", c_int),    #成就ID
+                  ("IsPassport", c_ubyte),    #是否通行证奖励
                   ]
 
     def __init__(self):
@@ -9615,6 +10223,7 @@
         self.Cmd = 0xA5
         self.SubCmd = 0x42
         self.SuccID = 0
+        self.IsPassport = 0
         return
 
     def GetLength(self):
@@ -9627,12 +10236,14 @@
         DumpString = '''// A5 42 领取成就奖励 //tagMCGetSuccessAward:
                                 Cmd:%s,
                                 SubCmd:%s,
-                                SuccID:%d
+                                SuccID:%d,
+                                IsPassport:%d
                                 '''\
                                 %(
                                 self.Cmd,
                                 self.SubCmd,
-                                self.SuccID
+                                self.SuccID,
+                                self.IsPassport
                                 )
         return DumpString
 
@@ -9814,6 +10425,126 @@
 
 
 #------------------------------------------------------
+# A5 29 骑宠觉醒 #tagCMHorsePetAwake
+
+class  tagCMHorsePetAwake(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("Type", c_ushort),    # 1-坐骑 2-灵宠
+                  ("ID", c_int),    # 对应坐骑表灵宠表ID
+                  ("EatItemID", c_int),    # 吞噬的物品ID
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xA5
+        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 = 0xA5
+        self.SubCmd = 0x29
+        self.Type = 0
+        self.ID = 0
+        self.EatItemID = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagCMHorsePetAwake)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// A5 29 骑宠觉醒 //tagCMHorsePetAwake:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                Type:%d,
+                                ID:%d,
+                                EatItemID:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.Type,
+                                self.ID,
+                                self.EatItemID
+                                )
+        return DumpString
+
+
+m_NAtagCMHorsePetAwake=tagCMHorsePetAwake()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMHorsePetAwake.Cmd,m_NAtagCMHorsePetAwake.SubCmd))] = m_NAtagCMHorsePetAwake
+
+
+#------------------------------------------------------
+# A5 30 骑宠外观选择 #tagCMHorsePetSkinSelect
+
+class  tagCMHorsePetSkinSelect(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("Type", c_ushort),    # 1-坐骑 2-灵宠
+                  ("ID", c_int),    # 对应坐骑表灵宠表ID
+                  ("SkinIndex", c_ubyte),    # 外观索引
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xA5
+        self.SubCmd = 0x30
+        return
+
+    def ReadData(self, stringData, _pos=0, _len=0):
+        self.Clear()
+        memmove(addressof(self), stringData[_pos:], self.GetLength())
+        return _pos + self.GetLength()
+
+    def Clear(self):
+        self.Cmd = 0xA5
+        self.SubCmd = 0x30
+        self.Type = 0
+        self.ID = 0
+        self.SkinIndex = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagCMHorsePetSkinSelect)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// A5 30 骑宠外观选择 //tagCMHorsePetSkinSelect:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                Type:%d,
+                                ID:%d,
+                                SkinIndex:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.Type,
+                                self.ID,
+                                self.SkinIndex
+                                )
+        return DumpString
+
+
+m_NAtagCMHorsePetSkinSelect=tagCMHorsePetSkinSelect()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMHorsePetSkinSelect.Cmd,m_NAtagCMHorsePetSkinSelect.SubCmd))] = m_NAtagCMHorsePetSkinSelect
+
+
+#------------------------------------------------------
 # A5 27 坐骑提升 #tagCMHorseUp
 
 class  tagCMHorseUp(Structure):
@@ -9821,7 +10552,6 @@
     _fields_ = [
                   ("Cmd", c_ubyte),
                   ("SubCmd", c_ubyte),
-                  ("HorseID", c_int),    #坐骑ID
                   ("UseItemCnt", c_ubyte),    #消耗材料个数
                   ("IsAutoBuy", c_ubyte),    #是否自动购买
                   ]
@@ -9840,7 +10570,6 @@
     def Clear(self):
         self.Cmd = 0xA5
         self.SubCmd = 0x27
-        self.HorseID = 0
         self.UseItemCnt = 0
         self.IsAutoBuy = 0
         return
@@ -9855,14 +10584,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
                                 )
@@ -10033,7 +10760,8 @@
     _fields_ = [
                   ("Cmd", c_ubyte),
                   ("SubCmd", c_ubyte),
-                  ("Index", c_int),    #选择索引
+                  ("ChooseType", c_ubyte),    # 1-按等阶,2-按幻化
+                  ("LVID", c_ubyte),    # 阶等级或幻化ID
                   ]
 
     def __init__(self):
@@ -10050,7 +10778,8 @@
     def Clear(self):
         self.Cmd = 0xA5
         self.SubCmd = 0x02
-        self.Index = 0
+        self.ChooseType = 0
+        self.LVID = 0
         return
 
     def GetLength(self):
@@ -10063,12 +10792,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
 
@@ -13383,6 +14114,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):
@@ -13536,6 +14415,118 @@
 
 m_NAtagReceiveFamilyArrestAward=tagReceiveFamilyArrestAward()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagReceiveFamilyArrestAward.Cmd,m_NAtagReceiveFamilyArrestAward.SubCmd))] = m_NAtagReceiveFamilyArrestAward
+
+
+#------------------------------------------------------
+# 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
 
 
 #------------------------------------------------------
@@ -15788,6 +16779,63 @@
 
 
 #------------------------------------------------------
+# B5 15 拍卖行下架拍品 #tagCMUnsellAuctionItem
+
+class  tagCMUnsellAuctionItem(Structure):
+    Head = tagHead()
+    ItemGUID = ""    #(char ItemGUID[40])
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        self.Head.Cmd = 0xB5
+        self.Head.SubCmd = 0x15
+        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)
+        return _pos
+
+    def Clear(self):
+        self.Head = tagHead()
+        self.Head.Clear()
+        self.Head.Cmd = 0xB5
+        self.Head.SubCmd = 0x15
+        self.ItemGUID = ""
+        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.ItemGUID)
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                Head:%s,
+                                ItemGUID:%s
+                                '''\
+                                %(
+                                self.Head.OutputString(),
+                                self.ItemGUID
+                                )
+        return DumpString
+
+
+m_NAtagCMUnsellAuctionItem=tagCMUnsellAuctionItem()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMUnsellAuctionItem.Head.Cmd,m_NAtagCMUnsellAuctionItem.Head.SubCmd))] = m_NAtagCMUnsellAuctionItem
+
+
+#------------------------------------------------------
 # B9 04 修改队伍相关审核状态 #tagCMChangeTeamCheckState
 
 class  tagCMChangeTeamCheckState(Structure):

--
Gitblit v1.8.0