hxp
2023-09-29 2a659639d74889599ed54458863a2f7b31ff4eff
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
@@ -706,58 +706,6 @@
#------------------------------------------------------
# A4 05 开启家族boss副本 #tagCGOpenFamilyBossFB
class  tagCGOpenFamilyBossFB(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("MapID", c_int),    # 开启的副本地图ID
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA4
        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 = 0xA4
        self.SubCmd = 0x05
        self.MapID = 0
        return
    def GetLength(self):
        return sizeof(tagCGOpenFamilyBossFB)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A4 05 开启家族boss副本 //tagCGOpenFamilyBossFB:
                                Cmd:%s,
                                SubCmd:%s,
                                MapID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.MapID
                                )
        return DumpString
m_NAtagCGOpenFamilyBossFB=tagCGOpenFamilyBossFB()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGOpenFamilyBossFB.Cmd,m_NAtagCGOpenFamilyBossFB.SubCmd))] = m_NAtagCGOpenFamilyBossFB
#------------------------------------------------------
# A4 04 创建家族 #tagCGPyCreatFamily
class  tagCGPyCreatFamily(Structure):
@@ -1301,6 +1249,58 @@
m_NAtagCGGetBossFirstKillAward=tagCGGetBossFirstKillAward()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGGetBossFirstKillAward.Cmd,m_NAtagCGGetBossFirstKillAward.SubCmd))] = m_NAtagCGGetBossFirstKillAward
#------------------------------------------------------
# A9 A5 查看竞技场对战玩家最新信息 #tagCGQueryArenaBattlePlayer
class  tagCGQueryArenaBattlePlayer(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("PlayerID", c_int),    #目标玩家ID,仅支持查真实玩家
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA9
        self.SubCmd = 0xA5
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.Cmd = 0xA9
        self.SubCmd = 0xA5
        self.PlayerID = 0
        return
    def GetLength(self):
        return sizeof(tagCGQueryArenaBattlePlayer)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A9 A5 查看竞技场对战玩家最新信息 //tagCGQueryArenaBattlePlayer:
                                Cmd:%s,
                                SubCmd:%s,
                                PlayerID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.PlayerID
                                )
        return DumpString
m_NAtagCGQueryArenaBattlePlayer=tagCGQueryArenaBattlePlayer()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGQueryArenaBattlePlayer.Cmd,m_NAtagCGQueryArenaBattlePlayer.SubCmd))] = m_NAtagCGQueryArenaBattlePlayer
#------------------------------------------------------
@@ -2275,6 +2275,222 @@
m_NAtagCGUseAssistThanksGift=tagCGUseAssistThanksGift()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGUseAssistThanksGift.Cmd,m_NAtagCGUseAssistThanksGift.SubCmd))] = m_NAtagCGUseAssistThanksGift
#------------------------------------------------------
# B3 19 提升魅力等级 #tagCGCharmLVUp
class  tagCGCharmLVUp(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB3
        self.SubCmd = 0x19
        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 = 0xB3
        self.SubCmd = 0x19
        return
    def GetLength(self):
        return sizeof(tagCGCharmLVUp)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B3 19 提升魅力等级 //tagCGCharmLVUp:
                                Cmd:%s,
                                SubCmd:%s
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd
                                )
        return DumpString
m_NAtagCGCharmLVUp=tagCGCharmLVUp()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGCharmLVUp.Cmd,m_NAtagCGCharmLVUp.SubCmd))] = m_NAtagCGCharmLVUp
#------------------------------------------------------
# B3 09 魅力贡献榜查看 #tagCGCharmOfferBillboardQuery
class  tagCGCharmOfferBillboardQuery(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("PlayerID", c_int),    # 魅力玩家ID
                  ("QueryType", c_ubyte),    # 查看类型: 1-总榜,2-周榜,3-日榜
                  ("QueryCount", c_ubyte),    # 查看名次数量,最大255
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB3
        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 = 0xB3
        self.SubCmd = 0x09
        self.PlayerID = 0
        self.QueryType = 0
        self.QueryCount = 0
        return
    def GetLength(self):
        return sizeof(tagCGCharmOfferBillboardQuery)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B3 09 魅力贡献榜查看 //tagCGCharmOfferBillboardQuery:
                                Cmd:%s,
                                SubCmd:%s,
                                PlayerID:%d,
                                QueryType:%d,
                                QueryCount:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.PlayerID,
                                self.QueryType,
                                self.QueryCount
                                )
        return DumpString
m_NAtagCGCharmOfferBillboardQuery=tagCGCharmOfferBillboardQuery()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGCharmOfferBillboardQuery.Cmd,m_NAtagCGCharmOfferBillboardQuery.SubCmd))] = m_NAtagCGCharmOfferBillboardQuery
#------------------------------------------------------
# B3 16 和平离婚回应 #tagGCMarryBreakResponse
class  tagGCMarryBreakResponse(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("IsOK", c_ubyte),    # 是否同意,0-否,1-是
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB3
        self.SubCmd = 0x16
        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 = 0xB3
        self.SubCmd = 0x16
        self.IsOK = 0
        return
    def GetLength(self):
        return sizeof(tagGCMarryBreakResponse)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B3 16 和平离婚回应 //tagGCMarryBreakResponse:
                                Cmd:%s,
                                SubCmd:%s,
                                IsOK:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.IsOK
                                )
        return DumpString
m_NAtagGCMarryBreakResponse=tagGCMarryBreakResponse()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCMarryBreakResponse.Cmd,m_NAtagGCMarryBreakResponse.SubCmd))] = m_NAtagGCMarryBreakResponse
#------------------------------------------------------
# B3 12 提亲回应 #tagCGMarryResponse
class  tagCGMarryResponse(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ReqPlayerID", c_int),    # 提亲的玩家ID
                  ("IsOK", c_ubyte),    # 是否同意,0-否,1-是
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB3
        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 = 0xB3
        self.SubCmd = 0x12
        self.ReqPlayerID = 0
        self.IsOK = 0
        return
    def GetLength(self):
        return sizeof(tagCGMarryResponse)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B3 12 提亲回应 //tagCGMarryResponse:
                                Cmd:%s,
                                SubCmd:%s,
                                ReqPlayerID:%d,
                                IsOK:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ReqPlayerID,
                                self.IsOK
                                )
        return DumpString
