hxp
2025-08-26 a90e9dd726f63017404ed69d8c682956e42cd172
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
@@ -673,54 +673,6 @@
#------------------------------------------------------
# A1 09 同步打包玩家数据 #tagCMSycnPlayerPackData
class  tagCMSycnPlayerPackData(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA1
        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 = 0xA1
        self.SubCmd = 0x09
        return
    def GetLength(self):
        return sizeof(tagCMSycnPlayerPackData)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A1 09 同步打包玩家数据 //tagCMSycnPlayerPackData:
                                Cmd:%s,
                                SubCmd:%s
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd
                                )
        return DumpString
m_NAtagCMSycnPlayerPackData=tagCMSycnPlayerPackData()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMSycnPlayerPackData.Cmd,m_NAtagCMSycnPlayerPackData.SubCmd))] = m_NAtagCMSycnPlayerPackData
#------------------------------------------------------
#A1 03 设置是否成年 #tagCMAdult
class  tagCMAdult(Structure):
@@ -1779,66 +1731,6 @@
#------------------------------------------------------
# A2 28 查询仙盟抢Boss伤血列表 #tagCMQueryFamilyBossHurt
class  tagCMQueryFamilyBossHurt(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ObjID", c_int),
                  ("NPCID", c_int),
                  ("QueryType", c_ubyte),    # 0-实时仙盟伤血,1-历史仙盟伤血,2-实时玩家伤血,3-历史玩家伤血
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA2
        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 = 0xA2
        self.SubCmd = 0x28
        self.ObjID = 0
        self.NPCID = 0
        self.QueryType = 0
        return
    def GetLength(self):
        return sizeof(tagCMQueryFamilyBossHurt)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A2 28 查询仙盟抢Boss伤血列表 //tagCMQueryFamilyBossHurt:
                                Cmd:%s,
                                SubCmd:%s,
                                ObjID:%d,
                                NPCID:%d,
                                QueryType:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ObjID,
                                self.NPCID,
                                self.QueryType
                                )
        return DumpString
m_NAtagCMQueryFamilyBossHurt=tagCMQueryFamilyBossHurt()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMQueryFamilyBossHurt.Cmd,m_NAtagCMQueryFamilyBossHurt.SubCmd))] = m_NAtagCMQueryFamilyBossHurt
#------------------------------------------------------
# A2 27 查询地图NPC数量信息 #tagCMQueryNPCCntInfo
class  tagCMQueryNPCCntInfo(Structure):
@@ -2674,58 +2566,6 @@
m_NAtagCMViewPlayerInfo=tagCMViewPlayerInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMViewPlayerInfo.Cmd,m_NAtagCMViewPlayerInfo.SubCmd))] = m_NAtagCMViewPlayerInfo
#------------------------------------------------------
# A3 17 增加果实使用上限 #tagCMAddFruitUseLimit
class  tagCMAddFruitUseLimit(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ItemID", c_int),    #果实物品ID
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA3
        self.SubCmd = 0x17
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.Cmd = 0xA3
        self.SubCmd = 0x17
        self.ItemID = 0
        return
    def GetLength(self):
        return sizeof(tagCMAddFruitUseLimit)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A3 17 增加果实使用上限 //tagCMAddFruitUseLimit:
                                Cmd:%s,
                                SubCmd:%s,
                                ItemID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ItemID
                                )
        return DumpString
m_NAtagCMAddFruitUseLimit=tagCMAddFruitUseLimit()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMAddFruitUseLimit.Cmd,m_NAtagCMAddFruitUseLimit.SubCmd))] = m_NAtagCMAddFruitUseLimit
#------------------------------------------------------
@@ -4091,83 +3931,6 @@
#------------------------------------------------------
# A3 2A 回收魂石 #tagCMRecycleAttrFruit
class  tagCMRecycleAttrFruit(Structure):
    Head = tagHead()
    IndexCount = 0    #(BYTE IndexCount)//索引个数
    IndexList = list()    #(vector<BYTE> IndexList)//物品在背包中索引列表
    RecycleCountList = list()    #(vector<WORD> RecycleCountList)//索引对应回收个数列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x2A
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.IndexCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.IndexCount):
            value,_pos=CommFunc.ReadBYTE(_lpData,_pos)
            self.IndexList.append(value)
        for i in range(self.IndexCount):
            value,_pos=CommFunc.ReadWORD(_lpData,_pos)
            self.RecycleCountList.append(value)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x2A
        self.IndexCount = 0
        self.IndexList = list()
        self.RecycleCountList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 1 * self.IndexCount
        length += 2 * self.IndexCount
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.IndexCount)
        for i in range(self.IndexCount):
            data = CommFunc.WriteBYTE(data, self.IndexList[i])
        for i in range(self.IndexCount):
            data = CommFunc.WriteWORD(data, self.RecycleCountList[i])
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                IndexCount:%d,
                                IndexList:%s,
                                RecycleCountList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.IndexCount,
                                "...",
                                "..."
                                )
        return DumpString
m_NAtagCMRecycleAttrFruit=tagCMRecycleAttrFruit()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRecycleAttrFruit.Head.Cmd,m_NAtagCMRecycleAttrFruit.Head.SubCmd))] = m_NAtagCMRecycleAttrFruit
#------------------------------------------------------
#A3 03 物品合成 #tagCMItemCompound
class  tagCMItemCompound(Structure):
@@ -4492,58 +4255,6 @@
#------------------------------------------------------
# A3 2B 一键使用属性果实 #tagCMUseAllAttrFruit
class  tagCMUseAllAttrFruit(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("FuncIndex", c_ubyte),    #功能索引
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA3
        self.SubCmd = 0x2B
        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 = 0x2B
        self.FuncIndex = 0
        return
    def GetLength(self):
        return sizeof(tagCMUseAllAttrFruit)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A3 2B 一键使用属性果实 //tagCMUseAllAttrFruit:
                                Cmd:%s,
                                SubCmd:%s,
                                FuncIndex:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.FuncIndex
                                )
        return DumpString
m_NAtagCMUseAllAttrFruit=tagCMUseAllAttrFruit()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMUseAllAttrFruit.Cmd,m_NAtagCMUseAllAttrFruit.SubCmd))] = m_NAtagCMUseAllAttrFruit
#------------------------------------------------------
# A3 23 使用物品 #tagCMUseItems
class  tagCMUseItemsSelect(Structure):
@@ -4588,7 +4299,7 @@
class  tagCMUseItems(Structure):
    Head = tagHead()
    ItemIndex = 0    #(BYTE ItemIndex)//物品在背包中索引
    UseCnt = 0    #(WORD UseCnt)//使用个数,0表示全部使用
    UseCnt = 0    #(DWORD UseCnt)//使用个数,0表示全部使用
    ExData = 0    #(DWORD ExData)//使用扩展值, 默认0, 选择物品宝箱时发送选择的物品ID
    SelectCount = 0    #(BYTE SelectCount)//指定选择项,当批量使用单个箱子需要同时选中多种选项时使用该值
    SelectList = list()    #(vector<tagCMUseItemsSelect> SelectList)
