hxp
2025-10-17 f495a32d55731268db3e8fbd272769e1c6ab1fb3
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
@@ -1031,58 +1031,6 @@
#------------------------------------------------------
# A2 36 聊天气泡框升星 #tagCMChatBubbleBoxStarUP
class  tagCMChatBubbleBoxStarUP(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("BoxID", c_ubyte),    #气泡ID
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA2
        self.SubCmd = 0x36
        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 = 0x36
        self.BoxID = 0
        return
    def GetLength(self):
        return sizeof(tagCMChatBubbleBoxStarUP)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A2 36 聊天气泡框升星 //tagCMChatBubbleBoxStarUP:
                                Cmd:%s,
                                SubCmd:%s,
                                BoxID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.BoxID
                                )
        return DumpString
m_NAtagCMChatBubbleBoxStarUP=tagCMChatBubbleBoxStarUP()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMChatBubbleBoxStarUP.Cmd,m_NAtagCMChatBubbleBoxStarUP.SubCmd))] = m_NAtagCMChatBubbleBoxStarUP
#------------------------------------------------------
# A2 24 触碰NPC #tagCMTouchNPC
class  tagCMTouchNPC(Structure):
@@ -1962,58 +1910,6 @@
m_NAtagCMSelectRealmDifficulty=tagCMSelectRealmDifficulty()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMSelectRealmDifficulty.Cmd,m_NAtagCMSelectRealmDifficulty.SubCmd))] = m_NAtagCMSelectRealmDifficulty
#------------------------------------------------------
# A2 30 设置聊天气泡框 #tagCMSetChatBubbleBox
class  tagCMSetChatBubbleBox(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("BubbleBoxType", c_ubyte),    #气泡框类型
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA2
        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 = 0xA2
        self.SubCmd = 0x30
        self.BubbleBoxType = 0
        return
    def GetLength(self):
        return sizeof(tagCMSetChatBubbleBox)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A2 30 设置聊天气泡框 //tagCMSetChatBubbleBox:
                                Cmd:%s,
                                SubCmd:%s,
                                BubbleBoxType:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.BubbleBoxType
                                )
        return DumpString
m_NAtagCMSetChatBubbleBox=tagCMSetChatBubbleBox()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMSetChatBubbleBox.Cmd,m_NAtagCMSetChatBubbleBox.SubCmd))] = m_NAtagCMSetChatBubbleBox
#------------------------------------------------------
@@ -5384,62 +5280,6 @@
#------------------------------------------------------
# A5 25 购买日常活动次数 #tagCMBuyDailyActionCnt
class  tagCMBuyDailyActionCnt(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ActionID", c_int),    # ID
                  ("AddType", c_ubyte),    # 0-花仙玉 1-用物品
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA5
        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 = 0xA5
        self.SubCmd = 0x25
        self.ActionID = 0
        self.AddType = 0
        return
    def GetLength(self):
        return sizeof(tagCMBuyDailyActionCnt)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 25 购买日常活动次数 //tagCMBuyDailyActionCnt:
                                Cmd:%s,
                                SubCmd:%s,
                                ActionID:%d,
                                AddType:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ActionID,
                                self.AddType
                                )
        return DumpString
m_NAtagCMBuyDailyActionCnt=tagCMBuyDailyActionCnt()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMBuyDailyActionCnt.Cmd,m_NAtagCMBuyDailyActionCnt.SubCmd))] = m_NAtagCMBuyDailyActionCnt
#------------------------------------------------------
#A5 75 购买副本进入次数#tagCMBuyEnterCount
class  tagCMBuyEnterCount(Structure):
@@ -8237,58 +8077,6 @@
#------------------------------------------------------
# A5 36 称号升星 #tagCMTitleStarUp
class  tagCMTitleStarUp(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("TitleID", c_int),    #称号ID
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA5
        self.SubCmd = 0x36
        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 = 0x36
        self.TitleID = 0
        return
    def GetLength(self):
        return sizeof(tagCMTitleStarUp)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 36 称号升星 //tagCMTitleStarUp:
                                Cmd:%s,
                                SubCmd:%s,
                                TitleID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.TitleID
                                )
        return DumpString
