ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
@@ -3987,6 +3987,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):
@@ -4032,6 +4448,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
#------------------------------------------------------
@@ -11227,6 +11743,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
#------------------------------------------------------
@@ -18841,6 +19461,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):
@@ -19213,4 +20149,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