| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A3 62 邮件列表 #tagMCMailList
|
| | |
|
| | | class tagMCMailItem(Structure):
|
| | | ItemID = 0 #(DWORD ItemID)//物品ID
|
| | | Count = 0 #(DWORD Count)//数量
|
| | | IsBind = 0 #(BYTE IsBind)//是否绑定
|
| | | UserDataLen = 0 #(WORD UserDataLen)
|
| | | UserData = "" #(String UserData)//自定义数据 |
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.Count,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.IsBind,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.UserDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.ItemID = 0
|
| | | self.Count = 0
|
| | | self.IsBind = 0
|
| | | self.UserDataLen = 0
|
| | | self.UserData = ""
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += 4
|
| | | length += 4
|
| | | length += 1
|
| | | length += 2
|
| | | length += len(self.UserData)
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteDWORD(data, self.ItemID)
|
| | | data = CommFunc.WriteDWORD(data, self.Count)
|
| | | data = CommFunc.WriteBYTE(data, self.IsBind)
|
| | | data = CommFunc.WriteWORD(data, self.UserDataLen)
|
| | | data = CommFunc.WriteString(data, self.UserDataLen, self.UserData)
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | ItemID:%d,
|
| | | Count:%d,
|
| | | IsBind:%d,
|
| | | UserDataLen:%d,
|
| | | UserData:%s
|
| | | '''\
|
| | | %(
|
| | | self.ItemID,
|
| | | self.Count,
|
| | | self.IsBind,
|
| | | self.UserDataLen,
|
| | | self.UserData
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCMail(Structure):
|
| | | GUID = "" #(char GUID[36])//邮件GUID
|
| | | Type = 0 #(BYTE Type)//邮件类型,暂时默认0
|
| | | CreateTime = "" #(char CreateTime[30])//创建时间
|
| | | LimitDays = 0 #(BYTE LimitDays)//有效天数
|
| | | TitleLen = 0 #(BYTE TitleLen)
|
| | | Title = "" #(String Title)//标题
|
| | | TextLen = 0 #(WORD TextLen)
|
| | | Text = "" #(String Text)//内容
|
| | | MailState = 0 #(BYTE MailState)//邮件状态: 0-未知;1-未读;2-已读;3-已领;
|
| | | Count = 0 #(BYTE Count)//物品数
|
| | | Items = list() #(vector<tagMCMailItem> Items)//物品信息
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | self.GUID,_pos = CommFunc.ReadString(_lpData, _pos,36)
|
| | | self.Type,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.CreateTime,_pos = CommFunc.ReadString(_lpData, _pos,30)
|
| | | self.LimitDays,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.TitleLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.Title,_pos = CommFunc.ReadString(_lpData, _pos,self.TitleLen)
|
| | | self.TextLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.Text,_pos = CommFunc.ReadString(_lpData, _pos,self.TextLen)
|
| | | self.MailState,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.Count):
|
| | | temItems = tagMCMailItem()
|
| | | _pos = temItems.ReadData(_lpData, _pos)
|
| | | self.Items.append(temItems)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.GUID = ""
|
| | | self.Type = 0
|
| | | self.CreateTime = ""
|
| | | self.LimitDays = 0
|
| | | self.TitleLen = 0
|
| | | self.Title = ""
|
| | | self.TextLen = 0
|
| | | self.Text = ""
|
| | | self.MailState = 0
|
| | | self.Count = 0
|
| | | self.Items = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += 36
|
| | | length += 1
|
| | | length += 30
|
| | | length += 1
|
| | | length += 1
|
| | | length += len(self.Title)
|
| | | length += 2
|
| | | length += len(self.Text)
|
| | | length += 1
|
| | | length += 1
|
| | | for i in range(self.Count):
|
| | | length += self.Items[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, 36, self.GUID)
|
| | | data = CommFunc.WriteBYTE(data, self.Type)
|
| | | data = CommFunc.WriteString(data, 30, self.CreateTime)
|
| | | data = CommFunc.WriteBYTE(data, self.LimitDays)
|
| | | data = CommFunc.WriteBYTE(data, self.TitleLen)
|
| | | data = CommFunc.WriteString(data, self.TitleLen, self.Title)
|
| | | data = CommFunc.WriteWORD(data, self.TextLen)
|
| | | data = CommFunc.WriteString(data, self.TextLen, self.Text)
|
| | | data = CommFunc.WriteBYTE(data, self.MailState)
|
| | | data = CommFunc.WriteBYTE(data, self.Count)
|
| | | for i in range(self.Count):
|
| | | data = CommFunc.WriteString(data, self.Items[i].GetLength(), self.Items[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | GUID:%s,
|
| | | Type:%d,
|
| | | CreateTime:%s,
|
| | | LimitDays:%d,
|
| | | TitleLen:%d,
|
| | | Title:%s,
|
| | | TextLen:%d,
|
| | | Text:%s,
|
| | | MailState:%d,
|
| | | Count:%d,
|
| | | Items:%s
|
| | | '''\
|
| | | %(
|
| | | self.GUID,
|
| | | self.Type,
|
| | | self.CreateTime,
|
| | | self.LimitDays,
|
| | | self.TitleLen,
|
| | | self.Title,
|
| | | self.TextLen,
|
| | | self.Text,
|
| | | self.MailState,
|
| | | self.Count,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCMailList(Structure):
|
| | | Head = tagHead()
|
| | | IsServerMail = 0 #(BYTE IsServerMail)//是否全服邮件,如公告、维护、更新、补偿等重要邮件
|
| | | Count = 0 #(WORD Count)
|
| | | MailList = list() #(vector<tagMCMail> MailList)//邮件列表
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xA3
|
| | | self.Head.SubCmd = 0x62
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.IsServerMail,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | for i in range(self.Count):
|
| | | temMailList = tagMCMail()
|
| | | _pos = temMailList.ReadData(_lpData, _pos)
|
| | | self.MailList.append(temMailList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xA3
|
| | | self.Head.SubCmd = 0x62
|
| | | self.IsServerMail = 0
|
| | | self.Count = 0
|
| | | self.MailList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 1
|
| | | length += 2
|
| | | for i in range(self.Count):
|
| | | length += self.MailList[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteBYTE(data, self.IsServerMail)
|
| | | data = CommFunc.WriteWORD(data, self.Count)
|
| | | for i in range(self.Count):
|
| | | data = CommFunc.WriteString(data, self.MailList[i].GetLength(), self.MailList[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | IsServerMail:%d,
|
| | | Count:%d,
|
| | | MailList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.IsServerMail,
|
| | | self.Count,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCMailList=tagMCMailList()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCMailList.Head.Cmd,m_NAtagMCMailList.Head.SubCmd))] = m_NAtagMCMailList
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A3 63 邮件状态变更 #tagMCMailStateChange
|
| | |
|
| | | class tagMCMailState(Structure):
|
| | | GUID = "" #(char GUID[36])//邮件GUID
|
| | | MailState = 0 #(BYTE MailState)//邮件状态: 0-未知;1-未读;2-已读;3-已领;4-已删
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | self.GUID,_pos = CommFunc.ReadString(_lpData, _pos,36)
|
| | | self.MailState,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.GUID = ""
|
| | | self.MailState = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += 36
|
| | | length += 1
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, 36, self.GUID)
|
| | | data = CommFunc.WriteBYTE(data, self.MailState)
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | GUID:%s,
|
| | | MailState:%d
|
| | | '''\
|
| | | %(
|
| | | self.GUID,
|
| | | self.MailState
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCMailStateChange(Structure):
|
| | | Head = tagHead()
|
| | | Count = 0 #(WORD Count)
|
| | | MailList = list() #(vector<tagMCMailState> MailList)//邮件列表
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xA3
|
| | | self.Head.SubCmd = 0x63
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | for i in range(self.Count):
|
| | | temMailList = tagMCMailState()
|
| | | _pos = temMailList.ReadData(_lpData, _pos)
|
| | | self.MailList.append(temMailList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xA3
|
| | | self.Head.SubCmd = 0x63
|
| | | self.Count = 0
|
| | | self.MailList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 2
|
| | | for i in range(self.Count):
|
| | | length += self.MailList[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteWORD(data, self.Count)
|
| | | for i in range(self.Count):
|
| | | data = CommFunc.WriteString(data, self.MailList[i].GetLength(), self.MailList[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | Count:%d,
|
| | | MailList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.Count,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCMailStateChange=tagMCMailStateChange()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCMailStateChange.Head.Cmd,m_NAtagMCMailStateChange.Head.SubCmd))] = m_NAtagMCMailStateChange
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A3 46 大师经验信息 #tagMCGreatMasterExp
|
| | |
|
| | | class tagMCGreatMasterExp(Structure):
|