m_NAtagCGMarryResponse=tagCGMarryResponse()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGMarryResponse.Cmd,m_NAtagCGMarryResponse.SubCmd))] = m_NAtagCGMarryResponse
#------------------------------------------------------
@@ -3719,6 +3935,422 @@
#------------------------------------------------------
# C0 21 跨服排位仙官申请回应 #tagCGChampionshipOfficialApplyReply
class  tagCGChampionshipOfficialApplyReply(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("MainOfficialID", c_ushort),    #界主官职ID
                  ("OfficialID", c_ushort),    #申请官职ID
                  ("PlayerID", c_int),    #申请的玩家ID
                  ("IsOK", c_ubyte),    #是否同意;1-是;0-否
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xC0
        self.SubCmd = 0x21
        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 = 0x21
        self.MainOfficialID = 0
        self.OfficialID = 0
        self.PlayerID = 0
        self.IsOK = 0
        return
    def GetLength(self):
        return sizeof(tagCGChampionshipOfficialApplyReply)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// C0 21 跨服排位仙官申请回应 //tagCGChampionshipOfficialApplyReply:
                                Cmd:%s,
                                SubCmd:%s,
                                MainOfficialID:%d,
                                OfficialID:%d,
                                PlayerID:%d,
                                IsOK:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.MainOfficialID,
                                self.OfficialID,
                                self.PlayerID,
                                self.IsOK
                                )
        return DumpString
m_NAtagCGChampionshipOfficialApplyReply=tagCGChampionshipOfficialApplyReply()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGChampionshipOfficialApplyReply.Cmd,m_NAtagCGChampionshipOfficialApplyReply.SubCmd))] = m_NAtagCGChampionshipOfficialApplyReply
#------------------------------------------------------
# C0 23 跨服排位仙官挑战记录查询 #tagCGChampionshipOfficialChallengeQuery
class  tagCGChampionshipOfficialChallengeQuery(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("MainOfficialID", c_ushort),    #界主官职ID
                  ("OfficialID", c_ushort),    #查询官职ID
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xC0
        self.SubCmd = 0x23
        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 = 0x23
        self.MainOfficialID = 0
        self.OfficialID = 0
        return
    def GetLength(self):
        return sizeof(tagCGChampionshipOfficialChallengeQuery)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// C0 23 跨服排位仙官挑战记录查询 //tagCGChampionshipOfficialChallengeQuery:
                                Cmd:%s,
                                SubCmd:%s,
                                MainOfficialID:%d,
                                OfficialID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.MainOfficialID,
                                self.OfficialID
                                )
        return DumpString
m_NAtagCGChampionshipOfficialChallengeQuery=tagCGChampionshipOfficialChallengeQuery()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGChampionshipOfficialChallengeQuery.Cmd,m_NAtagCGChampionshipOfficialChallengeQuery.SubCmd))] = m_NAtagCGChampionshipOfficialChallengeQuery
#------------------------------------------------------
# C0 24 跨服排位辞退下级仙官 #tagCGChampionshipOfficialKick
class  tagCGChampionshipOfficialKick(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("MainOfficialID", c_ushort),    #界主官职ID
                  ("OfficialID", c_ushort),    #目标官职ID
                  ("PlayerID", c_int),    #目标玩家ID
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xC0
        self.SubCmd = 0x24
        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 = 0x24
        self.MainOfficialID = 0
        self.OfficialID = 0
        self.PlayerID = 0
        return
    def GetLength(self):
        return sizeof(tagCGChampionshipOfficialKick)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// C0 24 跨服排位辞退下级仙官 //tagCGChampionshipOfficialKick:
                                Cmd:%s,
                                SubCmd:%s,
                                MainOfficialID:%d,
                                OfficialID:%d,
                                PlayerID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.MainOfficialID,
                                self.OfficialID,
                                self.PlayerID
                                )
        return DumpString
m_NAtagCGChampionshipOfficialKick=tagCGChampionshipOfficialKick()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGChampionshipOfficialKick.Cmd,m_NAtagCGChampionshipOfficialKick.SubCmd))] = m_NAtagCGChampionshipOfficialKick
#------------------------------------------------------
# C0 25 跨服排位主动离任仙官 #tagCGChampionshipOfficialLeave
class  tagCGChampionshipOfficialLeave(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("MainOfficialID", c_ushort),    #界主官职ID
                  ("OfficialID", c_ushort),    #离任官职ID
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xC0
        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 = 0xC0
        self.SubCmd = 0x25
        self.MainOfficialID = 0
        self.OfficialID = 0
        return
    def GetLength(self):
        return sizeof(tagCGChampionshipOfficialLeave)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// C0 25 跨服排位主动离任仙官 //tagCGChampionshipOfficialLeave:
                                Cmd:%s,
                                SubCmd:%s,
                                MainOfficialID:%d,
                                OfficialID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.MainOfficialID,
                                self.OfficialID
                                )
        return DumpString
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
#------------------------------------------------------
# C0 03 强制退出跨服状态 #tagCGForceQuitCrossState
class  tagCGForceQuitCrossState(Structure):
@@ -3764,6 +4396,106 @@
m_NAtagCGForceQuitCrossState=tagCGForceQuitCrossState()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGForceQuitCrossState.Cmd,m_NAtagCGForceQuitCrossState.SubCmd))] = m_NAtagCGForceQuitCrossState
#------------------------------------------------------
# C0 06 查询幸运云购开奖记录 #tagCGQueryLuckyCloudBuyLotteryRec
class  tagCGQueryLuckyCloudBuyLotteryRec(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ZoneID", c_ubyte),    #查询分区ID
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xC0
        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 = 0xC0
        self.SubCmd = 0x06
        self.ZoneID = 0
        return
    def GetLength(self):
        return sizeof(tagCGQueryLuckyCloudBuyLotteryRec)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// C0 06 查询幸运云购开奖记录 //tagCGQueryLuckyCloudBuyLotteryRec:
                                Cmd:%s,
                                SubCmd:%s,
                                ZoneID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ZoneID
                                )
        return DumpString
