|  |  | 
 |  |  |     PlayerID = 0    #(DWORD PlayerID)//玩家ID
 | 
 |  |  |     CompensationType = 0    #(BYTE CompensationType)//补偿类型 0 全服 1 个人
 | 
 |  |  |     GUID = ""    #(char GUID[40])//对应的补偿ID
 | 
 |  |  |     CreateTime = ""    #(char CreateTime[30])//邮件接收时间
 | 
 |  |  |     TextLen = 0    #(DWORD TextLen)//文字内容长度
 | 
 |  |  |     Text = ""    #(String Text)//文字内容
 | 
 |  |  |     Count = 0    #(BYTE Count)//当前补偿物品数
 | 
 |  |  | 
 |  |  |         self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
 | 
 |  |  |         self.CompensationType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
 | 
 |  |  |         self.GUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
 | 
 |  |  |         self.CreateTime,_pos = CommFunc.ReadString(_lpData, _pos,30)
 | 
 |  |  |         self.TextLen,_pos = CommFunc.ReadDWORD(_lpData, _pos)
 | 
 |  |  |         self.Text,_pos = CommFunc.ReadString(_lpData, _pos,self.TextLen)
 | 
 |  |  |         self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
 | 
 |  |  | 
 |  |  |         self.PlayerID = 0
 | 
 |  |  |         self.CompensationType = 0
 | 
 |  |  |         self.GUID = ""
 | 
 |  |  |         self.CreateTime = ""
 | 
 |  |  |         self.TextLen = 0
 | 
 |  |  |         self.Text = ""
 | 
 |  |  |         self.Count = 0
 | 
 |  |  | 
 |  |  |         length += 4
 | 
 |  |  |         length += 1
 | 
 |  |  |         length += 40
 | 
 |  |  |         length += 30
 | 
 |  |  |         length += 4
 | 
 |  |  |         length += len(self.Text)
 | 
 |  |  |         length += 1
 | 
 |  |  | 
 |  |  |         data = CommFunc.WriteDWORD(data, self.PlayerID)
 | 
 |  |  |         data = CommFunc.WriteBYTE(data, self.CompensationType)
 | 
 |  |  |         data = CommFunc.WriteString(data, 40, self.GUID)
 | 
 |  |  |         data = CommFunc.WriteString(data, 30, self.CreateTime)
 | 
 |  |  |         data = CommFunc.WriteDWORD(data, self.TextLen)
 | 
 |  |  |         data = CommFunc.WriteString(data, self.TextLen, self.Text)
 | 
 |  |  |         data = CommFunc.WriteBYTE(data, self.Count)
 | 
 |  |  | 
 |  |  |                                 PlayerID:%d,
 | 
 |  |  |                                 CompensationType:%d,
 | 
 |  |  |                                 GUID:%s,
 | 
 |  |  |                                 CreateTime:%s,
 | 
 |  |  |                                 TextLen:%d,
 | 
 |  |  |                                 Text:%s,
 | 
 |  |  |                                 Count:%d,
 | 
 |  |  | 
 |  |  |                                 self.PlayerID,
 | 
 |  |  |                                 self.CompensationType,
 | 
 |  |  |                                 self.GUID,
 | 
 |  |  |                                 self.CreateTime,
 | 
 |  |  |                                 self.TextLen,
 | 
 |  |  |                                 self.Text,
 | 
 |  |  |                                 self.Count,
 | 
 |  |  | 
 |  |  | 
 | 
 |  |  | m_NAtagGMRequestCompensationResult=tagGMRequestCompensationResult()
 | 
 |  |  | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGMRequestCompensationResult.Head.Cmd,m_NAtagGMRequestCompensationResult.Head.SubCmd))] = m_NAtagGMRequestCompensationResult
 | 
 |  |  | 
 | 
 |  |  | 
 | 
 |  |  | #------------------------------------------------------
 | 
 |  |  | #03 01 天梯竞技场玩家挑战结果同步#tagGMHighLadderChallengeReuslt
 | 
 |  |  | 
 | 
 |  |  | class  tagGMHighLadderChallengeReuslt(Structure):
 | 
 |  |  |     Head = tagHead()
 | 
 |  |  |     PlayerID = 0    #(DWORD PlayerID)//玩家ID
 | 
 |  |  |     Result = 0    #(BYTE Result)//结果
 | 
 |  |  |     PlusInfoSize = 0    #(WORD PlusInfoSize)
 | 
 |  |  |     PlusInfo = ""    #(String PlusInfo)//附带信息
 | 
 |  |  |     data = None
 | 
 |  |  | 
 | 
 |  |  |     def __init__(self):
 | 
 |  |  |         self.Clear()
 | 
 |  |  |         self.Head.Cmd = 0x03
 | 
 |  |  |         self.Head.SubCmd = 0x01
 | 
 |  |  |         return
 | 
 |  |  | 
 | 
 |  |  |     def ReadData(self, _lpData, _pos=0, _Len=0):
 | 
 |  |  |         self.Clear()
 | 
 |  |  |         _pos = self.Head.ReadData(_lpData, _pos)
 | 
 |  |  |         self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
 | 
 |  |  |         self.Result,_pos = CommFunc.ReadBYTE(_lpData, _pos)
 | 
 |  |  |         self.PlusInfoSize,_pos = CommFunc.ReadWORD(_lpData, _pos)
 | 
 |  |  |         self.PlusInfo,_pos = CommFunc.ReadString(_lpData, _pos,self.PlusInfoSize)
 | 
 |  |  |         return _pos
 | 
 |  |  | 
 | 
 |  |  |     def Clear(self):
 | 
 |  |  |         self.Head = tagHead()
 | 
 |  |  |         self.Head.Clear()
 | 
 |  |  |         self.Head.Cmd = 0x03
 | 
 |  |  |         self.Head.SubCmd = 0x01
 | 
 |  |  |         self.PlayerID = 0
 | 
 |  |  |         self.Result = 0
 | 
 |  |  |         self.PlusInfoSize = 0
 | 
 |  |  |         self.PlusInfo = ""
 | 
 |  |  |         return
 | 
 |  |  | 
 | 
 |  |  |     def GetLength(self):
 | 
 |  |  |         length = 0
 | 
 |  |  |         length += self.Head.GetLength()
 | 
 |  |  |         length += 4
 | 
 |  |  |         length += 1
 | 
 |  |  |         length += 2
 | 
 |  |  |         length += len(self.PlusInfo)
 | 
 |  |  | 
 | 
 |  |  |         return length
 | 
 |  |  | 
 | 
 |  |  |     def GetBuffer(self):
 | 
 |  |  |         data = ''
 | 
 |  |  |         data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
 | 
 |  |  |         data = CommFunc.WriteDWORD(data, self.PlayerID)
 | 
 |  |  |         data = CommFunc.WriteBYTE(data, self.Result)
 | 
 |  |  |         data = CommFunc.WriteWORD(data, self.PlusInfoSize)
 | 
 |  |  |         data = CommFunc.WriteString(data, self.PlusInfoSize, self.PlusInfo)
 | 
 |  |  |         return data
 | 
 |  |  | 
 | 
 |  |  |     def OutputString(self):
 | 
 |  |  |         DumpString = '''
 | 
 |  |  |                                 Head:%s,
 | 
 |  |  |                                 PlayerID:%d,
 | 
 |  |  |                                 Result:%d,
 | 
 |  |  |                                 PlusInfoSize:%d,
 | 
 |  |  |                                 PlusInfo:%s
 | 
 |  |  |                                 '''\
 | 
 |  |  |                                 %(
 | 
 |  |  |                                 self.Head.OutputString(),
 | 
 |  |  |                                 self.PlayerID,
 | 
 |  |  |                                 self.Result,
 | 
 |  |  |                                 self.PlusInfoSize,
 | 
 |  |  |                                 self.PlusInfo
 | 
 |  |  |                                 )
 | 
 |  |  |         return DumpString
 | 
 |  |  | 
 | 
 |  |  | 
 | 
 |  |  | m_NAtagGMHighLadderChallengeReuslt=tagGMHighLadderChallengeReuslt()
 | 
 |  |  | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGMHighLadderChallengeReuslt.Head.Cmd,m_NAtagGMHighLadderChallengeReuslt.Head.SubCmd))] = m_NAtagGMHighLadderChallengeReuslt
 | 
 |  |  | 
 | 
 |  |  | 
 | 
 |  |  | #------------------------------------------------------
 |