m_NAtagCMTitleStarUp=tagCMTitleStarUp()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMTitleStarUp.Cmd,m_NAtagCMTitleStarUp.SubCmd))] = m_NAtagCMTitleStarUp
#------------------------------------------------------
# A5 73 解锁命格孔 #tagCMUnLockBirthChartHole
class  tagCMUnLockBirthChartHole(Structure):
@@ -9417,91 +9205,6 @@
m_NAtagCMRequestJoinFamilyByPlayer=tagCMRequestJoinFamilyByPlayer()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRequestJoinFamilyByPlayer.Cmd,m_NAtagCMRequestJoinFamilyByPlayer.SubCmd))] = m_NAtagCMRequestJoinFamilyByPlayer
#------------------------------------------------------
# A6 08  发家族红包 #tagCMSendFamilyRedPacket
class  tagCMSendFamilyRedPacket(Structure):
    Head = tagHead()
    RedPacketID = 0    #(DWORD RedPacketID)// 红包ID,没有发0
    PacketCnt = 0    #(WORD PacketCnt)// 红包数量
    MoneyNum = 0    #(WORD MoneyNum)//金钱数量
    Wish = ""    #(char Wish[33])//祝福语
    IsAnonymous = 0    #(BYTE IsAnonymous)//是否匿名
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA6
        self.Head.SubCmd = 0x08
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.RedPacketID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.PacketCnt,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.MoneyNum,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.Wish,_pos = CommFunc.ReadString(_lpData, _pos,33)
        self.IsAnonymous,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA6
        self.Head.SubCmd = 0x08
        self.RedPacketID = 0
        self.PacketCnt = 0
        self.MoneyNum = 0
        self.Wish = ""
        self.IsAnonymous = 0
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 4
        length += 2
        length += 2
        length += 33
        length += 1
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteDWORD(data, self.RedPacketID)
        data = CommFunc.WriteWORD(data, self.PacketCnt)
        data = CommFunc.WriteWORD(data, self.MoneyNum)
        data = CommFunc.WriteString(data, 33, self.Wish)
        data = CommFunc.WriteBYTE(data, self.IsAnonymous)
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                RedPacketID:%d,
                                PacketCnt:%d,
                                MoneyNum:%d,
                                Wish:%s,
                                IsAnonymous:%d
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.RedPacketID,
                                self.PacketCnt,
                                self.MoneyNum,
                                self.Wish,
                                self.IsAnonymous
                                )
        return DumpString
m_NAtagCMSendFamilyRedPacket=tagCMSendFamilyRedPacket()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMSendFamilyRedPacket.Head.Cmd,m_NAtagCMSendFamilyRedPacket.Head.SubCmd))] = m_NAtagCMSendFamilyRedPacket
#------------------------------------------------------
@@ -11660,62 +11363,6 @@
#------------------------------------------------------
# AB 12 抢红包 #tagCMGrabFamilyRedPacket
class  tagCMGrabFamilyRedPacket(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("RedPaketID", c_int),    # 红包ID
                  ("GetWay", c_ubyte),    #获得途径
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAB
        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 = 0xAB
        self.SubCmd = 0x12
        self.RedPaketID = 0
        self.GetWay = 0
        return
    def GetLength(self):
        return sizeof(tagCMGrabFamilyRedPacket)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AB 12 抢红包 //tagCMGrabFamilyRedPacket:
                                Cmd:%s,
                                SubCmd:%s,
                                RedPaketID:%d,
                                GetWay:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.RedPaketID,
                                self.GetWay
                                )
        return DumpString
