| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # 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):
|
| | |
| | |
|
| | | 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
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # 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
|
| | | ]
|
| | |
|
| | | 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
|
| | | 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
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.ZoneID,
|
| | | self.MainOfficialID,
|
| | | self.OfficialID
|
| | | )
|
| | | 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):
|
| | |
| | | ("Hour", c_ubyte), #战场开启时
|
| | | ("Minute", c_ubyte), #战场开启分
|
| | | ("Faction", c_ubyte), #阵营 1-红;2-蓝
|
| | | ("ServerOnly", c_ubyte), #是否仅本服玩家可加入,0-否,1-是
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | |
| | | self.Hour = 0
|
| | | self.Minute = 0
|
| | | self.Faction = 0
|
| | | self.ServerOnly = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | |
| | | SubCmd:%s,
|
| | | Hour:%d,
|
| | | Minute:%d,
|
| | | Faction:%d
|
| | | Faction:%d,
|
| | | ServerOnly:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.Hour,
|
| | | self.Minute,
|
| | | self.Faction
|
| | | self.Faction,
|
| | | self.ServerOnly
|
| | | )
|
| | | return DumpString
|
| | |
|