|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #------------------------------------------------------ | 
|---|
|  |  |  | # B2 06 玩家加点 #tagCMAddPoint | 
|---|
|  |  |  |  | 
|---|
|  |  |  | class  tagCMAddPoint(Structure): | 
|---|
|  |  |  | Head = tagHead() | 
|---|
|  |  |  | PointAttrIDCount = 0    #(BYTE PointAttrIDCount)// 加点属性ID个数 | 
|---|
|  |  |  | PointAttrIDList = list()    #(vector<BYTE> PointAttrIDList)// 加点属性ID列表 | 
|---|
|  |  |  | PointValueList = list()    #(vector<WORD> PointValueList)// 加点属性ID对应的点数列表 | 
|---|
|  |  |  | data = None | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def __init__(self): | 
|---|
|  |  |  | self.Clear() | 
|---|
|  |  |  | self.Head.Cmd = 0xB2 | 
|---|
|  |  |  | self.Head.SubCmd = 0x06 | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def ReadData(self, _lpData, _pos=0, _Len=0): | 
|---|
|  |  |  | self.Clear() | 
|---|
|  |  |  | _pos = self.Head.ReadData(_lpData, _pos) | 
|---|
|  |  |  | self.PointAttrIDCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) | 
|---|
|  |  |  | for i in range(self.PointAttrIDCount): | 
|---|
|  |  |  | value,_pos=CommFunc.ReadBYTE(_lpData,_pos) | 
|---|
|  |  |  | self.PointAttrIDList.append(value) | 
|---|
|  |  |  | for i in range(self.PointAttrIDCount): | 
|---|
|  |  |  | value,_pos=CommFunc.ReadWORD(_lpData,_pos) | 
|---|
|  |  |  | self.PointValueList.append(value) | 
|---|
|  |  |  | return _pos | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def Clear(self): | 
|---|
|  |  |  | self.Head = tagHead() | 
|---|
|  |  |  | self.Head.Clear() | 
|---|
|  |  |  | self.Head.Cmd = 0xB2 | 
|---|
|  |  |  | self.Head.SubCmd = 0x06 | 
|---|
|  |  |  | self.PointAttrIDCount = 0 | 
|---|
|  |  |  | self.PointAttrIDList = list() | 
|---|
|  |  |  | self.PointValueList = list() | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def GetLength(self): | 
|---|
|  |  |  | length = 0 | 
|---|
|  |  |  | length += self.Head.GetLength() | 
|---|
|  |  |  | length += 1 | 
|---|
|  |  |  | length += 1 * self.PointAttrIDCount | 
|---|
|  |  |  | length += 2 * self.PointAttrIDCount | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return length | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def GetBuffer(self): | 
|---|
|  |  |  | data = '' | 
|---|
|  |  |  | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) | 
|---|
|  |  |  | data = CommFunc.WriteBYTE(data, self.PointAttrIDCount) | 
|---|
|  |  |  | for i in range(self.PointAttrIDCount): | 
|---|
|  |  |  | data = CommFunc.WriteBYTE(data, self.PointAttrIDList[i]) | 
|---|
|  |  |  | for i in range(self.PointAttrIDCount): | 
|---|
|  |  |  | data = CommFunc.WriteWORD(data, self.PointValueList[i]) | 
|---|
|  |  |  | return data | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def OutputString(self): | 
|---|
|  |  |  | DumpString = ''' | 
|---|
|  |  |  | Head:%s, | 
|---|
|  |  |  | PointAttrIDCount:%d, | 
|---|
|  |  |  | PointAttrIDList:%s, | 
|---|
|  |  |  | PointValueList:%s | 
|---|
|  |  |  | '''\ | 
|---|
|  |  |  | %( | 
|---|
|  |  |  | self.Head.OutputString(), | 
|---|
|  |  |  | self.PointAttrIDCount, | 
|---|
|  |  |  | "...", | 
|---|
|  |  |  | "..." | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | return DumpString | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | m_NAtagCMAddPoint=tagCMAddPoint() | 
|---|
|  |  |  | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMAddPoint.Head.Cmd,m_NAtagCMAddPoint.Head.SubCmd))] = m_NAtagCMAddPoint | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #------------------------------------------------------ | 
|---|
|  |  |  | #B2 01 脱机挂状态 # tagCMLoginState | 
|---|
|  |  |  |  | 
|---|
|  |  |  | class  tagCMLoginState(Structure): | 
|---|