| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # 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):
|
| | |
| | |
|
| | | 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
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # 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):
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # 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):
|
| | |
| | |
|
| | | 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
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # 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):
|