@@ -4604,7 +4315,7 @@
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.ItemIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.UseCnt,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.UseCnt,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.ExData,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.SelectCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.SelectCount):
@@ -4629,7 +4340,7 @@
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 2
        length += 4
        length += 4
        length += 1
        for i in range(self.SelectCount):
@@ -4641,7 +4352,7 @@
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.ItemIndex)
        data = CommFunc.WriteWORD(data, self.UseCnt)
        data = CommFunc.WriteDWORD(data, self.UseCnt)
        data = CommFunc.WriteDWORD(data, self.ExData)
        data = CommFunc.WriteBYTE(data, self.SelectCount)
        for i in range(self.SelectCount):
@@ -5012,58 +4723,6 @@
m_NAtagCGFamilyStoreDel=tagCGFamilyStoreDel()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGFamilyStoreDel.Head.Cmd,m_NAtagCGFamilyStoreDel.Head.SubCmd))] = m_NAtagCGFamilyStoreDel
#------------------------------------------------------
# A4 10 仙盟联赛连胜奖励分配 #tagCGFamilyWarWinRewardAllot
class  tagCGFamilyWarWinRewardAllot(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("MemPlayerID", c_int),    #分配给的仙盟成员玩家ID
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA4
        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 = 0xA4
        self.SubCmd = 0x10
        self.MemPlayerID = 0
        return
    def GetLength(self):
        return sizeof(tagCGFamilyWarWinRewardAllot)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A4 10 仙盟联赛连胜奖励分配 //tagCGFamilyWarWinRewardAllot:
                                Cmd:%s,
                                SubCmd:%s,
                                MemPlayerID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.MemPlayerID
                                )
        return DumpString
m_NAtagCGFamilyWarWinRewardAllot=tagCGFamilyWarWinRewardAllot()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGFamilyWarWinRewardAllot.Cmd,m_NAtagCGFamilyWarWinRewardAllot.SubCmd))] = m_NAtagCGFamilyWarWinRewardAllot
#------------------------------------------------------
@@ -5491,58 +5150,6 @@
#------------------------------------------------------
# A5 30 购买魔魂铜钱经验什么的 #tagCMBuySomething
class  tagCMBuySomething(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("Type", c_ubyte),    #14铜钱,15经验
                  ]
    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
        return
    def GetLength(self):
        return sizeof(tagCMBuySomething)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 30 购买魔魂铜钱经验什么的 //tagCMBuySomething:
                                Cmd:%s,
                                SubCmd:%s,
                                Type:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.Type
                                )
        return DumpString
m_NAtagCMBuySomething=tagCMBuySomething()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMBuySomething.Cmd,m_NAtagCMBuySomething.SubCmd))] = m_NAtagCMBuySomething
#------------------------------------------------------
#A5 01 坐骑激活 #tagPlayerActivateHorse
class  tagPlayerActivateHorse(Structure):
@@ -5704,124 +5311,6 @@
m_NAtagCMActiveAllEquipAttr=tagCMActiveAllEquipAttr()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActiveAllEquipAttr.Cmd,m_NAtagCMActiveAllEquipAttr.SubCmd))] = m_NAtagCMActiveAllEquipAttr
#------------------------------------------------------
# A5 49 大师天赋技能加点 #tagCMAddMasterSkillPoint
class  tagCMMasterSkillPoint(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("SkillID", c_int),    # 天赋技能ID
                  ("AddPoint", c_ubyte),    # 加的点数
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA5
        self.SubCmd = 0x49
        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 = 0x49
        self.SkillID = 0
        self.AddPoint = 0
        return
    def GetLength(self):
        return sizeof(tagCMMasterSkillPoint)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 49 大师天赋技能加点 //tagCMAddMasterSkillPoint:
                                Cmd:%s,
                                SubCmd:%s,
                                SkillID:%d,
                                AddPoint:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.SkillID,
                                self.AddPoint
                                )
        return DumpString
class  tagCMAddMasterSkillPoint(Structure):
    Head = tagHead()
    SkillCnt = 0    #(BYTE SkillCnt)// 变更技能个数
    AddSkillPointList = list()    #(vector<tagCMMasterSkillPoint> AddSkillPointList)// 加的技能点数列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA5
        self.Head.SubCmd = 0x49
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.SkillCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.SkillCnt):
            temAddSkillPointList = tagCMMasterSkillPoint()
            _pos = temAddSkillPointList.ReadData(_lpData, _pos)
            self.AddSkillPointList.append(temAddSkillPointList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA5
        self.Head.SubCmd = 0x49
        self.SkillCnt = 0
        self.AddSkillPointList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.SkillCnt):
            length += self.AddSkillPointList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.SkillCnt)
        for i in range(self.SkillCnt):
            data = CommFunc.WriteString(data, self.AddSkillPointList[i].GetLength(), self.AddSkillPointList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                SkillCnt:%d,
                                AddSkillPointList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.SkillCnt,
                                "..."
                                )
        return DumpString
m_NAtagCMAddMasterSkillPoint=tagCMAddMasterSkillPoint()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMAddMasterSkillPoint.Head.Cmd,m_NAtagCMAddMasterSkillPoint.Head.SubCmd))] = m_NAtagCMAddMasterSkillPoint
#------------------------------------------------------
@@ -7408,62 +6897,6 @@
#------------------------------------------------------
# A5 48 兑换大师等级经验 #tagCMExchangeMasterEXP
class  tagCMExchangeMasterEXP(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("Multiples", c_ubyte),    # 20亿经验倍数
                  ("ExtraExp", c_int),    # 额外附加经验(不超过20亿)
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA5
        self.SubCmd = 0x48
        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 = 0x48
        self.Multiples = 0
        self.ExtraExp = 0
        return
    def GetLength(self):
        return sizeof(tagCMExchangeMasterEXP)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 48 兑换大师等级经验 //tagCMExchangeMasterEXP:
                                Cmd:%s,
                                SubCmd:%s,
                                Multiples:%d,
                                ExtraExp:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.Multiples,
                                self.ExtraExp
                                )
        return DumpString