m_NAtagCMGrabFamilyRedPacket=tagCMGrabFamilyRedPacket()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGrabFamilyRedPacket.Cmd,m_NAtagCMGrabFamilyRedPacket.SubCmd))] = m_NAtagCMGrabFamilyRedPacket
#------------------------------------------------------
# AB 11 开服活动奖励 #tagCMOpenServerCampaignAward
class  tagCMOpenServerCampaignAward(Structure):
@@ -11937,154 +11584,6 @@
m_NAtagCMMixCampaignAward=tagCMMixCampaignAward()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMMixCampaignAward.Cmd,m_NAtagCMMixCampaignAward.SubCmd))] = m_NAtagCMMixCampaignAward
#------------------------------------------------------
# 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
#------------------------------------------------------
@@ -13062,214 +12561,6 @@
#------------------------------------------------------
# B2 26 头像幻化 #tagCMFaceChange
class  tagCMFaceChange(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("FaceID", c_int),    # 幻化的ID
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB2
        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 = 0xB2
        self.SubCmd = 0x26
        self.FaceID = 0
        return
    def GetLength(self):
        return sizeof(tagCMFaceChange)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B2 26 头像幻化 //tagCMFaceChange:
                                Cmd:%s,
                                SubCmd:%s,
                                FaceID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.FaceID
                                )
        return DumpString
m_NAtagCMFaceChange=tagCMFaceChange()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMFaceChange.Cmd,m_NAtagCMFaceChange.SubCmd))] = m_NAtagCMFaceChange
#------------------------------------------------------
# B2 28 头像框幻化 #tagCMFacePicChange
class  tagCMFacePicChange(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("FacePicID", c_int),    # 幻化的ID
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB2
        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 = 0xB2
        self.SubCmd = 0x28
        self.FacePicID = 0
        return
    def GetLength(self):
        return sizeof(tagCMFacePicChange)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B2 28 头像框幻化 //tagCMFacePicChange:
                                Cmd:%s,
                                SubCmd:%s,
                                FacePicID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.FacePicID
                                )
        return DumpString
m_NAtagCMFacePicChange=tagCMFacePicChange()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMFacePicChange.Cmd,m_NAtagCMFacePicChange.SubCmd))] = m_NAtagCMFacePicChange
#------------------------------------------------------
# B2 29 头像框升星 #tagCMFacePicStarUP
class  tagCMFacePicStarUP(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("FacePicID", c_int),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB2
        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 = 0xB2
        self.SubCmd = 0x29
        self.FacePicID = 0
        return
    def GetLength(self):
        return sizeof(tagCMFacePicStarUP)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B2 29 头像框升星 //tagCMFacePicStarUP:
                                Cmd:%s,
                                SubCmd:%s,
                                FacePicID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.FacePicID
                                )
        return DumpString
m_NAtagCMFacePicStarUP=tagCMFacePicStarUP()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMFacePicStarUP.Cmd,m_NAtagCMFacePicStarUP.SubCmd))] = m_NAtagCMFacePicStarUP
#------------------------------------------------------
# B2 27 头像升星 #tagCMFaceStarUP
class  tagCMFaceStarUP(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("FaceID", c_int),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB2
        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 = 0xB2
        self.SubCmd = 0x27
        self.FaceID = 0
        return
    def GetLength(self):
        return sizeof(tagCMFaceStarUP)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B2 27 头像升星 //tagCMFaceStarUP:
                                Cmd:%s,
                                SubCmd:%s,
                                FaceID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.FaceID
                                )
        return DumpString
