| | |
| | | #------------------------------------------------------
|
| | | # A3 11 通知玩家境界信息 #tagMCSyncRealmInfo
|
| | |
|
| | | class tagMCSyncRealmInfo(Structure):
|
| | | class tagMCSyncRealmTask(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("IsPass", c_ubyte), #是否通关副本
|
| | | ("XXZLAwardState", c_int), #修仙之路领奖状态;按二进制位存储每个任务ID是否已领取
|
| | | ("TaskID", c_ubyte), |
| | | ("TaskValue", c_int), |
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xA3
|
| | | self.SubCmd = 0x11
|
| | | return
|
| | |
|
| | | def ReadData(self, stringData, _pos=0, _len=0):
|
| | |
| | | return _pos + self.GetLength()
|
| | |
|
| | | def Clear(self):
|
| | | self.Cmd = 0xA3
|
| | | self.SubCmd = 0x11
|
| | | self.IsPass = 0
|
| | | self.XXZLAwardState = 0
|
| | | self.TaskID = 0
|
| | | self.TaskValue = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCSyncRealmInfo)
|
| | | return sizeof(tagMCSyncRealmTask)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// A3 11 通知玩家境界信息 //tagMCSyncRealmInfo:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | IsPass:%d,
|
| | | XXZLAwardState:%d
|
| | | TaskID:%d,
|
| | | TaskValue:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.IsPass,
|
| | | self.XXZLAwardState
|
| | | self.TaskID,
|
| | | self.TaskValue
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCSyncRealmInfo(Structure):
|
| | | Head = tagHead()
|
| | | TaskAwardState = 0 #(DWORD TaskAwardState)//进阶任务领奖状态;按任务ID二进制位存储是否已领取
|
| | | TaskValueCount = 0 #(BYTE TaskValueCount)
|
| | | TaskValueList = list() #(vector<tagMCSyncRealmTask> TaskValueList)//进阶任务值列表,仅有需要记录的任务才会通知
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xA3
|
| | | self.Head.SubCmd = 0x11
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.TaskAwardState,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.TaskValueCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.TaskValueCount):
|
| | | temTaskValueList = tagMCSyncRealmTask()
|
| | | _pos = temTaskValueList.ReadData(_lpData, _pos)
|
| | | self.TaskValueList.append(temTaskValueList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xA3
|
| | | self.Head.SubCmd = 0x11
|
| | | self.TaskAwardState = 0
|
| | | self.TaskValueCount = 0
|
| | | self.TaskValueList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 4
|
| | | length += 1
|
| | | for i in range(self.TaskValueCount):
|
| | | length += self.TaskValueList[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteDWORD(data, self.TaskAwardState)
|
| | | data = CommFunc.WriteBYTE(data, self.TaskValueCount)
|
| | | for i in range(self.TaskValueCount):
|
| | | data = CommFunc.WriteString(data, self.TaskValueList[i].GetLength(), self.TaskValueList[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | TaskAwardState:%d,
|
| | | TaskValueCount:%d,
|
| | | TaskValueList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.TaskAwardState,
|
| | | self.TaskValueCount,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCSyncRealmInfo=tagMCSyncRealmInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSyncRealmInfo.Cmd,m_NAtagMCSyncRealmInfo.SubCmd))] = m_NAtagMCSyncRealmInfo
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSyncRealmInfo.Head.Cmd,m_NAtagMCSyncRealmInfo.Head.SubCmd))] = m_NAtagMCSyncRealmInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|