|  |  | 
 |  |  | 
 | 
 |  |  | class  tagCGameServerGeneralPack(Structure):
 | 
 |  |  |     Head = tagHead()
 | 
 |  |  |     DataLen = 0    #(BYTE DataLen)//GameServer通用包长度
 | 
 |  |  |     DataLen = 0    #(WORD DataLen)//GameServer通用包长度
 | 
 |  |  |     Data = ""    #(String Data)//GameServer统用包数据
 | 
 |  |  |     data = None
 | 
 |  |  | 
 | 
 |  |  | 
 |  |  |     def ReadData(self, _lpData, _pos=0, _Len=0):
 | 
 |  |  |         self.Clear()
 | 
 |  |  |         _pos = self.Head.ReadData(_lpData, _pos)
 | 
 |  |  |         self.DataLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
 | 
 |  |  |         self.DataLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
 | 
 |  |  |         self.Data,_pos = CommFunc.ReadString(_lpData, _pos,self.DataLen)
 | 
 |  |  |         return _pos
 | 
 |  |  | 
 | 
 |  |  | 
 |  |  |     def GetLength(self):
 | 
 |  |  |         length = 0
 | 
 |  |  |         length += self.Head.GetLength()
 | 
 |  |  |         length += 1
 | 
 |  |  |         length += 2
 | 
 |  |  |         length += len(self.Data)
 | 
 |  |  | 
 | 
 |  |  |         return length
 | 
 |  |  | 
 |  |  |     def GetBuffer(self):
 | 
 |  |  |         data = ''
 | 
 |  |  |         data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
 | 
 |  |  |         data = CommFunc.WriteBYTE(data, self.DataLen)
 | 
 |  |  |         data = CommFunc.WriteWORD(data, self.DataLen)
 | 
 |  |  |         data = CommFunc.WriteString(data, self.DataLen, self.Data)
 | 
 |  |  |         return data
 | 
 |  |  | 
 | 
 |  |  | 
 |  |  |     Phone = 0    #(BYTE Phone)//是否绑定手机
 | 
 |  |  |     ServerID = 0    #(DWORD ServerID)//服务器ID
 | 
 |  |  |     Adult = 0    #(BYTE Adult)//是否成年 0未成年 1成年
 | 
 |  |  |     ExtraLen = 0    #(BYTE ExtraLen)//扩展长度
 | 
 |  |  |     Extra = ""    #(String Extra)//扩展内容,根据不同平台而定
 | 
 |  |  |     data = None
 | 
 |  |  | 
 | 
 |  |  |     def __init__(self):
 | 
 |  |  | 
 |  |  |         self.Phone,_pos = CommFunc.ReadBYTE(_lpData, _pos)
 | 
 |  |  |         self.ServerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
 | 
 |  |  |         self.Adult,_pos = CommFunc.ReadBYTE(_lpData, _pos)
 | 
 |  |  |         self.ExtraLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
 | 
 |  |  |         self.Extra,_pos = CommFunc.ReadString(_lpData, _pos,self.ExtraLen)
 | 
 |  |  |         return _pos
 | 
 |  |  | 
 | 
 |  |  |     def Clear(self):
 | 
 |  |  | 
 |  |  |         self.Phone = 0
 | 
 |  |  |         self.ServerID = 0
 | 
 |  |  |         self.Adult = 0
 | 
 |  |  |         self.ExtraLen = 0
 | 
 |  |  |         self.Extra = ""
 | 
 |  |  |         return
 | 
 |  |  | 
 | 
 |  |  |     def GetLength(self):
 | 
 |  |  | 
 |  |  |         length += 1
 | 
 |  |  |         length += 4
 | 
 |  |  |         length += 1
 | 
 |  |  |         length += 1
 | 
 |  |  |         length += len(self.Extra)
 | 
 |  |  | 
 | 
 |  |  |         return length
 | 
 |  |  | 
 | 
 |  |  | 
 |  |  |         data = CommFunc.WriteBYTE(data, self.Phone)
 | 
 |  |  |         data = CommFunc.WriteDWORD(data, self.ServerID)
 | 
 |  |  |         data = CommFunc.WriteBYTE(data, self.Adult)
 | 
 |  |  |         data = CommFunc.WriteBYTE(data, self.ExtraLen)
 | 
 |  |  |         data = CommFunc.WriteString(data, self.ExtraLen, self.Extra)
 | 
 |  |  |         return data
 | 
 |  |  | 
 | 
 |  |  |     def OutputString(self):
 | 
 |  |  | 
 |  |  |                                 TokenExpire:%s,
 | 
 |  |  |                                 Phone:%d,
 | 
 |  |  |                                 ServerID:%d,
 | 
 |  |  |                                 Adult:%d
 | 
 |  |  |                                 Adult:%d,
 | 
 |  |  |                                 ExtraLen:%d,
 | 
 |  |  |                                 Extra:%s
 | 
 |  |  |                                 '''\
 | 
 |  |  |                                 %(
 | 
 |  |  |                                 self.Head.OutputString(),
 | 
 |  |  | 
 |  |  |                                 self.TokenExpire,
 | 
 |  |  |                                 self.Phone,
 | 
 |  |  |                                 self.ServerID,
 | 
 |  |  |                                 self.Adult
 | 
 |  |  |                                 self.Adult,
 | 
 |  |  |                                 self.ExtraLen,
 | 
 |  |  |                                 self.Extra
 | 
 |  |  |                                 )
 | 
 |  |  |         return DumpString
 | 
 |  |  | 
 | 
 |  |  | 
 |  |  | 
 | 
 |  |  | class  tagCFakePack(Structure):
 | 
 |  |  |     Head = tagHead()
 | 
 |  |  |     MsgLen = 0    #(BYTE MsgLen)
 | 
 |  |  |     MsgLen = 0    #(WORD MsgLen)
 | 
 |  |  |     Msg = ""    #(String Msg)//size = MsgLen
 | 
 |  |  |     data = None
 | 
 |  |  | 
 | 
 |  |  | 
 |  |  |     def ReadData(self, _lpData, _pos=0, _Len=0):
 | 
 |  |  |         self.Clear()
 | 
 |  |  |         _pos = self.Head.ReadData(_lpData, _pos)
 | 
 |  |  |         self.MsgLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
 | 
 |  |  |         self.MsgLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
 | 
 |  |  |         self.Msg,_pos = CommFunc.ReadString(_lpData, _pos,self.MsgLen)
 | 
 |  |  |         return _pos
 | 
 |  |  | 
 | 
 |  |  | 
 |  |  |     def GetLength(self):
 | 
 |  |  |         length = 0
 | 
 |  |  |         length += self.Head.GetLength()
 | 
 |  |  |         length += 1
 | 
 |  |  |         length += 2
 | 
 |  |  |         length += len(self.Msg)
 | 
 |  |  | 
 | 
 |  |  |         return length
 | 
 |  |  | 
 |  |  |     def GetBuffer(self):
 | 
 |  |  |         data = ''
 | 
 |  |  |         data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
 | 
 |  |  |         data = CommFunc.WriteBYTE(data, self.MsgLen)
 | 
 |  |  |         data = CommFunc.WriteWORD(data, self.MsgLen)
 | 
 |  |  |         data = CommFunc.WriteString(data, self.MsgLen, self.Msg)
 | 
 |  |  |         return data
 | 
 |  |  | 
 |