|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #------------------------------------------------------ | 
|---|
|  |  |  | #01 32 创角成功 #tagCreateRoleSucess | 
|---|
|  |  |  |  | 
|---|
|  |  |  | class  tagCreateRoleSucess(Structure): | 
|---|
|  |  |  | Head = tagHead() | 
|---|
|  |  |  | PlayerID = 0    #(DWORD PlayerID) | 
|---|
|  |  |  | PlayerName = ""    #(char PlayerName[33]) | 
|---|
|  |  |  | data = None | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def __init__(self): | 
|---|
|  |  |  | self.Clear() | 
|---|
|  |  |  | self.Head.Cmd = 0x01 | 
|---|
|  |  |  | self.Head.SubCmd = 0x32 | 
|---|
|  |  |  | 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.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33) | 
|---|
|  |  |  | return _pos | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def Clear(self): | 
|---|
|  |  |  | self.Head = tagHead() | 
|---|
|  |  |  | self.Head.Clear() | 
|---|
|  |  |  | self.Head.Cmd = 0x01 | 
|---|
|  |  |  | self.Head.SubCmd = 0x32 | 
|---|
|  |  |  | self.PlayerID = 0 | 
|---|
|  |  |  | self.PlayerName = "" | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def GetLength(self): | 
|---|
|  |  |  | length = 0 | 
|---|
|  |  |  | length += self.Head.GetLength() | 
|---|
|  |  |  | length += 4 | 
|---|
|  |  |  | length += 33 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return length | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def GetBuffer(self): | 
|---|
|  |  |  | data = '' | 
|---|
|  |  |  | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) | 
|---|
|  |  |  | data = CommFunc.WriteDWORD(data, self.PlayerID) | 
|---|
|  |  |  | data = CommFunc.WriteString(data, 33, self.PlayerName) | 
|---|
|  |  |  | return data | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def OutputString(self): | 
|---|
|  |  |  | DumpString = ''' | 
|---|
|  |  |  | Head:%s, | 
|---|
|  |  |  | PlayerID:%d, | 
|---|
|  |  |  | PlayerName:%s | 
|---|
|  |  |  | '''\ | 
|---|
|  |  |  | %( | 
|---|
|  |  |  | self.Head.OutputString(), | 
|---|
|  |  |  | self.PlayerID, | 
|---|
|  |  |  | self.PlayerName | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | return DumpString | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | m_NAtagCreateRoleSucess=tagCreateRoleSucess() | 
|---|
|  |  |  | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCreateRoleSucess.Head.Cmd,m_NAtagCreateRoleSucess.Head.SubCmd))] = m_NAtagCreateRoleSucess | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #------------------------------------------------------ | 
|---|
|  |  |  | #01 2A领取计时新手包结果#tagGetNewGuyCountBackwardsAwardResult对性能影响小 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | class  tagGetNewGuyCountBackwardsAwardResult(Structure): | 
|---|
|  |  |  | 
|---|
|  |  |  | GradID = 0    #(DWORD GradID)//头衔ID | 
|---|
|  |  |  | State = 0    #(BYTE State)//装备和使用状态 按位判定,第一位0未装备1已装备 第二位0未使用 1使用 | 
|---|
|  |  |  | CreateTime = ""    #(char CreateTime[30])//获得时间 | 
|---|
|  |  |  | ExpireTime = 0    #(DWORD ExpireTime)// 持续时间,0为配表固定时间 | 
|---|
|  |  |  | data = None | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def __init__(self): | 
|---|
|  |  |  | 
|---|
|  |  |  | self.GradID,_pos = CommFunc.ReadDWORD(_lpData, _pos) | 
|---|
|  |  |  | self.State,_pos = CommFunc.ReadBYTE(_lpData, _pos) | 
|---|
|  |  |  | self.CreateTime,_pos = CommFunc.ReadString(_lpData, _pos,30) | 
|---|
|  |  |  | self.ExpireTime,_pos = CommFunc.ReadDWORD(_lpData, _pos) | 
|---|
|  |  |  | return _pos | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def Clear(self): | 
|---|
|  |  |  | self.GradID = 0 | 
|---|
|  |  |  | self.State = 0 | 
|---|
|  |  |  | self.CreateTime = "" | 
|---|
|  |  |  | self.ExpireTime = 0 | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def GetLength(self): | 
|---|
|  |  |  | 
|---|
|  |  |  | length += 4 | 
|---|
|  |  |  | length += 1 | 
|---|
|  |  |  | length += 30 | 
|---|
|  |  |  | length += 4 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return length | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | data = CommFunc.WriteDWORD(data, self.GradID) | 
|---|
|  |  |  | data = CommFunc.WriteBYTE(data, self.State) | 
|---|
|  |  |  | data = CommFunc.WriteString(data, 30, self.CreateTime) | 
|---|
|  |  |  | data = CommFunc.WriteDWORD(data, self.ExpireTime) | 
|---|
|  |  |  | return data | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def OutputString(self): | 
|---|
|  |  |  | DumpString = ''' | 
|---|
|  |  |  | GradID:%d, | 
|---|
|  |  |  | State:%d, | 
|---|
|  |  |  | CreateTime:%s | 
|---|
|  |  |  | CreateTime:%s, | 
|---|
|  |  |  | ExpireTime:%d | 
|---|
|  |  |  | '''\ | 
|---|
|  |  |  | %( | 
|---|
|  |  |  | self.GradID, | 
|---|
|  |  |  | self.State, | 
|---|
|  |  |  | self.CreateTime | 
|---|
|  |  |  | self.CreateTime, | 
|---|
|  |  |  | self.ExpireTime | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | return DumpString | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | Head = tagHead() | 
|---|
|  |  |  | GradID = 0    #(DWORD GradID)//头衔ID | 
|---|
|  |  |  | CreateTime = ""    #(char CreateTime[30])//获得时间 | 
|---|
|  |  |  | ExpireTime = 0    #(DWORD ExpireTime)// 持续时间,0为配表固定时间 | 
|---|
|  |  |  | data = None | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def __init__(self): | 
|---|
|  |  |  | 
|---|
|  |  |  | _pos = self.Head.ReadData(_lpData, _pos) | 
|---|
|  |  |  | self.GradID,_pos = CommFunc.ReadDWORD(_lpData, _pos) | 
|---|
|  |  |  | self.CreateTime,_pos = CommFunc.ReadString(_lpData, _pos,30) | 
|---|
|  |  |  | self.ExpireTime,_pos = CommFunc.ReadDWORD(_lpData, _pos) | 
|---|
|  |  |  | return _pos | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def Clear(self): | 
|---|
|  |  |  | 
|---|
|  |  |  | self.Head.SubCmd = 0x36 | 
|---|
|  |  |  | self.GradID = 0 | 
|---|
|  |  |  | self.CreateTime = "" | 
|---|
|  |  |  | self.ExpireTime = 0 | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def GetLength(self): | 
|---|
|  |  |  | 
|---|
|  |  |  | length += self.Head.GetLength() | 
|---|
|  |  |  | length += 4 | 
|---|
|  |  |  | length += 30 | 
|---|
|  |  |  | length += 4 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return length | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) | 
|---|
|  |  |  | data = CommFunc.WriteDWORD(data, self.GradID) | 
|---|
|  |  |  | data = CommFunc.WriteString(data, 30, self.CreateTime) | 
|---|
|  |  |  | data = CommFunc.WriteDWORD(data, self.ExpireTime) | 
|---|
|  |  |  | return data | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def OutputString(self): | 
|---|
|  |  |  | DumpString = ''' | 
|---|
|  |  |  | Head:%s, | 
|---|
|  |  |  | GradID:%d, | 
|---|
|  |  |  | CreateTime:%s | 
|---|
|  |  |  | CreateTime:%s, | 
|---|
|  |  |  | ExpireTime:%d | 
|---|
|  |  |  | '''\ | 
|---|
|  |  |  | %( | 
|---|
|  |  |  | self.Head.OutputString(), | 
|---|
|  |  |  | self.GradID, | 
|---|
|  |  |  | self.CreateTime | 
|---|
|  |  |  | self.CreateTime, | 
|---|
|  |  |  | self.ExpireTime | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | return DumpString | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | ("ObjType", c_ubyte),    #对象类型 | 
|---|
|  |  |  | ("PosX", c_ushort), | 
|---|
|  |  |  | ("PosY", c_ushort), | 
|---|
|  |  |  | ("Reason", c_int),    # 0为游戏通用,其他未决定的为技能ID | 
|---|
|  |  |  | ] | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def __init__(self): | 
|---|
|  |  |  | 
|---|
|  |  |  | self.ObjType = 0 | 
|---|
|  |  |  | self.PosX = 0 | 
|---|
|  |  |  | self.PosY = 0 | 
|---|
|  |  |  | self.Reason = 0 | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def GetLength(self): | 
|---|
|  |  |  | 
|---|
|  |  |  | ObjID:%d, | 
|---|
|  |  |  | ObjType:%d, | 
|---|
|  |  |  | PosX:%d, | 
|---|
|  |  |  | PosY:%d | 
|---|
|  |  |  | PosY:%d, | 
|---|
|  |  |  | Reason:%d | 
|---|
|  |  |  | '''\ | 
|---|
|  |  |  | %( | 
|---|
|  |  |  | self.Cmd, | 
|---|
|  |  |  | 
|---|
|  |  |  | self.ObjID, | 
|---|
|  |  |  | self.ObjType, | 
|---|
|  |  |  | self.PosX, | 
|---|
|  |  |  | self.PosY | 
|---|
|  |  |  | self.PosY, | 
|---|
|  |  |  | self.Reason | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | return DumpString | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | ("Cmd", c_ubyte), | 
|---|
|  |  |  | ("SubCmd", c_ubyte), | 
|---|
|  |  |  | ("PlayerID", c_int), | 
|---|
|  |  |  | ("KillerID", c_int), | 
|---|
|  |  |  | ("KillerType", c_ubyte), | 
|---|
|  |  |  | ] | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def __init__(self): | 
|---|
|  |  |  | 
|---|
|  |  |  | self.Cmd = 0x06 | 
|---|
|  |  |  | self.SubCmd = 0x09 | 
|---|
|  |  |  | self.PlayerID = 0 | 
|---|
|  |  |  | self.KillerID = 0 | 
|---|
|  |  |  | self.KillerType = 0 | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def GetLength(self): | 
|---|
|  |  |  | 
|---|
|  |  |  | DumpString = '''//06 09 玩家死亡//tagPlayerDie: | 
|---|
|  |  |  | Cmd:%s, | 
|---|
|  |  |  | SubCmd:%s, | 
|---|
|  |  |  | PlayerID:%d | 
|---|
|  |  |  | PlayerID:%d, | 
|---|
|  |  |  | KillerID:%d, | 
|---|
|  |  |  | KillerType:%d | 
|---|
|  |  |  | '''\ | 
|---|
|  |  |  | %( | 
|---|
|  |  |  | self.Cmd, | 
|---|
|  |  |  | self.SubCmd, | 
|---|
|  |  |  | self.PlayerID | 
|---|
|  |  |  | self.PlayerID, | 
|---|
|  |  |  | self.KillerID, | 
|---|
|  |  |  | self.KillerType | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | return DumpString | 
|---|
|  |  |  |  | 
|---|