#!/usr/bin/python # -*- coding: GBK -*- #×÷Õß : import CommFunc import binascii import copy from struct import * from ctypes import * #²å¼þÍ· # # ChNetPackDict={} class BString: NameLen = 0 # (BYTE NameLen ) Name = "" # (String Name ) //size = NameLen data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.NameLen, _pos = CommFunc.ReadBYTE(_lpData, _pos) self.Name, _pos = CommFunc.ReadString(_lpData, _pos, self.NameLen) return _pos def Clear(self): self.NameLen = 0 self.Name = "" return def GetLength(self): length = 0 length += 1 length += self.Name.Length(); return length; def GetBuffer(self): data = '' data = CommFunc.WriteBYTE(data, self.NameLen) data = CommFunc.WriteString(data, self.NameLen, self.Name) return data def OutputString(self): DumpString = ''': NameLen:%d, Name:%s '''\ %( self.NameLen, self.Name ) return DumpString class tagHead: Cmd = 0 # (BYTE Cmd ) SubCmd = 0 # (BYTE SubCmd ) def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.Cmd, _pos = CommFunc.ReadBYTE(_lpData, _pos) self.SubCmd, _pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): self.Cmd = 0 self.SubCmd = 0 return def GetLength(self): length = 0 length += 1 length += 1 return length; def GetBuffer(self): data = '' data = CommFunc.WriteBYTE(data, self.Cmd) data = CommFunc.WriteBYTE(data, self.SubCmd) return data def OutputString(self): DumpString = ''': Cmd:%d, SubCmd:%d '''\ %( self.Cmd, self.SubCmd ) return DumpString #------------------------------------------------------ #A0 01 Gm¹ã²¥ÏûÏ¢#tagBroadCastInfo class tagBroadCastInfo(Structure): Head = tagHead() StartTime = 0 #(DWORD StartTime) EndTime = 0 #(DWORD EndTime) Interval = 0 #(WORD Interval)//ʱ¼ä¼ä¸ô MsgLen = 0 #(WORD MsgLen) Msg = "" #(String Msg)//size = MsgLen IsDelOthers = 0 #(BYTE IsDelOthers)//ÊÇ·ñɾ³ýÆäËûµÄ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA0 self.Head.SubCmd = 0x01 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.StartTime,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.EndTime,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Interval,_pos = CommFunc.ReadWORD(_lpData, _pos) self.MsgLen,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Msg,_pos = CommFunc.ReadString(_lpData, _pos,self.MsgLen) self.IsDelOthers,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA0 self.Head.SubCmd = 0x01 self.StartTime = 0 self.EndTime = 0 self.Interval = 0 self.MsgLen = 0 self.Msg = "" self.IsDelOthers = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 4 length += 2 length += 2 length += len(self.Msg) length += 1 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.StartTime) data = CommFunc.WriteDWORD(data, self.EndTime) data = CommFunc.WriteWORD(data, self.Interval) data = CommFunc.WriteWORD(data, self.MsgLen) data = CommFunc.WriteString(data, self.MsgLen, self.Msg) data = CommFunc.WriteBYTE(data, self.IsDelOthers) return data def OutputString(self): DumpString = ''' Head:%s, StartTime:%d, EndTime:%d, Interval:%d, MsgLen:%d, Msg:%s, IsDelOthers:%d '''\ %( self.Head.OutputString(), self.StartTime, self.EndTime, self.Interval, self.MsgLen, self.Msg, self.IsDelOthers ) return DumpString m_NAtagBroadCastInfo=tagBroadCastInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagBroadCastInfo.Head.Cmd,m_NAtagBroadCastInfo.Head.SubCmd))] = m_NAtagBroadCastInfo #------------------------------------------------------ # A0 07 ¸±±¾µØÍ¼¹¦ÄÜÏß·ÈËÊý #tagGCFBLinePlayerCnt class tagGCFBLineInfo(Structure): _pack_ = 1 _fields_ = [ ("FBLineID", c_ubyte), # ¹¦ÄÜÏß·ID ("PlayerCnt", c_ushort), # Ïß·µ±Ç°Íæ¼ÒÊý ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.FBLineID = 0 self.PlayerCnt = 0 return def GetLength(self): return sizeof(tagGCFBLineInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A0 07 ¸±±¾µØÍ¼¹¦ÄÜÏß·ÈËÊý //tagGCFBLinePlayerCnt: FBLineID:%d, PlayerCnt:%d '''\ %( self.FBLineID, self.PlayerCnt ) return DumpString class tagGCFBLinePlayerCnt(Structure): Head = tagHead() MapID = 0 #(DWORD MapID)// µØÍ¼ID Count = 0 #(BYTE Count) FBLineInfoList = list() #(vector FBLineInfoList) data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA0 self.Head.SubCmd = 0x07 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.MapID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Count): temFBLineInfoList = tagGCFBLineInfo() _pos = temFBLineInfoList.ReadData(_lpData, _pos) self.FBLineInfoList.append(temFBLineInfoList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA0 self.Head.SubCmd = 0x07 self.MapID = 0 self.Count = 0 self.FBLineInfoList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 for i in range(self.Count): length += self.FBLineInfoList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.MapID) data = CommFunc.WriteBYTE(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.FBLineInfoList[i].GetLength(), self.FBLineInfoList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, MapID:%d, Count:%d, FBLineInfoList:%s '''\ %( self.Head.OutputString(), self.MapID, self.Count, "..." ) return DumpString m_NAtagGCFBLinePlayerCnt=tagGCFBLinePlayerCnt() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCFBLinePlayerCnt.Head.Cmd,m_NAtagGCFBLinePlayerCnt.Head.SubCmd))] = m_NAtagGCFBLinePlayerCnt #------------------------------------------------------ #A0 05 ͬ²½¿ª·þÌìÊý #tagOpenServerDay class tagOpenServerDay(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Day", c_ushort), # ÒÑ¿ª·þÌìÊý£¬´Ó0¿ªÊ¼ ("IsMixServer", c_ubyte), #ÊÇ·ñÊǺϷþ·þÎñÆ÷ ("MixDay", c_ushort), # ÒѺϷþÌìÊý£¬´Ó0¿ªÊ¼ ] def __init__(self): self.Clear() self.Cmd = 0xA0 self.SubCmd = 0x05 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA0 self.SubCmd = 0x05 self.Day = 0 self.IsMixServer = 0 self.MixDay = 0 return def GetLength(self): return sizeof(tagOpenServerDay) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//A0 05 ͬ²½¿ª·þÌìÊý //tagOpenServerDay: Cmd:%s, SubCmd:%s, Day:%d, IsMixServer:%d, MixDay:%d '''\ %( self.Cmd, self.SubCmd, self.Day, self.IsMixServer, self.MixDay ) return DumpString m_NAtagOpenServerDay=tagOpenServerDay() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagOpenServerDay.Cmd,m_NAtagOpenServerDay.SubCmd))] = m_NAtagOpenServerDay #------------------------------------------------------ # A0 06 ·þÎñÆ÷µØÍ¼Ïß·ÈËÊý״̬ #tagGCPyServerMapState class tagGCPyServerMapLineState(Structure): MapID = 0 #(DWORD MapID)// µØÍ¼ID LineCnt = 0 #(BYTE LineCnt)// Ïß·Êý LineCurPlayerCntList = list() #(vector LineCurPlayerCntList)// Ïß·µ±Ç°Íæ¼ÒÊýÁбí LineMaxPlayerCntList = list() #(vector LineMaxPlayerCntList)// Ïß·×î´óÍæ¼ÒÊýÁбí data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.MapID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.LineCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.LineCnt): value,_pos=CommFunc.ReadDWORD(_lpData,_pos) self.LineCurPlayerCntList.append(value) for i in range(self.LineCnt): value,_pos=CommFunc.ReadDWORD(_lpData,_pos) self.LineMaxPlayerCntList.append(value) return _pos def Clear(self): self.MapID = 0 self.LineCnt = 0 self.LineCurPlayerCntList = list() self.LineMaxPlayerCntList = list() return def GetLength(self): length = 0 length += 4 length += 1 length += 4 * self.LineCnt length += 4 * self.LineCnt return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.MapID) data = CommFunc.WriteBYTE(data, self.LineCnt) for i in range(self.LineCnt): data = CommFunc.WriteDWORD(data, self.LineCurPlayerCntList[i]) for i in range(self.LineCnt): data = CommFunc.WriteDWORD(data, self.LineMaxPlayerCntList[i]) return data def OutputString(self): DumpString = ''' MapID:%d, LineCnt:%d, LineCurPlayerCntList:%s, LineMaxPlayerCntList:%s '''\ %( self.MapID, self.LineCnt, "...", "..." ) return DumpString class tagGCPyServerMapState(Structure): Head = tagHead() MapCount = 0 #(BYTE MapCount) MapStateList = list() #(vector MapStateList) data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA0 self.Head.SubCmd = 0x06 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.MapCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.MapCount): temMapStateList = tagGCPyServerMapLineState() _pos = temMapStateList.ReadData(_lpData, _pos) self.MapStateList.append(temMapStateList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA0 self.Head.SubCmd = 0x06 self.MapCount = 0 self.MapStateList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.MapCount): length += self.MapStateList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.MapCount) for i in range(self.MapCount): data = CommFunc.WriteString(data, self.MapStateList[i].GetLength(), self.MapStateList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, MapCount:%d, MapStateList:%s '''\ %( self.Head.OutputString(), self.MapCount, "..." ) return DumpString m_NAtagGCPyServerMapState=tagGCPyServerMapState() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCPyServerMapState.Head.Cmd,m_NAtagGCPyServerMapState.Head.SubCmd))] = m_NAtagGCPyServerMapState #------------------------------------------------------ #A0 04 ͬ²½¿Í»§¶Ëʱ¼ä #tagServerDateTime class tagServerDateTime(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Year", c_ushort), ("Month", c_ubyte), ("Day", c_ubyte), ("Hour", c_ubyte), ("Minute", c_ubyte), ("Second", c_ubyte), ("MicSecond", c_int), ] def __init__(self): self.Clear() self.Cmd = 0xA0 self.SubCmd = 0x04 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA0 self.SubCmd = 0x04 self.Year = 0 self.Month = 0 self.Day = 0 self.Hour = 0 self.Minute = 0 self.Second = 0 self.MicSecond = 0 return def GetLength(self): return sizeof(tagServerDateTime) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//A0 04 ͬ²½¿Í»§¶Ëʱ¼ä //tagServerDateTime: Cmd:%s, SubCmd:%s, Year:%d, Month:%d, Day:%d, Hour:%d, Minute:%d, Second:%d, MicSecond:%d '''\ %( self.Cmd, self.SubCmd, self.Year, self.Month, self.Day, self.Hour, self.Minute, self.Second, self.MicSecond ) return DumpString m_NAtagServerDateTime=tagServerDateTime() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagServerDateTime.Cmd,m_NAtagServerDateTime.SubCmd))] = m_NAtagServerDateTime #------------------------------------------------------ #A0 02 È«·þGMÓʼþ·¢ËÍ#tagServerGmMailInfo class tagServerGmMailInfo(Structure): Head = tagHead() TitleLen = 0 #(WORD TitleLen)//±êÌâ Title = "" #(String Title) ContentLen = 0 #(WORD ContentLen) Content = "" #(String Content)//size = ContentLen data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA0 self.Head.SubCmd = 0x02 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.TitleLen,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Title,_pos = CommFunc.ReadString(_lpData, _pos,self.TitleLen) self.ContentLen,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Content,_pos = CommFunc.ReadString(_lpData, _pos,self.ContentLen) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA0 self.Head.SubCmd = 0x02 self.TitleLen = 0 self.Title = "" self.ContentLen = 0 self.Content = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 length += len(self.Title) length += 2 length += len(self.Content) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteWORD(data, self.TitleLen) data = CommFunc.WriteString(data, self.TitleLen, self.Title) data = CommFunc.WriteWORD(data, self.ContentLen) data = CommFunc.WriteString(data, self.ContentLen, self.Content) return data def OutputString(self): DumpString = ''' Head:%s, TitleLen:%d, Title:%s, ContentLen:%d, Content:%s '''\ %( self.Head.OutputString(), self.TitleLen, self.Title, self.ContentLen, self.Content ) return DumpString m_NAtagServerGmMailInfo=tagServerGmMailInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagServerGmMailInfo.Head.Cmd,m_NAtagServerGmMailInfo.Head.SubCmd))] = m_NAtagServerGmMailInfo #------------------------------------------------------ #A0 03 Íæ¼ÒÐÅϢͨÓüǼ #tagUniversalGameRecInfo class tagUniversalGameRec(Structure): Time = 0 #(DWORD Time)//ʱ¼ä StrValue1Len = 0 #(WORD StrValue1Len)//×Ö·û´®1³¤¶È StrValue1 = "" #(String StrValue1) StrValue2Len = 0 #(WORD StrValue2Len)//×Ö·û´®2³¤¶È StrValue2 = "" #(String StrValue2) StrValue3Len = 0 #(WORD StrValue3Len)//×Ö·û´®3³¤¶È StrValue3 = "" #(String StrValue3) Value1 = 0 #(DWORD Value1)//ÊýÖµ1 Value2 = 0 #(DWORD Value2)//ÊýÖµ1 Value3 = 0 #(DWORD Value3)//ÊýÖµ1 Value4 = 0 #(DWORD Value4)//ÊýÖµ1 Value5 = 0 #(DWORD Value5)//ÊýÖµ1 data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.Time,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.StrValue1Len,_pos = CommFunc.ReadWORD(_lpData, _pos) self.StrValue1,_pos = CommFunc.ReadString(_lpData, _pos,self.StrValue1Len) self.StrValue2Len,_pos = CommFunc.ReadWORD(_lpData, _pos) self.StrValue2,_pos = CommFunc.ReadString(_lpData, _pos,self.StrValue2Len) self.StrValue3Len,_pos = CommFunc.ReadWORD(_lpData, _pos) self.StrValue3,_pos = CommFunc.ReadString(_lpData, _pos,self.StrValue3Len) self.Value1,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Value2,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Value3,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Value4,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Value5,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): self.Time = 0 self.StrValue1Len = 0 self.StrValue1 = "" self.StrValue2Len = 0 self.StrValue2 = "" self.StrValue3Len = 0 self.StrValue3 = "" self.Value1 = 0 self.Value2 = 0 self.Value3 = 0 self.Value4 = 0 self.Value5 = 0 return def GetLength(self): length = 0 length += 4 length += 2 length += len(self.StrValue1) length += 2 length += len(self.StrValue2) length += 2 length += len(self.StrValue3) length += 4 length += 4 length += 4 length += 4 length += 4 return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.Time) data = CommFunc.WriteWORD(data, self.StrValue1Len) data = CommFunc.WriteString(data, self.StrValue1Len, self.StrValue1) data = CommFunc.WriteWORD(data, self.StrValue2Len) data = CommFunc.WriteString(data, self.StrValue2Len, self.StrValue2) data = CommFunc.WriteWORD(data, self.StrValue3Len) data = CommFunc.WriteString(data, self.StrValue3Len, self.StrValue3) data = CommFunc.WriteDWORD(data, self.Value1) data = CommFunc.WriteDWORD(data, self.Value2) data = CommFunc.WriteDWORD(data, self.Value3) data = CommFunc.WriteDWORD(data, self.Value4) data = CommFunc.WriteDWORD(data, self.Value5) return data def OutputString(self): DumpString = ''' Time:%d, StrValue1Len:%d, StrValue1:%s, StrValue2Len:%d, StrValue2:%s, StrValue3Len:%d, StrValue3:%s, Value1:%d, Value2:%d, Value3:%d, Value4:%d, Value5:%d '''\ %( self.Time, self.StrValue1Len, self.StrValue1, self.StrValue2Len, self.StrValue2, self.StrValue3Len, self.StrValue3, self.Value1, self.Value2, self.Value3, self.Value4, self.Value5 ) return DumpString class tagUniversalGameRecInfo(Structure): Head = tagHead() Type = 0 #(BYTE Type)//ÀàÐÍ Count = 0 #(WORD Count)//ÊýÁ¿ UniversalGameRec = list() #(vector UniversalGameRec)///size = Count data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA0 self.Head.SubCmd = 0x03 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Type,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos) for i in range(self.Count): temUniversalGameRec = tagUniversalGameRec() _pos = temUniversalGameRec.ReadData(_lpData, _pos) self.UniversalGameRec.append(temUniversalGameRec) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA0 self.Head.SubCmd = 0x03 self.Type = 0 self.Count = 0 self.UniversalGameRec = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 2 for i in range(self.Count): length += self.UniversalGameRec[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.Type) data = CommFunc.WriteWORD(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.UniversalGameRec[i].GetLength(), self.UniversalGameRec[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Type:%d, Count:%d, UniversalGameRec:%s '''\ %( self.Head.OutputString(), self.Type, self.Count, "..." ) return DumpString m_NAtagUniversalGameRecInfo=tagUniversalGameRecInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagUniversalGameRecInfo.Head.Cmd,m_NAtagUniversalGameRecInfo.Head.SubCmd))] = m_NAtagUniversalGameRecInfo #------------------------------------------------------ # A4 0A ¼ÙÏÉÃËÐÅÏ¢ #tagGCFakeFamilyInfo class tagGCFakeFamilyInfo(Structure): Head = tagHead() Count = 0 #(BYTE Count) FakeIDList = list() #(vector FakeIDList)// ¼ÙÏÉÃËÃû×ÖË÷Òý1¿ªÊ¼ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA4 self.Head.SubCmd = 0x0A return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Count): value,_pos=CommFunc.ReadDWORD(_lpData,_pos) self.FakeIDList.append(value) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA4 self.Head.SubCmd = 0x0A self.Count = 0 self.FakeIDList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 4 * self.Count return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.Count) for i in range(self.Count): data = CommFunc.WriteDWORD(data, self.FakeIDList[i]) return data def OutputString(self): DumpString = ''' Head:%s, Count:%d, FakeIDList:%s '''\ %( self.Head.OutputString(), self.Count, "..." ) return DumpString m_NAtagGCFakeFamilyInfo=tagGCFakeFamilyInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCFakeFamilyInfo.Head.Cmd,m_NAtagGCFakeFamilyInfo.Head.SubCmd))] = m_NAtagGCFakeFamilyInfo #------------------------------------------------------ # A4 03 ¼Ò×åÐÐΪÐÅÏ¢ #tagGCFamilyActionInfo class tagGCFamilyAction(Structure): Time = 0 #(DWORD Time)//ʱ¼ä NameLen = 0 #(BYTE NameLen) Name = "" #(String Name) Value1 = 0 #(DWORD Value1)//ÊýÖµ1 Value2 = 0 #(DWORD Value2)//ÊýÖµ2 Value3 = 0 #(DWORD Value3)//ÊýÖµ3 Value4 = 0 #(DWORD Value4)//ÊýÖµ4 Value5 = 0 #(DWORD Value5)//ÊýÖµ5 Value6 = 0 #(DWORD Value6)//ÊýÖµ6 UseDataLen = 0 #(WORD UseDataLen) UseData = "" #(String UseData) data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.Time,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Name,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen) self.Value1,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Value2,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Value3,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Value4,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Value5,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Value6,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.UseDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos) self.UseData,_pos = CommFunc.ReadString(_lpData, _pos,self.UseDataLen) return _pos def Clear(self): self.Time = 0 self.NameLen = 0 self.Name = "" self.Value1 = 0 self.Value2 = 0 self.Value3 = 0 self.Value4 = 0 self.Value5 = 0 self.Value6 = 0 self.UseDataLen = 0 self.UseData = "" return def GetLength(self): length = 0 length += 4 length += 1 length += len(self.Name) length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 2 length += len(self.UseData) return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.Time) data = CommFunc.WriteBYTE(data, self.NameLen) data = CommFunc.WriteString(data, self.NameLen, self.Name) data = CommFunc.WriteDWORD(data, self.Value1) data = CommFunc.WriteDWORD(data, self.Value2) data = CommFunc.WriteDWORD(data, self.Value3) data = CommFunc.WriteDWORD(data, self.Value4) data = CommFunc.WriteDWORD(data, self.Value5) data = CommFunc.WriteDWORD(data, self.Value6) data = CommFunc.WriteWORD(data, self.UseDataLen) data = CommFunc.WriteString(data, self.UseDataLen, self.UseData) return data def OutputString(self): DumpString = ''' Time:%d, NameLen:%d, Name:%s, Value1:%d, Value2:%d, Value3:%d, Value4:%d, Value5:%d, Value6:%d, UseDataLen:%d, UseData:%s '''\ %( self.Time, self.NameLen, self.Name, self.Value1, self.Value2, self.Value3, self.Value4, self.Value5, self.Value6, self.UseDataLen, self.UseData ) return DumpString class tagGCFamilyActionInfo(Structure): Head = tagHead() FamilyID = 0 #(DWORD FamilyID)//¼Ò×åID ActionType = 0 #(BYTE ActionType)//ÀàÐÍ Count = 0 #(WORD Count)//ÊýÁ¿ FamilyActionList = list() #(vector FamilyActionList)//size = Count data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA4 self.Head.SubCmd = 0x03 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.FamilyID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ActionType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos) for i in range(self.Count): temFamilyActionList = tagGCFamilyAction() _pos = temFamilyActionList.ReadData(_lpData, _pos) self.FamilyActionList.append(temFamilyActionList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA4 self.Head.SubCmd = 0x03 self.FamilyID = 0 self.ActionType = 0 self.Count = 0 self.FamilyActionList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += 2 for i in range(self.Count): length += self.FamilyActionList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.FamilyID) data = CommFunc.WriteBYTE(data, self.ActionType) data = CommFunc.WriteWORD(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.FamilyActionList[i].GetLength(), self.FamilyActionList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, FamilyID:%d, ActionType:%d, Count:%d, FamilyActionList:%s '''\ %( self.Head.OutputString(), self.FamilyID, self.ActionType, self.Count, "..." ) return DumpString m_NAtagGCFamilyActionInfo=tagGCFamilyActionInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCFamilyActionInfo.Head.Cmd,m_NAtagGCFamilyActionInfo.Head.SubCmd))] = m_NAtagGCFamilyActionInfo #------------------------------------------------------ # A4 02 ¼Ò×åboss¸±±¾¿ªÆô¼°»÷ɱÐÅÏ¢ #tagGCFamilyBossFBInfo class tagGCFamilyBossFBInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("IsOpen", c_int), # ÊÇ·ñÒÑ¿ªÆô ("OpenCnt", c_ubyte), # ±¾ÖÜÒÑ¿ªÆô´ÎÊý ] def __init__(self): self.Clear() self.Cmd = 0xA4 self.SubCmd = 0x02 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA4 self.SubCmd = 0x02 self.IsOpen = 0 self.OpenCnt = 0 return def GetLength(self): return sizeof(tagGCFamilyBossFBInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A4 02 ¼Ò×åboss¸±±¾¿ªÆô¼°»÷ɱÐÅÏ¢ //tagGCFamilyBossFBInfo: Cmd:%s, SubCmd:%s, IsOpen:%d, OpenCnt:%d '''\ %( self.Cmd, self.SubCmd, self.IsOpen, self.OpenCnt ) return DumpString m_NAtagGCFamilyBossFBInfo=tagGCFamilyBossFBInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCFamilyBossFBInfo.Cmd,m_NAtagGCFamilyBossFBInfo.SubCmd))] = m_NAtagGCFamilyBossFBInfo #------------------------------------------------------ # A4 05 ¼Ò×åºì°üÇÀµÄÐÅÏ¢ #tagGCFamilyRedPacketGrabInfo class tagFGrabRedPacketInfo(Structure): Name = "" #(char Name[33])//Ãû×Ö PlayeJob = 0 #(BYTE PlayeJob)//Íæ¼ÒÖ°Òµ MoneyNum = 0 #(DWORD MoneyNum)//½ðÇ®ÊýÁ¿ data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.Name,_pos = CommFunc.ReadString(_lpData, _pos,33) self.PlayeJob,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.MoneyNum,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): self.Name = "" self.PlayeJob = 0 self.MoneyNum = 0 return def GetLength(self): length = 0 length += 33 length += 1 length += 4 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, 33, self.Name) data = CommFunc.WriteBYTE(data, self.PlayeJob) data = CommFunc.WriteDWORD(data, self.MoneyNum) return data def OutputString(self): DumpString = ''' Name:%s, PlayeJob:%d, MoneyNum:%d '''\ %( self.Name, self.PlayeJob, self.MoneyNum ) return DumpString class tagGCFamilyRedPacketGrabInfo(Structure): Head = tagHead() RedPacketID = 0 #(DWORD RedPacketID)//ºì°üΨһID Count = 0 #(BYTE Count)//ÊýÁ¿ GrabInfo = list() #(vector GrabInfo)//size = Count data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA4 self.Head.SubCmd = 0x05 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.RedPacketID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Count): temGrabInfo = tagFGrabRedPacketInfo() _pos = temGrabInfo.ReadData(_lpData, _pos) self.GrabInfo.append(temGrabInfo) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA4 self.Head.SubCmd = 0x05 self.RedPacketID = 0 self.Count = 0 self.GrabInfo = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 for i in range(self.Count): length += self.GrabInfo[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.RedPacketID) data = CommFunc.WriteBYTE(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.GrabInfo[i].GetLength(), self.GrabInfo[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, RedPacketID:%d, Count:%d, GrabInfo:%s '''\ %( self.Head.OutputString(), self.RedPacketID, self.Count, "..." ) return DumpString m_NAtagGCFamilyRedPacketGrabInfo=tagGCFamilyRedPacketGrabInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCFamilyRedPacketGrabInfo.Head.Cmd,m_NAtagGCFamilyRedPacketGrabInfo.Head.SubCmd))] = m_NAtagGCFamilyRedPacketGrabInfo #------------------------------------------------------ # A4 04 ¼Ò×åºì°ü×ÜÐÅÏ¢ #tagGCFamilyRedPacketInfo class tagFRedPacketInfo(Structure): RedPacketID = 0 #(DWORD RedPacketID)//ºì°üΨһID PlayerID = 0 #(DWORD PlayerID)//Íæ¼ÒID Name = "" #(char Name[33])//Íæ¼ÒÃû×Ö Time = 0 #(DWORD Time)//ʱ¼ä PlayeJob = 0 #(BYTE PlayeJob)//Íæ¼ÒÖ°Òµ MoneyType = 0 #(BYTE MoneyType)//½ðÇ®ÀàÐÍ MoneyNum = 0 #(WORD MoneyNum)//½ðÇ®ÊýÁ¿ GetWay = 0 #(BYTE GetWay)//»ñµÃ;¾¶ PacketCnt = 0 #(BYTE PacketCnt)//¿ÉÇÀ¸öÊý State = 0 #(BYTE State)//0δ·¢,1δÁìÈ¡,2ÒÑÁìÈ¡,3È«²¿ÁìÍê Wish = "" #(char Wish[33])//×£¸£Óï data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.RedPacketID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Name,_pos = CommFunc.ReadString(_lpData, _pos,33) self.Time,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.PlayeJob,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.MoneyType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.MoneyNum,_pos = CommFunc.ReadWORD(_lpData, _pos) self.GetWay,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.PacketCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.State,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Wish,_pos = CommFunc.ReadString(_lpData, _pos,33) return _pos def Clear(self): self.RedPacketID = 0 self.PlayerID = 0 self.Name = "" self.Time = 0 self.PlayeJob = 0 self.MoneyType = 0 self.MoneyNum = 0 self.GetWay = 0 self.PacketCnt = 0 self.State = 0 self.Wish = "" return def GetLength(self): length = 0 length += 4 length += 4 length += 33 length += 4 length += 1 length += 1 length += 2 length += 1 length += 1 length += 1 length += 33 return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.RedPacketID) data = CommFunc.WriteDWORD(data, self.PlayerID) data = CommFunc.WriteString(data, 33, self.Name) data = CommFunc.WriteDWORD(data, self.Time) data = CommFunc.WriteBYTE(data, self.PlayeJob) data = CommFunc.WriteBYTE(data, self.MoneyType) data = CommFunc.WriteWORD(data, self.MoneyNum) data = CommFunc.WriteBYTE(data, self.GetWay) data = CommFunc.WriteBYTE(data, self.PacketCnt) data = CommFunc.WriteBYTE(data, self.State) data = CommFunc.WriteString(data, 33, self.Wish) return data def OutputString(self): DumpString = ''' RedPacketID:%d, PlayerID:%d, Name:%s, Time:%d, PlayeJob:%d, MoneyType:%d, MoneyNum:%d, GetWay:%d, PacketCnt:%d, State:%d, Wish:%s '''\ %( self.RedPacketID, self.PlayerID, self.Name, self.Time, self.PlayeJob, self.MoneyType, self.MoneyNum, self.GetWay, self.PacketCnt, self.State, self.Wish ) return DumpString class tagGCFamilyRedPacketInfo(Structure): Head = tagHead() IsAll = 0 #(BYTE IsAll)//ÊÇ·ñÈ«²¿ºì°ü Count = 0 #(BYTE Count)//ºì°üÊýÁ¿ RedPacketInfo = list() #(vector RedPacketInfo)//size = Count data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA4 self.Head.SubCmd = 0x04 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.IsAll,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Count): temRedPacketInfo = tagFRedPacketInfo() _pos = temRedPacketInfo.ReadData(_lpData, _pos) self.RedPacketInfo.append(temRedPacketInfo) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA4 self.Head.SubCmd = 0x04 self.IsAll = 0 self.Count = 0 self.RedPacketInfo = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 1 for i in range(self.Count): length += self.RedPacketInfo[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.IsAll) data = CommFunc.WriteBYTE(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.RedPacketInfo[i].GetLength(), self.RedPacketInfo[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, IsAll:%d, Count:%d, RedPacketInfo:%s '''\ %( self.Head.OutputString(), self.IsAll, self.Count, "..." ) return DumpString m_NAtagGCFamilyRedPacketInfo=tagGCFamilyRedPacketInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCFamilyRedPacketInfo.Head.Cmd,m_NAtagGCFamilyRedPacketInfo.Head.SubCmd))] = m_NAtagGCFamilyRedPacketInfo #------------------------------------------------------ # A4 06 ¼Ò×å²Ö¿âÎïÆ·ÐÅÏ¢ #tagGCFamilyStoreItemInfo class tagGCFamilyStoreItem(Structure): Index = 0 #(BYTE Index)// ²Ö¿â¸ñ×ÓË÷Òý£¬´Ó0¿ªÊ¼´ú±íµÚÒ»¸ñ ItemID = 0 #(DWORD ItemID)// ÎïÆ·ID ItemDataLen = 0 #(WORD ItemDataLen) ItemData = "" #(String ItemData)//size = ItemDataLen data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.Index,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ItemDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos) self.ItemData,_pos = CommFunc.ReadString(_lpData, _pos,self.ItemDataLen) return _pos def Clear(self): self.Index = 0 self.ItemID = 0 self.ItemDataLen = 0 self.ItemData = "" return def GetLength(self): length = 0 length += 1 length += 4 length += 2 length += len(self.ItemData) return length def GetBuffer(self): data = '' data = CommFunc.WriteBYTE(data, self.Index) data = CommFunc.WriteDWORD(data, self.ItemID) data = CommFunc.WriteWORD(data, self.ItemDataLen) data = CommFunc.WriteString(data, self.ItemDataLen, self.ItemData) return data def OutputString(self): DumpString = ''' Index:%d, ItemID:%d, ItemDataLen:%d, ItemData:%s '''\ %( self.Index, self.ItemID, self.ItemDataLen, self.ItemData ) return DumpString class tagGCFamilyStoreItemInfo(Structure): Head = tagHead() Count = 0 #(BYTE Count)//ÊýÁ¿ StoreItemList = list() #(vector StoreItemList)//size = Count data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA4 self.Head.SubCmd = 0x06 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Count): temStoreItemList = tagGCFamilyStoreItem() _pos = temStoreItemList.ReadData(_lpData, _pos) self.StoreItemList.append(temStoreItemList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA4 self.Head.SubCmd = 0x06 self.Count = 0 self.StoreItemList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.Count): length += self.StoreItemList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.StoreItemList[i].GetLength(), self.StoreItemList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Count:%d, StoreItemList:%s '''\ %( self.Head.OutputString(), self.Count, "..." ) return DumpString m_NAtagGCFamilyStoreItemInfo=tagGCFamilyStoreItemInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCFamilyStoreItemInfo.Head.Cmd,m_NAtagGCFamilyStoreItemInfo.Head.SubCmd))] = m_NAtagGCFamilyStoreItemInfo #------------------------------------------------------ # A4 07 ¼Ò×å²Ö¿âÎïÆ·Çå³ý #tagGCFamilyStoreItemClear class tagGCFamilyStoreItemClear(Structure): Head = tagHead() ClearType = 0 #(BYTE ClearType)//0-Ö¸¶¨¸ñ×ÓÇå³ý; 1-ËùÓÐÎïÆ·Çå³ý IndexCount = 0 #(BYTE IndexCount) IndexList = list() #(vector IndexList)//Çå³ýµÄ¸ñ×ÓË÷Òý, ½öÖ¸¶¨¸ñ×ÓÇå³ýʱÓÐЧ,´Ó0¿ªÊ¼´ú±íµÚÒ»¸ñ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA4 self.Head.SubCmd = 0x07 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.ClearType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.IndexCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.IndexCount): value,_pos=CommFunc.ReadBYTE(_lpData,_pos) self.IndexList.append(value) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA4 self.Head.SubCmd = 0x07 self.ClearType = 0 self.IndexCount = 0 self.IndexList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 1 length += 1 * self.IndexCount return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.ClearType) data = CommFunc.WriteBYTE(data, self.IndexCount) for i in range(self.IndexCount): data = CommFunc.WriteBYTE(data, self.IndexList[i]) return data def OutputString(self): DumpString = ''' Head:%s, ClearType:%d, IndexCount:%d, IndexList:%s '''\ %( self.Head.OutputString(), self.ClearType, self.IndexCount, "..." ) return DumpString m_NAtagGCFamilyStoreItemClear=tagGCFamilyStoreItemClear() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCFamilyStoreItemClear.Head.Cmd,m_NAtagGCFamilyStoreItemClear.Head.SubCmd))] = m_NAtagGCFamilyStoreItemClear #------------------------------------------------------ # A4 09 ¼Ò×åÊØÎÀÈË»ÊÐÅϢ֪ͨ #tagGCFamilySWRHInfo class tagGCFamilySWRHInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("HasJoin", c_ubyte), # ÊÇ·ñÒѲÎÓë ] def __init__(self): self.Clear() self.Cmd = 0xA4 self.SubCmd = 0x09 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA4 self.SubCmd = 0x09 self.HasJoin = 0 return def GetLength(self): return sizeof(tagGCFamilySWRHInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A4 09 ¼Ò×åÊØÎÀÈË»ÊÐÅϢ֪ͨ //tagGCFamilySWRHInfo: Cmd:%s, SubCmd:%s, HasJoin:%d '''\ %( self.Cmd, self.SubCmd, self.HasJoin ) return DumpString m_NAtagGCFamilySWRHInfo=tagGCFamilySWRHInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCFamilySWRHInfo.Cmd,m_NAtagGCFamilySWRHInfo.SubCmd))] = m_NAtagGCFamilySWRHInfo #------------------------------------------------------ # A4 0B Íæ¼Ò²ÎÓëµÄÏÉÃËÁªÈüÏÉÃËÐÅÏ¢ #tagGCPlayerJoinFamilyWarInfo class tagGCPlayerJoinFamilyWarInfo(Structure): Head = tagHead() JoinFamilyID = 0 #(DWORD JoinFamilyID)//²ÎÓëµÄÏÉÃËID£¬Ä¬ÈÏ0±¾ÏÉÃË£¬ÏÉÃ˲»Í¬Ê±²Å»áÊÕµ½±¾°ü JoinFamilyNameLen = 0 #(BYTE JoinFamilyNameLen) JoinFamilyName = "" #(String JoinFamilyName) data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA4 self.Head.SubCmd = 0x0B return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.JoinFamilyID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.JoinFamilyNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.JoinFamilyName,_pos = CommFunc.ReadString(_lpData, _pos,self.JoinFamilyNameLen) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA4 self.Head.SubCmd = 0x0B self.JoinFamilyID = 0 self.JoinFamilyNameLen = 0 self.JoinFamilyName = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += len(self.JoinFamilyName) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.JoinFamilyID) data = CommFunc.WriteBYTE(data, self.JoinFamilyNameLen) data = CommFunc.WriteString(data, self.JoinFamilyNameLen, self.JoinFamilyName) return data def OutputString(self): DumpString = ''' Head:%s, JoinFamilyID:%d, JoinFamilyNameLen:%d, JoinFamilyName:%s '''\ %( self.Head.OutputString(), self.JoinFamilyID, self.JoinFamilyNameLen, self.JoinFamilyName ) return DumpString m_NAtagGCPlayerJoinFamilyWarInfo=tagGCPlayerJoinFamilyWarInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCPlayerJoinFamilyWarInfo.Head.Cmd,m_NAtagGCPlayerJoinFamilyWarInfo.Head.SubCmd))] = m_NAtagGCPlayerJoinFamilyWarInfo #------------------------------------------------------ # A4 08 ²é¿´¼Ò×å #tagGCPyAllFamilyView class tagGCPyFamilyView(Structure): FamilyIndex = 0 #(WORD FamilyIndex) FamilyID = 0 #(DWORD FamilyID)//¼Ò×åID FamilyNameLen = 0 #(BYTE FamilyNameLen) FamilyName = "" #(String FamilyName)//size = FamilyNameLen LeaderID = 0 #(DWORD LeaderID)//×峤ID LeaderNameLen = 0 #(BYTE LeaderNameLen) LeaderName = "" #(String LeaderName)//size = LeaderNameLen LeaderOfficialRank = 0 #(BYTE LeaderOfficialRank)//¾³½ç FamilyLV = 0 #(WORD FamilyLV)//¼Ò×åµÈ¼¶ FamilyMemberCount = 0 #(WORD FamilyMemberCount)//¼Ò×åÈËÊý JoinAccept = 0 #(BYTE JoinAccept)//ÉêÇë״̬ WarRank = 0 #(BYTE WarRank)//ÁªÈüÅÅÃû TotalFightPower = 0 #(DWORD TotalFightPower)//×ÜÕ½Á¦£¬²»×ã1¸öÒڵIJ¿·Ö TotalFightPowerEx = 0 #(DWORD TotalFightPowerEx)//×ÜÕ½Á¦µã£¬1µã=1ÒÚ data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.FamilyIndex,_pos = CommFunc.ReadWORD(_lpData, _pos) self.FamilyID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.FamilyNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.FamilyName,_pos = CommFunc.ReadString(_lpData, _pos,self.FamilyNameLen) self.LeaderID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.LeaderNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LeaderName,_pos = CommFunc.ReadString(_lpData, _pos,self.LeaderNameLen) self.LeaderOfficialRank,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.FamilyLV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.FamilyMemberCount,_pos = CommFunc.ReadWORD(_lpData, _pos) self.JoinAccept,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.WarRank,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.TotalFightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.TotalFightPowerEx,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): self.FamilyIndex = 0 self.FamilyID = 0 self.FamilyNameLen = 0 self.FamilyName = "" self.LeaderID = 0 self.LeaderNameLen = 0 self.LeaderName = "" self.LeaderOfficialRank = 0 self.FamilyLV = 0 self.FamilyMemberCount = 0 self.JoinAccept = 0 self.WarRank = 0 self.TotalFightPower = 0 self.TotalFightPowerEx = 0 return def GetLength(self): length = 0 length += 2 length += 4 length += 1 length += len(self.FamilyName) length += 4 length += 1 length += len(self.LeaderName) length += 1 length += 2 length += 2 length += 1 length += 1 length += 4 length += 4 return length def GetBuffer(self): data = '' data = CommFunc.WriteWORD(data, self.FamilyIndex) data = CommFunc.WriteDWORD(data, self.FamilyID) data = CommFunc.WriteBYTE(data, self.FamilyNameLen) data = CommFunc.WriteString(data, self.FamilyNameLen, self.FamilyName) data = CommFunc.WriteDWORD(data, self.LeaderID) data = CommFunc.WriteBYTE(data, self.LeaderNameLen) data = CommFunc.WriteString(data, self.LeaderNameLen, self.LeaderName) data = CommFunc.WriteBYTE(data, self.LeaderOfficialRank) data = CommFunc.WriteWORD(data, self.FamilyLV) data = CommFunc.WriteWORD(data, self.FamilyMemberCount) data = CommFunc.WriteBYTE(data, self.JoinAccept) data = CommFunc.WriteBYTE(data, self.WarRank) data = CommFunc.WriteDWORD(data, self.TotalFightPower) data = CommFunc.WriteDWORD(data, self.TotalFightPowerEx) return data def OutputString(self): DumpString = ''' FamilyIndex:%d, FamilyID:%d, FamilyNameLen:%d, FamilyName:%s, LeaderID:%d, LeaderNameLen:%d, LeaderName:%s, LeaderOfficialRank:%d, FamilyLV:%d, FamilyMemberCount:%d, JoinAccept:%d, WarRank:%d, TotalFightPower:%d, TotalFightPowerEx:%d '''\ %( self.FamilyIndex, self.FamilyID, self.FamilyNameLen, self.FamilyName, self.LeaderID, self.LeaderNameLen, self.LeaderName, self.LeaderOfficialRank, self.FamilyLV, self.FamilyMemberCount, self.JoinAccept, self.WarRank, self.TotalFightPower, self.TotalFightPowerEx ) return DumpString class tagGCPyAllFamilyView(Structure): Head = tagHead() TotalCount = 0 #(DWORD TotalCount)//Ò»¹²ÓжàÉÙÒ³ CurPage = 0 #(WORD CurPage)//µ±Ç°µÚ¼¸Ò³, ÿҳ¸öÊý:FAMILY_VIEW_PAGE_COUNT PageCount = 0 #(BYTE PageCount)//ÕâÒ»Ò³ÓжàÉÙÊýÄ¿ Family = list() #(vector Family)//size = PageCount IsSearching = 0 #(BYTE IsSearching)//ÊÇ·ñÔÚÄ£ºýËÑË÷״̬Ï data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA4 self.Head.SubCmd = 0x08 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.TotalCount,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.CurPage,_pos = CommFunc.ReadWORD(_lpData, _pos) self.PageCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.PageCount): temFamily = tagGCPyFamilyView() _pos = temFamily.ReadData(_lpData, _pos) self.Family.append(temFamily) self.IsSearching,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA4 self.Head.SubCmd = 0x08 self.TotalCount = 0 self.CurPage = 0 self.PageCount = 0 self.Family = list() self.IsSearching = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 2 length += 1 for i in range(self.PageCount): length += self.Family[i].GetLength() length += 1 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.TotalCount) data = CommFunc.WriteWORD(data, self.CurPage) data = CommFunc.WriteBYTE(data, self.PageCount) for i in range(self.PageCount): data = CommFunc.WriteString(data, self.Family[i].GetLength(), self.Family[i].GetBuffer()) data = CommFunc.WriteBYTE(data, self.IsSearching) return data def OutputString(self): DumpString = ''' Head:%s, TotalCount:%d, CurPage:%d, PageCount:%d, Family:%s, IsSearching:%d '''\ %( self.Head.OutputString(), self.TotalCount, self.CurPage, self.PageCount, "...", self.IsSearching ) return DumpString m_NAtagGCPyAllFamilyView=tagGCPyAllFamilyView() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCPyAllFamilyView.Head.Cmd,m_NAtagGCPyAllFamilyView.Head.SubCmd))] = m_NAtagGCPyAllFamilyView #------------------------------------------------------ #A4 01 ²é¿´ÉêÇëÈë»áµÄÍæ¼ÒÐÅÏ¢ #tagGCViewFamilyRequestInfo class tagtMemberInfo(Structure): PlayerID = 0 #(DWORD PlayerID)//Íæ¼ÒID NameLen = 0 #(BYTE NameLen)//Ãû×Ö³¤¶È Name = "" #(String Name)//size=NameLen PlayerLV = 0 #(WORD PlayerLV)//Íæ¼ÒµÈ¼¶ PlayeJob = 0 #(BYTE PlayeJob)//Íæ¼ÒÖ°Òµ PlayeFightPower = 0 #(DWORD PlayeFightPower)//Íæ¼ÒÕ½¶·Á¦ RequestTime = 0 #(DWORD RequestTime)//ÉêÇëʱ¼ä IsOnLine = 0 #(BYTE IsOnLine)//ÊÇ·ñÔÚÏß data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Name,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen) self.PlayerLV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.PlayeJob,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.PlayeFightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.RequestTime,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.IsOnLine,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): self.PlayerID = 0 self.NameLen = 0 self.Name = "" self.PlayerLV = 0 self.PlayeJob = 0 self.PlayeFightPower = 0 self.RequestTime = 0 self.IsOnLine = 0 return def GetLength(self): length = 0 length += 4 length += 1 length += len(self.Name) length += 2 length += 1 length += 4 length += 4 length += 1 return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.PlayerID) data = CommFunc.WriteBYTE(data, self.NameLen) data = CommFunc.WriteString(data, self.NameLen, self.Name) data = CommFunc.WriteWORD(data, self.PlayerLV) data = CommFunc.WriteBYTE(data, self.PlayeJob) data = CommFunc.WriteDWORD(data, self.PlayeFightPower) data = CommFunc.WriteDWORD(data, self.RequestTime) data = CommFunc.WriteBYTE(data, self.IsOnLine) return data def OutputString(self): DumpString = ''' PlayerID:%d, NameLen:%d, Name:%s, PlayerLV:%d, PlayeJob:%d, PlayeFightPower:%d, RequestTime:%d, IsOnLine:%d '''\ %( self.PlayerID, self.NameLen, self.Name, self.PlayerLV, self.PlayeJob, self.PlayeFightPower, self.RequestTime, self.IsOnLine ) return DumpString class tagGCViewFamilyRequestInfo(Structure): Head = tagHead() RequestMemberCount = 0 #(BYTE RequestMemberCount)//ÉêÇë³ÉÔ±µÄÊýÁ¿ MemberInfo = list() #(vector MemberInfo)//size = RequestMemberCount data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA4 self.Head.SubCmd = 0x01 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.RequestMemberCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.RequestMemberCount): temMemberInfo = tagtMemberInfo() _pos = temMemberInfo.ReadData(_lpData, _pos) self.MemberInfo.append(temMemberInfo) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA4 self.Head.SubCmd = 0x01 self.RequestMemberCount = 0 self.MemberInfo = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.RequestMemberCount): length += self.MemberInfo[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.RequestMemberCount) for i in range(self.RequestMemberCount): data = CommFunc.WriteString(data, self.MemberInfo[i].GetLength(), self.MemberInfo[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, RequestMemberCount:%d, MemberInfo:%s '''\ %( self.Head.OutputString(), self.RequestMemberCount, "..." ) return DumpString m_NAtagGCViewFamilyRequestInfo=tagGCViewFamilyRequestInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCViewFamilyRequestInfo.Head.Cmd,m_NAtagGCViewFamilyRequestInfo.Head.SubCmd))] = m_NAtagGCViewFamilyRequestInfo #------------------------------------------------------ # A9 09 ֪ͨBOSS¹Ø×¢¼Ç¼ #tagGCBossAttentionInfo class tagGCBossAttention(Structure): _pack_ = 1 _fields_ = [ ("BossID", c_int), # bossID ("AddState", c_ubyte), # ¹Ø×¢×´Ì¬ ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.BossID = 0 self.AddState = 0 return def GetLength(self): return sizeof(tagGCBossAttention) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A9 09 ֪ͨBOSS¹Ø×¢¼Ç¼ //tagGCBossAttentionInfo: BossID:%d, AddState:%d '''\ %( self.BossID, self.AddState ) return DumpString class tagGCBossAttentionInfo(Structure): Head = tagHead() BossCnt = 0 #(BYTE BossCnt)//boss¸öÊý BossList = list() #(vector BossList)//Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA9 self.Head.SubCmd = 0x09 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.BossCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.BossCnt): temBossList = tagGCBossAttention() _pos = temBossList.ReadData(_lpData, _pos) self.BossList.append(temBossList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA9 self.Head.SubCmd = 0x09 self.BossCnt = 0 self.BossList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.BossCnt): length += self.BossList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.BossCnt) for i in range(self.BossCnt): data = CommFunc.WriteString(data, self.BossList[i].GetLength(), self.BossList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, BossCnt:%d, BossList:%s '''\ %( self.Head.OutputString(), self.BossCnt, "..." ) return DumpString m_NAtagGCBossAttentionInfo=tagGCBossAttentionInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCBossAttentionInfo.Head.Cmd,m_NAtagGCBossAttentionInfo.Head.SubCmd))] = m_NAtagGCBossAttentionInfo #------------------------------------------------------ # A9 01 ÊÀ½çboss·ÖÁ÷Ïß·boss״̬ #tagGCBossShuntLineStateInfo class tagGCBossShuntLineState(Structure): BossID = 0 #(DWORD BossID)// bossID DeadLineCount = 0 #(BYTE DeadLineCount) DeadLineList = list() #(vector DeadLineList)// ÒÑËÀÍöµÄÏß·Áбí data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.BossID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.DeadLineCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.DeadLineCount): value,_pos=CommFunc.ReadBYTE(_lpData,_pos) self.DeadLineList.append(value) return _pos def Clear(self): self.BossID = 0 self.DeadLineCount = 0 self.DeadLineList = list() return def GetLength(self): length = 0 length += 4 length += 1 length += 1 * self.DeadLineCount return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.BossID) data = CommFunc.WriteBYTE(data, self.DeadLineCount) for i in range(self.DeadLineCount): data = CommFunc.WriteBYTE(data, self.DeadLineList[i]) return data def OutputString(self): DumpString = ''' BossID:%d, DeadLineCount:%d, DeadLineList:%s '''\ %( self.BossID, self.DeadLineCount, "..." ) return DumpString class tagGCBossShuntLineStateInfo(Structure): Head = tagHead() Count = 0 #(BYTE Count) BossLineStateInfo = list() #(vector BossLineStateInfo)//boss·ÖÁ÷Ïß·ÐÅÏ¢Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA9 self.Head.SubCmd = 0x01 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Count): temBossLineStateInfo = tagGCBossShuntLineState() _pos = temBossLineStateInfo.ReadData(_lpData, _pos) self.BossLineStateInfo.append(temBossLineStateInfo) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA9 self.Head.SubCmd = 0x01 self.Count = 0 self.BossLineStateInfo = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.Count): length += self.BossLineStateInfo[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.BossLineStateInfo[i].GetLength(), self.BossLineStateInfo[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Count:%d, BossLineStateInfo:%s '''\ %( self.Head.OutputString(), self.Count, "..." ) return DumpString m_NAtagGCBossShuntLineStateInfo=tagGCBossShuntLineStateInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCBossShuntLineStateInfo.Head.Cmd,m_NAtagGCBossShuntLineStateInfo.Head.SubCmd))] = m_NAtagGCBossShuntLineStateInfo #------------------------------------------------------ # A9 AC ½»Ò×ËùÎïÆ·×îгɽ»¼Û֪ͨ #tagGCBourseItemPrice class tagGCBourseItemPrice(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ItemID", c_int), #ÎïÆ·ID ("Price", c_int), #×îгɽ»µ¥¼Û ] def __init__(self): self.Clear() self.Cmd = 0xA9 self.SubCmd = 0xAC return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA9 self.SubCmd = 0xAC self.ItemID = 0 self.Price = 0 return def GetLength(self): return sizeof(tagGCBourseItemPrice) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A9 AC ½»Ò×ËùÎïÆ·×îгɽ»¼Û֪ͨ //tagGCBourseItemPrice: Cmd:%s, SubCmd:%s, ItemID:%d, Price:%d '''\ %( self.Cmd, self.SubCmd, self.ItemID, self.Price ) return DumpString m_NAtagGCBourseItemPrice=tagGCBourseItemPrice() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCBourseItemPrice.Cmd,m_NAtagGCBourseItemPrice.SubCmd))] = m_NAtagGCBourseItemPrice #------------------------------------------------------ # A9 AB ½»Ò×Ëù½»Ò׼Ǽ֪ͨ #tagGCBourseRecordInfo class tagGCBourseRecord(Structure): Type = 0 #(BYTE Type)//ÀàÐÍ 0-¹ºÂò 1-Âô³ö Timestamp = 0 #(DWORD Timestamp)//ʱ¼ä´Á TradeTax = 0 #(DWORD TradeTax)//½»Ò×˰ TradeMoney = 0 #(DWORD TradeMoney)//ÊÕÖ§ ItemDataLen = 0 #(WORD ItemDataLen) ItemData = "" #(String ItemData)//×Ô¶¨ÒåÊý¾Ý data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.Type,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Timestamp,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.TradeTax,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.TradeMoney,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ItemDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos) self.ItemData,_pos = CommFunc.ReadString(_lpData, _pos,self.ItemDataLen) return _pos def Clear(self): self.Type = 0 self.Timestamp = 0 self.TradeTax = 0 self.TradeMoney = 0 self.ItemDataLen = 0 self.ItemData = "" return def GetLength(self): length = 0 length += 1 length += 4 length += 4 length += 4 length += 2 length += len(self.ItemData) return length def GetBuffer(self): data = '' data = CommFunc.WriteBYTE(data, self.Type) data = CommFunc.WriteDWORD(data, self.Timestamp) data = CommFunc.WriteDWORD(data, self.TradeTax) data = CommFunc.WriteDWORD(data, self.TradeMoney) data = CommFunc.WriteWORD(data, self.ItemDataLen) data = CommFunc.WriteString(data, self.ItemDataLen, self.ItemData) return data def OutputString(self): DumpString = ''' Type:%d, Timestamp:%d, TradeTax:%d, TradeMoney:%d, ItemDataLen:%d, ItemData:%s '''\ %( self.Type, self.Timestamp, self.TradeTax, self.TradeMoney, self.ItemDataLen, self.ItemData ) return DumpString class tagGCBourseRecordInfo(Structure): Head = tagHead() Count = 0 #(BYTE Count)//ÊýÁ¿ RecordList = list() #(vector RecordList)//size = Count data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA9 self.Head.SubCmd = 0xAB return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Count): temRecordList = tagGCBourseRecord() _pos = temRecordList.ReadData(_lpData, _pos) self.RecordList.append(temRecordList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA9 self.Head.SubCmd = 0xAB self.Count = 0 self.RecordList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.Count): length += self.RecordList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.RecordList[i].GetLength(), self.RecordList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Count:%d, RecordList:%s '''\ %( self.Head.OutputString(), self.Count, "..." ) return DumpString m_NAtagGCBourseRecordInfo=tagGCBourseRecordInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCBourseRecordInfo.Head.Cmd,m_NAtagGCBourseRecordInfo.Head.SubCmd))] = m_NAtagGCBourseRecordInfo #------------------------------------------------------ #A9 AA ɾ³ýÓʼþ֪ͨ #tagGCDelCompensationResult class tagGCDelCompensationResult(Structure): Head = tagHead() GUID = "" #(char GUID[40]) Result = 0 #(BYTE Result)// ɾ³ý״̬ 0 ²»³É¹¦ 1³É¹¦ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA9 self.Head.SubCmd = 0xAA return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.GUID,_pos = CommFunc.ReadString(_lpData, _pos,40) self.Result,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA9 self.Head.SubCmd = 0xAA self.GUID = "" self.Result = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 40 length += 1 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteString(data, 40, self.GUID) data = CommFunc.WriteBYTE(data, self.Result) return data def OutputString(self): DumpString = ''' Head:%s, GUID:%s, Result:%d '''\ %( self.Head.OutputString(), self.GUID, self.Result ) return DumpString m_NAtagGCDelCompensationResult=tagGCDelCompensationResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCDelCompensationResult.Head.Cmd,m_NAtagGCDelCompensationResult.Head.SubCmd))] = m_NAtagGCDelCompensationResult #------------------------------------------------------ # A9 A9 ֪ͨºÃÓÑ»¥Ôù¾«Á¦ÐÅÏ¢ #tagGCFriendSendEnergyInfo class tagGCFriendSendEnergyInfo(Structure): Head = tagHead() DataSize = 0 #(DWORD DataSize) SendData = "" #(String SendData)//ÔùËͼǼ RecvSize = 0 #(DWORD RecvSize) RecvData = "" #(String RecvData)//¿É½ÓÊռǼ HasRecvCnt = 0 #(DWORD HasRecvCnt)//ÒѽÓÊÕ¸öÊý data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA9 self.Head.SubCmd = 0xA9 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.DataSize,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.SendData,_pos = CommFunc.ReadString(_lpData, _pos,self.DataSize) self.RecvSize,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.RecvData,_pos = CommFunc.ReadString(_lpData, _pos,self.RecvSize) self.HasRecvCnt,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA9 self.Head.SubCmd = 0xA9 self.DataSize = 0 self.SendData = "" self.RecvSize = 0 self.RecvData = "" self.HasRecvCnt = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += len(self.SendData) length += 4 length += len(self.RecvData) length += 4 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.DataSize) data = CommFunc.WriteString(data, self.DataSize, self.SendData) data = CommFunc.WriteDWORD(data, self.RecvSize) data = CommFunc.WriteString(data, self.RecvSize, self.RecvData) data = CommFunc.WriteDWORD(data, self.HasRecvCnt) return data def OutputString(self): DumpString = ''' Head:%s, DataSize:%d, SendData:%s, RecvSize:%d, RecvData:%s, HasRecvCnt:%d '''\ %( self.Head.OutputString(), self.DataSize, self.SendData, self.RecvSize, self.RecvData, self.HasRecvCnt ) return DumpString m_NAtagGCFriendSendEnergyInfo=tagGCFriendSendEnergyInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCFriendSendEnergyInfo.Head.Cmd,m_NAtagGCFriendSendEnergyInfo.Head.SubCmd))] = m_NAtagGCFriendSendEnergyInfo #------------------------------------------------------ #A9 02 ÊÀ½çbossÏà¹ØÐÅÏ¢ #tagGCGameWorldBossInfo class tagBossInfoObj(Structure): BossID = 0 #(DWORD BossID)// bossID IsAlive = 0 #(BYTE IsAlive)// ÊÇ·ñ´æ»î RecordLen = 0 #(WORD RecordLen)// ³¤¶È KillRecord = "" #(String KillRecord)// ×î½ü»÷ɱ¼Ç¼ʱ¼äÍæ¼ÒÃûsize = RecordLen RefreshSecond = 0 #(DWORD RefreshSecond)// ˢе¹¼ÆÊ±, Ãë data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.BossID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.IsAlive,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.RecordLen,_pos = CommFunc.ReadWORD(_lpData, _pos) self.KillRecord,_pos = CommFunc.ReadString(_lpData, _pos,self.RecordLen) self.RefreshSecond,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): self.BossID = 0 self.IsAlive = 0 self.RecordLen = 0 self.KillRecord = "" self.RefreshSecond = 0 return def GetLength(self): length = 0 length += 4 length += 1 length += 2 length += len(self.KillRecord) length += 4 return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.BossID) data = CommFunc.WriteBYTE(data, self.IsAlive) data = CommFunc.WriteWORD(data, self.RecordLen) data = CommFunc.WriteString(data, self.RecordLen, self.KillRecord) data = CommFunc.WriteDWORD(data, self.RefreshSecond) return data def OutputString(self): DumpString = ''' BossID:%d, IsAlive:%d, RecordLen:%d, KillRecord:%s, RefreshSecond:%d '''\ %( self.BossID, self.IsAlive, self.RecordLen, self.KillRecord, self.RefreshSecond ) return DumpString class tagGCGameWorldBossInfo(Structure): Head = tagHead() BossCnt = 0 #(BYTE BossCnt)//bossÐÅÏ¢¸öÊý BossInfoList = list() #(vector BossInfoList)//bossÐÅÏ¢Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA9 self.Head.SubCmd = 0x02 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.BossCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.BossCnt): temBossInfoList = tagBossInfoObj() _pos = temBossInfoList.ReadData(_lpData, _pos) self.BossInfoList.append(temBossInfoList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA9 self.Head.SubCmd = 0x02 self.BossCnt = 0 self.BossInfoList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.BossCnt): length += self.BossInfoList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.BossCnt) for i in range(self.BossCnt): data = CommFunc.WriteString(data, self.BossInfoList[i].GetLength(), self.BossInfoList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, BossCnt:%d, BossInfoList:%s '''\ %( self.Head.OutputString(), self.BossCnt, "..." ) return DumpString m_NAtagGCGameWorldBossInfo=tagGCGameWorldBossInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCGameWorldBossInfo.Head.Cmd,m_NAtagGCGameWorldBossInfo.Head.SubCmd))] = m_NAtagGCGameWorldBossInfo #------------------------------------------------------ # A9 08 ¶É½Ù¸±±¾»¤·¨Í¨Öª #tagGCRealmFBHelpInfo class tagGCRealmFBHelpInfo(Structure): Head = tagHead() PlayerName = "" #(char PlayerName[33])//Íæ¼ÒÃû×Ö PlayerID = 0 #(DWORD PlayerID)//Íæ¼ÒID RealmLV = 0 #(BYTE RealmLV)//Íæ¼Ò¾³½ç Job = 0 #(BYTE Job)//Íæ¼ÒÖ°Òµ JobRank = 0 #(BYTE JobRank)//Íæ¼ÒÖ°Òµ½×¼¶ AtkAdd = 0 #(BYTE AtkAdd)//»ñµÃ¼Ó³É data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA9 self.Head.SubCmd = 0x08 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33) self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.RealmLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.JobRank,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.AtkAdd,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA9 self.Head.SubCmd = 0x08 self.PlayerName = "" self.PlayerID = 0 self.RealmLV = 0 self.Job = 0 self.JobRank = 0 self.AtkAdd = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 33 length += 4 length += 1 length += 1 length += 1 length += 1 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteString(data, 33, self.PlayerName) data = CommFunc.WriteDWORD(data, self.PlayerID) data = CommFunc.WriteBYTE(data, self.RealmLV) data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteBYTE(data, self.JobRank) data = CommFunc.WriteBYTE(data, self.AtkAdd) return data def OutputString(self): DumpString = ''' Head:%s, PlayerName:%s, PlayerID:%d, RealmLV:%d, Job:%d, JobRank:%d, AtkAdd:%d '''\ %( self.Head.OutputString(), self.PlayerName, self.PlayerID, self.RealmLV, self.Job, self.JobRank, self.AtkAdd ) return DumpString m_NAtagGCRealmFBHelpInfo=tagGCRealmFBHelpInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCRealmFBHelpInfo.Head.Cmd,m_NAtagGCRealmFBHelpInfo.Head.SubCmd))] = m_NAtagGCRealmFBHelpInfo #------------------------------------------------------ # A9 A7 ֪ͨ¿ÉÇÀµÄºì°üÐÅÏ¢ #tagGCGrabRedPacketInfo class tagGCGrabRedPacketInfo(Structure): Head = tagHead() RedPacketCnt = 0 #(DWORD RedPacketCnt)//¿ÉÇÀºì°ü¸öÊý StrLen = 0 #(WORD StrLen)//×Ö·û´®³¤¶È OwnerName = "" #(String OwnerName)//ºì°üÖ÷ÈËÃû×Ö RedPacketID = 0 #(DWORD RedPacketID)//¿ÉÇÀºì°üID data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA9 self.Head.SubCmd = 0xA7 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.RedPacketCnt,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.StrLen,_pos = CommFunc.ReadWORD(_lpData, _pos) self.OwnerName,_pos = CommFunc.ReadString(_lpData, _pos,self.StrLen) self.RedPacketID,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA9 self.Head.SubCmd = 0xA7 self.RedPacketCnt = 0 self.StrLen = 0 self.OwnerName = "" self.RedPacketID = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 2 length += len(self.OwnerName) length += 4 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.RedPacketCnt) data = CommFunc.WriteWORD(data, self.StrLen) data = CommFunc.WriteString(data, self.StrLen, self.OwnerName) data = CommFunc.WriteDWORD(data, self.RedPacketID) return data def OutputString(self): DumpString = ''' Head:%s, RedPacketCnt:%d, StrLen:%d, OwnerName:%s, RedPacketID:%d '''\ %( self.Head.OutputString(), self.RedPacketCnt, self.StrLen, self.OwnerName, self.RedPacketID ) return DumpString m_NAtagGCGrabRedPacketInfo=tagGCGrabRedPacketInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCGrabRedPacketInfo.Head.Cmd,m_NAtagGCGrabRedPacketInfo.Head.SubCmd))] = m_NAtagGCGrabRedPacketInfo #------------------------------------------------------ # A9 A6 ֪ͨÇÀºì°ü½á¹û #tagGCGrabRedPacketResult class tagGCGrabRedPacketResult(Structure): Head = tagHead() StrLen = 0 #(WORD StrLen)//×Ö·û´®³¤¶È OwnerName = "" #(String OwnerName)//ºì°üÖ÷ÈËÃû×Ö TotalMoney = 0 #(DWORD TotalMoney)//ºì°ü×ܶî DataSize = 0 #(DWORD DataSize) GrabInfo = "" #(String GrabInfo)//ÇÀºì°ü¾ßÌå½á¹û data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA9 self.Head.SubCmd = 0xA6 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.StrLen,_pos = CommFunc.ReadWORD(_lpData, _pos) self.OwnerName,_pos = CommFunc.ReadString(_lpData, _pos,self.StrLen) self.TotalMoney,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.DataSize,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.GrabInfo,_pos = CommFunc.ReadString(_lpData, _pos,self.DataSize) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA9 self.Head.SubCmd = 0xA6 self.StrLen = 0 self.OwnerName = "" self.TotalMoney = 0 self.DataSize = 0 self.GrabInfo = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 length += len(self.OwnerName) length += 4 length += 4 length += len(self.GrabInfo) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteWORD(data, self.StrLen) data = CommFunc.WriteString(data, self.StrLen, self.OwnerName) data = CommFunc.WriteDWORD(data, self.TotalMoney) data = CommFunc.WriteDWORD(data, self.DataSize) data = CommFunc.WriteString(data, self.DataSize, self.GrabInfo) return data def OutputString(self): DumpString = ''' Head:%s, StrLen:%d, OwnerName:%s, TotalMoney:%d, DataSize:%d, GrabInfo:%s '''\ %( self.Head.OutputString(), self.StrLen, self.OwnerName, self.TotalMoney, self.DataSize, self.GrabInfo ) return DumpString m_NAtagGCGrabRedPacketResult=tagGCGrabRedPacketResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCGrabRedPacketResult.Head.Cmd,m_NAtagGCGrabRedPacketResult.Head.SubCmd))] = m_NAtagGCGrabRedPacketResult #------------------------------------------------------ #A9 05 ÌìÌݾº¼¼³¡Ã¿ÈÕ½±ÀøÐÅÏ¢#tagGCHighLadderRewardInfo class tagGCHighLadderRewardInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("hadGot", c_ubyte), #ÊÇ·ñÒÑÁìÈ¡ ("Order", c_ushort), #½±ÀøÅÅÃû ] def __init__(self): self.Clear() self.Cmd = 0xA9 self.SubCmd = 0x05 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA9 self.SubCmd = 0x05 self.hadGot = 0 self.Order = 0 return def GetLength(self): return sizeof(tagGCHighLadderRewardInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//A9 05 ÌìÌݾº¼¼³¡Ã¿ÈÕ½±ÀøÐÅÏ¢//tagGCHighLadderRewardInfo: Cmd:%s, SubCmd:%s, hadGot:%d, Order:%d '''\ %( self.Cmd, self.SubCmd, self.hadGot, self.Order ) return DumpString m_NAtagGCHighLadderRewardInfo=tagGCHighLadderRewardInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCHighLadderRewardInfo.Cmd,m_NAtagGCHighLadderRewardInfo.SubCmd))] = m_NAtagGCHighLadderRewardInfo #------------------------------------------------------ #A9 03 ¿ª·þ»î¶¯½±ÀøÊýÁ¿Ë¢ÐÂ#tagGCOpenServerCampaignAwardCount class tagGCOpenServerCampaignAwardCount(Structure): Head = tagHead() CampaignType = 0 #(BYTE CampaignType)//½±ÀøÀàÐÍ AwardTypeCount = 0 #(BYTE AwardTypeCount)//½±Æ·ÖÖÀàÊýÁ¿ GotCountList = list() #(vector GotCountList)//½±Æ·ÒÑÁìÈ¡ÊýÁ¿ÁÐ±í£¬¸ù¾ÝÖÖÀàË÷ÒýÒÀ´Î data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA9 self.Head.SubCmd = 0x03 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.CampaignType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.AwardTypeCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.AwardTypeCount): value,_pos=CommFunc.ReadDWORD(_lpData,_pos) self.GotCountList.append(value) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA9 self.Head.SubCmd = 0x03 self.CampaignType = 0 self.AwardTypeCount = 0 self.GotCountList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 1 length += 4 * self.AwardTypeCount return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.CampaignType) data = CommFunc.WriteBYTE(data, self.AwardTypeCount) for i in range(self.AwardTypeCount): data = CommFunc.WriteDWORD(data, self.GotCountList[i]) return data def OutputString(self): DumpString = ''' Head:%s, CampaignType:%d, AwardTypeCount:%d, GotCountList:%s '''\ %( self.Head.OutputString(), self.CampaignType, self.AwardTypeCount, "..." ) return DumpString m_NAtagGCOpenServerCampaignAwardCount=tagGCOpenServerCampaignAwardCount() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCOpenServerCampaignAwardCount.Head.Cmd,m_NAtagGCOpenServerCampaignAwardCount.Head.SubCmd))] = m_NAtagGCOpenServerCampaignAwardCount #------------------------------------------------------ # A9 A2 ÅÅÐаñÐÅÏ¢#tagPYBillboardData class tagPYBillboardInfo(Structure): OrderIndex = 0 #(DWORD OrderIndex)//Ãû´ÎË÷Òý£¬0´ú±íµÚÒ»Ãû ID = 0 #(DWORD ID) ID2 = 0 #(DWORD ID2) Name1 = "" #(char Name1[33])//Ãû×Ö1£¬ÓÃÀ´ÏÔʾÅÅÐò¶ÔÏóÃû×Ö Name2 = "" #(char Name2[33])//Ãû×Ö2 Type2 = 0 #(BYTE Type2)//¸½¼ÓÀàÐÍ£¬ÓÃÀ´±íʾÅÅÐò¶ÔÏóµÄÀàÐÍ£¬±ÈÈç£¬Íæ¼ÒËùÊôÖ°ÒµÃÅÅÉ£¬³èÎïÀàÐÍµÈ Value1 = 0 #(DWORD Value1)//ÅÅÐòÒÀÀµµÄÖµ£¬±ÈÈ磬µÈ¼¶ Value2 = 0 #(DWORD Value2)//ÅÅÐòÒÀÀµµÄÖµ£¬±ÈÈ磬ս¶·Á¦ CmpValue = 0 #(DWORD CmpValue)// ±È½ÏȨֵ CmpValue2 = 0 #(DWORD CmpValue2)// ±È½ÏȨֵ CmpValue3 = 0 #(DWORD CmpValue3)// ±È½ÏȨֵ data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.OrderIndex,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ID2,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Name1,_pos = CommFunc.ReadString(_lpData, _pos,33) self.Name2,_pos = CommFunc.ReadString(_lpData, _pos,33) self.Type2,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Value1,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Value2,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.CmpValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.CmpValue2,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.CmpValue3,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): self.OrderIndex = 0 self.ID = 0 self.ID2 = 0 self.Name1 = "" self.Name2 = "" self.Type2 = 0 self.Value1 = 0 self.Value2 = 0 self.CmpValue = 0 self.CmpValue2 = 0 self.CmpValue3 = 0 return def GetLength(self): length = 0 length += 4 length += 4 length += 4 length += 33 length += 33 length += 1 length += 4 length += 4 length += 4 length += 4 length += 4 return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.OrderIndex) data = CommFunc.WriteDWORD(data, self.ID) data = CommFunc.WriteDWORD(data, self.ID2) data = CommFunc.WriteString(data, 33, self.Name1) data = CommFunc.WriteString(data, 33, self.Name2) data = CommFunc.WriteBYTE(data, self.Type2) data = CommFunc.WriteDWORD(data, self.Value1) data = CommFunc.WriteDWORD(data, self.Value2) data = CommFunc.WriteDWORD(data, self.CmpValue) data = CommFunc.WriteDWORD(data, self.CmpValue2) data = CommFunc.WriteDWORD(data, self.CmpValue3) return data def OutputString(self): DumpString = ''' OrderIndex:%d, ID:%d, ID2:%d, Name1:%s, Name2:%s, Type2:%d, Value1:%d, Value2:%d, CmpValue:%d, CmpValue2:%d, CmpValue3:%d '''\ %( self.OrderIndex, self.ID, self.ID2, self.Name1, self.Name2, self.Type2, self.Value1, self.Value2, self.CmpValue, self.CmpValue2, self.CmpValue3 ) return DumpString class tagPYBillboardData(Structure): Head = tagHead() IsWatchSelf = 0 #(BYTE IsWatchSelf) BillboardCount = 0 #(BYTE BillboardCount) Type = 0 #(BYTE Type)//ÅÅÐаñÀàÐÍ Billboard = list() #(vector Billboard)//size = BillboardCount data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA9 self.Head.SubCmd = 0xA2 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.IsWatchSelf,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.BillboardCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Type,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.BillboardCount): temBillboard = tagPYBillboardInfo() _pos = temBillboard.ReadData(_lpData, _pos) self.Billboard.append(temBillboard) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA9 self.Head.SubCmd = 0xA2 self.IsWatchSelf = 0 self.BillboardCount = 0 self.Type = 0 self.Billboard = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 1 length += 1 for i in range(self.BillboardCount): length += self.Billboard[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.IsWatchSelf) data = CommFunc.WriteBYTE(data, self.BillboardCount) data = CommFunc.WriteBYTE(data, self.Type) for i in range(self.BillboardCount): data = CommFunc.WriteString(data, self.Billboard[i].GetLength(), self.Billboard[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, IsWatchSelf:%d, BillboardCount:%d, Type:%d, Billboard:%s '''\ %( self.Head.OutputString(), self.IsWatchSelf, self.BillboardCount, self.Type, "..." ) return DumpString m_NAtagPYBillboardData=tagPYBillboardData() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPYBillboardData.Head.Cmd,m_NAtagPYBillboardData.Head.SubCmd))] = m_NAtagPYBillboardData #------------------------------------------------------ # A9 A3 À®°ÈÁÄÌìÄÚÈÝ #tagGCPYSpeakerContent class tagGCPYSpeakerContent(Structure): Head = tagHead() AccIDLen = 0 #(BYTE AccIDLen) AccID = "" #(String AccID)//size = AccIDLen PlayerID = 0 #(DWORD PlayerID)// ×Ó·þµÄÍæ¼ÒID£¬¸ÃIDÓÐֵʱΪ±¾·þÍæ¼Ò NameLen = 0 #(BYTE NameLen) Name = "" #(String Name)//size = NameLen SpeakerType = 0 #(BYTE SpeakerType) TextLen = 0 #(WORD TextLen) Text = "" #(String Text)//size = TextLen ExtraValue = 0 #(DWORD ExtraValue)//¸½¼ÓÖµ Extras = "" #(char Extras[256])//¸½¼ÓÖµÁбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA9 self.Head.SubCmd = 0xA3 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.AccIDLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.AccID,_pos = CommFunc.ReadString(_lpData, _pos,self.AccIDLen) self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Name,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen) self.SpeakerType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.TextLen,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Text,_pos = CommFunc.ReadString(_lpData, _pos,self.TextLen) self.ExtraValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Extras,_pos = CommFunc.ReadString(_lpData, _pos,256) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA9 self.Head.SubCmd = 0xA3 self.AccIDLen = 0 self.AccID = "" self.PlayerID = 0 self.NameLen = 0 self.Name = "" self.SpeakerType = 0 self.TextLen = 0 self.Text = "" self.ExtraValue = 0 self.Extras = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += len(self.AccID) length += 4 length += 1 length += len(self.Name) length += 1 length += 2 length += len(self.Text) length += 4 length += 256 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.AccIDLen) data = CommFunc.WriteString(data, self.AccIDLen, self.AccID) data = CommFunc.WriteDWORD(data, self.PlayerID) data = CommFunc.WriteBYTE(data, self.NameLen) data = CommFunc.WriteString(data, self.NameLen, self.Name) data = CommFunc.WriteBYTE(data, self.SpeakerType) data = CommFunc.WriteWORD(data, self.TextLen) data = CommFunc.WriteString(data, self.TextLen, self.Text) data = CommFunc.WriteDWORD(data, self.ExtraValue) data = CommFunc.WriteString(data, 256, self.Extras) return data def OutputString(self): DumpString = ''' Head:%s, AccIDLen:%d, AccID:%s, PlayerID:%d, NameLen:%d, Name:%s, SpeakerType:%d, TextLen:%d, Text:%s, ExtraValue:%d, Extras:%s '''\ %( self.Head.OutputString(), self.AccIDLen, self.AccID, self.PlayerID, self.NameLen, self.Name, self.SpeakerType, self.TextLen, self.Text, self.ExtraValue, self.Extras ) return DumpString m_NAtagGCPYSpeakerContent=tagGCPYSpeakerContent() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCPYSpeakerContent.Head.Cmd,m_NAtagGCPYSpeakerContent.Head.SubCmd))] = m_NAtagGCPYSpeakerContent #------------------------------------------------------ #A9 A1 ²éÑ¯Íæ¼Ò²¹³¥½á¹û·â°ü#tagGCQueryCompensationResult class tagGCCompensationItem(Structure): ItemID = 0 #(DWORD ItemID)//ÎïÆ·ID Count = 0 #(DWORD Count)//ÊýÁ¿ IsBind = 0 #(BYTE IsBind)//ÊÇ·ñ°ó¶¨ UserDataLen = 0 #(DWORD 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.ReadDWORD(_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 += 4 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.WriteDWORD(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 tagGCCompensationPack(Structure): GUID = "" #(char GUID[40])//²¹³¥±êʶ CreateTime = "" #(char CreateTime[30])//Óʼþ½ÓÊÕʱ¼ä TextLen = 0 #(DWORD TextLen)//ÎÄ×ÖÄÚÈݳ¤¶È Text = "" #(String Text)//ÎÄ×ÖÄÚÈÝ Count = 0 #(BYTE Count)//µ±Ç°²¹³¥ÎïÆ·Êý IsRead = 0 #(BYTE IsRead)//ÒѶÁ״̬ 0 δ¶ÁÈ¡ 1ÒѶÁÈ¡ Gold = 0 #(DWORD Gold)//ÏÉÓñ GoldPaper = 0 #(DWORD GoldPaper)//°ó¶¨ÏÉÓñ Silver = 0 #(DWORD Silver)//Í­Ç® Items = list() #(vector 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,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.IsRead,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Gold,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.GoldPaper,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Silver,_pos = CommFunc.ReadDWORD(_lpData, _pos) for i in range(self.Count): temItems = tagGCCompensationItem() _pos = temItems.ReadData(_lpData, _pos) self.Items.append(temItems) return _pos def Clear(self): self.GUID = "" self.CreateTime = "" self.TextLen = 0 self.Text = "" self.Count = 0 self.IsRead = 0 self.Gold = 0 self.GoldPaper = 0 self.Silver = 0 self.Items = list() return def GetLength(self): length = 0 length += 40 length += 30 length += 4 length += len(self.Text) length += 1 length += 1 length += 4 length += 4 length += 4 for i in range(self.Count): length += self.Items[i].GetLength() return length def GetBuffer(self): data = '' 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) data = CommFunc.WriteBYTE(data, self.IsRead) data = CommFunc.WriteDWORD(data, self.Gold) data = CommFunc.WriteDWORD(data, self.GoldPaper) data = CommFunc.WriteDWORD(data, self.Silver) 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, CreateTime:%s, TextLen:%d, Text:%s, Count:%d, IsRead:%d, Gold:%d, GoldPaper:%d, Silver:%d, Items:%s '''\ %( self.GUID, self.CreateTime, self.TextLen, self.Text, self.Count, self.IsRead, self.Gold, self.GoldPaper, self.Silver, "..." ) return DumpString class tagGCQueryCompensationResult(Structure): Head = tagHead() Count = 0 #(WORD Count)//¿ÉÁìÈ¡²¹³¥Êý PackList = list() #(vector PackList)//²¹³¥ÎïÆ·ÐÅÏ¢ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA9 self.Head.SubCmd = 0xA1 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): temPackList = tagGCCompensationPack() _pos = temPackList.ReadData(_lpData, _pos) self.PackList.append(temPackList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA9 self.Head.SubCmd = 0xA1 self.Count = 0 self.PackList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 for i in range(self.Count): length += self.PackList[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.PackList[i].GetLength(), self.PackList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Count:%d, PackList:%s '''\ %( self.Head.OutputString(), self.Count, "..." ) return DumpString m_NAtagGCQueryCompensationResult=tagGCQueryCompensationResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCQueryCompensationResult.Head.Cmd,m_NAtagGCQueryCompensationResult.Head.SubCmd))] = m_NAtagGCQueryCompensationResult #------------------------------------------------------ # A9 A8 ֪ͨ¿ÉÌí¼ÓµÄºÃÓÑÐÅÏ¢ #tagGCRecommendFriendsInfo class tagRecommendFriendsData(Structure): ID = 0 #(DWORD ID) Name = "" #(char Name[33]) LV = 0 #(DWORD LV)//µÈ¼¶ Job = 0 #(BYTE Job) RealmLV = 0 #(WORD RealmLV)//¾³½ç data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.ID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Name,_pos = CommFunc.ReadString(_lpData, _pos,33) self.LV,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos) return _pos def Clear(self): self.ID = 0 self.Name = "" self.LV = 0 self.Job = 0 self.RealmLV = 0 return def GetLength(self): length = 0 length += 4 length += 33 length += 4 length += 1 length += 2 return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.ID) data = CommFunc.WriteString(data, 33, self.Name) data = CommFunc.WriteDWORD(data, self.LV) data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteWORD(data, self.RealmLV) return data def OutputString(self): DumpString = ''' ID:%d, Name:%s, LV:%d, Job:%d, RealmLV:%d '''\ %( self.ID, self.Name, self.LV, self.Job, self.RealmLV ) return DumpString class tagGCRecommendFriendsInfo(Structure): Head = tagHead() Cnt = 0 #(BYTE Cnt)//ÐÅÏ¢Êý FriendsList = list() #(vector FriendsList)//³ÉÔ±ÐÅÏ¢ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA9 self.Head.SubCmd = 0xA8 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Cnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Cnt): temFriendsList = tagRecommendFriendsData() _pos = temFriendsList.ReadData(_lpData, _pos) self.FriendsList.append(temFriendsList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA9 self.Head.SubCmd = 0xA8 self.Cnt = 0 self.FriendsList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.Cnt): length += self.FriendsList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.Cnt) for i in range(self.Cnt): data = CommFunc.WriteString(data, self.FriendsList[i].GetLength(), self.FriendsList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Cnt:%d, FriendsList:%s '''\ %( self.Head.OutputString(), self.Cnt, "..." ) return DumpString m_NAtagGCRecommendFriendsInfo=tagGCRecommendFriendsInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCRecommendFriendsInfo.Head.Cmd,m_NAtagGCRecommendFriendsInfo.Head.SubCmd))] = m_NAtagGCRecommendFriendsInfo #------------------------------------------------------ # A9 07 ¶¨Ê±É̵êˢе¹¼ÆÊ± #tagGCShopRefreshTimeList class tagGCShopRefreshTime(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ShopID", c_int), # É̵êID ("RemainSecond", c_int), # ¶àÉÙÃëºóˢР] def __init__(self): self.Clear() self.Cmd = 0xA9 self.SubCmd = 0x07 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA9 self.SubCmd = 0x07 self.ShopID = 0 self.RemainSecond = 0 return def GetLength(self): return sizeof(tagGCShopRefreshTime) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A9 07 ¶¨Ê±É̵êˢе¹¼ÆÊ± //tagGCShopRefreshTimeList: Cmd:%s, SubCmd:%s, ShopID:%d, RemainSecond:%d '''\ %( self.Cmd, self.SubCmd, self.ShopID, self.RemainSecond ) return DumpString class tagGCShopRefreshTimeList(Structure): Head = tagHead() ShopCnt = 0 #(BYTE ShopCnt)//É̵êÐÅÏ¢¸öÊý ShopTimeInfoList = list() #(vector ShopTimeInfoList)//É̵êÐÅÏ¢Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA9 self.Head.SubCmd = 0x07 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.ShopCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.ShopCnt): temShopTimeInfoList = tagGCShopRefreshTime() _pos = temShopTimeInfoList.ReadData(_lpData, _pos) self.ShopTimeInfoList.append(temShopTimeInfoList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA9 self.Head.SubCmd = 0x07 self.ShopCnt = 0 self.ShopTimeInfoList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.ShopCnt): length += self.ShopTimeInfoList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.ShopCnt) for i in range(self.ShopCnt): data = CommFunc.WriteString(data, self.ShopTimeInfoList[i].GetLength(), self.ShopTimeInfoList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, ShopCnt:%d, ShopTimeInfoList:%s '''\ %( self.Head.OutputString(), self.ShopCnt, "..." ) return DumpString m_NAtagGCShopRefreshTimeList=tagGCShopRefreshTimeList() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCShopRefreshTimeList.Head.Cmd,m_NAtagGCShopRefreshTimeList.Head.SubCmd))] = m_NAtagGCShopRefreshTimeList #------------------------------------------------------ #A9 21 ½ÇÉ«¸ÄÃû½á¹û #tagUpdatePlayerNameResult class tagUpdatePlayerNameResult(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Result", c_ubyte), #½ÇÉ«¸ÄÃû½á¹û ] def __init__(self): self.Clear() self.Cmd = 0xA9 self.SubCmd = 0x21 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA9 self.SubCmd = 0x21 self.Result = 0 return def GetLength(self): return sizeof(tagUpdatePlayerNameResult) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//A9 21 ½ÇÉ«¸ÄÃû½á¹û //tagUpdatePlayerNameResult: Cmd:%s, SubCmd:%s, Result:%d '''\ %( self.Cmd, self.SubCmd, self.Result ) return DumpString m_NAtagUpdatePlayerNameResult=tagUpdatePlayerNameResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagUpdatePlayerNameResult.Cmd,m_NAtagUpdatePlayerNameResult.SubCmd))] = m_NAtagUpdatePlayerNameResult #------------------------------------------------------ # AC 08 boss¸´»îµãÊý֪ͨ #tagGCBossRebornPoint class tagGCBossRebornPoint(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Point", c_int), # ¸´»îµãÊý ("TotalPoint", c_int), # ¸´»î×ܵãÊý ] def __init__(self): self.Clear() self.Cmd = 0xAC self.SubCmd = 0x08 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xAC self.SubCmd = 0x08 self.Point = 0 self.TotalPoint = 0 return def GetLength(self): return sizeof(tagGCBossRebornPoint) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AC 08 boss¸´»îµãÊý֪ͨ //tagGCBossRebornPoint: Cmd:%s, SubCmd:%s, Point:%d, TotalPoint:%d '''\ %( self.Cmd, self.SubCmd, self.Point, self.TotalPoint ) return DumpString m_NAtagGCBossRebornPoint=tagGCBossRebornPoint() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCBossRebornPoint.Cmd,m_NAtagGCBossRebornPoint.SubCmd))] = m_NAtagGCBossRebornPoint #------------------------------------------------------ # AC 09 ÏɽçÊ¢µä»î¶¯ÐÅÏ¢ #tagGCFairyCeremonyInfo class tagGCFairyCeremonyInfo(Structure): Head = tagHead() StartDate = "" #(char StartDate[10])// ¿ªÊ¼ÈÕÆÚ y-m-d EndtDate = "" #(char EndtDate[10])// ½áÊøÈÕÆÚ y-m-d WorldLV = 0 #(WORD WorldLV)// ÊÀ½çµÈ¼¶ LimitLV = 0 #(WORD LimitLV)// ÏÞÖÆµÈ¼¶ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xAC self.Head.SubCmd = 0x09 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10) self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10) self.WorldLV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xAC self.Head.SubCmd = 0x09 self.StartDate = "" self.EndtDate = "" self.WorldLV = 0 self.LimitLV = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 10 length += 10 length += 2 length += 2 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteString(data, 10, self.StartDate) data = CommFunc.WriteString(data, 10, self.EndtDate) data = CommFunc.WriteWORD(data, self.WorldLV) data = CommFunc.WriteWORD(data, self.LimitLV) return data def OutputString(self): DumpString = ''' Head:%s, StartDate:%s, EndtDate:%s, WorldLV:%d, LimitLV:%d '''\ %( self.Head.OutputString(), self.StartDate, self.EndtDate, self.WorldLV, self.LimitLV ) return DumpString m_NAtagGCFairyCeremonyInfo=tagGCFairyCeremonyInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCFairyCeremonyInfo.Head.Cmd,m_NAtagGCFairyCeremonyInfo.Head.SubCmd))] = m_NAtagGCFairyCeremonyInfo #------------------------------------------------------ # AC 02 ֪ͨÏÉħ֮ÕùÐÅÏ¢ #tagGCXMZZInfo class tagGCXMZZInfo(Structure): Head = tagHead() Len = 0 #(WORD Len) StageRecord = "" #(String StageRecord)// ½×¶Îʤ¸º¼Ç¼ Score1 = 0 #(DWORD Score1)// ÏɽçÕóÓª»ý·Ö Score2 = 0 #(DWORD Score2)// ħ½çÕóÓª»ý·Ö TopScore = 0 #(DWORD TopScore)// »ý·ÖµÚ1Ãû»ý·Ö TopName = "" #(char TopName[33])// »ý·ÖµÚ1ÃûÃû×Ö data = None def __init__(self): self.Clear() self.Head.Cmd = 0xAC self.Head.SubCmd = 0x02 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Len,_pos = CommFunc.ReadWORD(_lpData, _pos) self.StageRecord,_pos = CommFunc.ReadString(_lpData, _pos,self.Len) self.Score1,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Score2,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.TopScore,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.TopName,_pos = CommFunc.ReadString(_lpData, _pos,33) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xAC self.Head.SubCmd = 0x02 self.Len = 0 self.StageRecord = "" self.Score1 = 0 self.Score2 = 0 self.TopScore = 0 self.TopName = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 length += len(self.StageRecord) length += 4 length += 4 length += 4 length += 33 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteWORD(data, self.Len) data = CommFunc.WriteString(data, self.Len, self.StageRecord) data = CommFunc.WriteDWORD(data, self.Score1) data = CommFunc.WriteDWORD(data, self.Score2) data = CommFunc.WriteDWORD(data, self.TopScore) data = CommFunc.WriteString(data, 33, self.TopName) return data def OutputString(self): DumpString = ''' Head:%s, Len:%d, StageRecord:%s, Score1:%d, Score2:%d, TopScore:%d, TopName:%s '''\ %( self.Head.OutputString(), self.Len, self.StageRecord, self.Score1, self.Score2, self.TopScore, self.TopName ) return DumpString m_NAtagGCXMZZInfo=tagGCXMZZInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCXMZZInfo.Head.Cmd,m_NAtagGCXMZZInfo.Head.SubCmd))] = m_NAtagGCXMZZInfo #------------------------------------------------------ # AC 03 ֪ͨÏÉħ֮Õù×Ô¼ºÐÅÏ¢ #tagGCXMZZSelfInfo class tagGCXMZZSelfInfo(Structure): Head = tagHead() Faction = 0 #(BYTE Faction)// ËùÊôÕóÓª Score = 0 #(DWORD Score)// »ý·Ö WinCnt = 0 #(BYTE WinCnt)// ʤ³¡Êý WinCntAwardRecord = 0 #(DWORD WinCntAwardRecord)// ʤ³¡½±ÀøÁìÈ¡¼Ç¼ Len = 0 #(WORD Len)// Ѻע¼Ç¼ BetRecord = "" #(String BetRecord)// Ѻע¼Ç¼ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xAC self.Head.SubCmd = 0x03 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Faction,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Score,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.WinCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.WinCntAwardRecord,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Len,_pos = CommFunc.ReadWORD(_lpData, _pos) self.BetRecord,_pos = CommFunc.ReadString(_lpData, _pos,self.Len) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xAC self.Head.SubCmd = 0x03 self.Faction = 0 self.Score = 0 self.WinCnt = 0 self.WinCntAwardRecord = 0 self.Len = 0 self.BetRecord = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 4 length += 1 length += 4 length += 2 length += len(self.BetRecord) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.Faction) data = CommFunc.WriteDWORD(data, self.Score) data = CommFunc.WriteBYTE(data, self.WinCnt) data = CommFunc.WriteDWORD(data, self.WinCntAwardRecord) data = CommFunc.WriteWORD(data, self.Len) data = CommFunc.WriteString(data, self.Len, self.BetRecord) return data def OutputString(self): DumpString = ''' Head:%s, Faction:%d, Score:%d, WinCnt:%d, WinCntAwardRecord:%d, Len:%d, BetRecord:%s '''\ %( self.Head.OutputString(), self.Faction, self.Score, self.WinCnt, self.WinCntAwardRecord, self.Len, self.BetRecord ) return DumpString m_NAtagGCXMZZSelfInfo=tagGCXMZZSelfInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCXMZZSelfInfo.Head.Cmd,m_NAtagGCXMZZSelfInfo.Head.SubCmd))] = m_NAtagGCXMZZSelfInfo #------------------------------------------------------ # AC 01 ֪ͨÁìµØÕù¶áÕ¼ÁìÇé¿ö #tagGCManorWarInfo class tagGCManorInfo(Structure): Head = tagHead() MapID = 0 #(DWORD MapID)// ÁìµØµØÍ¼id FamilyID = 0 #(DWORD FamilyID)// Õ¼ÁìÕ½ÃËid FNameLen = 0 #(BYTE FNameLen)// Õ½ÃËÃû×Ö³¤¶È FamilyName = "" #(String FamilyName)// Õ½ÃËÃû size = FNameLen LNameLen = 0 #(BYTE LNameLen)// ÃËÖ÷Ãû×Ö³¤¶È LeaderName = "" #(String LeaderName)// ÃËÖ÷Ãû size = LNameLen OccupyDays = 0 #(WORD OccupyDays)// Á¬ÐøÕ¼ÁìÌìÊý LastFamilyID = 0 #(DWORD LastFamilyID)// ÉÏ´ÎÕ¼ÁìµÄÕ½ÃËid data = None def __init__(self): self.Clear() self.Head.Cmd = 0xAC self.Head.SubCmd = 0x01 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.MapID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.FamilyID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.FNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.FamilyName,_pos = CommFunc.ReadString(_lpData, _pos,self.FNameLen) self.LNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LeaderName,_pos = CommFunc.ReadString(_lpData, _pos,self.LNameLen) self.OccupyDays,_pos = CommFunc.ReadWORD(_lpData, _pos) self.LastFamilyID,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xAC self.Head.SubCmd = 0x01 self.MapID = 0 self.FamilyID = 0 self.FNameLen = 0 self.FamilyName = "" self.LNameLen = 0 self.LeaderName = "" self.OccupyDays = 0 self.LastFamilyID = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 4 length += 1 length += len(self.FamilyName) length += 1 length += len(self.LeaderName) length += 2 length += 4 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.MapID) data = CommFunc.WriteDWORD(data, self.FamilyID) data = CommFunc.WriteBYTE(data, self.FNameLen) data = CommFunc.WriteString(data, self.FNameLen, self.FamilyName) data = CommFunc.WriteBYTE(data, self.LNameLen) data = CommFunc.WriteString(data, self.LNameLen, self.LeaderName) data = CommFunc.WriteWORD(data, self.OccupyDays) data = CommFunc.WriteDWORD(data, self.LastFamilyID) return data def OutputString(self): DumpString = ''' Head:%s, MapID:%d, FamilyID:%d, FNameLen:%d, FamilyName:%s, LNameLen:%d, LeaderName:%s, OccupyDays:%d, LastFamilyID:%d '''\ %( self.Head.OutputString(), self.MapID, self.FamilyID, self.FNameLen, self.FamilyName, self.LNameLen, self.LeaderName, self.OccupyDays, self.LastFamilyID ) return DumpString class tagGCManorWarInfo(Structure): Head = tagHead() ManorCnt = 0 #(BYTE ManorCnt)//ÁìµØ¸öÊý ManorInfoList = list() #(vector ManorInfoList)//ÁìµØÐÅÏ¢Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xAC self.Head.SubCmd = 0x01 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.ManorCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.ManorCnt): temManorInfoList = tagGCManorInfo() _pos = temManorInfoList.ReadData(_lpData, _pos) self.ManorInfoList.append(temManorInfoList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xAC self.Head.SubCmd = 0x01 self.ManorCnt = 0 self.ManorInfoList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.ManorCnt): length += self.ManorInfoList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.ManorCnt) for i in range(self.ManorCnt): data = CommFunc.WriteString(data, self.ManorInfoList[i].GetLength(), self.ManorInfoList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, ManorCnt:%d, ManorInfoList:%s '''\ %( self.Head.OutputString(), self.ManorCnt, "..." ) return DumpString m_NAtagGCManorWarInfo=tagGCManorWarInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCManorWarInfo.Head.Cmd,m_NAtagGCManorWarInfo.Head.SubCmd))] = m_NAtagGCManorWarInfo #------------------------------------------------------ # AC 06 ¶à±¶¾­Ñé»î¶¯ÐÅÏ¢ #tagGCMultiExpRateInfo class tagGCMultiExpRateTime(Structure): StartTime = "" #(char StartTime[5])// ¿ªÊ¼Ê±¼ä H:M EndtTime = "" #(char EndtTime[5])// ½áÊøÊ±¼ä H:M data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.StartTime,_pos = CommFunc.ReadString(_lpData, _pos,5) self.EndtTime,_pos = CommFunc.ReadString(_lpData, _pos,5) return _pos def Clear(self): self.StartTime = "" self.EndtTime = "" return def GetLength(self): length = 0 length += 5 length += 5 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, 5, self.StartTime) data = CommFunc.WriteString(data, 5, self.EndtTime) return data def OutputString(self): DumpString = ''' StartTime:%s, EndtTime:%s '''\ %( self.StartTime, self.EndtTime ) return DumpString class tagGCMultiExpRateInfo(Structure): Head = tagHead() StartDate = "" #(char StartDate[10])// ¿ªÊ¼ÈÕÆÚ y-m-d EndtDate = "" #(char EndtDate[10])// ½áÊøÈÕÆÚ y-m-d ActivityTimeCount = 0 #(BYTE ActivityTimeCount) ActivityTime = list() #(vector ActivityTime)//»î¶¯Ê±¼ä LimitLV = 0 #(WORD LimitLV)// ÏÞÖÆµÈ¼¶ AddExpRate = 0 #(DWORD AddExpRate)// Ôö¼ÓµÄ¾­Ñé±¶ÂÊ£¬Íò·ÖÂÊ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xAC self.Head.SubCmd = 0x06 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10) self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10) self.ActivityTimeCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.ActivityTimeCount): temActivityTime = tagGCMultiExpRateTime() _pos = temActivityTime.ReadData(_lpData, _pos) self.ActivityTime.append(temActivityTime) self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.AddExpRate,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xAC self.Head.SubCmd = 0x06 self.StartDate = "" self.EndtDate = "" self.ActivityTimeCount = 0 self.ActivityTime = list() self.LimitLV = 0 self.AddExpRate = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 10 length += 10 length += 1 for i in range(self.ActivityTimeCount): length += self.ActivityTime[i].GetLength() length += 2 length += 4 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteString(data, 10, self.StartDate) data = CommFunc.WriteString(data, 10, self.EndtDate) data = CommFunc.WriteBYTE(data, self.ActivityTimeCount) for i in range(self.ActivityTimeCount): data = CommFunc.WriteString(data, self.ActivityTime[i].GetLength(), self.ActivityTime[i].GetBuffer()) data = CommFunc.WriteWORD(data, self.LimitLV) data = CommFunc.WriteDWORD(data, self.AddExpRate) return data def OutputString(self): DumpString = ''' Head:%s, StartDate:%s, EndtDate:%s, ActivityTimeCount:%d, ActivityTime:%s, LimitLV:%d, AddExpRate:%d '''\ %( self.Head.OutputString(), self.StartDate, self.EndtDate, self.ActivityTimeCount, "...", self.LimitLV, self.AddExpRate ) return DumpString m_NAtagGCMultiExpRateInfo=tagGCMultiExpRateInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCMultiExpRateInfo.Head.Cmd,m_NAtagGCMultiExpRateInfo.Head.SubCmd))] = m_NAtagGCMultiExpRateInfo #------------------------------------------------------ # AC 0A ¶à±¶ÐÞÐеã»î¶¯ÐÅÏ¢ #tagGCMultiRealmPointInfo class tagGCMultiRealmPointInfo(Structure): Head = tagHead() StartDate = "" #(char StartDate[10])// ¿ªÊ¼ÈÕÆÚ y-m-d EndtDate = "" #(char EndtDate[10])// ½áÊøÈÕÆÚ y-m-d Multiple = 0 #(BYTE Multiple)// ±¶Êý LimitLV = 0 #(WORD LimitLV)// ÏÞÖÆµÈ¼¶ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xAC self.Head.SubCmd = 0x0A return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10) self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10) self.Multiple,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xAC self.Head.SubCmd = 0x0A self.StartDate = "" self.EndtDate = "" self.Multiple = 0 self.LimitLV = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 10 length += 10 length += 1 length += 2 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteString(data, 10, self.StartDate) data = CommFunc.WriteString(data, 10, self.EndtDate) data = CommFunc.WriteBYTE(data, self.Multiple) data = CommFunc.WriteWORD(data, self.LimitLV) return data def OutputString(self): DumpString = ''' Head:%s, StartDate:%s, EndtDate:%s, Multiple:%d, LimitLV:%d '''\ %( self.Head.OutputString(), self.StartDate, self.EndtDate, self.Multiple, self.LimitLV ) return DumpString m_NAtagGCMultiRealmPointInfo=tagGCMultiRealmPointInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCMultiRealmPointInfo.Head.Cmd,m_NAtagGCMultiRealmPointInfo.Head.SubCmd))] = m_NAtagGCMultiRealmPointInfo #------------------------------------------------------ # AC 05 ºì°üɾ³ý #tagGCRedPacketDel class tagGCRedPacketDel(Structure): Head = tagHead() Cnt = 0 #(DWORD Cnt)// ¸öÊý DelRedPacketID = list() #(vector DelRedPacketID)// ºì°üID data = None def __init__(self): self.Clear() self.Head.Cmd = 0xAC self.Head.SubCmd = 0x05 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Cnt,_pos = CommFunc.ReadDWORD(_lpData, _pos) for i in range(self.Cnt): value,_pos=CommFunc.ReadDWORD(_lpData,_pos) self.DelRedPacketID.append(value) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xAC self.Head.SubCmd = 0x05 self.Cnt = 0 self.DelRedPacketID = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 4 * self.Cnt return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.Cnt) for i in range(self.Cnt): data = CommFunc.WriteDWORD(data, self.DelRedPacketID[i]) return data def OutputString(self): DumpString = ''' Head:%s, Cnt:%d, DelRedPacketID:%s '''\ %( self.Head.OutputString(), self.Cnt, "..." ) return DumpString m_NAtagGCRedPacketDel=tagGCRedPacketDel() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCRedPacketDel.Head.Cmd,m_NAtagGCRedPacketDel.Head.SubCmd))] = m_NAtagGCRedPacketDel #------------------------------------------------------ # AC 04 ֪ͨÏÉħ֮Õù¶ÔÕ½ÐÅÏ¢ #tagGCXMZZFightInfo class tagGCXMZZFightInfo(Structure): Head = tagHead() PlayerID = 0 #(DWORD PlayerID)//Íæ¼ÒID PropDataSize = 0 #(DWORD PropDataSize) PropData = "" #(String PropData)//ÊôÐԼǼ ItemDataSize = 0 #(DWORD ItemDataSize) ItemData = "" #(String ItemData)//ÎïÆ·¼Ç¼ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xAC self.Head.SubCmd = 0x04 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.PropDataSize,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.PropData,_pos = CommFunc.ReadString(_lpData, _pos,self.PropDataSize) self.ItemDataSize,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ItemData,_pos = CommFunc.ReadString(_lpData, _pos,self.ItemDataSize) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xAC self.Head.SubCmd = 0x04 self.PlayerID = 0 self.PropDataSize = 0 self.PropData = "" self.ItemDataSize = 0 self.ItemData = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 4 length += len(self.PropData) length += 4 length += len(self.ItemData) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.PlayerID) data = CommFunc.WriteDWORD(data, self.PropDataSize) data = CommFunc.WriteString(data, self.PropDataSize, self.PropData) data = CommFunc.WriteDWORD(data, self.ItemDataSize) data = CommFunc.WriteString(data, self.ItemDataSize, self.ItemData) return data def OutputString(self): DumpString = ''' Head:%s, PlayerID:%d, PropDataSize:%d, PropData:%s, ItemDataSize:%d, ItemData:%s '''\ %( self.Head.OutputString(), self.PlayerID, self.PropDataSize, self.PropData, self.ItemDataSize, self.ItemData ) return DumpString m_NAtagGCXMZZFightInfo=tagGCXMZZFightInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCXMZZFightInfo.Head.Cmd,m_NAtagGCXMZZFightInfo.Head.SubCmd))] = m_NAtagGCXMZZFightInfo #------------------------------------------------------ # AD 01 ÌØ»Ý»î¶¯ÐÅÏ¢ #tagGCTeHuiActivityInfoList class tagGCTeHuiActivityInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ActivityType", c_ubyte), # »î¶¯ÀàÐÍ ("ActivityValue", c_int), # »î¶¯Öµ ("StartDate", c_int), # ¿ªÊ¼Ê±¼ätime ("EndDate", c_int), # ½áÊøÊ±¼ätime ] def __init__(self): self.Clear() self.Cmd = 0xAD self.SubCmd = 0x01 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xAD self.SubCmd = 0x01 self.ActivityType = 0 self.ActivityValue = 0 self.StartDate = 0 self.EndDate = 0 return def GetLength(self): return sizeof(tagGCTeHuiActivityInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AD 01 ÌØ»Ý»î¶¯ÐÅÏ¢ //tagGCTeHuiActivityInfoList: Cmd:%s, SubCmd:%s, ActivityType:%d, ActivityValue:%d, StartDate:%d, EndDate:%d '''\ %( self.Cmd, self.SubCmd, self.ActivityType, self.ActivityValue, self.StartDate, self.EndDate ) return DumpString class tagGCTeHuiActivityInfoList(Structure): Head = tagHead() ActivityCount = 0 #(BYTE ActivityCount)//»î¶¯ÐÅÏ¢¸öÊý ActivityInfoList = list() #(vector ActivityInfoList)//»î¶¯ÐÅÏ¢Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xAD self.Head.SubCmd = 0x01 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.ActivityCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.ActivityCount): temActivityInfoList = tagGCTeHuiActivityInfo() _pos = temActivityInfoList.ReadData(_lpData, _pos) self.ActivityInfoList.append(temActivityInfoList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xAD self.Head.SubCmd = 0x01 self.ActivityCount = 0 self.ActivityInfoList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.ActivityCount): length += self.ActivityInfoList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.ActivityCount) for i in range(self.ActivityCount): data = CommFunc.WriteString(data, self.ActivityInfoList[i].GetLength(), self.ActivityInfoList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, ActivityCount:%d, ActivityInfoList:%s '''\ %( self.Head.OutputString(), self.ActivityCount, "..." ) return DumpString m_NAtagGCTeHuiActivityInfoList=tagGCTeHuiActivityInfoList() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCTeHuiActivityInfoList.Head.Cmd,m_NAtagGCTeHuiActivityInfoList.Head.SubCmd))] = m_NAtagGCTeHuiActivityInfoList #------------------------------------------------------ # AE 05 ïÚ³µ¿ªÊ¼Ê±¼ä #tagGCTruckStartTime class tagGCTruckStartTime(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("StartTime", c_int), ] def __init__(self): self.Clear() self.Cmd = 0xAE self.SubCmd = 0x05 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xAE self.SubCmd = 0x05 self.StartTime = 0 return def GetLength(self): return sizeof(tagGCTruckStartTime) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AE 05 ïÚ³µ¿ªÊ¼Ê±¼ä //tagGCTruckStartTime: Cmd:%s, SubCmd:%s, StartTime:%d '''\ %( self.Cmd, self.SubCmd, self.StartTime ) return DumpString m_NAtagGCTruckStartTime=tagGCTruckStartTime() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCTruckStartTime.Cmd,m_NAtagGCTruckStartTime.SubCmd))] = m_NAtagGCTruckStartTime #------------------------------------------------------ #B0 26 ¼Ò×åÐüÉÍÈÎÎñÍê³ÉÇé¿ö #tagFamilyArrestOverStateInfo class tagFamilyArrestOverState(Structure): ID = 0 #(DWORD ID)//ÐüÉÍÈÎÎñID NameLen = 0 #(WORD NameLen)//Ãû×Ö³¤¶È Name = "" #(String Name)//size = NameLen OverState = 0 #(DWORD OverState)//ÈÎÎñÍê³ÉÇé¿ö data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.ID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.NameLen,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Name,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen) self.OverState,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): self.ID = 0 self.NameLen = 0 self.Name = "" self.OverState = 0 return def GetLength(self): length = 0 length += 4 length += 2 length += len(self.Name) length += 4 return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.ID) data = CommFunc.WriteWORD(data, self.NameLen) data = CommFunc.WriteString(data, self.NameLen, self.Name) data = CommFunc.WriteDWORD(data, self.OverState) return data def OutputString(self): DumpString = ''' ID:%d, NameLen:%d, Name:%s, OverState:%d '''\ %( self.ID, self.NameLen, self.Name, self.OverState ) return DumpString class tagFamilyArrestOverStateInfo(Structure): Head = tagHead() Count = 0 #(WORD Count) ArrestOverStateInfo = list() #(vector ArrestOverStateInfo)///size = Count data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB0 self.Head.SubCmd = 0x26 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): temArrestOverStateInfo = tagFamilyArrestOverState() _pos = temArrestOverStateInfo.ReadData(_lpData, _pos) self.ArrestOverStateInfo.append(temArrestOverStateInfo) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB0 self.Head.SubCmd = 0x26 self.Count = 0 self.ArrestOverStateInfo = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 for i in range(self.Count): length += self.ArrestOverStateInfo[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.ArrestOverStateInfo[i].GetLength(), self.ArrestOverStateInfo[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Count:%d, ArrestOverStateInfo:%s '''\ %( self.Head.OutputString(), self.Count, "..." ) return DumpString m_NAtagFamilyArrestOverStateInfo=tagFamilyArrestOverStateInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagFamilyArrestOverStateInfo.Head.Cmd,m_NAtagFamilyArrestOverStateInfo.Head.SubCmd))] = m_NAtagFamilyArrestOverStateInfo #------------------------------------------------------ #B3 03 ѯÎÊÊÇ·ñÔÊÐíÌí¼ÓºÃÓÑ#tagGCFriendAskIfJoin class tagGCFriendAskIfJoin(Structure): Head = tagHead() AskID = 0 #(DWORD AskID)//ÇëÇóºÃÓѵÄÈË Name = "" #(char Name[33]) LV = 0 #(WORD LV) RealmLV = 0 #(WORD RealmLV)//¾³½çµÈ¼¶ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB3 self.Head.SubCmd = 0x03 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.AskID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Name,_pos = CommFunc.ReadString(_lpData, _pos,33) self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB3 self.Head.SubCmd = 0x03 self.AskID = 0 self.Name = "" self.LV = 0 self.RealmLV = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 33 length += 2 length += 2 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.AskID) data = CommFunc.WriteString(data, 33, self.Name) data = CommFunc.WriteWORD(data, self.LV) data = CommFunc.WriteWORD(data, self.RealmLV) return data def OutputString(self): DumpString = ''' Head:%s, AskID:%d, Name:%s, LV:%d, RealmLV:%d '''\ %( self.Head.OutputString(), self.AskID, self.Name, self.LV, self.RealmLV ) return DumpString m_NAtagGCFriendAskIfJoin=tagGCFriendAskIfJoin() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCFriendAskIfJoin.Head.Cmd,m_NAtagGCFriendAskIfJoin.Head.SubCmd))] = m_NAtagGCFriendAskIfJoin #------------------------------------------------------ #B3 01 Ìí¼ÓÉç½»¶ÔÏó #tagGCAddSocialPlayer class tagGCAddSocialPlayer(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("GroupType", c_ubyte), # ·Ö×é 1 ×î½üÁªÏµÈË 2 ºÃÓÑ 3 ³ðÈË 4 ºÚÃûµ¥ ("PlayerID", c_int), ("SortValue", c_int), #×î½üÁªÏµÈ˺ͳðÈ˰´Ê±¼äÅÅÐò ] def __init__(self): self.Clear() self.Cmd = 0xB3 self.SubCmd = 0x01 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xB3 self.SubCmd = 0x01 self.GroupType = 0 self.PlayerID = 0 self.SortValue = 0 return def GetLength(self): return sizeof(tagGCAddSocialPlayer) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//B3 01 Ìí¼ÓÉç½»¶ÔÏó //tagGCAddSocialPlayer: Cmd:%s, SubCmd:%s, GroupType:%d, PlayerID:%d, SortValue:%d '''\ %( self.Cmd, self.SubCmd, self.GroupType, self.PlayerID, self.SortValue ) return DumpString m_NAtagGCAddSocialPlayer=tagGCAddSocialPlayer() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAddSocialPlayer.Cmd,m_NAtagGCAddSocialPlayer.SubCmd))] = m_NAtagGCAddSocialPlayer #------------------------------------------------------ #B3 09 »Ø¸´Íæ¼Ò¼ò¶ÌÐÅÏ¢ #tagGCAnswerPlayerShortInfo class tagGCAnswerPlayerShortInfo(Structure): Head = tagHead() PlayerID = 0 #(DWORD PlayerID) PlayerName = "" #(char PlayerName[33]) Job = 0 #(BYTE Job) LV = 0 #(WORD LV)//µÈ¼¶ RealmLV = 0 #(WORD RealmLV)//¾³½ç OnlineType = 0 #(BYTE OnlineType)//ÔÚÏß״̬£¬ 0 ²»ÔÚÏß 1ÔÚÏß IsInTeam = 0 #(BYTE IsInTeam)//ÊÇ·ñÓжÓÎé data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB3 self.Head.SubCmd = 0x09 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) self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.OnlineType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.IsInTeam,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB3 self.Head.SubCmd = 0x09 self.PlayerID = 0 self.PlayerName = "" self.Job = 0 self.LV = 0 self.RealmLV = 0 self.OnlineType = 0 self.IsInTeam = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 33 length += 1 length += 2 length += 2 length += 1 length += 1 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) data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteWORD(data, self.LV) data = CommFunc.WriteWORD(data, self.RealmLV) data = CommFunc.WriteBYTE(data, self.OnlineType) data = CommFunc.WriteBYTE(data, self.IsInTeam) return data def OutputString(self): DumpString = ''' Head:%s, PlayerID:%d, PlayerName:%s, Job:%d, LV:%d, RealmLV:%d, OnlineType:%d, IsInTeam:%d '''\ %( self.Head.OutputString(), self.PlayerID, self.PlayerName, self.Job, self.LV, self.RealmLV, self.OnlineType, self.IsInTeam ) return DumpString m_NAtagGCAnswerPlayerShortInfo=tagGCAnswerPlayerShortInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAnswerPlayerShortInfo.Head.Cmd,m_NAtagGCAnswerPlayerShortInfo.Head.SubCmd))] = m_NAtagGCAnswerPlayerShortInfo #------------------------------------------------------ #B3 02 ɾ³ýÉç½»¶ÔÏó #tagGCDelSocialPlayer class tagGCDelSocialPlayer(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("GroupType", c_ubyte), # ·Ö×é 1 ×î½üÁªÏµÈË 2 ºÃÓÑ 3 ³ðÈË 4 ºÚÃûµ¥ ("PlayerID", c_int), ] def __init__(self): self.Clear() self.Cmd = 0xB3 self.SubCmd = 0x02 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xB3 self.SubCmd = 0x02 self.GroupType = 0 self.PlayerID = 0 return def GetLength(self): return sizeof(tagGCDelSocialPlayer) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//B3 02 ɾ³ýÉç½»¶ÔÏó //tagGCDelSocialPlayer: Cmd:%s, SubCmd:%s, GroupType:%d, PlayerID:%d '''\ %( self.Cmd, self.SubCmd, self.GroupType, self.PlayerID ) return DumpString m_NAtagGCDelSocialPlayer=tagGCDelSocialPlayer() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCDelSocialPlayer.Cmd,m_NAtagGCDelSocialPlayer.SubCmd))] = m_NAtagGCDelSocialPlayer #------------------------------------------------------ #B3 04 Éç½»ÈËȺ»ù±¾ÐÅÏ¢ #tagGCSocialPlayers class tagGCSocialPlayer(Structure): PlayerID = 0 #(DWORD PlayerID) PlayerName = "" #(char PlayerName[33]) Job = 0 #(BYTE Job) LV = 0 #(WORD LV)//µÈ¼¶ RealmLV = 0 #(WORD RealmLV)//¾³½ç OnlineType = 0 #(BYTE OnlineType)//0²»ÔÚÏß 1ÔÚÏß 2ÍÑ»úÔÚÏß data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33) self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.OnlineType,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): self.PlayerID = 0 self.PlayerName = "" self.Job = 0 self.LV = 0 self.RealmLV = 0 self.OnlineType = 0 return def GetLength(self): length = 0 length += 4 length += 33 length += 1 length += 2 length += 2 length += 1 return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.PlayerID) data = CommFunc.WriteString(data, 33, self.PlayerName) data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteWORD(data, self.LV) data = CommFunc.WriteWORD(data, self.RealmLV) data = CommFunc.WriteBYTE(data, self.OnlineType) return data def OutputString(self): DumpString = ''' PlayerID:%d, PlayerName:%s, Job:%d, LV:%d, RealmLV:%d, OnlineType:%d '''\ %( self.PlayerID, self.PlayerName, self.Job, self.LV, self.RealmLV, self.OnlineType ) return DumpString class tagGCSocialPlayers(Structure): Head = tagHead() Count = 0 #(WORD Count) Player = list() #(vector Player)//size = Count data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB3 self.Head.SubCmd = 0x04 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): temPlayer = tagGCSocialPlayer() _pos = temPlayer.ReadData(_lpData, _pos) self.Player.append(temPlayer) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB3 self.Head.SubCmd = 0x04 self.Count = 0 self.Player = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 for i in range(self.Count): length += self.Player[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.Player[i].GetLength(), self.Player[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Count:%d, Player:%s '''\ %( self.Head.OutputString(), self.Count, "..." ) return DumpString m_NAtagGCSocialPlayers=tagGCSocialPlayers() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCSocialPlayers.Head.Cmd,m_NAtagGCSocialPlayers.Head.SubCmd))] = m_NAtagGCSocialPlayers #------------------------------------------------------ #B3 08 Í¨ÖªÍæ¼Ò·Ö×éÐÅÏ¢ #tagGCGroupPlayers class tagGCGroupPlayer(Structure): _pack_ = 1 _fields_ = [ ("PlayerID", c_int), ("SortValue", c_int), ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.PlayerID = 0 self.SortValue = 0 return def GetLength(self): return sizeof(tagGCGroupPlayer) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//B3 08 Í¨ÖªÍæ¼Ò·Ö×éÐÅÏ¢ //tagGCGroupPlayers: PlayerID:%d, SortValue:%d '''\ %( self.PlayerID, self.SortValue ) return DumpString class tagGCGroupPlayers(Structure): Head = tagHead() GroupType = 0 #(BYTE GroupType)// ·Ö×é 1 ×î½üÁªÏµÈË 2 ºÃÓÑ 3 ³ðÈË 4 ºÚÃûµ¥ Count = 0 #(WORD Count) Players = list() #(vector Players)//size = Count data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB3 self.Head.SubCmd = 0x08 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.GroupType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos) for i in range(self.Count): temPlayers = tagGCGroupPlayer() _pos = temPlayers.ReadData(_lpData, _pos) self.Players.append(temPlayers) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB3 self.Head.SubCmd = 0x08 self.GroupType = 0 self.Count = 0 self.Players = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 2 for i in range(self.Count): length += self.Players[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.GroupType) data = CommFunc.WriteWORD(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.Players[i].GetLength(), self.Players[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, GroupType:%d, Count:%d, Players:%s '''\ %( self.Head.OutputString(), self.GroupType, self.Count, "..." ) return DumpString m_NAtagGCGroupPlayers=tagGCGroupPlayers() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCGroupPlayers.Head.Cmd,m_NAtagGCGroupPlayers.Head.SubCmd))] = m_NAtagGCGroupPlayers #------------------------------------------------------ #B3 05 É罻ȦÄÚ¹ã²¥Íæ¼ÒÃû³Æ #tagGCSocialName class tagGCSocialName(Structure): Head = tagHead() PlayerID = 0 #(DWORD PlayerID) Name = "" #(char Name[33]) data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB3 self.Head.SubCmd = 0x05 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.Name,_pos = CommFunc.ReadString(_lpData, _pos,33) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB3 self.Head.SubCmd = 0x05 self.PlayerID = 0 self.Name = "" 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.Name) return data def OutputString(self): DumpString = ''' Head:%s, PlayerID:%d, Name:%s '''\ %( self.Head.OutputString(), self.PlayerID, self.Name ) return DumpString m_NAtagGCSocialName=tagGCSocialName() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCSocialName.Head.Cmd,m_NAtagGCSocialName.Head.SubCmd))] = m_NAtagGCSocialName #------------------------------------------------------ #B3 06 Éç½»Íæ¼ÒÔÚÏßÇé¿ö #tagGCSocialOnline class tagGCSocialOnline(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ("OnlineType", c_ubyte), #0²»ÔÚÏß 1ÔÚÏß 2ÍÑ»úÔÚÏß ] def __init__(self): self.Clear() self.Cmd = 0xB3 self.SubCmd = 0x06 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xB3 self.SubCmd = 0x06 self.PlayerID = 0 self.OnlineType = 0 return def GetLength(self): return sizeof(tagGCSocialOnline) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//B3 06 Éç½»Íæ¼ÒÔÚÏßÇé¿ö //tagGCSocialOnline: Cmd:%s, SubCmd:%s, PlayerID:%d, OnlineType:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID, self.OnlineType ) return DumpString m_NAtagGCSocialOnline=tagGCSocialOnline() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCSocialOnline.Cmd,m_NAtagGCSocialOnline.SubCmd))] = m_NAtagGCSocialOnline #------------------------------------------------------ #B3 07 Éç½»Íæ¼ÒÊôÐԹ㲥 #tagGCSocialRefreshType class tagGCSocialRefreshType(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ("RefreshType", c_ubyte), #²Î¿¼CDBPlayerRefresh__ ("Value", c_int), ] def __init__(self): self.Clear() self.Cmd = 0xB3 self.SubCmd = 0x07 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xB3 self.SubCmd = 0x07 self.PlayerID = 0 self.RefreshType = 0 self.Value = 0 return def GetLength(self): return sizeof(tagGCSocialRefreshType) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//B3 07 Éç½»Íæ¼ÒÊôÐԹ㲥 //tagGCSocialRefreshType: Cmd:%s, SubCmd:%s, PlayerID:%d, RefreshType:%d, Value:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID, self.RefreshType, self.Value ) return DumpString m_NAtagGCSocialRefreshType=tagGCSocialRefreshType() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCSocialRefreshType.Cmd,m_NAtagGCSocialRefreshType.SubCmd))] = m_NAtagGCSocialRefreshType #------------------------------------------------------ #B3 10 ÓïÒôÁÄÌì #tagGCVoiceChat class tagGCVoiceChat(Structure): Head = tagHead() ChannelType = 0 #(BYTE ChannelType)// 1 ÊÀ½ç 2 ÏÉÃË 3 ˽ÁÄ(ºÃÓÑ) 4 ¶ÓÎé 5 ÇøÓò SrcNameLen = 0 #(BYTE SrcNameLen) SrcName = "" #(String SrcName)//size = SrcNameLen PlayerID = 0 #(DWORD PlayerID) ToNameLen = 0 #(BYTE ToNameLen) ToName = "" #(String ToName)//size = ToNameLen ToPlayerID = 0 #(DWORD ToPlayerID) Len = 0 #(WORD Len) Content = list() #(vector Content)//size = Len ExtraValue = 0 #(DWORD ExtraValue)//¸½¼ÓÖµ Extras = "" #(char Extras[256])//¸½¼ÓÖµÁбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB3 self.Head.SubCmd = 0x10 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.ChannelType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.SrcNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.SrcName,_pos = CommFunc.ReadString(_lpData, _pos,self.SrcNameLen) self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ToNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ToName,_pos = CommFunc.ReadString(_lpData, _pos,self.ToNameLen) self.ToPlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Len,_pos = CommFunc.ReadWORD(_lpData, _pos) for i in range(self.Len): value,_pos=CommFunc.ReadBYTE(_lpData,_pos) self.Content.append(value) self.ExtraValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Extras,_pos = CommFunc.ReadString(_lpData, _pos,256) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB3 self.Head.SubCmd = 0x10 self.ChannelType = 0 self.SrcNameLen = 0 self.SrcName = "" self.PlayerID = 0 self.ToNameLen = 0 self.ToName = "" self.ToPlayerID = 0 self.Len = 0 self.Content = list() self.ExtraValue = 0 self.Extras = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 1 length += len(self.SrcName) length += 4 length += 1 length += len(self.ToName) length += 4 length += 2 length += 1 * self.Len length += 4 length += 256 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.ChannelType) data = CommFunc.WriteBYTE(data, self.SrcNameLen) data = CommFunc.WriteString(data, self.SrcNameLen, self.SrcName) data = CommFunc.WriteDWORD(data, self.PlayerID) data = CommFunc.WriteBYTE(data, self.ToNameLen) data = CommFunc.WriteString(data, self.ToNameLen, self.ToName) data = CommFunc.WriteDWORD(data, self.ToPlayerID) data = CommFunc.WriteWORD(data, self.Len) for i in range(self.Len): data = CommFunc.WriteBYTE(data, self.Content[i]) data = CommFunc.WriteDWORD(data, self.ExtraValue) data = CommFunc.WriteString(data, 256, self.Extras) return data def OutputString(self): DumpString = ''' Head:%s, ChannelType:%d, SrcNameLen:%d, SrcName:%s, PlayerID:%d, ToNameLen:%d, ToName:%s, ToPlayerID:%d, Len:%d, Content:%s, ExtraValue:%d, Extras:%s '''\ %( self.Head.OutputString(), self.ChannelType, self.SrcNameLen, self.SrcName, self.PlayerID, self.ToNameLen, self.ToName, self.ToPlayerID, self.Len, "...", self.ExtraValue, self.Extras ) return DumpString m_NAtagGCVoiceChat=tagGCVoiceChat() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCVoiceChat.Head.Cmd,m_NAtagGCVoiceChat.Head.SubCmd))] = m_NAtagGCVoiceChat #------------------------------------------------------ # B9 01 ÊÕµ½ÑûÇë¼ÓÈë¶ÓÎéÐÅÏ¢ #tagGCInviteJoinTeamInfo class tagGCInviteJoinTeamInfo(Structure): Head = tagHead() PlayerID = 0 #(DWORD PlayerID)// ·¢ÆðÑûÇëµÄÍæ¼ÒID NameLen = 0 #(BYTE NameLen) Name = "" #(String Name)// ·¢ÆðÑûÇëµÄÍæ¼ÒÃû£¬size = NameLen LV = 0 #(WORD LV)// Íæ¼ÒµÈ¼¶ Job = 0 #(BYTE Job)// Íæ¼ÒÖ°Òµ JobLevel = 0 #(BYTE JobLevel)// Íæ¼ÒÖ°Òµ½×¼¶ RealmLV = 0 #(WORD RealmLV)// Íæ¼Ò¾³½çµÈ¼¶ TagMapID = 0 #(DWORD TagMapID)// Ä¿±êµØÍ¼ TagMapEx = 0 #(WORD TagMapEx)// Ä¿±êµØÍ¼À©Õ¹ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB9 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.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Name,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen) self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.JobLevel,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.TagMapID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.TagMapEx,_pos = CommFunc.ReadWORD(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB9 self.Head.SubCmd = 0x01 self.PlayerID = 0 self.NameLen = 0 self.Name = "" self.LV = 0 self.Job = 0 self.JobLevel = 0 self.RealmLV = 0 self.TagMapID = 0 self.TagMapEx = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += len(self.Name) length += 2 length += 1 length += 1 length += 2 length += 4 length += 2 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.NameLen) data = CommFunc.WriteString(data, self.NameLen, self.Name) data = CommFunc.WriteWORD(data, self.LV) data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteBYTE(data, self.JobLevel) data = CommFunc.WriteWORD(data, self.RealmLV) data = CommFunc.WriteDWORD(data, self.TagMapID) data = CommFunc.WriteWORD(data, self.TagMapEx) return data def OutputString(self): DumpString = ''' Head:%s, PlayerID:%d, NameLen:%d, Name:%s, LV:%d, Job:%d, JobLevel:%d, RealmLV:%d, TagMapID:%d, TagMapEx:%d '''\ %( self.Head.OutputString(), self.PlayerID, self.NameLen, self.Name, self.LV, self.Job, self.JobLevel, self.RealmLV, self.TagMapID, self.TagMapEx ) return DumpString m_NAtagGCInviteJoinTeamInfo=tagGCInviteJoinTeamInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCInviteJoinTeamInfo.Head.Cmd,m_NAtagGCInviteJoinTeamInfo.Head.SubCmd))] = m_NAtagGCInviteJoinTeamInfo #------------------------------------------------------ # B9 09 ×é¶ÓÄ¿±ê¶ÓÎéÐÅÏ¢Áбí #tagGCTagMapTeamList class tagGCTagMapTeam(Structure): PlayerID = 0 #(DWORD PlayerID) NameLen = 0 #(BYTE NameLen) PlayerName = "" #(String PlayerName)// ¶Ó³¤Ãû³Æ LV = 0 #(WORD LV)// ¶Ó³¤µÈ¼¶ Job = 0 #(BYTE Job)// ¶Ó³¤Ö°Òµ JobLevel = 0 #(BYTE JobLevel)// ¶Ó³¤Ö°Òµ½×¼¶ RealmLV = 0 #(WORD RealmLV)// ¶Ó³¤¾³½çµÈ¼¶ MemberCount = 0 #(BYTE MemberCount)// ¶ÓÎéÈËÊý ReqMinLV = 0 #(WORD ReqMinLV)// ¶ÓÔ±×îµÍµÈ¼¶ÏÞÖÆ ReqMaxLV = 0 #(WORD ReqMaxLV)// ¶ÓÔ±×î¸ßµÈ¼¶ÏÞÖÆ data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen) self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.JobLevel,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.MemberCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ReqMinLV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.ReqMaxLV,_pos = CommFunc.ReadWORD(_lpData, _pos) return _pos def Clear(self): self.PlayerID = 0 self.NameLen = 0 self.PlayerName = "" self.LV = 0 self.Job = 0 self.JobLevel = 0 self.RealmLV = 0 self.MemberCount = 0 self.ReqMinLV = 0 self.ReqMaxLV = 0 return def GetLength(self): length = 0 length += 4 length += 1 length += len(self.PlayerName) length += 2 length += 1 length += 1 length += 2 length += 1 length += 2 length += 2 return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.PlayerID) data = CommFunc.WriteBYTE(data, self.NameLen) data = CommFunc.WriteString(data, self.NameLen, self.PlayerName) data = CommFunc.WriteWORD(data, self.LV) data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteBYTE(data, self.JobLevel) data = CommFunc.WriteWORD(data, self.RealmLV) data = CommFunc.WriteBYTE(data, self.MemberCount) data = CommFunc.WriteWORD(data, self.ReqMinLV) data = CommFunc.WriteWORD(data, self.ReqMaxLV) return data def OutputString(self): DumpString = ''' PlayerID:%d, NameLen:%d, PlayerName:%s, LV:%d, Job:%d, JobLevel:%d, RealmLV:%d, MemberCount:%d, ReqMinLV:%d, ReqMaxLV:%d '''\ %( self.PlayerID, self.NameLen, self.PlayerName, self.LV, self.Job, self.JobLevel, self.RealmLV, self.MemberCount, self.ReqMinLV, self.ReqMaxLV ) return DumpString class tagGCTagMapTeamList(Structure): Head = tagHead() TagMapID = 0 #(DWORD TagMapID)// Ä¿±êµØÍ¼ TagMapEx = 0 #(WORD TagMapEx)// Ä¿±êµØÍ¼À©Õ¹ IsTagEx = 0 #(BYTE IsTagEx)// ÊÇ·ñ¶ÔӦĿ±êÀ©Õ¹µÄ; 0·ñ1ÊÇ MatchState = 0 #(BYTE MatchState)// 0-È«²¿£»1-Æ¥ÅäÖеģ» TeamCount = 0 #(BYTE TeamCount) TeamList = list() #(vector TeamList)// ¶ÓÎéÁбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB9 self.Head.SubCmd = 0x09 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.TagMapID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.TagMapEx,_pos = CommFunc.ReadWORD(_lpData, _pos) self.IsTagEx,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.MatchState,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.TeamCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.TeamCount): temTeamList = tagGCTagMapTeam() _pos = temTeamList.ReadData(_lpData, _pos) self.TeamList.append(temTeamList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB9 self.Head.SubCmd = 0x09 self.TagMapID = 0 self.TagMapEx = 0 self.IsTagEx = 0 self.MatchState = 0 self.TeamCount = 0 self.TeamList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 2 length += 1 length += 1 length += 1 for i in range(self.TeamCount): length += self.TeamList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.TagMapID) data = CommFunc.WriteWORD(data, self.TagMapEx) data = CommFunc.WriteBYTE(data, self.IsTagEx) data = CommFunc.WriteBYTE(data, self.MatchState) data = CommFunc.WriteBYTE(data, self.TeamCount) for i in range(self.TeamCount): data = CommFunc.WriteString(data, self.TeamList[i].GetLength(), self.TeamList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, TagMapID:%d, TagMapEx:%d, IsTagEx:%d, MatchState:%d, TeamCount:%d, TeamList:%s '''\ %( self.Head.OutputString(), self.TagMapID, self.TagMapEx, self.IsTagEx, self.MatchState, self.TeamCount, "..." ) return DumpString m_NAtagGCTagMapTeamList=tagGCTagMapTeamList() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCTagMapTeamList.Head.Cmd,m_NAtagGCTagMapTeamList.Head.SubCmd))] = m_NAtagGCTagMapTeamList #------------------------------------------------------ # B9 08 ÍÆ¼ö×é¶ÓµÄ¸½½üÍæ¼ÒÐÅÏ¢ #tagGCRecommendNearbyPlayerList class tagGCRecommendNearbyPlayer(Structure): PlayerID = 0 #(DWORD PlayerID) NameLen = 0 #(BYTE NameLen) Name = "" #(String Name)// Íæ¼ÒÃû£¬size = NameLen LV = 0 #(WORD LV)// Íæ¼ÒµÈ¼¶ Job = 0 #(BYTE Job)// Íæ¼ÒÖ°Òµ JobLevel = 0 #(BYTE JobLevel)// Íæ¼ÒÖ°Òµ½×¼¶ RealmLV = 0 #(WORD RealmLV)// Íæ¼Ò¾³½çµÈ¼¶ data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Name,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen) self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.JobLevel,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos) return _pos def Clear(self): self.PlayerID = 0 self.NameLen = 0 self.Name = "" self.LV = 0 self.Job = 0 self.JobLevel = 0 self.RealmLV = 0 return def GetLength(self): length = 0 length += 4 length += 1 length += len(self.Name) length += 2 length += 1 length += 1 length += 2 return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.PlayerID) data = CommFunc.WriteBYTE(data, self.NameLen) data = CommFunc.WriteString(data, self.NameLen, self.Name) data = CommFunc.WriteWORD(data, self.LV) data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteBYTE(data, self.JobLevel) data = CommFunc.WriteWORD(data, self.RealmLV) return data def OutputString(self): DumpString = ''' PlayerID:%d, NameLen:%d, Name:%s, LV:%d, Job:%d, JobLevel:%d, RealmLV:%d '''\ %( self.PlayerID, self.NameLen, self.Name, self.LV, self.Job, self.JobLevel, self.RealmLV ) return DumpString class tagGCRecommendNearbyPlayerList(Structure): Head = tagHead() PlayerCount = 0 #(BYTE PlayerCount) PlayerList = list() #(vector PlayerList)// ÍÆ¼öÍæ¼ÒÁбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB9 self.Head.SubCmd = 0x08 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.PlayerCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.PlayerCount): temPlayerList = tagGCRecommendNearbyPlayer() _pos = temPlayerList.ReadData(_lpData, _pos) self.PlayerList.append(temPlayerList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB9 self.Head.SubCmd = 0x08 self.PlayerCount = 0 self.PlayerList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.PlayerCount): length += self.PlayerList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.PlayerCount) for i in range(self.PlayerCount): data = CommFunc.WriteString(data, self.PlayerList[i].GetLength(), self.PlayerList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, PlayerCount:%d, PlayerList:%s '''\ %( self.Head.OutputString(), self.PlayerCount, "..." ) return DumpString m_NAtagGCRecommendNearbyPlayerList=tagGCRecommendNearbyPlayerList() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCRecommendNearbyPlayerList.Head.Cmd,m_NAtagGCRecommendNearbyPlayerList.Head.SubCmd))] = m_NAtagGCRecommendNearbyPlayerList #------------------------------------------------------ # B9 07 ÊÕµ½ÇëÇó¼ÓÈë¶ÓÎéÐÅÏ¢ #tagGCRequestJoinTeam class tagGCRequestJoinTeam(Structure): Head = tagHead() PlayerID = 0 #(DWORD PlayerID)// ·¢ÆðÇëÇóµÄÍæ¼ÒID NameLen = 0 #(BYTE NameLen) Name = "" #(String Name)// ·¢ÆðÇëÇóµÄÍæ¼ÒÃû£¬size = NameLen LV = 0 #(WORD LV)// Íæ¼ÒµÈ¼¶ Job = 0 #(BYTE Job)// Íæ¼ÒÖ°Òµ JobLevel = 0 #(BYTE JobLevel)// Íæ¼ÒÖ°Òµ½×¼¶ RealmLV = 0 #(WORD RealmLV)// Íæ¼Ò¾³½çµÈ¼¶ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB9 self.Head.SubCmd = 0x07 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.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Name,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen) self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.JobLevel,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB9 self.Head.SubCmd = 0x07 self.PlayerID = 0 self.NameLen = 0 self.Name = "" self.LV = 0 self.Job = 0 self.JobLevel = 0 self.RealmLV = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += len(self.Name) length += 2 length += 1 length += 1 length += 2 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.NameLen) data = CommFunc.WriteString(data, self.NameLen, self.Name) data = CommFunc.WriteWORD(data, self.LV) data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteBYTE(data, self.JobLevel) data = CommFunc.WriteWORD(data, self.RealmLV) return data def OutputString(self): DumpString = ''' Head:%s, PlayerID:%d, NameLen:%d, Name:%s, LV:%d, Job:%d, JobLevel:%d, RealmLV:%d '''\ %( self.Head.OutputString(), self.PlayerID, self.NameLen, self.Name, self.LV, self.Job, self.JobLevel, self.RealmLV ) return DumpString m_NAtagGCRequestJoinTeam=tagGCRequestJoinTeam() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCRequestJoinTeam.Head.Cmd,m_NAtagGCRequestJoinTeam.Head.SubCmd))] = m_NAtagGCRequestJoinTeam #------------------------------------------------------ # B9 04 ˢг¡¾°¶ÓÎ黨Ӧ°ü #tagGCSceneTeamRefresh class tagGCSceneTeam(Structure): PlayerID = 0 #(DWORD PlayerID) NameLen = 0 #(BYTE NameLen) PlayerName = "" #(String PlayerName)// ¶Ó³¤Ãû³Æ LV = 0 #(WORD LV)// ¶Ó³¤µÈ¼¶ Job = 0 #(BYTE Job)// ¶Ó³¤Ö°Òµ JobLevel = 0 #(BYTE JobLevel)// ¶Ó³¤Ö°Òµ½×¼¶ RealmLV = 0 #(WORD RealmLV)// ¶Ó³¤¾³½çµÈ¼¶ MemberCount = 0 #(BYTE MemberCount)// ¶ÓÎéÈËÊý TagMapID = 0 #(DWORD TagMapID)// Ä¿±êµØÍ¼ TagMapEx = 0 #(WORD TagMapEx)// Ä¿±êµØÍ¼À©Õ¹ ReqMinLV = 0 #(WORD ReqMinLV)// ¶ÓÔ±×îµÍµÈ¼¶ÏÞÖÆ ReqMaxLV = 0 #(WORD ReqMaxLV)// ¶ÓÔ±×î¸ßµÈ¼¶ÏÞÖÆ data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen) self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.JobLevel,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.MemberCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.TagMapID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.TagMapEx,_pos = CommFunc.ReadWORD(_lpData, _pos) self.ReqMinLV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.ReqMaxLV,_pos = CommFunc.ReadWORD(_lpData, _pos) return _pos def Clear(self): self.PlayerID = 0 self.NameLen = 0 self.PlayerName = "" self.LV = 0 self.Job = 0 self.JobLevel = 0 self.RealmLV = 0 self.MemberCount = 0 self.TagMapID = 0 self.TagMapEx = 0 self.ReqMinLV = 0 self.ReqMaxLV = 0 return def GetLength(self): length = 0 length += 4 length += 1 length += len(self.PlayerName) length += 2 length += 1 length += 1 length += 2 length += 1 length += 4 length += 2 length += 2 length += 2 return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.PlayerID) data = CommFunc.WriteBYTE(data, self.NameLen) data = CommFunc.WriteString(data, self.NameLen, self.PlayerName) data = CommFunc.WriteWORD(data, self.LV) data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteBYTE(data, self.JobLevel) data = CommFunc.WriteWORD(data, self.RealmLV) data = CommFunc.WriteBYTE(data, self.MemberCount) data = CommFunc.WriteDWORD(data, self.TagMapID) data = CommFunc.WriteWORD(data, self.TagMapEx) data = CommFunc.WriteWORD(data, self.ReqMinLV) data = CommFunc.WriteWORD(data, self.ReqMaxLV) return data def OutputString(self): DumpString = ''' PlayerID:%d, NameLen:%d, PlayerName:%s, LV:%d, Job:%d, JobLevel:%d, RealmLV:%d, MemberCount:%d, TagMapID:%d, TagMapEx:%d, ReqMinLV:%d, ReqMaxLV:%d '''\ %( self.PlayerID, self.NameLen, self.PlayerName, self.LV, self.Job, self.JobLevel, self.RealmLV, self.MemberCount, self.TagMapID, self.TagMapEx, self.ReqMinLV, self.ReqMaxLV ) return DumpString class tagGCSceneTeamRefresh(Structure): Head = tagHead() TeamCount = 0 #(BYTE TeamCount) SceneTeamList = list() #(vector SceneTeamList)// ³¡¾°¶ÓÎéÁбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB9 self.Head.SubCmd = 0x04 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.TeamCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.TeamCount): temSceneTeamList = tagGCSceneTeam() _pos = temSceneTeamList.ReadData(_lpData, _pos) self.SceneTeamList.append(temSceneTeamList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB9 self.Head.SubCmd = 0x04 self.TeamCount = 0 self.SceneTeamList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.TeamCount): length += self.SceneTeamList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.TeamCount) for i in range(self.TeamCount): data = CommFunc.WriteString(data, self.SceneTeamList[i].GetLength(), self.SceneTeamList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, TeamCount:%d, SceneTeamList:%s '''\ %( self.Head.OutputString(), self.TeamCount, "..." ) return DumpString m_NAtagGCSceneTeamRefresh=tagGCSceneTeamRefresh() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCSceneTeamRefresh.Head.Cmd,m_NAtagGCSceneTeamRefresh.Head.SubCmd))] = m_NAtagGCSceneTeamRefresh #------------------------------------------------------ # B9 11 ¶ÓÔ±½øÈ븱±¾×¼±¸×´Ì¬Ë¢Ð #tagGCTeamEnterFBPrepare class tagGCTeamMemPrepareState(Structure): _pack_ = 1 _fields_ = [ ("PlayerID", c_int), ("PrepareState", c_ubyte), # ״̬£¬0-δ׼±¸£¬1-ÒÑ×¼±¸£¬2-¾Ü¾ø ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.PlayerID = 0 self.PrepareState = 0 return def GetLength(self): return sizeof(tagGCTeamMemPrepareState) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// B9 11 ¶ÓÔ±½øÈ븱±¾×¼±¸×´Ì¬Ë¢Ð //tagGCTeamEnterFBPrepare: PlayerID:%d, PrepareState:%d '''\ %( self.PlayerID, self.PrepareState ) return DumpString class tagGCTeamEnterFBPrepare(Structure): Head = tagHead() TagMapID = 0 #(DWORD TagMapID)// Ä¿±êµØÍ¼£¬²»Ò»¶¨ÊǶÓÎéÄ¿±ê TagMapEx = 0 #(WORD TagMapEx)// Ä¿±êµØÍ¼À©Õ¹ IsPrepareErr = 0 #(BYTE IsPrepareErr)// ÊÇ·ñ×¼±¸Òì³£(ÔÚËùÓжÓÔ±¶¼×¼±¸ºÃºó×¼±¸´«È븱±¾³öÏÖÓжÓÔ±×îÖÕ²»ÄܽøÈëµÄÇé¿öʱ¸ÃֵΪ1) MemCount = 0 #(BYTE MemCount) MemStateList = list() #(vector MemStateList)// ¶ÓԱ״̬Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB9 self.Head.SubCmd = 0x11 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.TagMapID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.TagMapEx,_pos = CommFunc.ReadWORD(_lpData, _pos) self.IsPrepareErr,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.MemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.MemCount): temMemStateList = tagGCTeamMemPrepareState() _pos = temMemStateList.ReadData(_lpData, _pos) self.MemStateList.append(temMemStateList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB9 self.Head.SubCmd = 0x11 self.TagMapID = 0 self.TagMapEx = 0 self.IsPrepareErr = 0 self.MemCount = 0 self.MemStateList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 2 length += 1 length += 1 for i in range(self.MemCount): length += self.MemStateList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.TagMapID) data = CommFunc.WriteWORD(data, self.TagMapEx) data = CommFunc.WriteBYTE(data, self.IsPrepareErr) data = CommFunc.WriteBYTE(data, self.MemCount) for i in range(self.MemCount): data = CommFunc.WriteString(data, self.MemStateList[i].GetLength(), self.MemStateList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, TagMapID:%d, TagMapEx:%d, IsPrepareErr:%d, MemCount:%d, MemStateList:%s '''\ %( self.Head.OutputString(), self.TagMapID, self.TagMapEx, self.IsPrepareErr, self.MemCount, "..." ) return DumpString m_NAtagGCTeamEnterFBPrepare=tagGCTeamEnterFBPrepare() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCTeamEnterFBPrepare.Head.Cmd,m_NAtagGCTeamEnterFBPrepare.Head.SubCmd))] = m_NAtagGCTeamEnterFBPrepare #------------------------------------------------------ # B9 03 ¶ÓÎéÐÅÏ¢±ä¸ü #tagGCTeamInfoChange class tagGCTeamInfoChange(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("TagMapID", c_int), # Ä¿±êµØÍ¼ ("TagMapEx", c_ushort), # Ä¿±êµØÍ¼À©Õ¹ ("ReqMinLV", c_ushort), # ¶ÓÔ±×îµÍµÈ¼¶ÏÞÖÆ ("ReqMaxLV", c_ushort), # ¶ÓÔ±×î¸ßµÈ¼¶ÏÞÖÆ ] def __init__(self): self.Clear() self.Cmd = 0xB9 self.SubCmd = 0x03 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xB9 self.SubCmd = 0x03 self.TagMapID = 0 self.TagMapEx = 0 self.ReqMinLV = 0 self.ReqMaxLV = 0 return def GetLength(self): return sizeof(tagGCTeamInfoChange) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// B9 03 ¶ÓÎéÐÅÏ¢±ä¸ü //tagGCTeamInfoChange: Cmd:%s, SubCmd:%s, TagMapID:%d, TagMapEx:%d, ReqMinLV:%d, ReqMaxLV:%d '''\ %( self.Cmd, self.SubCmd, self.TagMapID, self.TagMapEx, self.ReqMinLV, self.ReqMaxLV ) return DumpString m_NAtagGCTeamInfoChange=tagGCTeamInfoChange() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCTeamInfoChange.Cmd,m_NAtagGCTeamInfoChange.SubCmd))] = m_NAtagGCTeamInfoChange #------------------------------------------------------ # B9 10 ¶ÓÎé»òÍæ¼ÒÆ¥Åä״̬±ä¸ü #tagGCTeamMatchState class tagGCTeamMatchState(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("IsMatching", c_ubyte), # ÊÇ·ñÆ¥ÅäÖÐ, 0·ñ1ÊÇ ] def __init__(self): self.Clear() self.Cmd = 0xB9 self.SubCmd = 0x10 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xB9 self.SubCmd = 0x10 self.IsMatching = 0 return def GetLength(self): return sizeof(tagGCTeamMatchState) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// B9 10 ¶ÓÎé»òÍæ¼ÒÆ¥Åä״̬±ä¸ü //tagGCTeamMatchState: Cmd:%s, SubCmd:%s, IsMatching:%d '''\ %( self.Cmd, self.SubCmd, self.IsMatching ) return DumpString m_NAtagGCTeamMatchState=tagGCTeamMatchState() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCTeamMatchState.Cmd,m_NAtagGCTeamMatchState.SubCmd))] = m_NAtagGCTeamMatchState #------------------------------------------------------ # B9 02 ¶ÓÎé³ÉÔ±ÐÅϢˢР#tagGCTeamMemberInfo class tagGCTeamMember(Structure): Index = 0 #(BYTE Index)// ¶ÓÔ±±àºÅ PlayerID = 0 #(DWORD PlayerID) NameLen = 0 #(BYTE NameLen) Name = "" #(String Name)// Íæ¼ÒÃû£¬size = NameLen MemberLV = 0 #(BYTE MemberLV)// ³ÉÔ±µÈ¼¶, 0-ÆÕͨ³ÉÔ±, 2-¶Ó³¤ LV = 0 #(WORD LV)// Íæ¼ÒµÈ¼¶ Job = 0 #(BYTE Job)// Íæ¼ÒÖ°Òµ JobLevel = 0 #(BYTE JobLevel)// Íæ¼ÒÖ°Òµ½×¼¶ RealmLV = 0 #(WORD RealmLV)// Íæ¼Ò¾³½çµÈ¼¶ PlayerState = 0 #(BYTE PlayerState)// 0: ÀëÏß 1:ÔÚÏß MapID = 0 #(DWORD MapID)// µØÍ¼ID LineID = 0 #(BYTE LineID)// Ïß·ID data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.Index,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Name,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen) self.MemberLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.JobLevel,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.PlayerState,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.MapID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.LineID,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): self.Index = 0 self.PlayerID = 0 self.NameLen = 0 self.Name = "" self.MemberLV = 0 self.LV = 0 self.Job = 0 self.JobLevel = 0 self.RealmLV = 0 self.PlayerState = 0 self.MapID = 0 self.LineID = 0 return def GetLength(self): length = 0 length += 1 length += 4 length += 1 length += len(self.Name) length += 1 length += 2 length += 1 length += 1 length += 2 length += 1 length += 4 length += 1 return length def GetBuffer(self): data = '' data = CommFunc.WriteBYTE(data, self.Index) data = CommFunc.WriteDWORD(data, self.PlayerID) data = CommFunc.WriteBYTE(data, self.NameLen) data = CommFunc.WriteString(data, self.NameLen, self.Name) data = CommFunc.WriteBYTE(data, self.MemberLV) data = CommFunc.WriteWORD(data, self.LV) data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteBYTE(data, self.JobLevel) data = CommFunc.WriteWORD(data, self.RealmLV) data = CommFunc.WriteBYTE(data, self.PlayerState) data = CommFunc.WriteDWORD(data, self.MapID) data = CommFunc.WriteBYTE(data, self.LineID) return data def OutputString(self): DumpString = ''' Index:%d, PlayerID:%d, NameLen:%d, Name:%s, MemberLV:%d, LV:%d, Job:%d, JobLevel:%d, RealmLV:%d, PlayerState:%d, MapID:%d, LineID:%d '''\ %( self.Index, self.PlayerID, self.NameLen, self.Name, self.MemberLV, self.LV, self.Job, self.JobLevel, self.RealmLV, self.PlayerState, self.MapID, self.LineID ) return DumpString class tagGCTeamMemberInfo(Structure): Head = tagHead() TeamID = 0 #(DWORD TeamID) TagMapID = 0 #(DWORD TagMapID)// Ä¿±êµØÍ¼ TagMapEx = 0 #(WORD TagMapEx)// Ä¿±êµØÍ¼À©Õ¹ ReqMinLV = 0 #(WORD ReqMinLV)// ¶ÓÔ±×îµÍµÈ¼¶ÏÞÖÆ ReqMaxLV = 0 #(WORD ReqMaxLV)// ¶ÓÔ±×î¸ßµÈ¼¶ÏÞÖÆ MemberCount = 0 #(BYTE MemberCount) MemberList = list() #(vector MemberList)// ³ÉÔ±Áбí, size = MemberCount data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB9 self.Head.SubCmd = 0x02 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.TeamID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.TagMapID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.TagMapEx,_pos = CommFunc.ReadWORD(_lpData, _pos) self.ReqMinLV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.ReqMaxLV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.MemberCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.MemberCount): temMemberList = tagGCTeamMember() _pos = temMemberList.ReadData(_lpData, _pos) self.MemberList.append(temMemberList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB9 self.Head.SubCmd = 0x02 self.TeamID = 0 self.TagMapID = 0 self.TagMapEx = 0 self.ReqMinLV = 0 self.ReqMaxLV = 0 self.MemberCount = 0 self.MemberList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 4 length += 2 length += 2 length += 2 length += 1 for i in range(self.MemberCount): length += self.MemberList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.TeamID) data = CommFunc.WriteDWORD(data, self.TagMapID) data = CommFunc.WriteWORD(data, self.TagMapEx) data = CommFunc.WriteWORD(data, self.ReqMinLV) data = CommFunc.WriteWORD(data, self.ReqMaxLV) data = CommFunc.WriteBYTE(data, self.MemberCount) for i in range(self.MemberCount): data = CommFunc.WriteString(data, self.MemberList[i].GetLength(), self.MemberList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, TeamID:%d, TagMapID:%d, TagMapEx:%d, ReqMinLV:%d, ReqMaxLV:%d, MemberCount:%d, MemberList:%s '''\ %( self.Head.OutputString(), self.TeamID, self.TagMapID, self.TagMapEx, self.ReqMinLV, self.ReqMaxLV, self.MemberCount, "..." ) return DumpString m_NAtagGCTeamMemberInfo=tagGCTeamMemberInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCTeamMemberInfo.Head.Cmd,m_NAtagGCTeamMemberInfo.Head.SubCmd))] = m_NAtagGCTeamMemberInfo #------------------------------------------------------ # B9 05 ¶ÓÎé³ÉÔ±ÊôÐÔˢР#tagGCTeamMemberRefreshProperty class tagGCTeamMemberRefreshProperty(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ("RefreshType", c_ubyte), #Ë¢ÐÂÀàÐÍ£¬Í¬0418ÊôÐÔÀàÐÍ ("Value", c_int), ] def __init__(self): self.Clear() self.Cmd = 0xB9 self.SubCmd = 0x05 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xB9 self.SubCmd = 0x05 self.PlayerID = 0 self.RefreshType = 0 self.Value = 0 return def GetLength(self): return sizeof(tagGCTeamMemberRefreshProperty) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// B9 05 ¶ÓÎé³ÉÔ±ÊôÐÔˢР//tagGCTeamMemberRefreshProperty: Cmd:%s, SubCmd:%s, PlayerID:%d, RefreshType:%d, Value:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID, self.RefreshType, self.Value ) return DumpString m_NAtagGCTeamMemberRefreshProperty=tagGCTeamMemberRefreshProperty() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCTeamMemberRefreshProperty.Cmd,m_NAtagGCTeamMemberRefreshProperty.SubCmd))] = m_NAtagGCTeamMemberRefreshProperty #------------------------------------------------------ # B9 12 ¶ÓÔ±¹¦ÄÜÊý¾Ý²éѯ½á¹û #tagGCTeamMemFuncDataList class tagGCTeamMemFuncData(Structure): PlayerID = 0 #(DWORD PlayerID) DataLen = 0 #(WORD DataLen) MemFuncData = "" #(String MemFuncData)// ¶ÓÔ±¶ÔÓ¦¹¦ÄÜÊý¾Ý²éѯ½á¹û data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.DataLen,_pos = CommFunc.ReadWORD(_lpData, _pos) self.MemFuncData,_pos = CommFunc.ReadString(_lpData, _pos,self.DataLen) return _pos def Clear(self): self.PlayerID = 0 self.DataLen = 0 self.MemFuncData = "" return def GetLength(self): length = 0 length += 4 length += 2 length += len(self.MemFuncData) return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.PlayerID) data = CommFunc.WriteWORD(data, self.DataLen) data = CommFunc.WriteString(data, self.DataLen, self.MemFuncData) return data def OutputString(self): DumpString = ''' PlayerID:%d, DataLen:%d, MemFuncData:%s '''\ %( self.PlayerID, self.DataLen, self.MemFuncData ) return DumpString class tagGCTeamMemFuncDataList(Structure): Head = tagHead() TeamMemFuncType = 0 #(BYTE TeamMemFuncType)// ²éѯ¶ÓÔ±µÄ¹¦ÄÜÊý¾ÝÀàÐÍ MemCount = 0 #(BYTE MemCount) MemFuncDataList = list() #(vector MemFuncDataList)// Êý¾ÝÁбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB9 self.Head.SubCmd = 0x12 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.TeamMemFuncType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.MemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.MemCount): temMemFuncDataList = tagGCTeamMemFuncData() _pos = temMemFuncDataList.ReadData(_lpData, _pos) self.MemFuncDataList.append(temMemFuncDataList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB9 self.Head.SubCmd = 0x12 self.TeamMemFuncType = 0 self.MemCount = 0 self.MemFuncDataList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 1 for i in range(self.MemCount): length += self.MemFuncDataList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.TeamMemFuncType) data = CommFunc.WriteBYTE(data, self.MemCount) for i in range(self.MemCount): data = CommFunc.WriteString(data, self.MemFuncDataList[i].GetLength(), self.MemFuncDataList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, TeamMemFuncType:%d, MemCount:%d, MemFuncDataList:%s '''\ %( self.Head.OutputString(), self.TeamMemFuncType, self.MemCount, "..." ) return DumpString m_NAtagGCTeamMemFuncDataList=tagGCTeamMemFuncDataList() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCTeamMemFuncDataList.Head.Cmd,m_NAtagGCTeamMemFuncDataList.Head.SubCmd))] = m_NAtagGCTeamMemFuncDataList #------------------------------------------------------ # D1 25 ֪ͨ¿É½øÈë¿ç·þÍõÕßÕù°Ô #tagCanEnterMergeKing class tagCanEnterMergeKing(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("GroupType", c_ubyte), # Õ½¶·ÈüÊÂ×éÀàÐÍ£¬Èç16Ç¿µÈ ] def __init__(self): self.Clear() self.Cmd = 0xD1 self.SubCmd = 0x25 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xD1 self.SubCmd = 0x25 self.GroupType = 0 return def GetLength(self): return sizeof(tagCanEnterMergeKing) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// D1 25 ֪ͨ¿É½øÈë¿ç·þÍõÕßÕù°Ô //tagCanEnterMergeKing: Cmd:%s, SubCmd:%s, GroupType:%d '''\ %( self.Cmd, self.SubCmd, self.GroupType ) return DumpString m_NAtagCanEnterMergeKing=tagCanEnterMergeKing() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCanEnterMergeKing.Cmd,m_NAtagCanEnterMergeKing.SubCmd))] = m_NAtagCanEnterMergeKing #------------------------------------------------------ # D1 24 ֪ͨ¿É½øÈë¿ç·þPKÆ¥Åä #tagCanEnterMergePK class tagCanEnterMergePKMember(Structure): Head = tagHead() AccIDLen = 0 #(BYTE AccIDLen) AccID = "" #(String AccID) NameLen = 0 #(BYTE NameLen) PlayerName = "" #(String PlayerName) Job = 0 #(BYTE Job) PKCnt = 0 #(DWORD PKCnt)// ÒÑPK´ÎÊý PKCWinCnt = 0 #(DWORD PKCWinCnt)// µ±Ç°Á¬Ê¤´ÎÊý Score = 0 #(DWORD Score)// Èü¼¾»ý·Ö DayScore = 0 #(DWORD DayScore)// µ±ÈÕ»ý·Ö PKWinCnt = 0 #(DWORD PKWinCnt)// ÀÛ¼ÆÊ¤Àû´ÎÊý MaxCWinCnt = 0 #(DWORD MaxCWinCnt)// ×î´óÁ¬Ê¤´ÎÊý Grade = 0 #(BYTE Grade)// µ±Ç°¶Îλ FightPower = 0 #(DWORD FightPower)// Õ½¶·Á¦ PlayerLV = 0 #(WORD PlayerLV)// µÈ¼¶ MaxHP = 0 #(DWORD MaxHP)// ×î´óÉúÃüÖµ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xD1 self.Head.SubCmd = 0x24 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.AccIDLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.AccID,_pos = CommFunc.ReadString(_lpData, _pos,self.AccIDLen) self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen) self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.PKCnt,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.PKCWinCnt,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Score,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.DayScore,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.PKWinCnt,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MaxCWinCnt,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Grade,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.PlayerLV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.MaxHP,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xD1 self.Head.SubCmd = 0x24 self.AccIDLen = 0 self.AccID = "" self.NameLen = 0 self.PlayerName = "" self.Job = 0 self.PKCnt = 0 self.PKCWinCnt = 0 self.Score = 0 self.DayScore = 0 self.PKWinCnt = 0 self.MaxCWinCnt = 0 self.Grade = 0 self.FightPower = 0 self.PlayerLV = 0 self.MaxHP = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += len(self.AccID) length += 1 length += len(self.PlayerName) length += 1 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 1 length += 4 length += 2 length += 4 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.AccIDLen) data = CommFunc.WriteString(data, self.AccIDLen, self.AccID) data = CommFunc.WriteBYTE(data, self.NameLen) data = CommFunc.WriteString(data, self.NameLen, self.PlayerName) data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteDWORD(data, self.PKCnt) data = CommFunc.WriteDWORD(data, self.PKCWinCnt) data = CommFunc.WriteDWORD(data, self.Score) data = CommFunc.WriteDWORD(data, self.DayScore) data = CommFunc.WriteDWORD(data, self.PKWinCnt) data = CommFunc.WriteDWORD(data, self.MaxCWinCnt) data = CommFunc.WriteBYTE(data, self.Grade) data = CommFunc.WriteDWORD(data, self.FightPower) data = CommFunc.WriteWORD(data, self.PlayerLV) data = CommFunc.WriteDWORD(data, self.MaxHP) return data def OutputString(self): DumpString = ''' Head:%s, AccIDLen:%d, AccID:%s, NameLen:%d, PlayerName:%s, Job:%d, PKCnt:%d, PKCWinCnt:%d, Score:%d, DayScore:%d, PKWinCnt:%d, MaxCWinCnt:%d, Grade:%d, FightPower:%d, PlayerLV:%d, MaxHP:%d '''\ %( self.Head.OutputString(), self.AccIDLen, self.AccID, self.NameLen, self.PlayerName, self.Job, self.PKCnt, self.PKCWinCnt, self.Score, self.DayScore, self.PKWinCnt, self.MaxCWinCnt, self.Grade, self.FightPower, self.PlayerLV, self.MaxHP ) return DumpString class tagCanEnterMergePK(Structure): Head = tagHead() MapID = 0 #(DWORD MapID)// Òª½øÈëµÄµØÍ¼ID RoomID = 0 #(DWORD RoomID)// Òª½øÈëµÄ·¿¼äID MemberCnt = 0 #(BYTE MemberCnt)// ¶ÔÕ½Íæ¼Ò¸öÊý MemberList = list() #(vector MemberList)// ¶ÔÕ½Íæ¼ÒÏêϸÐÅÏ¢ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xD1 self.Head.SubCmd = 0x24 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.MapID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.RoomID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MemberCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.MemberCnt): temMemberList = tagCanEnterMergePKMember() _pos = temMemberList.ReadData(_lpData, _pos) self.MemberList.append(temMemberList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xD1 self.Head.SubCmd = 0x24 self.MapID = 0 self.RoomID = 0 self.MemberCnt = 0 self.MemberList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 4 length += 1 for i in range(self.MemberCnt): length += self.MemberList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.MapID) data = CommFunc.WriteDWORD(data, self.RoomID) data = CommFunc.WriteBYTE(data, self.MemberCnt) for i in range(self.MemberCnt): data = CommFunc.WriteString(data, self.MemberList[i].GetLength(), self.MemberList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, MapID:%d, RoomID:%d, MemberCnt:%d, MemberList:%s '''\ %( self.Head.OutputString(), self.MapID, self.RoomID, self.MemberCnt, "..." ) return DumpString m_NAtagCanEnterMergePK=tagCanEnterMergePK() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCanEnterMergePK.Head.Cmd,m_NAtagCanEnterMergePK.Head.SubCmd))] = m_NAtagCanEnterMergePK #------------------------------------------------------ # D1 23 ֪ͨ¿É½øÈë¿ç·þ»î¶¯ #tagCanEnterMergeServer class tagCanEnterMergeServer(Structure): Head = tagHead() ActionType = 0 #(BYTE ActionType)//»î¶¯ÀàÐÍ MapID = 0 #(DWORD MapID)// µÇ¼ºóÔÚÖÐתµØÍ¼Ê±ÒªÌø×ª½øÈëµÄµØÍ¼ID LineID = 0 #(DWORD LineID)// Òª½øÈëµÄÏß·»òµØÍ¼À©Õ¹Êý¾Ý NewAccIDLen = 0 #(BYTE NewAccIDLen) NewAccID = "" #(String NewAccID) NewPswLen = 0 #(BYTE NewPswLen) NewPsw = "" #(String NewPsw) data = None def __init__(self): self.Clear() self.Head.Cmd = 0xD1 self.Head.SubCmd = 0x23 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.ActionType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.MapID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.LineID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.NewAccIDLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.NewAccID,_pos = CommFunc.ReadString(_lpData, _pos,self.NewAccIDLen) self.NewPswLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.NewPsw,_pos = CommFunc.ReadString(_lpData, _pos,self.NewPswLen) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xD1 self.Head.SubCmd = 0x23 self.ActionType = 0 self.MapID = 0 self.LineID = 0 self.NewAccIDLen = 0 self.NewAccID = "" self.NewPswLen = 0 self.NewPsw = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 4 length += 4 length += 1 length += len(self.NewAccID) length += 1 length += len(self.NewPsw) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.ActionType) data = CommFunc.WriteDWORD(data, self.MapID) data = CommFunc.WriteDWORD(data, self.LineID) data = CommFunc.WriteBYTE(data, self.NewAccIDLen) data = CommFunc.WriteString(data, self.NewAccIDLen, self.NewAccID) data = CommFunc.WriteBYTE(data, self.NewPswLen) data = CommFunc.WriteString(data, self.NewPswLen, self.NewPsw) return data def OutputString(self): DumpString = ''' Head:%s, ActionType:%d, MapID:%d, LineID:%d, NewAccIDLen:%d, NewAccID:%s, NewPswLen:%d, NewPsw:%s '''\ %( self.Head.OutputString(), self.ActionType, self.MapID, self.LineID, self.NewAccIDLen, self.NewAccID, self.NewPswLen, self.NewPsw ) return DumpString m_NAtagCanEnterMergeServer=tagCanEnterMergeServer() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCanEnterMergeServer.Head.Cmd,m_NAtagCanEnterMergeServer.Head.SubCmd))] = m_NAtagCanEnterMergeServer #------------------------------------------------------ #D1 08 ÉÏ´«Êý¾Ý²éѯ½á¹û #tagMergeRegisterQueryResult class tagMergeRegisterQueryResult(Structure): Head = tagHead() NewAccIDLen = 0 #(BYTE NewAccIDLen) NewAccID = "" #(String NewAccID) NewPswLen = 0 #(BYTE NewPswLen) NewPsw = "" #(String NewPsw) data = None def __init__(self): self.Clear() self.Head.Cmd = 0xD1 self.Head.SubCmd = 0x08 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.NewAccIDLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.NewAccID,_pos = CommFunc.ReadString(_lpData, _pos,self.NewAccIDLen) self.NewPswLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.NewPsw,_pos = CommFunc.ReadString(_lpData, _pos,self.NewPswLen) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xD1 self.Head.SubCmd = 0x08 self.NewAccIDLen = 0 self.NewAccID = "" self.NewPswLen = 0 self.NewPsw = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += len(self.NewAccID) length += 1 length += len(self.NewPsw) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.NewAccIDLen) data = CommFunc.WriteString(data, self.NewAccIDLen, self.NewAccID) data = CommFunc.WriteBYTE(data, self.NewPswLen) data = CommFunc.WriteString(data, self.NewPswLen, self.NewPsw) return data def OutputString(self): DumpString = ''' Head:%s, NewAccIDLen:%d, NewAccID:%s, NewPswLen:%d, NewPsw:%s '''\ %( self.Head.OutputString(), self.NewAccIDLen, self.NewAccID, self.NewPswLen, self.NewPsw ) return DumpString m_NAtagMergeRegisterQueryResult=tagMergeRegisterQueryResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMergeRegisterQueryResult.Head.Cmd,m_NAtagMergeRegisterQueryResult.Head.SubCmd))] = m_NAtagMergeRegisterQueryResult #------------------------------------------------------ #D1 16 ¿ç·þÈü·þÎñÆ÷ÐÅÏ¢ #tagMergeServerInfo class tagMergeServerInfo(Structure): Head = tagHead() ServerIPLen = 0 #(BYTE ServerIPLen) ServerIP = "" #(String ServerIP) Port = 0 #(DWORD Port) IsMergeServer = 0 #(BYTE IsMergeServer) data = None def __init__(self): self.Clear() self.Head.Cmd = 0xD1 self.Head.SubCmd = 0x16 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.ServerIPLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ServerIP,_pos = CommFunc.ReadString(_lpData, _pos,self.ServerIPLen) self.Port,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.IsMergeServer,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xD1 self.Head.SubCmd = 0x16 self.ServerIPLen = 0 self.ServerIP = "" self.Port = 0 self.IsMergeServer = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += len(self.ServerIP) length += 4 length += 1 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.ServerIPLen) data = CommFunc.WriteString(data, self.ServerIPLen, self.ServerIP) data = CommFunc.WriteDWORD(data, self.Port) data = CommFunc.WriteBYTE(data, self.IsMergeServer) return data def OutputString(self): DumpString = ''' Head:%s, ServerIPLen:%d, ServerIP:%s, Port:%d, IsMergeServer:%d '''\ %( self.Head.OutputString(), self.ServerIPLen, self.ServerIP, self.Port, self.IsMergeServer ) return DumpString m_NAtagMergeServerInfo=tagMergeServerInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMergeServerInfo.Head.Cmd,m_NAtagMergeServerInfo.Head.SubCmd))] = m_NAtagMergeServerInfo #------------------------------------------------------ # D1 27 ֪ͨ¿ç·þPKÕ½¶·½á¹û #tagMergePKOverInfo class tagMergePKOver(Structure): TimeLen = 0 #(BYTE TimeLen) TimeStr = "" #(String TimeStr)// yyyy-MM-dd HH:mm:ss RoomID = 0 #(DWORD RoomID) OverType = 0 #(BYTE OverType) RemainTime = 0 #(DWORD RemainTime) WinnerAccIDLen = 0 #(BYTE WinnerAccIDLen) WinnerAccID = "" #(String WinnerAccID) LoserAccIDLen = 0 #(BYTE LoserAccIDLen) LoserAccID = "" #(String LoserAccID) WinnerID = 0 #(DWORD WinnerID) LoserID = 0 #(DWORD LoserID) WinnerNameLen = 0 #(BYTE WinnerNameLen) WinnerName = "" #(String WinnerName) LoserNameLen = 0 #(BYTE LoserNameLen) LoserName = "" #(String LoserName) WinnerAddScore = 0 #(WORD WinnerAddScore) LoserAddScoreLen = 0 #(BYTE LoserAddScoreLen) LoserAddScore = "" #(String LoserAddScore)// ʧ°Ü¸½¼Ó·Ö£¬Ö§³Ö¸ºÖµ WinnerWinCnt = 0 #(BYTE WinnerWinCnt)// ±È·Ö»ñʤ·½»ñʤ´ÎÊý LoserWinCnt = 0 #(BYTE LoserWinCnt)// ±È·Öʧ°Ü·½»ñʤ´ÎÊý WinnerCWinCnt = 0 #(WORD WinnerCWinCnt)// »ñʤÕßÁ¬Ê¤Êý LuckyItemID = 0 #(DWORD LuckyItemID) data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.TimeLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.TimeStr,_pos = CommFunc.ReadString(_lpData, _pos,self.TimeLen) self.RoomID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.OverType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.RemainTime,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.WinnerAccIDLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.WinnerAccID,_pos = CommFunc.ReadString(_lpData, _pos,self.WinnerAccIDLen) self.LoserAccIDLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LoserAccID,_pos = CommFunc.ReadString(_lpData, _pos,self.LoserAccIDLen) self.WinnerID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.LoserID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.WinnerNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.WinnerName,_pos = CommFunc.ReadString(_lpData, _pos,self.WinnerNameLen) self.LoserNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LoserName,_pos = CommFunc.ReadString(_lpData, _pos,self.LoserNameLen) self.WinnerAddScore,_pos = CommFunc.ReadWORD(_lpData, _pos) self.LoserAddScoreLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LoserAddScore,_pos = CommFunc.ReadString(_lpData, _pos,self.LoserAddScoreLen) self.WinnerWinCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LoserWinCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.WinnerCWinCnt,_pos = CommFunc.ReadWORD(_lpData, _pos) self.LuckyItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): self.TimeLen = 0 self.TimeStr = "" self.RoomID = 0 self.OverType = 0 self.RemainTime = 0 self.WinnerAccIDLen = 0 self.WinnerAccID = "" self.LoserAccIDLen = 0 self.LoserAccID = "" self.WinnerID = 0 self.LoserID = 0 self.WinnerNameLen = 0 self.WinnerName = "" self.LoserNameLen = 0 self.LoserName = "" self.WinnerAddScore = 0 self.LoserAddScoreLen = 0 self.LoserAddScore = "" self.WinnerWinCnt = 0 self.LoserWinCnt = 0 self.WinnerCWinCnt = 0 self.LuckyItemID = 0 return def GetLength(self): length = 0 length += 1 length += len(self.TimeStr) length += 4 length += 1 length += 4 length += 1 length += len(self.WinnerAccID) length += 1 length += len(self.LoserAccID) length += 4 length += 4 length += 1 length += len(self.WinnerName) length += 1 length += len(self.LoserName) length += 2 length += 1 length += len(self.LoserAddScore) length += 1 length += 1 length += 2 length += 4 return length def GetBuffer(self): data = '' data = CommFunc.WriteBYTE(data, self.TimeLen) data = CommFunc.WriteString(data, self.TimeLen, self.TimeStr) data = CommFunc.WriteDWORD(data, self.RoomID) data = CommFunc.WriteBYTE(data, self.OverType) data = CommFunc.WriteDWORD(data, self.RemainTime) data = CommFunc.WriteBYTE(data, self.WinnerAccIDLen) data = CommFunc.WriteString(data, self.WinnerAccIDLen, self.WinnerAccID) data = CommFunc.WriteBYTE(data, self.LoserAccIDLen) data = CommFunc.WriteString(data, self.LoserAccIDLen, self.LoserAccID) data = CommFunc.WriteDWORD(data, self.WinnerID) data = CommFunc.WriteDWORD(data, self.LoserID) data = CommFunc.WriteBYTE(data, self.WinnerNameLen) data = CommFunc.WriteString(data, self.WinnerNameLen, self.WinnerName) data = CommFunc.WriteBYTE(data, self.LoserNameLen) data = CommFunc.WriteString(data, self.LoserNameLen, self.LoserName) data = CommFunc.WriteWORD(data, self.WinnerAddScore) data = CommFunc.WriteBYTE(data, self.LoserAddScoreLen) data = CommFunc.WriteString(data, self.LoserAddScoreLen, self.LoserAddScore) data = CommFunc.WriteBYTE(data, self.WinnerWinCnt) data = CommFunc.WriteBYTE(data, self.LoserWinCnt) data = CommFunc.WriteWORD(data, self.WinnerCWinCnt) data = CommFunc.WriteDWORD(data, self.LuckyItemID) return data def OutputString(self): DumpString = ''' TimeLen:%d, TimeStr:%s, RoomID:%d, OverType:%d, RemainTime:%d, WinnerAccIDLen:%d, WinnerAccID:%s, LoserAccIDLen:%d, LoserAccID:%s, WinnerID:%d, LoserID:%d, WinnerNameLen:%d, WinnerName:%s, LoserNameLen:%d, LoserName:%s, WinnerAddScore:%d, LoserAddScoreLen:%d, LoserAddScore:%s, WinnerWinCnt:%d, LoserWinCnt:%d, WinnerCWinCnt:%d, LuckyItemID:%d '''\ %( self.TimeLen, self.TimeStr, self.RoomID, self.OverType, self.RemainTime, self.WinnerAccIDLen, self.WinnerAccID, self.LoserAccIDLen, self.LoserAccID, self.WinnerID, self.LoserID, self.WinnerNameLen, self.WinnerName, self.LoserNameLen, self.LoserName, self.WinnerAddScore, self.LoserAddScoreLen, self.LoserAddScore, self.WinnerWinCnt, self.LoserWinCnt, self.WinnerCWinCnt, self.LuckyItemID ) return DumpString class tagMergePKOverInfo(Structure): Head = tagHead() Count = 0 #(BYTE Count) PKOverList = list() #(vector PKOverList) data = None def __init__(self): self.Clear() self.Head.Cmd = 0xD1 self.Head.SubCmd = 0x27 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Count): temPKOverList = tagMergePKOver() _pos = temPKOverList.ReadData(_lpData, _pos) self.PKOverList.append(temPKOverList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xD1 self.Head.SubCmd = 0x27 self.Count = 0 self.PKOverList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.Count): length += self.PKOverList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.PKOverList[i].GetLength(), self.PKOverList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Count:%d, PKOverList:%s '''\ %( self.Head.OutputString(), self.Count, "..." ) return DumpString m_NAtagMergePKOverInfo=tagMergePKOverInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMergePKOverInfo.Head.Cmd,m_NAtagMergePKOverInfo.Head.SubCmd))] = m_NAtagMergePKOverInfo #------------------------------------------------------ # D1 28 ¿ç·þPKÈü¼¾ÐÅÏ¢ #tagGCMergePKSeasonInfo class tagGCMergePKSeasonInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("SeasonID", c_int), # Èü¼¾ID ("SeasonStartTime", c_int), # Èü¼¾¿ªÊ¼Ê±¼ä ("SeasonCycle", c_ubyte), # Èü¼¾ÖÜÆÚÌìÊý ("IsSeasonEnd", c_ubyte), # Èü¼¾ÊÇ·ñ½áÊø ] def __init__(self): self.Clear() self.Cmd = 0xD1 self.SubCmd = 0x28 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xD1 self.SubCmd = 0x28 self.SeasonID = 0 self.SeasonStartTime = 0 self.SeasonCycle = 0 self.IsSeasonEnd = 0 return def GetLength(self): return sizeof(tagGCMergePKSeasonInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// D1 28 ¿ç·þPKÈü¼¾ÐÅÏ¢ //tagGCMergePKSeasonInfo: Cmd:%s, SubCmd:%s, SeasonID:%d, SeasonStartTime:%d, SeasonCycle:%d, IsSeasonEnd:%d '''\ %( self.Cmd, self.SubCmd, self.SeasonID, self.SeasonStartTime, self.SeasonCycle, self.IsSeasonEnd ) return DumpString m_NAtagGCMergePKSeasonInfo=tagGCMergePKSeasonInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCMergePKSeasonInfo.Cmd,m_NAtagGCMergePKSeasonInfo.SubCmd))] = m_NAtagGCMergePKSeasonInfo #------------------------------------------------------ # D1 26 ֪ͨ¿ç·þPKÐøÊ¤½á¹û #tagRecoverMergePKWinOK class tagRecoverMergePKWinOK(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0xD1 self.SubCmd = 0x26 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xD1 self.SubCmd = 0x26 return def GetLength(self): return sizeof(tagRecoverMergePKWinOK) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// D1 26 ֪ͨ¿ç·þPKÐøÊ¤½á¹û //tagRecoverMergePKWinOK: Cmd:%s, SubCmd:%s '''\ %( self.Cmd, self.SubCmd ) return DumpString m_NAtagRecoverMergePKWinOK=tagRecoverMergePKWinOK() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagRecoverMergePKWinOK.Cmd,m_NAtagRecoverMergePKWinOK.SubCmd))] = m_NAtagRecoverMergePKWinOK #------------------------------------------------------ #A1 25 ÇëÇóÇл»µØÍ¼Ê§°Ü#tagMCChangeMapFail class tagMCChangeMapFail(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0xA1 self.SubCmd = 0x25 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA1 self.SubCmd = 0x25 return def GetLength(self): return sizeof(tagMCChangeMapFail) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//A1 25 ÇëÇóÇл»µØÍ¼Ê§°Ü//tagMCChangeMapFail: Cmd:%s, SubCmd:%s '''\ %( self.Cmd, self.SubCmd ) return DumpString m_NAtagMCChangeMapFail=tagMCChangeMapFail() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCChangeMapFail.Cmd,m_NAtagMCChangeMapFail.SubCmd))] = m_NAtagMCChangeMapFail #------------------------------------------------------ # A1 10 ³äÖµ¹ºÂò´ÎÊýÐÅÏ¢ #tagMCCoinToGoldCountInfo class tagMCCoinToGoldCount(Structure): _pack_ = 1 _fields_ = [ ("RecordID", c_ubyte), ("TodayPayCount", c_ushort), # ½ñÈÕÒѹºÂò´ÎÊý ("TotalPayCount", c_int), # ÀÛ¼Æ×ܹºÂò´ÎÊý ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.RecordID = 0 self.TodayPayCount = 0 self.TotalPayCount = 0 return def GetLength(self): return sizeof(tagMCCoinToGoldCount) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A1 10 ³äÖµ¹ºÂò´ÎÊýÐÅÏ¢ //tagMCCoinToGoldCountInfo: RecordID:%d, TodayPayCount:%d, TotalPayCount:%d '''\ %( self.RecordID, self.TodayPayCount, self.TotalPayCount ) return DumpString class tagMCCoinToGoldCountInfo(Structure): Head = tagHead() RecordCount = 0 #(BYTE RecordCount) CTGCountInfoList = list() #(vector CTGCountInfoList) data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA1 self.Head.SubCmd = 0x10 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.RecordCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.RecordCount): temCTGCountInfoList = tagMCCoinToGoldCount() _pos = temCTGCountInfoList.ReadData(_lpData, _pos) self.CTGCountInfoList.append(temCTGCountInfoList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA1 self.Head.SubCmd = 0x10 self.RecordCount = 0 self.CTGCountInfoList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.RecordCount): length += self.CTGCountInfoList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.RecordCount) for i in range(self.RecordCount): data = CommFunc.WriteString(data, self.CTGCountInfoList[i].GetLength(), self.CTGCountInfoList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, RecordCount:%d, CTGCountInfoList:%s '''\ %( self.Head.OutputString(), self.RecordCount, "..." ) return DumpString m_NAtagMCCoinToGoldCountInfo=tagMCCoinToGoldCountInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCoinToGoldCountInfo.Head.Cmd,m_NAtagMCCoinToGoldCountInfo.Head.SubCmd))] = m_NAtagMCCoinToGoldCountInfo #------------------------------------------------------ #A1 06 µã¾íת»¯Ôª±¦³äÖµ¼Ç¼ #tagMCCoinToGoldReport class tagMCCoinToGoldReport(Structure): Head = tagHead() OrderLen = 0 #(BYTE OrderLen) OrderID = "" #(String OrderID)// ¶©µ¥id Coin = 0 #(DWORD Coin)// ³äÖµµÄµã¾í data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA1 self.Head.SubCmd = 0x06 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.OrderLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.OrderID,_pos = CommFunc.ReadString(_lpData, _pos,self.OrderLen) self.Coin,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA1 self.Head.SubCmd = 0x06 self.OrderLen = 0 self.OrderID = "" self.Coin = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += len(self.OrderID) length += 4 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.OrderLen) data = CommFunc.WriteString(data, self.OrderLen, self.OrderID) data = CommFunc.WriteDWORD(data, self.Coin) return data def OutputString(self): DumpString = ''' Head:%s, OrderLen:%d, OrderID:%s, Coin:%d '''\ %( self.Head.OutputString(), self.OrderLen, self.OrderID, self.Coin ) return DumpString m_NAtagMCCoinToGoldReport=tagMCCoinToGoldReport() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCoinToGoldReport.Head.Cmd,m_NAtagMCCoinToGoldReport.Head.SubCmd))] = m_NAtagMCCoinToGoldReport #------------------------------------------------------ #A1 05 Ôª±¦Ïû·Ñ¼Ç¼ #tagMCGoldCostReport class tagMCGoldCostReport(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("CostType", c_int), # Ïû·Ñµã±ê¼Ç ("ItemID", c_int), # Ïû·ÑµÄÎïÆ·id ("Price", c_int), # Ïû·ÑÔª±¦Êý ] def __init__(self): self.Clear() self.Cmd = 0xA1 self.SubCmd = 0x05 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA1 self.SubCmd = 0x05 self.CostType = 0 self.ItemID = 0 self.Price = 0 return def GetLength(self): return sizeof(tagMCGoldCostReport) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//A1 05 Ôª±¦Ïû·Ñ¼Ç¼ //tagMCGoldCostReport: Cmd:%s, SubCmd:%s, CostType:%d, ItemID:%d, Price:%d '''\ %( self.Cmd, self.SubCmd, self.CostType, self.ItemID, self.Price ) return DumpString m_NAtagMCGoldCostReport=tagMCGoldCostReport() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCGoldCostReport.Cmd,m_NAtagMCGoldCostReport.SubCmd))] = m_NAtagMCGoldCostReport #------------------------------------------------------ #A1 02 ÈÎÎñ»ñµÃÎïÆ·ÏÔʾ #tagMCItemShowInTask class tagMCItemShowInTask(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ubyte), ##ÎïÆ·ÀàÐÍ£¬¼¼ÄÜ:0£¬×°±¸:1£¬³èÎï:2£¬×øÆï:3£¬ÆäËû:4 ("ID", c_int), #ÎïÆ·ID ] def __init__(self): self.Clear() self.Cmd = 0xA1 self.SubCmd = 0x02 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA1 self.SubCmd = 0x02 self.Type = 0 self.ID = 0 return def GetLength(self): return sizeof(tagMCItemShowInTask) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//A1 02 ÈÎÎñ»ñµÃÎïÆ·ÏÔʾ //tagMCItemShowInTask: Cmd:%s, SubCmd:%s, Type:%d, ID:%d '''\ %( self.Cmd, self.SubCmd, self.Type, self.ID ) return DumpString m_NAtagMCItemShowInTask=tagMCItemShowInTask() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCItemShowInTask.Cmd,m_NAtagMCItemShowInTask.SubCmd))] = m_NAtagMCItemShowInTask #------------------------------------------------------ # A1 09 Íæ¼ÒÀÛ¼ÆÔÚÏßʱ³¤ #tagMCOnLineTimeTotal class tagMCOnLineTimeTotal(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("OnLineTimeTotal", c_int), #ÀÛ¼ÆÔÚÏßʱ³¤£¨Ã룩 ] def __init__(self): self.Clear() self.Cmd = 0xA1 self.SubCmd = 0x09 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA1 self.SubCmd = 0x09 self.OnLineTimeTotal = 0 return def GetLength(self): return sizeof(tagMCOnLineTimeTotal) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A1 09 Íæ¼ÒÀÛ¼ÆÔÚÏßʱ³¤ //tagMCOnLineTimeTotal: Cmd:%s, SubCmd:%s, OnLineTimeTotal:%d '''\ %( self.Cmd, self.SubCmd, self.OnLineTimeTotal ) return DumpString m_NAtagMCOnLineTimeTotal=tagMCOnLineTimeTotal() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCOnLineTimeTotal.Cmd,m_NAtagMCOnLineTimeTotal.SubCmd))] = m_NAtagMCOnLineTimeTotal #------------------------------------------------------ #A1 07 Íæ¼ÒµôÂÊ¼Ó³É #tagMCPlayerDropRate class tagMCPlayerDropRate(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("WorldDropRate", c_ushort), #È«·þ»î¶¯¼Ó³É ("WorldBossRate", c_ushort), #ÊÀ½çboss¼Ó³É ] def __init__(self): self.Clear() self.Cmd = 0xA1 self.SubCmd = 0x07 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA1 self.SubCmd = 0x07 self.WorldDropRate = 0 self.WorldBossRate = 0 return def GetLength(self): return sizeof(tagMCPlayerDropRate) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//A1 07 Íæ¼ÒµôÂÊ¼Ó³É //tagMCPlayerDropRate: Cmd:%s, SubCmd:%s, WorldDropRate:%d, WorldBossRate:%d '''\ %( self.Cmd, self.SubCmd, self.WorldDropRate, self.WorldBossRate ) return DumpString m_NAtagMCPlayerDropRate=tagMCPlayerDropRate() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPlayerDropRate.Cmd,m_NAtagMCPlayerDropRate.SubCmd))] = m_NAtagMCPlayerDropRate #------------------------------------------------------ # A1 24 Íæ¼Ò³õʼ»¯À©Õ¹ÐÅÏ¢ #tagMCPlayerInfo class tagMCPlayerInfo(Structure): Head = tagHead() IsAdult = 0 #(BYTE IsAdult)//ÊÇ·ñ³ÉÄê CreateRoleTime = "" #(char CreateRoleTime[19]) data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA1 self.Head.SubCmd = 0x24 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.IsAdult,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.CreateRoleTime,_pos = CommFunc.ReadString(_lpData, _pos,19) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA1 self.Head.SubCmd = 0x24 self.IsAdult = 0 self.CreateRoleTime = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 19 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.IsAdult) data = CommFunc.WriteString(data, 19, self.CreateRoleTime) return data def OutputString(self): DumpString = ''' Head:%s, IsAdult:%d, CreateRoleTime:%s '''\ %( self.Head.OutputString(), self.IsAdult, self.CreateRoleTime ) return DumpString m_NAtagMCPlayerInfo=tagMCPlayerInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPlayerInfo.Head.Cmd,m_NAtagMCPlayerInfo.Head.SubCmd))] = m_NAtagMCPlayerInfo #------------------------------------------------------ #A1 01 Ö÷½ÇÍ˳öÕ½¶·×´Ì¬ #tagPlayerLeaveBattle class tagPlayerLeaveBattle(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0xA1 self.SubCmd = 0x01 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA1 self.SubCmd = 0x01 return def GetLength(self): return sizeof(tagPlayerLeaveBattle) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//A1 01 Ö÷½ÇÍ˳öÕ½¶·×´Ì¬ //tagPlayerLeaveBattle: Cmd:%s, SubCmd:%s '''\ %( self.Cmd, self.SubCmd ) return DumpString m_NAtagPlayerLeaveBattle=tagPlayerLeaveBattle() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerLeaveBattle.Cmd,m_NAtagPlayerLeaveBattle.SubCmd))] = m_NAtagPlayerLeaveBattle #------------------------------------------------------ #A1 26 ×¼±¸Çл»µØÍ¼ #tagMCPrepareChangeMap class tagMCPrepareChangeMap(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("MapID", c_ushort), ("FuncLineID", c_ushort), #¹¦ÄÜÏß·ID ] def __init__(self): self.Clear() self.Cmd = 0xA1 self.SubCmd = 0x26 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA1 self.SubCmd = 0x26 self.MapID = 0 self.FuncLineID = 0 return def GetLength(self): return sizeof(tagMCPrepareChangeMap) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//A1 26 ×¼±¸Çл»µØÍ¼ //tagMCPrepareChangeMap: Cmd:%s, SubCmd:%s, MapID:%d, FuncLineID:%d '''\ %( self.Cmd, self.SubCmd, self.MapID, self.FuncLineID ) return DumpString m_NAtagMCPrepareChangeMap=tagMCPrepareChangeMap() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPrepareChangeMap.Cmd,m_NAtagMCPrepareChangeMap.SubCmd))] = m_NAtagMCPrepareChangeMap #------------------------------------------------------ #A1 27 ¿ªÊ¼Çл»µØÍ¼ #tagMCStartChangeMap class tagMCStartChangeMap(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("MapID", c_int), ("FuncLineID", c_ushort), #¹¦ÄÜÏß·ID ] def __init__(self): self.Clear() self.Cmd = 0xA1 self.SubCmd = 0x27 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA1 self.SubCmd = 0x27 self.MapID = 0 self.FuncLineID = 0 return def GetLength(self): return sizeof(tagMCStartChangeMap) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//A1 27 ¿ªÊ¼Çл»µØÍ¼ //tagMCStartChangeMap: Cmd:%s, SubCmd:%s, MapID:%d, FuncLineID:%d '''\ %( self.Cmd, self.SubCmd, self.MapID, self.FuncLineID ) return DumpString m_NAtagMCStartChangeMap=tagMCStartChangeMap() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCStartChangeMap.Cmd,m_NAtagMCStartChangeMap.SubCmd))] = m_NAtagMCStartChangeMap #------------------------------------------------------ #A1 23 ½ÇÉ«¸ÄÃû´ÎÊý #tagUpdatePlayerNameCount class tagUpdatePlayerNameCount(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Count", c_int), #¸ÄÃû´ÎÊý ] def __init__(self): self.Clear() self.Cmd = 0xA1 self.SubCmd = 0x23 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA1 self.SubCmd = 0x23 self.Count = 0 return def GetLength(self): return sizeof(tagUpdatePlayerNameCount) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//A1 23 ½ÇÉ«¸ÄÃû´ÎÊý //tagUpdatePlayerNameCount: Cmd:%s, SubCmd:%s, Count:%d '''\ %( self.Cmd, self.SubCmd, self.Count ) return DumpString m_NAtagUpdatePlayerNameCount=tagUpdatePlayerNameCount() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagUpdatePlayerNameCount.Cmd,m_NAtagUpdatePlayerNameCount.SubCmd))] = m_NAtagUpdatePlayerNameCount #------------------------------------------------------ # A2 02 Íæ¼Ò¹¥»÷ģʽ֪ͨ #tagMCAttackMode class tagMCAttackMode(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Mode", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0xA2 self.SubCmd = 0x02 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA2 self.SubCmd = 0x02 self.Mode = 0 return def GetLength(self): return sizeof(tagMCAttackMode) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A2 02 Íæ¼Ò¹¥»÷ģʽ֪ͨ //tagMCAttackMode: Cmd:%s, SubCmd:%s, Mode:%d '''\ %( self.Cmd, self.SubCmd, self.Mode ) return DumpString m_NAtagMCAttackMode=tagMCAttackMode() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCAttackMode.Cmd,m_NAtagMCAttackMode.SubCmd))] = m_NAtagMCAttackMode #------------------------------------------------------ # A2 03 ×îºóÒ»´Î±³°ü¿ª¸ñµÄÔÚÏßʱ¼ä #tagMCOnlineTimeLastOpenPack class tagMCOnlineTimeLastOpenPack(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PackType", c_ubyte), #±³°üÀàÐÍ ("LastOnLineTime", c_int), #ÉÏÒ»´Î±³°ü¿ª¸ñÔÚÏßʱ³¤ ] def __init__(self): self.Clear() self.Cmd = 0xA2 self.SubCmd = 0x03 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA2 self.SubCmd = 0x03 self.PackType = 0 self.LastOnLineTime = 0 return def GetLength(self): return sizeof(tagMCOnlineTimeLastOpenPack) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A2 03 ×îºóÒ»´Î±³°ü¿ª¸ñµÄÔÚÏßʱ¼ä //tagMCOnlineTimeLastOpenPack: Cmd:%s, SubCmd:%s, PackType:%d, LastOnLineTime:%d '''\ %( self.Cmd, self.SubCmd, self.PackType, self.LastOnLineTime ) return DumpString m_NAtagMCOnlineTimeLastOpenPack=tagMCOnlineTimeLastOpenPack() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCOnlineTimeLastOpenPack.Cmd,m_NAtagMCOnlineTimeLastOpenPack.SubCmd))] = m_NAtagMCOnlineTimeLastOpenPack #------------------------------------------------------ # A2 05 ÐéÄâ±³°üÎïÆ·Çå¿Õ #tagMCVPackClear class tagMCVPackClear(Structure): Head = tagHead() PackType = 0 #(BYTE PackType)//±³°üÀàÐÍ Count = 0 #(WORD Count) ItemPlaceList = list() #(vector ItemPlaceList)//Çå¿Õ¸ñ×ÓË÷ÒýÁбí, size = Count data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA2 self.Head.SubCmd = 0x05 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.PackType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos) for i in range(self.Count): value,_pos=CommFunc.ReadWORD(_lpData,_pos) self.ItemPlaceList.append(value) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA2 self.Head.SubCmd = 0x05 self.PackType = 0 self.Count = 0 self.ItemPlaceList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 2 length += 2 * self.Count return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.PackType) data = CommFunc.WriteWORD(data, self.Count) for i in range(self.Count): data = CommFunc.WriteWORD(data, self.ItemPlaceList[i]) return data def OutputString(self): DumpString = ''' Head:%s, PackType:%d, Count:%d, ItemPlaceList:%s '''\ %( self.Head.OutputString(), self.PackType, self.Count, "..." ) return DumpString m_NAtagMCVPackClear=tagMCVPackClear() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCVPackClear.Head.Cmd,m_NAtagMCVPackClear.Head.SubCmd))] = m_NAtagMCVPackClear #------------------------------------------------------ # A2 04 ÐéÄâ±³°üÎïÆ·Ë¢Ð #tagMCVPackRefresh class tagMCVPackItem(Structure): _pack_ = 1 _fields_ = [ ("ItemPlace", c_ushort), # ±³°üÎïÆ·Î»ÖÃË÷Òý ("ItemData", c_int), # ÎïÆ·Êý¾Ý£¬¸ù¾Ý²»Í¬±³°üÀàÐÍ×Ô¶¨Òå ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.ItemPlace = 0 self.ItemData = 0 return def GetLength(self): return sizeof(tagMCVPackItem) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A2 04 ÐéÄâ±³°üÎïÆ·Ë¢Ð //tagMCVPackRefresh: ItemPlace:%d, ItemData:%d '''\ %( self.ItemPlace, self.ItemData ) return DumpString class tagMCVPackRefresh(Structure): Head = tagHead() PackType = 0 #(BYTE PackType)//±³°üÀàÐÍ Count = 0 #(WORD Count)// ˢиöÊý VPacklItemList = list() #(vector VPacklItemList)// ÎïÆ·ÐÅÏ¢Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA2 self.Head.SubCmd = 0x04 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.PackType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos) for i in range(self.Count): temVPacklItemList = tagMCVPackItem() _pos = temVPacklItemList.ReadData(_lpData, _pos) self.VPacklItemList.append(temVPacklItemList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA2 self.Head.SubCmd = 0x04 self.PackType = 0 self.Count = 0 self.VPacklItemList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 2 for i in range(self.Count): length += self.VPacklItemList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.PackType) data = CommFunc.WriteWORD(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.VPacklItemList[i].GetLength(), self.VPacklItemList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, PackType:%d, Count:%d, VPacklItemList:%s '''\ %( self.Head.OutputString(), self.PackType, self.Count, "..." ) return DumpString m_NAtagMCVPackRefresh=tagMCVPackRefresh() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCVPackRefresh.Head.Cmd,m_NAtagMCVPackRefresh.Head.SubCmd))] = m_NAtagMCVPackRefresh #------------------------------------------------------ #A2 01 Íæ¼Ò²Ö¿âËø¶¨×´Ì¬ #tagMCWarehorseLock class tagMCWarehorseLock(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("LockState", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0xA2 self.SubCmd = 0x01 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA2 self.SubCmd = 0x01 self.LockState = 0 return def GetLength(self): return sizeof(tagMCWarehorseLock) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//A2 01 Íæ¼Ò²Ö¿âËø¶¨×´Ì¬ //tagMCWarehorseLock: Cmd:%s, SubCmd:%s, LockState:%d '''\ %( self.Cmd, self.SubCmd, self.LockState ) return DumpString m_NAtagMCWarehorseLock=tagMCWarehorseLock() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCWarehorseLock.Cmd,m_NAtagMCWarehorseLock.SubCmd))] = m_NAtagMCWarehorseLock #------------------------------------------------------ #A3 30 ¹ºÂòħ»êÍ­Ç®¾­ÑéʲôµÄ֪ͨ #tagMCBuySomething class tagMCSingleBuySomethingInfo(Structure): _pack_ = 1 _fields_ = [ ("Type", c_ubyte), #14Í­Ç®£¬15¾­Ñé ("BuyCnt", c_ubyte), #½ñÈÕÒѹºÂò´ÎÊý ("HistoryBuyCnt", c_ubyte), #ÀúÊ·ÒѹºÂò´ÎÊý ("LastFreeTime", c_int), #ÉϴεÄÃâ·Ñʱ¼ä ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Type = 0 self.BuyCnt = 0 self.HistoryBuyCnt = 0 self.LastFreeTime = 0 return def GetLength(self): return sizeof(tagMCSingleBuySomethingInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//A3 30 ¹ºÂòħ»êÍ­Ç®¾­ÑéʲôµÄ֪ͨ //tagMCBuySomething: Type:%d, BuyCnt:%d, HistoryBuyCnt:%d, LastFreeTime:%d '''\ %( self.Type, self.BuyCnt, self.HistoryBuyCnt, self.LastFreeTime ) return DumpString class tagMCBuySomething(Structure): Head = tagHead() Cnt = 0 #(BYTE Cnt)//ÐÅÏ¢Êý Infos = list() #(vector Infos) data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x30 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Cnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Cnt): temInfos = tagMCSingleBuySomethingInfo() _pos = temInfos.ReadData(_lpData, _pos) self.Infos.append(temInfos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x30 self.Cnt = 0 self.Infos = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.Cnt): length += self.Infos[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.Cnt) for i in range(self.Cnt): data = CommFunc.WriteString(data, self.Infos[i].GetLength(), self.Infos[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Cnt:%d, Infos:%s '''\ %( self.Head.OutputString(), self.Cnt, "..." ) return DumpString m_NAtagMCBuySomething=tagMCBuySomething() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCBuySomething.Head.Cmd,m_NAtagMCBuySomething.Head.SubCmd))] = m_NAtagMCBuySomething #------------------------------------------------------ # A3 17 È«ÉíÊôÐÔ¼¤»îÊýÁ¿Í¨Öª #tagMCAllEquipAttrActiveInfo class tagMCEquipActiveInfo(Structure): _pack_ = 1 _fields_ = [ ("Type", c_ubyte), # 0Ç¿»¯ 1ÐÇÊý ("Cnt", c_int), # ¼¤»îÊýÁ¿ ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Type = 0 self.Cnt = 0 return def GetLength(self): return sizeof(tagMCEquipActiveInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A3 17 È«ÉíÊôÐÔ¼¤»îÊýÁ¿Í¨Öª //tagMCAllEquipAttrActiveInfo: Type:%d, Cnt:%d '''\ %( self.Type, self.Cnt ) return DumpString class tagMCAllEquipAttrActiveInfo(Structure): Head = tagHead() Count = 0 #(BYTE Count)// ¸öÊý ActiveInfo = list() #(vector ActiveInfo)//ÐÅÏ¢ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x17 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Count): temActiveInfo = tagMCEquipActiveInfo() _pos = temActiveInfo.ReadData(_lpData, _pos) self.ActiveInfo.append(temActiveInfo) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x17 self.Count = 0 self.ActiveInfo = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.Count): length += self.ActiveInfo[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.ActiveInfo[i].GetLength(), self.ActiveInfo[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Count:%d, ActiveInfo:%s '''\ %( self.Head.OutputString(), self.Count, "..." ) return DumpString m_NAtagMCAllEquipAttrActiveInfo=tagMCAllEquipAttrActiveInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCAllEquipAttrActiveInfo.Head.Cmd,m_NAtagMCAllEquipAttrActiveInfo.Head.SubCmd))] = m_NAtagMCAllEquipAttrActiveInfo #------------------------------------------------------ # A3 0F Í¨ÖªÍæ¼ÒÐüÉÍÈÎÎñÐÅÏ¢ #tagMCArrestTaskInfo class tagMCArrestTaskInfo(Structure): Head = tagHead() TaskStar = 0 #(BYTE TaskStar)//¿É½ÓÈÎÎñÐǼ¶ CompleteCnt = 0 #(BYTE CompleteCnt)//µ±ÈÕÒÑÍê³É´ÎÊý AwardRecord = 0 #(DWORD AwardRecord)//»ý·Ö½±ÀøÁìÈ¡¼Ç¼ Count = 0 #(BYTE Count)// ÐÅÏ¢¸öÊý TaskDataList = list() #(vector TaskDataList)//ÈÎÎñÊý¾ÝÁбí, size = Count data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x0F return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.TaskStar,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.CompleteCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.AwardRecord,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Count): value,_pos=CommFunc.ReadDWORD(_lpData,_pos) self.TaskDataList.append(value) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x0F self.TaskStar = 0 self.CompleteCnt = 0 self.AwardRecord = 0 self.Count = 0 self.TaskDataList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 1 length += 4 length += 1 length += 4 * self.Count return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.TaskStar) data = CommFunc.WriteBYTE(data, self.CompleteCnt) data = CommFunc.WriteDWORD(data, self.AwardRecord) data = CommFunc.WriteBYTE(data, self.Count) for i in range(self.Count): data = CommFunc.WriteDWORD(data, self.TaskDataList[i]) return data def OutputString(self): DumpString = ''' Head:%s, TaskStar:%d, CompleteCnt:%d, AwardRecord:%d, Count:%d, TaskDataList:%s '''\ %( self.Head.OutputString(), self.TaskStar, self.CompleteCnt, self.AwardRecord, self.Count, "..." ) return DumpString m_NAtagMCArrestTaskInfo=tagMCArrestTaskInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCArrestTaskInfo.Head.Cmd,m_NAtagMCArrestTaskInfo.Head.SubCmd))] = m_NAtagMCArrestTaskInfo #------------------------------------------------------ # A3 39 Íæ¼ÒÊôÐÔ¹ûʵÒÑʹÓøöÊýÐÅÏ¢#tagMCAttrFruitEatCntList class tagMCAttrFruitEatCnt(Structure): _pack_ = 1 _fields_ = [ ("ItemID", c_int), #¹ûʵÎïÆ·ID ("EatCnt", c_ushort), #ÒÑʹÓøöÊý ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.ItemID = 0 self.EatCnt = 0 return def GetLength(self): return sizeof(tagMCAttrFruitEatCnt) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A3 39 Íæ¼ÒÊôÐÔ¹ûʵÒÑʹÓøöÊýÐÅÏ¢//tagMCAttrFruitEatCntList: ItemID:%d, EatCnt:%d '''\ %( self.ItemID, self.EatCnt ) return DumpString class tagMCAttrFruitEatCntList(Structure): Head = tagHead() count = 0 #(BYTE count)//ÐÅÏ¢¸öÊý EatCntList = list() #(vector EatCntList) data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x39 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.count,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.count): temEatCntList = tagMCAttrFruitEatCnt() _pos = temEatCntList.ReadData(_lpData, _pos) self.EatCntList.append(temEatCntList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x39 self.count = 0 self.EatCntList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.count): length += self.EatCntList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.count) for i in range(self.count): data = CommFunc.WriteString(data, self.EatCntList[i].GetLength(), self.EatCntList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, count:%d, EatCntList:%s '''\ %( self.Head.OutputString(), self.count, "..." ) return DumpString m_NAtagMCAttrFruitEatCntList=tagMCAttrFruitEatCntList() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCAttrFruitEatCntList.Head.Cmd,m_NAtagMCAttrFruitEatCntList.Head.SubCmd))] = m_NAtagMCAttrFruitEatCntList #------------------------------------------------------ #A3 B7 µ±ÈÕÀۼƹ¥»÷boss´ÎÊý #tagMCBOSSAttactCnt class tagMCBossCntInfo(Structure): _pack_ = 1 _fields_ = [ ("BossType", c_ubyte), #±àºÅÀàÐÍ0-ÊÀ½çboss 1-bossÖ®¼Ò ("KillCnt", c_ubyte), #»÷ɱ´ÎÊý ("ItemAddCnt", c_ubyte), #ÎïÆ·Ôö¼Ó´ÎÊý ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.BossType = 0 self.KillCnt = 0 self.ItemAddCnt = 0 return def GetLength(self): return sizeof(tagMCBossCntInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//A3 B7 µ±ÈÕÀۼƹ¥»÷boss´ÎÊý //tagMCBOSSAttactCnt: BossType:%d, KillCnt:%d, ItemAddCnt:%d '''\ %( self.BossType, self.KillCnt, self.ItemAddCnt ) return DumpString class tagMCBOSSAttactCnt(Structure): Head = tagHead() Cnt = 0 #(BYTE Cnt) KillCntInfoList = list() #(vector KillCntInfoList) data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0xB7 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Cnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Cnt): temKillCntInfoList = tagMCBossCntInfo() _pos = temKillCntInfoList.ReadData(_lpData, _pos) self.KillCntInfoList.append(temKillCntInfoList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0xB7 self.Cnt = 0 self.KillCntInfoList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.Cnt): length += self.KillCntInfoList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.Cnt) for i in range(self.Cnt): data = CommFunc.WriteString(data, self.KillCntInfoList[i].GetLength(), self.KillCntInfoList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Cnt:%d, KillCntInfoList:%s '''\ %( self.Head.OutputString(), self.Cnt, "..." ) return DumpString m_NAtagMCBOSSAttactCnt=tagMCBOSSAttactCnt() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCBOSSAttactCnt.Head.Cmd,m_NAtagMCBOSSAttactCnt.Head.SubCmd))] = m_NAtagMCBOSSAttactCnt #------------------------------------------------------ # A3 BD Í¨ÖªÍæ¼Ò¹ºÂò¸±±¾½øÈë´ÎÊý #tagMCBuyEnterInfo class tagMCBuyInfo(Structure): _pack_ = 1 _fields_ = [ ("FBID", c_int), # ¸±±¾ID ("BuyCount", c_ubyte), # ÒѹºÂò´ÎÊý ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.FBID = 0 self.BuyCount = 0 return def GetLength(self): return sizeof(tagMCBuyInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A3 BD Í¨ÖªÍæ¼Ò¹ºÂò¸±±¾½øÈë´ÎÊý //tagMCBuyEnterInfo: FBID:%d, BuyCount:%d '''\ %( self.FBID, self.BuyCount ) return DumpString class tagMCBuyEnterInfo(Structure): Head = tagHead() FBCount = 0 #(BYTE FBCount)// ¸±±¾¸öÊý FBInfo = list() #(vector FBInfo)// ¸±±¾ÐÅÏ¢ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0xBD return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.FBCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.FBCount): temFBInfo = tagMCBuyInfo() _pos = temFBInfo.ReadData(_lpData, _pos) self.FBInfo.append(temFBInfo) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0xBD self.FBCount = 0 self.FBInfo = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.FBCount): length += self.FBInfo[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.FBCount) for i in range(self.FBCount): data = CommFunc.WriteString(data, self.FBInfo[i].GetLength(), self.FBInfo[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, FBCount:%d, FBInfo:%s '''\ %( self.Head.OutputString(), self.FBCount, "..." ) return DumpString m_NAtagMCBuyEnterInfo=tagMCBuyEnterInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCBuyEnterInfo.Head.Cmd,m_NAtagMCBuyEnterInfo.Head.SubCmd))] = m_NAtagMCBuyEnterInfo #------------------------------------------------------ # A3 B0 Íæ¼Ò¹ºÂòħ»êÍ­Ç®¾­Ñé¶îÍâ½±ÀøÐÅÏ¢ #tagMCBuySomethingReward class tagMCBuySomethingReward(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("BuyType", c_ubyte), #¹ºÂòÀàÐÍ(0-½ð±Ò, 1-ħ»ê, 2-¾­Ñé) ("OnceNum", c_int), # µ¥±¶ÊýÖµ ("OnceNumPoint", c_int), # µ¥±¶ÊýÖµµã ("MulNum", c_ubyte), #±©»÷±¶Öµ ] def __init__(self): self.Clear() self.Cmd = 0xA3 self.SubCmd = 0xB0 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA3 self.SubCmd = 0xB0 self.BuyType = 0 self.OnceNum = 0 self.OnceNumPoint = 0 self.MulNum = 0 return def GetLength(self): return sizeof(tagMCBuySomethingReward) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A3 B0 Íæ¼Ò¹ºÂòħ»êÍ­Ç®¾­Ñé¶îÍâ½±ÀøÐÅÏ¢ //tagMCBuySomethingReward: Cmd:%s, SubCmd:%s, BuyType:%d, OnceNum:%d, OnceNumPoint:%d, MulNum:%d '''\ %( self.Cmd, self.SubCmd, self.BuyType, self.OnceNum, self.OnceNumPoint, self.MulNum ) return DumpString m_NAtagMCBuySomethingReward=tagMCBuySomethingReward() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCBuySomethingReward.Cmd,m_NAtagMCBuySomethingReward.SubCmd))] = m_NAtagMCBuySomethingReward #------------------------------------------------------ #A3 23 ²É¼¯»ñµÃÎïÆ·ÐÅÏ¢ # tagMCCollectionItemInfo class tagMCCollectionItem(Structure): Head = tagHead() ItemType = 0 #(BYTE ItemType)//ÎïÆ·ÀàÐÍ£¬0-ÆÕͨÎïÆ·£¬1-¶¨ÖƱíÎïÆ· ItemID = 0 #(DWORD ItemID)//µ±ÎïÆ·ÀàÐÍΪÆÕͨÎïÆ·Ê±±íʾÎïÆ·id£¬Îª¶¨ÖÆÎïÆ·Ê±±íʾ¶¨ÖÆÎïÆ·±íÀïµÄItemIndex ItemCnt = 0 #(DWORD ItemCnt)//»ñµÃ¸öÊý IsBind = 0 #(BYTE IsBind)//ÊÇ·ñ°ó¶¨ ItemInfoLen = 0 #(BYTE ItemInfoLen) ItemInfo = "" #(String ItemInfo)//×°±¸¸½¼ÓÐÅÏ¢ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x23 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.ItemType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ItemCnt,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.IsBind,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ItemInfoLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ItemInfo,_pos = CommFunc.ReadString(_lpData, _pos,self.ItemInfoLen) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x23 self.ItemType = 0 self.ItemID = 0 self.ItemCnt = 0 self.IsBind = 0 self.ItemInfoLen = 0 self.ItemInfo = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 4 length += 4 length += 1 length += 1 length += len(self.ItemInfo) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.ItemType) data = CommFunc.WriteDWORD(data, self.ItemID) data = CommFunc.WriteDWORD(data, self.ItemCnt) data = CommFunc.WriteBYTE(data, self.IsBind) data = CommFunc.WriteBYTE(data, self.ItemInfoLen) data = CommFunc.WriteString(data, self.ItemInfoLen, self.ItemInfo) return data def OutputString(self): DumpString = ''' Head:%s, ItemType:%d, ItemID:%d, ItemCnt:%d, IsBind:%d, ItemInfoLen:%d, ItemInfo:%s '''\ %( self.Head.OutputString(), self.ItemType, self.ItemID, self.ItemCnt, self.IsBind, self.ItemInfoLen, self.ItemInfo ) return DumpString class tagMCCollectionItemInfo(Structure): Head = tagHead() NPCID = 0 #(DWORD NPCID)// ²É¼¯¶ÔÏóNPCID Exp = 0 #(DWORD Exp)// »ñµÃµÄ¾­Ñé SilverMoney = 0 #(DWORD SilverMoney)// »ñµÃµÄ½ð±Ò ZhenQi = 0 #(DWORD ZhenQi)// »ñµÃµÄÕæÆø CollItemIDCnt = 0 #(BYTE CollItemIDCnt)// »ñµÃµÄÎïÆ·ID¸öÊý CollItemList = list() #(vector CollItemList)//»ñµÃµÄÎïÆ·Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x23 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.NPCID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Exp,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.SilverMoney,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ZhenQi,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.CollItemIDCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.CollItemIDCnt): temCollItemList = tagMCCollectionItem() _pos = temCollItemList.ReadData(_lpData, _pos) self.CollItemList.append(temCollItemList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x23 self.NPCID = 0 self.Exp = 0 self.SilverMoney = 0 self.ZhenQi = 0 self.CollItemIDCnt = 0 self.CollItemList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 4 length += 4 length += 4 length += 1 for i in range(self.CollItemIDCnt): length += self.CollItemList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.NPCID) data = CommFunc.WriteDWORD(data, self.Exp) data = CommFunc.WriteDWORD(data, self.SilverMoney) data = CommFunc.WriteDWORD(data, self.ZhenQi) data = CommFunc.WriteBYTE(data, self.CollItemIDCnt) for i in range(self.CollItemIDCnt): data = CommFunc.WriteString(data, self.CollItemList[i].GetLength(), self.CollItemList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, NPCID:%d, Exp:%d, SilverMoney:%d, ZhenQi:%d, CollItemIDCnt:%d, CollItemList:%s '''\ %( self.Head.OutputString(), self.NPCID, self.Exp, self.SilverMoney, self.ZhenQi, self.CollItemIDCnt, "..." ) return DumpString m_NAtagMCCollectionItemInfo=tagMCCollectionItemInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCollectionItemInfo.Head.Cmd,m_NAtagMCCollectionItemInfo.Head.SubCmd))] = m_NAtagMCCollectionItemInfo #------------------------------------------------------ # A3 15 ÈÕ³£»î¶¯´ÎÊý֪ͨ #tagMCDailyActionCnt class tagMCDailyActionInfo(Structure): _pack_ = 1 _fields_ = [ ("ActionID", c_int), # ID ("DayFinishCnt", c_ushort), # ½ñÈÕÒÑÍê³É´ÎÊý ("WeekFinishCnt", c_int), # ±¾ÖÜÒÑÍê³É´ÎÊý ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.ActionID = 0 self.DayFinishCnt = 0 self.WeekFinishCnt = 0 return def GetLength(self): return sizeof(tagMCDailyActionInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A3 15 ÈÕ³£»î¶¯´ÎÊý֪ͨ //tagMCDailyActionCnt: ActionID:%d, DayFinishCnt:%d, WeekFinishCnt:%d '''\ %( self.ActionID, self.DayFinishCnt, self.WeekFinishCnt ) return DumpString class tagMCDailyActionCnt(Structure): Head = tagHead() Count = 0 #(BYTE Count)// ¸öÊý ActionInfo = list() #(vector ActionInfo)// »î¶¯ÐÅÏ¢ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x15 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Count): temActionInfo = tagMCDailyActionInfo() _pos = temActionInfo.ReadData(_lpData, _pos) self.ActionInfo.append(temActionInfo) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x15 self.Count = 0 self.ActionInfo = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.Count): length += self.ActionInfo[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.ActionInfo[i].GetLength(), self.ActionInfo[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Count:%d, ActionInfo:%s '''\ %( self.Head.OutputString(), self.Count, "..." ) return DumpString m_NAtagMCDailyActionCnt=tagMCDailyActionCnt() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCDailyActionCnt.Head.Cmd,m_NAtagMCDailyActionCnt.Head.SubCmd))] = m_NAtagMCDailyActionCnt #------------------------------------------------------ #A3 33 Íæ¼ÒÿÈÕ»îÔ¾¶È #tagMCDailyActivityInfoList class tagMCDailyActivityInfoList(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("CurValue", c_int), # µ±Ç°×Ü»îÔ¾¶È ("RealmPoint", c_int), # ¿ÉÁìÈ¡ÐÞÐеã ("StageIndex", c_ubyte), # µ±Ç°½×¶ÎË÷Òý ("AwardRecord", c_int), # Áì½±¼Ç¼ °´Î»´æ´¢ ] def __init__(self): self.Clear() self.Cmd = 0xA3 self.SubCmd = 0x33 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA3 self.SubCmd = 0x33 self.CurValue = 0 self.RealmPoint = 0 self.StageIndex = 0 self.AwardRecord = 0 return def GetLength(self): return sizeof(tagMCDailyActivityInfoList) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//A3 33 Íæ¼ÒÿÈÕ»îÔ¾¶È //tagMCDailyActivityInfoList: Cmd:%s, SubCmd:%s, CurValue:%d, RealmPoint:%d, StageIndex:%d, AwardRecord:%d '''\ %( self.Cmd, self.SubCmd, self.CurValue, self.RealmPoint, self.StageIndex, self.AwardRecord ) return DumpString m_NAtagMCDailyActivityInfoList=tagMCDailyActivityInfoList() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCDailyActivityInfoList.Cmd,m_NAtagMCDailyActivityInfoList.SubCmd))] = m_NAtagMCDailyActivityInfoList #------------------------------------------------------ #A3 0D Íæ¼ÒÇ©µ½ÐÅÏ¢¼Ç¼ # tagMCDaySignInfo class tagMCDaySignInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("DaySignCount", c_ubyte), #ÒѾ­Ç©µ½ÌìÊý ("ReplenishSignCount", c_ubyte), # ¿ÉÒÔ²¹Ç©ÌìÊý ("IsSign", c_ubyte), #µ±ÌìÊÇ·ñÒѾ­Ç©µ½,·¢ËÍ0ºÍ1 ("IsFrist", c_ubyte), #ÊÇ·ñÊǵÚÒ»¸öÔ ("TotalSignCount", c_ushort), #ÀÛ¼Æ×ÜÇ©µ½ÌìÊý ] def __init__(self): self.Clear() self.Cmd = 0xA3 self.SubCmd = 0x0D return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA3 self.SubCmd = 0x0D self.DaySignCount = 0 self.ReplenishSignCount = 0 self.IsSign = 0 self.IsFrist = 0 self.TotalSignCount = 0 return def GetLength(self): return sizeof(tagMCDaySignInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//A3 0D Íæ¼ÒÇ©µ½ÐÅÏ¢¼Ç¼ // tagMCDaySignInfo: Cmd:%s, SubCmd:%s, DaySignCount:%d, ReplenishSignCount:%d, IsSign:%d, IsFrist:%d, TotalSignCount:%d '''\ %( self.Cmd, self.SubCmd, self.DaySignCount, self.ReplenishSignCount, self.IsSign, self.IsFrist, self.TotalSignCount ) return DumpString m_NAtagMCDaySignInfo=tagMCDaySignInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCDaySignInfo.Cmd,m_NAtagMCDaySignInfo.SubCmd))] = m_NAtagMCDaySignInfo #------------------------------------------------------ # A3 1C ֪ͨװ±¸·Ö½âÐÅÏ¢ #tagMCEquipDecomposeInfo class tagMCEquipDecomposeInfo(Structure): Head = tagHead() LV = 0 #(WORD LV)// µÈ¼¶ Exp = 0 #(DWORD Exp)// Éý¼¶¾­Ñé Seting = 0 #(DWORD Seting)// ²Ù×÷Êý¾Ý¼Ç¼ DecomposeCnt = 0 #(BYTE DecomposeCnt)// ·Ö½â¼þÊý½ø¶È GetItemLen = 0 #(WORD GetItemLen) GetItemData = "" #(String GetItemData)// »ñµÃÎïÆ·ÐÅÏ¢ [[itemID,itemCount,isBind], [»òitemID,itemCount,isBind,isAppoint], {»òÎïÆ·ÐÅÏ¢×Öµä}, ...] data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x1C return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Exp,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Seting,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.DecomposeCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.GetItemLen,_pos = CommFunc.ReadWORD(_lpData, _pos) self.GetItemData,_pos = CommFunc.ReadString(_lpData, _pos,self.GetItemLen) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x1C self.LV = 0 self.Exp = 0 self.Seting = 0 self.DecomposeCnt = 0 self.GetItemLen = 0 self.GetItemData = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 length += 4 length += 4 length += 1 length += 2 length += len(self.GetItemData) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteWORD(data, self.LV) data = CommFunc.WriteDWORD(data, self.Exp) data = CommFunc.WriteDWORD(data, self.Seting) data = CommFunc.WriteBYTE(data, self.DecomposeCnt) data = CommFunc.WriteWORD(data, self.GetItemLen) data = CommFunc.WriteString(data, self.GetItemLen, self.GetItemData) return data def OutputString(self): DumpString = ''' Head:%s, LV:%d, Exp:%d, Seting:%d, DecomposeCnt:%d, GetItemLen:%d, GetItemData:%s '''\ %( self.Head.OutputString(), self.LV, self.Exp, self.Seting, self.DecomposeCnt, self.GetItemLen, self.GetItemData ) return DumpString m_NAtagMCEquipDecomposeInfo=tagMCEquipDecomposeInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCEquipDecomposeInfo.Head.Cmd,m_NAtagMCEquipDecomposeInfo.Head.SubCmd))] = m_NAtagMCEquipDecomposeInfo #------------------------------------------------------ # A3 09 Í¨ÖªÍæ¼Ò²¿Î»Ì××°µÈ¼¶ #tagMCEquipPartSuiteLVInfo class tagMCEquipPartSuiteLV(Structure): EquipIndex = 0 #(BYTE EquipIndex) Len = 0 #(WORD Len)//³¤¶È SuiteLVInfo = "" #(String SuiteLVInfo)//{Ì××°ÀàÐÍ:µÈ¼¶} data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.EquipIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Len,_pos = CommFunc.ReadWORD(_lpData, _pos) self.SuiteLVInfo,_pos = CommFunc.ReadString(_lpData, _pos,self.Len) return _pos def Clear(self): self.EquipIndex = 0 self.Len = 0 self.SuiteLVInfo = "" return def GetLength(self): length = 0 length += 1 length += 2 length += len(self.SuiteLVInfo) return length def GetBuffer(self): data = '' data = CommFunc.WriteBYTE(data, self.EquipIndex) data = CommFunc.WriteWORD(data, self.Len) data = CommFunc.WriteString(data, self.Len, self.SuiteLVInfo) return data def OutputString(self): DumpString = ''' EquipIndex:%d, Len:%d, SuiteLVInfo:%s '''\ %( self.EquipIndex, self.Len, self.SuiteLVInfo ) return DumpString class tagMCEquipPartSuiteLVInfo(Structure): Head = tagHead() Count = 0 #(BYTE Count)// ÐÅÏ¢¸öÊý InfoList = list() #(vector InfoList)// ÐÅÏ¢Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x09 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Count): temInfoList = tagMCEquipPartSuiteLV() _pos = temInfoList.ReadData(_lpData, _pos) self.InfoList.append(temInfoList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x09 self.Count = 0 self.InfoList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.Count): length += self.InfoList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Count:%d, InfoList:%s '''\ %( self.Head.OutputString(), self.Count, "..." ) return DumpString m_NAtagMCEquipPartSuiteLVInfo=tagMCEquipPartSuiteLVInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCEquipPartSuiteLVInfo.Head.Cmd,m_NAtagMCEquipPartSuiteLVInfo.Head.SubCmd))] = m_NAtagMCEquipPartSuiteLVInfo #------------------------------------------------------ # A3 BB ×°±¸Î»Ï´Á·ÊôÐÔÐÅÏ¢ #tagMCEquipPartXLAttrInfo class tagMCEquipPartXLAttrValue(Structure): _pack_ = 1 _fields_ = [ ("XLAttrValue", c_int), # µ±Ç°ÊôÐÔÖµ ("XLAttrChange", c_int), # Ï´Á·²Ù×÷ÊôÐÔÖµ, µ±´óÓÚ0ʱ´ú±íµ±Ç°²¿Î»Óл¹Î´È·ÈϵÄÏ´Á·½á¹û, Ó뵱ǰÊôÐÔÖµÏà¼õµÃ³öÏ´Á·Õý¸ºÖµ ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.XLAttrValue = 0 self.XLAttrChange = 0 return def GetLength(self): return sizeof(tagMCEquipPartXLAttrValue) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A3 BB ×°±¸Î»Ï´Á·ÊôÐÔÐÅÏ¢ //tagMCEquipPartXLAttrInfo: XLAttrValue:%d, XLAttrChange:%d '''\ %( self.XLAttrValue, self.XLAttrChange ) return DumpString class tagMCEquipPartXLAttr(Structure): EquipPlace = 0 #(BYTE EquipPlace)// ×°±¸Î» XLAttrLV = 0 #(BYTE XLAttrLV)// Ï´Á·µÈ¼¶ XLAttrCnt = 0 #(BYTE XLAttrCnt)// ÊôÐÔÌõÊý XLAttrList = list() #(vector XLAttrList)// ÊôÐÔÁбí,Ë÷Òý0µÄ´ú±íÊôÐÔ1,ÒÀ´ÎµÝÔö data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.EquipPlace,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.XLAttrLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.XLAttrCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.XLAttrCnt): temXLAttrList = tagMCEquipPartXLAttrValue() _pos = temXLAttrList.ReadData(_lpData, _pos) self.XLAttrList.append(temXLAttrList) return _pos def Clear(self): self.EquipPlace = 0 self.XLAttrLV = 0 self.XLAttrCnt = 0 self.XLAttrList = list() return def GetLength(self): length = 0 length += 1 length += 1 length += 1 for i in range(self.XLAttrCnt): length += self.XLAttrList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteBYTE(data, self.EquipPlace) data = CommFunc.WriteBYTE(data, self.XLAttrLV) data = CommFunc.WriteBYTE(data, self.XLAttrCnt) for i in range(self.XLAttrCnt): data = CommFunc.WriteString(data, self.XLAttrList[i].GetLength(), self.XLAttrList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' EquipPlace:%d, XLAttrLV:%d, XLAttrCnt:%d, XLAttrList:%s '''\ %( self.EquipPlace, self.XLAttrLV, self.XLAttrCnt, "..." ) return DumpString class tagMCEquipPartXLAttrInfo(Structure): Head = tagHead() Count = 0 #(BYTE Count)// ÐÅÏ¢¸öÊý InfoList = list() #(vector InfoList)// ÐÅÏ¢Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0xBB return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Count): temInfoList = tagMCEquipPartXLAttr() _pos = temInfoList.ReadData(_lpData, _pos) self.InfoList.append(temInfoList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0xBB self.Count = 0 self.InfoList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.Count): length += self.InfoList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Count:%d, InfoList:%s '''\ %( self.Head.OutputString(), self.Count, "..." ) return DumpString m_NAtagMCEquipPartXLAttrInfo=tagMCEquipPartXLAttrInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCEquipPartXLAttrInfo.Head.Cmd,m_NAtagMCEquipPartXLAttrInfo.Head.SubCmd))] = m_NAtagMCEquipPartXLAttrInfo #------------------------------------------------------ # A3 16 ÏÉÃË»îÔ¾ÐÅϢ֪ͨ #tagMCFamilyActivityInfo class tagMCFamilyActionCnt(Structure): _pack_ = 1 _fields_ = [ ("ActionID", c_ubyte), # ID ("FinishCnt", c_ushort), # ÒÑÍê³É´ÎÊý ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.ActionID = 0 self.FinishCnt = 0 return def GetLength(self): return sizeof(tagMCFamilyActionCnt) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A3 16 ÏÉÃË»îÔ¾ÐÅϢ֪ͨ //tagMCFamilyActivityInfo: ActionID:%d, FinishCnt:%d '''\ %( self.ActionID, self.FinishCnt ) return DumpString class tagMCFamilyActivityInfo(Structure): Head = tagHead() AwardRecord = 0 #(DWORD AwardRecord)// Áì½±Çé¿ö¼Ç¼ Count = 0 #(BYTE Count)// ¸öÊý InfoList = list() #(vector InfoList)// »î¶¯ÐÅÏ¢ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x16 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.AwardRecord,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Count): temInfoList = tagMCFamilyActionCnt() _pos = temInfoList.ReadData(_lpData, _pos) self.InfoList.append(temInfoList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x16 self.AwardRecord = 0 self.Count = 0 self.InfoList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 for i in range(self.Count): length += self.InfoList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.AwardRecord) data = CommFunc.WriteBYTE(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, AwardRecord:%d, Count:%d, InfoList:%s '''\ %( self.Head.OutputString(), self.AwardRecord, self.Count, "..." ) return DumpString m_NAtagMCFamilyActivityInfo=tagMCFamilyActivityInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilyActivityInfo.Head.Cmd,m_NAtagMCFamilyActivityInfo.Head.SubCmd))] = m_NAtagMCFamilyActivityInfo #------------------------------------------------------ #A3 0A ¸±±¾¹ÄÎèÐÅϢ֪ͨ #tagMCFBEncourageInfo class tagMCFBEncourageInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Cnt1", c_ubyte), # µ±Ç°Í­Ç®¹ÄÎè´ÎÊý ("Cnt2", c_ubyte), # µ±Ç°ÏÉÓñ¹ÄÎè´ÎÊý ] def __init__(self): self.Clear() self.Cmd = 0xA3 self.SubCmd = 0x0A return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA3 self.SubCmd = 0x0A self.Cnt1 = 0 self.Cnt2 = 0 return def GetLength(self): return sizeof(tagMCFBEncourageInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//A3 0A ¸±±¾¹ÄÎèÐÅϢ֪ͨ //tagMCFBEncourageInfo: Cmd:%s, SubCmd:%s, Cnt1:%d, Cnt2:%d '''\ %( self.Cmd, self.SubCmd, self.Cnt1, self.Cnt2 ) return DumpString m_NAtagMCFBEncourageInfo=tagMCFBEncourageInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFBEncourageInfo.Cmd,m_NAtagMCFBEncourageInfo.SubCmd))] = m_NAtagMCFBEncourageInfo #------------------------------------------------------ #A3 04 Íæ¼Òɨµ´ÐÅÏ¢ #tagMCFBWipeOutData class tagMCFBData(Structure): _pack_ = 1 _fields_ = [ ("FBID", c_int), #fbId ("LineIndex", c_ubyte), #¸±±¾Í¨¹Ø³¡´Î ("WipeOutCnt", c_ubyte), #ɨµ´´ÎÊý ("passGrade", c_ubyte), #ͨ¹ØÆÀ¼¶ ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.FBID = 0 self.LineIndex = 0 self.WipeOutCnt = 0 self.passGrade = 0 return def GetLength(self): return sizeof(tagMCFBData) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//A3 04 Íæ¼Òɨµ´ÐÅÏ¢ //tagMCFBWipeOutData: FBID:%d, LineIndex:%d, WipeOutCnt:%d, passGrade:%d '''\ %( self.FBID, self.LineIndex, self.WipeOutCnt, self.passGrade ) return DumpString class tagMCFBWipeOutData(Structure): Head = tagHead() WipeOutFBID = 0 #(DWORD WipeOutFBID)//µ±Ç°É¨µ´µÄ¸±±¾id FBDataCnt = 0 #(BYTE FBDataCnt)// FBDataList = list() #(vector FBDataList)// data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x04 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.WipeOutFBID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.FBDataCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.FBDataCnt): temFBDataList = tagMCFBData() _pos = temFBDataList.ReadData(_lpData, _pos) self.FBDataList.append(temFBDataList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x04 self.WipeOutFBID = 0 self.FBDataCnt = 0 self.FBDataList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 for i in range(self.FBDataCnt): length += self.FBDataList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.WipeOutFBID) data = CommFunc.WriteBYTE(data, self.FBDataCnt) for i in range(self.FBDataCnt): data = CommFunc.WriteString(data, self.FBDataList[i].GetLength(), self.FBDataList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, WipeOutFBID:%d, FBDataCnt:%d, FBDataList:%s '''\ %( self.Head.OutputString(), self.WipeOutFBID, self.FBDataCnt, "..." ) return DumpString m_NAtagMCFBWipeOutData=tagMCFBWipeOutData() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFBWipeOutData.Head.Cmd,m_NAtagMCFBWipeOutData.Head.SubCmd))] = m_NAtagMCFBWipeOutData #------------------------------------------------------ # A3 18 ¼«Æ·°×ÄÃÐÅÏ¢ #tagMCFreeGoodsInfo class tagMCFreeGoods(Structure): _pack_ = 1 _fields_ = [ ("ID", c_ubyte), # Àñ°üID ("BuyState", c_int), # ¹ºÂò״̬ 0-δ¹ºÂò 1-ÒÑÁì·µ»¹ timeÖµ-¹ºÂòʱ¼ä ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.ID = 0 self.BuyState = 0 return def GetLength(self): return sizeof(tagMCFreeGoods) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A3 18 ¼«Æ·°×ÄÃÐÅÏ¢ //tagMCFreeGoodsInfo: ID:%d, BuyState:%d '''\ %( self.ID, self.BuyState ) return DumpString class tagMCFreeGoodsInfo(Structure): Head = tagHead() OpenTime = 0 #(DWORD OpenTime)// »î¶¯¿ªÆôʱ¼ä Count = 0 #(BYTE Count)// ¸öÊý FreeGoodsList = list() #(vector FreeGoodsList)// ÐÅÏ¢ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x18 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.OpenTime,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Count): temFreeGoodsList = tagMCFreeGoods() _pos = temFreeGoodsList.ReadData(_lpData, _pos) self.FreeGoodsList.append(temFreeGoodsList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x18 self.OpenTime = 0 self.Count = 0 self.FreeGoodsList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 for i in range(self.Count): length += self.FreeGoodsList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.OpenTime) data = CommFunc.WriteBYTE(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.FreeGoodsList[i].GetLength(), self.FreeGoodsList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, OpenTime:%d, Count:%d, FreeGoodsList:%s '''\ %( self.Head.OutputString(), self.OpenTime, self.Count, "..." ) return DumpString m_NAtagMCFreeGoodsInfo=tagMCFreeGoodsInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFreeGoodsInfo.Head.Cmd,m_NAtagMCFreeGoodsInfo.Head.SubCmd))] = m_NAtagMCFreeGoodsInfo #------------------------------------------------------ # A3 22 ¹¦ÄÜNPCÒѲɼ¯´ÎÊý #tagMCFuncNPCCollectionCnt class tagMCFuncNPCCollectionCnt(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("FuncType", c_int), #NPC¹¦ÄÜÀàÐÍ ("CollectionCnt", c_int), #ÒѲɼ¯´ÎÊý ("BuyCnt", c_ubyte), # ÒѹºÂò´ÎÊý ] def __init__(self): self.Clear() self.Cmd = 0xA3 self.SubCmd = 0x22 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA3 self.SubCmd = 0x22 self.FuncType = 0 self.CollectionCnt = 0 self.BuyCnt = 0 return def GetLength(self): return sizeof(tagMCFuncNPCCollectionCnt) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A3 22 ¹¦ÄÜNPCÒѲɼ¯´ÎÊý //tagMCFuncNPCCollectionCnt: Cmd:%s, SubCmd:%s, FuncType:%d, CollectionCnt:%d, BuyCnt:%d '''\ %( self.Cmd, self.SubCmd, self.FuncType, self.CollectionCnt, self.BuyCnt ) return DumpString m_NAtagMCFuncNPCCollectionCnt=tagMCFuncNPCCollectionCnt() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFuncNPCCollectionCnt.Cmd,m_NAtagMCFuncNPCCollectionCnt.SubCmd))] = m_NAtagMCFuncNPCCollectionCnt #------------------------------------------------------ #A3 02 ¹¦ÄÜ¿ªÍ¨×´Ì¬ #tagMCFuncOpenStateList class tagMCFuncOpenState(Structure): _pack_ = 1 _fields_ = [ ("FuncID", c_ubyte), # ¹¦ÄÜID ("State", c_ubyte), # ÊÇ·ñ¿ªÆô ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.FuncID = 0 self.State = 0 return def GetLength(self): return sizeof(tagMCFuncOpenState) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//A3 02 ¹¦ÄÜ¿ªÍ¨×´Ì¬ //tagMCFuncOpenStateList: FuncID:%d, State:%d '''\ %( self.FuncID, self.State ) return DumpString class tagMCFuncOpenStateList(Structure): Head = tagHead() FuncCount = 0 #(BYTE FuncCount)// ¹¦ÄܸöÊý FuncStateList = list() #(vector FuncStateList)// ¹¦ÄÜ״̬Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x02 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.FuncCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.FuncCount): temFuncStateList = tagMCFuncOpenState() _pos = temFuncStateList.ReadData(_lpData, _pos) self.FuncStateList.append(temFuncStateList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x02 self.FuncCount = 0 self.FuncStateList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.FuncCount): length += self.FuncStateList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.FuncCount) for i in range(self.FuncCount): data = CommFunc.WriteString(data, self.FuncStateList[i].GetLength(), self.FuncStateList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, FuncCount:%d, FuncStateList:%s '''\ %( self.Head.OutputString(), self.FuncCount, "..." ) return DumpString m_NAtagMCFuncOpenStateList=tagMCFuncOpenStateList() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFuncOpenStateList.Head.Cmd,m_NAtagMCFuncOpenStateList.Head.SubCmd))] = m_NAtagMCFuncOpenStateList #------------------------------------------------------ # A3 1D Éñ±øµÈ¼¶ÐÅÏ¢ #tagMCGodWeaponLVList class tagMCGodWeaponLVInfo(Structure): _pack_ = 1 _fields_ = [ ("WeaponType", c_ubyte), #Éñ±øÀàÐÍ ("WeaponLV", c_ushort), #Éñ±øµÈ¼¶ ("WeaponExp", c_int), #µ±Ç°Éñ±ø¾­Ñé ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.WeaponType = 0 self.WeaponLV = 0 self.WeaponExp = 0 return def GetLength(self): return sizeof(tagMCGodWeaponLVInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A3 1D Éñ±øµÈ¼¶ÐÅÏ¢ //tagMCGodWeaponLVList: WeaponType:%d, WeaponLV:%d, WeaponExp:%d '''\ %( self.WeaponType, self.WeaponLV, self.WeaponExp ) return DumpString class tagMCGodWeaponLVList(Structure): Head = tagHead() WeaponNum = 0 #(BYTE WeaponNum)//ÉñÆ÷¸öÊý WeaponInfoList = list() #(vector WeaponInfoList)// ¸±±¾Êý¾ÝÁбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x1D return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.WeaponNum,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.WeaponNum): temWeaponInfoList = tagMCGodWeaponLVInfo() _pos = temWeaponInfoList.ReadData(_lpData, _pos) self.WeaponInfoList.append(temWeaponInfoList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x1D self.WeaponNum = 0 self.WeaponInfoList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.WeaponNum): length += self.WeaponInfoList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.WeaponNum) for i in range(self.WeaponNum): data = CommFunc.WriteString(data, self.WeaponInfoList[i].GetLength(), self.WeaponInfoList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, WeaponNum:%d, WeaponInfoList:%s '''\ %( self.Head.OutputString(), self.WeaponNum, "..." ) return DumpString m_NAtagMCGodWeaponLVList=tagMCGodWeaponLVList() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCGodWeaponLVList.Head.Cmd,m_NAtagMCGodWeaponLVList.Head.SubCmd))] = m_NAtagMCGodWeaponLVList #------------------------------------------------------ # A3 37 Ͷ×ÊÀí²ÆÐÅÏ¢ #tagMCGoldInvestInfo class tagMCInvestReward(Structure): _pack_ = 1 _fields_ = [ ("RewardIndex", c_ushort), # Ë÷Òý ("RewardValue", c_ubyte), # ¸ÃµÈ¼¶ÒÑÁìÈ¡Êý¾Ý£¬0¿ÉÈÏΪδÁìÈ¡ ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.RewardIndex = 0 self.RewardValue = 0 return def GetLength(self): return sizeof(tagMCInvestReward) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A3 37 Ͷ×ÊÀí²ÆÐÅÏ¢ //tagMCGoldInvestInfo: RewardIndex:%d, RewardValue:%d '''\ %( self.RewardIndex, self.RewardValue ) return DumpString class tagMCGoldInvestInfo(Structure): Head = tagHead() InvestType = 0 #(BYTE InvestType)// Ͷ×ÊÀàÐÍ CurDay = 0 #(DWORD CurDay)// µ±Ç°ÌìÊý InvestGold = 0 #(DWORD InvestGold)// Ͷ×ʶî¶È RewardRecordCnt = 0 #(BYTE RewardRecordCnt)// Ͷ×ʻر¨¸öÊý InvestRewardList = list() #(vector InvestRewardList)// Ͷ×ʻر¨¼Ç¼ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x37 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.InvestType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.CurDay,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.InvestGold,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.RewardRecordCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.RewardRecordCnt): temInvestRewardList = tagMCInvestReward() _pos = temInvestRewardList.ReadData(_lpData, _pos) self.InvestRewardList.append(temInvestRewardList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x37 self.InvestType = 0 self.CurDay = 0 self.InvestGold = 0 self.RewardRecordCnt = 0 self.InvestRewardList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 4 length += 4 length += 1 for i in range(self.RewardRecordCnt): length += self.InvestRewardList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.InvestType) data = CommFunc.WriteDWORD(data, self.CurDay) data = CommFunc.WriteDWORD(data, self.InvestGold) data = CommFunc.WriteBYTE(data, self.RewardRecordCnt) for i in range(self.RewardRecordCnt): data = CommFunc.WriteString(data, self.InvestRewardList[i].GetLength(), self.InvestRewardList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, InvestType:%d, CurDay:%d, InvestGold:%d, RewardRecordCnt:%d, InvestRewardList:%s '''\ %( self.Head.OutputString(), self.InvestType, self.CurDay, self.InvestGold, self.RewardRecordCnt, "..." ) return DumpString m_NAtagMCGoldInvestInfo=tagMCGoldInvestInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCGoldInvestInfo.Head.Cmd,m_NAtagMCGoldInvestInfo.Head.SubCmd))] = m_NAtagMCGoldInvestInfo #------------------------------------------------------ # A3 B9 Í¨ÖªÍæ¼Ò½ñÈÕÇÀºì°ü´ÎÊý #tagMCGrabRedPacketCnt class tagMCGrabRedPacketCnt(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Cnt", c_int), ] def __init__(self): self.Clear() self.Cmd = 0xA3 self.SubCmd = 0xB9 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA3 self.SubCmd = 0xB9 self.Cnt = 0 return def GetLength(self): return sizeof(tagMCGrabRedPacketCnt) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A3 B9 Í¨ÖªÍæ¼Ò½ñÈÕÇÀºì°ü´ÎÊý //tagMCGrabRedPacketCnt: Cmd:%s, SubCmd:%s, Cnt:%d '''\ %( self.Cmd, self.SubCmd, self.Cnt ) return DumpString m_NAtagMCGrabRedPacketCnt=tagMCGrabRedPacketCnt() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCGrabRedPacketCnt.Cmd,m_NAtagMCGrabRedPacketCnt.SubCmd))] = m_NAtagMCGrabRedPacketCnt #------------------------------------------------------ # A3 12 Í¨ÖªÍæ¼Ò·¨±¦ÐÅÏ¢ #tagMCMagicWeaponData class tagMCMagicWeaponData(Structure): Head = tagHead() Num = 0 #(BYTE Num)//¸öÊý MagicWeaponID = list() #(vector MagicWeaponID)// ÒѼ¤»îµÄ·¨±¦IDÁбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x12 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Num,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Num): value,_pos=CommFunc.ReadDWORD(_lpData,_pos) self.MagicWeaponID.append(value) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x12 self.Num = 0 self.MagicWeaponID = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 4 * self.Num return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.Num) for i in range(self.Num): data = CommFunc.WriteDWORD(data, self.MagicWeaponID[i]) return data def OutputString(self): DumpString = ''' Head:%s, Num:%d, MagicWeaponID:%s '''\ %( self.Head.OutputString(), self.Num, "..." ) return DumpString m_NAtagMCMagicWeaponData=tagMCMagicWeaponData() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCMagicWeaponData.Head.Cmd,m_NAtagMCMagicWeaponData.Head.SubCmd))] = m_NAtagMCMagicWeaponData #------------------------------------------------------ # A3 52 ·¨±¦µÈ¼¶ÐÅÏ¢ #tagMCMagicWeaponLVInfo class tagMCMagicWeaponInfo(Structure): _pack_ = 1 _fields_ = [ ("MWID", c_int), ("LV", c_ubyte), ("Exp", c_int), ("State", c_ubyte), #ÊÇ·ñµã»÷·¨±¦ÈÏÖ÷ ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.MWID = 0 self.LV = 0 self.Exp = 0 self.State = 0 return def GetLength(self): return sizeof(tagMCMagicWeaponInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A3 52 ·¨±¦µÈ¼¶ÐÅÏ¢ //tagMCMagicWeaponLVInfo: MWID:%d, LV:%d, Exp:%d, State:%d '''\ %( self.MWID, self.LV, self.Exp, self.State ) return DumpString class tagMCMagicWeaponLVInfo(Structure): Head = tagHead() Count = 0 #(BYTE Count)// ÐÅÏ¢¸öÊý InfoList = list() #(vector InfoList)// ÐÅÏ¢Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x52 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Count): temInfoList = tagMCMagicWeaponInfo() _pos = temInfoList.ReadData(_lpData, _pos) self.InfoList.append(temInfoList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x52 self.Count = 0 self.InfoList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.Count): length += self.InfoList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Count:%d, InfoList:%s '''\ %( self.Head.OutputString(), self.Count, "..." ) return DumpString m_NAtagMCMagicWeaponLVInfo=tagMCMagicWeaponLVInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCMagicWeaponLVInfo.Head.Cmd,m_NAtagMCMagicWeaponLVInfo.Head.SubCmd))] = m_NAtagMCMagicWeaponLVInfo #------------------------------------------------------ # A3 BE ֪ͨ¿Í»§¶Ë·¨±¦¾«Á¶µÈ¼¶ #tagMCMagicWeaponMsg class tagMCMagicWeaponLV(Structure): _pack_ = 1 _fields_ = [ ("MWID", c_int), # ·¨±¦ID ("MWLV", c_ubyte), # ¾«Á¶µÈ¼¶ ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.MWID = 0 self.MWLV = 0 return def GetLength(self): return sizeof(tagMCMagicWeaponLV) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A3 BE ֪ͨ¿Í»§¶Ë·¨±¦¾«Á¶µÈ¼¶ //tagMCMagicWeaponMsg: MWID:%d, MWLV:%d '''\ %( self.MWID, self.MWLV ) return DumpString class tagMCMagicWeaponMsg(Structure): Head = tagHead() Count = 0 #(BYTE Count)// ·¨±¦¸öÊý MWInfo = list() #(vector MWInfo)//·¨±¦ÐÅÏ¢ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0xBE return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Count): temMWInfo = tagMCMagicWeaponLV() _pos = temMWInfo.ReadData(_lpData, _pos) self.MWInfo.append(temMWInfo) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0xBE self.Count = 0 self.MWInfo = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.Count): length += self.MWInfo[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.MWInfo[i].GetLength(), self.MWInfo[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Count:%d, MWInfo:%s '''\ %( self.Head.OutputString(), self.Count, "..." ) return DumpString m_NAtagMCMagicWeaponMsg=tagMCMagicWeaponMsg() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCMagicWeaponMsg.Head.Cmd,m_NAtagMCMagicWeaponMsg.Head.SubCmd))] = m_NAtagMCMagicWeaponMsg #------------------------------------------------------ # A3 46 ´óʦ¾­ÑéÐÅÏ¢ #tagMCGreatMasterExp class tagMCGreatMasterExp(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("MasterExpPoint", c_ushort), #µ±Ç°´óʦ¾­Ñéµã ("CurMasterEXP", c_int), #µ±Ç°´óʦ¾­Ñé, ²»°üº¬¾­ÑéµãµÄ ] def __init__(self): self.Clear() self.Cmd = 0xA3 self.SubCmd = 0x46 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA3 self.SubCmd = 0x46 self.MasterExpPoint = 0 self.CurMasterEXP = 0 return def GetLength(self): return sizeof(tagMCGreatMasterExp) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A3 46 ´óʦ¾­ÑéÐÅÏ¢ //tagMCGreatMasterExp: Cmd:%s, SubCmd:%s, MasterExpPoint:%d, CurMasterEXP:%d '''\ %( self.Cmd, self.SubCmd, self.MasterExpPoint, self.CurMasterEXP ) return DumpString m_NAtagMCGreatMasterExp=tagMCGreatMasterExp() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCGreatMasterExp.Cmd,m_NAtagMCGreatMasterExp.SubCmd))] = m_NAtagMCGreatMasterExp #------------------------------------------------------ #A3 1B Íæ¼Ò×Ô¶¯Õ½¶·ÉèÖô¢´æÐÅϢ֪ͨ#tagMCAutoFightSetting class tagMCAutoFightSetting(Structure): Head = tagHead() Size = 0 #(DWORD Size) Data = "" #(String Data) data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x1B return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Size,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Data,_pos = CommFunc.ReadString(_lpData, _pos,self.Size) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x1B self.Size = 0 self.Data = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += len(self.Data) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.Size) data = CommFunc.WriteString(data, self.Size, self.Data) return data def OutputString(self): DumpString = ''' Head:%s, Size:%d, Data:%s '''\ %( self.Head.OutputString(), self.Size, self.Data ) return DumpString m_NAtagMCAutoFightSetting=tagMCAutoFightSetting() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCAutoFightSetting.Head.Cmd,m_NAtagMCAutoFightSetting.Head.SubCmd))] = m_NAtagMCAutoFightSetting #------------------------------------------------------ # A3 B3 ×°±¸²¿Î»ÐǼ¶ÐÅÏ¢ #tagMCEquipPartStarLVInfo class tagMCEquipPartStarLV(Structure): _pack_ = 1 _fields_ = [ ("PackType", c_ubyte), ("EquipIndex", c_ubyte), ("EquipPartStarLV", c_ushort), ("Proficiency", c_int), ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.PackType = 0 self.EquipIndex = 0 self.EquipPartStarLV = 0 self.Proficiency = 0 return def GetLength(self): return sizeof(tagMCEquipPartStarLV) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A3 B3 ×°±¸²¿Î»ÐǼ¶ÐÅÏ¢ //tagMCEquipPartStarLVInfo: PackType:%d, EquipIndex:%d, EquipPartStarLV:%d, Proficiency:%d '''\ %( self.PackType, self.EquipIndex, self.EquipPartStarLV, self.Proficiency ) return DumpString class tagMCEquipPartStarLVInfo(Structure): Head = tagHead() Count = 0 #(BYTE Count)// ÐÅÏ¢¸öÊý InfoList = list() #(vector InfoList)// ÐÅÏ¢Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0xB3 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Count): temInfoList = tagMCEquipPartStarLV() _pos = temInfoList.ReadData(_lpData, _pos) self.InfoList.append(temInfoList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0xB3 self.Count = 0 self.InfoList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.Count): length += self.InfoList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Count:%d, InfoList:%s '''\ %( self.Head.OutputString(), self.Count, "..." ) return DumpString m_NAtagMCEquipPartStarLVInfo=tagMCEquipPartStarLVInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCEquipPartStarLVInfo.Head.Cmd,m_NAtagMCEquipPartStarLVInfo.Head.SubCmd))] = m_NAtagMCEquipPartStarLVInfo #------------------------------------------------------ #A3 1A Íæ¼ÒÁìÈ¡²¹³¥ÎïÆ··¢·Å½á¹û#tagMCGiveCompensationResult class tagMCGiveCompensationResult(Structure): Head = tagHead() GUID = "" #(char GUID[40]) Result = 0 #(BYTE Result)//·¢·Å²¹³¥½á¹û 1 ³É¹¦ 0 ʧ°Ü data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x1A return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.GUID,_pos = CommFunc.ReadString(_lpData, _pos,40) self.Result,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x1A self.GUID = "" self.Result = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 40 length += 1 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteString(data, 40, self.GUID) data = CommFunc.WriteBYTE(data, self.Result) return data def OutputString(self): DumpString = ''' Head:%s, GUID:%s, Result:%d '''\ %( self.Head.OutputString(), self.GUID, self.Result ) return DumpString m_NAtagMCGiveCompensationResult=tagMCGiveCompensationResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCGiveCompensationResult.Head.Cmd,m_NAtagMCGiveCompensationResult.Head.SubCmd))] = m_NAtagMCGiveCompensationResult #------------------------------------------------------ #A3 A1 ¸÷¹¦ÄÜÄ£¿éÕ½¶·Á¦ÐÅÏ¢ #tagMCModuleFightPowerInfo class tagMCModuleFightPower(Structure): _pack_ = 1 _fields_ = [ ("MfpType", c_ubyte), #Ä£¿é±àºÅÀàÐÍ ("FightPower", c_int), #±¾Ä£¿éÕ½¶·Á¦ ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.MfpType = 0 self.FightPower = 0 return def GetLength(self): return sizeof(tagMCModuleFightPower) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//A3 A1 ¸÷¹¦ÄÜÄ£¿éÕ½¶·Á¦ÐÅÏ¢ //tagMCModuleFightPowerInfo: MfpType:%d, FightPower:%d '''\ %( self.MfpType, self.FightPower ) return DumpString class tagMCModuleFightPowerInfo(Structure): Head = tagHead() TotalFightPower = 0 #(DWORD TotalFightPower)//×ÜÕ½¶·Á¦ MFPCnt = 0 #(BYTE MFPCnt)//Ä£¿éÕ½¶·Á¦×ÜÊý MFPList = list() #(vector MFPList) data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0xA1 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.TotalFightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MFPCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.MFPCnt): temMFPList = tagMCModuleFightPower() _pos = temMFPList.ReadData(_lpData, _pos) self.MFPList.append(temMFPList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0xA1 self.TotalFightPower = 0 self.MFPCnt = 0 self.MFPList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 for i in range(self.MFPCnt): length += self.MFPList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.TotalFightPower) data = CommFunc.WriteBYTE(data, self.MFPCnt) for i in range(self.MFPCnt): data = CommFunc.WriteString(data, self.MFPList[i].GetLength(), self.MFPList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, TotalFightPower:%d, MFPCnt:%d, MFPList:%s '''\ %( self.Head.OutputString(), self.TotalFightPower, self.MFPCnt, "..." ) return DumpString m_NAtagMCModuleFightPowerInfo=tagMCModuleFightPowerInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCModuleFightPowerInfo.Head.Cmd,m_NAtagMCModuleFightPowerInfo.Head.SubCmd))] = m_NAtagMCModuleFightPowerInfo #------------------------------------------------------ # A3 53 ·¨±¦ÌØÈ¨Êý¾Ý #tagMCMWPrivilegeDataInfo class tagMCMWPrivilegeData(Structure): _pack_ = 1 _fields_ = [ ("PriID", c_int), # ÌØÈ¨ID ("CurValue", c_int), #µ±Ç°×ܽø¶È ("GotValue", c_int), #ÒÑÁìÈ¡½ø¶È ("ItemAwardState", c_ubyte), #ÎïÆ·½±ÀøÊÇ·ñÒÑÁìÈ¡ ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.PriID = 0 self.CurValue = 0 self.GotValue = 0 self.ItemAwardState = 0 return def GetLength(self): return sizeof(tagMCMWPrivilegeData) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A3 53 ·¨±¦ÌØÈ¨Êý¾Ý //tagMCMWPrivilegeDataInfo: PriID:%d, CurValue:%d, GotValue:%d, ItemAwardState:%d '''\ %( self.PriID, self.CurValue, self.GotValue, self.ItemAwardState ) return DumpString class tagMCMWPrivilegeDataInfo(Structure): Head = tagHead() Count = 0 #(BYTE Count)// ÐÅÏ¢¸öÊý InfoList = list() #(vector InfoList)// ÐÅÏ¢Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x53 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Count): temInfoList = tagMCMWPrivilegeData() _pos = temInfoList.ReadData(_lpData, _pos) self.InfoList.append(temInfoList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x53 self.Count = 0 self.InfoList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.Count): length += self.InfoList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Count:%d, InfoList:%s '''\ %( self.Head.OutputString(), self.Count, "..." ) return DumpString m_NAtagMCMWPrivilegeDataInfo=tagMCMWPrivilegeDataInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCMWPrivilegeDataInfo.Head.Cmd,m_NAtagMCMWPrivilegeDataInfo.Head.SubCmd))] = m_NAtagMCMWPrivilegeDataInfo #------------------------------------------------------ # A3 26 NPCIDÒѲɼ¯´ÎÊýÐÅÏ¢ #tagMCNPCIDCollectionCntInfo class tagMCNPCIDCollectionCnt(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("NPCID", c_int), #NPCID ("CollectionCnt", c_ubyte), #ÒѲɼ¯´ÎÊý ] def __init__(self): self.Clear() self.Cmd = 0xA3 self.SubCmd = 0x26 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA3 self.SubCmd = 0x26 self.NPCID = 0 self.CollectionCnt = 0 return def GetLength(self): return sizeof(tagMCNPCIDCollectionCnt) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A3 26 NPCIDÒѲɼ¯´ÎÊýÐÅÏ¢ //tagMCNPCIDCollectionCntInfo: Cmd:%s, SubCmd:%s, NPCID:%d, CollectionCnt:%d '''\ %( self.Cmd, self.SubCmd, self.NPCID, self.CollectionCnt ) return DumpString class tagMCNPCIDCollectionCntInfo(Structure): Head = tagHead() CollNPCCnt = 0 #(BYTE CollNPCCnt)//²É¼¯NPC¼Ç¼Êý NPCCollCntList = list() #(vector NPCCollCntList)// ²É¼¯NPC´ÎÊý¼Ç¼Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x26 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.CollNPCCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.CollNPCCnt): temNPCCollCntList = tagMCNPCIDCollectionCnt() _pos = temNPCCollCntList.ReadData(_lpData, _pos) self.NPCCollCntList.append(temNPCCollCntList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x26 self.CollNPCCnt = 0 self.NPCCollCntList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.CollNPCCnt): length += self.NPCCollCntList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.CollNPCCnt) for i in range(self.CollNPCCnt): data = CommFunc.WriteString(data, self.NPCCollCntList[i].GetLength(), self.NPCCollCntList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, CollNPCCnt:%d, NPCCollCntList:%s '''\ %( self.Head.OutputString(), self.CollNPCCnt, "..." ) return DumpString m_NAtagMCNPCIDCollectionCntInfo=tagMCNPCIDCollectionCntInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCNPCIDCollectionCntInfo.Head.Cmd,m_NAtagMCNPCIDCollectionCntInfo.Head.SubCmd))] = m_NAtagMCNPCIDCollectionCntInfo #------------------------------------------------------ #A3 08 ÔÚÏß½±ÀøÐÅÏ¢ #tagMCOnlinePrize class tagMCOnlinePrize(Structure): Head = tagHead() OnlineTime = 0 #(DWORD OnlineTime)//ÔÚÏßʱ¼äºÁÃë Len = 0 #(BYTE Len) PrizeInfo = list() #(vector PrizeInfo)//Áì½±¼Ç¼ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x08 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.OnlineTime,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Len,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Len): value,_pos=CommFunc.ReadDWORD(_lpData,_pos) self.PrizeInfo.append(value) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x08 self.OnlineTime = 0 self.Len = 0 self.PrizeInfo = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += 4 * self.Len return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.OnlineTime) data = CommFunc.WriteBYTE(data, self.Len) for i in range(self.Len): data = CommFunc.WriteDWORD(data, self.PrizeInfo[i]) return data def OutputString(self): DumpString = ''' Head:%s, OnlineTime:%d, Len:%d, PrizeInfo:%s '''\ %( self.Head.OutputString(), self.OnlineTime, self.Len, "..." ) return DumpString m_NAtagMCOnlinePrize=tagMCOnlinePrize() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCOnlinePrize.Head.Cmd,m_NAtagMCOnlinePrize.Head.SubCmd))] = m_NAtagMCOnlinePrize #------------------------------------------------------ # A3 19 ·Ö°üÏÂÔØ½±Àø¼Ç¼ #tagMCPackDownloadRecord class tagMCPackDownloadRecord(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Record", c_ubyte), #0-δÁìÈ¡ 1-ÒÑÁìÈ¡ ] def __init__(self): self.Clear() self.Cmd = 0xA3 self.SubCmd = 0x19 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA3 self.SubCmd = 0x19 self.Record = 0 return def GetLength(self): return sizeof(tagMCPackDownloadRecord) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A3 19 ·Ö°üÏÂÔØ½±Àø¼Ç¼ //tagMCPackDownloadRecord: Cmd:%s, SubCmd:%s, Record:%d '''\ %( self.Cmd, self.SubCmd, self.Record ) return DumpString m_NAtagMCPackDownloadRecord=tagMCPackDownloadRecord() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPackDownloadRecord.Cmd,m_NAtagMCPackDownloadRecord.SubCmd))] = m_NAtagMCPackDownloadRecord #------------------------------------------------------ # A3 20 Íæ¼Ò¸±±¾Ïà¹ØÐÅÏ¢ #tagMCPlayerFBInfoData class tagMCFBInfo(Structure): FBID = 0 #(DWORD FBID)//fbId EnterCnt = 0 #(WORD EnterCnt)//µ±ÈÕ½øÈë´ÎÊý RecoverCnt = 0 #(WORD RecoverCnt)//ÕһشÎÊý ItemAddCnt = 0 #(WORD ItemAddCnt)//ÎïÆ·Ôö¼Ó´ÎÊý PassGradeCnt = 0 #(BYTE PassGradeCnt)//ÐǼ¶Öµ¶ÔÓ¦¸öÊý, ÿ¸ökey´æ9¸ölineID PassGrade = list() #(vector PassGrade)//¸±±¾Ïß·¶ÔÓ¦ÐǼ¶ÖµÁбí data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.FBID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.EnterCnt,_pos = CommFunc.ReadWORD(_lpData, _pos) self.RecoverCnt,_pos = CommFunc.ReadWORD(_lpData, _pos) self.ItemAddCnt,_pos = CommFunc.ReadWORD(_lpData, _pos) self.PassGradeCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.PassGradeCnt): value,_pos=CommFunc.ReadDWORD(_lpData,_pos) self.PassGrade.append(value) return _pos def Clear(self): self.FBID = 0 self.EnterCnt = 0 self.RecoverCnt = 0 self.ItemAddCnt = 0 self.PassGradeCnt = 0 self.PassGrade = list() return def GetLength(self): length = 0 length += 4 length += 2 length += 2 length += 2 length += 1 length += 4 * self.PassGradeCnt return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.FBID) data = CommFunc.WriteWORD(data, self.EnterCnt) data = CommFunc.WriteWORD(data, self.RecoverCnt) data = CommFunc.WriteWORD(data, self.ItemAddCnt) data = CommFunc.WriteBYTE(data, self.PassGradeCnt) for i in range(self.PassGradeCnt): data = CommFunc.WriteDWORD(data, self.PassGrade[i]) return data def OutputString(self): DumpString = ''' FBID:%d, EnterCnt:%d, RecoverCnt:%d, ItemAddCnt:%d, PassGradeCnt:%d, PassGrade:%s '''\ %( self.FBID, self.EnterCnt, self.RecoverCnt, self.ItemAddCnt, self.PassGradeCnt, "..." ) return DumpString class tagMCPlayerFBInfoData(Structure): Head = tagHead() FBDataCnt = 0 #(BYTE FBDataCnt)// ¸±±¾Êý¾Ý¸öÊý FBDataList = list() #(vector FBDataList)// ¸±±¾Êý¾ÝÁбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x20 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.FBDataCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.FBDataCnt): temFBDataList = tagMCFBInfo() _pos = temFBDataList.ReadData(_lpData, _pos) self.FBDataList.append(temFBDataList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x20 self.FBDataCnt = 0 self.FBDataList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.FBDataCnt): length += self.FBDataList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.FBDataCnt) for i in range(self.FBDataCnt): data = CommFunc.WriteString(data, self.FBDataList[i].GetLength(), self.FBDataList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, FBDataCnt:%d, FBDataList:%s '''\ %( self.Head.OutputString(), self.FBDataCnt, "..." ) return DumpString m_NAtagMCPlayerFBInfoData=tagMCPlayerFBInfoData() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPlayerFBInfoData.Head.Cmd,m_NAtagMCPlayerFBInfoData.Head.SubCmd))] = m_NAtagMCPlayerFBInfoData #------------------------------------------------------ #A3 0B Íæ¼ÒµÈ¼¶½±ÀøÁìÈ¡¼Ç¼ÐÅÏ¢ #tagMCPlayerLVAwardGetRecord class tagMCPlayerLVAwardGetRecord(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("LVAwardGetRecord", c_int), # °´¶þ½øÖÆÎ»±êʾÁìÈ¡¼Ç¼£¬Ã¿Î»¶ÔÓ¦µÄµÈ¼¶ÔÚÅä±íÖÐÅäÖ㬷þÎñ¶Ë¿Í»§¶Ë¶ÔÓ¦ ("VIPAwardRecord", c_int), # °´¶þ½øÖÆÎ»±êʾvipÁìÈ¡¼Ç¼£¬Ã¿Î»¶ÔÓ¦µÄµÈ¼¶ÔÚÅä±íÖÐÅäÖ㬷þÎñ¶Ë¿Í»§¶Ë¶ÔÓ¦ ] def __init__(self): self.Clear() self.Cmd = 0xA3 self.SubCmd = 0x0B return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA3 self.SubCmd = 0x0B self.LVAwardGetRecord = 0 self.VIPAwardRecord = 0 return def GetLength(self): return sizeof(tagMCPlayerLVAwardGetRecord) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//A3 0B Íæ¼ÒµÈ¼¶½±ÀøÁìÈ¡¼Ç¼ÐÅÏ¢ //tagMCPlayerLVAwardGetRecord: Cmd:%s, SubCmd:%s, LVAwardGetRecord:%d, VIPAwardRecord:%d '''\ %( self.Cmd, self.SubCmd, self.LVAwardGetRecord, self.VIPAwardRecord ) return DumpString m_NAtagMCPlayerLVAwardGetRecord=tagMCPlayerLVAwardGetRecord() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPlayerLVAwardGetRecord.Cmd,m_NAtagMCPlayerLVAwardGetRecord.SubCmd))] = m_NAtagMCPlayerLVAwardGetRecord #------------------------------------------------------ #A3 03 Íæ¼ÒÔÚÏß½±ÀøÐÅÏ¢(ÔÝͣʹÓÃ) #tagMCPlayerOnlinePrizeInfo class tagMCOnlinePrizeItem(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PrizeItem", c_int), ("ItemCount", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0xA3 self.SubCmd = 0x03 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA3 self.SubCmd = 0x03 self.PrizeItem = 0 self.ItemCount = 0 return def GetLength(self): return sizeof(tagMCOnlinePrizeItem) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//A3 03 Íæ¼ÒÔÚÏß½±ÀøÐÅÏ¢(ÔÝͣʹÓÃ) //tagMCPlayerOnlinePrizeInfo: Cmd:%s, SubCmd:%s, PrizeItem:%d, ItemCount:%d '''\ %( self.Cmd, self.SubCmd, self.PrizeItem, self.ItemCount ) return DumpString class tagMCPlayerOnlinePrizeInfo(Structure): Head = tagHead() RemaindTime = 0 #(DWORD RemaindTime)//²úÉú½±ÀøÊ£Óàʱ¼ä HasPrize = 0 #(BYTE HasPrize)//ÊÇ·ñ¿ÉÒÔÁìÈ¡ PrizeType = 0 #(BYTE PrizeType)//ÔÚÏß½±ÀøÀàÐÍ PrizeCnt = 0 #(BYTE PrizeCnt)//ÔÚÏß½±ÀøÀàÐÍ PrizeInfo = list() #(vector PrizeInfo)//ÔÚÏß½±ÀøÀàÐÍ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x03 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.RemaindTime,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.HasPrize,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.PrizeType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.PrizeCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.PrizeCnt): temPrizeInfo = tagMCOnlinePrizeItem() _pos = temPrizeInfo.ReadData(_lpData, _pos) self.PrizeInfo.append(temPrizeInfo) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x03 self.RemaindTime = 0 self.HasPrize = 0 self.PrizeType = 0 self.PrizeCnt = 0 self.PrizeInfo = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += 1 length += 1 for i in range(self.PrizeCnt): length += self.PrizeInfo[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.RemaindTime) data = CommFunc.WriteBYTE(data, self.HasPrize) data = CommFunc.WriteBYTE(data, self.PrizeType) data = CommFunc.WriteBYTE(data, self.PrizeCnt) for i in range(self.PrizeCnt): data = CommFunc.WriteString(data, self.PrizeInfo[i].GetLength(), self.PrizeInfo[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, RemaindTime:%d, HasPrize:%d, PrizeType:%d, PrizeCnt:%d, PrizeInfo:%s '''\ %( self.Head.OutputString(), self.RemaindTime, self.HasPrize, self.PrizeType, self.PrizeCnt, "..." ) return DumpString m_NAtagMCPlayerOnlinePrizeInfo=tagMCPlayerOnlinePrizeInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPlayerOnlinePrizeInfo.Head.Cmd,m_NAtagMCPlayerOnlinePrizeInfo.Head.SubCmd))] = m_NAtagMCPlayerOnlinePrizeInfo #------------------------------------------------------ #A3 0C Íæ¼Ò¸÷½±ÀøÀàÐÍÁìÈ¡¼Ç¼ÐÅÏ¢ #tagMCPlayerRewardGetRecord class tagMCPlayerRewardGetRecord(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("RewardType", c_ubyte), #½±ÀøÀàÐÍ ("RewardGetRecord", c_int), # °´¶þ½øÖÆÎ»±êʾÁìÈ¡¼Ç¼ ] def __init__(self): self.Clear() self.Cmd = 0xA3 self.SubCmd = 0x0C return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA3 self.SubCmd = 0x0C self.RewardType = 0 self.RewardGetRecord = 0 return def GetLength(self): return sizeof(tagMCPlayerRewardGetRecord) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//A3 0C Íæ¼Ò¸÷½±ÀøÀàÐÍÁìÈ¡¼Ç¼ÐÅÏ¢ //tagMCPlayerRewardGetRecord: Cmd:%s, SubCmd:%s, RewardType:%d, RewardGetRecord:%d '''\ %( self.Cmd, self.SubCmd, self.RewardType, self.RewardGetRecord ) return DumpString m_NAtagMCPlayerRewardGetRecord=tagMCPlayerRewardGetRecord() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPlayerRewardGetRecord.Cmd,m_NAtagMCPlayerRewardGetRecord.SubCmd))] = m_NAtagMCPlayerRewardGetRecord #------------------------------------------------------ # A3 BF ֪ͨ¿Í»§¶ËÁ¶µ¤Â¯ÐÅÏ¢ #tagMCPlayerStoveMsg class tagMCPlayerStoveMsg(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("StoveLV", c_ubyte), # Á¶µ¤Â¯µÈ¼¶ ("StoveExp", c_int), # Á¶µ¤Â¯¾­Ñé ("ItemID", c_int), # ºÏ³ÉÎïÆ·id ] def __init__(self): self.Clear() self.Cmd = 0xA3 self.SubCmd = 0xBF return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA3 self.SubCmd = 0xBF self.StoveLV = 0 self.StoveExp = 0 self.ItemID = 0 return def GetLength(self): return sizeof(tagMCPlayerStoveMsg) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A3 BF ֪ͨ¿Í»§¶ËÁ¶µ¤Â¯ÐÅÏ¢ //tagMCPlayerStoveMsg: Cmd:%s, SubCmd:%s, StoveLV:%d, StoveExp:%d, ItemID:%d '''\ %( self.Cmd, self.SubCmd, self.StoveLV, self.StoveExp, self.ItemID ) return DumpString m_NAtagMCPlayerStoveMsg=tagMCPlayerStoveMsg() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPlayerStoveMsg.Cmd,m_NAtagMCPlayerStoveMsg.SubCmd))] = m_NAtagMCPlayerStoveMsg #------------------------------------------------------ # A3 49 ×ÊÔ´ÕһشÎÊý #tagMCRecoverNum class tagMCRecoverNumInfo(Structure): _pack_ = 1 _fields_ = [ ("Index", c_ubyte), # ÕÒ»ØÏîË÷Òý ("RecoverCnt", c_ubyte), # ¿ÉÕһشÎÊý ("ExtraCnt", c_ubyte), # VIP¶îÍâ´ÎÊý ("ExtraData", c_ubyte), # ¶îÍâ²ÎÊý ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Index = 0 self.RecoverCnt = 0 self.ExtraCnt = 0 self.ExtraData = 0 return def GetLength(self): return sizeof(tagMCRecoverNumInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A3 49 ×ÊÔ´ÕһشÎÊý //tagMCRecoverNum: Index:%d, RecoverCnt:%d, ExtraCnt:%d, ExtraData:%d '''\ %( self.Index, self.RecoverCnt, self.ExtraCnt, self.ExtraData ) return DumpString class tagMCRecoverNum(Structure): Head = tagHead() Num = 0 #(BYTE Num)// ÕÒ»ØÐÅÏ¢Êý NumInfo = list() #(vector NumInfo)// ÕÒ»ØÐÅÏ¢Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x49 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Num,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Num): temNumInfo = tagMCRecoverNumInfo() _pos = temNumInfo.ReadData(_lpData, _pos) self.NumInfo.append(temNumInfo) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x49 self.Num = 0 self.NumInfo = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.Num): length += self.NumInfo[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.Num) for i in range(self.Num): data = CommFunc.WriteString(data, self.NumInfo[i].GetLength(), self.NumInfo[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Num:%d, NumInfo:%s '''\ %( self.Head.OutputString(), self.Num, "..." ) return DumpString m_NAtagMCRecoverNum=tagMCRecoverNum() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCRecoverNum.Head.Cmd,m_NAtagMCRecoverNum.Head.SubCmd))] = m_NAtagMCRecoverNum #------------------------------------------------------ # A3 1F Íæ¼Ò·ûÓ¡ÐÅÏ¢ #tagMCRuneInfo class tagMCRuneInfo(Structure): Head = tagHead() RuneHoleOpenState = 0 #(DWORD RuneHoleOpenState)//·ûÓ¡¿×״̬, °´Ë÷Òý±íʾ¼¤»î״̬ Count = 0 #(BYTE Count)// ·ûÓ¡¿×ÐÅÏ¢Êý RuneDataList = list() #(vector RuneDataList)// ·ûÓ¡¿×Êý¾ÝÐÅÏ¢, Êý¾ÝÓë±³°üÊý¾ÝÏàͬ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x1F return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.RuneHoleOpenState,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Count): value,_pos=CommFunc.ReadDWORD(_lpData,_pos) self.RuneDataList.append(value) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x1F self.RuneHoleOpenState = 0 self.Count = 0 self.RuneDataList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += 4 * self.Count return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.RuneHoleOpenState) data = CommFunc.WriteBYTE(data, self.Count) for i in range(self.Count): data = CommFunc.WriteDWORD(data, self.RuneDataList[i]) return data def OutputString(self): DumpString = ''' Head:%s, RuneHoleOpenState:%d, Count:%d, RuneDataList:%s '''\ %( self.Head.OutputString(), self.RuneHoleOpenState, self.Count, "..." ) return DumpString m_NAtagMCRuneInfo=tagMCRuneInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCRuneInfo.Head.Cmd,m_NAtagMCRuneInfo.Head.SubCmd))] = m_NAtagMCRuneInfo #------------------------------------------------------ # A3 44 µ±ÈÕÀۼƳäÖµ¶àѡһÀñ°üÐÅÏ¢ #tagMCSingleGoldGift class tagMCSingleGoldGift(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("GoldCnt", c_int), # ½ñÈÕÒѳäÖµÔª±¦Êý ("GiftIndex", c_ubyte), # ÒÑÁìÈ¡Àñ°üË÷Òý, 0-δÁìÈ¡,>0ÒÑÁìÈ¡µÄË÷Òý ] def __init__(self): self.Clear() self.Cmd = 0xA3 self.SubCmd = 0x44 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA3 self.SubCmd = 0x44 self.GoldCnt = 0 self.GiftIndex = 0 return def GetLength(self): return sizeof(tagMCSingleGoldGift) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A3 44 µ±ÈÕÀۼƳäÖµ¶àѡһÀñ°üÐÅÏ¢ //tagMCSingleGoldGift: Cmd:%s, SubCmd:%s, GoldCnt:%d, GiftIndex:%d '''\ %( self.Cmd, self.SubCmd, self.GoldCnt, self.GiftIndex ) return DumpString m_NAtagMCSingleGoldGift=tagMCSingleGoldGift() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSingleGoldGift.Cmd,m_NAtagMCSingleGoldGift.SubCmd))] = m_NAtagMCSingleGoldGift #------------------------------------------------------ # A3 BC ֪ͨװ±¸Î»¿×λ±¦Ê¯ID #tagMCStoneInfo class tagMCStoneMsg(Structure): EquipPlace = 0 #(BYTE EquipPlace)// ×°±¸Î» MaxStoneCount = 0 #(BYTE MaxStoneCount)// ×î´ó¿×Êý StoneInfo = list() #(vector StoneInfo)// ¿×ÄÚ±¦Ê¯ÐÅÏ¢ StoneBind = list() #(vector StoneBind)// ¿×ÄÚ±¦Ê¯ÊÇ·ñ°ó¶¨ data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.EquipPlace,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.MaxStoneCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.MaxStoneCount): value,_pos=CommFunc.ReadDWORD(_lpData,_pos) self.StoneInfo.append(value) for i in range(self.MaxStoneCount): value,_pos=CommFunc.ReadBYTE(_lpData,_pos) self.StoneBind.append(value) return _pos def Clear(self): self.EquipPlace = 0 self.MaxStoneCount = 0 self.StoneInfo = list() self.StoneBind = list() return def GetLength(self): length = 0 length += 1 length += 1 length += 4 * self.MaxStoneCount length += 1 * self.MaxStoneCount return length def GetBuffer(self): data = '' data = CommFunc.WriteBYTE(data, self.EquipPlace) data = CommFunc.WriteBYTE(data, self.MaxStoneCount) for i in range(self.MaxStoneCount): data = CommFunc.WriteDWORD(data, self.StoneInfo[i]) for i in range(self.MaxStoneCount): data = CommFunc.WriteBYTE(data, self.StoneBind[i]) return data def OutputString(self): DumpString = ''' EquipPlace:%d, MaxStoneCount:%d, StoneInfo:%s, StoneBind:%s '''\ %( self.EquipPlace, self.MaxStoneCount, "...", "..." ) return DumpString class tagMCStoneInfo(Structure): Head = tagHead() EquipCount = 0 #(BYTE EquipCount)// ×°±¸Î»¸öÊý InfoList = list() #(vector InfoList)// ×°±¸Î»¿×ÐÅÏ¢Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0xBC return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.EquipCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.EquipCount): temInfoList = tagMCStoneMsg() _pos = temInfoList.ReadData(_lpData, _pos) self.InfoList.append(temInfoList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0xBC self.EquipCount = 0 self.InfoList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.EquipCount): length += self.InfoList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.EquipCount) for i in range(self.EquipCount): data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, EquipCount:%d, InfoList:%s '''\ %( self.Head.OutputString(), self.EquipCount, "..." ) return DumpString m_NAtagMCStoneInfo=tagMCStoneInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCStoneInfo.Head.Cmd,m_NAtagMCStoneInfo.Head.SubCmd))] = m_NAtagMCStoneInfo #------------------------------------------------------ # A3 41 ³É¾ÍÍê³É #tagMCSuccessFinish class tagMCSuccessFinish(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("SuccID", c_int), #³É¾Íid ] def __init__(self): self.Clear() self.Cmd = 0xA3 self.SubCmd = 0x41 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA3 self.SubCmd = 0x41 self.SuccID = 0 return def GetLength(self): return sizeof(tagMCSuccessFinish) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A3 41 ³É¾ÍÍê³É //tagMCSuccessFinish: Cmd:%s, SubCmd:%s, SuccID:%d '''\ %( self.Cmd, self.SubCmd, self.SuccID ) return DumpString m_NAtagMCSuccessFinish=tagMCSuccessFinish() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSuccessFinish.Cmd,m_NAtagMCSuccessFinish.SubCmd))] = m_NAtagMCSuccessFinish #------------------------------------------------------ #A3 42 ³É¾ÍÍê³ÉÁì½±¼Ç¼Áбí #tagMCSuccessFinishAwardRecordList class tagMCSuccessFinishAwardRecord(Structure): _pack_ = 1 _fields_ = [ ("RecordIndex", c_ushort), #µÚ¼¸¸ö¼Ç¼ֵ ÿ¸ökey´æ31¸ösuccid 0-30Ϊ0, 31-61Ϊ1.. ("Record", c_int), #¶ÔÓ¦ÊÇ·ñÁìȡֵ ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.RecordIndex = 0 self.Record = 0 return def GetLength(self): return sizeof(tagMCSuccessFinishAwardRecord) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//A3 42 ³É¾ÍÍê³ÉÁì½±¼Ç¼Áбí //tagMCSuccessFinishAwardRecordList: RecordIndex:%d, Record:%d '''\ %( self.RecordIndex, self.Record ) return DumpString class tagMCSuccessFinishAwardRecordList(Structure): Head = tagHead() RecordCnt = 0 #(WORD RecordCnt)//¼Ç¼¸öÊý RecordList = list() #(vector RecordList)//¼Ç¼Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x42 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.RecordCnt,_pos = CommFunc.ReadWORD(_lpData, _pos) for i in range(self.RecordCnt): temRecordList = tagMCSuccessFinishAwardRecord() _pos = temRecordList.ReadData(_lpData, _pos) self.RecordList.append(temRecordList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x42 self.RecordCnt = 0 self.RecordList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 for i in range(self.RecordCnt): length += self.RecordList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteWORD(data, self.RecordCnt) for i in range(self.RecordCnt): data = CommFunc.WriteString(data, self.RecordList[i].GetLength(), self.RecordList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, RecordCnt:%d, RecordList:%s '''\ %( self.Head.OutputString(), self.RecordCnt, "..." ) return DumpString m_NAtagMCSuccessFinishAwardRecordList=tagMCSuccessFinishAwardRecordList() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSuccessFinishAwardRecordList.Head.Cmd,m_NAtagMCSuccessFinishAwardRecordList.Head.SubCmd))] = m_NAtagMCSuccessFinishAwardRecordList #------------------------------------------------------ # A3 40 ³É¾ÍÐÅÏ¢Áбí #tagMCSuccessInfoList class tagMCSuccessInfo(Structure): SuccType = 0 #(WORD SuccType)//³É¾ÍÀàÐÍ Len = 0 #(WORD Len)//Ìõ¼þ³¤¶È Condition = "" #(String Condition)//³É¾ÍÌõ¼þ CntValue = 0 #(DWORD CntValue)//µ±Ç°Íê³É½ø¶ÈÖµ data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.SuccType,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Len,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Condition,_pos = CommFunc.ReadString(_lpData, _pos,self.Len) self.CntValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): self.SuccType = 0 self.Len = 0 self.Condition = "" self.CntValue = 0 return def GetLength(self): length = 0 length += 2 length += 2 length += len(self.Condition) length += 4 return length def GetBuffer(self): data = '' data = CommFunc.WriteWORD(data, self.SuccType) data = CommFunc.WriteWORD(data, self.Len) data = CommFunc.WriteString(data, self.Len, self.Condition) data = CommFunc.WriteDWORD(data, self.CntValue) return data def OutputString(self): DumpString = ''' SuccType:%d, Len:%d, Condition:%s, CntValue:%d '''\ %( self.SuccType, self.Len, self.Condition, self.CntValue ) return DumpString class tagMCSuccessInfoList(Structure): Head = tagHead() count = 0 #(WORD count)//ÐÅÏ¢¸öÊý SuccessInfoList = list() #(vector SuccessInfoList) data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x40 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): temSuccessInfoList = tagMCSuccessInfo() _pos = temSuccessInfoList.ReadData(_lpData, _pos) self.SuccessInfoList.append(temSuccessInfoList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x40 self.count = 0 self.SuccessInfoList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 for i in range(self.count): length += self.SuccessInfoList[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.SuccessInfoList[i].GetLength(), self.SuccessInfoList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, count:%d, SuccessInfoList:%s '''\ %( self.Head.OutputString(), self.count, "..." ) return DumpString m_NAtagMCSuccessInfoList=tagMCSuccessInfoList() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSuccessInfoList.Head.Cmd,m_NAtagMCSuccessInfoList.Head.SubCmd))] = m_NAtagMCSuccessInfoList #------------------------------------------------------ #A3 14 ֪ͨ¸÷¹¦ÄܵÄ×£¸£Öµ #tagMCSyncBlessValue class tagMCSyncSingleBlessValue(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ubyte), #¹¦ÄÜÀàÐÍ×£¸£ ("Value", c_int), #µ±Ç°×£¸£Öµ ("Multiple", c_ubyte), #±¶Êý ] def __init__(self): self.Clear() self.Cmd = 0xA3 self.SubCmd = 0x14 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA3 self.SubCmd = 0x14 self.Type = 0 self.Value = 0 self.Multiple = 0 return def GetLength(self): return sizeof(tagMCSyncSingleBlessValue) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//A3 14 ֪ͨ¸÷¹¦ÄܵÄ×£¸£Öµ //tagMCSyncBlessValue: Cmd:%s, SubCmd:%s, Type:%d, Value:%d, Multiple:%d '''\ %( self.Cmd, self.SubCmd, self.Type, self.Value, self.Multiple ) return DumpString class tagMCSyncBlessValue(Structure): Head = tagHead() TypeCnt = 0 #(BYTE TypeCnt)//×£¸£ÖµÖÖÀà¸öÊý BlessInfo = list() #(vector BlessInfo)//×£¸£ÖµÐÅÏ¢ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x14 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.TypeCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.TypeCnt): temBlessInfo = tagMCSyncSingleBlessValue() _pos = temBlessInfo.ReadData(_lpData, _pos) self.BlessInfo.append(temBlessInfo) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x14 self.TypeCnt = 0 self.BlessInfo = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.TypeCnt): length += self.BlessInfo[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.TypeCnt) for i in range(self.TypeCnt): data = CommFunc.WriteString(data, self.BlessInfo[i].GetLength(), self.BlessInfo[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, TypeCnt:%d, BlessInfo:%s '''\ %( self.Head.OutputString(), self.TypeCnt, "..." ) return DumpString m_NAtagMCSyncBlessValue=tagMCSyncBlessValue() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSyncBlessValue.Head.Cmd,m_NAtagMCSyncBlessValue.Head.SubCmd))] = m_NAtagMCSyncBlessValue #------------------------------------------------------ #A3 13 ֪ͨ¾ôλºÍÐÇ×ù # tagMCSyncOfficialRankStar class tagMCSyncOfficialRankStar(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("RankLV", c_ubyte), #¾ôλµÈ¼¶ ("StarIndex", c_ubyte), #ÐÇλ ("PrestigeNum", c_int), #ÉùÍû ] def __init__(self): self.Clear() self.Cmd = 0xA3 self.SubCmd = 0x13 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA3 self.SubCmd = 0x13 self.RankLV = 0 self.StarIndex = 0 self.PrestigeNum = 0 return def GetLength(self): return sizeof(tagMCSyncOfficialRankStar) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//A3 13 ֪ͨ¾ôλºÍÐÇ×ù // tagMCSyncOfficialRankStar: Cmd:%s, SubCmd:%s, RankLV:%d, StarIndex:%d, PrestigeNum:%d '''\ %( self.Cmd, self.SubCmd, self.RankLV, self.StarIndex, self.PrestigeNum ) return DumpString m_NAtagMCSyncOfficialRankStar=tagMCSyncOfficialRankStar() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSyncOfficialRankStar.Cmd,m_NAtagMCSyncOfficialRankStar.SubCmd))] = m_NAtagMCSyncOfficialRankStar #------------------------------------------------------ # A3 11 Í¨ÖªÍæ¼Ò¾³½ç¶É½ÙÊÇ·ñ¿ªÆô #tagMCSyncRealmFBIsOpen class tagMCSyncRealmFBIsOpen(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("IsOpen", c_ubyte), #ÊÇ·ñ¿ªÆô ("SitAllTime", c_ushort), #´ò×ø×Üʱ¼äÃë ("SitRemainTime", c_int), #¿ªÊ¼´ò×øÇ°Ê£Óàʱ¼äÃë ("SitStartTime", c_int), #¿ªÊ¼´ò×øÊ±¼ä ("LastEnterTime", c_int), #ÉϴνøÈë¶É½Ù¸±±¾Ê±¼ä ] def __init__(self): self.Clear() self.Cmd = 0xA3 self.SubCmd = 0x11 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA3 self.SubCmd = 0x11 self.IsOpen = 0 self.SitAllTime = 0 self.SitRemainTime = 0 self.SitStartTime = 0 self.LastEnterTime = 0 return def GetLength(self): return sizeof(tagMCSyncRealmFBIsOpen) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A3 11 Í¨ÖªÍæ¼Ò¾³½ç¶É½ÙÊÇ·ñ¿ªÆô //tagMCSyncRealmFBIsOpen: Cmd:%s, SubCmd:%s, IsOpen:%d, SitAllTime:%d, SitRemainTime:%d, SitStartTime:%d, LastEnterTime:%d '''\ %( self.Cmd, self.SubCmd, self.IsOpen, self.SitAllTime, self.SitRemainTime, self.SitStartTime, self.LastEnterTime ) return DumpString m_NAtagMCSyncRealmFBIsOpen=tagMCSyncRealmFBIsOpen() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSyncRealmFBIsOpen.Cmd,m_NAtagMCSyncRealmFBIsOpen.SubCmd))] = m_NAtagMCSyncRealmFBIsOpen #------------------------------------------------------ #A3 01 ×øÆïÅàÑøÐÅÏ¢ #tagTrainHorseData class tagMCHorseInfo(Structure): _pack_ = 1 _fields_ = [ ("HorseID", c_int), #ID ("LV", c_ubyte), #µÈ¼¶ ("Exp", c_int), #¾­Ñé ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.HorseID = 0 self.LV = 0 self.Exp = 0 return def GetLength(self): return sizeof(tagMCHorseInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//A3 01 ×øÆïÅàÑøÐÅÏ¢ //tagTrainHorseData: HorseID:%d, LV:%d, Exp:%d '''\ %( self.HorseID, self.LV, self.Exp ) return DumpString class tagTrainHorseData(Structure): Head = tagHead() Multiple = 0 #(BYTE Multiple)//Ï´α©»÷±¶Êý Num = 0 #(BYTE Num)//¸öÊý InfoList = list() #(vector InfoList)// ×øÆïÊý¾ÝÁбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x01 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Multiple,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Num,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Num): temInfoList = tagMCHorseInfo() _pos = temInfoList.ReadData(_lpData, _pos) self.InfoList.append(temInfoList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x01 self.Multiple = 0 self.Num = 0 self.InfoList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 1 for i in range(self.Num): length += self.InfoList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.Multiple) data = CommFunc.WriteBYTE(data, self.Num) for i in range(self.Num): data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Multiple:%d, Num:%d, InfoList:%s '''\ %( self.Head.OutputString(), self.Multiple, self.Num, "..." ) return DumpString m_NAtagTrainHorseData=tagTrainHorseData() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagTrainHorseData.Head.Cmd,m_NAtagTrainHorseData.Head.SubCmd))] = m_NAtagTrainHorseData #------------------------------------------------------ # A3 51 Ѱ±¦¹¦ÄÜÐÅÏ¢ #tagMCTreasureInfo class tagMCTreasureTypeInfo(Structure): TreasureType = 0 #(BYTE TreasureType)//Ѱ±¦ÀàÐÍ LuckValue = 0 #(WORD LuckValue)//µ±Ç°ÐÒÔËÖµ IndexCount = 0 #(BYTE IndexCount)//Ë÷Òý¸öÊý FreeCountTime = list() #(vector FreeCountTime)// ģʽ¶ÔÓ¦¿ªÊ¼¼ÆËãÃâ·Ñ´ÎÊýʱ¼ätimeÖµ data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.TreasureType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LuckValue,_pos = CommFunc.ReadWORD(_lpData, _pos) self.IndexCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.IndexCount): value,_pos=CommFunc.ReadDWORD(_lpData,_pos) self.FreeCountTime.append(value) return _pos def Clear(self): self.TreasureType = 0 self.LuckValue = 0 self.IndexCount = 0 self.FreeCountTime = list() return def GetLength(self): length = 0 length += 1 length += 2 length += 1 length += 4 * self.IndexCount return length def GetBuffer(self): data = '' data = CommFunc.WriteBYTE(data, self.TreasureType) data = CommFunc.WriteWORD(data, self.LuckValue) data = CommFunc.WriteBYTE(data, self.IndexCount) for i in range(self.IndexCount): data = CommFunc.WriteDWORD(data, self.FreeCountTime[i]) return data def OutputString(self): DumpString = ''' TreasureType:%d, LuckValue:%d, IndexCount:%d, FreeCountTime:%s '''\ %( self.TreasureType, self.LuckValue, self.IndexCount, "..." ) return DumpString class tagMCTreasureInfo(Structure): Head = tagHead() InfoCount = 0 #(BYTE InfoCount)// Ѱ±¦ÀàÐÍÐÅÏ¢Êý TreasuerInfoList = list() #(vector TreasuerInfoList)// Ѱ±¦ÀàÐÍÐÅÏ¢Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x51 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.InfoCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.InfoCount): temTreasuerInfoList = tagMCTreasureTypeInfo() _pos = temTreasuerInfoList.ReadData(_lpData, _pos) self.TreasuerInfoList.append(temTreasuerInfoList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x51 self.InfoCount = 0 self.TreasuerInfoList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.InfoCount): length += self.TreasuerInfoList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.InfoCount) for i in range(self.InfoCount): data = CommFunc.WriteString(data, self.TreasuerInfoList[i].GetLength(), self.TreasuerInfoList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, InfoCount:%d, TreasuerInfoList:%s '''\ %( self.Head.OutputString(), self.InfoCount, "..." ) return DumpString m_NAtagMCTreasureInfo=tagMCTreasureInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCTreasureInfo.Head.Cmd,m_NAtagMCTreasureInfo.Head.SubCmd))] = m_NAtagMCTreasureInfo #------------------------------------------------------ # A3 50 ֪ͨѰ±¦½á¹û #tagMCTreasureResult class tagMCTreasureResult(Structure): Head = tagHead() AddTreasureScore = 0 #(WORD AddTreasureScore)// ±¾´ÎѰ±¦Ôö¼ÓµÄѰ±¦»ý·Ö AddTreasureLuck = 0 #(WORD AddTreasureLuck)// ±¾´ÎѰ±¦Ôö¼ÓµÄÐÒÔËÖµ TreasureResultLen = 0 #(WORD TreasureResultLen) TreasureResult = "" #(String TreasureResult)// »ñµÃÎïÆ·½á¹û[[¸ñ×Ó±àºÅ, ÎïÆ·ID,¸öÊý,ÊÇ·ñ°ó¶¨], ...] data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x50 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.AddTreasureScore,_pos = CommFunc.ReadWORD(_lpData, _pos) self.AddTreasureLuck,_pos = CommFunc.ReadWORD(_lpData, _pos) self.TreasureResultLen,_pos = CommFunc.ReadWORD(_lpData, _pos) self.TreasureResult,_pos = CommFunc.ReadString(_lpData, _pos,self.TreasureResultLen) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x50 self.AddTreasureScore = 0 self.AddTreasureLuck = 0 self.TreasureResultLen = 0 self.TreasureResult = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 length += 2 length += 2 length += len(self.TreasureResult) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteWORD(data, self.AddTreasureScore) data = CommFunc.WriteWORD(data, self.AddTreasureLuck) data = CommFunc.WriteWORD(data, self.TreasureResultLen) data = CommFunc.WriteString(data, self.TreasureResultLen, self.TreasureResult) return data def OutputString(self): DumpString = ''' Head:%s, AddTreasureScore:%d, AddTreasureLuck:%d, TreasureResultLen:%d, TreasureResult:%s '''\ %( self.Head.OutputString(), self.AddTreasureScore, self.AddTreasureLuck, self.TreasureResultLen, self.TreasureResult ) return DumpString m_NAtagMCTreasureResult=tagMCTreasureResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCTreasureResult.Head.Cmd,m_NAtagMCTreasureResult.Head.SubCmd))] = m_NAtagMCTreasureResult #------------------------------------------------------ # A3 BA ֪ͨÊÔÁ¶Ö®Ëþ¹ý¹ØÊý #tagMCTrialTowerInfo class tagMCTrialTowerInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PassLV", c_int), ("YesterDayPassLV", c_int), ] def __init__(self): self.Clear() self.Cmd = 0xA3 self.SubCmd = 0xBA return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA3 self.SubCmd = 0xBA self.PassLV = 0 self.YesterDayPassLV = 0 return def GetLength(self): return sizeof(tagMCTrialTowerInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A3 BA ֪ͨÊÔÁ¶Ö®Ëþ¹ý¹ØÊý //tagMCTrialTowerInfo: Cmd:%s, SubCmd:%s, PassLV:%d, YesterDayPassLV:%d '''\ %( self.Cmd, self.SubCmd, self.PassLV, self.YesterDayPassLV ) return DumpString m_NAtagMCTrialTowerInfo=tagMCTrialTowerInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCTrialTowerInfo.Cmd,m_NAtagMCTrialTowerInfo.SubCmd))] = m_NAtagMCTrialTowerInfo #------------------------------------------------------ #A3 05 ɨµ´½±ÀøÐÅÏ¢ #tagMCWipeOutPrize class tagMCPrizeItemInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ItemID", c_int), #ÎïÆ·id ("ItemCnt", c_ubyte), #ÎïÆ·ÊýÁ¿ ] def __init__(self): self.Clear() self.Cmd = 0xA3 self.SubCmd = 0x05 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA3 self.SubCmd = 0x05 self.ItemID = 0 self.ItemCnt = 0 return def GetLength(self): return sizeof(tagMCPrizeItemInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//A3 05 ɨµ´½±ÀøÐÅÏ¢ //tagMCWipeOutPrize: Cmd:%s, SubCmd:%s, ItemID:%d, ItemCnt:%d '''\ %( self.Cmd, self.SubCmd, self.ItemID, self.ItemCnt ) return DumpString class tagMCWipeOutPrize(Structure): Head = tagHead() FBID = 0 #(DWORD FBID)//¸±±¾id WipeOutCnt = 0 #(DWORD WipeOutCnt)//ɨµ´´ÎÊý GiveExp = 0 #(DWORD GiveExp)//¸øÓè¾­Ñé SilverCnt = 0 #(DWORD SilverCnt)//¸øÓè½ð±Ò PrizeCnt = 0 #(BYTE PrizeCnt)//״̬ PrizeInfo = list() #(vector PrizeInfo)//״̬ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x05 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.FBID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.WipeOutCnt,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.GiveExp,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.SilverCnt,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.PrizeCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.PrizeCnt): temPrizeInfo = tagMCPrizeItemInfo() _pos = temPrizeInfo.ReadData(_lpData, _pos) self.PrizeInfo.append(temPrizeInfo) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x05 self.FBID = 0 self.WipeOutCnt = 0 self.GiveExp = 0 self.SilverCnt = 0 self.PrizeCnt = 0 self.PrizeInfo = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 4 length += 4 length += 4 length += 1 for i in range(self.PrizeCnt): length += self.PrizeInfo[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.FBID) data = CommFunc.WriteDWORD(data, self.WipeOutCnt) data = CommFunc.WriteDWORD(data, self.GiveExp) data = CommFunc.WriteDWORD(data, self.SilverCnt) data = CommFunc.WriteBYTE(data, self.PrizeCnt) for i in range(self.PrizeCnt): data = CommFunc.WriteString(data, self.PrizeInfo[i].GetLength(), self.PrizeInfo[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, FBID:%d, WipeOutCnt:%d, GiveExp:%d, SilverCnt:%d, PrizeCnt:%d, PrizeInfo:%s '''\ %( self.Head.OutputString(), self.FBID, self.WipeOutCnt, self.GiveExp, self.SilverCnt, self.PrizeCnt, "..." ) return DumpString m_NAtagMCWipeOutPrize=tagMCWipeOutPrize() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCWipeOutPrize.Head.Cmd,m_NAtagMCWipeOutPrize.Head.SubCmd))] = m_NAtagMCWipeOutPrize #------------------------------------------------------ # A3 35 ֪ͨÊÀ½çµÈ¼¶ #tagPyMCWorldAverageLv class tagPyMCWorldAverageLv(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("WorldLv", c_ushort), #µ±Ç°ÊÀ½çµÈ¼¶ ("ExpRate", c_int), #ÊÀ½çµÈ¼¶¾­Ñé±¶ÂÊ ] def __init__(self): self.Clear() self.Cmd = 0xA3 self.SubCmd = 0x35 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA3 self.SubCmd = 0x35 self.WorldLv = 0 self.ExpRate = 0 return def GetLength(self): return sizeof(tagPyMCWorldAverageLv) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A3 35 ֪ͨÊÀ½çµÈ¼¶ //tagPyMCWorldAverageLv: Cmd:%s, SubCmd:%s, WorldLv:%d, ExpRate:%d '''\ %( self.Cmd, self.SubCmd, self.WorldLv, self.ExpRate ) return DumpString m_NAtagPyMCWorldAverageLv=tagPyMCWorldAverageLv() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPyMCWorldAverageLv.Cmd,m_NAtagPyMCWorldAverageLv.SubCmd))] = m_NAtagPyMCWorldAverageLv #------------------------------------------------------ # A3 48 Ïɱ¦Ñ°Ö÷Áì½±¼Ç¼ #tagMCXBXZAwardRecordList class tagMCXBXZAwardRecord(Structure): _pack_ = 1 _fields_ = [ ("RecordIndex", c_ushort), #µÚ¼¸¸ö¼Ç¼ֵ ÿ¸ökey´æ31¸öid 0-30Ϊ0, 31-61Ϊ1.. ("Record", c_int), #¶ÔÓ¦ÊÇ·ñÁìȡֵ ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.RecordIndex = 0 self.Record = 0 return def GetLength(self): return sizeof(tagMCXBXZAwardRecord) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A3 48 Ïɱ¦Ñ°Ö÷Áì½±¼Ç¼ //tagMCXBXZAwardRecordList: RecordIndex:%d, Record:%d '''\ %( self.RecordIndex, self.Record ) return DumpString class tagMCXBXZAwardRecordList(Structure): Head = tagHead() RecordCnt = 0 #(WORD RecordCnt)//¼Ç¼¸öÊý RecordList = list() #(vector RecordList)//¼Ç¼Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x48 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.RecordCnt,_pos = CommFunc.ReadWORD(_lpData, _pos) for i in range(self.RecordCnt): temRecordList = tagMCXBXZAwardRecord() _pos = temRecordList.ReadData(_lpData, _pos) self.RecordList.append(temRecordList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x48 self.RecordCnt = 0 self.RecordList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 for i in range(self.RecordCnt): length += self.RecordList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteWORD(data, self.RecordCnt) for i in range(self.RecordCnt): data = CommFunc.WriteString(data, self.RecordList[i].GetLength(), self.RecordList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, RecordCnt:%d, RecordList:%s '''\ %( self.Head.OutputString(), self.RecordCnt, "..." ) return DumpString m_NAtagMCXBXZAwardRecordList=tagMCXBXZAwardRecordList() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCXBXZAwardRecordList.Head.Cmd,m_NAtagMCXBXZAwardRecordList.Head.SubCmd))] = m_NAtagMCXBXZAwardRecordList #------------------------------------------------------ # A5 35 ÍõÕßÏÉÃËÿÈÕٺ»½±Àø×´Ì¬ #tagMCChampionFamilyDailyReward class tagMCChampionFamilyDailyReward(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("GetState", c_ubyte), #ÊÇ·ñÒÑÁìÈ¡ ] def __init__(self): self.Clear() self.Cmd = 0xA5 self.SubCmd = 0x35 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA5 self.SubCmd = 0x35 self.GetState = 0 return def GetLength(self): return sizeof(tagMCChampionFamilyDailyReward) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A5 35 ÍõÕßÏÉÃËÿÈÕٺ»½±Àø×´Ì¬ //tagMCChampionFamilyDailyReward: Cmd:%s, SubCmd:%s, GetState:%d '''\ %( self.Cmd, self.SubCmd, self.GetState ) return DumpString m_NAtagMCChampionFamilyDailyReward=tagMCChampionFamilyDailyReward() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCChampionFamilyDailyReward.Cmd,m_NAtagMCChampionFamilyDailyReward.SubCmd))] = m_NAtagMCChampionFamilyDailyReward #------------------------------------------------------ # A5 06 ÏÉÃËÿÈÕ¸£ÀûÁìȡ״̬ #tagMCFamilyDayAward class tagMCFamilyDayAward(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("GetState", c_ubyte), #ÊÇ·ñÒÑÁìÈ¡ ] def __init__(self): self.Clear() self.Cmd = 0xA5 self.SubCmd = 0x06 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA5 self.SubCmd = 0x06 self.GetState = 0 return def GetLength(self): return sizeof(tagMCFamilyDayAward) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A5 06 ÏÉÃËÿÈÕ¸£ÀûÁìȡ״̬ //tagMCFamilyDayAward: Cmd:%s, SubCmd:%s, GetState:%d '''\ %( self.Cmd, self.SubCmd, self.GetState ) return DumpString m_NAtagMCFamilyDayAward=tagMCFamilyDayAward() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilyDayAward.Cmd,m_NAtagMCFamilyDayAward.SubCmd))] = m_NAtagMCFamilyDayAward #------------------------------------------------------ # A5 03 µ±ÈÕÆí¸£ÐÅÏ¢ #tagMCFamilyPrayInfo class tagMCFamilyPrayInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PrayCntInfo", c_int), # µ±ÈÕÆí¸£´ÎÊýÐÅÏ¢, °´Î»´æ´¢Æí¸£ÀàÐͶÔÓ¦´ÎÊý ] def __init__(self): self.Clear() self.Cmd = 0xA5 self.SubCmd = 0x03 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA5 self.SubCmd = 0x03 self.PrayCntInfo = 0 return def GetLength(self): return sizeof(tagMCFamilyPrayInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A5 03 µ±ÈÕÆí¸£ÐÅÏ¢ //tagMCFamilyPrayInfo: Cmd:%s, SubCmd:%s, PrayCntInfo:%d '''\ %( self.Cmd, self.SubCmd, self.PrayCntInfo ) return DumpString m_NAtagMCFamilyPrayInfo=tagMCFamilyPrayInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilyPrayInfo.Cmd,m_NAtagMCFamilyPrayInfo.SubCmd))] = m_NAtagMCFamilyPrayInfo #------------------------------------------------------ # A5 05 ֪ͨ¼Ò×å×êʯºì°üÒÑÓöî¶È #tagMCFamilyRedPacketGoldLimit class tagMCFamilyRedPacketGoldLimit(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("HasSendGold", c_int), # ÒÑÓöî¶È ] def __init__(self): self.Clear() self.Cmd = 0xA5 self.SubCmd = 0x05 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA5 self.SubCmd = 0x05 self.HasSendGold = 0 return def GetLength(self): return sizeof(tagMCFamilyRedPacketGoldLimit) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A5 05 ֪ͨ¼Ò×å×êʯºì°üÒÑÓöî¶È //tagMCFamilyRedPacketGoldLimit: Cmd:%s, SubCmd:%s, HasSendGold:%d '''\ %( self.Cmd, self.SubCmd, self.HasSendGold ) return DumpString m_NAtagMCFamilyRedPacketGoldLimit=tagMCFamilyRedPacketGoldLimit() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilyRedPacketGoldLimit.Cmd,m_NAtagMCFamilyRedPacketGoldLimit.SubCmd))] = m_NAtagMCFamilyRedPacketGoldLimit #------------------------------------------------------ #A5 34 ÌìÌݾº¼¼³¡×´Ì¬#tagMCHighLadderState class tagMCHighLadderState(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Count", c_ubyte), #ÒÑÌôÕ½´ÎÊý ("MaxCount", c_ubyte), #×î´ó´ÎÊý ("CDTime", c_int), #ÀÛ¼ÆÀäȴʱ¼ä ("IsRelCD", c_ubyte), #ÊÇ·ñÕýÔÚÕæÊµÀäȴ״̬ ("Currency", c_int), #»ý·Ö ] def __init__(self): self.Clear() self.Cmd = 0xA5 self.SubCmd = 0x34 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA5 self.SubCmd = 0x34 self.Count = 0 self.MaxCount = 0 self.CDTime = 0 self.IsRelCD = 0 self.Currency = 0 return def GetLength(self): return sizeof(tagMCHighLadderState) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//A5 34 ÌìÌݾº¼¼³¡×´Ì¬//tagMCHighLadderState: Cmd:%s, SubCmd:%s, Count:%d, MaxCount:%d, CDTime:%d, IsRelCD:%d, Currency:%d '''\ %( self.Cmd, self.SubCmd, self.Count, self.MaxCount, self.CDTime, self.IsRelCD, self.Currency ) return DumpString m_NAtagMCHighLadderState=tagMCHighLadderState() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCHighLadderState.Cmd,m_NAtagMCHighLadderState.SubCmd))] = m_NAtagMCHighLadderState #------------------------------------------------------ #A5 01 ²é¿´ÒÑÉêÇë¼ÓÈëµÄ¼Ò×åÐÅÏ¢ #tagMCNotifyRequestJoinFamilyInfo class tagRequestJoinFamily(Structure): _pack_ = 1 _fields_ = [ ("RequestFamilyID", c_int), #ÉêÇëµÄ¼ÓÈëID ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.RequestFamilyID = 0 return def GetLength(self): return sizeof(tagRequestJoinFamily) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//A5 01 ²é¿´ÒÑÉêÇë¼ÓÈëµÄ¼Ò×åÐÅÏ¢ //tagMCNotifyRequestJoinFamilyInfo: RequestFamilyID:%d '''\ %( self.RequestFamilyID ) return DumpString class tagMCNotifyRequestJoinFamilyInfo(Structure): Head = tagHead() RequestCount = 0 #(BYTE RequestCount)//ÉêÇëµÄÊýÁ¿ RequestAddFamilyInfo = list() #(vector RequestAddFamilyInfo)//size = RequestCount data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA5 self.Head.SubCmd = 0x01 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.RequestCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.RequestCount): temRequestAddFamilyInfo = tagRequestJoinFamily() _pos = temRequestAddFamilyInfo.ReadData(_lpData, _pos) self.RequestAddFamilyInfo.append(temRequestAddFamilyInfo) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA5 self.Head.SubCmd = 0x01 self.RequestCount = 0 self.RequestAddFamilyInfo = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.RequestCount): length += self.RequestAddFamilyInfo[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.RequestCount) for i in range(self.RequestCount): data = CommFunc.WriteString(data, self.RequestAddFamilyInfo[i].GetLength(), self.RequestAddFamilyInfo[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, RequestCount:%d, RequestAddFamilyInfo:%s '''\ %( self.Head.OutputString(), self.RequestCount, "..." ) return DumpString m_NAtagMCNotifyRequestJoinFamilyInfo=tagMCNotifyRequestJoinFamilyInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCNotifyRequestJoinFamilyInfo.Head.Cmd,m_NAtagMCNotifyRequestJoinFamilyInfo.Head.SubCmd))] = m_NAtagMCNotifyRequestJoinFamilyInfo #------------------------------------------------------ # A5 04 Íæ¼ÒÕ½Ã˿Ƽ¼µÈ¼¶ #tagMCPlayerTechInfo class tagMCPlayerTech(Structure): _pack_ = 1 _fields_ = [ ("TechID", c_ushort), # ¿Æ¼¼ID ("TechLV", c_ushort), # ÌØ¼¼µÈ¼¶ ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.TechID = 0 self.TechLV = 0 return def GetLength(self): return sizeof(tagMCPlayerTech) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A5 04 Íæ¼ÒÕ½Ã˿Ƽ¼µÈ¼¶ //tagMCPlayerTechInfo: TechID:%d, TechLV:%d '''\ %( self.TechID, self.TechLV ) return DumpString class tagMCPlayerTechInfo(Structure): Head = tagHead() TechCnt = 0 #(BYTE TechCnt)// ¿Æ¼¼¸öÊý TechInfoList = list() #(vector TechInfoList)// ¿Æ¼¼ÐÅÏ¢Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA5 self.Head.SubCmd = 0x04 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.TechCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.TechCnt): temTechInfoList = tagMCPlayerTech() _pos = temTechInfoList.ReadData(_lpData, _pos) self.TechInfoList.append(temTechInfoList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA5 self.Head.SubCmd = 0x04 self.TechCnt = 0 self.TechInfoList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.TechCnt): length += self.TechInfoList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.TechCnt) for i in range(self.TechCnt): data = CommFunc.WriteString(data, self.TechInfoList[i].GetLength(), self.TechInfoList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, TechCnt:%d, TechInfoList:%s '''\ %( self.Head.OutputString(), self.TechCnt, "..." ) return DumpString m_NAtagMCPlayerTechInfo=tagMCPlayerTechInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPlayerTechInfo.Head.Cmd,m_NAtagMCPlayerTechInfo.Head.SubCmd))] = m_NAtagMCPlayerTechInfo #------------------------------------------------------ # A6 05 VIPÀñ°ü¹ºÂò¼Ç¼ #tagMCVIPAwardMsg class tagMCVIPAwardMsg(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("AwardMsg", c_int), # VIPÀñ°ü¹ºÂò¼Ç¼ ] def __init__(self): self.Clear() self.Cmd = 0xA6 self.SubCmd = 0x05 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA6 self.SubCmd = 0x05 self.AwardMsg = 0 return def GetLength(self): return sizeof(tagMCVIPAwardMsg) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A6 05 VIPÀñ°ü¹ºÂò¼Ç¼ //tagMCVIPAwardMsg: Cmd:%s, SubCmd:%s, AwardMsg:%d '''\ %( self.Cmd, self.SubCmd, self.AwardMsg ) return DumpString m_NAtagMCVIPAwardMsg=tagMCVIPAwardMsg() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCVIPAwardMsg.Cmd,m_NAtagMCVIPAwardMsg.SubCmd))] = m_NAtagMCVIPAwardMsg #------------------------------------------------------ # A6 03 ¹ó×åÐÅÏ¢ #tagMCNobleInfo class tagMCNobleInfo(Structure): Head = tagHead() LV = 0 #(BYTE LV)// ¹ó×åµÈ¼¶ Time = 0 #(DWORD Time)// ¹ó×åʱ¼ä<µ¥Î»Ãë> NobleState = 0 #(DWORD NobleState)// ¹ó×忪ͨ״̬; µÚ0λΪ¾É°æµÄ¹ó×åµÈ¼¶, ´ÓµÚ1λ¿ªÊ¼±íʾÿÖÖ¹ó×åµÄ¿ªÍ¨×´Ì¬(0-δ¿ªÍ¨, 1-ÒÑ¿ªÍ¨¹ý, 9-ÓÀ¾ÃÓÐЧ ) Count = 0 #(WORD Count)// ¹ó×åʱ¼ä¸öÊý NobleTimeList = list() #(vector NobleTimeList)// ¹ó×åʱ¼äÁбí<µ¥Î»Ãë> data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA6 self.Head.SubCmd = 0x03 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.LV,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Time,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.NobleState,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos) for i in range(self.Count): value,_pos=CommFunc.ReadDWORD(_lpData,_pos) self.NobleTimeList.append(value) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA6 self.Head.SubCmd = 0x03 self.LV = 0 self.Time = 0 self.NobleState = 0 self.Count = 0 self.NobleTimeList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 4 length += 4 length += 2 length += 4 * self.Count return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.LV) data = CommFunc.WriteDWORD(data, self.Time) data = CommFunc.WriteDWORD(data, self.NobleState) data = CommFunc.WriteWORD(data, self.Count) for i in range(self.Count): data = CommFunc.WriteDWORD(data, self.NobleTimeList[i]) return data def OutputString(self): DumpString = ''' Head:%s, LV:%d, Time:%d, NobleState:%d, Count:%d, NobleTimeList:%s '''\ %( self.Head.OutputString(), self.LV, self.Time, self.NobleState, self.Count, "..." ) return DumpString m_NAtagMCNobleInfo=tagMCNobleInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCNobleInfo.Head.Cmd,m_NAtagMCNobleInfo.Head.SubCmd))] = m_NAtagMCNobleInfo #------------------------------------------------------ #A6 01 ֪ͨVIPʱ¼ä #tagMCNotifyVipTime class tagMCNotifyVipTime(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Time", c_int), # VIPʱ¼ä£¬µ¥Î»Ãë ("ExperienceTime", c_int), # VIPÌåÑéʱ¼ä£¬µ¥Î»Ãë ] def __init__(self): self.Clear() self.Cmd = 0xA6 self.SubCmd = 0x01 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA6 self.SubCmd = 0x01 self.Time = 0 self.ExperienceTime = 0 return def GetLength(self): return sizeof(tagMCNotifyVipTime) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//A6 01 ֪ͨVIPʱ¼ä //tagMCNotifyVipTime: Cmd:%s, SubCmd:%s, Time:%d, ExperienceTime:%d '''\ %( self.Cmd, self.SubCmd, self.Time, self.ExperienceTime ) return DumpString m_NAtagMCNotifyVipTime=tagMCNotifyVipTime() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCNotifyVipTime.Cmd,m_NAtagMCNotifyVipTime.SubCmd))] = m_NAtagMCNotifyVipTime #------------------------------------------------------ # A6 04 VIPÐÅÏ¢ #tagMCVIPInfo class tagMCVIPInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Exp", c_int), # µ±Ç°VIPµÈ¼¶¾­Ñé ("VIPLV", c_int), #vipµÈ¼¶ ] def __init__(self): self.Clear() self.Cmd = 0xA6 self.SubCmd = 0x04 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA6 self.SubCmd = 0x04 self.Exp = 0 self.VIPLV = 0 return def GetLength(self): return sizeof(tagMCVIPInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A6 04 VIPÐÅÏ¢ //tagMCVIPInfo: Cmd:%s, SubCmd:%s, Exp:%d, VIPLV:%d '''\ %( self.Cmd, self.SubCmd, self.Exp, self.VIPLV ) return DumpString m_NAtagMCVIPInfo=tagMCVIPInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCVIPInfo.Cmd,m_NAtagMCVIPInfo.SubCmd))] = m_NAtagMCVIPInfo #------------------------------------------------------ # A6 06 VIPɱ¹ÖµÈ¼¶ÐÅÏ¢ #tagMCVIPKillNPCLVInfo class tagMCVIPKillNPCLVInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("KillLV", c_ushort), # µÈ¼¶ ("KillLVExpPoint", c_int), # ¾­Ñéµã£¬1µã1ÒÚ ("KillLVExp", c_int), # δÂú1Òڵľ­Ñé ] def __init__(self): self.Clear() self.Cmd = 0xA6 self.SubCmd = 0x06 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA6 self.SubCmd = 0x06 self.KillLV = 0 self.KillLVExpPoint = 0 self.KillLVExp = 0 return def GetLength(self): return sizeof(tagMCVIPKillNPCLVInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A6 06 VIPɱ¹ÖµÈ¼¶ÐÅÏ¢ //tagMCVIPKillNPCLVInfo: Cmd:%s, SubCmd:%s, KillLV:%d, KillLVExpPoint:%d, KillLVExp:%d '''\ %( self.Cmd, self.SubCmd, self.KillLV, self.KillLVExpPoint, self.KillLVExp ) return DumpString m_NAtagMCVIPKillNPCLVInfo=tagMCVIPKillNPCLVInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCVIPKillNPCLVInfo.Cmd,m_NAtagMCVIPKillNPCLVInfo.SubCmd))] = m_NAtagMCVIPKillNPCLVInfo #------------------------------------------------------ # A7 04 ֪ͨÊÀ½çBossÉËѪÁбí #tagMCBossHurtList class tagMCHurtPlayer(Structure): Head = tagHead() PlayerID = 0 #(DWORD PlayerID)// ÉËÑªÍæ¼ÒID NameLen = 0 #(BYTE NameLen) PlayerName = "" #(String PlayerName) HurtValue = 0 #(DWORD HurtValue)// ÀÛ¼ÆÉËѪ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA7 self.Head.SubCmd = 0x04 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.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen) self.HurtValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA7 self.Head.SubCmd = 0x04 self.PlayerID = 0 self.NameLen = 0 self.PlayerName = "" self.HurtValue = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += len(self.PlayerName) length += 4 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.NameLen) data = CommFunc.WriteString(data, self.NameLen, self.PlayerName) data = CommFunc.WriteDWORD(data, self.HurtValue) return data def OutputString(self): DumpString = ''' Head:%s, PlayerID:%d, NameLen:%d, PlayerName:%s, HurtValue:%d '''\ %( self.Head.OutputString(), self.PlayerID, self.NameLen, self.PlayerName, self.HurtValue ) return DumpString class tagMCBossHurtList(Structure): Head = tagHead() ObjID = 0 #(DWORD ObjID) BossID = 0 #(DWORD BossID) IsSort = 0 #(BYTE IsSort)// ÊÇ·ñÅÅÐò¹ýµÄ£¬Ò»°ãboss±»»÷ɱºó»áͳһͬ²½Ò»´ÎÅÅÐò¹ýµÄ×îÖÕ½á¹û£¬ÆäËûÇé¿öÏ¿ͻ§¶Ë×Ô¼ºÅÅÐò HurtCnt = 0 #(WORD HurtCnt)// ÉËÑªÍæ¼Ò¸öÊý HurtPlayerList = list() #(vector HurtPlayerList)// ÉËÑªÍæ¼ÒÁбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA7 self.Head.SubCmd = 0x04 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.ObjID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.BossID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.IsSort,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.HurtCnt,_pos = CommFunc.ReadWORD(_lpData, _pos) for i in range(self.HurtCnt): temHurtPlayerList = tagMCHurtPlayer() _pos = temHurtPlayerList.ReadData(_lpData, _pos) self.HurtPlayerList.append(temHurtPlayerList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA7 self.Head.SubCmd = 0x04 self.ObjID = 0 self.BossID = 0 self.IsSort = 0 self.HurtCnt = 0 self.HurtPlayerList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 4 length += 1 length += 2 for i in range(self.HurtCnt): length += self.HurtPlayerList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.ObjID) data = CommFunc.WriteDWORD(data, self.BossID) data = CommFunc.WriteBYTE(data, self.IsSort) data = CommFunc.WriteWORD(data, self.HurtCnt) for i in range(self.HurtCnt): data = CommFunc.WriteString(data, self.HurtPlayerList[i].GetLength(), self.HurtPlayerList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, ObjID:%d, BossID:%d, IsSort:%d, HurtCnt:%d, HurtPlayerList:%s '''\ %( self.Head.OutputString(), self.ObjID, self.BossID, self.IsSort, self.HurtCnt, "..." ) return DumpString m_NAtagMCBossHurtList=tagMCBossHurtList() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCBossHurtList.Head.Cmd,m_NAtagMCBossHurtList.Head.SubCmd))] = m_NAtagMCBossHurtList #------------------------------------------------------ # A7 13 ¶¯Ì¬Õϰ­Îï״̬ #tagMCDynamicBarrierState class tagMCDynamicBarrier(Structure): _pack_ = 1 _fields_ = [ ("APosX", c_ushort), ("APosY", c_ushort), ("BPosX", c_ushort), ("BPosY", c_ushort), ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.APosX = 0 self.APosY = 0 self.BPosX = 0 self.BPosY = 0 return def GetLength(self): return sizeof(tagMCDynamicBarrier) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A7 13 ¶¯Ì¬Õϰ­Îï״̬ //tagMCDynamicBarrierState: APosX:%d, APosY:%d, BPosX:%d, BPosY:%d '''\ %( self.APosX, self.APosY, self.BPosX, self.BPosY ) return DumpString class tagMCDynamicBarrierState(Structure): Head = tagHead() State = 0 #(BYTE State)// ÊÇ·ñÓÐЧ Count = 0 #(BYTE Count) BarrierList = list() #(vector BarrierList) data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA7 self.Head.SubCmd = 0x13 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.State,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Count): temBarrierList = tagMCDynamicBarrier() _pos = temBarrierList.ReadData(_lpData, _pos) self.BarrierList.append(temBarrierList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA7 self.Head.SubCmd = 0x13 self.State = 0 self.Count = 0 self.BarrierList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 1 for i in range(self.Count): length += self.BarrierList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.State) data = CommFunc.WriteBYTE(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.BarrierList[i].GetLength(), self.BarrierList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, State:%d, Count:%d, BarrierList:%s '''\ %( self.Head.OutputString(), self.State, self.Count, "..." ) return DumpString m_NAtagMCDynamicBarrierState=tagMCDynamicBarrierState() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCDynamicBarrierState.Head.Cmd,m_NAtagMCDynamicBarrierState.Head.SubCmd))] = m_NAtagMCDynamicBarrierState #------------------------------------------------------ # A7 03 ֪ͨ½øÈ븱±¾Ê±¼ä #tagMCFBEnterTickList class tagMCFBEnterTick(Structure): _pack_ = 1 _fields_ = [ ("MapID", c_int), # ¸±±¾µØÍ¼id ("LastEnterTick", c_int), # ÉϴνøÈ븱±¾Ê±¼ä ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.MapID = 0 self.LastEnterTick = 0 return def GetLength(self): return sizeof(tagMCFBEnterTick) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A7 03 ֪ͨ½øÈ븱±¾Ê±¼ä //tagMCFBEnterTickList: MapID:%d, LastEnterTick:%d '''\ %( self.MapID, self.LastEnterTick ) return DumpString class tagMCFBEnterTickList(Structure): Head = tagHead() Cnt = 0 #(BYTE Cnt)// ÐÅÏ¢¸öÊý EnterTickList = list() #(vector EnterTickList)// ÐÅÏ¢Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA7 self.Head.SubCmd = 0x03 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Cnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Cnt): temEnterTickList = tagMCFBEnterTick() _pos = temEnterTickList.ReadData(_lpData, _pos) self.EnterTickList.append(temEnterTickList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA7 self.Head.SubCmd = 0x03 self.Cnt = 0 self.EnterTickList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.Cnt): length += self.EnterTickList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.Cnt) for i in range(self.Cnt): data = CommFunc.WriteString(data, self.EnterTickList[i].GetLength(), self.EnterTickList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Cnt:%d, EnterTickList:%s '''\ %( self.Head.OutputString(), self.Cnt, "..." ) return DumpString m_NAtagMCFBEnterTickList=tagMCFBEnterTickList() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFBEnterTickList.Head.Cmd,m_NAtagMCFBEnterTickList.Head.SubCmd))] = m_NAtagMCFBEnterTickList #------------------------------------------------------ # A7 10 Òýµ¼×´Ì¬¼Ç¼ #tagMCGuideState class tagMCGuideState(Structure): Head = tagHead() Count = 0 #(BYTE Count) GuideState = list() #(vector GuideState)// ÿ¸öÊýÖµ´æ´¢31λ(0~30)£¬Ä¿Ç°×î¶à´æ´¢Count*31λ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA7 self.Head.SubCmd = 0x10 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Count): value,_pos=CommFunc.ReadDWORD(_lpData,_pos) self.GuideState.append(value) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA7 self.Head.SubCmd = 0x10 self.Count = 0 self.GuideState = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 4 * self.Count return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.Count) for i in range(self.Count): data = CommFunc.WriteDWORD(data, self.GuideState[i]) return data def OutputString(self): DumpString = ''' Head:%s, Count:%d, GuideState:%s '''\ %( self.Head.OutputString(), self.Count, "..." ) return DumpString m_NAtagMCGuideState=tagMCGuideState() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCGuideState.Head.Cmd,m_NAtagMCGuideState.Head.SubCmd))] = m_NAtagMCGuideState #------------------------------------------------------ #A7 01 ֪ͨѡÖжÔÏó # tagMCNotifySelectObj class tagMCNotifySelectObj(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("isSelect", c_ubyte), #0 ²»Ñ¡ÖÐ ("Type", c_ubyte), #Ä¿±êÀàÐÍ ("ID", c_int), #ID ] def __init__(self): self.Clear() self.Cmd = 0xA7 self.SubCmd = 0x01 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA7 self.SubCmd = 0x01 self.isSelect = 0 self.Type = 0 self.ID = 0 return def GetLength(self): return sizeof(tagMCNotifySelectObj) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//A7 01 ֪ͨѡÖжÔÏó // tagMCNotifySelectObj: Cmd:%s, SubCmd:%s, isSelect:%d, Type:%d, ID:%d '''\ %( self.Cmd, self.SubCmd, self.isSelect, self.Type, self.ID ) return DumpString m_NAtagMCNotifySelectObj=tagMCNotifySelectObj() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCNotifySelectObj.Cmd,m_NAtagMCNotifySelectObj.SubCmd))] = m_NAtagMCNotifySelectObj #------------------------------------------------------ # A7 06 ֪ͨ²éѯµÄNPCÐÅÏ¢ #tagMCNPCInfoList class tagMCNPCInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ObjID", c_int), ("NPCID", c_int), ("NPCHP", c_int), ("MaxHP", c_int), ("IsActive", c_ubyte), #Õâ¸öNPCÊÇ·ñ»î×Å ("PosX", c_ushort), ("PosY", c_ushort), ("RefreshSecond", c_int), # Ê£Óà¶àÉÙÃëˢР] def __init__(self): self.Clear() self.Cmd = 0xA7 self.SubCmd = 0x06 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA7 self.SubCmd = 0x06 self.ObjID = 0 self.NPCID = 0 self.NPCHP = 0 self.MaxHP = 0 self.IsActive = 0 self.PosX = 0 self.PosY = 0 self.RefreshSecond = 0 return def GetLength(self): return sizeof(tagMCNPCInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A7 06 ֪ͨ²éѯµÄNPCÐÅÏ¢ //tagMCNPCInfoList: Cmd:%s, SubCmd:%s, ObjID:%d, NPCID:%d, NPCHP:%d, MaxHP:%d, IsActive:%d, PosX:%d, PosY:%d, RefreshSecond:%d '''\ %( self.Cmd, self.SubCmd, self.ObjID, self.NPCID, self.NPCHP, self.MaxHP, self.IsActive, self.PosX, self.PosY, self.RefreshSecond ) return DumpString class tagMCNPCInfoList(Structure): Head = tagHead() MapID = 0 #(DWORD MapID) PlayerCnt = 0 #(WORD PlayerCnt) NPCInfoCnt = 0 #(BYTE NPCInfoCnt) NPCInfoList = list() #(vector NPCInfoList) data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA7 self.Head.SubCmd = 0x06 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.MapID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.PlayerCnt,_pos = CommFunc.ReadWORD(_lpData, _pos) self.NPCInfoCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.NPCInfoCnt): temNPCInfoList = tagMCNPCInfo() _pos = temNPCInfoList.ReadData(_lpData, _pos) self.NPCInfoList.append(temNPCInfoList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA7 self.Head.SubCmd = 0x06 self.MapID = 0 self.PlayerCnt = 0 self.NPCInfoCnt = 0 self.NPCInfoList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 2 length += 1 for i in range(self.NPCInfoCnt): length += self.NPCInfoList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.MapID) data = CommFunc.WriteWORD(data, self.PlayerCnt) data = CommFunc.WriteBYTE(data, self.NPCInfoCnt) for i in range(self.NPCInfoCnt): data = CommFunc.WriteString(data, self.NPCInfoList[i].GetLength(), self.NPCInfoList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, MapID:%d, PlayerCnt:%d, NPCInfoCnt:%d, NPCInfoList:%s '''\ %( self.Head.OutputString(), self.MapID, self.PlayerCnt, self.NPCInfoCnt, "..." ) return DumpString m_NAtagMCNPCInfoList=tagMCNPCInfoList() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCNPCInfoList.Head.Cmd,m_NAtagMCNPCInfoList.Head.SubCmd))] = m_NAtagMCNPCInfoList #------------------------------------------------------ #A7 02 ֪ͨµØÍ¼³öÏÖÕÙ»½NPC #tagMCSummonMapNPC class tagMCSummonMapNPC(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("NPCID", c_int), ("PosX", c_ushort), ("PosY", c_ushort), ] def __init__(self): self.Clear() self.Cmd = 0xA7 self.SubCmd = 0x02 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA7 self.SubCmd = 0x02 self.NPCID = 0 self.PosX = 0 self.PosY = 0 return def GetLength(self): return sizeof(tagMCSummonMapNPC) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//A7 02 ֪ͨµØÍ¼³öÏÖÕÙ»½NPC //tagMCSummonMapNPC: Cmd:%s, SubCmd:%s, NPCID:%d, PosX:%d, PosY:%d '''\ %( self.Cmd, self.SubCmd, self.NPCID, self.PosX, self.PosY ) return DumpString m_NAtagMCSummonMapNPC=tagMCSummonMapNPC() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSummonMapNPC.Cmd,m_NAtagMCSummonMapNPC.SubCmd))] = m_NAtagMCSummonMapNPC #------------------------------------------------------ # A7 12 ÏÔʾNPCÐã #tagMCNPCShow class tagMCNPCShow(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("NPCID", c_int), ] def __init__(self): self.Clear() self.Cmd = 0xA7 self.SubCmd = 0x12 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA7 self.SubCmd = 0x12 self.NPCID = 0 return def GetLength(self): return sizeof(tagMCNPCShow) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A7 12 ÏÔʾNPCÐã //tagMCNPCShow: Cmd:%s, SubCmd:%s, NPCID:%d '''\ %( self.Cmd, self.SubCmd, self.NPCID ) return DumpString m_NAtagMCNPCShow=tagMCNPCShow() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCNPCShow.Cmd,m_NAtagMCNPCShow.SubCmd))] = m_NAtagMCNPCShow #------------------------------------------------------ # A7 07 Í¨ÖªÍæ¼Ò×Ô¶¨ÒåÁÄÌì #tagMCPyTalk class tagMCPyTalk(Structure): Head = tagHead() TalkType = 0 #(BYTE TalkType)// ×Ô¶¨ÒåÁÄÌìÀàÐÍ NameLen = 0 #(BYTE NameLen) Name = "" #(String Name)//size = NameLen PlayerID = 0 #(DWORD PlayerID) Len = 0 #(WORD Len) Content = "" #(String Content)//size = Len ExtraValue = 0 #(DWORD ExtraValue)//¸½¼ÓÖµ Extras = "" #(char Extras[256])//¸½¼ÓÖµÁбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA7 self.Head.SubCmd = 0x07 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.TalkType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Name,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen) self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Len,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Content,_pos = CommFunc.ReadString(_lpData, _pos,self.Len) self.ExtraValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Extras,_pos = CommFunc.ReadString(_lpData, _pos,256) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA7 self.Head.SubCmd = 0x07 self.TalkType = 0 self.NameLen = 0 self.Name = "" self.PlayerID = 0 self.Len = 0 self.Content = "" self.ExtraValue = 0 self.Extras = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 1 length += len(self.Name) length += 4 length += 2 length += len(self.Content) length += 4 length += 256 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.TalkType) data = CommFunc.WriteBYTE(data, self.NameLen) data = CommFunc.WriteString(data, self.NameLen, self.Name) data = CommFunc.WriteDWORD(data, self.PlayerID) data = CommFunc.WriteWORD(data, self.Len) data = CommFunc.WriteString(data, self.Len, self.Content) data = CommFunc.WriteDWORD(data, self.ExtraValue) data = CommFunc.WriteString(data, 256, self.Extras) return data def OutputString(self): DumpString = ''' Head:%s, TalkType:%d, NameLen:%d, Name:%s, PlayerID:%d, Len:%d, Content:%s, ExtraValue:%d, Extras:%s '''\ %( self.Head.OutputString(), self.TalkType, self.NameLen, self.Name, self.PlayerID, self.Len, self.Content, self.ExtraValue, self.Extras ) return DumpString m_NAtagMCPyTalk=tagMCPyTalk() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPyTalk.Head.Cmd,m_NAtagMCPyTalk.Head.SubCmd))] = m_NAtagMCPyTalk #------------------------------------------------------ # A7 08 ֪ͨÅÜ»·½±Àø¼Ç¼ #tagMCRunTaskAwardInfo class tagMCRunTaskAwardRecord(Structure): _pack_ = 1 _fields_ = [ ("Type", c_ubyte), ("Num", c_int), ("AwardState", c_ubyte), ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Type = 0 self.Num = 0 self.AwardState = 0 return def GetLength(self): return sizeof(tagMCRunTaskAwardRecord) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A7 08 ֪ͨÅÜ»·½±Àø¼Ç¼ //tagMCRunTaskAwardInfo: Type:%d, Num:%d, AwardState:%d '''\ %( self.Type, self.Num, self.AwardState ) return DumpString class tagMCRunTaskAwardInfo(Structure): Head = tagHead() Cnt = 0 #(BYTE Cnt) InfoList = list() #(vector InfoList) data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA7 self.Head.SubCmd = 0x08 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Cnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Cnt): temInfoList = tagMCRunTaskAwardRecord() _pos = temInfoList.ReadData(_lpData, _pos) self.InfoList.append(temInfoList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA7 self.Head.SubCmd = 0x08 self.Cnt = 0 self.InfoList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.Cnt): length += self.InfoList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.Cnt) for i in range(self.Cnt): data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Cnt:%d, InfoList:%s '''\ %( self.Head.OutputString(), self.Cnt, "..." ) return DumpString m_NAtagMCRunTaskAwardInfo=tagMCRunTaskAwardInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCRunTaskAwardInfo.Head.Cmd,m_NAtagMCRunTaskAwardInfo.Head.SubCmd))] = m_NAtagMCRunTaskAwardInfo #------------------------------------------------------ #A7 05 ²éÑ¯Íæ¼ÒÏêϸÐÅÏ¢½á¹û#tagSCQueryPlayerCacheResult class tagSCQueryPlayerCacheResult(Structure): Head = tagHead() PlayerID = 0 #(DWORD PlayerID)//Íæ¼ÒID PropDataSize = 0 #(DWORD PropDataSize) PropData = "" #(String PropData)//ÊôÐԼǼ ItemDataSize = 0 #(DWORD ItemDataSize) ItemData = "" #(String ItemData)//ÎïÆ·¼Ç¼ PlusDataSize = 0 #(DWORD PlusDataSize) PlusData = "" #(String PlusData)//À©Õ¹¼Ç¼ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA7 self.Head.SubCmd = 0x05 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.PropDataSize,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.PropData,_pos = CommFunc.ReadString(_lpData, _pos,self.PropDataSize) self.ItemDataSize,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ItemData,_pos = CommFunc.ReadString(_lpData, _pos,self.ItemDataSize) self.PlusDataSize,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.PlusData,_pos = CommFunc.ReadString(_lpData, _pos,self.PlusDataSize) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA7 self.Head.SubCmd = 0x05 self.PlayerID = 0 self.PropDataSize = 0 self.PropData = "" self.ItemDataSize = 0 self.ItemData = "" self.PlusDataSize = 0 self.PlusData = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 4 length += len(self.PropData) length += 4 length += len(self.ItemData) length += 4 length += len(self.PlusData) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.PlayerID) data = CommFunc.WriteDWORD(data, self.PropDataSize) data = CommFunc.WriteString(data, self.PropDataSize, self.PropData) data = CommFunc.WriteDWORD(data, self.ItemDataSize) data = CommFunc.WriteString(data, self.ItemDataSize, self.ItemData) data = CommFunc.WriteDWORD(data, self.PlusDataSize) data = CommFunc.WriteString(data, self.PlusDataSize, self.PlusData) return data def OutputString(self): DumpString = ''' Head:%s, PlayerID:%d, PropDataSize:%d, PropData:%s, ItemDataSize:%d, ItemData:%s, PlusDataSize:%d, PlusData:%s '''\ %( self.Head.OutputString(), self.PlayerID, self.PropDataSize, self.PropData, self.ItemDataSize, self.ItemData, self.PlusDataSize, self.PlusData ) return DumpString m_NAtagSCQueryPlayerCacheResult=tagSCQueryPlayerCacheResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCQueryPlayerCacheResult.Head.Cmd,m_NAtagSCQueryPlayerCacheResult.Head.SubCmd))] = m_NAtagSCQueryPlayerCacheResult #------------------------------------------------------ # A7 11 ÏÔʾÒýµ¼ #tagMCShowGuide class tagMCShowGuide(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("GuideID", c_ushort), ] def __init__(self): self.Clear() self.Cmd = 0xA7 self.SubCmd = 0x11 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA7 self.SubCmd = 0x11 self.GuideID = 0 return def GetLength(self): return sizeof(tagMCShowGuide) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A7 11 ÏÔʾÒýµ¼ //tagMCShowGuide: Cmd:%s, SubCmd:%s, GuideID:%d '''\ %( self.Cmd, self.SubCmd, self.GuideID ) return DumpString m_NAtagMCShowGuide=tagMCShowGuide() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCShowGuide.Cmd,m_NAtagMCShowGuide.SubCmd))] = m_NAtagMCShowGuide #------------------------------------------------------ #A7 09 ÖÜΧ¶ÔÏóˢкϲ¢°ü #tagObjInfoListRefresh class tagRefreshType(Structure): _pack_ = 1 _fields_ = [ ("RefreshType", c_ubyte), ("Value", c_int), ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.RefreshType = 0 self.Value = 0 return def GetLength(self): return sizeof(tagRefreshType) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//A7 09 ÖÜΧ¶ÔÏóˢкϲ¢°ü //tagObjInfoListRefresh: RefreshType:%d, Value:%d '''\ %( self.RefreshType, self.Value ) return DumpString class tagObjInfoListRefresh(Structure): Head = tagHead() ObjID = 0 #(DWORD ObjID) ObjType = 0 #(BYTE ObjType) Count = 0 #(BYTE Count) RefreshType = list() #(vector RefreshType) data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA7 self.Head.SubCmd = 0x09 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.ObjID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ObjType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Count): temRefreshType = tagRefreshType() _pos = temRefreshType.ReadData(_lpData, _pos) self.RefreshType.append(temRefreshType) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA7 self.Head.SubCmd = 0x09 self.ObjID = 0 self.ObjType = 0 self.Count = 0 self.RefreshType = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += 1 for i in range(self.Count): length += self.RefreshType[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.ObjID) data = CommFunc.WriteBYTE(data, self.ObjType) data = CommFunc.WriteBYTE(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.RefreshType[i].GetLength(), self.RefreshType[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, ObjID:%d, ObjType:%d, Count:%d, RefreshType:%s '''\ %( self.Head.OutputString(), self.ObjID, self.ObjType, self.Count, "..." ) return DumpString m_NAtagObjInfoListRefresh=tagObjInfoListRefresh() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagObjInfoListRefresh.Head.Cmd,m_NAtagObjInfoListRefresh.Head.SubCmd))] = m_NAtagObjInfoListRefresh #------------------------------------------------------ # A8 12 ÊØ»¤³É¹¦Ê°È¡ÎïÆ· #tagMCGuradPickupItemSucc class tagMCGuradPickupItemSucc(Structure): Head = tagHead() ItemCount = 0 #(WORD ItemCount) MapItemID = list() #(vector MapItemID)//size = ItemCount data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA8 self.Head.SubCmd = 0x12 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.ItemCount,_pos = CommFunc.ReadWORD(_lpData, _pos) for i in range(self.ItemCount): value,_pos=CommFunc.ReadWORD(_lpData,_pos) self.MapItemID.append(value) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA8 self.Head.SubCmd = 0x12 self.ItemCount = 0 self.MapItemID = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 length += 2 * self.ItemCount return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteWORD(data, self.ItemCount) for i in range(self.ItemCount): data = CommFunc.WriteWORD(data, self.MapItemID[i]) return data def OutputString(self): DumpString = ''' Head:%s, ItemCount:%d, MapItemID:%s '''\ %( self.Head.OutputString(), self.ItemCount, "..." ) return DumpString m_NAtagMCGuradPickupItemSucc=tagMCGuradPickupItemSucc() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCGuradPickupItemSucc.Head.Cmd,m_NAtagMCGuradPickupItemSucc.Head.SubCmd))] = m_NAtagMCGuradPickupItemSucc #------------------------------------------------------ # A8 09 ֪ͨÎïÆ·µ±ÈÕÒÑʹÓôÎÊý #tagMCItemDayUseCntInfo class tagMCItemDayUseCnt(Structure): _pack_ = 1 _fields_ = [ ("ItemID", c_int), ("UseCnt", c_ushort), # ½ñÈÕÒÑʹÓôÎÊý ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.ItemID = 0 self.UseCnt = 0 return def GetLength(self): return sizeof(tagMCItemDayUseCnt) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A8 09 ֪ͨÎïÆ·µ±ÈÕÒÑʹÓôÎÊý //tagMCItemDayUseCntInfo: ItemID:%d, UseCnt:%d '''\ %( self.ItemID, self.UseCnt ) return DumpString class tagMCItemDayUseCntInfo(Structure): Head = tagHead() Count = 0 #(WORD Count)//ÐÅÏ¢Êý ItemUseCntList = list() #(vector ItemUseCntList) data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA8 self.Head.SubCmd = 0x09 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): temItemUseCntList = tagMCItemDayUseCnt() _pos = temItemUseCntList.ReadData(_lpData, _pos) self.ItemUseCntList.append(temItemUseCntList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA8 self.Head.SubCmd = 0x09 self.Count = 0 self.ItemUseCntList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 for i in range(self.Count): length += self.ItemUseCntList[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.ItemUseCntList[i].GetLength(), self.ItemUseCntList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Count:%d, ItemUseCntList:%s '''\ %( self.Head.OutputString(), self.Count, "..." ) return DumpString m_NAtagMCItemDayUseCntInfo=tagMCItemDayUseCntInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCItemDayUseCntInfo.Head.Cmd,m_NAtagMCItemDayUseCntInfo.Head.SubCmd))] = m_NAtagMCItemDayUseCntInfo #------------------------------------------------------ # A8 14 ºÏ³É½á¹û֪ͨ #tagMCMakeItemAnswer class tagMCMakeItemAnswer(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("MakeType", c_ubyte), #ÀàÐÍ TMakeItemType ("Result", c_ubyte), #ÊÇ·ñ³É¹¦ ("MakeItemID", c_int), #ºÏ³ÉµÄÎïÆ·ID ] def __init__(self): self.Clear() self.Cmd = 0xA8 self.SubCmd = 0x14 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA8 self.SubCmd = 0x14 self.MakeType = 0 self.Result = 0 self.MakeItemID = 0 return def GetLength(self): return sizeof(tagMCMakeItemAnswer) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A8 14 ºÏ³É½á¹û֪ͨ //tagMCMakeItemAnswer: Cmd:%s, SubCmd:%s, MakeType:%d, Result:%d, MakeItemID:%d '''\ %( self.Cmd, self.SubCmd, self.MakeType, self.Result, self.MakeItemID ) return DumpString m_NAtagMCMakeItemAnswer=tagMCMakeItemAnswer() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCMakeItemAnswer.Cmd,m_NAtagMCMakeItemAnswer.SubCmd))] = m_NAtagMCMakeItemAnswer #------------------------------------------------------ # A8 11 É̵깺Âò½á¹û #tagMCShoppingResult class tagMCShoppingResult(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ItemIndex", c_int), ("ItemCnt", c_int), #¹ºÂòÊýÁ¿ ] def __init__(self): self.Clear() self.Cmd = 0xA8 self.SubCmd = 0x11 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA8 self.SubCmd = 0x11 self.ItemIndex = 0 self.ItemCnt = 0 return def GetLength(self): return sizeof(tagMCShoppingResult) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A8 11 É̵깺Âò½á¹û //tagMCShoppingResult: Cmd:%s, SubCmd:%s, ItemIndex:%d, ItemCnt:%d '''\ %( self.Cmd, self.SubCmd, self.ItemIndex, self.ItemCnt ) return DumpString m_NAtagMCShoppingResult=tagMCShoppingResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCShoppingResult.Cmd,m_NAtagMCShoppingResult.SubCmd))] = m_NAtagMCShoppingResult #------------------------------------------------------ # A8 10 ֪ͨ»ñµÃÎïÆ· #tagMCNotifyUseItemGetItem class tagMCNotifyUseItemGetItem(Structure): Head = tagHead() UseItemID = 0 #(DWORD UseItemID)// ʹÓõÄÎïÆ·ID UseCount = 0 #(WORD UseCount)// ʹÓÃÎïÆ·¸öÊý GetItemLen = 0 #(WORD GetItemLen) GetItemData = "" #(String GetItemData)// »ñµÃÎïÆ·ÐÅÏ¢ [[itemID,itemCount,isBind], [»òitemID,itemCount,isBind,isAppoint], {»òÎïÆ·ÐÅÏ¢×Öµä}, ...] MoneyType = 0 #(BYTE MoneyType)// »ñµÃ»õ±ÒÀàÐÍ MoneyCount = 0 #(DWORD MoneyCount)// »ñµÃ»õ±ÒÊýÁ¿ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA8 self.Head.SubCmd = 0x10 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.UseItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.UseCount,_pos = CommFunc.ReadWORD(_lpData, _pos) self.GetItemLen,_pos = CommFunc.ReadWORD(_lpData, _pos) self.GetItemData,_pos = CommFunc.ReadString(_lpData, _pos,self.GetItemLen) self.MoneyType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.MoneyCount,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA8 self.Head.SubCmd = 0x10 self.UseItemID = 0 self.UseCount = 0 self.GetItemLen = 0 self.GetItemData = "" self.MoneyType = 0 self.MoneyCount = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 2 length += 2 length += len(self.GetItemData) length += 1 length += 4 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.UseItemID) data = CommFunc.WriteWORD(data, self.UseCount) data = CommFunc.WriteWORD(data, self.GetItemLen) data = CommFunc.WriteString(data, self.GetItemLen, self.GetItemData) data = CommFunc.WriteBYTE(data, self.MoneyType) data = CommFunc.WriteDWORD(data, self.MoneyCount) return data def OutputString(self): DumpString = ''' Head:%s, UseItemID:%d, UseCount:%d, GetItemLen:%d, GetItemData:%s, MoneyType:%d, MoneyCount:%d '''\ %( self.Head.OutputString(), self.UseItemID, self.UseCount, self.GetItemLen, self.GetItemData, self.MoneyType, self.MoneyCount ) return DumpString m_NAtagMCNotifyUseItemGetItem=tagMCNotifyUseItemGetItem() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCNotifyUseItemGetItem.Head.Cmd,m_NAtagMCNotifyUseItemGetItem.Head.SubCmd))] = m_NAtagMCNotifyUseItemGetItem #------------------------------------------------------ # A8 04 ֪ͨÉ̵êÏÞ¹ºÎïÆ·ÒѹºÂò´ÎÊýÐÅÏ¢ # tagMCShopItemBuyCntInfoList class tagMCShopItemBuyCntInfo(Structure): _pack_ = 1 _fields_ = [ ("ShopID", c_int), ("ItemShopIndex", c_ushort), ("ItemID", c_int), ("BuyCnt", c_int), # ¸öÈËÒѹºÂòÊý ("ServerBuyCnt", c_int), # È«·þÒѹºÂòÊý ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.ShopID = 0 self.ItemShopIndex = 0 self.ItemID = 0 self.BuyCnt = 0 self.ServerBuyCnt = 0 return def GetLength(self): return sizeof(tagMCShopItemBuyCntInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A8 04 ֪ͨÉ̵êÏÞ¹ºÎïÆ·ÒѹºÂò´ÎÊýÐÅÏ¢ // tagMCShopItemBuyCntInfoList: ShopID:%d, ItemShopIndex:%d, ItemID:%d, BuyCnt:%d, ServerBuyCnt:%d '''\ %( self.ShopID, self.ItemShopIndex, self.ItemID, self.BuyCnt, self.ServerBuyCnt ) return DumpString class tagMCShopItemBuyCntInfoList(Structure): Head = tagHead() Count = 0 #(BYTE Count)//֪ͨ¸öÊý BuyCntList = list() #(vector BuyCntList) data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA8 self.Head.SubCmd = 0x04 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Count): temBuyCntList = tagMCShopItemBuyCntInfo() _pos = temBuyCntList.ReadData(_lpData, _pos) self.BuyCntList.append(temBuyCntList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA8 self.Head.SubCmd = 0x04 self.Count = 0 self.BuyCntList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.Count): length += self.BuyCntList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.BuyCntList[i].GetLength(), self.BuyCntList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Count:%d, BuyCntList:%s '''\ %( self.Head.OutputString(), self.Count, "..." ) return DumpString m_NAtagMCShopItemBuyCntInfoList=tagMCShopItemBuyCntInfoList() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCShopItemBuyCntInfoList.Head.Cmd,m_NAtagMCShopItemBuyCntInfoList.Head.SubCmd))] = m_NAtagMCShopItemBuyCntInfoList #------------------------------------------------------ # A8 02 ֪ͨNPCÉ̵êÎïÆ·½ñÈÕÒѹºÂò´ÎÊý #tagMCShopItemDayBuyCntInfo class tagMCShopItemDayBuyCnt(Structure): _pack_ = 1 _fields_ = [ ("ItemIndex", c_int), ("BuyCnt", c_ushort), # ½ñÈÕÒѹºÂò´ÎÊý ("IsReset", c_ubyte), #ÊÇ·ñÖØÖà ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.ItemIndex = 0 self.BuyCnt = 0 self.IsReset = 0 return def GetLength(self): return sizeof(tagMCShopItemDayBuyCnt) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A8 02 ֪ͨNPCÉ̵êÎïÆ·½ñÈÕÒѹºÂò´ÎÊý //tagMCShopItemDayBuyCntInfo: ItemIndex:%d, BuyCnt:%d, IsReset:%d '''\ %( self.ItemIndex, self.BuyCnt, self.IsReset ) return DumpString class tagMCShopItemDayBuyCntInfo(Structure): Head = tagHead() Count = 0 #(WORD Count)//֪ͨ¸öÊý£¬×¢Òâ²»ÏÞÖÆÃ¿ÈÕ¹ºÂò´ÎÊýµÄĬÈϲ»Í¨Öª DayBuyCntList = list() #(vector DayBuyCntList) data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA8 self.Head.SubCmd = 0x02 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): temDayBuyCntList = tagMCShopItemDayBuyCnt() _pos = temDayBuyCntList.ReadData(_lpData, _pos) self.DayBuyCntList.append(temDayBuyCntList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA8 self.Head.SubCmd = 0x02 self.Count = 0 self.DayBuyCntList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 for i in range(self.Count): length += self.DayBuyCntList[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.DayBuyCntList[i].GetLength(), self.DayBuyCntList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Count:%d, DayBuyCntList:%s '''\ %( self.Head.OutputString(), self.Count, "..." ) return DumpString m_NAtagMCShopItemDayBuyCntInfo=tagMCShopItemDayBuyCntInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCShopItemDayBuyCntInfo.Head.Cmd,m_NAtagMCShopItemDayBuyCntInfo.Head.SubCmd))] = m_NAtagMCShopItemDayBuyCntInfo #------------------------------------------------------ # A8 03 ֪ͨ×Ô¶¨ÒåÉ̵êÎïÆ·ÐÅÏ¢ #tagMCShopItemInfoList class tagMCShopItemInfo(Structure): ShopID = 0 #(DWORD ShopID) ItemShopIndex = 0 #(WORD ItemShopIndex) DataSize = 0 #(DWORD DataSize) ItemList = "" #(String ItemList)//ÎïÆ·Áбí[[ÎïÆ·ID,ÊýÁ¿,ÊÇ·ñ°ó¶¨,ÊÇ·ñ¶¨ÖÆ]] PriceType = 0 #(BYTE PriceType) Price = 0 #(DWORD Price) OriginalPrice = 0 #(DWORD OriginalPrice)// Ô­¼Û PlayerLVLimit = 0 #(WORD PlayerLVLimit)// ¹ºÂòµÈ¼¶ÏÞÖÆ FamilyLVLimit = 0 #(BYTE FamilyLVLimit)// ¹ºÂòÕ½Ã˵ȼ¶ÏÞÖÆ MaxBuyCnt = 0 #(DWORD MaxBuyCnt)// ¸öÈËÏÞ¹ºÊý ServerMaxBuyCnt = 0 #(DWORD ServerMaxBuyCnt)// È«·þÏÞ¹ºÊý data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.ShopID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ItemShopIndex,_pos = CommFunc.ReadWORD(_lpData, _pos) self.DataSize,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ItemList,_pos = CommFunc.ReadString(_lpData, _pos,self.DataSize) self.PriceType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Price,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.OriginalPrice,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.PlayerLVLimit,_pos = CommFunc.ReadWORD(_lpData, _pos) self.FamilyLVLimit,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.MaxBuyCnt,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ServerMaxBuyCnt,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): self.ShopID = 0 self.ItemShopIndex = 0 self.DataSize = 0 self.ItemList = "" self.PriceType = 0 self.Price = 0 self.OriginalPrice = 0 self.PlayerLVLimit = 0 self.FamilyLVLimit = 0 self.MaxBuyCnt = 0 self.ServerMaxBuyCnt = 0 return def GetLength(self): length = 0 length += 4 length += 2 length += 4 length += len(self.ItemList) length += 1 length += 4 length += 4 length += 2 length += 1 length += 4 length += 4 return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.ShopID) data = CommFunc.WriteWORD(data, self.ItemShopIndex) data = CommFunc.WriteDWORD(data, self.DataSize) data = CommFunc.WriteString(data, self.DataSize, self.ItemList) data = CommFunc.WriteBYTE(data, self.PriceType) data = CommFunc.WriteDWORD(data, self.Price) data = CommFunc.WriteDWORD(data, self.OriginalPrice) data = CommFunc.WriteWORD(data, self.PlayerLVLimit) data = CommFunc.WriteBYTE(data, self.FamilyLVLimit) data = CommFunc.WriteDWORD(data, self.MaxBuyCnt) data = CommFunc.WriteDWORD(data, self.ServerMaxBuyCnt) return data def OutputString(self): DumpString = ''' ShopID:%d, ItemShopIndex:%d, DataSize:%d, ItemList:%s, PriceType:%d, Price:%d, OriginalPrice:%d, PlayerLVLimit:%d, FamilyLVLimit:%d, MaxBuyCnt:%d, ServerMaxBuyCnt:%d '''\ %( self.ShopID, self.ItemShopIndex, self.DataSize, self.ItemList, self.PriceType, self.Price, self.OriginalPrice, self.PlayerLVLimit, self.FamilyLVLimit, self.MaxBuyCnt, self.ServerMaxBuyCnt ) return DumpString class tagMCShopItemInfoList(Structure): Head = tagHead() Count = 0 #(BYTE Count)//֪ͨ¸öÊý ShopItemList = list() #(vector ShopItemList) data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA8 self.Head.SubCmd = 0x03 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Count): temShopItemList = tagMCShopItemInfo() _pos = temShopItemList.ReadData(_lpData, _pos) self.ShopItemList.append(temShopItemList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA8 self.Head.SubCmd = 0x03 self.Count = 0 self.ShopItemList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.Count): length += self.ShopItemList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.ShopItemList[i].GetLength(), self.ShopItemList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Count:%d, ShopItemList:%s '''\ %( self.Head.OutputString(), self.Count, "..." ) return DumpString m_NAtagMCShopItemInfoList=tagMCShopItemInfoList() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCShopItemInfoList.Head.Cmd,m_NAtagMCShopItemInfoList.Head.SubCmd))] = m_NAtagMCShopItemInfoList #------------------------------------------------------ # A8 05 ֪ͨÉñÃØÉ̵êˢдÎÊý #tagMCShopRefreshCnt class tagMCShopRefreshCnt(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ShopID", c_int), #É̵êID ("RefreshCnt", c_ushort), #ÒÑÊÖ¶¯Ë¢Ð´ÎÊý ] def __init__(self): self.Clear() self.Cmd = 0xA8 self.SubCmd = 0x05 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xA8 self.SubCmd = 0x05 self.ShopID = 0 self.RefreshCnt = 0 return def GetLength(self): return sizeof(tagMCShopRefreshCnt) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A8 05 ֪ͨÉñÃØÉ̵êˢдÎÊý //tagMCShopRefreshCnt: Cmd:%s, SubCmd:%s, ShopID:%d, RefreshCnt:%d '''\ %( self.Cmd, self.SubCmd, self.ShopID, self.RefreshCnt ) return DumpString m_NAtagMCShopRefreshCnt=tagMCShopRefreshCnt() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCShopRefreshCnt.Cmd,m_NAtagMCShopRefreshCnt.SubCmd))] = m_NAtagMCShopRefreshCnt #------------------------------------------------------ # A8 13 ÐéÄâµôÂäÎïÆ· #tagMCVirtualItemDrop class tagMCVirtualItemDrop(Structure): Head = tagHead() ItemTypeID = 0 #(DWORD ItemTypeID) PosX = 0 #(WORD PosX) PosY = 0 #(WORD PosY) UserDataLen = 0 #(WORD UserDataLen)//¸½¼ÓÊôÐÔ³¤¶È UserData = "" #(String UserData)//¸½¼ÓÊôÐÔ size = UserDataLen data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA8 self.Head.SubCmd = 0x13 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.ItemTypeID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.PosX,_pos = CommFunc.ReadWORD(_lpData, _pos) self.PosY,_pos = CommFunc.ReadWORD(_lpData, _pos) self.UserDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos) self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA8 self.Head.SubCmd = 0x13 self.ItemTypeID = 0 self.PosX = 0 self.PosY = 0 self.UserDataLen = 0 self.UserData = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 2 length += 2 length += 2 length += len(self.UserData) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.ItemTypeID) data = CommFunc.WriteWORD(data, self.PosX) data = CommFunc.WriteWORD(data, self.PosY) data = CommFunc.WriteWORD(data, self.UserDataLen) data = CommFunc.WriteString(data, self.UserDataLen, self.UserData) return data def OutputString(self): DumpString = ''' Head:%s, ItemTypeID:%d, PosX:%d, PosY:%d, UserDataLen:%d, UserData:%s '''\ %( self.Head.OutputString(), self.ItemTypeID, self.PosX, self.PosY, self.UserDataLen, self.UserData ) return DumpString m_NAtagMCVirtualItemDrop=tagMCVirtualItemDrop() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCVirtualItemDrop.Head.Cmd,m_NAtagMCVirtualItemDrop.Head.SubCmd))] = m_NAtagMCVirtualItemDrop #------------------------------------------------------ # AA 15 ÏɽçÊ¢µäÈ«ÃñÀ´àËÍæ¼ÒÐÅÏ¢ #tagMCAllPeoplePartyInfo class tagMCAllPeoplePartyCount(Structure): _pack_ = 1 _fields_ = [ ("ActID", c_int), #»î¶¯ID ("CurTimes", c_ushort), #ÒÑÍê³É´ÎÊý ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.ActID = 0 self.CurTimes = 0 return def GetLength(self): return sizeof(tagMCAllPeoplePartyCount) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AA 15 ÏɽçÊ¢µäÈ«ÃñÀ´àËÍæ¼ÒÐÅÏ¢ //tagMCAllPeoplePartyInfo: ActID:%d, CurTimes:%d '''\ %( self.ActID, self.CurTimes ) return DumpString class tagMCAllPeoplePartyInfo(Structure): Head = tagHead() CurPoint = 0 #(DWORD CurPoint)//µ±Ç°×ܵãÊý AwardRecord = 0 #(DWORD AwardRecord)//Áì½±¼Ç¼ °´½±ÀøË÷Òý¶þ½øÖÆÎ»´æ´¢ÊÇ·ñÒÑÁìÈ¡ Count = 0 #(BYTE Count) BuyCountList = list() #(vector BuyCountList)//»î¶¯Íê³É´ÎÊýÐÅÏ¢ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xAA self.Head.SubCmd = 0x15 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.CurPoint,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.AwardRecord,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Count): temBuyCountList = tagMCAllPeoplePartyCount() _pos = temBuyCountList.ReadData(_lpData, _pos) self.BuyCountList.append(temBuyCountList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xAA self.Head.SubCmd = 0x15 self.CurPoint = 0 self.AwardRecord = 0 self.Count = 0 self.BuyCountList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 4 length += 1 for i in range(self.Count): length += self.BuyCountList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.CurPoint) data = CommFunc.WriteDWORD(data, self.AwardRecord) data = CommFunc.WriteBYTE(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.BuyCountList[i].GetLength(), self.BuyCountList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, CurPoint:%d, AwardRecord:%d, Count:%d, BuyCountList:%s '''\ %( self.Head.OutputString(), self.CurPoint, self.AwardRecord, self.Count, "..." ) return DumpString m_NAtagMCAllPeoplePartyInfo=tagMCAllPeoplePartyInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCAllPeoplePartyInfo.Head.Cmd,m_NAtagMCAllPeoplePartyInfo.Head.SubCmd))] = m_NAtagMCAllPeoplePartyInfo #------------------------------------------------------ # AA 03 Éý½×¹¦ÄÜÌØ»Ý½±Àø¼Ç¼ #tagMCClassUPDayAwardRecordList class tagMCClassUPDayAwardRecord(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("DayType", c_ubyte), # ½±ÀøÈÕÀàÐÍ ("Record", c_int), # ½±Àø¼Ç¼ ] def __init__(self): self.Clear() self.Cmd = 0xAA self.SubCmd = 0x03 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xAA self.SubCmd = 0x03 self.DayType = 0 self.Record = 0 return def GetLength(self): return sizeof(tagMCClassUPDayAwardRecord) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AA 03 Éý½×¹¦ÄÜÌØ»Ý½±Àø¼Ç¼ //tagMCClassUPDayAwardRecordList: Cmd:%s, SubCmd:%s, DayType:%d, Record:%d '''\ %( self.Cmd, self.SubCmd, self.DayType, self.Record ) return DumpString class tagMCClassUPDayAwardRecordList(Structure): Head = tagHead() RecordCount = 0 #(BYTE RecordCount)//¼Ç¼¸öÊý RecordInfoList = list() #(vector RecordInfoList)//¼Ç¼Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xAA self.Head.SubCmd = 0x03 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.RecordCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.RecordCount): temRecordInfoList = tagMCClassUPDayAwardRecord() _pos = temRecordInfoList.ReadData(_lpData, _pos) self.RecordInfoList.append(temRecordInfoList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xAA self.Head.SubCmd = 0x03 self.RecordCount = 0 self.RecordInfoList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.RecordCount): length += self.RecordInfoList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.RecordCount) for i in range(self.RecordCount): data = CommFunc.WriteString(data, self.RecordInfoList[i].GetLength(), self.RecordInfoList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, RecordCount:%d, RecordInfoList:%s '''\ %( self.Head.OutputString(), self.RecordCount, "..." ) return DumpString m_NAtagMCClassUPDayAwardRecordList=tagMCClassUPDayAwardRecordList() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCClassUPDayAwardRecordList.Head.Cmd,m_NAtagMCClassUPDayAwardRecordList.Head.SubCmd))] = m_NAtagMCClassUPDayAwardRecordList #------------------------------------------------------ # AA 06 Ïû·Ñ½±ÀøÐÅÏ¢ #tagMCCostProfitInfo class tagMCCostProfitInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ActionID", c_int), # »î¶¯ID ("TotalCost", c_int), # ×ÜÏû·Ñ ("AwardState", c_int), # ½±ÀøÁìȡ״̬ ] def __init__(self): self.Clear() self.Cmd = 0xAA self.SubCmd = 0x06 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xAA self.SubCmd = 0x06 self.ActionID = 0 self.TotalCost = 0 self.AwardState = 0 return def GetLength(self): return sizeof(tagMCCostProfitInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AA 06 Ïû·Ñ½±ÀøÐÅÏ¢ //tagMCCostProfitInfo: Cmd:%s, SubCmd:%s, ActionID:%d, TotalCost:%d, AwardState:%d '''\ %( self.Cmd, self.SubCmd, self.ActionID, self.TotalCost, self.AwardState ) return DumpString m_NAtagMCCostProfitInfo=tagMCCostProfitInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCostProfitInfo.Cmd,m_NAtagMCCostProfitInfo.SubCmd))] = m_NAtagMCCostProfitInfo #------------------------------------------------------ # AA 07 Ïû·ÑÅÅÐÐÌØ»ÝÐÅÏ¢ #tagMCCostRankTeHuiInfo class tagMCCostRankTeHuiInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ActionID", c_int), # »î¶¯ID ("TotalCost", c_int), # ×ÜÀÛ¼ÆÏû·Ñ×êʯ ] def __init__(self): self.Clear() self.Cmd = 0xAA self.SubCmd = 0x07 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xAA self.SubCmd = 0x07 self.ActionID = 0 self.TotalCost = 0 return def GetLength(self): return sizeof(tagMCCostRankTeHuiInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AA 07 Ïû·ÑÅÅÐÐÌØ»ÝÐÅÏ¢ //tagMCCostRankTeHuiInfo: Cmd:%s, SubCmd:%s, ActionID:%d, TotalCost:%d '''\ %( self.Cmd, self.SubCmd, self.ActionID, self.TotalCost ) return DumpString m_NAtagMCCostRankTeHuiInfo=tagMCCostRankTeHuiInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCostRankTeHuiInfo.Cmd,m_NAtagMCCostRankTeHuiInfo.SubCmd))] = m_NAtagMCCostRankTeHuiInfo #------------------------------------------------------ # AA 09 Ïû·Ñ·µÀû»î¶¯ÐÅÏ¢ #tagMCCostRebateInfo class tagMCCostRebateAwardItem(Structure): _pack_ = 1 _fields_ = [ ("ItemID", c_int), ("ItemCount", c_ushort), ("IsBind", c_ubyte), ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.ItemID = 0 self.ItemCount = 0 self.IsBind = 0 return def GetLength(self): return sizeof(tagMCCostRebateAwardItem) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AA 09 Ïû·Ñ·µÀû»î¶¯ÐÅÏ¢ //tagMCCostRebateInfo: ItemID:%d, ItemCount:%d, IsBind:%d '''\ %( self.ItemID, self.ItemCount, self.IsBind ) return DumpString class tagMCCostRebateAward(Structure): AwardIndex = 0 #(BYTE AwardIndex)// ½±ÀøË÷Òý 0~31 NeedGold = 0 #(DWORD NeedGold)// ËùÐèÏÉÓñÊý AwardItemCount = 0 #(BYTE AwardItemCount)// ½±ÀøÎïÆ·Êý AwardItem = list() #(vector AwardItem)// ½±ÀøÎïÆ·ÐÅÏ¢ data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.AwardIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.NeedGold,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.AwardItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.AwardItemCount): temAwardItem = tagMCCostRebateAwardItem() _pos = temAwardItem.ReadData(_lpData, _pos) self.AwardItem.append(temAwardItem) return _pos def Clear(self): self.AwardIndex = 0 self.NeedGold = 0 self.AwardItemCount = 0 self.AwardItem = list() return def GetLength(self): length = 0 length += 1 length += 4 length += 1 for i in range(self.AwardItemCount): length += self.AwardItem[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteBYTE(data, self.AwardIndex) data = CommFunc.WriteDWORD(data, self.NeedGold) data = CommFunc.WriteBYTE(data, self.AwardItemCount) for i in range(self.AwardItemCount): data = CommFunc.WriteString(data, self.AwardItem[i].GetLength(), self.AwardItem[i].GetBuffer()) return data def OutputString(self): DumpString = ''' AwardIndex:%d, NeedGold:%d, AwardItemCount:%d, AwardItem:%s '''\ %( self.AwardIndex, self.NeedGold, self.AwardItemCount, "..." ) return DumpString class tagMCCostRebateAwardDay(Structure): AwardCount = 0 #(BYTE AwardCount)// ½±ÀøµµÊý AwardInfo = list() #(vector AwardInfo)// ½±ÀøµµÐÅÏ¢ data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.AwardCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.AwardCount): temAwardInfo = tagMCCostRebateAward() _pos = temAwardInfo.ReadData(_lpData, _pos) self.AwardInfo.append(temAwardInfo) return _pos def Clear(self): self.AwardCount = 0 self.AwardInfo = list() return def GetLength(self): length = 0 length += 1 for i in range(self.AwardCount): length += self.AwardInfo[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteBYTE(data, self.AwardCount) for i in range(self.AwardCount): data = CommFunc.WriteString(data, self.AwardInfo[i].GetLength(), self.AwardInfo[i].GetBuffer()) return data def OutputString(self): DumpString = ''' AwardCount:%d, AwardInfo:%s '''\ %( self.AwardCount, "..." ) return DumpString class tagMCCostRebateInfo(Structure): Head = tagHead() StartDate = "" #(char StartDate[10])// ¿ªÊ¼ÈÕÆÚ y-m-d EndtDate = "" #(char EndtDate[10])// ½áÊøÈÕÆÚ y-m-d IsDayReset = 0 #(BYTE IsDayReset)//ÊÇ·ñÿÌìÖØÖà LimitLV = 0 #(WORD LimitLV)// ÏÞÖÆµÈ¼¶ AwardDays = 0 #(BYTE AwardDays) AwardDayInfo = list() #(vector AwardDayInfo)//ÿÌì¶ÔÓ¦·µÀûÐÅÏ¢; Èç¹ûÖ»ÓÐÒ»Ì죬µ«ÊǻÓжàÌ죬Ôò´ú±íÿÌì½±Àø¶¼Ò»Ñù data = None def __init__(self): self.Clear() self.Head.Cmd = 0xAA self.Head.SubCmd = 0x09 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10) self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10) self.IsDayReset,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.AwardDays,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.AwardDays): temAwardDayInfo = tagMCCostRebateAwardDay() _pos = temAwardDayInfo.ReadData(_lpData, _pos) self.AwardDayInfo.append(temAwardDayInfo) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xAA self.Head.SubCmd = 0x09 self.StartDate = "" self.EndtDate = "" self.IsDayReset = 0 self.LimitLV = 0 self.AwardDays = 0 self.AwardDayInfo = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 10 length += 10 length += 1 length += 2 length += 1 for i in range(self.AwardDays): length += self.AwardDayInfo[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteString(data, 10, self.StartDate) data = CommFunc.WriteString(data, 10, self.EndtDate) data = CommFunc.WriteBYTE(data, self.IsDayReset) data = CommFunc.WriteWORD(data, self.LimitLV) data = CommFunc.WriteBYTE(data, self.AwardDays) for i in range(self.AwardDays): data = CommFunc.WriteString(data, self.AwardDayInfo[i].GetLength(), self.AwardDayInfo[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, StartDate:%s, EndtDate:%s, IsDayReset:%d, LimitLV:%d, AwardDays:%d, AwardDayInfo:%s '''\ %( self.Head.OutputString(), self.StartDate, self.EndtDate, self.IsDayReset, self.LimitLV, self.AwardDays, "..." ) return DumpString m_NAtagMCCostRebateInfo=tagMCCostRebateInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCostRebateInfo.Head.Cmd,m_NAtagMCCostRebateInfo.Head.SubCmd))] = m_NAtagMCCostRebateInfo #------------------------------------------------------ # AA 10 Ïû·Ñ·µÀûÍæ¼Ò»î¶¯ÐÅÏ¢ #tagMCCostRebatePlayerInfo class tagMCCostRebatePlayerInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("CostGoldTotal", c_int), #±¾´Î»î¶¯ÒÑÀÛ¼ÆÏû·ÑÏÉÓñÊý ("AwardRecord", c_int), #·µÀû½±ÀøÁì½±¼Ç¼£¬°´½±ÀøË÷Òý¶þ½øÖÆÎ»´æ´¢ÊÇ·ñÒÑÁìÈ¡ ] def __init__(self): self.Clear() self.Cmd = 0xAA self.SubCmd = 0x10 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xAA self.SubCmd = 0x10 self.CostGoldTotal = 0 self.AwardRecord = 0 return def GetLength(self): return sizeof(tagMCCostRebatePlayerInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AA 10 Ïû·Ñ·µÀûÍæ¼Ò»î¶¯ÐÅÏ¢ //tagMCCostRebatePlayerInfo: Cmd:%s, SubCmd:%s, CostGoldTotal:%d, AwardRecord:%d '''\ %( self.Cmd, self.SubCmd, self.CostGoldTotal, self.AwardRecord ) return DumpString m_NAtagMCCostRebatePlayerInfo=tagMCCostRebatePlayerInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCostRebatePlayerInfo.Cmd,m_NAtagMCCostRebatePlayerInfo.SubCmd))] = m_NAtagMCCostRebatePlayerInfo #------------------------------------------------------ # AA 02 Ê׳äÐÅÏ¢ #tagMCFirstGoldInfo class tagMCFirstGoldInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("FirstGoldRewardState", c_ubyte), #Ê׳佱ÀøÊÇ·ñÒÑÁì½± ] def __init__(self): self.Clear() self.Cmd = 0xAA self.SubCmd = 0x02 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xAA self.SubCmd = 0x02 self.FirstGoldRewardState = 0 return def GetLength(self): return sizeof(tagMCFirstGoldInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AA 02 Ê׳äÐÅÏ¢ //tagMCFirstGoldInfo: Cmd:%s, SubCmd:%s, FirstGoldRewardState:%d '''\ %( self.Cmd, self.SubCmd, self.FirstGoldRewardState ) return DumpString m_NAtagMCFirstGoldInfo=tagMCFirstGoldInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFirstGoldInfo.Cmd,m_NAtagMCFirstGoldInfo.SubCmd))] = m_NAtagMCFirstGoldInfo #------------------------------------------------------ # AA 08 Ê׳äÌáʾʣÓàʱ¼ä #tagMCFirstGoldTime class tagMCFirstGoldTime(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("FirstGoldRemainTime", c_int), #Ê׳äÌáʾʣÓàʱ¼ä ("FirstGoldTry", c_ubyte), #Ê׳äÊÔÓÃ״̬0-²»¿ÉÊÔÓà 1-¿ÉÊÔÓà 2-ÒÑÊÔÓà ] def __init__(self): self.Clear() self.Cmd = 0xAA self.SubCmd = 0x08 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xAA self.SubCmd = 0x08 self.FirstGoldRemainTime = 0 self.FirstGoldTry = 0 return def GetLength(self): return sizeof(tagMCFirstGoldTime) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AA 08 Ê׳äÌáʾʣÓàʱ¼ä //tagMCFirstGoldTime: Cmd:%s, SubCmd:%s, FirstGoldRemainTime:%d, FirstGoldTry:%d '''\ %( self.Cmd, self.SubCmd, self.FirstGoldRemainTime, self.FirstGoldTry ) return DumpString m_NAtagMCFirstGoldTime=tagMCFirstGoldTime() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFirstGoldTime.Cmd,m_NAtagMCFirstGoldTime.SubCmd))] = m_NAtagMCFirstGoldTime #------------------------------------------------------ # AA 12 ÏÞʱÀñ°ü»î¶¯ÐÅÏ¢ #tagMCFlashGiftbagInfo class tagMCFlashGiftbagItem(Structure): _pack_ = 1 _fields_ = [ ("ItemID", c_int), ("ItemCount", c_ushort), ("IsBind", c_ubyte), ("IsMainItem", c_ubyte), #ÊÇ·ñ±êµÄÎï ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.ItemID = 0 self.ItemCount = 0 self.IsBind = 0 self.IsMainItem = 0 return def GetLength(self): return sizeof(tagMCFlashGiftbagItem) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AA 12 ÏÞʱÀñ°ü»î¶¯ÐÅÏ¢ //tagMCFlashGiftbagInfo: ItemID:%d, ItemCount:%d, IsBind:%d, IsMainItem:%d '''\ %( self.ItemID, self.ItemCount, self.IsBind, self.IsMainItem ) return DumpString class tagMCFlashGiftbag(Structure): GiftID = 0 #(DWORD GiftID)//Àñ°üID OrderInfoLen = 0 #(BYTE OrderInfoLen) OrderInfo = "" #(String OrderInfo)//ÉÌÆ·±àºÅ BuyCountLimit = 0 #(BYTE BuyCountLimit)//ÏÞ¹ºÊý RMB = 0 #(DWORD RMB)//ËùÐèRMB£¬Ôª RMBOriginal = 0 #(DWORD RMBOriginal)//Ô­¼Û GiftItemCount = 0 #(BYTE GiftItemCount)// Àñ°üÎïÆ·Êý ItemInfo = list() #(vector ItemInfo)// ÎïÆ·ÐÅÏ¢ data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.GiftID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.OrderInfoLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.OrderInfo,_pos = CommFunc.ReadString(_lpData, _pos,self.OrderInfoLen) self.BuyCountLimit,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.RMB,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.RMBOriginal,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.GiftItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.GiftItemCount): temItemInfo = tagMCFlashGiftbagItem() _pos = temItemInfo.ReadData(_lpData, _pos) self.ItemInfo.append(temItemInfo) return _pos def Clear(self): self.GiftID = 0 self.OrderInfoLen = 0 self.OrderInfo = "" self.BuyCountLimit = 0 self.RMB = 0 self.RMBOriginal = 0 self.GiftItemCount = 0 self.ItemInfo = list() return def GetLength(self): length = 0 length += 4 length += 1 length += len(self.OrderInfo) length += 1 length += 4 length += 4 length += 1 for i in range(self.GiftItemCount): length += self.ItemInfo[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.GiftID) data = CommFunc.WriteBYTE(data, self.OrderInfoLen) data = CommFunc.WriteString(data, self.OrderInfoLen, self.OrderInfo) data = CommFunc.WriteBYTE(data, self.BuyCountLimit) data = CommFunc.WriteDWORD(data, self.RMB) data = CommFunc.WriteDWORD(data, self.RMBOriginal) data = CommFunc.WriteBYTE(data, self.GiftItemCount) for i in range(self.GiftItemCount): data = CommFunc.WriteString(data, self.ItemInfo[i].GetLength(), self.ItemInfo[i].GetBuffer()) return data def OutputString(self): DumpString = ''' GiftID:%d, OrderInfoLen:%d, OrderInfo:%s, BuyCountLimit:%d, RMB:%d, RMBOriginal:%d, GiftItemCount:%d, ItemInfo:%s '''\ %( self.GiftID, self.OrderInfoLen, self.OrderInfo, self.BuyCountLimit, self.RMB, self.RMBOriginal, self.GiftItemCount, "..." ) return DumpString class tagMCFlashGiftbagType(Structure): GiftbagCount = 0 #(BYTE GiftbagCount)// Àñ°üÊý GiftbagInfo = list() #(vector GiftbagInfo)// Àñ°üÐÅÏ¢ data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.GiftbagCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.GiftbagCount): temGiftbagInfo = tagMCFlashGiftbag() _pos = temGiftbagInfo.ReadData(_lpData, _pos) self.GiftbagInfo.append(temGiftbagInfo) return _pos def Clear(self): self.GiftbagCount = 0 self.GiftbagInfo = list() return def GetLength(self): length = 0 length += 1 for i in range(self.GiftbagCount): length += self.GiftbagInfo[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteBYTE(data, self.GiftbagCount) for i in range(self.GiftbagCount): data = CommFunc.WriteString(data, self.GiftbagInfo[i].GetLength(), self.GiftbagInfo[i].GetBuffer()) return data def OutputString(self): DumpString = ''' GiftbagCount:%d, GiftbagInfo:%s '''\ %( self.GiftbagCount, "..." ) return DumpString class tagMCFlashGiftbagTime(Structure): StartTime = "" #(char StartTime[5])// ¿ªÊ¼Ê±¼ä H:M EndtTime = "" #(char EndtTime[5])// ½áÊøÊ±¼ä H:M data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.StartTime,_pos = CommFunc.ReadString(_lpData, _pos,5) self.EndtTime,_pos = CommFunc.ReadString(_lpData, _pos,5) return _pos def Clear(self): self.StartTime = "" self.EndtTime = "" return def GetLength(self): length = 0 length += 5 length += 5 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, 5, self.StartTime) data = CommFunc.WriteString(data, 5, self.EndtTime) return data def OutputString(self): DumpString = ''' StartTime:%s, EndtTime:%s '''\ %( self.StartTime, self.EndtTime ) return DumpString class tagMCFlashGiftbagInfo(Structure): Head = tagHead() StartDate = "" #(char StartDate[10])// ¿ªÊ¼ÈÕÆÚ y-m-d EndtDate = "" #(char EndtDate[10])// ½áÊøÈÕÆÚ y-m-d ActivityTimeCount = 0 #(BYTE ActivityTimeCount) ActivityTime = list() #(vector ActivityTime)//»î¶¯Ê±¼ä IsDayReset = 0 #(BYTE IsDayReset)//ÊÇ·ñÿÌìÖØÖà LimitLV = 0 #(WORD LimitLV)// ÏÞÖÆµÈ¼¶ GiftbagTypeCount = 0 #(BYTE GiftbagTypeCount)// Àñ°üÀàÐÍÊý GiftbagTypeInfo = list() #(vector GiftbagTypeInfo)// Àñ°üÀàÐÍÐÅÏ¢, µ±Óжà¸öÇÒÓжà¸ö»î¶¯Ê±¼ä¶ÎʱÔòÿ¸öʱ¼ä¶Î¶ÔÓ¦Ò»¸öÀñ°üÀàÐÍ£» data = None def __init__(self): self.Clear() self.Head.Cmd = 0xAA self.Head.SubCmd = 0x12 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10) self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10) self.ActivityTimeCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.ActivityTimeCount): temActivityTime = tagMCFlashGiftbagTime() _pos = temActivityTime.ReadData(_lpData, _pos) self.ActivityTime.append(temActivityTime) self.IsDayReset,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.GiftbagTypeCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.GiftbagTypeCount): temGiftbagTypeInfo = tagMCFlashGiftbagType() _pos = temGiftbagTypeInfo.ReadData(_lpData, _pos) self.GiftbagTypeInfo.append(temGiftbagTypeInfo) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xAA self.Head.SubCmd = 0x12 self.StartDate = "" self.EndtDate = "" self.ActivityTimeCount = 0 self.ActivityTime = list() self.IsDayReset = 0 self.LimitLV = 0 self.GiftbagTypeCount = 0 self.GiftbagTypeInfo = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 10 length += 10 length += 1 for i in range(self.ActivityTimeCount): length += self.ActivityTime[i].GetLength() length += 1 length += 2 length += 1 for i in range(self.GiftbagTypeCount): length += self.GiftbagTypeInfo[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteString(data, 10, self.StartDate) data = CommFunc.WriteString(data, 10, self.EndtDate) data = CommFunc.WriteBYTE(data, self.ActivityTimeCount) for i in range(self.ActivityTimeCount): data = CommFunc.WriteString(data, self.ActivityTime[i].GetLength(), self.ActivityTime[i].GetBuffer()) data = CommFunc.WriteBYTE(data, self.IsDayReset) data = CommFunc.WriteWORD(data, self.LimitLV) data = CommFunc.WriteBYTE(data, self.GiftbagTypeCount) for i in range(self.GiftbagTypeCount): data = CommFunc.WriteString(data, self.GiftbagTypeInfo[i].GetLength(), self.GiftbagTypeInfo[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, StartDate:%s, EndtDate:%s, ActivityTimeCount:%d, ActivityTime:%s, IsDayReset:%d, LimitLV:%d, GiftbagTypeCount:%d, GiftbagTypeInfo:%s '''\ %( self.Head.OutputString(), self.StartDate, self.EndtDate, self.ActivityTimeCount, "...", self.IsDayReset, self.LimitLV, self.GiftbagTypeCount, "..." ) return DumpString m_NAtagMCFlashGiftbagInfo=tagMCFlashGiftbagInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFlashGiftbagInfo.Head.Cmd,m_NAtagMCFlashGiftbagInfo.Head.SubCmd))] = m_NAtagMCFlashGiftbagInfo #------------------------------------------------------ # AA 13 ÏÞʱÀñ°üÍæ¼Ò»î¶¯ÐÅÏ¢ #tagMCFlashGiftbagPlayerInfo class tagMCFlashGiftbagBuyCount(Structure): _pack_ = 1 _fields_ = [ ("GiftbagID", c_int), #Àñ°üID ("BuyCount", c_ushort), #±¾´Î»î¶¯ÒѹºÂò´ÎÊý ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.GiftbagID = 0 self.BuyCount = 0 return def GetLength(self): return sizeof(tagMCFlashGiftbagBuyCount) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AA 13 ÏÞʱÀñ°üÍæ¼Ò»î¶¯ÐÅÏ¢ //tagMCFlashGiftbagPlayerInfo: GiftbagID:%d, BuyCount:%d '''\ %( self.GiftbagID, self.BuyCount ) return DumpString class tagMCFlashGiftbagPlayerInfo(Structure): Head = tagHead() Count = 0 #(BYTE Count) BuyCountList = list() #(vector BuyCountList)//Àñ°ü¹ºÂò´ÎÊýÐÅÏ¢ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xAA self.Head.SubCmd = 0x13 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Count): temBuyCountList = tagMCFlashGiftbagBuyCount() _pos = temBuyCountList.ReadData(_lpData, _pos) self.BuyCountList.append(temBuyCountList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xAA self.Head.SubCmd = 0x13 self.Count = 0 self.BuyCountList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.Count): length += self.BuyCountList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.BuyCountList[i].GetLength(), self.BuyCountList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Count:%d, BuyCountList:%s '''\ %( self.Head.OutputString(), self.Count, "..." ) return DumpString m_NAtagMCFlashGiftbagPlayerInfo=tagMCFlashGiftbagPlayerInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFlashGiftbagPlayerInfo.Head.Cmd,m_NAtagMCFlashGiftbagPlayerInfo.Head.SubCmd))] = m_NAtagMCFlashGiftbagPlayerInfo #------------------------------------------------------ # AA 05 ³äÖµÅÅÐÐÌØ»ÝÐÅÏ¢ #tagMCRechargeRankTeHuiInfo class tagMCRechargeRankTeHuiInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ActionID", c_int), # »î¶¯ID ("TotalGold", c_int), # ×ÜÀۼƳäÖµÔª±¦ ] def __init__(self): self.Clear() self.Cmd = 0xAA self.SubCmd = 0x05 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xAA self.SubCmd = 0x05 self.ActionID = 0 self.TotalGold = 0 return def GetLength(self): return sizeof(tagMCRechargeRankTeHuiInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AA 05 ³äÖµÅÅÐÐÌØ»ÝÐÅÏ¢ //tagMCRechargeRankTeHuiInfo: Cmd:%s, SubCmd:%s, ActionID:%d, TotalGold:%d '''\ %( self.Cmd, self.SubCmd, self.ActionID, self.TotalGold ) return DumpString m_NAtagMCRechargeRankTeHuiInfo=tagMCRechargeRankTeHuiInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCRechargeRankTeHuiInfo.Cmd,m_NAtagMCRechargeRankTeHuiInfo.SubCmd))] = m_NAtagMCRechargeRankTeHuiInfo #------------------------------------------------------ # AA 04 ³äÖµÌØ»ÝÐÅÏ¢ #tagMCRechargeTeHuiInfoList class tagMCRechargeTeHuiInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("GotCnt", c_ubyte), # ÒÑÁìÈ¡´ÎÊý ("CanGetCnt", c_ubyte), # µ±Ç°¿ÉÁìÈ¡´ÎÊý ("CurTotalGold", c_int), # µ±Ç°¹æÔòÀۼƳäÖµÔª±¦-½öÕë¶ÔÀÛ³ä¹æÔò ] def __init__(self): self.Clear() self.Cmd = 0xAA self.SubCmd = 0x04 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xAA self.SubCmd = 0x04 self.GotCnt = 0 self.CanGetCnt = 0 self.CurTotalGold = 0 return def GetLength(self): return sizeof(tagMCRechargeTeHuiInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AA 04 ³äÖµÌØ»ÝÐÅÏ¢ //tagMCRechargeTeHuiInfoList: Cmd:%s, SubCmd:%s, GotCnt:%d, CanGetCnt:%d, CurTotalGold:%d '''\ %( self.Cmd, self.SubCmd, self.GotCnt, self.CanGetCnt, self.CurTotalGold ) return DumpString class tagMCRechargeTeHuiInfoList(Structure): Head = tagHead() ActionID = 0 #(DWORD ActionID)// »î¶¯ID TotalGold = 0 #(DWORD TotalGold)// ×ÜÀۼƳäÖµÔª±¦ InfoCnt = 0 #(BYTE InfoCnt)// ÐÅÏ¢¸öÊý InfoList = list() #(vector InfoList)// ÐÅÏ¢Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xAA self.Head.SubCmd = 0x04 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.ActionID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.TotalGold,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.InfoCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.InfoCnt): temInfoList = tagMCRechargeTeHuiInfo() _pos = temInfoList.ReadData(_lpData, _pos) self.InfoList.append(temInfoList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xAA self.Head.SubCmd = 0x04 self.ActionID = 0 self.TotalGold = 0 self.InfoCnt = 0 self.InfoList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 4 length += 1 for i in range(self.InfoCnt): length += self.InfoList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.ActionID) data = CommFunc.WriteDWORD(data, self.TotalGold) data = CommFunc.WriteBYTE(data, self.InfoCnt) for i in range(self.InfoCnt): data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, ActionID:%d, TotalGold:%d, InfoCnt:%d, InfoList:%s '''\ %( self.Head.OutputString(), self.ActionID, self.TotalGold, self.InfoCnt, "..." ) return DumpString m_NAtagMCRechargeTeHuiInfoList=tagMCRechargeTeHuiInfoList() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCRechargeTeHuiInfoList.Head.Cmd,m_NAtagMCRechargeTeHuiInfoList.Head.SubCmd))] = m_NAtagMCRechargeTeHuiInfoList #------------------------------------------------------ # AA 11 ÏÞÊ±ÌØ»Ý»î¶¯ÐÅÏ¢ #tagMCSpringSaleInfo class tagMCSpringSaleItem(Structure): _pack_ = 1 _fields_ = [ ("ItemID", c_int), ("ItemCount", c_ushort), ("IsBind", c_ubyte), ("IsMainItem", c_ubyte), #ÊÇ·ñ±êµÄÎï ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.ItemID = 0 self.ItemCount = 0 self.IsBind = 0 self.IsMainItem = 0 return def GetLength(self): return sizeof(tagMCSpringSaleItem) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AA 11 ÏÞÊ±ÌØ»Ý»î¶¯ÐÅÏ¢ //tagMCSpringSaleInfo: ItemID:%d, ItemCount:%d, IsBind:%d, IsMainItem:%d '''\ %( self.ItemID, self.ItemCount, self.IsBind, self.IsMainItem ) return DumpString class tagMCSpringSaleGiftbag(Structure): GiftID = 0 #(DWORD GiftID)//É̳DZíµÄÎïÆ·ID BuyCountLimit = 0 #(BYTE BuyCountLimit)//ÏÞ¹ºÊý MoneyType = 0 #(BYTE MoneyType)//ÏûºÄ»õ±ÒÀàÐÍ MoneyNumber = 0 #(DWORD MoneyNumber)//ÏûºÄ»õ±ÒÊýÁ¿ MoneyOriginal = 0 #(DWORD MoneyOriginal)//Ô­¼Û GiftItemCount = 0 #(BYTE GiftItemCount)// Àñ°üÎïÆ·Êý ItemInfo = list() #(vector ItemInfo)// ÎïÆ·ÐÅÏ¢ data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.GiftID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.BuyCountLimit,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.MoneyType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.MoneyNumber,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MoneyOriginal,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.GiftItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.GiftItemCount): temItemInfo = tagMCSpringSaleItem() _pos = temItemInfo.ReadData(_lpData, _pos) self.ItemInfo.append(temItemInfo) return _pos def Clear(self): self.GiftID = 0 self.BuyCountLimit = 0 self.MoneyType = 0 self.MoneyNumber = 0 self.MoneyOriginal = 0 self.GiftItemCount = 0 self.ItemInfo = list() return def GetLength(self): length = 0 length += 4 length += 1 length += 1 length += 4 length += 4 length += 1 for i in range(self.GiftItemCount): length += self.ItemInfo[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.GiftID) data = CommFunc.WriteBYTE(data, self.BuyCountLimit) data = CommFunc.WriteBYTE(data, self.MoneyType) data = CommFunc.WriteDWORD(data, self.MoneyNumber) data = CommFunc.WriteDWORD(data, self.MoneyOriginal) data = CommFunc.WriteBYTE(data, self.GiftItemCount) for i in range(self.GiftItemCount): data = CommFunc.WriteString(data, self.ItemInfo[i].GetLength(), self.ItemInfo[i].GetBuffer()) return data def OutputString(self): DumpString = ''' GiftID:%d, BuyCountLimit:%d, MoneyType:%d, MoneyNumber:%d, MoneyOriginal:%d, GiftItemCount:%d, ItemInfo:%s '''\ %( self.GiftID, self.BuyCountLimit, self.MoneyType, self.MoneyNumber, self.MoneyOriginal, self.GiftItemCount, "..." ) return DumpString class tagMCSpringSaleShop(Structure): GiftbagCount = 0 #(BYTE GiftbagCount)// É̵êÀñ°üÊý GiftbagInfo = list() #(vector GiftbagInfo)// Àñ°üÐÅÏ¢ data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.GiftbagCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.GiftbagCount): temGiftbagInfo = tagMCSpringSaleGiftbag() _pos = temGiftbagInfo.ReadData(_lpData, _pos) self.GiftbagInfo.append(temGiftbagInfo) return _pos def Clear(self): self.GiftbagCount = 0 self.GiftbagInfo = list() return def GetLength(self): length = 0 length += 1 for i in range(self.GiftbagCount): length += self.GiftbagInfo[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteBYTE(data, self.GiftbagCount) for i in range(self.GiftbagCount): data = CommFunc.WriteString(data, self.GiftbagInfo[i].GetLength(), self.GiftbagInfo[i].GetBuffer()) return data def OutputString(self): DumpString = ''' GiftbagCount:%d, GiftbagInfo:%s '''\ %( self.GiftbagCount, "..." ) return DumpString class tagMCSpringSaleTime(Structure): StartTime = "" #(char StartTime[5])// ¿ªÊ¼Ê±¼ä H:M EndtTime = "" #(char EndtTime[5])// ½áÊøÊ±¼ä H:M data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.StartTime,_pos = CommFunc.ReadString(_lpData, _pos,5) self.EndtTime,_pos = CommFunc.ReadString(_lpData, _pos,5) return _pos def Clear(self): self.StartTime = "" self.EndtTime = "" return def GetLength(self): length = 0 length += 5 length += 5 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, 5, self.StartTime) data = CommFunc.WriteString(data, 5, self.EndtTime) return data def OutputString(self): DumpString = ''' StartTime:%s, EndtTime:%s '''\ %( self.StartTime, self.EndtTime ) return DumpString class tagMCSpringSaleInfo(Structure): Head = tagHead() StartDate = "" #(char StartDate[10])// ¿ªÊ¼ÈÕÆÚ y-m-d EndtDate = "" #(char EndtDate[10])// ½áÊøÈÕÆÚ y-m-d ActivityTimeCount = 0 #(BYTE ActivityTimeCount) ActivityTime = list() #(vector ActivityTime)//»î¶¯Ê±¼ä IsDayReset = 0 #(BYTE IsDayReset)//ÊÇ·ñÿÌìÖØÖà LimitLV = 0 #(WORD LimitLV)// ÏÞÖÆµÈ¼¶ ShopCount = 0 #(BYTE ShopCount)// É̵êÊý ShopInfo = list() #(vector ShopInfo)// É̵êÐÅÏ¢, µ±Óжà¸öÉ̵êÇÒÓжà¸ö»î¶¯Ê±¼ä¶ÎʱÔòÿ¸öʱ¼ä¶Î¶ÔÓ¦Ò»¸öÉ̵ꣻ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xAA self.Head.SubCmd = 0x11 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10) self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10) self.ActivityTimeCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.ActivityTimeCount): temActivityTime = tagMCSpringSaleTime() _pos = temActivityTime.ReadData(_lpData, _pos) self.ActivityTime.append(temActivityTime) self.IsDayReset,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.ShopCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.ShopCount): temShopInfo = tagMCSpringSaleShop() _pos = temShopInfo.ReadData(_lpData, _pos) self.ShopInfo.append(temShopInfo) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xAA self.Head.SubCmd = 0x11 self.StartDate = "" self.EndtDate = "" self.ActivityTimeCount = 0 self.ActivityTime = list() self.IsDayReset = 0 self.LimitLV = 0 self.ShopCount = 0 self.ShopInfo = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 10 length += 10 length += 1 for i in range(self.ActivityTimeCount): length += self.ActivityTime[i].GetLength() length += 1 length += 2 length += 1 for i in range(self.ShopCount): length += self.ShopInfo[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteString(data, 10, self.StartDate) data = CommFunc.WriteString(data, 10, self.EndtDate) data = CommFunc.WriteBYTE(data, self.ActivityTimeCount) for i in range(self.ActivityTimeCount): data = CommFunc.WriteString(data, self.ActivityTime[i].GetLength(), self.ActivityTime[i].GetBuffer()) data = CommFunc.WriteBYTE(data, self.IsDayReset) data = CommFunc.WriteWORD(data, self.LimitLV) data = CommFunc.WriteBYTE(data, self.ShopCount) for i in range(self.ShopCount): data = CommFunc.WriteString(data, self.ShopInfo[i].GetLength(), self.ShopInfo[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, StartDate:%s, EndtDate:%s, ActivityTimeCount:%d, ActivityTime:%s, IsDayReset:%d, LimitLV:%d, ShopCount:%d, ShopInfo:%s '''\ %( self.Head.OutputString(), self.StartDate, self.EndtDate, self.ActivityTimeCount, "...", self.IsDayReset, self.LimitLV, self.ShopCount, "..." ) return DumpString m_NAtagMCSpringSaleInfo=tagMCSpringSaleInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSpringSaleInfo.Head.Cmd,m_NAtagMCSpringSaleInfo.Head.SubCmd))] = m_NAtagMCSpringSaleInfo #------------------------------------------------------ #AA 01 ÀۼƵǽÌìÊýÐÅÏ¢ #tagMCTotalLoginDayCntInfo class tagMCTotalLoginDayCntInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("DayCnt", c_ushort), #ÀۼƵǽÌìÊý ("AwardInfo", c_ushort), #µÇ½ÁìÈ¡Çé¿ö ] def __init__(self): self.Clear() self.Cmd = 0xAA self.SubCmd = 0x01 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xAA self.SubCmd = 0x01 self.DayCnt = 0 self.AwardInfo = 0 return def GetLength(self): return sizeof(tagMCTotalLoginDayCntInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//AA 01 ÀۼƵǽÌìÊýÐÅÏ¢ //tagMCTotalLoginDayCntInfo: Cmd:%s, SubCmd:%s, DayCnt:%d, AwardInfo:%d '''\ %( self.Cmd, self.SubCmd, self.DayCnt, self.AwardInfo ) return DumpString m_NAtagMCTotalLoginDayCntInfo=tagMCTotalLoginDayCntInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCTotalLoginDayCntInfo.Cmd,m_NAtagMCTotalLoginDayCntInfo.SubCmd))] = m_NAtagMCTotalLoginDayCntInfo #------------------------------------------------------ # AA 14 ÏɽçÊ¢µä³äÖµ´óÀñ #tagMCXJSDRecharge class tagMCXJSDRecharge(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("State", c_ubyte), #0-²»¿ÉÁì 1-¿ÉÁì 2-ÒÑÁìÈ¡ ] def __init__(self): self.Clear() self.Cmd = 0xAA self.SubCmd = 0x14 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xAA self.SubCmd = 0x14 self.State = 0 return def GetLength(self): return sizeof(tagMCXJSDRecharge) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AA 14 ÏɽçÊ¢µä³äÖµ´óÀñ //tagMCXJSDRecharge: Cmd:%s, SubCmd:%s, State:%d '''\ %( self.Cmd, self.SubCmd, self.State ) return DumpString m_NAtagMCXJSDRecharge=tagMCXJSDRecharge() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCXJSDRecharge.Cmd,m_NAtagMCXJSDRecharge.SubCmd))] = m_NAtagMCXJSDRecharge #------------------------------------------------------ # AB 03 Boss¸´»îÍæ¼Ò»î¶¯ÐÅÏ¢ #tagMCBossRebornPlayerInfo class tagMCBossRebornData(Structure): _pack_ = 1 _fields_ = [ ("ActID", c_ubyte), #»î¶¯ID ("CurTimes", c_ushort), #ÒÑÍê³É´ÎÊý ("GotTimes", c_ushort), #ÒÑÁìÈ¡´ÎÊý ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.ActID = 0 self.CurTimes = 0 self.GotTimes = 0 return def GetLength(self): return sizeof(tagMCBossRebornData) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AB 03 Boss¸´»îÍæ¼Ò»î¶¯ÐÅÏ¢ //tagMCBossRebornPlayerInfo: ActID:%d, CurTimes:%d, GotTimes:%d '''\ %( self.ActID, self.CurTimes, self.GotTimes ) return DumpString class tagMCBossRebornPlayerInfo(Structure): Head = tagHead() Count = 0 #(BYTE Count)//»î¶¯¸öÊý DataList = list() #(vector DataList) data = None def __init__(self): self.Clear() self.Head.Cmd = 0xAB self.Head.SubCmd = 0x03 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Count): temDataList = tagMCBossRebornData() _pos = temDataList.ReadData(_lpData, _pos) self.DataList.append(temDataList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xAB self.Head.SubCmd = 0x03 self.Count = 0 self.DataList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.Count): length += self.DataList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.DataList[i].GetLength(), self.DataList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Count:%d, DataList:%s '''\ %( self.Head.OutputString(), self.Count, "..." ) return DumpString m_NAtagMCBossRebornPlayerInfo=tagMCBossRebornPlayerInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCBossRebornPlayerInfo.Head.Cmd,m_NAtagMCBossRebornPlayerInfo.Head.SubCmd))] = m_NAtagMCBossRebornPlayerInfo #------------------------------------------------------ # AB 06 »î¶¯ÎïÆ·¶Ò»»´ÎÊý¼Ç¼ #tagMCExchangeActionItemCntRecord class tagMCExchangeActionItemCnt(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ItemID", c_int), ("ExcCnt", c_int), # ÒѶһ»´ÎÊý ] def __init__(self): self.Clear() self.Cmd = 0xAB self.SubCmd = 0x06 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xAB self.SubCmd = 0x06 self.ItemID = 0 self.ExcCnt = 0 return def GetLength(self): return sizeof(tagMCExchangeActionItemCnt) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AB 06 »î¶¯ÎïÆ·¶Ò»»´ÎÊý¼Ç¼ //tagMCExchangeActionItemCntRecord: Cmd:%s, SubCmd:%s, ItemID:%d, ExcCnt:%d '''\ %( self.Cmd, self.SubCmd, self.ItemID, self.ExcCnt ) return DumpString class tagMCExchangeActionItemCntRecord(Structure): Head = tagHead() ActionKeyLen = 0 #(BYTE ActionKeyLen) ActionKey = "" #(String ActionKey) RecordCnt = 0 #(BYTE RecordCnt) RecordList = list() #(vector RecordList) data = None def __init__(self): self.Clear() self.Head.Cmd = 0xAB self.Head.SubCmd = 0x06 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.ActionKeyLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ActionKey,_pos = CommFunc.ReadString(_lpData, _pos,self.ActionKeyLen) self.RecordCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.RecordCnt): temRecordList = tagMCExchangeActionItemCnt() _pos = temRecordList.ReadData(_lpData, _pos) self.RecordList.append(temRecordList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xAB self.Head.SubCmd = 0x06 self.ActionKeyLen = 0 self.ActionKey = "" self.RecordCnt = 0 self.RecordList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += len(self.ActionKey) length += 1 for i in range(self.RecordCnt): length += self.RecordList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.ActionKeyLen) data = CommFunc.WriteString(data, self.ActionKeyLen, self.ActionKey) data = CommFunc.WriteBYTE(data, self.RecordCnt) for i in range(self.RecordCnt): data = CommFunc.WriteString(data, self.RecordList[i].GetLength(), self.RecordList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, ActionKeyLen:%d, ActionKey:%s, RecordCnt:%d, RecordList:%s '''\ %( self.Head.OutputString(), self.ActionKeyLen, self.ActionKey, self.RecordCnt, "..." ) return DumpString m_NAtagMCExchangeActionItemCntRecord=tagMCExchangeActionItemCntRecord() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCExchangeActionItemCntRecord.Head.Cmd,m_NAtagMCExchangeActionItemCntRecord.Head.SubCmd))] = m_NAtagMCExchangeActionItemCntRecord #------------------------------------------------------ # AB 07 ½ÚÈջ½±Àø×´Ì¬ #tagMCFestivalLoginAwardState class tagMCFestivalLoginAwardState(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("FestivalType", c_ubyte), # ½ÚÈÕÀàÐÍ ("State", c_int), # Áìȡ״̬ <°´Î»È¡Öµ,0-δÁìÈ¡ 1-¿ÉÁìÈ¡ 2-ÒÑÁìÈ¡> ] def __init__(self): self.Clear() self.Cmd = 0xAB self.SubCmd = 0x07 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xAB self.SubCmd = 0x07 self.FestivalType = 0 self.State = 0 return def GetLength(self): return sizeof(tagMCFestivalLoginAwardState) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AB 07 ½ÚÈջ½±Àø×´Ì¬ //tagMCFestivalLoginAwardState: Cmd:%s, SubCmd:%s, FestivalType:%d, State:%d '''\ %( self.Cmd, self.SubCmd, self.FestivalType, self.State ) return DumpString m_NAtagMCFestivalLoginAwardState=tagMCFestivalLoginAwardState() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFestivalLoginAwardState.Cmd,m_NAtagMCFestivalLoginAwardState.SubCmd))] = m_NAtagMCFestivalLoginAwardState #------------------------------------------------------ # AB 02 ÁìµØÕ¼ÁìÿÈÕ½±ÀøÁì½±Çé¿ö #tagMCManorDailyAward class tagMCManorDailyAward(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("AwardRecord", c_int), # °´Î»±íʾÿ¸öÁìµØÁìÈ¡Çé¿ö£»0-δÁ죬1-ÒÑÁì ] def __init__(self): self.Clear() self.Cmd = 0xAB self.SubCmd = 0x02 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xAB self.SubCmd = 0x02 self.AwardRecord = 0 return def GetLength(self): return sizeof(tagMCManorDailyAward) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AB 02 ÁìµØÕ¼ÁìÿÈÕ½±ÀøÁì½±Çé¿ö //tagMCManorDailyAward: Cmd:%s, SubCmd:%s, AwardRecord:%d '''\ %( self.Cmd, self.SubCmd, self.AwardRecord ) return DumpString m_NAtagMCManorDailyAward=tagMCManorDailyAward() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCManorDailyAward.Cmd,m_NAtagMCManorDailyAward.SubCmd))] = m_NAtagMCManorDailyAward #------------------------------------------------------ # AB 01 ֪ͨÁìµØÕ½½á¹û #tagMCManorWarResult class tagMCManorWarResult(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ubyte), # 0-ÆÕͨÐÅÏ¢£»1-»î¶¯½á¹û×ܽá ("Result", c_ubyte), # Õ½ÃËʤ¸ºÇé¿ö£»0-δ֪£¬1-ʤÀû£¬2-ʧ°Ü ("JoinTime", c_int), # »î¶¯Ê±×ܲÎÓëʱ¼ä£¬ºÁÃë ("JoinAward", c_ubyte), # ²ÎÓ뽱״̬£»0-²»¿ÉÁ죬1-¿ÉÁ죬2-ÒÑÁì ] def __init__(self): self.Clear() self.Cmd = 0xAB self.SubCmd = 0x01 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xAB self.SubCmd = 0x01 self.Type = 0 self.Result = 0 self.JoinTime = 0 self.JoinAward = 0 return def GetLength(self): return sizeof(tagMCManorWarResult) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AB 01 ֪ͨÁìµØÕ½½á¹û //tagMCManorWarResult: Cmd:%s, SubCmd:%s, Type:%d, Result:%d, JoinTime:%d, JoinAward:%d '''\ %( self.Cmd, self.SubCmd, self.Type, self.Result, self.JoinTime, self.JoinAward ) return DumpString m_NAtagMCManorWarResult=tagMCManorWarResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCManorWarResult.Cmd,m_NAtagMCManorWarResult.SubCmd))] = m_NAtagMCManorWarResult #------------------------------------------------------ # AB 04 Boss¸´»î»î¶¯ÐÅÏ¢ #tagMCBossRebornInfo class tagMCBossRebornAwardItem(Structure): _pack_ = 1 _fields_ = [ ("ItemID", c_int), ("ItemCount", c_ushort), ("IsBind", c_ubyte), ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.ItemID = 0 self.ItemCount = 0 self.IsBind = 0 return def GetLength(self): return sizeof(tagMCBossRebornAwardItem) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AB 04 Boss¸´»î»î¶¯ÐÅÏ¢ //tagMCBossRebornInfo: ItemID:%d, ItemCount:%d, IsBind:%d '''\ %( self.ItemID, self.ItemCount, self.IsBind ) return DumpString class tagMCBossRebornTaskInfo(Structure): TaskID = 0 #(BYTE TaskID)// id TotalTimes = 0 #(BYTE TotalTimes)// ¿ÉÍê³É×Ü´ÎÊý,0±íʾ²»ÏÞ´ÎÊý SingleTimes = 0 #(BYTE SingleTimes)// µ¥´ÎÁì½±ÐèÒª´ÎÊý AwardItemCount = 0 #(BYTE AwardItemCount)// ½±ÀøÎïÆ·Êý AwardItem = list() #(vector AwardItem)// ½±ÀøÎïÆ·ÐÅÏ¢ data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.TaskID,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.TotalTimes,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.SingleTimes,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.AwardItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.AwardItemCount): temAwardItem = tagMCBossRebornAwardItem() _pos = temAwardItem.ReadData(_lpData, _pos) self.AwardItem.append(temAwardItem) return _pos def Clear(self): self.TaskID = 0 self.TotalTimes = 0 self.SingleTimes = 0 self.AwardItemCount = 0 self.AwardItem = list() return def GetLength(self): length = 0 length += 1 length += 1 length += 1 length += 1 for i in range(self.AwardItemCount): length += self.AwardItem[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteBYTE(data, self.TaskID) data = CommFunc.WriteBYTE(data, self.TotalTimes) data = CommFunc.WriteBYTE(data, self.SingleTimes) data = CommFunc.WriteBYTE(data, self.AwardItemCount) for i in range(self.AwardItemCount): data = CommFunc.WriteString(data, self.AwardItem[i].GetLength(), self.AwardItem[i].GetBuffer()) return data def OutputString(self): DumpString = ''' TaskID:%d, TotalTimes:%d, SingleTimes:%d, AwardItemCount:%d, AwardItem:%s '''\ %( self.TaskID, self.TotalTimes, self.SingleTimes, self.AwardItemCount, "..." ) return DumpString class tagMCBossRebornInfo(Structure): Head = tagHead() StartDate = "" #(char StartDate[10])// ¿ªÊ¼ÈÕÆÚ y-m-d EndtDate = "" #(char EndtDate[10])// ½áÊøÈÕÆÚ y-m-d LimitLV = 0 #(WORD LimitLV)// ÏÞÖÆµÈ¼¶ TaskCnt = 0 #(BYTE TaskCnt) TaskInfo = list() #(vector TaskInfo) data = None def __init__(self): self.Clear() self.Head.Cmd = 0xAB self.Head.SubCmd = 0x04 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10) self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10) self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.TaskCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.TaskCnt): temTaskInfo = tagMCBossRebornTaskInfo() _pos = temTaskInfo.ReadData(_lpData, _pos) self.TaskInfo.append(temTaskInfo) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xAB self.Head.SubCmd = 0x04 self.StartDate = "" self.EndtDate = "" self.LimitLV = 0 self.TaskCnt = 0 self.TaskInfo = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 10 length += 10 length += 2 length += 1 for i in range(self.TaskCnt): length += self.TaskInfo[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteString(data, 10, self.StartDate) data = CommFunc.WriteString(data, 10, self.EndtDate) data = CommFunc.WriteWORD(data, self.LimitLV) data = CommFunc.WriteBYTE(data, self.TaskCnt) for i in range(self.TaskCnt): data = CommFunc.WriteString(data, self.TaskInfo[i].GetLength(), self.TaskInfo[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, StartDate:%s, EndtDate:%s, LimitLV:%d, TaskCnt:%d, TaskInfo:%s '''\ %( self.Head.OutputString(), self.StartDate, self.EndtDate, self.LimitLV, self.TaskCnt, "..." ) return DumpString m_NAtagMCBossRebornInfo=tagMCBossRebornInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCBossRebornInfo.Head.Cmd,m_NAtagMCBossRebornInfo.Head.SubCmd))] = m_NAtagMCBossRebornInfo #------------------------------------------------------ # AB 23 Ò¡÷»×Ó½±Àø»Ø°ü #tagMCDiceAward class tagMCDiceAward(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("AwardCnt", c_ubyte), # Ì«¼«ÊýÁ¿ ] def __init__(self): self.Clear() self.Cmd = 0xAB self.SubCmd = 0x23 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xAB self.SubCmd = 0x23 self.AwardCnt = 0 return def GetLength(self): return sizeof(tagMCDiceAward) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AB 23 Ò¡÷»×Ó½±Àø»Ø°ü //tagMCDiceAward: Cmd:%s, SubCmd:%s, AwardCnt:%d '''\ %( self.Cmd, self.SubCmd, self.AwardCnt ) return DumpString m_NAtagMCDiceAward=tagMCDiceAward() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCDiceAward.Cmd,m_NAtagMCDiceAward.SubCmd))] = m_NAtagMCDiceAward #------------------------------------------------------ # AB 17 ¿ª·þ»î¶¯½±Àø×´Ì¬ #tagMCOpenServerCampaignAwardList class tagMCOpenServerCampaignAward(Structure): _pack_ = 1 _fields_ = [ ("CampaignType", c_ubyte), #½±ÀøÀàÐÍ ("BillAwardRecord", c_ubyte), #ÅÅÐн±ÀøÊÇ·ñÒÑÁìÈ¡ ("TagAwardRecord", c_int), #Ä¿±ê½±ÀøË÷ÒýλÁìÈ¡¼Ç¼£º0-δÁ죻1-ÒÑÁì ("RecordData", c_int), #»î¶¯Ê±µÄ¼Ç¼ֵ ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.CampaignType = 0 self.BillAwardRecord = 0 self.TagAwardRecord = 0 self.RecordData = 0 return def GetLength(self): return sizeof(tagMCOpenServerCampaignAward) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AB 17 ¿ª·þ»î¶¯½±Àø×´Ì¬ //tagMCOpenServerCampaignAwardList: CampaignType:%d, BillAwardRecord:%d, TagAwardRecord:%d, RecordData:%d '''\ %( self.CampaignType, self.BillAwardRecord, self.TagAwardRecord, self.RecordData ) return DumpString class tagMCOpenServerCampaignAwardList(Structure): Head = tagHead() OSCAwardCnt = 0 #(BYTE OSCAwardCnt)//½±ÀøÀàÐÍÊý OSCAwardList = list() #(vector OSCAwardList)// ½±Àø×´Ì¬Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xAB self.Head.SubCmd = 0x17 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.OSCAwardCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.OSCAwardCnt): temOSCAwardList = tagMCOpenServerCampaignAward() _pos = temOSCAwardList.ReadData(_lpData, _pos) self.OSCAwardList.append(temOSCAwardList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xAB self.Head.SubCmd = 0x17 self.OSCAwardCnt = 0 self.OSCAwardList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.OSCAwardCnt): length += self.OSCAwardList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.OSCAwardCnt) for i in range(self.OSCAwardCnt): data = CommFunc.WriteString(data, self.OSCAwardList[i].GetLength(), self.OSCAwardList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, OSCAwardCnt:%d, OSCAwardList:%s '''\ %( self.Head.OutputString(), self.OSCAwardCnt, "..." ) return DumpString m_NAtagMCOpenServerCampaignAwardList=tagMCOpenServerCampaignAwardList() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCOpenServerCampaignAwardList.Head.Cmd,m_NAtagMCOpenServerCampaignAwardList.Head.SubCmd))] = m_NAtagMCOpenServerCampaignAwardList #------------------------------------------------------ # AB 24 ¿ª·þºì°üÐÅÏ¢ #tagMCOpenServerRedPacketInfo class tagMCOpenServerRedPacketInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("MoneyNum", c_int), # ÀÛ»ýÇÀµ½¶àÉÙÇ® ("GrabCnt", c_ushort), # ÒÑÇÀºì°ü´ÎÊý ("StartTime", c_int), # ¿ªÊ¼µ¹¼ÆÊ±Ê±¼ä ] def __init__(self): self.Clear() self.Cmd = 0xAB self.SubCmd = 0x24 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xAB self.SubCmd = 0x24 self.MoneyNum = 0 self.GrabCnt = 0 self.StartTime = 0 return def GetLength(self): return sizeof(tagMCOpenServerRedPacketInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AB 24 ¿ª·þºì°üÐÅÏ¢ //tagMCOpenServerRedPacketInfo: Cmd:%s, SubCmd:%s, MoneyNum:%d, GrabCnt:%d, StartTime:%d '''\ %( self.Cmd, self.SubCmd, self.MoneyNum, self.GrabCnt, self.StartTime ) return DumpString m_NAtagMCOpenServerRedPacketInfo=tagMCOpenServerRedPacketInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCOpenServerRedPacketInfo.Cmd,m_NAtagMCOpenServerRedPacketInfo.SubCmd))] = m_NAtagMCOpenServerRedPacketInfo #------------------------------------------------------ # AB 19 Á¶Öƽ±ÀøÐÅÏ¢ #tagMCRefineGiftInfo class tagMCRefineGiftInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ExpRefineStartTime", c_int), # ¾­ÑéÁ¶Öƻ¿ªÊ¼Ê±¼ä ("MoneyRefineStartTime", c_int), # ½ð±ÒÁ¶Öƻ¿ªÊ¼Ê±¼ä ("ExpRefineCnt", c_ubyte), # ¾­ÑéÒÑÁ¶ÖÆ´ÎÊý ("MoneyRefineCnt", c_ubyte), # ½ð±ÒÒÑÁ¶ÖÆ´ÎÊý ] def __init__(self): self.Clear() self.Cmd = 0xAB self.SubCmd = 0x19 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xAB self.SubCmd = 0x19 self.ExpRefineStartTime = 0 self.MoneyRefineStartTime = 0 self.ExpRefineCnt = 0 self.MoneyRefineCnt = 0 return def GetLength(self): return sizeof(tagMCRefineGiftInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AB 19 Á¶Öƽ±ÀøÐÅÏ¢ //tagMCRefineGiftInfo: Cmd:%s, SubCmd:%s, ExpRefineStartTime:%d, MoneyRefineStartTime:%d, ExpRefineCnt:%d, MoneyRefineCnt:%d '''\ %( self.Cmd, self.SubCmd, self.ExpRefineStartTime, self.MoneyRefineStartTime, self.ExpRefineCnt, self.MoneyRefineCnt ) return DumpString m_NAtagMCRefineGiftInfo=tagMCRefineGiftInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCRefineGiftInfo.Cmd,m_NAtagMCRefineGiftInfo.SubCmd))] = m_NAtagMCRefineGiftInfo #------------------------------------------------------ # AB 22 Ò¡÷»×Ó½á¹û #tagMCDiceExResult class tagMCDiceExResult(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ResultNum", c_int), # ÷»×Ó½á¹û ("DiceType", c_ubyte), # 0-Õý³£ 1-¸ÄͶ 2-ÖØÖà ("UseFreeCnt", c_ubyte), # ¸ÄͶʹÓôÎÊý ] def __init__(self): self.Clear() self.Cmd = 0xAB self.SubCmd = 0x22 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xAB self.SubCmd = 0x22 self.ResultNum = 0 self.DiceType = 0 self.UseFreeCnt = 0 return def GetLength(self): return sizeof(tagMCDiceExResult) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AB 22 Ò¡÷»×Ó½á¹û //tagMCDiceExResult: Cmd:%s, SubCmd:%s, ResultNum:%d, DiceType:%d, UseFreeCnt:%d '''\ %( self.Cmd, self.SubCmd, self.ResultNum, self.DiceType, self.UseFreeCnt ) return DumpString m_NAtagMCDiceExResult=tagMCDiceExResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCDiceExResult.Cmd,m_NAtagMCDiceExResult.SubCmd))] = m_NAtagMCDiceExResult #------------------------------------------------------ # AE 04 ×Ô¶¯ÔËïÚ״̬#tagPyAutoTruckState class tagPyAutoTruckState(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("State", c_ubyte), ("Result", c_ubyte), #³É¹¦/ʧ°Ü ] def __init__(self): self.Clear() self.Cmd = 0xAE self.SubCmd = 0x04 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xAE self.SubCmd = 0x04 self.State = 0 self.Result = 0 return def GetLength(self): return sizeof(tagPyAutoTruckState) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AE 04 ×Ô¶¯ÔËïÚ״̬//tagPyAutoTruckState: Cmd:%s, SubCmd:%s, State:%d, Result:%d '''\ %( self.Cmd, self.SubCmd, self.State, self.Result ) return DumpString m_NAtagPyAutoTruckState=tagPyAutoTruckState() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPyAutoTruckState.Cmd,m_NAtagPyAutoTruckState.SubCmd))] = m_NAtagPyAutoTruckState #------------------------------------------------------ # AE 01 ¿ÉÕÙ»½ïÚ³µµÈ¼¶#tagPyCanSummonTruckLV class tagPyCanSummonTruckLV(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("TruckLV", c_ubyte), #ïÚ³µµÈ¼¶ ("FreeCnt", c_ubyte), #µ±ÈÕÒÑÃâ·ÑˢдÎÊý ] def __init__(self): self.Clear() self.Cmd = 0xAE self.SubCmd = 0x01 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xAE self.SubCmd = 0x01 self.TruckLV = 0 self.FreeCnt = 0 return def GetLength(self): return sizeof(tagPyCanSummonTruckLV) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AE 01 ¿ÉÕÙ»½ïÚ³µµÈ¼¶//tagPyCanSummonTruckLV: Cmd:%s, SubCmd:%s, TruckLV:%d, FreeCnt:%d '''\ %( self.Cmd, self.SubCmd, self.TruckLV, self.FreeCnt ) return DumpString m_NAtagPyCanSummonTruckLV=tagPyCanSummonTruckLV() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPyCanSummonTruckLV.Cmd,m_NAtagPyCanSummonTruckLV.SubCmd))] = m_NAtagPyCanSummonTruckLV #------------------------------------------------------ # AE 02 ½ÙïÚ´ÎÊý#tagPyDestroyTruckCnt class tagPyDestroyTruckCnt(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Count", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0xAE self.SubCmd = 0x02 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xAE self.SubCmd = 0x02 self.Count = 0 return def GetLength(self): return sizeof(tagPyDestroyTruckCnt) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AE 02 ½ÙïÚ´ÎÊý//tagPyDestroyTruckCnt: Cmd:%s, SubCmd:%s, Count:%d '''\ %( self.Cmd, self.SubCmd, self.Count ) return DumpString m_NAtagPyDestroyTruckCnt=tagPyDestroyTruckCnt() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPyDestroyTruckCnt.Cmd,m_NAtagPyDestroyTruckCnt.SubCmd))] = m_NAtagPyDestroyTruckCnt #------------------------------------------------------ # AE 06 ÔËïÚ½±Àø #tagMCTruckAward class tagMCTruckAward(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("AwardType", c_ubyte), # ½±ÀøÀàÐÍ£¬0-ÔËïÚ£»1-½ÙïÚ ("Exp", c_int), ("ExpPoint", c_int), ("ZhenQi", c_int), ("Prestige", c_int), ("MoneyType", c_ubyte), ("MoneyCnt", c_int), ("IsDestroy", c_ubyte), # ÊÇ·ñ±»½Ù ("IsDouble", c_ubyte), # ÊÇ·ñË«±¶ ("IsTimeOut", c_ubyte), # ÊÇ·ñ³¬Ê± ] def __init__(self): self.Clear() self.Cmd = 0xAE self.SubCmd = 0x06 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xAE self.SubCmd = 0x06 self.AwardType = 0 self.Exp = 0 self.ExpPoint = 0 self.ZhenQi = 0 self.Prestige = 0 self.MoneyType = 0 self.MoneyCnt = 0 self.IsDestroy = 0 self.IsDouble = 0 self.IsTimeOut = 0 return def GetLength(self): return sizeof(tagMCTruckAward) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AE 06 ÔËïÚ½±Àø //tagMCTruckAward: Cmd:%s, SubCmd:%s, AwardType:%d, Exp:%d, ExpPoint:%d, ZhenQi:%d, Prestige:%d, MoneyType:%d, MoneyCnt:%d, IsDestroy:%d, IsDouble:%d, IsTimeOut:%d '''\ %( self.Cmd, self.SubCmd, self.AwardType, self.Exp, self.ExpPoint, self.ZhenQi, self.Prestige, self.MoneyType, self.MoneyCnt, self.IsDestroy, self.IsDouble, self.IsTimeOut ) return DumpString m_NAtagMCTruckAward=tagMCTruckAward() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCTruckAward.Cmd,m_NAtagMCTruckAward.SubCmd))] = m_NAtagMCTruckAward #------------------------------------------------------ # AE 03 ïÚ³µ×´Ì¬Ä£Ê½#tagPyTruckMode class tagPyTruckMode(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("TruckMode", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0xAE self.SubCmd = 0x03 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xAE self.SubCmd = 0x03 self.TruckMode = 0 return def GetLength(self): return sizeof(tagPyTruckMode) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AE 03 ïÚ³µ×´Ì¬Ä£Ê½//tagPyTruckMode: Cmd:%s, SubCmd:%s, TruckMode:%d '''\ %( self.Cmd, self.SubCmd, self.TruckMode ) return DumpString m_NAtagPyTruckMode=tagPyTruckMode() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPyTruckMode.Cmd,m_NAtagPyTruckMode.SubCmd))] = m_NAtagPyTruckMode #------------------------------------------------------ # AF 02 ºÏ·þ»î¶¯½±Àø×´Ì¬ #tagMCMixCampaignAwardRecord class tagMCMixCampaignAwardRecord(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("CampaignType", c_ubyte), #½±ÀøÀàÐÍ ("Record", c_int), #´ÓµÍλµ½¸ßλ£¬Ã¿Î»±íʾ£º0-²»¿ÉÁ죻1-ÁìÈ¡£»2-ÒÑÁì ("RecordData", c_int), #»î¶¯Ê±µÄ¼Ç¼ֵ ] def __init__(self): self.Clear() self.Cmd = 0xAF self.SubCmd = 0x02 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xAF self.SubCmd = 0x02 self.CampaignType = 0 self.Record = 0 self.RecordData = 0 return def GetLength(self): return sizeof(tagMCMixCampaignAwardRecord) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AF 02 ºÏ·þ»î¶¯½±Àø×´Ì¬ //tagMCMixCampaignAwardRecord: Cmd:%s, SubCmd:%s, CampaignType:%d, Record:%d, RecordData:%d '''\ %( self.Cmd, self.SubCmd, self.CampaignType, self.Record, self.RecordData ) return DumpString m_NAtagMCMixCampaignAwardRecord=tagMCMixCampaignAwardRecord() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCMixCampaignAwardRecord.Cmd,m_NAtagMCMixCampaignAwardRecord.SubCmd))] = m_NAtagMCMixCampaignAwardRecord #------------------------------------------------------ # AF 01 ºÏ·þµ±ÌìµÇ½½±ÀøÁìȡ״̬ # tagMCMixLoginDayAwardState class tagMCMixLoginDayAwardState(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("State", c_int), # Áìȡ״̬ <°´Î»È¡Öµ,0-δÁìÈ¡ 1-¿ÉÁìÈ¡ 2-ÒÑÁìÈ¡> ] def __init__(self): self.Clear() self.Cmd = 0xAF self.SubCmd = 0x01 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xAF self.SubCmd = 0x01 self.State = 0 return def GetLength(self): return sizeof(tagMCMixLoginDayAwardState) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AF 01 ºÏ·þµ±ÌìµÇ½½±ÀøÁìȡ״̬ // tagMCMixLoginDayAwardState: Cmd:%s, SubCmd:%s, State:%d '''\ %( self.Cmd, self.SubCmd, self.State ) return DumpString m_NAtagMCMixLoginDayAwardState=tagMCMixLoginDayAwardState() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCMixLoginDayAwardState.Cmd,m_NAtagMCMixLoginDayAwardState.SubCmd))] = m_NAtagMCMixLoginDayAwardState #------------------------------------------------------ #B0 25 ¼Ò×åÐüÉÍÈÎÎñ½±ÀøÁìÈ¡Çé¿ö #tagFamilyArrestAwardReceiveState class tagFamilyArrestAwardReceiveState(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ReceiveState", c_int), #ÐüÉÍÈÎÎñ½±ÀøÁìÈ¡Çé¿ö ] def __init__(self): self.Clear() self.Cmd = 0xB0 self.SubCmd = 0x25 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xB0 self.SubCmd = 0x25 self.ReceiveState = 0 return def GetLength(self): return sizeof(tagFamilyArrestAwardReceiveState) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//B0 25 ¼Ò×åÐüÉÍÈÎÎñ½±ÀøÁìÈ¡Çé¿ö //tagFamilyArrestAwardReceiveState: Cmd:%s, SubCmd:%s, ReceiveState:%d '''\ %( self.Cmd, self.SubCmd, self.ReceiveState ) return DumpString m_NAtagFamilyArrestAwardReceiveState=tagFamilyArrestAwardReceiveState() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagFamilyArrestAwardReceiveState.Cmd,m_NAtagFamilyArrestAwardReceiveState.SubCmd))] = m_NAtagFamilyArrestAwardReceiveState #------------------------------------------------------ # B0 50 Êո˽á¹û #tagMCFishResult class tagMCFishResult(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0xB0 self.SubCmd = 0x50 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xB0 self.SubCmd = 0x50 return def GetLength(self): return sizeof(tagMCFishResult) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// B0 50 Êո˽á¹û //tagMCFishResult: Cmd:%s, SubCmd:%s '''\ %( self.Cmd, self.SubCmd ) return DumpString m_NAtagMCFishResult=tagMCFishResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFishResult.Cmd,m_NAtagMCFishResult.SubCmd))] = m_NAtagMCFishResult #------------------------------------------------------ # B1 02 Íæ¼ÒʱװƤ·ô¼¤»î״̬ #tagMCClothesCoatSkinState class tagMCClothesCoatLVInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("CoatIndex", c_int), #ʱװË÷Òý ("CoatLV", c_ubyte), #ʱװµÈ¼¶ ("CoatExp", c_int), #ʱװף¸£Öµ¾­Ñé ] def __init__(self): self.Clear() self.Cmd = 0xB1 self.SubCmd = 0x02 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xB1 self.SubCmd = 0x02 self.CoatIndex = 0 self.CoatLV = 0 self.CoatExp = 0 return def GetLength(self): return sizeof(tagMCClothesCoatLVInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// B1 02 Íæ¼ÒʱװƤ·ô¼¤»î״̬ //tagMCClothesCoatSkinState: Cmd:%s, SubCmd:%s, CoatIndex:%d, CoatLV:%d, CoatExp:%d '''\ %( self.Cmd, self.SubCmd, self.CoatIndex, self.CoatLV, self.CoatExp ) return DumpString class tagMCClothesCoatSkinState(Structure): Head = tagHead() SkinOpenState = 0 #(DWORD SkinOpenState)//ʱװ¼¤»î״̬, °´Ë÷Òý±íʾ¼¤»î״̬ CoatNum = 0 #(BYTE CoatNum)//ʱװ¸öÊý CoatInfoList = list() #(vector CoatInfoList)// ʱװÊý¾ÝÁбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB1 self.Head.SubCmd = 0x02 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.SkinOpenState,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.CoatNum,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.CoatNum): temCoatInfoList = tagMCClothesCoatLVInfo() _pos = temCoatInfoList.ReadData(_lpData, _pos) self.CoatInfoList.append(temCoatInfoList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB1 self.Head.SubCmd = 0x02 self.SkinOpenState = 0 self.CoatNum = 0 self.CoatInfoList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 for i in range(self.CoatNum): length += self.CoatInfoList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.SkinOpenState) data = CommFunc.WriteBYTE(data, self.CoatNum) for i in range(self.CoatNum): data = CommFunc.WriteString(data, self.CoatInfoList[i].GetLength(), self.CoatInfoList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, SkinOpenState:%d, CoatNum:%d, CoatInfoList:%s '''\ %( self.Head.OutputString(), self.SkinOpenState, self.CoatNum, "..." ) return DumpString m_NAtagMCClothesCoatSkinState=tagMCClothesCoatSkinState() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCClothesCoatSkinState.Head.Cmd,m_NAtagMCClothesCoatSkinState.Head.SubCmd))] = m_NAtagMCClothesCoatSkinState #------------------------------------------------------ # B1 03 Í¨ÖªÍæ¼ÒËÀÍöʱ¼ä #tagMCPlayerDeadTime class tagMCPlayerDeadTime(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("DeadTime", c_int), # ËÀÍöʱ¼ä ] def __init__(self): self.Clear() self.Cmd = 0xB1 self.SubCmd = 0x03 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xB1 self.SubCmd = 0x03 self.DeadTime = 0 return def GetLength(self): return sizeof(tagMCPlayerDeadTime) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// B1 03 Í¨ÖªÍæ¼ÒËÀÍöʱ¼ä //tagMCPlayerDeadTime: Cmd:%s, SubCmd:%s, DeadTime:%d '''\ %( self.Cmd, self.SubCmd, self.DeadTime ) return DumpString m_NAtagMCPlayerDeadTime=tagMCPlayerDeadTime() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPlayerDeadTime.Cmd,m_NAtagMCPlayerDeadTime.SubCmd))] = m_NAtagMCPlayerDeadTime #------------------------------------------------------ # B1 01 Íæ¼Ò¼¼ÄÜÁ¬»÷֪ͨ #tagMCSkillCombo class tagMCSkillCombo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ComboNum", c_ubyte), # Á¬»÷¼¼ÄÜ×é±àºÅ ("ComboCnt", c_ubyte), # Á¬»÷Êý ] def __init__(self): self.Clear() self.Cmd = 0xB1 self.SubCmd = 0x01 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xB1 self.SubCmd = 0x01 self.ComboNum = 0 self.ComboCnt = 0 return def GetLength(self): return sizeof(tagMCSkillCombo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// B1 01 Íæ¼Ò¼¼ÄÜÁ¬»÷֪ͨ //tagMCSkillCombo: Cmd:%s, SubCmd:%s, ComboNum:%d, ComboCnt:%d '''\ %( self.Cmd, self.SubCmd, self.ComboNum, self.ComboCnt ) return DumpString m_NAtagMCSkillCombo=tagMCSkillCombo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSkillCombo.Cmd,m_NAtagMCSkillCombo.SubCmd))] = m_NAtagMCSkillCombo #------------------------------------------------------ # B1 04 ¾çÇéÈÎÎñ״̬ #tagMCStoryMissionStateInfo class tagMCStoryMissionState(Structure): _pack_ = 1 _fields_ = [ ("StoryNum", c_ubyte), #¾çÇé±àºÅ ("IsAllFinish", c_ubyte), #¸Ã¾çÇéÈÎÎñÊÇ·ñÈ«²¿Íê³É ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.StoryNum = 0 self.IsAllFinish = 0 return def GetLength(self): return sizeof(tagMCStoryMissionState) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// B1 04 ¾çÇéÈÎÎñ״̬ //tagMCStoryMissionStateInfo: StoryNum:%d, IsAllFinish:%d '''\ %( self.StoryNum, self.IsAllFinish ) return DumpString class tagMCStoryMissionStateInfo(Structure): Head = tagHead() Count = 0 #(BYTE Count)// ¸öÊý StoryMissionStateList = list() #(vector StoryMissionStateList)// ¾çÇé״̬Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB1 self.Head.SubCmd = 0x04 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Count): temStoryMissionStateList = tagMCStoryMissionState() _pos = temStoryMissionStateList.ReadData(_lpData, _pos) self.StoryMissionStateList.append(temStoryMissionStateList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB1 self.Head.SubCmd = 0x04 self.Count = 0 self.StoryMissionStateList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.Count): length += self.StoryMissionStateList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.StoryMissionStateList[i].GetLength(), self.StoryMissionStateList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Count:%d, StoryMissionStateList:%s '''\ %( self.Head.OutputString(), self.Count, "..." ) return DumpString m_NAtagMCStoryMissionStateInfo=tagMCStoryMissionStateInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCStoryMissionStateInfo.Head.Cmd,m_NAtagMCStoryMissionStateInfo.Head.SubCmd))] = m_NAtagMCStoryMissionStateInfo #------------------------------------------------------ #B1 05 ·À³ÁÃÔ #tagMCPlayerWallow class tagMCPlayerWallow(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Open", c_ubyte), # 0 ¹Ø 1¿ª ("OnlineTime", c_int), # ÔÚÏßʱ¼ä ] def __init__(self): self.Clear() self.Cmd = 0xB1 self.SubCmd = 0x05 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xB1 self.SubCmd = 0x05 self.Open = 0 self.OnlineTime = 0 return def GetLength(self): return sizeof(tagMCPlayerWallow) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//B1 05 ·À³ÁÃÔ //tagMCPlayerWallow: Cmd:%s, SubCmd:%s, Open:%d, OnlineTime:%d '''\ %( self.Cmd, self.SubCmd, self.Open, self.OnlineTime ) return DumpString m_NAtagMCPlayerWallow=tagMCPlayerWallow() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPlayerWallow.Cmd,m_NAtagMCPlayerWallow.SubCmd))] = m_NAtagMCPlayerWallow #------------------------------------------------------ # B2 10 ÏÉÃËÁªÈüÍæ¼ÒÅÅÃûÐÅÏ¢ #tagMCFamilyWarBillboard class tagMCFamilyWarPlayer(Structure): PlayerID = 0 #(DWORD PlayerID)//Íæ¼ÒID PlayerNameLen = 0 #(BYTE PlayerNameLen)//Íæ¼ÒÃû³Æ PlayerName = "" #(String PlayerName)//size = PlayerNameLen Faction = 0 #(BYTE Faction)//ÕóÓª CrystalCount = 0 #(BYTE CrystalCount)//Õ¼ÁìË®¾§Êý RandBuffCount = 0 #(BYTE RandBuffCount)//ÇÀ¶áËæ»úbuffÊý KillPlayerCount = 0 #(BYTE KillPlayerCount)//»÷ɱÊý FightTime = 0 #(WORD FightTime)// Õ½¶·Ê±³¤£¬µ¥Î»Ãë Point = 0 #(DWORD Point)// »ý·Ö data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.PlayerNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,self.PlayerNameLen) self.Faction,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.CrystalCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.RandBuffCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.KillPlayerCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.FightTime,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Point,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): self.PlayerID = 0 self.PlayerNameLen = 0 self.PlayerName = "" self.Faction = 0 self.CrystalCount = 0 self.RandBuffCount = 0 self.KillPlayerCount = 0 self.FightTime = 0 self.Point = 0 return def GetLength(self): length = 0 length += 4 length += 1 length += len(self.PlayerName) length += 1 length += 1 length += 1 length += 1 length += 2 length += 4 return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.PlayerID) data = CommFunc.WriteBYTE(data, self.PlayerNameLen) data = CommFunc.WriteString(data, self.PlayerNameLen, self.PlayerName) data = CommFunc.WriteBYTE(data, self.Faction) data = CommFunc.WriteBYTE(data, self.CrystalCount) data = CommFunc.WriteBYTE(data, self.RandBuffCount) data = CommFunc.WriteBYTE(data, self.KillPlayerCount) data = CommFunc.WriteWORD(data, self.FightTime) data = CommFunc.WriteDWORD(data, self.Point) return data def OutputString(self): DumpString = ''' PlayerID:%d, PlayerNameLen:%d, PlayerName:%s, Faction:%d, CrystalCount:%d, RandBuffCount:%d, KillPlayerCount:%d, FightTime:%d, Point:%d '''\ %( self.PlayerID, self.PlayerNameLen, self.PlayerName, self.Faction, self.CrystalCount, self.RandBuffCount, self.KillPlayerCount, self.FightTime, self.Point ) return DumpString class tagMCFamilyWarBillboard(Structure): Head = tagHead() GroupID = 0 #(BYTE GroupID)// ÁªÈü×é¼¶±ð, 5-S,4-A,3-B,2-C,1-D WinFaction = 0 #(BYTE WinFaction)// »ñʤÏÉÃËÕóÓª£¬Îª0ʱ´ú±í·Ç½áËãÐÅÏ¢ TotalFightTime = 0 #(WORD TotalFightTime)// ×ÜÕ½¶·Ê±³¤£¬µ¥Î»Ã룬½áËãÐÅϢʱ²ÅÓÐÖµ BillboardCount = 0 #(BYTE BillboardCount) FBBillboardPlayer = list() #(vector FBBillboardPlayer)//size = BillboardCount data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB2 self.Head.SubCmd = 0x10 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.GroupID,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.WinFaction,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.TotalFightTime,_pos = CommFunc.ReadWORD(_lpData, _pos) self.BillboardCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.BillboardCount): temFBBillboardPlayer = tagMCFamilyWarPlayer() _pos = temFBBillboardPlayer.ReadData(_lpData, _pos) self.FBBillboardPlayer.append(temFBBillboardPlayer) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB2 self.Head.SubCmd = 0x10 self.GroupID = 0 self.WinFaction = 0 self.TotalFightTime = 0 self.BillboardCount = 0 self.FBBillboardPlayer = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 1 length += 2 length += 1 for i in range(self.BillboardCount): length += self.FBBillboardPlayer[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.GroupID) data = CommFunc.WriteBYTE(data, self.WinFaction) data = CommFunc.WriteWORD(data, self.TotalFightTime) data = CommFunc.WriteBYTE(data, self.BillboardCount) for i in range(self.BillboardCount): data = CommFunc.WriteString(data, self.FBBillboardPlayer[i].GetLength(), self.FBBillboardPlayer[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, GroupID:%d, WinFaction:%d, TotalFightTime:%d, BillboardCount:%d, FBBillboardPlayer:%s '''\ %( self.Head.OutputString(), self.GroupID, self.WinFaction, self.TotalFightTime, self.BillboardCount, "..." ) return DumpString m_NAtagMCFamilyWarBillboard=tagMCFamilyWarBillboard() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilyWarBillboard.Head.Cmd,m_NAtagMCFamilyWarBillboard.Head.SubCmd))] = m_NAtagMCFamilyWarBillboard #------------------------------------------------------ # B2 09 ¸±±¾´ÎÊý»Ö¸´Ê£Óàʱ¼ä #tagMCFBCntRegainRemainTime class tagMCFBCntRegain(Structure): _pack_ = 1 _fields_ = [ ("DataMapID", c_int), # µØÍ¼ID ("RemainTime", c_int), # Ê£Óàʱ¼äÃë ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.DataMapID = 0 self.RemainTime = 0 return def GetLength(self): return sizeof(tagMCFBCntRegain) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// B2 09 ¸±±¾´ÎÊý»Ö¸´Ê£Óàʱ¼ä //tagMCFBCntRegainRemainTime: DataMapID:%d, RemainTime:%d '''\ %( self.DataMapID, self.RemainTime ) return DumpString class tagMCFBCntRegainRemainTime(Structure): Head = tagHead() Cnt = 0 #(BYTE Cnt)// ÐÅÏ¢Êý InfoList = list() #(vector InfoList)// ÐÅÏ¢Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB2 self.Head.SubCmd = 0x09 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Cnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Cnt): temInfoList = tagMCFBCntRegain() _pos = temInfoList.ReadData(_lpData, _pos) self.InfoList.append(temInfoList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB2 self.Head.SubCmd = 0x09 self.Cnt = 0 self.InfoList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.Cnt): length += self.InfoList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.Cnt) for i in range(self.Cnt): data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Cnt:%d, InfoList:%s '''\ %( self.Head.OutputString(), self.Cnt, "..." ) return DumpString m_NAtagMCFBCntRegainRemainTime=tagMCFBCntRegainRemainTime() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFBCntRegainRemainTime.Head.Cmd,m_NAtagMCFBCntRegainRemainTime.Head.SubCmd))] = m_NAtagMCFBCntRegainRemainTime #------------------------------------------------------ # B2 01 ֪ͨ·âħ̳˫±¶»÷ɱ״̬ #tagMCFMTDoubleState class tagMCFMTDoubleState(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("IsDouble", c_ubyte), #ÊÇ·ñË«±¶ ] def __init__(self): self.Clear() self.Cmd = 0xB2 self.SubCmd = 0x01 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xB2 self.SubCmd = 0x01 self.IsDouble = 0 return def GetLength(self): return sizeof(tagMCFMTDoubleState) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// B2 01 ֪ͨ·âħ̳˫±¶»÷ɱ״̬ //tagMCFMTDoubleState: Cmd:%s, SubCmd:%s, IsDouble:%d '''\ %( self.Cmd, self.SubCmd, self.IsDouble ) return DumpString m_NAtagMCFMTDoubleState=tagMCFMTDoubleState() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFMTDoubleState.Cmd,m_NAtagMCFMTDoubleState.SubCmd))] = m_NAtagMCFMTDoubleState #------------------------------------------------------ # B2 03 ¹«¹²¸±±¾É¨µ´ÐÅÏ¢ #tagMCPubFBSweepData class tagMCPubFBSweep(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PubNum", c_ubyte), # ¹«¹²×é±àºÅ ("FBMapID", c_int), # µ±Ç°É¨µ´µÄ¸±±¾µØÍ¼ID ("LineID", c_ushort), # lineID ("SweepTime", c_int), # ¿ªÊ¼É¨µ´µÄʱ¼ä ("SweepCnt", c_ubyte), # ɨµ´´ÎÊý ] def __init__(self): self.Clear() self.Cmd = 0xB2 self.SubCmd = 0x03 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xB2 self.SubCmd = 0x03 self.PubNum = 0 self.FBMapID = 0 self.LineID = 0 self.SweepTime = 0 self.SweepCnt = 0 return def GetLength(self): return sizeof(tagMCPubFBSweep) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// B2 03 ¹«¹²¸±±¾É¨µ´ÐÅÏ¢ //tagMCPubFBSweepData: Cmd:%s, SubCmd:%s, PubNum:%d, FBMapID:%d, LineID:%d, SweepTime:%d, SweepCnt:%d '''\ %( self.Cmd, self.SubCmd, self.PubNum, self.FBMapID, self.LineID, self.SweepTime, self.SweepCnt ) return DumpString class tagMCPubFBSweepData(Structure): Head = tagHead() Cnt = 0 #(BYTE Cnt)// ÐÅÏ¢Êý SweepDatList = list() #(vector SweepDatList)// ÐÅÏ¢Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB2 self.Head.SubCmd = 0x03 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Cnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Cnt): temSweepDatList = tagMCPubFBSweep() _pos = temSweepDatList.ReadData(_lpData, _pos) self.SweepDatList.append(temSweepDatList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB2 self.Head.SubCmd = 0x03 self.Cnt = 0 self.SweepDatList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.Cnt): length += self.SweepDatList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.Cnt) for i in range(self.Cnt): data = CommFunc.WriteString(data, self.SweepDatList[i].GetLength(), self.SweepDatList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Cnt:%d, SweepDatList:%s '''\ %( self.Head.OutputString(), self.Cnt, "..." ) return DumpString m_NAtagMCPubFBSweepData=tagMCPubFBSweepData() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPubFBSweepData.Head.Cmd,m_NAtagMCPubFBSweepData.Head.SubCmd))] = m_NAtagMCPubFBSweepData #------------------------------------------------------ #B2 02 ÍÆËÍÌáÐÑÉèÖÃ֪ͨ #tagMCPushNotificationsSetting class tagMCPushNotificationsSetting(Structure): Head = tagHead() OnoffBit = 0 #(DWORD OnoffBit)// °´Î»Ô¼¶¨¿ª¹Ø TimeLen = 0 #(BYTE TimeLen) TimeStr = "" #(String TimeStr)// ʱ¼ä×Ö·û´® 01:02-05:00 data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB2 self.Head.SubCmd = 0x02 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.OnoffBit,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.TimeLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.TimeStr,_pos = CommFunc.ReadString(_lpData, _pos,self.TimeLen) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB2 self.Head.SubCmd = 0x02 self.OnoffBit = 0 self.TimeLen = 0 self.TimeStr = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += len(self.TimeStr) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.OnoffBit) data = CommFunc.WriteBYTE(data, self.TimeLen) data = CommFunc.WriteString(data, self.TimeLen, self.TimeStr) return data def OutputString(self): DumpString = ''' Head:%s, OnoffBit:%d, TimeLen:%d, TimeStr:%s '''\ %( self.Head.OutputString(), self.OnoffBit, self.TimeLen, self.TimeStr ) return DumpString m_NAtagMCPushNotificationsSetting=tagMCPushNotificationsSetting() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPushNotificationsSetting.Head.Cmd,m_NAtagMCPushNotificationsSetting.Head.SubCmd))] = m_NAtagMCPushNotificationsSetting #------------------------------------------------------ # B4 11 ÐÂÔö¶ñÒâ¹¥»÷Íæ¼Ò #tagMCAddMaliciousAtkPlayer class tagMCAddMaliciousAtkPlayer(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("AtkPlayerID", c_int), #¶ñÒâ¹¥»÷µÄÍæ¼ÒID ] def __init__(self): self.Clear() self.Cmd = 0xB4 self.SubCmd = 0x11 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xB4 self.SubCmd = 0x11 self.AtkPlayerID = 0 return def GetLength(self): return sizeof(tagMCAddMaliciousAtkPlayer) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// B4 11 ÐÂÔö¶ñÒâ¹¥»÷Íæ¼Ò //tagMCAddMaliciousAtkPlayer: Cmd:%s, SubCmd:%s, AtkPlayerID:%d '''\ %( self.Cmd, self.SubCmd, self.AtkPlayerID ) return DumpString m_NAtagMCAddMaliciousAtkPlayer=tagMCAddMaliciousAtkPlayer() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCAddMaliciousAtkPlayer.Cmd,m_NAtagMCAddMaliciousAtkPlayer.SubCmd))] = m_NAtagMCAddMaliciousAtkPlayer #------------------------------------------------------ # B4 12 ɾ³ý¶ñÒâ¹¥»÷Íæ¼Ò #tagMCDelMaliciousAtkPlayer class tagMCDelMaliciousAtkPlayer(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("AtkPlayerID", c_int), #¶ñÒâ¹¥»÷µÄÍæ¼ÒID ] def __init__(self): self.Clear() self.Cmd = 0xB4 self.SubCmd = 0x12 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xB4 self.SubCmd = 0x12 self.AtkPlayerID = 0 return def GetLength(self): return sizeof(tagMCDelMaliciousAtkPlayer) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// B4 12 ɾ³ý¶ñÒâ¹¥»÷Íæ¼Ò //tagMCDelMaliciousAtkPlayer: Cmd:%s, SubCmd:%s, AtkPlayerID:%d '''\ %( self.Cmd, self.SubCmd, self.AtkPlayerID ) return DumpString m_NAtagMCDelMaliciousAtkPlayer=tagMCDelMaliciousAtkPlayer() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCDelMaliciousAtkPlayer.Cmd,m_NAtagMCDelMaliciousAtkPlayer.SubCmd))] = m_NAtagMCDelMaliciousAtkPlayer #------------------------------------------------------ # B4 04 NPC¼¼ÄÜÔ¤¾¯ #tagMCNPCSkillWarn class tagMCNPCSkillWarnPos(Structure): _pack_ = 1 _fields_ = [ ("PosX", c_ushort), ("PosY", c_ushort), ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.PosX = 0 self.PosY = 0 return def GetLength(self): return sizeof(tagMCNPCSkillWarnPos) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// B4 04 NPC¼¼ÄÜÔ¤¾¯ //tagMCNPCSkillWarn: PosX:%d, PosY:%d '''\ %( self.PosX, self.PosY ) return DumpString class tagMCNPCSkillWarn(Structure): Head = tagHead() ObjID = 0 #(DWORD ObjID) NPCID = 0 #(DWORD NPCID) SkillID = 0 #(DWORD SkillID) WarnTime = 0 #(WORD WarnTime)// Ô¤¾¯×Üʱ¼ä RemainTime = 0 #(WORD RemainTime)// Ê£Óàʱ¼ä WarnPosCnt = 0 #(BYTE WarnPosCnt) WarnPosList = list() #(vector WarnPosList)// Ô¤¾¯µã×ø±êÁбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB4 self.Head.SubCmd = 0x04 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.ObjID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.NPCID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.SkillID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.WarnTime,_pos = CommFunc.ReadWORD(_lpData, _pos) self.RemainTime,_pos = CommFunc.ReadWORD(_lpData, _pos) self.WarnPosCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.WarnPosCnt): temWarnPosList = tagMCNPCSkillWarnPos() _pos = temWarnPosList.ReadData(_lpData, _pos) self.WarnPosList.append(temWarnPosList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB4 self.Head.SubCmd = 0x04 self.ObjID = 0 self.NPCID = 0 self.SkillID = 0 self.WarnTime = 0 self.RemainTime = 0 self.WarnPosCnt = 0 self.WarnPosList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 4 length += 4 length += 2 length += 2 length += 1 for i in range(self.WarnPosCnt): length += self.WarnPosList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.ObjID) data = CommFunc.WriteDWORD(data, self.NPCID) data = CommFunc.WriteDWORD(data, self.SkillID) data = CommFunc.WriteWORD(data, self.WarnTime) data = CommFunc.WriteWORD(data, self.RemainTime) data = CommFunc.WriteBYTE(data, self.WarnPosCnt) for i in range(self.WarnPosCnt): data = CommFunc.WriteString(data, self.WarnPosList[i].GetLength(), self.WarnPosList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, ObjID:%d, NPCID:%d, SkillID:%d, WarnTime:%d, RemainTime:%d, WarnPosCnt:%d, WarnPosList:%s '''\ %( self.Head.OutputString(), self.ObjID, self.NPCID, self.SkillID, self.WarnTime, self.RemainTime, self.WarnPosCnt, "..." ) return DumpString m_NAtagMCNPCSkillWarn=tagMCNPCSkillWarn() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCNPCSkillWarn.Head.Cmd,m_NAtagMCNPCSkillWarn.Head.SubCmd))] = m_NAtagMCNPCSkillWarn #------------------------------------------------------ #B4 05 »ñµÃ¾­Ñé #tagMCAddExp class tagMCAddExp(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ExpPoint", c_int), # µ¥Î»ÒÚµã ("Exp", c_int), # µ¥Î»µã ("Source", c_ubyte), #¾­Ñé»ñÈ¡À´Ô´ ] def __init__(self): self.Clear() self.Cmd = 0xB4 self.SubCmd = 0x05 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xB4 self.SubCmd = 0x05 self.ExpPoint = 0 self.Exp = 0 self.Source = 0 return def GetLength(self): return sizeof(tagMCAddExp) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//B4 05 »ñµÃ¾­Ñé //tagMCAddExp: Cmd:%s, SubCmd:%s, ExpPoint:%d, Exp:%d, Source:%d '''\ %( self.Cmd, self.SubCmd, self.ExpPoint, self.Exp, self.Source ) return DumpString m_NAtagMCAddExp=tagMCAddExp() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCAddExp.Cmd,m_NAtagMCAddExp.SubCmd))] = m_NAtagMCAddExp #------------------------------------------------------ #B4 03 ¼¼Äܹ¥»÷ʧ°Ü #tagMCAttackFail class tagMCAttackFail(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("SkillID", c_int), #¼¼ÄÜID ("Reason", c_ubyte), #Ô­Òò ĬÈÏ0 ] def __init__(self): self.Clear() self.Cmd = 0xB4 self.SubCmd = 0x03 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xB4 self.SubCmd = 0x03 self.SkillID = 0 self.Reason = 0 return def GetLength(self): return sizeof(tagMCAttackFail) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//B4 03 ¼¼Äܹ¥»÷ʧ°Ü //tagMCAttackFail: Cmd:%s, SubCmd:%s, SkillID:%d, Reason:%d '''\ %( self.Cmd, self.SubCmd, self.SkillID, self.Reason ) return DumpString m_NAtagMCAttackFail=tagMCAttackFail() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCAttackFail.Cmd,m_NAtagMCAttackFail.SubCmd))] = m_NAtagMCAttackFail #------------------------------------------------------ #B4 07 ±»¶¯¼¼ÄÜҳѡÔñ£¨¹¦·¨£© # tagMCPassivePage class tagMCPassivePage(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Page", c_ubyte), # ·ÖÒ³ ] def __init__(self): self.Clear() self.Cmd = 0xB4 self.SubCmd = 0x07 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xB4 self.SubCmd = 0x07 self.Page = 0 return def GetLength(self): return sizeof(tagMCPassivePage) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//B4 07 ±»¶¯¼¼ÄÜҳѡÔñ£¨¹¦·¨£© // tagMCPassivePage: Cmd:%s, SubCmd:%s, Page:%d '''\ %( self.Cmd, self.SubCmd, self.Page ) return DumpString m_NAtagMCPassivePage=tagMCPassivePage() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPassivePage.Cmd,m_NAtagMCPassivePage.SubCmd))] = m_NAtagMCPassivePage #------------------------------------------------------ #B4 06 ±»¶¯¼¼ÄÜÉèÖÃ֪ͨ(¹¦·¨) # tagMCPassiveSet class tagMCPassiveSkills(Structure): Count = 0 #(BYTE Count) SkillIDList = list() #(vector SkillIDList) data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Count): value,_pos=CommFunc.ReadDWORD(_lpData,_pos) self.SkillIDList.append(value) return _pos def Clear(self): self.Count = 0 self.SkillIDList = list() return def GetLength(self): length = 0 length += 1 length += 4 * self.Count return length def GetBuffer(self): data = '' data = CommFunc.WriteBYTE(data, self.Count) for i in range(self.Count): data = CommFunc.WriteDWORD(data, self.SkillIDList[i]) return data def OutputString(self): DumpString = ''' Count:%d, SkillIDList:%s '''\ %( self.Count, "..." ) return DumpString class tagMCPassiveSet(Structure): Head = tagHead() PageCnt = 0 #(BYTE PageCnt)// ·ÖÒ³ PassiveSkills = list() #(vector PassiveSkills)// ±»¶¯¼¼ÄÜÁбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB4 self.Head.SubCmd = 0x06 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.PageCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.PageCnt): temPassiveSkills = tagMCPassiveSkills() _pos = temPassiveSkills.ReadData(_lpData, _pos) self.PassiveSkills.append(temPassiveSkills) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB4 self.Head.SubCmd = 0x06 self.PageCnt = 0 self.PassiveSkills = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.PageCnt): length += self.PassiveSkills[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.PageCnt) for i in range(self.PageCnt): data = CommFunc.WriteString(data, self.PassiveSkills[i].GetLength(), self.PassiveSkills[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, PageCnt:%d, PassiveSkills:%s '''\ %( self.Head.OutputString(), self.PageCnt, "..." ) return DumpString m_NAtagMCPassiveSet=tagMCPassiveSet() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPassiveSet.Head.Cmd,m_NAtagMCPassiveSet.Head.SubCmd))] = m_NAtagMCPassiveSet #------------------------------------------------------ #B4 08 ±»¶¯¼¼Äܹ¦·¨ÉèÖóɹ¦»Ø¸´ # tagMCPassiveSetAnswer class tagMCPassiveSetAnswer(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Page", c_ubyte), # ·ÖÒ³ ("Index", c_ubyte), # ÐòºÅ ("SkillID", c_int), # ¼¼ÄÜID ] def __init__(self): self.Clear() self.Cmd = 0xB4 self.SubCmd = 0x08 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xB4 self.SubCmd = 0x08 self.Page = 0 self.Index = 0 self.SkillID = 0 return def GetLength(self): return sizeof(tagMCPassiveSetAnswer) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//B4 08 ±»¶¯¼¼Äܹ¦·¨ÉèÖóɹ¦»Ø¸´ // tagMCPassiveSetAnswer: Cmd:%s, SubCmd:%s, Page:%d, Index:%d, SkillID:%d '''\ %( self.Cmd, self.SubCmd, self.Page, self.Index, self.SkillID ) return DumpString m_NAtagMCPassiveSetAnswer=tagMCPassiveSetAnswer() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPassiveSetAnswer.Cmd,m_NAtagMCPassiveSetAnswer.SubCmd))] = m_NAtagMCPassiveSetAnswer #------------------------------------------------------ #B4 0A Íæ¼ÒÒÆ¶¯ #tagMCPYPlayerMove class tagMCPYPlayerMove(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Dir", c_ushort), # ³¯Ïò ("ClientPosX", c_ushort), # ¿Í»§¶Ë×ø±êX ºÁÃ× ("ClientPosY", c_ushort), # ¿Í»§¶Ë×ø±êY ("SeverPosX", c_ushort), # ·þÎñ¶Ë×ø±êX ¸ñ×Ó ("SeverPosY", c_ushort), # ·þÎñ¶Ë×ø±êY ("ObjID", c_int), ("ObjType", c_ubyte), ("Speed", c_ushort), ("MoveType", c_ubyte), # 0 Í£Ö¹ 1ÒÆ¶¯ ] def __init__(self): self.Clear() self.Cmd = 0xB4 self.SubCmd = 0x0A return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xB4 self.SubCmd = 0x0A self.Dir = 0 self.ClientPosX = 0 self.ClientPosY = 0 self.SeverPosX = 0 self.SeverPosY = 0 self.ObjID = 0 self.ObjType = 0 self.Speed = 0 self.MoveType = 0 return def GetLength(self): return sizeof(tagMCPYPlayerMove) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//B4 0A Íæ¼ÒÒÆ¶¯ //tagMCPYPlayerMove: Cmd:%s, SubCmd:%s, Dir:%d, ClientPosX:%d, ClientPosY:%d, SeverPosX:%d, SeverPosY:%d, ObjID:%d, ObjType:%d, Speed:%d, MoveType:%d '''\ %( self.Cmd, self.SubCmd, self.Dir, self.ClientPosX, self.ClientPosY, self.SeverPosX, self.SeverPosY, self.ObjID, self.ObjType, self.Speed, self.MoveType ) return DumpString m_NAtagMCPYPlayerMove=tagMCPYPlayerMove() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPYPlayerMove.Cmd,m_NAtagMCPYPlayerMove.SubCmd))] = m_NAtagMCPYPlayerMove #------------------------------------------------------ #B4 02 սǰ³å·æ¹ã²¥ #tagMCRush class tagMCRush(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ID", c_int), #Íæ¼ÒID ("PosX", c_ushort), # Ä¿±êX ("PosY", c_ushort), # Ä¿±êY ] def __init__(self): self.Clear() self.Cmd = 0xB4 self.SubCmd = 0x02 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xB4 self.SubCmd = 0x02 self.ID = 0 self.PosX = 0 self.PosY = 0 return def GetLength(self): return sizeof(tagMCRush) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//B4 02 սǰ³å·æ¹ã²¥ //tagMCRush: Cmd:%s, SubCmd:%s, ID:%d, PosX:%d, PosY:%d '''\ %( self.Cmd, self.SubCmd, self.ID, self.PosX, self.PosY ) return DumpString m_NAtagMCRush=tagMCRush() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCRush.Cmd,m_NAtagMCRush.SubCmd))] = m_NAtagMCRush #------------------------------------------------------ #B4 01 ¼¼ÄÜÉËѪ֪ͨ£¨·ÇÖ±½ÓÊͷż¼ÄÜ£© #tagMCSkillHurtList class tagSkillPosHurtObj(Structure): _pack_ = 1 _fields_ = [ ("ObjType", c_ubyte), ("ObjID", c_int), ("AttackType", c_ubyte), #±¬»÷, miss ("HurtHP", c_int), ("CurHP", c_int), ("CurHPEx", c_int), ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.ObjType = 0 self.ObjID = 0 self.AttackType = 0 self.HurtHP = 0 self.CurHP = 0 self.CurHPEx = 0 return def GetLength(self): return sizeof(tagSkillPosHurtObj) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//B4 01 ¼¼ÄÜÉËѪ֪ͨ£¨·ÇÖ±½ÓÊͷż¼ÄÜ£© //tagMCSkillHurtList: ObjType:%d, ObjID:%d, AttackType:%d, HurtHP:%d, CurHP:%d, CurHPEx:%d '''\ %( self.ObjType, self.ObjID, self.AttackType, self.HurtHP, self.CurHP, self.CurHPEx ) return DumpString class tagMCSkillHurtList(Structure): Head = tagHead() ObjID = 0 #(DWORD ObjID) ObjType = 0 #(BYTE ObjType) SkillID = 0 #(WORD SkillID) PosX = 0 #(WORD PosX) PosY = 0 #(WORD PosY) HurtCount = 0 #(WORD HurtCount)//É˺¦ÊýÄ¿ HurtList = list() #(vector HurtList)//size = HurtCount data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB4 self.Head.SubCmd = 0x01 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.ObjID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ObjType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.SkillID,_pos = CommFunc.ReadWORD(_lpData, _pos) self.PosX,_pos = CommFunc.ReadWORD(_lpData, _pos) self.PosY,_pos = CommFunc.ReadWORD(_lpData, _pos) self.HurtCount,_pos = CommFunc.ReadWORD(_lpData, _pos) for i in range(self.HurtCount): temHurtList = tagSkillPosHurtObj() _pos = temHurtList.ReadData(_lpData, _pos) self.HurtList.append(temHurtList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB4 self.Head.SubCmd = 0x01 self.ObjID = 0 self.ObjType = 0 self.SkillID = 0 self.PosX = 0 self.PosY = 0 self.HurtCount = 0 self.HurtList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += 2 length += 2 length += 2 length += 2 for i in range(self.HurtCount): length += self.HurtList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.ObjID) data = CommFunc.WriteBYTE(data, self.ObjType) data = CommFunc.WriteWORD(data, self.SkillID) data = CommFunc.WriteWORD(data, self.PosX) data = CommFunc.WriteWORD(data, self.PosY) data = CommFunc.WriteWORD(data, self.HurtCount) for i in range(self.HurtCount): data = CommFunc.WriteString(data, self.HurtList[i].GetLength(), self.HurtList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, ObjID:%d, ObjType:%d, SkillID:%d, PosX:%d, PosY:%d, HurtCount:%d, HurtList:%s '''\ %( self.Head.OutputString(), self.ObjID, self.ObjType, self.SkillID, self.PosX, self.PosY, self.HurtCount, "..." ) return DumpString m_NAtagMCSkillHurtList=tagMCSkillHurtList() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSkillHurtList.Head.Cmd,m_NAtagMCSkillHurtList.Head.SubCmd))] = m_NAtagMCSkillHurtList #------------------------------------------------------ #B4 10 ÍÑ»ú¹Ò±»É±ºóÀëÏßÕÒ»Ø # tagMCTJGDeadPay class tagMCTJGDeadPay(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Times", c_int), # ¿ÉÕÒ»ØÊ±¼ä ("DeadTime", c_int), # ËÀÍöʱ¼ä ("Exp", c_int), # ¾­Ñé ("Exp1", c_int), # ¾­Ñé ÒÚ ] def __init__(self): self.Clear() self.Cmd = 0xB4 self.SubCmd = 0x10 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xB4 self.SubCmd = 0x10 self.Times = 0 self.DeadTime = 0 self.Exp = 0 self.Exp1 = 0 return def GetLength(self): return sizeof(tagMCTJGDeadPay) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//B4 10 ÍÑ»ú¹Ò±»É±ºóÀëÏßÕÒ»Ø // tagMCTJGDeadPay: Cmd:%s, SubCmd:%s, Times:%d, DeadTime:%d, Exp:%d, Exp1:%d '''\ %( self.Cmd, self.SubCmd, self.Times, self.DeadTime, self.Exp, self.Exp1 ) return DumpString m_NAtagMCTJGDeadPay=tagMCTJGDeadPay() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCTJGDeadPay.Cmd,m_NAtagMCTJGDeadPay.SubCmd))] = m_NAtagMCTJGDeadPay #------------------------------------------------------ #B4 09 ֪ͨÍÑ»ú¹Ò½á¹û #tagMCTJGInfo class tagMCTJGItems(Structure): _pack_ = 1 _fields_ = [ ("ItemID", c_int), ("Count", c_ushort), ] def __init__(self): self.Clear() return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.ItemID = 0 self.Count = 0 return def GetLength(self): return sizeof(tagMCTJGItems) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//B4 09 ֪ͨÍÑ»ú¹Ò½á¹û //tagMCTJGInfo: ItemID:%d, Count:%d '''\ %( self.ItemID, self.Count ) return DumpString class tagMCTJGInfo(Structure): Head = tagHead() Exp1 = 0 #(DWORD Exp1)// ¾­Ñé Exp2 = 0 #(DWORD Exp2)// ³¬ÒÚ¾­Ñé Times = 0 #(DWORD Times)// ʹÓÃʱ¼äÃë PurpleEquip = 0 #(WORD PurpleEquip)// ²ú³ö×Ï×°ÊýÁ¿ OrangeEquip = 0 #(WORD OrangeEquip)// ²ú³ö³È×°ÊýÁ¿ EatPurpleEquip = 0 #(WORD EatPurpleEquip)// ÍÌÊÉ×Ï×°ÊýÁ¿ BeforeLV = 0 #(WORD BeforeLV)//ÍÑ»úǰ¼Ç¼µÄµÈ¼¶ GiveCnt = 0 #(WORD GiveCnt)//»ñµÃÁ¶µ¤²ÄÁÏÊýÁ¿ Cnt = 0 #(BYTE Cnt)//ÎïÆ·Àà±ðÊýÁ¿ Items = list() #(vector Items) data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB4 self.Head.SubCmd = 0x09 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Exp1,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Exp2,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Times,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.PurpleEquip,_pos = CommFunc.ReadWORD(_lpData, _pos) self.OrangeEquip,_pos = CommFunc.ReadWORD(_lpData, _pos) self.EatPurpleEquip,_pos = CommFunc.ReadWORD(_lpData, _pos) self.BeforeLV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.GiveCnt,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Cnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Cnt): temItems = tagMCTJGItems() _pos = temItems.ReadData(_lpData, _pos) self.Items.append(temItems) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB4 self.Head.SubCmd = 0x09 self.Exp1 = 0 self.Exp2 = 0 self.Times = 0 self.PurpleEquip = 0 self.OrangeEquip = 0 self.EatPurpleEquip = 0 self.BeforeLV = 0 self.GiveCnt = 0 self.Cnt = 0 self.Items = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 4 length += 4 length += 2 length += 2 length += 2 length += 2 length += 2 length += 1 for i in range(self.Cnt): length += self.Items[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.Exp1) data = CommFunc.WriteDWORD(data, self.Exp2) data = CommFunc.WriteDWORD(data, self.Times) data = CommFunc.WriteWORD(data, self.PurpleEquip) data = CommFunc.WriteWORD(data, self.OrangeEquip) data = CommFunc.WriteWORD(data, self.EatPurpleEquip) data = CommFunc.WriteWORD(data, self.BeforeLV) data = CommFunc.WriteWORD(data, self.GiveCnt) data = CommFunc.WriteBYTE(data, self.Cnt) for i in range(self.Cnt): data = CommFunc.WriteString(data, self.Items[i].GetLength(), self.Items[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Exp1:%d, Exp2:%d, Times:%d, PurpleEquip:%d, OrangeEquip:%d, EatPurpleEquip:%d, BeforeLV:%d, GiveCnt:%d, Cnt:%d, Items:%s '''\ %( self.Head.OutputString(), self.Exp1, self.Exp2, self.Times, self.PurpleEquip, self.OrangeEquip, self.EatPurpleEquip, self.BeforeLV, self.GiveCnt, self.Cnt, "..." ) return DumpString m_NAtagMCTJGInfo=tagMCTJGInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCTJGInfo.Head.Cmd,m_NAtagMCTJGInfo.Head.SubCmd))] = m_NAtagMCTJGInfo #------------------------------------------------------ #D2 01 ¿ç·þÈü±¨Ãû(ÉÏ´«Êý¾Ý)״̬ #tagMergeWarRegisterState class tagMergeWarRegisterState(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("RegisterState", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0xD2 self.SubCmd = 0x01 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xD2 self.SubCmd = 0x01 self.RegisterState = 0 return def GetLength(self): return sizeof(tagMergeWarRegisterState) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//D2 01 ¿ç·þÈü±¨Ãû(ÉÏ´«Êý¾Ý)״̬ //tagMergeWarRegisterState: Cmd:%s, SubCmd:%s, RegisterState:%d '''\ %( self.Cmd, self.SubCmd, self.RegisterState ) return DumpString m_NAtagMergeWarRegisterState=tagMergeWarRegisterState() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMergeWarRegisterState.Cmd,m_NAtagMergeWarRegisterState.SubCmd))] = m_NAtagMergeWarRegisterState #------------------------------------------------------ # D2 09 ¿ç·þboss½±ÀøÁ콱״̬ #tagMCMergeBossAwardRecord class tagMCMergeBossAwardRecord(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("FirstJoinAwardState", c_ubyte), # Ê״βÎÓë½±Àø×´Ì¬£»0-²»¿ÉÁ죬1-¿ÉÁ죬2-ÒÑÁì ] def __init__(self): self.Clear() self.Cmd = 0xD2 self.SubCmd = 0x09 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xD2 self.SubCmd = 0x09 self.FirstJoinAwardState = 0 return def GetLength(self): return sizeof(tagMCMergeBossAwardRecord) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// D2 09 ¿ç·þboss½±ÀøÁ콱״̬ //tagMCMergeBossAwardRecord: Cmd:%s, SubCmd:%s, FirstJoinAwardState:%d '''\ %( self.Cmd, self.SubCmd, self.FirstJoinAwardState ) return DumpString m_NAtagMCMergeBossAwardRecord=tagMCMergeBossAwardRecord() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCMergeBossAwardRecord.Cmd,m_NAtagMCMergeBossAwardRecord.SubCmd))] = m_NAtagMCMergeBossAwardRecord #------------------------------------------------------ # D2 07 ¿ç·þÍõÕßÕù°Ô½±ÀøÏà¹Ø #tagMCMergeKingAwardInfo class tagMCMergeKingAwardInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ServerHonour", c_ubyte), # È«·þÈÙÒ«Öµ, 1 2 4 8µÈ ("ServerHonourAward", c_ubyte), # È«·þÈÙÒ«½±ÀøÊÇ·ñÒÑÁìÈ¡, 0·ñ1ÊÇ ("RankAward", c_ubyte), # ½ú¼¶ÅÅÃû½±ÀøÊÇ·ñÒÑÁìÈ¡, 0·ñ1ÊÇ ("SupportAward", c_int), # ¾º²Â»ý·Ö½±ÀøÁìÈ¡¼Ç¼£¬°´Î»±íʾ ("WorshipState", c_ubyte), # ½ñÈÕÊÇ·ñÒÑĤ°Ý, 0·ñ1ÊÇ ] def __init__(self): self.Clear() self.Cmd = 0xD2 self.SubCmd = 0x07 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xD2 self.SubCmd = 0x07 self.ServerHonour = 0 self.ServerHonourAward = 0 self.RankAward = 0 self.SupportAward = 0 self.WorshipState = 0 return def GetLength(self): return sizeof(tagMCMergeKingAwardInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// D2 07 ¿ç·þÍõÕßÕù°Ô½±ÀøÏà¹Ø //tagMCMergeKingAwardInfo: Cmd:%s, SubCmd:%s, ServerHonour:%d, ServerHonourAward:%d, RankAward:%d, SupportAward:%d, WorshipState:%d '''\ %( self.Cmd, self.SubCmd, self.ServerHonour, self.ServerHonourAward, self.RankAward, self.SupportAward, self.WorshipState ) return DumpString m_NAtagMCMergeKingAwardInfo=tagMCMergeKingAwardInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCMergeKingAwardInfo.Cmd,m_NAtagMCMergeKingAwardInfo.SubCmd))] = m_NAtagMCMergeKingAwardInfo #------------------------------------------------------ # D2 08 ¿ç·þPK½±ÀøÁì½±¼Ç¼ #tagMCMergePKAwardRecord class tagMCMergePKAwardRecord(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("FirstWinAwardRecord", c_int), # Ê×´ÎʤÀû½±Àø¼Ç¼, °´Î»´æ´¢ÊÇ·ñÒÑÁì ] def __init__(self): self.Clear() self.Cmd = 0xD2 self.SubCmd = 0x08 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xD2 self.SubCmd = 0x08 self.FirstWinAwardRecord = 0 return def GetLength(self): return sizeof(tagMCMergePKAwardRecord) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// D2 08 ¿ç·þPK½±ÀøÁì½±¼Ç¼ //tagMCMergePKAwardRecord: Cmd:%s, SubCmd:%s, FirstWinAwardRecord:%d '''\ %( self.Cmd, self.SubCmd, self.FirstWinAwardRecord ) return DumpString m_NAtagMCMergePKAwardRecord=tagMCMergePKAwardRecord() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCMergePKAwardRecord.Cmd,m_NAtagMCMergePKAwardRecord.SubCmd))] = m_NAtagMCMergePKAwardRecord #------------------------------------------------------ # D2 06 ¿ç·þPK´ÎÊý֪ͨ #tagMCMergePKCnt class tagMCMergePKCnt(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("DayPKCnt", c_ushort), # µ±ÈÕÒÑPK´ÎÊý ("DayBuyCnt", c_ushort), # µ±ÈÕÒѹºÂò´ÎÊý ("UnUsedBuyCnt", c_ushort), # δʹÓõĹºÂò´ÎÊý ] def __init__(self): self.Clear() self.Cmd = 0xD2 self.SubCmd = 0x06 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0xD2 self.SubCmd = 0x06 self.DayPKCnt = 0 self.DayBuyCnt = 0 self.UnUsedBuyCnt = 0 return def GetLength(self): return sizeof(tagMCMergePKCnt) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// D2 06 ¿ç·þPK´ÎÊý֪ͨ //tagMCMergePKCnt: Cmd:%s, SubCmd:%s, DayPKCnt:%d, DayBuyCnt:%d, UnUsedBuyCnt:%d '''\ %( self.Cmd, self.SubCmd, self.DayPKCnt, self.DayBuyCnt, self.UnUsedBuyCnt ) return DumpString m_NAtagMCMergePKCnt=tagMCMergePKCnt() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCMergePKCnt.Cmd,m_NAtagMCMergePKCnt.SubCmd))] = m_NAtagMCMergePKCnt