ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
@@ -1248,6 +1248,110 @@
#------------------------------------------------------
# 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 A8 查看竞技场对战记录 #tagCGQueryArenaBattleRecord
class  tagCGQueryArenaBattleRecord(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA9
        self.SubCmd = 0xA8
        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 = 0xA8
        return
    def GetLength(self):
        return sizeof(tagCGQueryArenaBattleRecord)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A9 A8 查看竞技场对战记录 //tagCGQueryArenaBattleRecord:
                                Cmd:%s,
                                SubCmd:%s
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd
                                )
        return DumpString
m_NAtagCGQueryArenaBattleRecord=tagCGQueryArenaBattleRecord()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGQueryArenaBattleRecord.Cmd,m_NAtagCGQueryArenaBattleRecord.SubCmd))] = m_NAtagCGQueryArenaBattleRecord
#------------------------------------------------------
# A9 04 查询boss信息 #tagCGQueryBossInfo
class  tagCGQueryBossInfo(Structure):
@@ -1904,6 +2008,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 +2162,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 +3612,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 +6037,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):
@@ -6211,6 +6641,104 @@
#------------------------------------------------------
# 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
#------------------------------------------------------
#A3 01 装备强化 #tagEquipPlus
class  tagEquipPlus(Structure):
@@ -6727,6 +7255,7 @@
                  ("SubCmd", c_ubyte),
                  ("PackType", c_ubyte),    #背包类型
                  ("ItemIndex", c_ubyte),    #物品在背包中索引
                  ("IsAll", c_ubyte),    #是否处理所有过期物品
                  ]
    def __init__(self):
@@ -6745,6 +7274,7 @@
        self.SubCmd = 0x08
        self.PackType = 0
        self.ItemIndex = 0
        self.IsAll = 0
        return
    def GetLength(self):
@@ -6758,13 +7288,15 @@
                                Cmd:%s,
                                SubCmd:%s,
                                PackType:%d,
                                ItemIndex:%d
                                ItemIndex:%d,
                                IsAll:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.PackType,
                                self.ItemIndex
                                self.ItemIndex,
                                self.IsAll
                                )
        return DumpString
@@ -7529,7 +8061,7 @@
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("HorseID", c_int),    #坐骑ID
                  ("HorseID", c_int),    #坐骑幻化ID
                  ]
    def __init__(self):
@@ -7571,6 +8103,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 +9724,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 +9744,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 +9756,7 @@
        self.CostEquipCnt = 0
        self.CostEquipIndex = list()
        self.CostEquipID = list()
        self.AutoBuy = 0
        return
    def GetLength(self):
@@ -9175,6 +9766,7 @@
        length += 1
        length += 2 * self.CostEquipCnt
        length += 4 * self.CostEquipCnt
        length += 1
        return length
@@ -9187,6 +9779,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 +9788,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 +10257,7 @@
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("SuccID", c_int),    #成就ID
                  ("IsPassport", c_ubyte),    #是否通行证奖励
                  ]
    def __init__(self):
@@ -9615,6 +10275,7 @@
        self.Cmd = 0xA5
        self.SubCmd = 0x42
        self.SuccID = 0
        self.IsPassport = 0
        return
    def GetLength(self):
@@ -9627,12 +10288,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
@@ -9941,8 +10604,7 @@
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("HorseID", c_int),    #坐骑ID
                  ("UseItemCnt", c_ubyte),    #消耗材料个数
                  ("UseItemCnt", c_ushort),    #消耗材料个数
                  ("IsAutoBuy", c_ubyte),    #是否自动购买
                  ]
@@ -9960,7 +10622,6 @@
    def Clear(self):
        self.Cmd = 0xA5
        self.SubCmd = 0x27
        self.HorseID = 0
        self.UseItemCnt = 0
        self.IsAutoBuy = 0
        return
@@ -9975,14 +10636,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 +10812,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 +10830,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 +10844,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 +14166,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):
@@ -13656,6 +14467,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
#------------------------------------------------------
@@ -14244,6 +15167,114 @@
#------------------------------------------------------
# B2 10 竞技场挑战玩家 #tagCMArenaBattle
class  tagCMArenaBattle(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("TagPlayerID", c_int),    # 目标玩家ID或机器人ID
                  ("Result", c_ubyte),    # 0-进入自定义场景发送通知后端;1-胜利(后端处理,暂时不需要发送此状态);2-失败(前端被对手击杀需要发送此状态)
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB2
        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 = 0xB2
        self.SubCmd = 0x10
        self.TagPlayerID = 0
        self.Result = 0
        return
    def GetLength(self):
        return sizeof(tagCMArenaBattle)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B2 10 竞技场挑战玩家 //tagCMArenaBattle:
                                Cmd:%s,
                                SubCmd:%s,
                                TagPlayerID:%d,
                                Result:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.TagPlayerID,
                                self.Result
                                )
        return DumpString
m_NAtagCMArenaBattle=tagCMArenaBattle()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMArenaBattle.Cmd,m_NAtagCMArenaBattle.SubCmd))] = m_NAtagCMArenaBattle
#------------------------------------------------------
# B2 09 竞技场匹配玩家 #tagCMArenaMatch
class  tagCMArenaMatch(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("IsRefresh", c_ubyte),    # 0-打开界面无匹配数据时时查询,1-强制刷新匹配列表
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB2
        self.SubCmd = 0x09
        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 = 0xB2
        self.SubCmd = 0x09
        self.IsRefresh = 0
        return
    def GetLength(self):
        return sizeof(tagCMArenaMatch)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B2 09 竞技场匹配玩家 //tagCMArenaMatch:
                                Cmd:%s,
                                SubCmd:%s,
                                IsRefresh:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.IsRefresh
                                )
        return DumpString
m_NAtagCMArenaMatch=tagCMArenaMatch()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMArenaMatch.Cmd,m_NAtagCMArenaMatch.SubCmd))] = m_NAtagCMArenaMatch
#------------------------------------------------------
# B2 07 重置加点 #tagCMResetAttrPoint
class  tagCMResetAttrPoint(Structure):