m_NAtagCGQueryLuckyCloudBuyLotteryRec=tagCGQueryLuckyCloudBuyLotteryRec()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGQueryLuckyCloudBuyLotteryRec.Cmd,m_NAtagCGQueryLuckyCloudBuyLotteryRec.SubCmd))] = m_NAtagCGQueryLuckyCloudBuyLotteryRec
#------------------------------------------------------
# C0 05 查询幸运云购购买号码记录 #tagCGQueryLuckyCloudBuyNumRec
class  tagCGQueryLuckyCloudBuyNumRec(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xC0
        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 = 0xC0
        self.SubCmd = 0x05
        return
    def GetLength(self):
        return sizeof(tagCGQueryLuckyCloudBuyNumRec)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// C0 05 查询幸运云购购买号码记录 //tagCGQueryLuckyCloudBuyNumRec:
                                Cmd:%s,
                                SubCmd:%s
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd
                                )
        return DumpString
m_NAtagCGQueryLuckyCloudBuyNumRec=tagCGQueryLuckyCloudBuyNumRec()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGQueryLuckyCloudBuyNumRec.Cmd,m_NAtagCGQueryLuckyCloudBuyNumRec.SubCmd))] = m_NAtagCGQueryLuckyCloudBuyNumRec
#------------------------------------------------------
@@ -3936,6 +4668,118 @@
m_NAtagCGViewCrossPlayerInfo=tagCGViewCrossPlayerInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGViewCrossPlayerInfo.Cmd,m_NAtagCGViewCrossPlayerInfo.SubCmd))] = m_NAtagCGViewCrossPlayerInfo
#------------------------------------------------------
# A1 21 תְҵ #tagCMChangeJob
class  tagCMChangeJob(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("TagJob", c_ubyte),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA1
        self.SubCmd = 0x21
        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 = 0x21
        self.TagJob = 0
        return
    def GetLength(self):
        return sizeof(tagCMChangeJob)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A1 21 תְҵ //tagCMChangeJob:
                                Cmd:%s,
                                SubCmd:%s,
                                TagJob:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.TagJob
                                )
        return DumpString
m_NAtagCMChangeJob=tagCMChangeJob()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMChangeJob.Cmd,m_NAtagCMChangeJob.SubCmd))] = m_NAtagCMChangeJob
#------------------------------------------------------
# A1 20 货币兑换 #tagCMMoneyExchange
class  tagCMMoneyExchange(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("SrcMoneyType", c_ubyte),    # 源货币类型
                  ("TagMoneyType", c_ubyte),    # 目标货币类型
                  ("ExchangeValue", c_int),    # 兑换数量(消耗源货币的数量)
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA1
        self.SubCmd = 0x20
        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 = 0x20
        self.SrcMoneyType = 0
        self.TagMoneyType = 0
        self.ExchangeValue = 0
        return
    def GetLength(self):
        return sizeof(tagCMMoneyExchange)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A1 20 货币兑换 //tagCMMoneyExchange:
                                Cmd:%s,
                                SubCmd:%s,
                                SrcMoneyType:%d,
                                TagMoneyType:%d,
                                ExchangeValue:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.SrcMoneyType,
                                self.TagMoneyType,
                                self.ExchangeValue
                                )
        return DumpString
m_NAtagCMMoneyExchange=tagCMMoneyExchange()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMMoneyExchange.Cmd,m_NAtagCMMoneyExchange.SubCmd))] = m_NAtagCMMoneyExchange
#------------------------------------------------------
@@ -5763,6 +6607,58 @@
m_NAtagCMSelectObj=tagCMSelectObj()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMSelectObj.Cmd,m_NAtagCMSelectObj.SubCmd))] = m_NAtagCMSelectObj
#------------------------------------------------------
# A2 35 选择境界难度层级 #tagCMSelectRealmDifficulty
class  tagCMSelectRealmDifficulty(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("RealmDifficulty", c_ubyte),    #境界难度 = 100 + 所选境界等级,如境界13,则发113
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA2
        self.SubCmd = 0x35
        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 = 0x35
        self.RealmDifficulty = 0
        return
    def GetLength(self):
        return sizeof(tagCMSelectRealmDifficulty)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A2 35 选择境界难度层级 //tagCMSelectRealmDifficulty:
                                Cmd:%s,
                                SubCmd:%s,
                                RealmDifficulty:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.RealmDifficulty
                                )
        return DumpString
m_NAtagCMSelectRealmDifficulty=tagCMSelectRealmDifficulty()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMSelectRealmDifficulty.Cmd,m_NAtagCMSelectRealmDifficulty.SubCmd))] = m_NAtagCMSelectRealmDifficulty
#------------------------------------------------------
@@ -9086,6 +9982,54 @@
#------------------------------------------------------
# A5 46 购买通天令 #tagCMBuyTongTianLing
class  tagCMBuyTongTianLing(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA5
        self.SubCmd = 0x46
        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 = 0x46
        return
    def GetLength(self):
        return sizeof(tagCMBuyTongTianLing)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 46 购买通天令 //tagCMBuyTongTianLing:
                                Cmd:%s,
                                SubCmd:%s
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd
                                )
        return DumpString
