| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # C0 04 跨服PK赛季信息 #tagGCCrossRealmPKSeason
|
| | | # C0 04 跨服PK赛区赛季信息 #tagGCCrossRealmPKSeasonInfo
|
| | |
|
| | | class tagGCCrossRealmPKSeason(Structure):
|
| | | Head = tagHead()
|
| | | ZoneCount = 0 #(BYTE ZoneCount)// 所有赛区个数
|
| | | ZoneIDList = list() #(vector<BYTE> ZoneIDList)// 所有赛区列表
|
| | | ZoneID = 0 #(BYTE ZoneID)// 所属赛区ID
|
| | | SeasonID = 0 #(WORD SeasonID)// 当前赛季ID
|
| | | StartDate = "" #(char StartDate[10])// 开始日期 yyyy-MM-dd
|
| | | EndDate = "" #(char EndDate[10])// 结束日期 yyyy-MM-dd
|
| | | EndTime = "" #(char EndTime[5])// 赛季结算时间,赛季奖励该时间后才可领取 hh:mm
|
| | | NextStartDate = "" #(char NextStartDate[10])// 下赛季开始日期 yyyy-MM-dd
|
| | | NextEndDate = "" #(char NextEndDate[10])// 下赛季结束日期 yyyy-MM-dd
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | self.SeasonID,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
|
| | | self.EndDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
|
| | | self.EndTime,_pos = CommFunc.ReadString(_lpData, _pos,5)
|
| | | self.NextStartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
|
| | | self.NextEndDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.SeasonID = 0
|
| | | self.StartDate = ""
|
| | | self.EndDate = ""
|
| | | self.EndTime = ""
|
| | | self.NextStartDate = ""
|
| | | self.NextEndDate = ""
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += 2
|
| | | length += 10
|
| | | length += 10
|
| | | length += 5
|
| | | length += 10
|
| | | length += 10
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteWORD(data, self.SeasonID)
|
| | | data = CommFunc.WriteString(data, 10, self.StartDate)
|
| | | data = CommFunc.WriteString(data, 10, self.EndDate)
|
| | | data = CommFunc.WriteString(data, 5, self.EndTime)
|
| | | data = CommFunc.WriteString(data, 10, self.NextStartDate)
|
| | | data = CommFunc.WriteString(data, 10, self.NextEndDate)
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | SeasonID:%d,
|
| | | StartDate:%s,
|
| | | EndDate:%s,
|
| | | EndTime:%s,
|
| | | NextStartDate:%s,
|
| | | NextEndDate:%s
|
| | | '''\
|
| | | %(
|
| | | self.SeasonID,
|
| | | self.StartDate,
|
| | | self.EndDate,
|
| | | self.EndTime,
|
| | | self.NextStartDate,
|
| | | self.NextEndDate
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagGCCrossRealmPKZone(Structure):
|
| | | ZoneID = 0 #(BYTE ZoneID)// 赛区ID
|
| | | ZoneNameLen = 0 #(BYTE ZoneNameLen)
|
| | | ZoneName = "" #(String ZoneName)// 赛区名
|
| | | SeasonCount = 0 #(WORD SeasonCount)
|
| | | SeasonList = list() #(vector<tagGCCrossRealmPKSeason> SeasonList)// 赛季列表
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | self.ZoneID,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.ZoneNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.ZoneName,_pos = CommFunc.ReadString(_lpData, _pos,self.ZoneNameLen)
|
| | | self.SeasonCount,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | for i in range(self.SeasonCount):
|
| | | temSeasonList = tagGCCrossRealmPKSeason()
|
| | | _pos = temSeasonList.ReadData(_lpData, _pos)
|
| | | self.SeasonList.append(temSeasonList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.ZoneID = 0
|
| | | self.ZoneNameLen = 0
|
| | | self.ZoneName = ""
|
| | | self.SeasonCount = 0
|
| | | self.SeasonList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += 1
|
| | | length += 1
|
| | | length += len(self.ZoneName)
|
| | | length += 2
|
| | | for i in range(self.SeasonCount):
|
| | | length += self.SeasonList[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteBYTE(data, self.ZoneID)
|
| | | data = CommFunc.WriteBYTE(data, self.ZoneNameLen)
|
| | | data = CommFunc.WriteString(data, self.ZoneNameLen, self.ZoneName)
|
| | | data = CommFunc.WriteWORD(data, self.SeasonCount)
|
| | | for i in range(self.SeasonCount):
|
| | | data = CommFunc.WriteString(data, self.SeasonList[i].GetLength(), self.SeasonList[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | ZoneID:%d,
|
| | | ZoneNameLen:%d,
|
| | | ZoneName:%s,
|
| | | SeasonCount:%d,
|
| | | SeasonList:%s
|
| | | '''\
|
| | | %(
|
| | | self.ZoneID,
|
| | | self.ZoneNameLen,
|
| | | self.ZoneName,
|
| | | self.SeasonCount,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagGCCrossRealmPKSeasonInfo(Structure):
|
| | | Head = tagHead()
|
| | | ZoneCount = 0 #(BYTE ZoneCount)// 赛区个数
|
| | | ZoneList = list() #(vector<tagGCCrossRealmPKZone> ZoneList)// 赛区列表
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | |
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.ZoneCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.ZoneCount):
|
| | | value,_pos=CommFunc.ReadBYTE(_lpData,_pos)
|
| | | self.ZoneIDList.append(value)
|
| | | self.ZoneID,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.SeasonID,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
|
| | | self.EndDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
|
| | | self.EndTime,_pos = CommFunc.ReadString(_lpData, _pos,5)
|
| | | self.NextStartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
|
| | | self.NextEndDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
|
| | | temZoneList = tagGCCrossRealmPKZone()
|
| | | _pos = temZoneList.ReadData(_lpData, _pos)
|
| | | self.ZoneList.append(temZoneList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | |
| | | self.Head.Cmd = 0xC0
|
| | | self.Head.SubCmd = 0x04
|
| | | self.ZoneCount = 0
|
| | | self.ZoneIDList = list()
|
| | | self.ZoneID = 0
|
| | | self.SeasonID = 0
|
| | | self.StartDate = ""
|
| | | self.EndDate = ""
|
| | | self.EndTime = ""
|
| | | self.NextStartDate = ""
|
| | | self.NextEndDate = ""
|
| | | self.ZoneList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 1
|
| | | length += 1 * self.ZoneCount
|
| | | length += 1
|
| | | length += 2
|
| | | length += 10
|
| | | length += 10
|
| | | length += 5
|
| | | length += 10
|
| | | length += 10
|
| | | for i in range(self.ZoneCount):
|
| | | length += self.ZoneList[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | |
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteBYTE(data, self.ZoneCount)
|
| | | for i in range(self.ZoneCount):
|
| | | data = CommFunc.WriteBYTE(data, self.ZoneIDList[i])
|
| | | data = CommFunc.WriteBYTE(data, self.ZoneID)
|
| | | data = CommFunc.WriteWORD(data, self.SeasonID)
|
| | | data = CommFunc.WriteString(data, 10, self.StartDate)
|
| | | data = CommFunc.WriteString(data, 10, self.EndDate)
|
| | | data = CommFunc.WriteString(data, 5, self.EndTime)
|
| | | data = CommFunc.WriteString(data, 10, self.NextStartDate)
|
| | | data = CommFunc.WriteString(data, 10, self.NextEndDate)
|
| | | data = CommFunc.WriteString(data, self.ZoneList[i].GetLength(), self.ZoneList[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | ZoneCount:%d,
|
| | | ZoneIDList:%s,
|
| | | ZoneID:%d,
|
| | | SeasonID:%d,
|
| | | StartDate:%s,
|
| | | EndDate:%s,
|
| | | EndTime:%s,
|
| | | NextStartDate:%s,
|
| | | NextEndDate:%s
|
| | | ZoneList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.ZoneCount,
|
| | | "...",
|
| | | self.ZoneID,
|
| | | self.SeasonID,
|
| | | self.StartDate,
|
| | | self.EndDate,
|
| | | self.EndTime,
|
| | | self.NextStartDate,
|
| | | self.NextEndDate
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagGCCrossRealmPKSeason=tagGCCrossRealmPKSeason()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCCrossRealmPKSeason.Head.Cmd,m_NAtagGCCrossRealmPKSeason.Head.SubCmd))] = m_NAtagGCCrossRealmPKSeason
|
| | | m_NAtagGCCrossRealmPKSeasonInfo=tagGCCrossRealmPKSeasonInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCCrossRealmPKSeasonInfo.Head.Cmd,m_NAtagGCCrossRealmPKSeasonInfo.Head.SubCmd))] = m_NAtagGCCrossRealmPKSeasonInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # C0 06 跨服PK本服赛季状态 #tagGCCrossRealmPKSeasonState
|
| | |
|
| | | class tagGCCrossRealmPKSeasonState(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("ZoneID", c_ubyte), # 所属赛区ID
|
| | | ("SeasonID", c_ushort), # 当前赛季ID
|
| | | ("SeasonState", c_ubyte), # 赛季状态;0-未开启,1-开启中,2-已结束
|
| | | ("MatchState", c_ubyte), # 匹配状态;0-未开启;1-开启中
|
| | | ]
|
| | |
|
| | | 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
|
| | | self.SeasonID = 0
|
| | | self.SeasonState = 0
|
| | | self.MatchState = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagGCCrossRealmPKSeasonState)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// C0 06 跨服PK本服赛季状态 //tagGCCrossRealmPKSeasonState:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | ZoneID:%d,
|
| | | SeasonID:%d,
|
| | | SeasonState:%d,
|
| | | MatchState:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.ZoneID,
|
| | | self.SeasonID,
|
| | | self.SeasonState,
|
| | | self.MatchState
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagGCCrossRealmPKSeasonState=tagGCCrossRealmPKSeasonState()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCCrossRealmPKSeasonState.Cmd,m_NAtagGCCrossRealmPKSeasonState.SubCmd))] = m_NAtagGCCrossRealmPKSeasonState
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|