| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # D1 25 通知可进入跨服王者争霸 #tagCanEnterMergeKing
|
| | |
|
| | | class tagCanEnterMergeKing(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("GroupType", c_ubyte), # 战斗赛事组类型,如16强等
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xD1
|
| | | 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 = 0xD1
|
| | | self.SubCmd = 0x25
|
| | | self.GroupType = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCanEnterMergeKing)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// D1 25 通知可进入跨服王者争霸 //tagCanEnterMergeKing:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | GroupType:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.GroupType
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCanEnterMergeKing=tagCanEnterMergeKing()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCanEnterMergeKing.Cmd,m_NAtagCanEnterMergeKing.SubCmd))] = m_NAtagCanEnterMergeKing
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # D1 24 通知可进入跨服PK匹配 #tagCanEnterMergePK
|
| | |
|
| | | class tagCanEnterMergePKMember(Structure):
|
| | | Head = tagHead()
|
| | | AccIDLen = 0 #(BYTE AccIDLen)
|
| | | AccID = "" #(String AccID)
|
| | | NameLen = 0 #(BYTE NameLen)
|
| | | PlayerName = "" #(String PlayerName)
|
| | | Job = 0 #(BYTE Job)
|
| | | PKCnt = 0 #(DWORD PKCnt)// 已PK次数
|
| | | PKCWinCnt = 0 #(DWORD PKCWinCnt)// 当前连胜次数
|
| | | Score = 0 #(DWORD Score)// 赛季积分
|
| | | DayScore = 0 #(DWORD DayScore)// 当日积分
|
| | | PKWinCnt = 0 #(DWORD PKWinCnt)// 累计胜利次数
|
| | | MaxCWinCnt = 0 #(DWORD MaxCWinCnt)// 最大连胜次数
|
| | | Grade = 0 #(BYTE Grade)// 当前段位
|
| | | FightPower = 0 #(DWORD FightPower)// 战斗力
|
| | | PlayerLV = 0 #(WORD PlayerLV)// 等级
|
| | | MaxHP = 0 #(DWORD MaxHP)// 最大生命值
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xD1
|
| | | self.Head.SubCmd = 0x24
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.AccIDLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.AccID,_pos = CommFunc.ReadString(_lpData, _pos,self.AccIDLen)
|
| | | self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen)
|
| | | self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.PKCnt,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.PKCWinCnt,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.Score,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.DayScore,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.PKWinCnt,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.MaxCWinCnt,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.Grade,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.PlayerLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.MaxHP,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xD1
|
| | | self.Head.SubCmd = 0x24
|
| | | self.AccIDLen = 0
|
| | | self.AccID = ""
|
| | | self.NameLen = 0
|
| | | self.PlayerName = ""
|
| | | self.Job = 0
|
| | | self.PKCnt = 0
|
| | | self.PKCWinCnt = 0
|
| | | self.Score = 0
|
| | | self.DayScore = 0
|
| | | self.PKWinCnt = 0
|
| | | self.MaxCWinCnt = 0
|
| | | self.Grade = 0
|
| | | self.FightPower = 0
|
| | | self.PlayerLV = 0
|
| | | self.MaxHP = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 1
|
| | | length += len(self.AccID)
|
| | | length += 1
|
| | | length += len(self.PlayerName)
|
| | | length += 1
|
| | | length += 4
|
| | | length += 4
|
| | | length += 4
|
| | | length += 4
|
| | | length += 4
|
| | | length += 4
|
| | | length += 1
|
| | | length += 4
|
| | | length += 2
|
| | | length += 4
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteBYTE(data, self.AccIDLen)
|
| | | data = CommFunc.WriteString(data, self.AccIDLen, self.AccID)
|
| | | data = CommFunc.WriteBYTE(data, self.NameLen)
|
| | | data = CommFunc.WriteString(data, self.NameLen, self.PlayerName)
|
| | | data = CommFunc.WriteBYTE(data, self.Job)
|
| | | data = CommFunc.WriteDWORD(data, self.PKCnt)
|
| | | data = CommFunc.WriteDWORD(data, self.PKCWinCnt)
|
| | | data = CommFunc.WriteDWORD(data, self.Score)
|
| | | data = CommFunc.WriteDWORD(data, self.DayScore)
|
| | | data = CommFunc.WriteDWORD(data, self.PKWinCnt)
|
| | | data = CommFunc.WriteDWORD(data, self.MaxCWinCnt)
|
| | | data = CommFunc.WriteBYTE(data, self.Grade)
|
| | | data = CommFunc.WriteDWORD(data, self.FightPower)
|
| | | data = CommFunc.WriteWORD(data, self.PlayerLV)
|
| | | data = CommFunc.WriteDWORD(data, self.MaxHP)
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | AccIDLen:%d,
|
| | | AccID:%s,
|
| | | NameLen:%d,
|
| | | PlayerName:%s,
|
| | | Job:%d,
|
| | | PKCnt:%d,
|
| | | PKCWinCnt:%d,
|
| | | Score:%d,
|
| | | DayScore:%d,
|
| | | PKWinCnt:%d,
|
| | | MaxCWinCnt:%d,
|
| | | Grade:%d,
|
| | | FightPower:%d,
|
| | | PlayerLV:%d,
|
| | | MaxHP:%d
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.AccIDLen,
|
| | | self.AccID,
|
| | | self.NameLen,
|
| | | self.PlayerName,
|
| | | self.Job,
|
| | | self.PKCnt,
|
| | | self.PKCWinCnt,
|
| | | self.Score,
|
| | | self.DayScore,
|
| | | self.PKWinCnt,
|
| | | self.MaxCWinCnt,
|
| | | self.Grade,
|
| | | self.FightPower,
|
| | | self.PlayerLV,
|
| | | self.MaxHP
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagCanEnterMergePK(Structure):
|
| | | Head = tagHead()
|
| | | MapID = 0 #(DWORD MapID)// 要进入的地图ID
|
| | | RoomID = 0 #(DWORD RoomID)// 要进入的房间ID
|
| | | MemberCnt = 0 #(BYTE MemberCnt)// 对战玩家个数
|
| | | MemberList = list() #(vector<tagCanEnterMergePKMember> MemberList)// 对战玩家详细信息
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xD1
|
| | | self.Head.SubCmd = 0x24
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.MapID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.RoomID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.MemberCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.MemberCnt):
|
| | | temMemberList = tagCanEnterMergePKMember()
|
| | | _pos = temMemberList.ReadData(_lpData, _pos)
|
| | | self.MemberList.append(temMemberList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xD1
|
| | | self.Head.SubCmd = 0x24
|
| | | self.MapID = 0
|
| | | self.RoomID = 0
|
| | | self.MemberCnt = 0
|
| | | self.MemberList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 4
|
| | | length += 4
|
| | | length += 1
|
| | | for i in range(self.MemberCnt):
|
| | | length += self.MemberList[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteDWORD(data, self.MapID)
|
| | | data = CommFunc.WriteDWORD(data, self.RoomID)
|
| | | data = CommFunc.WriteBYTE(data, self.MemberCnt)
|
| | | for i in range(self.MemberCnt):
|
| | | data = CommFunc.WriteString(data, self.MemberList[i].GetLength(), self.MemberList[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | MapID:%d,
|
| | | RoomID:%d,
|
| | | MemberCnt:%d,
|
| | | MemberList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.MapID,
|
| | | self.RoomID,
|
| | | self.MemberCnt,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCanEnterMergePK=tagCanEnterMergePK()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCanEnterMergePK.Head.Cmd,m_NAtagCanEnterMergePK.Head.SubCmd))] = m_NAtagCanEnterMergePK
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # D1 23 通知可进入跨服活动 #tagCanEnterMergeServer
|
| | |
|
| | | class tagCanEnterMergeServer(Structure):
|
| | | Head = tagHead()
|
| | | ActionType = 0 #(BYTE ActionType)//活动类型
|
| | | MapID = 0 #(DWORD MapID)// 登录后在中转地图时要跳转进入的地图ID
|
| | | LineID = 0 #(DWORD LineID)// 要进入的线路或地图扩展数据
|
| | | NewAccIDLen = 0 #(BYTE NewAccIDLen)
|
| | | NewAccID = "" #(String NewAccID)
|
| | | NewPswLen = 0 #(BYTE NewPswLen)
|
| | | NewPsw = "" #(String NewPsw)
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xD1
|
| | | self.Head.SubCmd = 0x23
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.ActionType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.MapID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.LineID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.NewAccIDLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.NewAccID,_pos = CommFunc.ReadString(_lpData, _pos,self.NewAccIDLen)
|
| | | self.NewPswLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.NewPsw,_pos = CommFunc.ReadString(_lpData, _pos,self.NewPswLen)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xD1
|
| | | self.Head.SubCmd = 0x23
|
| | | self.ActionType = 0
|
| | | self.MapID = 0
|
| | | self.LineID = 0
|
| | | self.NewAccIDLen = 0
|
| | | self.NewAccID = ""
|
| | | self.NewPswLen = 0
|
| | | self.NewPsw = ""
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 1
|
| | | length += 4
|
| | | length += 4
|
| | | length += 1
|
| | | length += len(self.NewAccID)
|
| | | length += 1
|
| | | length += len(self.NewPsw)
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteBYTE(data, self.ActionType)
|
| | | data = CommFunc.WriteDWORD(data, self.MapID)
|
| | | data = CommFunc.WriteDWORD(data, self.LineID)
|
| | | data = CommFunc.WriteBYTE(data, self.NewAccIDLen)
|
| | | data = CommFunc.WriteString(data, self.NewAccIDLen, self.NewAccID)
|
| | | data = CommFunc.WriteBYTE(data, self.NewPswLen)
|
| | | data = CommFunc.WriteString(data, self.NewPswLen, self.NewPsw)
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | ActionType:%d,
|
| | | MapID:%d,
|
| | | LineID:%d,
|
| | | NewAccIDLen:%d,
|
| | | NewAccID:%s,
|
| | | NewPswLen:%d,
|
| | | NewPsw:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.ActionType,
|
| | | self.MapID,
|
| | | self.LineID,
|
| | | self.NewAccIDLen,
|
| | | self.NewAccID,
|
| | | self.NewPswLen,
|
| | | self.NewPsw
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCanEnterMergeServer=tagCanEnterMergeServer()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCanEnterMergeServer.Head.Cmd,m_NAtagCanEnterMergeServer.Head.SubCmd))] = m_NAtagCanEnterMergeServer
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | #D1 08 上传数据查询结果 #tagMergeRegisterQueryResult
|
| | |
|
| | | class tagMergeRegisterQueryResult(Structure):
|
| | | Head = tagHead()
|
| | | NewAccIDLen = 0 #(BYTE NewAccIDLen)
|
| | | NewAccID = "" #(String NewAccID)
|
| | | NewPswLen = 0 #(BYTE NewPswLen)
|
| | | NewPsw = "" #(String NewPsw)
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xD1
|
| | | self.Head.SubCmd = 0x08
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.NewAccIDLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.NewAccID,_pos = CommFunc.ReadString(_lpData, _pos,self.NewAccIDLen)
|
| | | self.NewPswLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.NewPsw,_pos = CommFunc.ReadString(_lpData, _pos,self.NewPswLen)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xD1
|
| | | self.Head.SubCmd = 0x08
|
| | | self.NewAccIDLen = 0
|
| | | self.NewAccID = ""
|
| | | self.NewPswLen = 0
|
| | | self.NewPsw = ""
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 1
|
| | | length += len(self.NewAccID)
|
| | | length += 1
|
| | | length += len(self.NewPsw)
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteBYTE(data, self.NewAccIDLen)
|
| | | data = CommFunc.WriteString(data, self.NewAccIDLen, self.NewAccID)
|
| | | data = CommFunc.WriteBYTE(data, self.NewPswLen)
|
| | | data = CommFunc.WriteString(data, self.NewPswLen, self.NewPsw)
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | NewAccIDLen:%d,
|
| | | NewAccID:%s,
|
| | | NewPswLen:%d,
|
| | | NewPsw:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.NewAccIDLen,
|
| | | self.NewAccID,
|
| | | self.NewPswLen,
|
| | | self.NewPsw
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMergeRegisterQueryResult=tagMergeRegisterQueryResult()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMergeRegisterQueryResult.Head.Cmd,m_NAtagMergeRegisterQueryResult.Head.SubCmd))] = m_NAtagMergeRegisterQueryResult
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | #D1 16 跨服赛服务器信息 #tagMergeServerInfo
|
| | |
|
| | | class tagMergeServerInfo(Structure):
|
| | | Head = tagHead()
|
| | | ServerIPLen = 0 #(BYTE ServerIPLen)
|
| | | ServerIP = "" #(String ServerIP)
|
| | | Port = 0 #(DWORD Port)
|
| | | IsMergeServer = 0 #(BYTE IsMergeServer)
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xD1
|
| | | self.Head.SubCmd = 0x16
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.ServerIPLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.ServerIP,_pos = CommFunc.ReadString(_lpData, _pos,self.ServerIPLen)
|
| | | self.Port,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.IsMergeServer,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xD1
|
| | | self.Head.SubCmd = 0x16
|
| | | self.ServerIPLen = 0
|
| | | self.ServerIP = ""
|
| | | self.Port = 0
|
| | | self.IsMergeServer = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 1
|
| | | length += len(self.ServerIP)
|
| | | length += 4
|
| | | length += 1
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteBYTE(data, self.ServerIPLen)
|
| | | data = CommFunc.WriteString(data, self.ServerIPLen, self.ServerIP)
|
| | | data = CommFunc.WriteDWORD(data, self.Port)
|
| | | data = CommFunc.WriteBYTE(data, self.IsMergeServer)
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | ServerIPLen:%d,
|
| | | ServerIP:%s,
|
| | | Port:%d,
|
| | | IsMergeServer:%d
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.ServerIPLen,
|
| | | self.ServerIP,
|
| | | self.Port,
|
| | | self.IsMergeServer
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMergeServerInfo=tagMergeServerInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMergeServerInfo.Head.Cmd,m_NAtagMergeServerInfo.Head.SubCmd))] = m_NAtagMergeServerInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # D1 27 通知跨服PK战斗结果 #tagMergePKOverInfo
|
| | |
|
| | | class tagMergePKOver(Structure):
|
| | | TimeLen = 0 #(BYTE TimeLen)
|
| | | TimeStr = "" #(String TimeStr)// yyyy-MM-dd HH:mm:ss
|
| | | RoomID = 0 #(DWORD RoomID)
|
| | | OverType = 0 #(BYTE OverType)
|
| | | RemainTime = 0 #(DWORD RemainTime)
|
| | | WinnerAccIDLen = 0 #(BYTE WinnerAccIDLen)
|
| | | WinnerAccID = "" #(String WinnerAccID)
|
| | | LoserAccIDLen = 0 #(BYTE LoserAccIDLen)
|
| | | LoserAccID = "" #(String LoserAccID)
|
| | | WinnerID = 0 #(DWORD WinnerID)
|
| | | LoserID = 0 #(DWORD LoserID)
|
| | | WinnerNameLen = 0 #(BYTE WinnerNameLen)
|
| | | WinnerName = "" #(String WinnerName)
|
| | | LoserNameLen = 0 #(BYTE LoserNameLen)
|
| | | LoserName = "" #(String LoserName)
|
| | | WinnerAddScore = 0 #(WORD WinnerAddScore)
|
| | | LoserAddScoreLen = 0 #(BYTE LoserAddScoreLen)
|
| | | LoserAddScore = "" #(String LoserAddScore)// 失败附加分,支持负值
|
| | | WinnerWinCnt = 0 #(BYTE WinnerWinCnt)// 比分获胜方获胜次数
|
| | | LoserWinCnt = 0 #(BYTE LoserWinCnt)// 比分失败方获胜次数
|
| | | WinnerCWinCnt = 0 #(WORD WinnerCWinCnt)// 获胜者连胜数
|
| | | LuckyItemID = 0 #(DWORD LuckyItemID)
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | self.TimeLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.TimeStr,_pos = CommFunc.ReadString(_lpData, _pos,self.TimeLen)
|
| | | self.RoomID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.OverType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.RemainTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.WinnerAccIDLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.WinnerAccID,_pos = CommFunc.ReadString(_lpData, _pos,self.WinnerAccIDLen)
|
| | | self.LoserAccIDLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.LoserAccID,_pos = CommFunc.ReadString(_lpData, _pos,self.LoserAccIDLen)
|
| | | self.WinnerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.LoserID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.WinnerNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.WinnerName,_pos = CommFunc.ReadString(_lpData, _pos,self.WinnerNameLen)
|
| | | self.LoserNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.LoserName,_pos = CommFunc.ReadString(_lpData, _pos,self.LoserNameLen)
|
| | | self.WinnerAddScore,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.LoserAddScoreLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.LoserAddScore,_pos = CommFunc.ReadString(_lpData, _pos,self.LoserAddScoreLen)
|
| | | self.WinnerWinCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.LoserWinCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.WinnerCWinCnt,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.LuckyItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.TimeLen = 0
|
| | | self.TimeStr = ""
|
| | | self.RoomID = 0
|
| | | self.OverType = 0
|
| | | self.RemainTime = 0
|
| | | self.WinnerAccIDLen = 0
|
| | | self.WinnerAccID = ""
|
| | | self.LoserAccIDLen = 0
|
| | | self.LoserAccID = ""
|
| | | self.WinnerID = 0
|
| | | self.LoserID = 0
|
| | | self.WinnerNameLen = 0
|
| | | self.WinnerName = ""
|
| | | self.LoserNameLen = 0
|
| | | self.LoserName = ""
|
| | | self.WinnerAddScore = 0
|
| | | self.LoserAddScoreLen = 0
|
| | | self.LoserAddScore = ""
|
| | | self.WinnerWinCnt = 0
|
| | | self.LoserWinCnt = 0
|
| | | self.WinnerCWinCnt = 0
|
| | | self.LuckyItemID = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += 1
|
| | | length += len(self.TimeStr)
|
| | | length += 4
|
| | | length += 1
|
| | | length += 4
|
| | | length += 1
|
| | | length += len(self.WinnerAccID)
|
| | | length += 1
|
| | | length += len(self.LoserAccID)
|
| | | length += 4
|
| | | length += 4
|
| | | length += 1
|
| | | length += len(self.WinnerName)
|
| | | length += 1
|
| | | length += len(self.LoserName)
|
| | | length += 2
|
| | | length += 1
|
| | | length += len(self.LoserAddScore)
|
| | | length += 1
|
| | | length += 1
|
| | | length += 2
|
| | | length += 4
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteBYTE(data, self.TimeLen)
|
| | | data = CommFunc.WriteString(data, self.TimeLen, self.TimeStr)
|
| | | data = CommFunc.WriteDWORD(data, self.RoomID)
|
| | | data = CommFunc.WriteBYTE(data, self.OverType)
|
| | | data = CommFunc.WriteDWORD(data, self.RemainTime)
|
| | | data = CommFunc.WriteBYTE(data, self.WinnerAccIDLen)
|
| | | data = CommFunc.WriteString(data, self.WinnerAccIDLen, self.WinnerAccID)
|
| | | data = CommFunc.WriteBYTE(data, self.LoserAccIDLen)
|
| | | data = CommFunc.WriteString(data, self.LoserAccIDLen, self.LoserAccID)
|
| | | data = CommFunc.WriteDWORD(data, self.WinnerID)
|
| | | data = CommFunc.WriteDWORD(data, self.LoserID)
|
| | | data = CommFunc.WriteBYTE(data, self.WinnerNameLen)
|
| | | data = CommFunc.WriteString(data, self.WinnerNameLen, self.WinnerName)
|
| | | data = CommFunc.WriteBYTE(data, self.LoserNameLen)
|
| | | data = CommFunc.WriteString(data, self.LoserNameLen, self.LoserName)
|
| | | data = CommFunc.WriteWORD(data, self.WinnerAddScore)
|
| | | data = CommFunc.WriteBYTE(data, self.LoserAddScoreLen)
|
| | | data = CommFunc.WriteString(data, self.LoserAddScoreLen, self.LoserAddScore)
|
| | | data = CommFunc.WriteBYTE(data, self.WinnerWinCnt)
|
| | | data = CommFunc.WriteBYTE(data, self.LoserWinCnt)
|
| | | data = CommFunc.WriteWORD(data, self.WinnerCWinCnt)
|
| | | data = CommFunc.WriteDWORD(data, self.LuckyItemID)
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | TimeLen:%d,
|
| | | TimeStr:%s,
|
| | | RoomID:%d,
|
| | | OverType:%d,
|
| | | RemainTime:%d,
|
| | | WinnerAccIDLen:%d,
|
| | | WinnerAccID:%s,
|
| | | LoserAccIDLen:%d,
|
| | | LoserAccID:%s,
|
| | | WinnerID:%d,
|
| | | LoserID:%d,
|
| | | WinnerNameLen:%d,
|
| | | WinnerName:%s,
|
| | | LoserNameLen:%d,
|
| | | LoserName:%s,
|
| | | WinnerAddScore:%d,
|
| | | LoserAddScoreLen:%d,
|
| | | LoserAddScore:%s,
|
| | | WinnerWinCnt:%d,
|
| | | LoserWinCnt:%d,
|
| | | WinnerCWinCnt:%d,
|
| | | LuckyItemID:%d
|
| | | '''\
|
| | | %(
|
| | | self.TimeLen,
|
| | | self.TimeStr,
|
| | | self.RoomID,
|
| | | self.OverType,
|
| | | self.RemainTime,
|
| | | self.WinnerAccIDLen,
|
| | | self.WinnerAccID,
|
| | | self.LoserAccIDLen,
|
| | | self.LoserAccID,
|
| | | self.WinnerID,
|
| | | self.LoserID,
|
| | | self.WinnerNameLen,
|
| | | self.WinnerName,
|
| | | self.LoserNameLen,
|
| | | self.LoserName,
|
| | | self.WinnerAddScore,
|
| | | self.LoserAddScoreLen,
|
| | | self.LoserAddScore,
|
| | | self.WinnerWinCnt,
|
| | | self.LoserWinCnt,
|
| | | self.WinnerCWinCnt,
|
| | | self.LuckyItemID
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMergePKOverInfo(Structure):
|
| | | Head = tagHead()
|
| | | Count = 0 #(BYTE Count)
|
| | | PKOverList = list() #(vector<tagMergePKOver> PKOverList)
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xD1
|
| | | self.Head.SubCmd = 0x27
|
| | | 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):
|
| | | temPKOverList = tagMergePKOver()
|
| | | _pos = temPKOverList.ReadData(_lpData, _pos)
|
| | | self.PKOverList.append(temPKOverList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xD1
|
| | | self.Head.SubCmd = 0x27
|
| | | self.Count = 0
|
| | | self.PKOverList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 1
|
| | | for i in range(self.Count):
|
| | | length += self.PKOverList[i].GetLength()
|
| | |
|
| | | 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.WriteString(data, self.PKOverList[i].GetLength(), self.PKOverList[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | Count:%d,
|
| | | PKOverList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.Count,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMergePKOverInfo=tagMergePKOverInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMergePKOverInfo.Head.Cmd,m_NAtagMergePKOverInfo.Head.SubCmd))] = m_NAtagMergePKOverInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # D1 28 跨服PK赛季信息 #tagGCMergePKSeasonInfo
|
| | |
|
| | | class tagGCMergePKSeasonInfo(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("SeasonID", c_int), # 赛季ID
|
| | | ("SeasonStartTime", c_int), # 赛季开始时间
|
| | | ("SeasonCycle", c_ubyte), # 赛季周期天数
|
| | | ("IsSeasonEnd", c_ubyte), # 赛季是否结束
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xD1
|
| | | self.SubCmd = 0x28
|
| | | return
|
| | |
|
| | | def ReadData(self, stringData, _pos=0, _len=0):
|
| | | self.Clear()
|
| | | memmove(addressof(self), stringData[_pos:], self.GetLength())
|
| | | return _pos + self.GetLength()
|
| | |
|
| | | def Clear(self):
|
| | | self.Cmd = 0xD1
|
| | | self.SubCmd = 0x28
|
| | | self.SeasonID = 0
|
| | | self.SeasonStartTime = 0
|
| | | self.SeasonCycle = 0
|
| | | self.IsSeasonEnd = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagGCMergePKSeasonInfo)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// D1 28 跨服PK赛季信息 //tagGCMergePKSeasonInfo:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | SeasonID:%d,
|
| | | SeasonStartTime:%d,
|
| | | SeasonCycle:%d,
|
| | | IsSeasonEnd:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.SeasonID,
|
| | | self.SeasonStartTime,
|
| | | self.SeasonCycle,
|
| | | self.IsSeasonEnd
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagGCMergePKSeasonInfo=tagGCMergePKSeasonInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCMergePKSeasonInfo.Cmd,m_NAtagGCMergePKSeasonInfo.SubCmd))] = m_NAtagGCMergePKSeasonInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # D1 26 通知跨服PK续胜结果 #tagRecoverMergePKWinOK
|
| | |
|
| | | class tagRecoverMergePKWinOK(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xD1
|
| | | self.SubCmd = 0x26
|
| | | return
|
| | |
|
| | | def ReadData(self, stringData, _pos=0, _len=0):
|
| | | self.Clear()
|
| | | memmove(addressof(self), stringData[_pos:], self.GetLength())
|
| | | return _pos + self.GetLength()
|
| | |
|
| | | def Clear(self):
|
| | | self.Cmd = 0xD1
|
| | | self.SubCmd = 0x26
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagRecoverMergePKWinOK)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// D1 26 通知跨服PK续胜结果 //tagRecoverMergePKWinOK:
|
| | | Cmd:%s,
|
| | | SubCmd:%s
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagRecoverMergePKWinOK=tagRecoverMergePKWinOK()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagRecoverMergePKWinOK.Cmd,m_NAtagRecoverMergePKWinOK.SubCmd))] = m_NAtagRecoverMergePKWinOK
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | #A1 25 请求切换地图失败#tagMCChangeMapFail
|
| | |
|
| | | class tagMCChangeMapFail(Structure):
|
| | |
| | |
|
| | |
|
| | | m_NAtagMCCrossRealmPKPlayerInfo=tagMCCrossRealmPKPlayerInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCrossRealmPKPlayerInfo.Cmd,m_NAtagMCCrossRealmPKPlayerInfo.SubCmd))] = m_NAtagMCCrossRealmPKPlayerInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | #D2 01 跨服赛报名(上传数据)状态 #tagMergeWarRegisterState
|
| | |
|
| | | class tagMergeWarRegisterState(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("RegisterState", c_ubyte), |
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xD2
|
| | | self.SubCmd = 0x01
|
| | | 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 = 0xD2
|
| | | self.SubCmd = 0x01
|
| | | self.RegisterState = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMergeWarRegisterState)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''//D2 01 跨服赛报名(上传数据)状态 //tagMergeWarRegisterState:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | RegisterState:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.RegisterState
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMergeWarRegisterState=tagMergeWarRegisterState()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMergeWarRegisterState.Cmd,m_NAtagMergeWarRegisterState.SubCmd))] = m_NAtagMergeWarRegisterState
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # D2 09 跨服boss奖励领奖状态 #tagMCMergeBossAwardRecord
|
| | |
|
| | | class tagMCMergeBossAwardRecord(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("FirstJoinAwardState", c_ubyte), # 首次参与奖励状态;0-不可领,1-可领,2-已领
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xD2
|
| | | 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 = 0xD2
|
| | | self.SubCmd = 0x09
|
| | | self.FirstJoinAwardState = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCMergeBossAwardRecord)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// D2 09 跨服boss奖励领奖状态 //tagMCMergeBossAwardRecord:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | FirstJoinAwardState:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.FirstJoinAwardState
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCMergeBossAwardRecord=tagMCMergeBossAwardRecord()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCMergeBossAwardRecord.Cmd,m_NAtagMCMergeBossAwardRecord.SubCmd))] = m_NAtagMCMergeBossAwardRecord
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # D2 07 跨服王者争霸奖励相关 #tagMCMergeKingAwardInfo
|
| | |
|
| | | class tagMCMergeKingAwardInfo(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("ServerHonour", c_ubyte), # 全服荣耀值, 1 2 4 8等
|
| | | ("ServerHonourAward", c_ubyte), # 全服荣耀奖励是否已领取, 0否1是
|
| | | ("RankAward", c_ubyte), # 晋级排名奖励是否已领取, 0否1是
|
| | | ("SupportAward", c_int), # 竞猜积分奖励领取记录,按位表示
|
| | | ("WorshipState", c_ubyte), # 今日是否已膜拜, 0否1是
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xD2
|
| | | 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 = 0xD2
|
| | | self.SubCmd = 0x07
|
| | | self.ServerHonour = 0
|
| | | self.ServerHonourAward = 0
|
| | | self.RankAward = 0
|
| | | self.SupportAward = 0
|
| | | self.WorshipState = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCMergeKingAwardInfo)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// D2 07 跨服王者争霸奖励相关 //tagMCMergeKingAwardInfo:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | ServerHonour:%d,
|
| | | ServerHonourAward:%d,
|
| | | RankAward:%d,
|
| | | SupportAward:%d,
|
| | | WorshipState:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.ServerHonour,
|
| | | self.ServerHonourAward,
|
| | | self.RankAward,
|
| | | self.SupportAward,
|
| | | self.WorshipState
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCMergeKingAwardInfo=tagMCMergeKingAwardInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCMergeKingAwardInfo.Cmd,m_NAtagMCMergeKingAwardInfo.SubCmd))] = m_NAtagMCMergeKingAwardInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # D2 08 跨服PK奖励领奖记录 #tagMCMergePKAwardRecord
|
| | |
|
| | | class tagMCMergePKAwardRecord(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("FirstWinAwardRecord", c_int), # 首次胜利奖励记录, 按位存储是否已领
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xD2
|
| | | 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 = 0xD2
|
| | | self.SubCmd = 0x08
|
| | | self.FirstWinAwardRecord = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCMergePKAwardRecord)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// D2 08 跨服PK奖励领奖记录 //tagMCMergePKAwardRecord:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | FirstWinAwardRecord:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.FirstWinAwardRecord
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCMergePKAwardRecord=tagMCMergePKAwardRecord()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCMergePKAwardRecord.Cmd,m_NAtagMCMergePKAwardRecord.SubCmd))] = m_NAtagMCMergePKAwardRecord
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # D2 06 跨服PK次数通知 #tagMCMergePKCnt
|
| | |
|
| | | class tagMCMergePKCnt(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("DayPKCnt", c_ushort), # 当日已PK次数
|
| | | ("DayBuyCnt", c_ushort), # 当日已购买次数
|
| | | ("UnUsedBuyCnt", c_ushort), # 未使用的购买次数
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xD2
|
| | | 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 = 0xD2
|
| | | self.SubCmd = 0x06
|
| | | self.DayPKCnt = 0
|
| | | self.DayBuyCnt = 0
|
| | | self.UnUsedBuyCnt = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCMergePKCnt)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// D2 06 跨服PK次数通知 //tagMCMergePKCnt:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | DayPKCnt:%d,
|
| | | DayBuyCnt:%d,
|
| | | UnUsedBuyCnt:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.DayPKCnt,
|
| | | self.DayBuyCnt,
|
| | | self.UnUsedBuyCnt
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCMergePKCnt=tagMCMergePKCnt()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCMergePKCnt.Cmd,m_NAtagMCMergePKCnt.SubCmd))] = m_NAtagMCMergePKCnt |
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCrossRealmPKPlayerInfo.Cmd,m_NAtagMCCrossRealmPKPlayerInfo.SubCmd))] = m_NAtagMCCrossRealmPKPlayerInfo |