m_NAtagCMExchangeMasterEXP=tagCMExchangeMasterEXP()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMExchangeMasterEXP.Cmd,m_NAtagCMExchangeMasterEXP.SubCmd))] = m_NAtagCMExchangeMasterEXP
#------------------------------------------------------
# A5 45 兑换通天令等级经验积分点 #tagCMExchangeTongTianLVPoint
class  tagCMExchangeTongTianLVPoint(Structure):
@@ -7569,220 +7002,6 @@
m_NAtagCMFaQiLVUp=tagCMFaQiLVUp()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMFaQiLVUp.Cmd,m_NAtagCMFaQiLVUp.SubCmd))] = m_NAtagCMFaQiLVUp
#------------------------------------------------------
# A5 1C 聚魂合成 #tagCMGatherSoulCompound
class  tagCMGatherSoulCompound(Structure):
    Head = tagHead()
    Cnt = 0    #(BYTE Cnt)
    PackList = list()    #(vector<BYTE> PackList)//所在位置 0-背包 1-孔
    IndexList = list()    #(vector<WORD> IndexList)//物品索引
    TagItemID = 0    #(DWORD TagItemID)//合成目标物品ID
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA5
        self.Head.SubCmd = 0x1C
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.Cnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.Cnt):
            value,_pos=CommFunc.ReadBYTE(_lpData,_pos)
            self.PackList.append(value)
        for i in range(self.Cnt):
            value,_pos=CommFunc.ReadWORD(_lpData,_pos)
            self.IndexList.append(value)
        self.TagItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA5
        self.Head.SubCmd = 0x1C
        self.Cnt = 0
        self.PackList = list()
        self.IndexList = list()
        self.TagItemID = 0
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 1 * self.Cnt
        length += 2 * self.Cnt
        length += 4
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.Cnt)
        for i in range(self.Cnt):
            data = CommFunc.WriteBYTE(data, self.PackList[i])
        for i in range(self.Cnt):
            data = CommFunc.WriteWORD(data, self.IndexList[i])
        data = CommFunc.WriteDWORD(data, self.TagItemID)
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Cnt:%d,
                                PackList:%s,
                                IndexList:%s,
                                TagItemID:%d
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Cnt,
                                "...",
                                "...",
                                self.TagItemID
                                )
        return DumpString
m_NAtagCMGatherSoulCompound=tagCMGatherSoulCompound()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGatherSoulCompound.Head.Cmd,m_NAtagCMGatherSoulCompound.Head.SubCmd))] = m_NAtagCMGatherSoulCompound
#------------------------------------------------------
# A5 19 聚魂分解 #tagCMGatherSoulDecompose
class  tagCMGatherSoulDecompose(Structure):
    Head = tagHead()
    IsAuto = 0    #(BYTE IsAuto)// 是否自动分解
    Count = 0    #(BYTE Count)// 指定批量分解数,最大不超过50个
    PlaceIndexList = list()    #(vector<WORD> PlaceIndexList)// 批量分解位置索引列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA5
        self.Head.SubCmd = 0x19
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.IsAuto,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.Count):
            value,_pos=CommFunc.ReadWORD(_lpData,_pos)
            self.PlaceIndexList.append(value)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA5
        self.Head.SubCmd = 0x19
        self.IsAuto = 0
        self.Count = 0
        self.PlaceIndexList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 1
        length += 2 * self.Count
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.IsAuto)
        data = CommFunc.WriteBYTE(data, self.Count)
        for i in range(self.Count):
            data = CommFunc.WriteWORD(data, self.PlaceIndexList[i])
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                IsAuto:%d,
                                Count:%d,
                                PlaceIndexList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.IsAuto,
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagCMGatherSoulDecompose=tagCMGatherSoulDecompose()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGatherSoulDecompose.Head.Cmd,m_NAtagCMGatherSoulDecompose.Head.SubCmd))] = m_NAtagCMGatherSoulDecompose
#------------------------------------------------------
# A5 18 聚魂升级 #tagCMGatherSoulUp
class  tagCMGatherSoulUp(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("PlaceType", c_ubyte),    # 位置类型;0-背包,1-孔
                  ("PlaceIndex", c_ushort),    # 位置索引
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA5
        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 = 0xA5
        self.SubCmd = 0x18
        self.PlaceType = 0
        self.PlaceIndex = 0
        return
    def GetLength(self):
        return sizeof(tagCMGatherSoulUp)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 18 聚魂升级 //tagCMGatherSoulUp:
                                Cmd:%s,
                                SubCmd:%s,
                                PlaceType:%d,
                                PlaceIndex:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.PlaceType,
                                self.PlaceIndex
                                )
        return DumpString
m_NAtagCMGatherSoulUp=tagCMGatherSoulUp()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGatherSoulUp.Cmd,m_NAtagCMGatherSoulUp.SubCmd))] = m_NAtagCMGatherSoulUp
#------------------------------------------------------
@@ -8622,110 +7841,6 @@
#------------------------------------------------------
# A5 15 提升法宝等级 #tagCMMagicWeaponUp
class  tagCMMagicWeaponUp(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("MWID", c_int),    #法宝ID
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA5
        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 = 0xA5
        self.SubCmd = 0x15
        self.MWID = 0
        return
    def GetLength(self):
        return sizeof(tagCMMagicWeaponUp)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 15 提升法宝等级 //tagCMMagicWeaponUp:
                                Cmd:%s,
                                SubCmd:%s,
                                MWID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.MWID
                                )
        return DumpString
m_NAtagCMMagicWeaponUp=tagCMMagicWeaponUp()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMMagicWeaponUp.Cmd,m_NAtagCMMagicWeaponUp.SubCmd))] = m_NAtagCMMagicWeaponUp
#------------------------------------------------------
# A5 0E 开启法宝 #tagCMOpenMagicWeapon
class  tagCMOpenMagicWeapon(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("MWID", c_int),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA5
        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 = 0xA5
        self.SubCmd = 0x0E
        self.MWID = 0
        return
    def GetLength(self):
        return sizeof(tagCMOpenMagicWeapon)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 0E 开启法宝 //tagCMOpenMagicWeapon:
                                Cmd:%s,
                                SubCmd:%s,
                                MWID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.MWID
                                )
        return DumpString
m_NAtagCMOpenMagicWeapon=tagCMOpenMagicWeapon()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMOpenMagicWeapon.Cmd,m_NAtagCMOpenMagicWeapon.SubCmd))] = m_NAtagCMOpenMagicWeapon
#------------------------------------------------------
# A5 24 开启渡劫 #tagCMOpenRealmFB
class  tagCMOpenRealmFB(Structure):
@@ -8905,114 +8020,6 @@
m_NAtagCMPlayerGetReward=tagCMPlayerGetReward()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMPlayerGetReward.Head.Cmd,m_NAtagCMPlayerGetReward.Head.SubCmd))] = m_NAtagCMPlayerGetReward
#------------------------------------------------------
# A5 76 玩家炼丹 #tagCMPlayerRefine
class  tagCMPlayerRefine(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("AlchemyID", c_int),    # 丹药ID
                  ("AlchemyTimes", c_ushort),    # 丹药次数
                  ("DoType", c_ubyte),    # 0-学习 1-开始炼丹 2-停止炼丹 3-开炉取丹
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA5
        self.SubCmd = 0x76
        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 = 0x76
        self.AlchemyID = 0
        self.AlchemyTimes = 0
        self.DoType = 0
        return
    def GetLength(self):
        return sizeof(tagCMPlayerRefine)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 76 玩家炼丹 //tagCMPlayerRefine:
                                Cmd:%s,
                                SubCmd:%s,
                                AlchemyID:%d,
                                AlchemyTimes:%d,
                                DoType:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.AlchemyID,
                                self.AlchemyTimes,
                                self.DoType
                                )
        return DumpString