m_NAtagCMBuyTongTianLing=tagCMBuyTongTianLing()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMBuyTongTianLing.Cmd,m_NAtagCMBuyTongTianLing.SubCmd))] = m_NAtagCMBuyTongTianLing
#------------------------------------------------------
#A5 3B 请求领取补偿#tagCMRequestCompensation
class  tagCMRequestCompensation(Structure):
@@ -10120,6 +11064,114 @@
#------------------------------------------------------
# A5 45 兑换通天令等级经验积分点 #tagCMExchangeTongTianLVPoint
class  tagCMExchangeTongTianLVPoint(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ExchangePoint", c_int),    # 兑换点数
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA5
        self.SubCmd = 0x45
        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 = 0x45
        self.ExchangePoint = 0
        return
    def GetLength(self):
        return sizeof(tagCMExchangeTongTianLVPoint)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 45 兑换通天令等级经验积分点 //tagCMExchangeTongTianLVPoint:
                                Cmd:%s,
                                SubCmd:%s,
                                ExchangePoint:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ExchangePoint
                                )
        return DumpString
m_NAtagCMExchangeTongTianLVPoint=tagCMExchangeTongTianLVPoint()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMExchangeTongTianLVPoint.Cmd,m_NAtagCMExchangeTongTianLVPoint.SubCmd))] = m_NAtagCMExchangeTongTianLVPoint
#------------------------------------------------------
# A5 32 法器升级 #tagCMFaQiLVUp
class  tagCMFaQiLVUp(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("UseItemCnt", c_ushort),    #消耗材料个数
                  ("IsAutoBuy", c_ubyte),    #是否自动购买
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA5
        self.SubCmd = 0x32
        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 = 0x32
        self.UseItemCnt = 0
        self.IsAutoBuy = 0
        return
    def GetLength(self):
        return sizeof(tagCMFaQiLVUp)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 32 法器升级 //tagCMFaQiLVUp:
                                Cmd:%s,
                                SubCmd:%s,
                                UseItemCnt:%d,
                                IsAutoBuy:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.UseItemCnt,
                                self.IsAutoBuy
                                )
        return DumpString
m_NAtagCMFaQiLVUp=tagCMFaQiLVUp()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMFaQiLVUp.Cmd,m_NAtagCMFaQiLVUp.SubCmd))] = m_NAtagCMFaQiLVUp
#------------------------------------------------------
# A5 1C 聚魂合成 #tagCMGatherSoulCompound
class  tagCMGatherSoulCompound(Structure):
@@ -10398,6 +11450,7 @@
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("Index", c_ubyte),    # 奖励索引,其他按顺序
                  ("IsDaily", c_ubyte),    # 是否领取每日日常的奖励,是发1,如果领取定制创角天奖励的则默认发0即可
                  ]
    def __init__(self):
@@ -10415,6 +11468,7 @@
        self.Cmd = 0xA5
        self.SubCmd = 0x06
        self.Index = 0
        self.IsDaily = 0
        return
    def GetLength(self):
