hch
2020-09-28 50bb08e844f4abebbc2e00806122bd51ab931f5f
Tool/Robot/Protocol/PacketsSendPY.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
#------------------------------------------------------
@@ -2228,7 +2506,7 @@
class  tagCGVoiceChat(Structure):
    Head = tagHead()
    ChannelType = 0    #(BYTE ChannelType)// 1 世界 2 仙盟 3 私聊(好友) 4 队伍 -------查看封包tagCMVoiceChat 5 区域
    ChannelType = 0    #(BYTE ChannelType)// 1 世界 2 仙盟 3 私聊(好友) 4 队伍 -------查看封包tagCMVoiceChat 5 区域
    TargetNameLen = 0    #(BYTE TargetNameLen)
    TargetName = ""    #(String TargetName)//size = TargetNameLen
    TargetID = 0    #(DWORD TargetID)// 默认发玩家ID,没有ID才发名称
@@ -3396,8 +3674,8 @@
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ZoneID", c_ubyte),    # 赛区ID
                  ("SeasonID", c_ubyte),    # 赛季ID
                  ("ZoneID", c_ubyte),    # 赛区ID
                  ("SeasonID", c_ubyte),    # 赛季ID
                  ]
    def __init__(self):
@@ -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):
@@ -5953,7 +6283,7 @@
                  ("SrcBackpack", c_ubyte),    #源背包类型
                  ("DesBackPack", c_ubyte),    #目标背包类型
                  ("SrcIndex", c_ushort),    #转移物品索引位置;当全部转移时此值无效
                  ("IsAll", c_ubyte),    #是否全部转移
                  ("IsAll", c_ubyte),    #是否全部转移
                  ]
    def __init__(self):
@@ -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
#------------------------------------------------------
@@ -6599,62 +7027,6 @@
#------------------------------------------------------
# A3 30 装备诛仙装备 #tagCMEquipZhuXianItem
class  tagCMEquipZhuXianItem(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("EquipIndex", c_ubyte),    #装备在诛仙装备背包中的索引
                  ("ItemIndex", c_ubyte),    #装备在诛仙物品背包中的索引
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA3
        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 = 0xA3
        self.SubCmd = 0x30
        self.EquipIndex = 0
        self.ItemIndex = 0
        return
    def GetLength(self):
        return sizeof(tagCMEquipZhuXianItem)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A3 30 装备诛仙装备 //tagCMEquipZhuXianItem:
                                Cmd:%s,
                                SubCmd:%s,
                                EquipIndex:%d,
                                ItemIndex:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.EquipIndex,
                                self.ItemIndex
                                )
        return DumpString
m_NAtagCMEquipZhuXianItem=tagCMEquipZhuXianItem()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMEquipZhuXianItem.Cmd,m_NAtagCMEquipZhuXianItem.SubCmd))] = m_NAtagCMEquipZhuXianItem
#------------------------------------------------------
# A3 12 守护拾取物品 #tagCMGuardPickupItem
class  tagCMGuardPickupItem(Structure):
@@ -6827,6 +7199,58 @@
m_NAtagCMItemTimeout=tagCMItemTimeout()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMItemTimeout.Cmd,m_NAtagCMItemTimeout.SubCmd))] = m_NAtagCMItemTimeout
#------------------------------------------------------
# A3 18 灵器突破 #tagCMLingQiEquipBreak
class  tagCMLingQiEquipBreak(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ItemID", c_int),    #突破的物品ID
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA3
        self.SubCmd = 0x18
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.Cmd = 0xA3
        self.SubCmd = 0x18
        self.ItemID = 0
        return
    def GetLength(self):
        return sizeof(tagCMLingQiEquipBreak)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A3 18 灵器突破 //tagCMLingQiEquipBreak:
                                Cmd:%s,
                                SubCmd:%s,
                                ItemID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ItemID
                                )
        return DumpString