m_NAtagCMPlayerRefine=tagCMPlayerRefine()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMPlayerRefine.Cmd,m_NAtagCMPlayerRefine.SubCmd))] = m_NAtagCMPlayerRefine
#------------------------------------------------------
# A5 14 祈福丹药 #tagCMPrayElixir
class  tagCMPrayElixir(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA5
        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 = 0xA5
        self.SubCmd = 0x14
        return
    def GetLength(self):
        return sizeof(tagCMPrayElixir)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 14 祈福丹药 //tagCMPrayElixir:
                                Cmd:%s,
                                SubCmd:%s
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd
                                )
        return DumpString
m_NAtagCMPrayElixir=tagCMPrayElixir()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMPrayElixir.Cmd,m_NAtagCMPrayElixir.SubCmd))] = m_NAtagCMPrayElixir
#------------------------------------------------------
@@ -9468,54 +8475,6 @@
#------------------------------------------------------
# A5 50 重置大师天赋技能 #tagCMResetMasterSkill
class  tagCMResetMasterSkill(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA5
        self.SubCmd = 0x50
        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 = 0x50
        return
    def GetLength(self):
        return sizeof(tagCMResetMasterSkill)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 50 重置大师天赋技能 //tagCMResetMasterSkill:
                                Cmd:%s,
                                SubCmd:%s
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd
                                )
        return DumpString
m_NAtagCMResetMasterSkill=tagCMResetMasterSkill()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMResetMasterSkill.Cmd,m_NAtagCMResetMasterSkill.SubCmd))] = m_NAtagCMResetMasterSkill
#------------------------------------------------------
# A5 66 符印分解 #tagCMRuneDecompose
class  tagCMRuneDecompose(Structure):
@@ -9841,58 +8800,6 @@
#------------------------------------------------------
# A5 12 感应法宝 #tagCMThinkMagicWeapon
class  tagCMThinkMagicWeapon(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("MWID", c_int),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA5
        self.SubCmd = 0x12
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.Cmd = 0xA5
        self.SubCmd = 0x12
        self.MWID = 0
        return
    def GetLength(self):
        return sizeof(tagCMThinkMagicWeapon)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 12 感应法宝 //tagCMThinkMagicWeapon:
                                Cmd:%s,
                                SubCmd:%s,
                                MWID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.MWID
                                )
        return DumpString
m_NAtagCMThinkMagicWeapon=tagCMThinkMagicWeapon()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMThinkMagicWeapon.Cmd,m_NAtagCMThinkMagicWeapon.SubCmd))] = m_NAtagCMThinkMagicWeapon
#------------------------------------------------------
# A5 36 称号升星 #tagCMTitleStarUp
class  tagCMTitleStarUp(Structure):
@@ -10094,178 +9001,6 @@
m_NAtagCMUnlockRuneHole=tagCMUnlockRuneHole()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMUnlockRuneHole.Cmd,m_NAtagCMUnlockRuneHole.SubCmd))] = m_NAtagCMUnlockRuneHole
#------------------------------------------------------
#A5 10 使用新手卡 #tagUseNewGuyCard
class  tagUseNewGuyCard(Structure):
    Head = tagHead()
    CodeStrLen = 0    #(BYTE CodeStrLen)
    CodeStr = ""    #(String CodeStr)//size = CodeStrLen
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA5
        self.Head.SubCmd = 0x10
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.CodeStrLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.CodeStr,_pos = CommFunc.ReadString(_lpData, _pos,self.CodeStrLen)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA5
        self.Head.SubCmd = 0x10
        self.CodeStrLen = 0
        self.CodeStr = ""
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += len(self.CodeStr)
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.CodeStrLen)
        data = CommFunc.WriteString(data, self.CodeStrLen, self.CodeStr)
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                CodeStrLen:%d,
                                CodeStr:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.CodeStrLen,
                                self.CodeStr
                                )
        return DumpString
m_NAtagUseNewGuyCard=tagUseNewGuyCard()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagUseNewGuyCard.Head.Cmd,m_NAtagUseNewGuyCard.Head.SubCmd))] = m_NAtagUseNewGuyCard
#------------------------------------------------------
# A5 26 寻访仙域 #tagCMVisitFairyDomain
class  tagCMVisitFairyDomain(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("Type", c_ubyte),    #0-开始寻访 1-结束寻访
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA5
        self.SubCmd = 0x26
        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 = 0x26
        self.Type = 0
        return
    def GetLength(self):
        return sizeof(tagCMVisitFairyDomain)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 26 寻访仙域 //tagCMVisitFairyDomain:
                                Cmd:%s,
                                SubCmd:%s,
                                Type:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.Type
                                )
        return DumpString
m_NAtagCMVisitFairyDomain=tagCMVisitFairyDomain()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMVisitFairyDomain.Cmd,m_NAtagCMVisitFairyDomain.SubCmd))] = m_NAtagCMVisitFairyDomain
#------------------------------------------------------
# A5 1D 法宝佩戴 #tagCMWearMagicWeapon
class  tagCMWearMagicWeapon(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("MWID", c_int),    #法宝ID
                  ("State", c_ubyte),    #0-卸下 1-佩戴
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA5
        self.SubCmd = 0x1D
        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 = 0x1D
        self.MWID = 0
        self.State = 0
        return
    def GetLength(self):
        return sizeof(tagCMWearMagicWeapon)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 1D 法宝佩戴 //tagCMWearMagicWeapon:
                                Cmd:%s,
                                SubCmd:%s,
                                MWID:%d,
                                State:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.MWID,
                                self.State
                                )
        return DumpString
m_NAtagCMWearMagicWeapon=tagCMWearMagicWeapon()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMWearMagicWeapon.Cmd,m_NAtagCMWearMagicWeapon.SubCmd))] = m_NAtagCMWearMagicWeapon
#------------------------------------------------------
@@ -11897,110 +10632,6 @@
#------------------------------------------------------
# A8 04 购买VIP礼包 #tagCMBuyVIPItem
class  tagCMBuyVIPItem(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("VIPLV", c_ubyte),    # VIP等级
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA8
        self.SubCmd = 0x04
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.Cmd = 0xA8
        self.SubCmd = 0x04
        self.VIPLV = 0
        return
    def GetLength(self):
        return sizeof(tagCMBuyVIPItem)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A8 04 购买VIP礼包 //tagCMBuyVIPItem:
                                Cmd:%s,
                                SubCmd:%s,
                                VIPLV:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.VIPLV
                                )
        return DumpString