@@ -10427,12 +11481,14 @@
        DumpString = '''//A5 06 玩家领取在线奖励 //tagCMGetOnlinePrize:
                                Cmd:%s,
                                SubCmd:%s,
                                Index:%d
                                Index:%d,
                                IsDaily:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.Index
                                self.Index,
                                self.IsDaily
                                )
        return DumpString
@@ -10495,6 +11551,114 @@
m_NAtagMCGetSuccessAward=tagMCGetSuccessAward()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCGetSuccessAward.Cmd,m_NAtagMCGetSuccessAward.SubCmd))] = m_NAtagMCGetSuccessAward
#------------------------------------------------------
# A5 44 通天令领取等级奖励 #tagCMGetTongTianLVAward
class  tagCMGetTongTianLVAward(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("TTLV", c_ubyte),    # 领取对应等级奖励,发255为一键领取所有等级奖励,包含仙品奖励
                  ("IsXian", c_ubyte),    # 是否领取仙品奖励,仅指定等级奖励有效
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA5
        self.SubCmd = 0x44
        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 = 0x44
        self.TTLV = 0
        self.IsXian = 0
        return
    def GetLength(self):
        return sizeof(tagCMGetTongTianLVAward)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 44 通天令领取等级奖励 //tagCMGetTongTianLVAward:
                                Cmd:%s,
                                SubCmd:%s,
                                TTLV:%d,
                                IsXian:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.TTLV,
                                self.IsXian
                                )
        return DumpString
m_NAtagCMGetTongTianLVAward=tagCMGetTongTianLVAward()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGetTongTianLVAward.Cmd,m_NAtagCMGetTongTianLVAward.SubCmd))] = m_NAtagCMGetTongTianLVAward
#------------------------------------------------------
# A5 43 通天令领取任务奖励 #tagCMGetTongTianTaskAward
class  tagCMGetTongTianTaskAward(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("TaskID", c_ubyte),    # 任务ID
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA5
        self.SubCmd = 0x43
        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 = 0x43
        self.TaskID = 0
        return
    def GetLength(self):
        return sizeof(tagCMGetTongTianTaskAward)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 43 通天令领取任务奖励 //tagCMGetTongTianTaskAward:
                                Cmd:%s,
                                SubCmd:%s,
                                TaskID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.TaskID
                                )
        return DumpString
m_NAtagCMGetTongTianTaskAward=tagCMGetTongTianTaskAward()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGetTongTianTaskAward.Cmd,m_NAtagCMGetTongTianTaskAward.SubCmd))] = m_NAtagCMGetTongTianTaskAward
#------------------------------------------------------
@@ -10899,6 +12063,110 @@
m_NAtagCMHorseUp=tagCMHorseUp()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMHorseUp.Cmd,m_NAtagCMHorseUp.SubCmd))] = m_NAtagCMHorseUp
#------------------------------------------------------
# A5 34 炼体突破 #tagCMLianTiLVUp
class  tagCMLianTiLVUp(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA5
        self.SubCmd = 0x34
        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 = 0x34
        return
    def GetLength(self):
        return sizeof(tagCMLianTiLVUp)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 34 炼体突破 //tagCMLianTiLVUp:
                                Cmd:%s,
                                SubCmd:%s
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd
                                )
        return DumpString
m_NAtagCMLianTiLVUp=tagCMLianTiLVUp()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMLianTiLVUp.Cmd,m_NAtagCMLianTiLVUp.SubCmd))] = m_NAtagCMLianTiLVUp
#------------------------------------------------------
# A5 33 炼体提升 #tagCMLianTiUp
class  tagCMLianTiUp(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("UseItemCnt", c_int),    #消耗材料个数
                  ("IsAutoBuy", c_ubyte),    #是否自动购买
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA5
        self.SubCmd = 0x33
        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 = 0x33
        self.UseItemCnt = 0
        self.IsAutoBuy = 0
        return
    def GetLength(self):
        return sizeof(tagCMLianTiUp)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 33 炼体提升 //tagCMLianTiUp:
                                Cmd:%s,
                                SubCmd:%s,
                                UseItemCnt:%d,
                                IsAutoBuy:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.UseItemCnt,
                                self.IsAutoBuy
                                )
        return DumpString
m_NAtagCMLianTiUp=tagCMLianTiUp()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMLianTiUp.Cmd,m_NAtagCMLianTiUp.SubCmd))] = m_NAtagCMLianTiUp
#------------------------------------------------------
@@ -12629,54 +13897,6 @@
#------------------------------------------------------
# A6 05  家族捐献兽粮 #tagCMFamilyDonate
class  tagCMFamilyDonate(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA6
        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 = 0xA6
        self.SubCmd = 0x05
        return
    def GetLength(self):
        return sizeof(tagCMFamilyDonate)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A6 05  家族捐献兽粮 //tagCMFamilyDonate:
                                Cmd:%s,
                                SubCmd:%s
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd
                                )
        return DumpString
m_NAtagCMFamilyDonate=tagCMFamilyDonate()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMFamilyDonate.Cmd,m_NAtagCMFamilyDonate.SubCmd))] = m_NAtagCMFamilyDonate
#------------------------------------------------------
# A6 09  家族仓库捐赠物品 #tagCMFamilyStoreDonate
class  tagCMFamilyStoreDonate(Structure):
@@ -13648,6 +14868,241 @@
m_NAtagCMActGarbageSorting=tagCMActGarbageSorting()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActGarbageSorting.Head.Cmd,m_NAtagCMActGarbageSorting.Head.SubCmd))] = m_NAtagCMActGarbageSorting
#------------------------------------------------------
# AA 20 天帝礼包选择物品 #tagCMActGodGiftChooseItem
class  tagCMActGodGiftChooseItemInfo(Structure):
    ItemLibType = 0    #(BYTE ItemLibType)//物品库类型
    Count = 0    #(BYTE Count)//选择个数
    ItemNumList = list()    #(vector<BYTE> ItemNumList)//选择物品编号列表
    data = None
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.ItemLibType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.Count):
            value,_pos=CommFunc.ReadBYTE(_lpData,_pos)
            self.ItemNumList.append(value)
        return _pos
    def Clear(self):
        self.ItemLibType = 0
        self.Count = 0
        self.ItemNumList = list()
        return
    def GetLength(self):
        length = 0
        length += 1
        length += 1
        length += 1 * self.Count
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteBYTE(data, self.ItemLibType)
        data = CommFunc.WriteBYTE(data, self.Count)
        for i in range(self.Count):
            data = CommFunc.WriteBYTE(data, self.ItemNumList[i])
        return data
    def OutputString(self):
        DumpString = '''
                                ItemLibType:%d,
                                Count:%d,
                                ItemNumList:%s
                                '''\
                                %(
                                self.ItemLibType,
                                self.Count,
                                "..."
                                )
        return DumpString
class  tagCMActGodGiftChooseItem(Structure):
    Head = tagHead()
    ActNum = 0    #(BYTE ActNum)//活动编号
    ChooseLibCount = 0    #(BYTE ChooseLibCount)//选择库个数
    ChooseItemList = list()    #(vector<tagCMActGodGiftChooseItemInfo> ChooseItemList)//选择库物品信息列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x20
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.ChooseLibCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.ChooseLibCount):
            temChooseItemList = tagCMActGodGiftChooseItemInfo()
            _pos = temChooseItemList.ReadData(_lpData, _pos)
            self.ChooseItemList.append(temChooseItemList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x20
        self.ActNum = 0
        self.ChooseLibCount = 0
        self.ChooseItemList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 1
        for i in range(self.ChooseLibCount):
            length += self.ChooseItemList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.ActNum)
        data = CommFunc.WriteBYTE(data, self.ChooseLibCount)
        for i in range(self.ChooseLibCount):
            data = CommFunc.WriteString(data, self.ChooseItemList[i].GetLength(), self.ChooseItemList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                ActNum:%d,
                                ChooseLibCount:%d,
                                ChooseItemList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.ActNum,
                                self.ChooseLibCount,
                                "..."
                                )
        return DumpString
m_NAtagCMActGodGiftChooseItem=tagCMActGodGiftChooseItem()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActGodGiftChooseItem.Head.Cmd,m_NAtagCMActGodGiftChooseItem.Head.SubCmd))] = m_NAtagCMActGodGiftChooseItem
#------------------------------------------------------
# AA 21 天帝礼包抽奖 #tagCMActGodGiftlottery
class  tagCMActGodGiftlottery(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ActNum", c_ubyte),    #活动编号
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAA
        self.SubCmd = 0x21
        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 = 0xAA
        self.SubCmd = 0x21
        self.ActNum = 0
        return
    def GetLength(self):
        return sizeof(tagCMActGodGiftlottery)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 21 天帝礼包抽奖 //tagCMActGodGiftlottery:
                                Cmd:%s,
                                SubCmd:%s,
                                ActNum:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ActNum
                                )
        return DumpString
m_NAtagCMActGodGiftlottery=tagCMActGodGiftlottery()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActGodGiftlottery.Cmd,m_NAtagCMActGodGiftlottery.SubCmd))] = m_NAtagCMActGodGiftlottery
#------------------------------------------------------
# AA 22 天帝礼包重置 #tagCMActGodGiftReset
class  tagCMActGodGiftReset(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ActNum", c_ubyte),    #活动编号
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAA
        self.SubCmd = 0x22
        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 = 0xAA
        self.SubCmd = 0x22
        self.ActNum = 0
        return
    def GetLength(self):
        return sizeof(tagCMActGodGiftReset)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 22 天帝礼包重置 //tagCMActGodGiftReset:
                                Cmd:%s,
                                SubCmd:%s,
                                ActNum:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ActNum
                                )
        return DumpString
m_NAtagCMActGodGiftReset=tagCMActGodGiftReset()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActGodGiftReset.Cmd,m_NAtagCMActGodGiftReset.SubCmd))] = m_NAtagCMActGodGiftReset
#------------------------------------------------------
@@ -16340,6 +17795,162 @@
#------------------------------------------------------
# B2 16 古宝激活 #tagCMGubaoActivate
class  tagCMGubaoActivate(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("GubaoID", c_ushort),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB2
        self.SubCmd = 0x16
        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 = 0x16
        self.GubaoID = 0
        return
    def GetLength(self):
        return sizeof(tagCMGubaoActivate)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B2 16 古宝激活 //tagCMGubaoActivate:
                                Cmd:%s,
                                SubCmd:%s,
                                GubaoID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.GubaoID
                                )
        return DumpString
m_NAtagCMGubaoActivate=tagCMGubaoActivate()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGubaoActivate.Cmd,m_NAtagCMGubaoActivate.SubCmd))] = m_NAtagCMGubaoActivate
#------------------------------------------------------
# B2 18 古宝升级 #tagCMGubaoLVUp
class  tagCMGubaoLVUp(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("GubaoID", c_ushort),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB2
        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 = 0xB2
        self.SubCmd = 0x18
        self.GubaoID = 0
        return
    def GetLength(self):
        return sizeof(tagCMGubaoLVUp)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B2 18 古宝升级 //tagCMGubaoLVUp:
                                Cmd:%s,
                                SubCmd:%s,
                                GubaoID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.GubaoID
                                )
        return DumpString
m_NAtagCMGubaoLVUp=tagCMGubaoLVUp()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGubaoLVUp.Cmd,m_NAtagCMGubaoLVUp.SubCmd))] = m_NAtagCMGubaoLVUp
#------------------------------------------------------
# B2 17 古宝升星 #tagCMGubaoStarUp
class  tagCMGubaoStarUp(Structure):
    _pack_ = 1
    _fields_ = [
                  ("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):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.Cmd = 0xB2
        self.SubCmd = 0x17
        self.GubaoID = 0
        return
    def GetLength(self):
        return sizeof(tagCMGubaoStarUp)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B2 17 古宝升星 //tagCMGubaoStarUp:
                                Cmd:%s,
                                SubCmd:%s,
                                GubaoID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.GubaoID
                                )
        return DumpString
m_NAtagCMGubaoStarUp=tagCMGubaoStarUp()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGubaoStarUp.Cmd,m_NAtagCMGubaoStarUp.SubCmd))] = m_NAtagCMGubaoStarUp
#------------------------------------------------------
# B2 07 重置加点 #tagCMResetAttrPoint
class  tagCMResetAttrPoint(Structure):
@@ -16385,6 +17996,125 @@
m_NAtagCMResetAttrPoint=tagCMResetAttrPoint()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMResetAttrPoint.Cmd,m_NAtagCMResetAttrPoint.SubCmd))] = m_NAtagCMResetAttrPoint
#------------------------------------------------------
# B2 19 神通升级 #tagCMShentongLVUp
class  tagCMShentongLVUp(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ShentongID", c_ubyte),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB2
        self.SubCmd = 0x19
        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 = 0x19
        self.ShentongID = 0
        return
    def GetLength(self):
        return sizeof(tagCMShentongLVUp)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B2 19 神通升级 //tagCMShentongLVUp:
                                Cmd:%s,
                                SubCmd:%s,
                                ShentongID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ShentongID
                                )
        return DumpString
m_NAtagCMShentongLVUp=tagCMShentongLVUp()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMShentongLVUp.Cmd,m_NAtagCMShentongLVUp.SubCmd))] = m_NAtagCMShentongLVUp
#------------------------------------------------------
# B2 20 神通技能设置 #tagCMShentongSkillSet
class  tagCMShentongSkillSet(Structure):
    Head = tagHead()
    Count = 0    #(BYTE Count)
    SkillIDList = list()    #(vector<DWORD> SkillIDList)
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xB2
        self.Head.SubCmd = 0x20
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.Count):
            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
            self.SkillIDList.append(value)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xB2
        self.Head.SubCmd = 0x20
        self.Count = 0
        self.SkillIDList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 4 * self.Count
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.Count)
        for i in range(self.Count):
            data = CommFunc.WriteDWORD(data, self.SkillIDList[i])
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Count:%d,
                                SkillIDList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagCMShentongSkillSet=tagCMShentongSkillSet()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMShentongSkillSet.Head.Cmd,m_NAtagCMShentongSkillSet.Head.SubCmd))] = m_NAtagCMShentongSkillSet
#------------------------------------------------------
@@ -16668,6 +18398,390 @@
m_NAtagCMTJGnpc=tagCMTJGnpc()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMTJGnpc.Cmd,m_NAtagCMTJGnpc.SubCmd))] = m_NAtagCMTJGnpc
#------------------------------------------------------
# B3 17 情戒解锁 #tagCMLoveRingUnlock
class  tagCMLoveRingUnlock(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB3
        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 = 0xB3
        self.SubCmd = 0x17
        return
    def GetLength(self):
        return sizeof(tagCMLoveRingUnlock)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B3 17 情戒解锁 //tagCMLoveRingUnlock:
                                Cmd:%s,
                                SubCmd:%s
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd
                                )
        return DumpString
m_NAtagCMLoveRingUnlock=tagCMLoveRingUnlock()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMLoveRingUnlock.Cmd,m_NAtagCMLoveRingUnlock.SubCmd))] = m_NAtagCMLoveRingUnlock
#------------------------------------------------------
# B3 18 情戒升级 #tagCMLoveRingUp
class  tagCMLoveRingUp(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("UseItemCnt", c_int),    #消耗材料个数
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB3
        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 = 0xB3
        self.SubCmd = 0x18
        self.UseItemCnt = 0
        return
    def GetLength(self):
        return sizeof(tagCMLoveRingUp)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B3 18 情戒升级 //tagCMLoveRingUp:
                                Cmd:%s,
                                SubCmd:%s,
                                UseItemCnt:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.UseItemCnt
                                )
        return DumpString
m_NAtagCMLoveRingUp=tagCMLoveRingUp()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMLoveRingUp.Cmd,m_NAtagCMLoveRingUp.SubCmd))] = m_NAtagCMLoveRingUp
#------------------------------------------------------
# B3 15 离婚 #tagCMMarryBreak
class  tagCMMarryBreak(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("BreakType", c_ubyte),    # 0-和平离婚;1-强制离婚
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB3
        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 = 0xB3
        self.SubCmd = 0x15
        self.BreakType = 0
        return
    def GetLength(self):
        return sizeof(tagCMMarryBreak)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B3 15 离婚 //tagCMMarryBreak:
                                Cmd:%s,
                                SubCmd:%s,
                                BreakType:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.BreakType
                                )
        return DumpString
m_NAtagCMMarryBreak=tagCMMarryBreak()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMMarryBreak.Cmd,m_NAtagCMMarryBreak.SubCmd))] = m_NAtagCMMarryBreak
#------------------------------------------------------
# B3 14 购买婚礼烟花 #tagCMMarryBuyFireworks
class  tagCMMarryBuyFireworks(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("PlayerIDA", c_int),    # 喜糖所属玩家IDA
                  ("PlayerIDB", c_int),    # 喜糖所属玩家IDB
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB3
        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 = 0xB3
        self.SubCmd = 0x14
        self.PlayerIDA = 0
        self.PlayerIDB = 0
        return
    def GetLength(self):
        return sizeof(tagCMMarryBuyFireworks)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B3 14 购买婚礼烟花 //tagCMMarryBuyFireworks:
                                Cmd:%s,
                                SubCmd:%s,
                                PlayerIDA:%d,
                                PlayerIDB:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.PlayerIDA,
                                self.PlayerIDB
                                )
        return DumpString
m_NAtagCMMarryBuyFireworks=tagCMMarryBuyFireworks()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMMarryBuyFireworks.Cmd,m_NAtagCMMarryBuyFireworks.SubCmd))] = m_NAtagCMMarryBuyFireworks
#------------------------------------------------------
# B3 13 吃喜糖 #tagCMMarryEatCandy
class  tagCMMarryEatCandy(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("PlayerIDA", c_int),    # 喜糖所属玩家IDA
                  ("PlayerIDB", c_int),    # 喜糖所属玩家IDB
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB3
        self.SubCmd = 0x13
        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 = 0xB3
        self.SubCmd = 0x13
        self.PlayerIDA = 0
        self.PlayerIDB = 0
        return
    def GetLength(self):
        return sizeof(tagCMMarryEatCandy)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B3 13 吃喜糖 //tagCMMarryEatCandy:
                                Cmd:%s,
                                SubCmd:%s,
                                PlayerIDA:%d,
                                PlayerIDB:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.PlayerIDA,
                                self.PlayerIDB
                                )
        return DumpString
m_NAtagCMMarryEatCandy=tagCMMarryEatCandy()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMMarryEatCandy.Cmd,m_NAtagCMMarryEatCandy.SubCmd))] = m_NAtagCMMarryEatCandy
#------------------------------------------------------
# B3 11 提亲 #tagCMMarryReq
class  tagCMMarryReq(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("TagPlayerID", c_int),    # 目标玩家ID
                  ("BridePriceID", c_ubyte),    # 聘礼ID
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB3
        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 = 0xB3
        self.SubCmd = 0x11
        self.TagPlayerID = 0
        self.BridePriceID = 0
        return
    def GetLength(self):
        return sizeof(tagCMMarryReq)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B3 11 提亲 //tagCMMarryReq:
                                Cmd:%s,
                                SubCmd:%s,
                                TagPlayerID:%d,
                                BridePriceID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.TagPlayerID,
                                self.BridePriceID
                                )
        return DumpString
m_NAtagCMMarryReq=tagCMMarryReq()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMMarryReq.Cmd,m_NAtagCMMarryReq.SubCmd))] = m_NAtagCMMarryReq
#------------------------------------------------------
# B3 10 送礼物 #tagCMSendGifts
class  tagCMSendGifts(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("TagPlayerID", c_int),    # 目标玩家ID
                  ("GiftNum", c_ushort),    # 赠送礼物编号
                  ("GiftCount", c_int),    # 赠送礼物数量
                  ("IsAutoBuy", c_ubyte),    # 是否自动购买
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xB3
        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 = 0xB3
        self.SubCmd = 0x10
        self.TagPlayerID = 0
        self.GiftNum = 0
        self.GiftCount = 0
        self.IsAutoBuy = 0
        return
    def GetLength(self):
        return sizeof(tagCMSendGifts)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B3 10 送礼物 //tagCMSendGifts:
                                Cmd:%s,
                                SubCmd:%s,
                                TagPlayerID:%d,
                                GiftNum:%d,
                                GiftCount:%d,
                                IsAutoBuy:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.TagPlayerID,
                                self.GiftNum,
                                self.GiftCount,
                                self.IsAutoBuy
                                )
        return DumpString
m_NAtagCMSendGifts=tagCMSendGifts()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMSendGifts.Cmd,m_NAtagCMSendGifts.SubCmd))] = m_NAtagCMSendGifts
#------------------------------------------------------
@@ -18129,6 +20243,322 @@
#------------------------------------------------------
# C1 22 跨服排位竞猜 #tagCMChampionshipGuess
class  tagCMChampionshipGuess(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ZoneID", c_ubyte),    #排位数据分区ID
                  ("GuessType", c_ubyte),    #竞猜类型 8-8强;4-4强排位
                  ("PlayerID", c_int),    #目标玩家ID
                  ("GuessCount", c_ubyte),    #投注/追加份数
                  ("GuessRank", c_ubyte),    # 竞猜名次,没有名次的竞猜默认0;1-代表第一名
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xC1
        self.SubCmd = 0x22
        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 = 0x22
        self.ZoneID = 0
        self.GuessType = 0
        self.PlayerID = 0
        self.GuessCount = 0
        self.GuessRank = 0
        return
    def GetLength(self):
        return sizeof(tagCMChampionshipGuess)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// C1 22 跨服排位竞猜 //tagCMChampionshipGuess:
                                Cmd:%s,
                                SubCmd:%s,
                                ZoneID:%d,
                                GuessType:%d,
                                PlayerID:%d,
                                GuessCount:%d,
                                GuessRank:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ZoneID,
                                self.GuessType,
                                self.PlayerID,
                                self.GuessCount,
                                self.GuessRank
                                )
        return DumpString
m_NAtagCMChampionshipGuess=tagCMChampionshipGuess()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMChampionshipGuess.Cmd,m_NAtagCMChampionshipGuess.SubCmd))] = m_NAtagCMChampionshipGuess
#------------------------------------------------------
# C1 20 跨服排位仙官申请 #tagCMChampionshipOfficialApply
class  tagCMChampionshipOfficialApply(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ZoneID", c_ubyte),    #仙官数据分区ID
                  ("MainOfficialID", c_ushort),    #界主官职ID
                  ("OfficialID", c_ushort),    #申请官职ID
                  ("Cancel", c_ubyte),    #是否取消申请,默认0-申请;1-取消申请
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xC1
        self.SubCmd = 0x20
        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 = 0x20
        self.ZoneID = 0
        self.MainOfficialID = 0
        self.OfficialID = 0
        self.Cancel = 0
        return
    def GetLength(self):
        return sizeof(tagCMChampionshipOfficialApply)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// C1 20 跨服排位仙官申请 //tagCMChampionshipOfficialApply:
                                Cmd:%s,
                                SubCmd:%s,
                                ZoneID:%d,
                                MainOfficialID:%d,
                                OfficialID:%d,
                                Cancel:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ZoneID,
                                self.MainOfficialID,
                                self.OfficialID,
                                self.Cancel
                                )
        return DumpString
m_NAtagCMChampionshipOfficialApply=tagCMChampionshipOfficialApply()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMChampionshipOfficialApply.Cmd,m_NAtagCMChampionshipOfficialApply.SubCmd))] = m_NAtagCMChampionshipOfficialApply
#------------------------------------------------------
# C1 21 跨服排位仙官挑战 #tagCMChampionshipOfficialChallenge
class  tagCMChampionshipOfficialChallenge(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ZoneID", c_ubyte),    #仙官数据分区ID
                  ("MainOfficialID", c_ushort),    #界主官职ID
                  ("OfficialID", c_ushort),    #挑战的目标官职ID
                  ("PlayerID", c_int),    #挑战时的目标玩家ID
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xC1
        self.SubCmd = 0x21
        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 = 0x21
        self.ZoneID = 0
        self.MainOfficialID = 0
        self.OfficialID = 0
        self.PlayerID = 0
        return
    def GetLength(self):
        return sizeof(tagCMChampionshipOfficialChallenge)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// C1 21 跨服排位仙官挑战 //tagCMChampionshipOfficialChallenge:
                                Cmd:%s,
                                SubCmd:%s,
                                ZoneID:%d,
                                MainOfficialID:%d,
                                OfficialID:%d,
                                PlayerID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ZoneID,
                                self.MainOfficialID,
                                self.OfficialID,
                                self.PlayerID
                                )
        return DumpString
m_NAtagCMChampionshipOfficialChallenge=tagCMChampionshipOfficialChallenge()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMChampionshipOfficialChallenge.Cmd,m_NAtagCMChampionshipOfficialChallenge.SubCmd))] = m_NAtagCMChampionshipOfficialChallenge
#------------------------------------------------------
# C1 23 跨服排位膜拜 #tagCMChampionshipWorship
class  tagCMChampionshipWorship(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ZoneID", c_ubyte),    #仙官数据分区ID
                  ("PlayerID", c_int),    #目标玩家ID
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xC1
        self.SubCmd = 0x23
        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 = 0x23
        self.ZoneID = 0
        self.PlayerID = 0
        return
    def GetLength(self):
        return sizeof(tagCMChampionshipWorship)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// C1 23 跨服排位膜拜 //tagCMChampionshipWorship:
                                Cmd:%s,
                                SubCmd:%s,
                                ZoneID:%d,
                                PlayerID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ZoneID,
                                self.PlayerID
                                )
        return DumpString
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
#------------------------------------------------------
# C1 06 跨服NPC对话 #tagCMCrossNPCTalk
class  tagCMCrossNPCTalk(Structure):
@@ -18501,4 +20931,56 @@
m_NAtagCMExitCrossRealm=tagCMExitCrossRealm()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMExitCrossRealm.Cmd,m_NAtagCMExitCrossRealm.SubCmd))] = m_NAtagCMExitCrossRealm
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMExitCrossRealm.Cmd,m_NAtagCMExitCrossRealm.SubCmd))] = m_NAtagCMExitCrossRealm
#------------------------------------------------------
# C1 10 幸运云购购买 #tagCMLuckyCloudBuy
class  tagCMLuckyCloudBuy(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("BuyCount", c_ushort),    # 购买份数
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xC1
        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 = 0xC1
        self.SubCmd = 0x10
        self.BuyCount = 0
        return
    def GetLength(self):
        return sizeof(tagCMLuckyCloudBuy)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// C1 10 幸运云购购买 //tagCMLuckyCloudBuy:
                                Cmd:%s,
                                SubCmd:%s,
                                BuyCount:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.BuyCount
                                )
        return DumpString
m_NAtagCMLuckyCloudBuy=tagCMLuckyCloudBuy()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMLuckyCloudBuy.Cmd,m_NAtagCMLuckyCloudBuy.SubCmd))] = m_NAtagCMLuckyCloudBuy