m_NAtagCMLingQiEquipBreak=tagCMLingQiEquipBreak()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMLingQiEquipBreak.Cmd,m_NAtagCMLingQiEquipBreak.SubCmd))] = m_NAtagCMLingQiEquipBreak
#------------------------------------------------------
@@ -7295,58 +7719,6 @@
#------------------------------------------------------
# A3 31 卸下诛仙装备 #tagCMUnEquipZhuXianItem
class  tagCMUnEquipZhuXianItem(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("EquipIndex", c_ubyte),    #装备在诛仙装备背包中的索引
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA3
        self.SubCmd = 0x31
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.Cmd = 0xA3
        self.SubCmd = 0x31
        self.EquipIndex = 0
        return
    def GetLength(self):
        return sizeof(tagCMUnEquipZhuXianItem)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A3 31 卸下诛仙装备 //tagCMUnEquipZhuXianItem:
                                Cmd:%s,
                                SubCmd:%s,
                                EquipIndex:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.EquipIndex
                                )
        return DumpString
m_NAtagCMUnEquipZhuXianItem=tagCMUnEquipZhuXianItem()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMUnEquipZhuXianItem.Cmd,m_NAtagCMUnEquipZhuXianItem.SubCmd))] = m_NAtagCMUnEquipZhuXianItem
#------------------------------------------------------
# A3 2B 一键使用属性果实 #tagCMUseAllAttrFruit
class  tagCMUseAllAttrFruit(Structure):
@@ -7526,90 +7898,6 @@
#------------------------------------------------------
# A3 32 诛仙装备分解 #tagCMZhuXianEquipDecompose
class  tagCMZhuXianEquipDecompose(Structure):
    Head = tagHead()
    Count = 0    #(BYTE Count)//材料所在背包索引的数量
    IndexList = list()    #(vector<WORD> IndexList)//材料所在背包索引列表
    ItemIDList = list()    #(vector<DWORD> ItemIDList)//材料所在背包物品ID列表
    IsAuto = 0    #(BYTE IsAuto)//是否自动分解
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x32
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.Count):
            value,_pos=CommFunc.ReadWORD(_lpData,_pos)
            self.IndexList.append(value)
        for i in range(self.Count):
            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
            self.ItemIDList.append(value)
        self.IsAuto,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x32
        self.Count = 0
        self.IndexList = list()
        self.ItemIDList = list()
        self.IsAuto = 0
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 2 * self.Count
        length += 4 * self.Count
        length += 1
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.Count)
        for i in range(self.Count):
            data = CommFunc.WriteWORD(data, self.IndexList[i])
        for i in range(self.Count):
            data = CommFunc.WriteDWORD(data, self.ItemIDList[i])
        data = CommFunc.WriteBYTE(data, self.IsAuto)
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Count:%d,
                                IndexList:%s,
                                ItemIDList:%s,
                                IsAuto:%d
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Count,
                                "...",
                                "...",
                                self.IsAuto
                                )
        return DumpString
m_NAtagCMZhuXianEquipDecompose=tagCMZhuXianEquipDecompose()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMZhuXianEquipDecompose.Head.Cmd,m_NAtagCMZhuXianEquipDecompose.Head.SubCmd))] = m_NAtagCMZhuXianEquipDecompose
#------------------------------------------------------
# A5 30 购买魔魂铜钱经验什么的 #tagCMBuySomething
class  tagCMBuySomething(Structure):
@@ -7669,7 +7957,7 @@
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("HorseID", c_int),    #坐骑ID
                  ("HorseID", c_int),    #坐骑幻化ID
                  ]
    def __init__(self):
@@ -7711,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
#------------------------------------------------------
@@ -9276,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):
@@ -9295,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):
@@ -9306,6 +9652,7 @@
        self.CostEquipCnt = 0
        self.CostEquipIndex = list()
        self.CostEquipID = list()
        self.AutoBuy = 0
        return
    def GetLength(self):
@@ -9315,6 +9662,7 @@
        length += 1
        length += 2 * self.CostEquipCnt
        length += 4 * self.CostEquipCnt
        length += 1
        return length
@@ -9327,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):
@@ -9335,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
#------------------------------------------------------
@@ -9738,6 +10153,7 @@
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("SuccID", c_int),    #成就ID
                  ("IsPassport", c_ubyte),    #是否通行证奖励
                  ]
    def __init__(self):