m_NAtagCMBuyVIPItem=tagCMBuyVIPItem()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMBuyVIPItem.Cmd,m_NAtagCMBuyVIPItem.SubCmd))] = m_NAtagCMBuyVIPItem
#------------------------------------------------------
#A8 01 购买VIP时间 #tagCMBuyVipLV
class  tagCMBuyVipLV(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("VipType", c_ubyte),    # VIP时间类型
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA8
        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 = 0xA8
        self.SubCmd = 0x01
        self.VipType = 0
        return
    def GetLength(self):
        return sizeof(tagCMBuyVipLV)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''//A8 01 购买VIP时间 //tagCMBuyVipLV:
                                Cmd:%s,
                                SubCmd:%s,
                                VipType:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.VipType
                                )
        return DumpString
m_NAtagCMBuyVipLV=tagCMBuyVipLV()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMBuyVipLV.Cmd,m_NAtagCMBuyVipLV.SubCmd))] = m_NAtagCMBuyVipLV
#------------------------------------------------------
# A8 03 开通贵族 #tagCMOpenNoble
class  tagCMOpenNoble(Structure):
@@ -12098,58 +10729,6 @@
m_NAtagCMQueryRecharge=tagCMQueryRecharge()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMQueryRecharge.Cmd,m_NAtagCMQueryRecharge.SubCmd))] = m_NAtagCMQueryRecharge
#------------------------------------------------------
# A8 05 VIP杀怪等级信息同步开关 #tagCMVIPKillNPCLVInfoSwitch
class  tagCMVIPKillNPCLVInfoSwitch(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("IsOn", c_ubyte),    # 是否开启同步
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA8
        self.SubCmd = 0x05
        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 = 0xA8
        self.SubCmd = 0x05
        self.IsOn = 0
        return
    def GetLength(self):
        return sizeof(tagCMVIPKillNPCLVInfoSwitch)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A8 05 VIP杀怪等级信息同步开关 //tagCMVIPKillNPCLVInfoSwitch:
                                Cmd:%s,
                                SubCmd:%s,
                                IsOn:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.IsOn
                                )
        return DumpString
m_NAtagCMVIPKillNPCLVInfoSwitch=tagCMVIPKillNPCLVInfoSwitch()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMVIPKillNPCLVInfoSwitch.Cmd,m_NAtagCMVIPKillNPCLVInfoSwitch.SubCmd))] = m_NAtagCMVIPKillNPCLVInfoSwitch
#------------------------------------------------------
@@ -14345,62 +12924,6 @@
#------------------------------------------------------
# AB 03 仙魔之争押注 #tagCMXMZZBet
class  tagCMXMZZBet(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("BetIndex", c_ubyte),    # 押注索引
                  ("BetResult", c_ubyte),    # 结果 1-仙族赢 2-魔族赢
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAB
        self.SubCmd = 0x03
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.Cmd = 0xAB
        self.SubCmd = 0x03
        self.BetIndex = 0
        self.BetResult = 0
        return
    def GetLength(self):
        return sizeof(tagCMXMZZBet)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AB 03 仙魔之争押注 //tagCMXMZZBet:
                                Cmd:%s,
                                SubCmd:%s,
                                BetIndex:%d,
                                BetResult:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.BetIndex,
                                self.BetResult
                                )
        return DumpString
m_NAtagCMXMZZBet=tagCMXMZZBet()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMXMZZBet.Cmd,m_NAtagCMXMZZBet.SubCmd))] = m_NAtagCMXMZZBet
#------------------------------------------------------
# AB 11 开服活动奖励 #tagCMOpenServerCampaignAward
class  tagCMOpenServerCampaignAward(Structure):
@@ -14510,228 +13033,6 @@
m_NAtagCGCallupFamilyMemberToBoss=tagCGCallupFamilyMemberToBoss()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGCallupFamilyMemberToBoss.Cmd,m_NAtagCGCallupFamilyMemberToBoss.SubCmd))] = m_NAtagCGCallupFamilyMemberToBoss
#------------------------------------------------------
# AC 02 仙魔之争战斗结束 #tagCGXMZZOver
class  tagCGXMZZOver(Structure):
    Head = tagHead()
    IsWin = 0    #(BYTE IsWin)//是否胜利
    IsEnd = 0    #(BYTE IsEnd)//是否结束
    HPPer = 0    #(BYTE HPPer)//剩余血量百分比
    VSName = ""    #(char VSName[33])//对手名字
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAC
        self.Head.SubCmd = 0x02
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.IsWin,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.IsEnd,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.HPPer,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.VSName,_pos = CommFunc.ReadString(_lpData, _pos,33)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xAC
        self.Head.SubCmd = 0x02
        self.IsWin = 0
        self.IsEnd = 0
        self.HPPer = 0
        self.VSName = ""
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 1
        length += 1
        length += 33
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.IsWin)
        data = CommFunc.WriteBYTE(data, self.IsEnd)
        data = CommFunc.WriteBYTE(data, self.HPPer)
        data = CommFunc.WriteString(data, 33, self.VSName)
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                IsWin:%d,
                                IsEnd:%d,
                                HPPer:%d,
                                VSName:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.IsWin,
                                self.IsEnd,
                                self.HPPer,
                                self.VSName
                                )
        return DumpString
m_NAtagCGXMZZOver=tagCGXMZZOver()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGXMZZOver.Head.Cmd,m_NAtagCGXMZZOver.Head.SubCmd))] = m_NAtagCGXMZZOver
#------------------------------------------------------
# AC 01 仙魔之争报名 #tagCGJoinXMZZ
class  tagCGJoinXMZZ(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAC
        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 = 0xAC
        self.SubCmd = 0x01
        return
    def GetLength(self):
        return sizeof(tagCGJoinXMZZ)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AC 01 仙魔之争报名 //tagCGJoinXMZZ:
                                Cmd:%s,
                                SubCmd:%s
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd
                                )
        return DumpString
m_NAtagCGJoinXMZZ=tagCGJoinXMZZ()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGJoinXMZZ.Cmd,m_NAtagCGJoinXMZZ.SubCmd))] = m_NAtagCGJoinXMZZ
#------------------------------------------------------
# AC 04 查询仙盟抢Boss所有Boss当前进度 #tagCGQueryAllFamilyBossHurt
class  tagCGQueryAllFamilyBossHurt(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAC
        self.SubCmd = 0x04
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.Cmd = 0xAC
        self.SubCmd = 0x04
        return
    def GetLength(self):
        return sizeof(tagCGQueryAllFamilyBossHurt)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AC 04 查询仙盟抢Boss所有Boss当前进度 //tagCGQueryAllFamilyBossHurt:
                                Cmd:%s,
                                SubCmd:%s
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd
                                )
        return DumpString