m_NAtagCMFaceStarUP=tagCMFaceStarUP()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMFaceStarUP.Cmd,m_NAtagCMFaceStarUP.SubCmd))] = m_NAtagCMFaceStarUP
#------------------------------------------------------
# B2 12 领取功能系统特权奖励 #tagCMGetFuncSysPrivilegeAward
class  tagCMGetFuncSysPrivilegeAward(Structure):
@@ -13432,15 +12723,18 @@
#------------------------------------------------------
# B2 17 古宝升星 #tagCMGubaoStarUp
class  tagCMGubaoPieceUse(Structure):
class  tagCMGubaoStarUp(Structure):
    _pack_ = 1
    _fields_ = [
                  ("GubaoID", c_ushort),    # 通用碎片古宝ID
                  ("PieceCount", c_ushort),    # 使用碎片个数
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("GubaoID", c_ushort),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB2
        self.SubCmd = 0x17
        return
    def ReadData(self, stringData, _pos=0, _len=0):
@@ -13449,99 +12743,33 @@
        return _pos + self.GetLength()
    def Clear(self):
        self.Cmd = 0xB2
        self.SubCmd = 0x17
        self.GubaoID = 0
        self.PieceCount = 0
        return
    def GetLength(self):
        return sizeof(tagCMGubaoPieceUse)
        return sizeof(tagCMGubaoStarUp)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B2 17 古宝升星 //tagCMGubaoStarUp:
                                GubaoID:%d,
                                PieceCount:%d
                                Cmd:%s,
                                SubCmd:%s,
                                GubaoID:%d
                                '''\
                                %(
                                self.GubaoID,
                                self.PieceCount
                                )
        return DumpString
class  tagCMGubaoStarUp(Structure):
    Head = tagHead()
    GubaoID = 0    #(WORD GubaoID)
    PieceSelectCount = 0    #(BYTE PieceSelectCount)
    CommPieceUseList = list()    #(vector<tagCMGubaoPieceUse> CommPieceUseList)// 通用古宝碎片使用列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xB2
        self.Head.SubCmd = 0x17
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.GubaoID,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.PieceSelectCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.PieceSelectCount):
            temCommPieceUseList = tagCMGubaoPieceUse()
            _pos = temCommPieceUseList.ReadData(_lpData, _pos)
            self.CommPieceUseList.append(temCommPieceUseList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xB2
        self.Head.SubCmd = 0x17
        self.GubaoID = 0
        self.PieceSelectCount = 0
        self.CommPieceUseList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 2
        length += 1
        for i in range(self.PieceSelectCount):
            length += self.CommPieceUseList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteWORD(data, self.GubaoID)
        data = CommFunc.WriteBYTE(data, self.PieceSelectCount)
        for i in range(self.PieceSelectCount):
            data = CommFunc.WriteString(data, self.CommPieceUseList[i].GetLength(), self.CommPieceUseList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                GubaoID:%d,
                                PieceSelectCount:%d,
                                CommPieceUseList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.GubaoID,
                                self.PieceSelectCount,
                                "..."
                                self.Cmd,
                                self.SubCmd,
                                self.GubaoID
                                )
        return DumpString
m_NAtagCMGubaoStarUp=tagCMGubaoStarUp()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGubaoStarUp.Head.Cmd,m_NAtagCMGubaoStarUp.Head.SubCmd))] = m_NAtagCMGubaoStarUp
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGubaoStarUp.Cmd,m_NAtagCMGubaoStarUp.SubCmd))] = m_NAtagCMGubaoStarUp
#------------------------------------------------------
@@ -14181,6 +13409,66 @@
#------------------------------------------------------
# B2 25 幻境阁操作 #tagCSHJGOP
class  tagCSHJGOP(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("Type", c_ubyte),    # 类型 1-形象;2-头像;3-头像框;4-气泡;5-称号
                  ("OPType", c_ubyte),    # 操作 1-激活;2-佩戴;3-卸下;4-升星
                  ("OPID", c_int),    # 操作对应的ID,如形象ID等
                  ]
    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.Type = 0
        self.OPType = 0
        self.OPID = 0
        return
    def GetLength(self):
        return sizeof(tagCSHJGOP)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B2 25 幻境阁操作 //tagCSHJGOP:
                                Cmd:%s,
                                SubCmd:%s,
                                Type:%d,
                                OPType:%d,
                                OPID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.Type,
                                self.OPType,
                                self.OPID
                                )
        return DumpString
m_NAtagCSHJGOP=tagCSHJGOP()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCSHJGOP.Cmd,m_NAtagCSHJGOP.SubCmd))] = m_NAtagCSHJGOP
#------------------------------------------------------
# B2 07 重置加点 #tagCMResetAttrPoint
class  tagCMResetAttrPoint(Structure):