@@ -9755,6 +10171,7 @@
        self.Cmd = 0xA5
        self.SubCmd = 0x42
        self.SuccID = 0
        self.IsPassport = 0
        return
    def GetLength(self):
@@ -9767,12 +10184,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
@@ -9954,6 +10373,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):
@@ -9961,7 +10500,6 @@
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("HorseID", c_int),    #坐骑ID
                  ("UseItemCnt", c_ubyte),    #消耗材料个数
                  ("IsAutoBuy", c_ubyte),    #是否自动购买
                  ]
@@ -9980,7 +10518,6 @@
    def Clear(self):
        self.Cmd = 0xA5
        self.SubCmd = 0x27
        self.HorseID = 0
        self.UseItemCnt = 0
        self.IsAutoBuy = 0
        return
@@ -9995,14 +10532,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
                                )
@@ -10173,7 +10708,8 @@
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("Index", c_int),    #选择索引
                  ("ChooseType", c_ubyte),    # 1-按等阶,2-按幻化
                  ("LVID", c_ubyte),    # 阶等级或幻化ID
                  ]
    def __init__(self):
@@ -10190,7 +10726,8 @@
    def Clear(self):
        self.Cmd = 0xA5
        self.SubCmd = 0x02
        self.Index = 0
        self.ChooseType = 0
        self.LVID = 0
        return
    def GetLength(self):
@@ -10203,12 +10740,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
@@ -10304,6 +10843,7 @@
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("AlchemyID", c_int),    # 丹药ID
                  ("AlchemyTimes", c_ushort),    # 丹药次数
                  ("DoType", c_ubyte),    # 0-学习 1-开始炼丹 2-停止炼丹 3-开炉取丹
                  ]
@@ -10322,6 +10862,7 @@
        self.Cmd = 0xA5
        self.SubCmd = 0x76
        self.AlchemyID = 0
        self.AlchemyTimes = 0
        self.DoType = 0
        return
@@ -10336,12 +10877,14 @@
                                Cmd:%s,
                                SubCmd:%s,
                                AlchemyID:%d,
                                AlchemyTimes:%d,
                                DoType:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.AlchemyID,
                                self.AlchemyTimes,
                                self.DoType
                                )
        return DumpString
@@ -11065,6 +11608,7 @@
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("SkillTypeID", c_int),    # 专精技能ID
                  ("DoType", c_ubyte),    # 0-激活 1-使用
                  ]
    def __init__(self):
@@ -11082,6 +11626,7 @@
        self.Cmd = 0xA5
        self.SubCmd = 0x16
        self.SkillTypeID = 0
        self.DoType = 0
        return
    def GetLength(self):