m_NAtagCGQueryAllFamilyBossHurt=tagCGQueryAllFamilyBossHurt()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGQueryAllFamilyBossHurt.Cmd,m_NAtagCGQueryAllFamilyBossHurt.SubCmd))] = m_NAtagCGQueryAllFamilyBossHurt
#------------------------------------------------------
# AC 03 仙魔之争信息查询 #tagCGXMZZInfoQuery
class  tagCGXMZZInfoQuery(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAC
        self.SubCmd = 0x03
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.Cmd = 0xAC
        self.SubCmd = 0x03
        return
    def GetLength(self):
        return sizeof(tagCGXMZZInfoQuery)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AC 03 仙魔之争信息查询 //tagCGXMZZInfoQuery:
                                Cmd:%s,
                                SubCmd:%s
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd
                                )
        return DumpString
m_NAtagCGXMZZInfoQuery=tagCGXMZZInfoQuery()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGXMZZInfoQuery.Cmd,m_NAtagCGXMZZInfoQuery.SubCmd))] = m_NAtagCGXMZZInfoQuery
#------------------------------------------------------
@@ -15624,118 +13925,6 @@
#------------------------------------------------------
# B0 10 请求协助Boss #tagCMRequestAssistBoss
class  tagCMRequestAssistBoss(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ObjID", c_int),
                  ("NPCID", c_int),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB0
        self.SubCmd = 0x10
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.Cmd = 0xB0
        self.SubCmd = 0x10
        self.ObjID = 0
        self.NPCID = 0
        return
    def GetLength(self):
        return sizeof(tagCMRequestAssistBoss)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B0 10 请求协助Boss //tagCMRequestAssistBoss:
                                Cmd:%s,
                                SubCmd:%s,
                                ObjID:%d,
                                NPCID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ObjID,
                                self.NPCID
                                )
        return DumpString
m_NAtagCMRequestAssistBoss=tagCMRequestAssistBoss()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRequestAssistBoss.Cmd,m_NAtagCMRequestAssistBoss.SubCmd))] = m_NAtagCMRequestAssistBoss
#------------------------------------------------------
# B0 11 请求协助组队副本 #tagCMRequestAssistTeamFB
class  tagCMRequestAssistTeamFB(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("MapID", c_ushort),
                  ("LineID", c_ushort),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB0
        self.SubCmd = 0x11
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.Cmd = 0xB0
        self.SubCmd = 0x11
        self.MapID = 0
        self.LineID = 0
        return
    def GetLength(self):
        return sizeof(tagCMRequestAssistTeamFB)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B0 11 请求协助组队副本 //tagCMRequestAssistTeamFB:
                                Cmd:%s,
                                SubCmd:%s,
                                MapID:%d,
                                LineID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.MapID,
                                self.LineID
                                )
        return DumpString
m_NAtagCMRequestAssistTeamFB=tagCMRequestAssistTeamFB()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRequestAssistTeamFB.Cmd,m_NAtagCMRequestAssistTeamFB.SubCmd))] = m_NAtagCMRequestAssistTeamFB
#------------------------------------------------------
# B0 12 开始协助Boss #tagCGStartAssistBoss
class  tagCGStartAssistBoss(Structure):
@@ -16205,162 +14394,6 @@
#------------------------------------------------------
# B1 06 助战召唤 #tagCMHelpBattleCall
class  tagCMHelpBattleCall(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("IsOneKeyCall", c_ubyte),    # 是否一键召唤
                  ("PlayerID", c_int),    # 召唤的玩家ID,大于1小于100代表机器人
                  ("IsGoldCall", c_ubyte),    # 是否仙玉召唤
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB1
        self.SubCmd = 0x06
        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 = 0x06
        self.IsOneKeyCall = 0
        self.PlayerID = 0
        self.IsGoldCall = 0
        return
    def GetLength(self):
        return sizeof(tagCMHelpBattleCall)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B1 06 助战召唤 //tagCMHelpBattleCall:
                                Cmd:%s,
                                SubCmd:%s,
                                IsOneKeyCall:%d,
                                PlayerID:%d,
                                IsGoldCall:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.IsOneKeyCall,
                                self.PlayerID,
                                self.IsGoldCall
                                )
        return DumpString
m_NAtagCMHelpBattleCall=tagCMHelpBattleCall()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMHelpBattleCall.Cmd,m_NAtagCMHelpBattleCall.SubCmd))] = m_NAtagCMHelpBattleCall
#------------------------------------------------------
# B1 05 助战登记 #tagCMHelpBattleCheckIn
class  tagCMHelpBattleCheckIn(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB1
        self.SubCmd = 0x05
        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 = 0x05
        return
    def GetLength(self):
        return sizeof(tagCMHelpBattleCheckIn)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B1 05 助战登记 //tagCMHelpBattleCheckIn:
                                Cmd:%s,
                                SubCmd:%s
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd
                                )
        return DumpString
m_NAtagCMHelpBattleCheckIn=tagCMHelpBattleCheckIn()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMHelpBattleCheckIn.Cmd,m_NAtagCMHelpBattleCheckIn.SubCmd))] = m_NAtagCMHelpBattleCheckIn
#------------------------------------------------------
# B1 07 助战刷新 #tagCMHelpBattleRefresh
class  tagCMHelpBattleRefresh(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB1
        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 = 0xB1
        self.SubCmd = 0x07
        return
    def GetLength(self):
        return sizeof(tagCMHelpBattleRefresh)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B1 07 助战刷新 //tagCMHelpBattleRefresh:
                                Cmd:%s,
                                SubCmd:%s
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd
                                )
        return DumpString
m_NAtagCMHelpBattleRefresh=tagCMHelpBattleRefresh()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMHelpBattleRefresh.Cmd,m_NAtagCMHelpBattleRefresh.SubCmd))] = m_NAtagCMHelpBattleRefresh
#------------------------------------------------------
# B1 02 领取多倍副本奖励 #tagCMGetMultiFBPrize
class  tagCMGetMultiFBPrize(Structure):
@@ -16418,58 +14451,6 @@
m_NAtagCMGetMultiFBPrize=tagCMGetMultiFBPrize()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGetMultiFBPrize.Cmd,m_NAtagCMGetMultiFBPrize.SubCmd))] = m_NAtagCMGetMultiFBPrize
#------------------------------------------------------
# B1 03 设置封魔坛多倍击杀 #tagCMSetFMTDouble
class  tagCMSetFMTDouble(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("IsDouble", c_ubyte),    #是否双倍
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB1
        self.SubCmd = 0x03
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.Cmd = 0xB1
        self.SubCmd = 0x03
        self.IsDouble = 0
        return
    def GetLength(self):
        return sizeof(tagCMSetFMTDouble)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B1 03 设置封魔坛多倍击杀 //tagCMSetFMTDouble:
                                Cmd:%s,
                                SubCmd:%s,
                                IsDouble:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.IsDouble
                                )
        return DumpString
m_NAtagCMSetFMTDouble=tagCMSetFMTDouble()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMSetFMTDouble.Cmd,m_NAtagCMSetFMTDouble.SubCmd))] = m_NAtagCMSetFMTDouble
#------------------------------------------------------
@@ -16930,62 +14911,6 @@
m_NAtagCMFaceStarUP=tagCMFaceStarUP()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMFaceStarUP.Cmd,m_NAtagCMFaceStarUP.SubCmd))] = m_NAtagCMFaceStarUP
#------------------------------------------------------
# B2 25 新聚魂操作 #tagCMGatherTheSoulOP
class  tagCMGatherTheSoulOP(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("OpType", c_ubyte),    # 0-激活升级; 1-穿戴替换; 2-卸下
                  ("SoulID", c_int),    # 聚魂ID;当操作升级时,如果为0代表一键升级所有可升级的
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB2
        self.SubCmd = 0x25
        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 = 0x25
        self.OpType = 0
        self.SoulID = 0
        return
    def GetLength(self):
        return sizeof(tagCMGatherTheSoulOP)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B2 25 新聚魂操作 //tagCMGatherTheSoulOP:
                                Cmd:%s,
                                SubCmd:%s,
                                OpType:%d,
                                SoulID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.OpType,
                                self.SoulID
                                )
        return DumpString
m_NAtagCMGatherTheSoulOP=tagCMGatherTheSoulOP()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGatherTheSoulOP.Cmd,m_NAtagCMGatherTheSoulOP.SubCmd))] = m_NAtagCMGatherTheSoulOP
#------------------------------------------------------
@@ -17484,6 +15409,73 @@
#------------------------------------------------------
# B2 40 武将遣散 #tagCSHeroDismiss
class  tagCSHeroDismiss(Structure):
    Head = tagHead()
    Count = 0    #(WORD Count)
    ItemIndexList = list()    #(vector<WORD> ItemIndexList)// 武将物品所在武将背包位置索引列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xB2
        self.Head.SubCmd = 0x40
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos)
        for i in range(self.Count):
            value,_pos=CommFunc.ReadWORD(_lpData,_pos)
            self.ItemIndexList.append(value)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xB2
        self.Head.SubCmd = 0x40
        self.Count = 0
        self.ItemIndexList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 2
        length += 2 * self.Count
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteWORD(data, self.Count)
        for i in range(self.Count):
            data = CommFunc.WriteWORD(data, self.ItemIndexList[i])
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Count:%d,
                                ItemIndexList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagCSHeroDismiss=tagCSHeroDismiss()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCSHeroDismiss.Head.Cmd,m_NAtagCSHeroDismiss.Head.SubCmd))] = m_NAtagCSHeroDismiss
#------------------------------------------------------
# B2 38 武将锁定 #tagCSHeroLock
class  tagCSHeroLock(Structure):
@@ -17589,6 +15581,58 @@
m_NAtagCSHeroLVUP=tagCSHeroLVUP()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCSHeroLVUP.Cmd,m_NAtagCSHeroLVUP.SubCmd))] = m_NAtagCSHeroLVUP
#------------------------------------------------------
# B2 39 武将重生 #tagCSHeroRebirth
class  tagCSHeroRebirth(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ItemIndex", c_ushort),    #武将物品所在武将背包位置索引
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB2
        self.SubCmd = 0x39
        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 = 0x39
        self.ItemIndex = 0
        return
    def GetLength(self):
        return sizeof(tagCSHeroRebirth)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B2 39 武将重生 //tagCSHeroRebirth:
                                Cmd:%s,
                                SubCmd:%s,
                                ItemIndex:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ItemIndex
                                )
        return DumpString
m_NAtagCSHeroRebirth=tagCSHeroRebirth()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCSHeroRebirth.Cmd,m_NAtagCSHeroRebirth.SubCmd))] = m_NAtagCSHeroRebirth
#------------------------------------------------------
@@ -19312,70 +17356,6 @@
m_NAtagCSMainFightReq=tagCSMainFightReq()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCSMainFightReq.Cmd,m_NAtagCSMainFightReq.SubCmd))] = m_NAtagCSMainFightReq
#------------------------------------------------------
# B4 11 镜像战斗 #tagCMMirrorFight
class  tagCMMirrorFight(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("MapID", c_int),    # 自定义地图ID,如竞技场等
                  ("FuncLineID", c_ushort),
                  ("TagPlayeID", c_int),    # 目标玩家ID,支持跨服玩家ID
                  ("CmdType", c_ubyte),    # 命令类型: 0-创建战斗;1-开始战斗;2-战斗中跳过;3-不创建战斗直接得结果
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB4
        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 = 0xB4
        self.SubCmd = 0x11
        self.MapID = 0
        self.FuncLineID = 0
        self.TagPlayeID = 0
        self.CmdType = 0
        return
    def GetLength(self):
        return sizeof(tagCMMirrorFight)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B4 11 镜像战斗 //tagCMMirrorFight:
                                Cmd:%s,
                                SubCmd:%s,
                                MapID:%d,
                                FuncLineID:%d,
                                TagPlayeID:%d,
                                CmdType:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.MapID,
                                self.FuncLineID,
                                self.TagPlayeID,
                                self.CmdType
                                )
        return DumpString
m_NAtagCMMirrorFight=tagCMMirrorFight()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMMirrorFight.Cmd,m_NAtagCMMirrorFight.SubCmd))] = m_NAtagCMMirrorFight
#------------------------------------------------------
@@ -21149,62 +19129,6 @@
#------------------------------------------------------
# B9 04 修改队伍相关审核状态 #tagCMChangeTeamCheckState
class  tagCMChangeTeamCheckState(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("JoinReqCheck", c_ubyte),    #入队申请是否需要审核, 0否1是, 默认否, 即自动接受
                  ("InviteCheck", c_ubyte),    #组队邀请是否需要审核, 0否1是, 默认否, 即自动接受
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB9
        self.SubCmd = 0x04
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.Cmd = 0xB9
        self.SubCmd = 0x04
        self.JoinReqCheck = 0
        self.InviteCheck = 0
        return
    def GetLength(self):
        return sizeof(tagCMChangeTeamCheckState)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B9 04 修改队伍相关审核状态 //tagCMChangeTeamCheckState:
                                Cmd:%s,
                                SubCmd:%s,
                                JoinReqCheck:%d,
                                InviteCheck:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.JoinReqCheck,
                                self.InviteCheck
                                )
        return DumpString