@@ -11094,12 +11639,14 @@
        DumpString = '''// A5 16 选择技能五行专精 //tagCMSelectSkillElement:
                                Cmd:%s,
                                SubCmd:%s,
                                SkillTypeID:%d
                                SkillTypeID:%d,
                                DoType:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.SkillTypeID
                                self.SkillTypeID,
                                self.DoType
                                )
        return DumpString
@@ -11649,6 +12196,83 @@
m_NAtagCMRenameFamily=tagCMRenameFamily()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRenameFamily.Head.Cmd,m_NAtagCMRenameFamily.Head.SubCmd))] = m_NAtagCMRenameFamily
#------------------------------------------------------
# A6 06 家族兑换活跃令 #tagCMFamilyActivityExchange
class  tagCMFamilyActivityExchange(Structure):
    Head = tagHead()
    Count = 0    #(BYTE Count)//材料所在背包索引的数量
    IndexList = list()    #(vector<WORD> IndexList)//材料所在背包索引列表
    ItemIDList = list()    #(vector<DWORD> ItemIDList)//材料所在背包物品ID列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA6
        self.Head.SubCmd = 0x06
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.Count):
            value,_pos=CommFunc.ReadWORD(_lpData,_pos)
            self.IndexList.append(value)
        for i in range(self.Count):
            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
            self.ItemIDList.append(value)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA6
        self.Head.SubCmd = 0x06
        self.Count = 0
        self.IndexList = list()
        self.ItemIDList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 2 * self.Count
        length += 4 * self.Count
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.Count)
        for i in range(self.Count):
            data = CommFunc.WriteWORD(data, self.IndexList[i])
        for i in range(self.Count):
            data = CommFunc.WriteDWORD(data, self.ItemIDList[i])
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Count:%d,
                                IndexList:%s,
                                ItemIDList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Count,
                                "...",
                                "..."
                                )
        return DumpString
m_NAtagCMFamilyActivityExchange=tagCMFamilyActivityExchange()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMFamilyActivityExchange.Head.Cmd,m_NAtagCMFamilyActivityExchange.Head.SubCmd))] = m_NAtagCMFamilyActivityExchange
#------------------------------------------------------
@@ -13438,6 +14062,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):
@@ -13591,6 +14363,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
#------------------------------------------------------
@@ -13834,62 +14718,6 @@
#------------------------------------------------------
# B1 09 结算自定义副本奖励 #tagCMGiveCustomFBPrize
class  tagCMGiveCustomFBPrize(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("MapID", c_int),
                  ("FuncLineID", c_ushort),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB1
        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 = 0xB1
        self.SubCmd = 0x09
        self.MapID = 0
        self.FuncLineID = 0
        return
    def GetLength(self):
        return sizeof(tagCMGiveCustomFBPrize)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B1 09 结算自定义副本奖励 //tagCMGiveCustomFBPrize:
                                Cmd:%s,
                                SubCmd:%s,
                                MapID:%d,
                                FuncLineID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.MapID,
                                self.FuncLineID
                                )
        return DumpString
m_NAtagCMGiveCustomFBPrize=tagCMGiveCustomFBPrize()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGiveCustomFBPrize.Cmd,m_NAtagCMGiveCustomFBPrize.SubCmd))] = m_NAtagCMGiveCustomFBPrize
#------------------------------------------------------
# B1 06 助战召唤 #tagCMHelpBattleCall
class  tagCMHelpBattleCall(Structure):
@@ -14106,62 +14934,6 @@
#------------------------------------------------------
# B1 08 刷新自定义副本奖励 #tagCMRefreshCustomFBPrize
class  tagCMRefreshCustomFBPrize(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("MapID", c_int),
                  ("FuncLineID", c_ushort),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB1
        self.SubCmd = 0x08
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.Cmd = 0xB1
        self.SubCmd = 0x08
        self.MapID = 0
        self.FuncLineID = 0
        return
    def GetLength(self):
        return sizeof(tagCMRefreshCustomFBPrize)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B1 08 刷新自定义副本奖励 //tagCMRefreshCustomFBPrize:
                                Cmd:%s,
                                SubCmd:%s,
                                MapID:%d,
                                FuncLineID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.MapID,
                                self.FuncLineID
                                )
        return DumpString
m_NAtagCMRefreshCustomFBPrize=tagCMRefreshCustomFBPrize()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRefreshCustomFBPrize.Cmd,m_NAtagCMRefreshCustomFBPrize.SubCmd))] = m_NAtagCMRefreshCustomFBPrize
#------------------------------------------------------
# B1 03 设置封魔坛多倍击杀 #tagCMSetFMTDouble
class  tagCMSetFMTDouble(Structure):
@@ -14220,7 +14992,7 @@
    Head = tagHead()
    PointAttrIDCount = 0    #(BYTE PointAttrIDCount)// 加点属性ID个数
    PointAttrIDList = list()    #(vector<BYTE> PointAttrIDList)// 加点属性ID列表
    PointValueList = list()    #(vector<WORD> PointValueList)// 加点属性ID对应的点数列表
    PointValueList = list()    #(vector<DWORD> PointValueList)// 加点属性ID对应的点数列表
    data = None
    def __init__(self):
@@ -14237,7 +15009,7 @@
            value,_pos=CommFunc.ReadBYTE(_lpData,_pos)
            self.PointAttrIDList.append(value)
        for i in range(self.PointAttrIDCount):
            value,_pos=CommFunc.ReadWORD(_lpData,_pos)
            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
            self.PointValueList.append(value)
        return _pos
@@ -14256,7 +15028,7 @@
        length += self.Head.GetLength()
        length += 1
        length += 1 * self.PointAttrIDCount
        length += 2 * self.PointAttrIDCount
        length += 4 * self.PointAttrIDCount
        return length
@@ -14267,7 +15039,7 @@
        for i in range(self.PointAttrIDCount):
            data = CommFunc.WriteBYTE(data, self.PointAttrIDList[i])
        for i in range(self.PointAttrIDCount):
            data = CommFunc.WriteWORD(data, self.PointValueList[i])
            data = CommFunc.WriteDWORD(data, self.PointValueList[i])
        return data
    def OutputString(self):
@@ -14622,6 +15394,110 @@
#------------------------------------------------------
# B4 0F 回收私有专属木桩怪 #tagCMRecyclePriWoodPile
class  tagCMRecyclePriWoodPile(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ObjID", c_int),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB4
        self.SubCmd = 0x0F
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.Cmd = 0xB4
        self.SubCmd = 0x0F
        self.ObjID = 0
        return
    def GetLength(self):
        return sizeof(tagCMRecyclePriWoodPile)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B4 0F 回收私有专属木桩怪 //tagCMRecyclePriWoodPile:
                                Cmd:%s,
                                SubCmd:%s,
                                ObjID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ObjID
                                )
        return DumpString
m_NAtagCMRecyclePriWoodPile=tagCMRecyclePriWoodPile()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRecyclePriWoodPile.Cmd,m_NAtagCMRecyclePriWoodPile.SubCmd))] = m_NAtagCMRecyclePriWoodPile
#------------------------------------------------------
# B4 0E 玩家掉血 #tagCMRoleLostHP
class  tagCMRoleLostHP(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("LostHP", c_int),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB4
        self.SubCmd = 0x0E
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.Cmd = 0xB4
        self.SubCmd = 0x0E
        self.LostHP = 0
        return
    def GetLength(self):
        return sizeof(tagCMRoleLostHP)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B4 0E 玩家掉血 //tagCMRoleLostHP:
                                Cmd:%s,
                                SubCmd:%s,
                                LostHP:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.LostHP
                                )
        return DumpString
m_NAtagCMRoleLostHP=tagCMRoleLostHP()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRoleLostHP.Cmd,m_NAtagCMRoleLostHP.SubCmd))] = m_NAtagCMRoleLostHP
#------------------------------------------------------
# B4 0C 召唤私有专属木桩怪 #tagCMSummonPriWoodPile
class  tagCMSummonPriWoodPile(Structure):
@@ -14631,6 +15507,8 @@
                  ("SubCmd", c_ubyte),
                  ("NPCID", c_int),    
                  ("Count", c_ubyte),    #默认1个,最多5个
                  ("HP", c_int),    #默认0取最大值,其中一个血量数值大于0则用指定血量
                  ("HPEx", c_int),    #默认0取最大值,其中一个血量数值大于0则用指定血量
                  ]
    def __init__(self):
@@ -14649,6 +15527,8 @@
        self.SubCmd = 0x0C
        self.NPCID = 0
        self.Count = 0
        self.HP = 0
        self.HPEx = 0
        return
    def GetLength(self):
@@ -14662,13 +15542,17 @@
                                Cmd:%s,
                                SubCmd:%s,
                                NPCID:%d,
                                Count:%d
                                Count:%d,
                                HP:%d,
                                HPEx:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.NPCID,
                                self.Count
                                self.Count,
                                self.HP,
                                self.HPEx
                                )
        return DumpString
@@ -15843,6 +16727,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):
@@ -16271,4 +17212,4 @@
m_NAtagCMExitCrossRealm=tagCMExitCrossRealm()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMExitCrossRealm.Cmd,m_NAtagCMExitCrossRealm.SubCmd))] = m_NAtagCMExitCrossRealm
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMExitCrossRealm.Cmd,m_NAtagCMExitCrossRealm.SubCmd))] = m_NAtagCMExitCrossRealm