m_NAtagCMChangeTeamCheckState=tagCMChangeTeamCheckState()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMChangeTeamCheckState.Cmd,m_NAtagCMChangeTeamCheckState.SubCmd))] = m_NAtagCMChangeTeamCheckState
#------------------------------------------------------
# B9 03 修改队伍信息 #tagCGChangeTeamInfo
class  tagCGChangeTeamInfo(Structure):
@@ -21888,58 +19812,6 @@
#------------------------------------------------------
# B9 10 查询在线队员对应功能数据 #tagCGQueryTeamMemFuncData
class  tagCGQueryTeamMemFuncData(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("TeamMemFuncType", c_ubyte),    # 查询队员的功能数据类型
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB9
        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 = 0xB9
        self.SubCmd = 0x10
        self.TeamMemFuncType = 0
        return
    def GetLength(self):
        return sizeof(tagCGQueryTeamMemFuncData)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B9 10 查询在线队员对应功能数据 //tagCGQueryTeamMemFuncData:
                                Cmd:%s,
                                SubCmd:%s,
                                TeamMemFuncType:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.TeamMemFuncType
                                )
        return DumpString
m_NAtagCGQueryTeamMemFuncData=tagCGQueryTeamMemFuncData()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGQueryTeamMemFuncData.Cmd,m_NAtagCGQueryTeamMemFuncData.SubCmd))] = m_NAtagCGQueryTeamMemFuncData
#------------------------------------------------------
# B9 11 请求加入队伍 #tagCGRequestJoinTeam
class  tagCGRequestJoinTeam(Structure):
@@ -22277,186 +20149,6 @@
m_NAtagCGChampionshipOfficialLeave=tagCGChampionshipOfficialLeave()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGChampionshipOfficialLeave.Cmd,m_NAtagCGChampionshipOfficialLeave.SubCmd))] = m_NAtagCGChampionshipOfficialLeave
#------------------------------------------------------
# C0 09 跨服战场召集场次修改 #tagCGCrossBattlefieldCallChange
class  tagCGCrossBattlefieldCallChange(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("Hour", c_ubyte),    #战场开启时
                  ("Minute", c_ubyte),    #战场开启分
                  ("ServerOnly", c_ubyte),    #是否仅本服玩家可加入,0-否,1-是
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xC0
        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 = 0xC0
        self.SubCmd = 0x09
        self.Hour = 0
        self.Minute = 0
        self.ServerOnly = 0
        return
    def GetLength(self):
        return sizeof(tagCGCrossBattlefieldCallChange)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// C0 09 跨服战场召集场次修改 //tagCGCrossBattlefieldCallChange:
                                Cmd:%s,
                                SubCmd:%s,
                                Hour:%d,
                                Minute:%d,
                                ServerOnly:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.Hour,
                                self.Minute,
                                self.ServerOnly
                                )
        return DumpString
m_NAtagCGCrossBattlefieldCallChange=tagCGCrossBattlefieldCallChange()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGCrossBattlefieldCallChange.Cmd,m_NAtagCGCrossBattlefieldCallChange.SubCmd))] = m_NAtagCGCrossBattlefieldCallChange
#------------------------------------------------------
# C0 08 跨服战场召集场次踢人 #tagCGCrossBattlefieldCallKick
class  tagCGCrossBattlefieldCallKick(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("Hour", c_ubyte),    #战场开启时
                  ("Minute", c_ubyte),    #战场开启分
                  ("TagPlayerID", c_int),    #目标玩家ID,即要被踢出去的玩家ID
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xC0
        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 = 0xC0
        self.SubCmd = 0x08
        self.Hour = 0
        self.Minute = 0
        self.TagPlayerID = 0
        return
    def GetLength(self):
        return sizeof(tagCGCrossBattlefieldCallKick)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// C0 08 跨服战场召集场次踢人 //tagCGCrossBattlefieldCallKick:
                                Cmd:%s,
                                SubCmd:%s,
                                Hour:%d,
                                Minute:%d,
                                TagPlayerID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.Hour,
                                self.Minute,
                                self.TagPlayerID
                                )
        return DumpString
m_NAtagCGCrossBattlefieldCallKick=tagCGCrossBattlefieldCallKick()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGCrossBattlefieldCallKick.Cmd,m_NAtagCGCrossBattlefieldCallKick.SubCmd))] = m_NAtagCGCrossBattlefieldCallKick
#------------------------------------------------------
# C0 07 跨服战场加入召集场次 #tagCGCrossBattlefieldJoinByCall
class  tagCGCrossBattlefieldJoinByCall(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("Hour", c_ubyte),    #战场开启时
                  ("Minute", c_ubyte),    #战场开启分
                  ("BuyPlayerID", c_int),    #加入目标玩家的召集队伍,即购买召集场的玩家ID
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xC0
        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 = 0xC0
        self.SubCmd = 0x07
        self.Hour = 0
        self.Minute = 0
        self.BuyPlayerID = 0
        return
    def GetLength(self):
        return sizeof(tagCGCrossBattlefieldJoinByCall)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// C0 07 跨服战场加入召集场次 //tagCGCrossBattlefieldJoinByCall:
                                Cmd:%s,
                                SubCmd:%s,
                                Hour:%d,
                                Minute:%d,
                                BuyPlayerID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.Hour,
                                self.Minute,
                                self.BuyPlayerID
                                )
        return DumpString
m_NAtagCGCrossBattlefieldJoinByCall=tagCGCrossBattlefieldJoinByCall()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGCrossBattlefieldJoinByCall.Cmd,m_NAtagCGCrossBattlefieldJoinByCall.SubCmd))] = m_NAtagCGCrossBattlefieldJoinByCall
#------------------------------------------------------
@@ -23105,70 +20797,6 @@
m_NAtagCMChampionshipWorship=tagCMChampionshipWorship()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMChampionshipWorship.Cmd,m_NAtagCMChampionshipWorship.SubCmd))] = m_NAtagCMChampionshipWorship
#------------------------------------------------------
# C1 09 跨服战场购买开启场次 #tagCMCrossBattlefieldBuyOpen
class  tagCMCrossBattlefieldBuyOpen(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("Hour", c_ubyte),    #战场开启时
                  ("Minute", c_ubyte),    #战场开启分
                  ("Faction", c_ubyte),    #阵营 1-红;2-蓝
                  ("ServerOnly", c_ubyte),    #是否仅本服玩家可加入,0-否,1-是
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xC1
        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 = 0xC1
        self.SubCmd = 0x09
        self.Hour = 0
        self.Minute = 0
        self.Faction = 0
        self.ServerOnly = 0
        return
    def GetLength(self):
        return sizeof(tagCMCrossBattlefieldBuyOpen)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// C1 09 跨服战场购买开启场次 //tagCMCrossBattlefieldBuyOpen:
                                Cmd:%s,
                                SubCmd:%s,
                                Hour:%d,
                                Minute:%d,
                                Faction:%d,
                                ServerOnly:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.Hour,
                                self.Minute,
                                self.Faction,
                                self.ServerOnly
                                )
        return DumpString
m_NAtagCMCrossBattlefieldBuyOpen=tagCMCrossBattlefieldBuyOpen()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMCrossBattlefieldBuyOpen.Cmd,m_NAtagCMCrossBattlefieldBuyOpen.SubCmd))] = m_NAtagCMCrossBattlefieldBuyOpen
#------------------------------------------------------