#!/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): FBLineID = 0 #(BYTE FBLineID)// ¹¦ÄÜÏß·ID PlayerCnt = 0 #(WORD PlayerCnt)// Ïß·µ±Ç°Íæ¼ÒÊý ExtraStrLen = 0 #(WORD ExtraStrLen)// ³¤¶È ExtraStr = "" #(String ExtraStr)// ¶îÍâÐÅÏ¢ data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.FBLineID,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.PlayerCnt,_pos = CommFunc.ReadWORD(_lpData, _pos) self.ExtraStrLen,_pos = CommFunc.ReadWORD(_lpData, _pos) self.ExtraStr,_pos = CommFunc.ReadString(_lpData, _pos,self.ExtraStrLen) return _pos def Clear(self): self.FBLineID = 0 self.PlayerCnt = 0 self.ExtraStrLen = 0 self.ExtraStr = "" return def GetLength(self): length = 0 length += 1 length += 2 length += 2 length += len(self.ExtraStr) return length def GetBuffer(self): data = '' data = CommFunc.WriteBYTE(data, self.FBLineID) data = CommFunc.WriteWORD(data, self.PlayerCnt) data = CommFunc.WriteWORD(data, self.ExtraStrLen) data = CommFunc.WriteString(data, self.ExtraStrLen, self.ExtraStr) return data def OutputString(self): DumpString = ''' FBLineID:%d, PlayerCnt:%d, ExtraStrLen:%d, ExtraStr:%s '''\ %( self.FBLineID, self.PlayerCnt, self.ExtraStrLen, self.ExtraStr ) 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¿ªÊ¼ ("OpenWeekday", c_ubyte), #¿ª·þÊÇÖܼ¸£¬1´ú±íÖÜÒ» ("NowYear", c_ushort), #·þÎñÆ÷µ±Ç°Ê±¼ä - Äê ("NowMonth", c_ubyte), ("NowDay", c_ubyte), ("NowHour", c_ubyte), ("NowMinute", c_ubyte), ("NowSecond", c_ubyte), ("NowMicSecond", c_int), ] 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 self.OpenWeekday = 0 self.NowYear = 0 self.NowMonth = 0 self.NowDay = 0 self.NowHour = 0 self.NowMinute = 0 self.NowSecond = 0 self.NowMicSecond = 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, OpenWeekday:%d, NowYear:%d, NowMonth:%d, NowDay:%d, NowHour:%d, NowMinute:%d, NowSecond:%d, NowMicSecond:%d '''\ %( self.Cmd, self.SubCmd, self.Day, self.IsMixServer, self.MixDay, self.OpenWeekday, self.NowYear, self.NowMonth, self.NowDay, self.NowHour, self.NowMinute, self.NowSecond, self.NowMicSecond ) 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 0C ¶àÏÉÃËboss»î¶¯ÐÅÏ¢ #tagGCAllFamilyBossInfo class tagGCAllFamilyBossInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("IsEnd", c_ubyte), # ÊÇ·ñÒѽáÊø ] def __init__(self): self.Clear() self.Cmd = 0xA4 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 = 0xA4 self.SubCmd = 0x0C self.IsEnd = 0 return def GetLength(self): return sizeof(tagGCAllFamilyBossInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A4 0C ¶àÏÉÃËboss»î¶¯ÐÅÏ¢ //tagGCAllFamilyBossInfo: Cmd:%s, SubCmd:%s, IsEnd:%d '''\ %( self.Cmd, self.SubCmd, self.IsEnd ) return DumpString m_NAtagGCAllFamilyBossInfo=tagGCAllFamilyBossInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAllFamilyBossInfo.Cmd,m_NAtagGCAllFamilyBossInfo.SubCmd))] = m_NAtagGCAllFamilyBossInfo #------------------------------------------------------ # 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 LineCount = 0 #(BYTE LineCount) LineIDList = list() #(vector LineIDList)// Ïß·IDÁбí StateList = list() #(vector StateList)// ¶ÔӦ״̬ÁÐ±í£¬ 0-±»»÷ɱ£¬1-»î×Å 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.LineCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.LineCount): value,_pos=CommFunc.ReadBYTE(_lpData,_pos) self.LineIDList.append(value) for i in range(self.LineCount): value,_pos=CommFunc.ReadBYTE(_lpData,_pos) self.StateList.append(value) return _pos def Clear(self): self.BossID = 0 self.LineCount = 0 self.LineIDList = list() self.StateList = list() return def GetLength(self): length = 0 length += 4 length += 1 length += 1 * self.LineCount length += 1 * self.LineCount return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.BossID) data = CommFunc.WriteBYTE(data, self.LineCount) for i in range(self.LineCount): data = CommFunc.WriteBYTE(data, self.LineIDList[i]) for i in range(self.LineCount): data = CommFunc.WriteBYTE(data, self.StateList[i]) return data def OutputString(self): DumpString = ''' BossID:%d, LineCount:%d, LineIDList:%s, StateList:%s '''\ %( self.BossID, self.LineCount, "...", "..." ) 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 04 ֪ͨÉñÊÞ¸±±¾NPCË¢ÐÂʱ¼ä #tagGCDogzNPCRefreshTime class tagDogzTimeInfoObj(Structure): _pack_ = 1 _fields_ = [ ("NPCID", c_int), # npcid ("RefreshSecond", 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.NPCID = 0 self.RefreshSecond = 0 return def GetLength(self): return sizeof(tagDogzTimeInfoObj) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A9 04 ֪ͨÉñÊÞ¸±±¾NPCË¢ÐÂʱ¼ä //tagGCDogzNPCRefreshTime: NPCID:%d, RefreshSecond:%d '''\ %( self.NPCID, self.RefreshSecond ) return DumpString class tagGCDogzNPCRefreshTime(Structure): Head = tagHead() Cnt = 0 #(BYTE Cnt)//ÐÅÏ¢¸öÊý InfoList = list() #(vector InfoList)//ÐÅÏ¢Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA9 self.Head.SubCmd = 0x04 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 = tagDogzTimeInfoObj() _pos = temInfoList.ReadData(_lpData, _pos) self.InfoList.append(temInfoList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA9 self.Head.SubCmd = 0x04 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_NAtagGCDogzNPCRefreshTime=tagGCDogzNPCRefreshTime() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCDogzNPCRefreshTime.Head.Cmd,m_NAtagGCDogzNPCRefreshTime.Head.SubCmd))] = m_NAtagGCDogzNPCRefreshTime #------------------------------------------------------ # 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)// ˢе¹¼ÆÊ±, Ãë RefreshCD = 0 #(DWORD RefreshCD)// Ë¢ÐÂ×ÜCDʱ, Ãë 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) self.RefreshCD,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): self.BossID = 0 self.IsAlive = 0 self.RecordLen = 0 self.KillRecord = "" self.RefreshSecond = 0 self.RefreshCD = 0 return def GetLength(self): length = 0 length += 4 length += 1 length += 2 length += len(self.KillRecord) length += 4 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) data = CommFunc.WriteDWORD(data, self.RefreshCD) return data def OutputString(self): DumpString = ''' BossID:%d, IsAlive:%d, RecordLen:%d, KillRecord:%s, RefreshSecond:%d, RefreshCD:%d '''\ %( self.BossID, self.IsAlive, self.RecordLen, self.KillRecord, self.RefreshSecond, self.RefreshCD ) 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 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 06 É̳ÇÈ«·þ¹ºÂò´ÎÊý֪ͨ #tagGCStoreServerBuyCntInfo class tagGCStoreServerBuyCnt(Structure): _pack_ = 1 _fields_ = [ ("GoodsID", c_int), #ÉÌÆ·±êʶ ("BuyCnt", 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.GoodsID = 0 self.BuyCnt = 0 return def GetLength(self): return sizeof(tagGCStoreServerBuyCnt) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A9 06 É̳ÇÈ«·þ¹ºÂò´ÎÊý֪ͨ //tagGCStoreServerBuyCntInfo: GoodsID:%d, BuyCnt:%d '''\ %( self.GoodsID, self.BuyCnt ) return DumpString class tagGCStoreServerBuyCntInfo(Structure): Head = tagHead() Count = 0 #(WORD Count)//ÊýÁ¿ InfoList = list() #(vector InfoList)//´ÎÊýÐÅÏ¢ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA9 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.ReadWORD(_lpData, _pos) for i in range(self.Count): temInfoList = tagGCStoreServerBuyCnt() _pos = temInfoList.ReadData(_lpData, _pos) self.InfoList.append(temInfoList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA9 self.Head.SubCmd = 0x06 self.Count = 0 self.InfoList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 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.WriteWORD(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_NAtagGCStoreServerBuyCntInfo=tagGCStoreServerBuyCntInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCStoreServerBuyCntInfo.Head.Cmd,m_NAtagGCStoreServerBuyCntInfo.Head.SubCmd))] = m_NAtagGCStoreServerBuyCntInfo #------------------------------------------------------ #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 10 ÏÉÃËÇÀBossËùÓÐBossÉËѪ½ø¶ÈÐÅÏ¢ #tagGCAllFamilyBossHurtInfoList class tagGCFamilyBossHurtInfo(Structure): NPCID = 0 #(DWORD NPCID) CurHP = 0 #(DWORD CurHP) CurHPEx = 0 #(DWORD CurHPEx) MaxHP = 0 #(DWORD MaxHP) MaxHPEx = 0 #(DWORD MaxHPEx) FamilyID = 0 #(DWORD FamilyID)// ×î´óʵʱÉËѪÏÉÃË NameLen = 0 #(BYTE NameLen) FamilyName = "" #(String FamilyName) data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.NPCID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.CurHP,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.CurHPEx,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MaxHP,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MaxHPEx,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.FamilyID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.FamilyName,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen) return _pos def Clear(self): self.NPCID = 0 self.CurHP = 0 self.CurHPEx = 0 self.MaxHP = 0 self.MaxHPEx = 0 self.FamilyID = 0 self.NameLen = 0 self.FamilyName = "" return def GetLength(self): length = 0 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 1 length += len(self.FamilyName) return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.NPCID) data = CommFunc.WriteDWORD(data, self.CurHP) data = CommFunc.WriteDWORD(data, self.CurHPEx) data = CommFunc.WriteDWORD(data, self.MaxHP) data = CommFunc.WriteDWORD(data, self.MaxHPEx) data = CommFunc.WriteDWORD(data, self.FamilyID) data = CommFunc.WriteBYTE(data, self.NameLen) data = CommFunc.WriteString(data, self.NameLen, self.FamilyName) return data def OutputString(self): DumpString = ''' NPCID:%d, CurHP:%d, CurHPEx:%d, MaxHP:%d, MaxHPEx:%d, FamilyID:%d, NameLen:%d, FamilyName:%s '''\ %( self.NPCID, self.CurHP, self.CurHPEx, self.MaxHP, self.MaxHPEx, self.FamilyID, self.NameLen, self.FamilyName ) return DumpString class tagGCAllFamilyBossHurtInfoList(Structure): Head = tagHead() NPCCount = 0 #(BYTE NPCCount)// ¸öÊý NPCHurtInfo = list() #(vector NPCHurtInfo)// NPCÉËѪÐÅÏ¢Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xAC self.Head.SubCmd = 0x10 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.NPCCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.NPCCount): temNPCHurtInfo = tagGCFamilyBossHurtInfo() _pos = temNPCHurtInfo.ReadData(_lpData, _pos) self.NPCHurtInfo.append(temNPCHurtInfo) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xAC self.Head.SubCmd = 0x10 self.NPCCount = 0 self.NPCHurtInfo = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.NPCCount): length += self.NPCHurtInfo[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.NPCCount) for i in range(self.NPCCount): data = CommFunc.WriteString(data, self.NPCHurtInfo[i].GetLength(), self.NPCHurtInfo[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, NPCCount:%d, NPCHurtInfo:%s '''\ %( self.Head.OutputString(), self.NPCCount, "..." ) return DumpString m_NAtagGCAllFamilyBossHurtInfoList=tagGCAllFamilyBossHurtInfoList() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAllFamilyBossHurtInfoList.Head.Cmd,m_NAtagGCAllFamilyBossHurtInfoList.Head.SubCmd))] = m_NAtagGCAllFamilyBossHurtInfoList #------------------------------------------------------ # AC 08 boss¸´»îµãÊý֪ͨ #tagGCBossRebornPoint class tagGCBossRebornPoint(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Point", c_int), # ¸´»îµãÊý ("TotalPoint", c_int), # ¸´»î×ܵãÊý ("RebornCnt", c_ushort), # ¸´»î´ÎÊý ] 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 self.RebornCnt = 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, RebornCnt:%d '''\ %( self.Cmd, self.SubCmd, self.Point, self.TotalPoint, self.RebornCnt ) 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)// ÏÞÖÆµÈ¼¶ ResetType = 0 #(BYTE ResetType)// ÖØÖÃÀàÐÍ 0-0µãÖØÖà 1-5µãÖØÖà 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) self.ResetType,_pos = CommFunc.ReadBYTE(_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 self.ResetType = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 10 length += 10 length += 2 length += 2 length += 1 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) data = CommFunc.WriteBYTE(data, self.ResetType) return data def OutputString(self): DumpString = ''' Head:%s, StartDate:%s, EndtDate:%s, WorldLV:%d, LimitLV:%d, ResetType:%d '''\ %( self.Head.OutputString(), self.StartDate, self.EndtDate, self.WorldLV, self.LimitLV, self.ResetType ) return DumpString m_NAtagGCFairyCeremonyInfo=tagGCFairyCeremonyInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCFairyCeremonyInfo.Head.Cmd,m_NAtagGCFairyCeremonyInfo.Head.SubCmd))] = m_NAtagGCFairyCeremonyInfo #------------------------------------------------------ # AC 11 ½ÚÈÕºì°ü»î¶¯ÐÅÏ¢ #tagGCFeastRedPacketInfo class tagGCFeastRedPacketDay(Structure): RedPacketCount = 0 #(BYTE RedPacketCount) RedPacketIDList = list() #(vector RedPacketIDList)// µ±ÈÕ¶¨Ê±·¢·ÅµÄϵͳºì°ü±íIDÁбí data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.RedPacketCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.RedPacketCount): value,_pos=CommFunc.ReadWORD(_lpData,_pos) self.RedPacketIDList.append(value) return _pos def Clear(self): self.RedPacketCount = 0 self.RedPacketIDList = list() return def GetLength(self): length = 0 length += 1 length += 2 * self.RedPacketCount return length def GetBuffer(self): data = '' data = CommFunc.WriteBYTE(data, self.RedPacketCount) for i in range(self.RedPacketCount): data = CommFunc.WriteWORD(data, self.RedPacketIDList[i]) return data def OutputString(self): DumpString = ''' RedPacketCount:%d, RedPacketIDList:%s '''\ %( self.RedPacketCount, "..." ) return DumpString class tagGCFeastRedPacketInfo(Structure): Head = tagHead() StartDate = "" #(char StartDate[10])// ¿ªÊ¼ÈÕÆÚ y-m-d EndtDate = "" #(char EndtDate[10])// ½áÊøÈÕÆÚ y-m-d LimitLV = 0 #(WORD LimitLV)// ÏÞÖÆµÈ¼¶ ResetType = 0 #(BYTE ResetType)// ÖØÖÃÀàÐÍ 0-0µãÖØÖà 1-5µãÖØÖà RedPacketDays = 0 #(BYTE RedPacketDays) RedPacketDayList = list() #(vector RedPacketDayList)// ÿÈÕϵͳºì°üÐÅÏ¢ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xAC 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.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.ResetType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.RedPacketDays,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.RedPacketDays): temRedPacketDayList = tagGCFeastRedPacketDay() _pos = temRedPacketDayList.ReadData(_lpData, _pos) self.RedPacketDayList.append(temRedPacketDayList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xAC self.Head.SubCmd = 0x11 self.StartDate = "" self.EndtDate = "" self.LimitLV = 0 self.ResetType = 0 self.RedPacketDays = 0 self.RedPacketDayList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 10 length += 10 length += 2 length += 1 length += 1 for i in range(self.RedPacketDays): length += self.RedPacketDayList[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.ResetType) data = CommFunc.WriteBYTE(data, self.RedPacketDays) for i in range(self.RedPacketDays): data = CommFunc.WriteString(data, self.RedPacketDayList[i].GetLength(), self.RedPacketDayList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, StartDate:%s, EndtDate:%s, LimitLV:%d, ResetType:%d, RedPacketDays:%d, RedPacketDayList:%s '''\ %( self.Head.OutputString(), self.StartDate, self.EndtDate, self.LimitLV, self.ResetType, self.RedPacketDays, "..." ) return DumpString m_NAtagGCFeastRedPacketInfo=tagGCFeastRedPacketInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCFeastRedPacketInfo.Head.Cmd,m_NAtagGCFeastRedPacketInfo.Head.SubCmd))] = m_NAtagGCFeastRedPacketInfo #------------------------------------------------------ # 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 07 Æï³èBossÐÅÏ¢ #tagGCHorsePetBossInfo class tagGCHorsePetBossInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("IsEnd", c_int), # ÊÇ·ñÒѽáÊø(°´Î»´ú±í¶ÔÓ¦Ïß·ÊÇ·ñ½áÊø) ] def __init__(self): self.Clear() self.Cmd = 0xAC 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 = 0xAC self.SubCmd = 0x07 self.IsEnd = 0 return def GetLength(self): return sizeof(tagGCHorsePetBossInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AC 07 Æï³èBossÐÅÏ¢ //tagGCHorsePetBossInfo: Cmd:%s, SubCmd:%s, IsEnd:%d '''\ %( self.Cmd, self.SubCmd, self.IsEnd ) return DumpString m_NAtagGCHorsePetBossInfo=tagGCHorsePetBossInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCHorsePetBossInfo.Cmd,m_NAtagGCHorsePetBossInfo.SubCmd))] = m_NAtagGCHorsePetBossInfo #------------------------------------------------------ # 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)// ÏÞÖÆµÈ¼¶ LimitPoint = 0 #(DWORD LimitPoint)// ÏÞÖÆ»ñµÃÐÞÐеã 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) self.LimitPoint,_pos = CommFunc.ReadDWORD(_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 self.LimitPoint = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 10 length += 10 length += 1 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.Multiple) data = CommFunc.WriteWORD(data, self.LimitLV) data = CommFunc.WriteDWORD(data, self.LimitPoint) return data def OutputString(self): DumpString = ''' Head:%s, StartDate:%s, EndtDate:%s, Multiple:%d, LimitLV:%d, LimitPoint:%d '''\ %( self.Head.OutputString(), self.StartDate, self.EndtDate, self.Multiple, self.LimitLV, self.LimitPoint ) return DumpString m_NAtagGCMultiRealmPointInfo=tagGCMultiRealmPointInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCMultiRealmPointInfo.Head.Cmd,m_NAtagGCMultiRealmPointInfo.Head.SubCmd))] = m_NAtagGCMultiRealmPointInfo #------------------------------------------------------ # AC 0B ÐÂÏɽçÊ¢µä»î¶¯ÐÅÏ¢ #tagGCNewFairyCeremonyInfo class tagGCNewFairyCeremonyInfo(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)// ÏÞÖÆµÈ¼¶ ResetType = 0 #(BYTE ResetType)// ÖØÖÃÀàÐÍ 0-0µãÖØÖà 1-5µãÖØÖà data = None def __init__(self): self.Clear() self.Head.Cmd = 0xAC self.Head.SubCmd = 0x0B 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) self.ResetType,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xAC self.Head.SubCmd = 0x0B self.StartDate = "" self.EndtDate = "" self.WorldLV = 0 self.LimitLV = 0 self.ResetType = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 10 length += 10 length += 2 length += 2 length += 1 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) data = CommFunc.WriteBYTE(data, self.ResetType) return data def OutputString(self): DumpString = ''' Head:%s, StartDate:%s, EndtDate:%s, WorldLV:%d, LimitLV:%d, ResetType:%d '''\ %( self.Head.OutputString(), self.StartDate, self.EndtDate, self.WorldLV, self.LimitLV, self.ResetType ) return DumpString m_NAtagGCNewFairyCeremonyInfo=tagGCNewFairyCeremonyInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCNewFairyCeremonyInfo.Head.Cmd,m_NAtagGCNewFairyCeremonyInfo.Head.SubCmd))] = m_NAtagGCNewFairyCeremonyInfo #------------------------------------------------------ # 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 #------------------------------------------------------ # 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)//ÊÇ·ñÓжÓÎé ServerGroupID = 0 #(DWORD ServerGroupID)//·þÎñÆ÷×éID 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) self.ServerGroupID,_pos = CommFunc.ReadDWORD(_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 self.ServerGroupID = 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 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.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) data = CommFunc.WriteDWORD(data, self.ServerGroupID) return data def OutputString(self): DumpString = ''' Head:%s, PlayerID:%d, PlayerName:%s, Job:%d, LV:%d, RealmLV:%d, OnlineType:%d, IsInTeam:%d, ServerGroupID:%d '''\ %( self.Head.OutputString(), self.PlayerID, self.PlayerName, self.Job, self.LV, self.RealmLV, self.OnlineType, self.IsInTeam, self.ServerGroupID ) 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 #------------------------------------------------------ # B5 04 ÅÄÂôÐÐÐÂÉϼÜÅÄÆ· #tagGCAddAuctionItemInfo class tagGCAddAuctionItem(Structure): ItemGUID = "" #(char ItemGUID[40]) ItemID = 0 #(DWORD ItemID) data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.ItemGUID,_pos = CommFunc.ReadString(_lpData, _pos,40) self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): self.ItemGUID = "" self.ItemID = 0 return def GetLength(self): length = 0 length += 40 length += 4 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, 40, self.ItemGUID) data = CommFunc.WriteDWORD(data, self.ItemID) return data def OutputString(self): DumpString = ''' ItemGUID:%s, ItemID:%d '''\ %( self.ItemGUID, self.ItemID ) return DumpString class tagGCAddAuctionItemInfo(Structure): Head = tagHead() AddCount = 0 #(BYTE AddCount) AddAuctionItemList = list() #(vector AddAuctionItemList) data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB5 self.Head.SubCmd = 0x04 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.AddCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.AddCount): temAddAuctionItemList = tagGCAddAuctionItem() _pos = temAddAuctionItemList.ReadData(_lpData, _pos) self.AddAuctionItemList.append(temAddAuctionItemList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB5 self.Head.SubCmd = 0x04 self.AddCount = 0 self.AddAuctionItemList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.AddCount): length += self.AddAuctionItemList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.AddCount) for i in range(self.AddCount): data = CommFunc.WriteString(data, self.AddAuctionItemList[i].GetLength(), self.AddAuctionItemList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, AddCount:%d, AddAuctionItemList:%s '''\ %( self.Head.OutputString(), self.AddCount, "..." ) return DumpString m_NAtagGCAddAuctionItemInfo=tagGCAddAuctionItemInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAddAuctionItemInfo.Head.Cmd,m_NAtagGCAddAuctionItemInfo.Head.SubCmd))] = m_NAtagGCAddAuctionItemInfo #------------------------------------------------------ # B5 07 ÅÄÂôÐйØ×¢µÄÎïÆ·ID #tagGCAttentionAuctionItemID class tagGCAttentionAuctionItemID(Structure): Head = tagHead() AttentionCount = 0 #(BYTE AttentionCount) AttentionItemIDList = list() #(vector AttentionItemIDList)// ¹Ø×¢µÄÎïÆ·IDÁбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB5 self.Head.SubCmd = 0x07 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.AttentionCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.AttentionCount): value,_pos=CommFunc.ReadDWORD(_lpData,_pos) self.AttentionItemIDList.append(value) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB5 self.Head.SubCmd = 0x07 self.AttentionCount = 0 self.AttentionItemIDList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 4 * self.AttentionCount return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.AttentionCount) for i in range(self.AttentionCount): data = CommFunc.WriteDWORD(data, self.AttentionItemIDList[i]) return data def OutputString(self): DumpString = ''' Head:%s, AttentionCount:%d, AttentionItemIDList:%s '''\ %( self.Head.OutputString(), self.AttentionCount, "..." ) return DumpString m_NAtagGCAttentionAuctionItemID=tagGCAttentionAuctionItemID() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAttentionAuctionItemID.Head.Cmd,m_NAtagGCAttentionAuctionItemID.Head.SubCmd))] = m_NAtagGCAttentionAuctionItemID #------------------------------------------------------ # B5 06 ÅÄÂôÐйØ×¢ÖеÄÅÄÆ·ÐÅÏ¢ #tagGCAttentionAuctionItemInfo class tagGCAttentionAuctionItem(Structure): ItemGUID = "" #(char ItemGUID[40]) FamilyID = 0 #(DWORD FamilyID)//ÓÐֵʱΪÏÉÃËÅÄÆ· ItemID = 0 #(DWORD ItemID) ItemCount = 0 #(WORD ItemCount) AddTime = "" #(char AddTime[19])//ÉϼÜʱ¼ä yyyy-MM-dd hh:mm:ss BidderPrice = 0 #(WORD BidderPrice)//¾ºÅÄÍæ¼Ò³ö¼Û BiddingTime = "" #(char BiddingTime[19])//¾º¼Ûʱ¼ä yyyy-MM-dd hh:mm:ss UserDataLen = 0 #(WORD UserDataLen) UserData = "" #(String UserData)//×Ô¶¨ÒåÊý¾Ý data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.ItemGUID,_pos = CommFunc.ReadString(_lpData, _pos,40) self.FamilyID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ItemCount,_pos = CommFunc.ReadWORD(_lpData, _pos) self.AddTime,_pos = CommFunc.ReadString(_lpData, _pos,19) self.BidderPrice,_pos = CommFunc.ReadWORD(_lpData, _pos) self.BiddingTime,_pos = CommFunc.ReadString(_lpData, _pos,19) self.UserDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos) self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen) return _pos def Clear(self): self.ItemGUID = "" self.FamilyID = 0 self.ItemID = 0 self.ItemCount = 0 self.AddTime = "" self.BidderPrice = 0 self.BiddingTime = "" self.UserDataLen = 0 self.UserData = "" return def GetLength(self): length = 0 length += 40 length += 4 length += 4 length += 2 length += 19 length += 2 length += 19 length += 2 length += len(self.UserData) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, 40, self.ItemGUID) data = CommFunc.WriteDWORD(data, self.FamilyID) data = CommFunc.WriteDWORD(data, self.ItemID) data = CommFunc.WriteWORD(data, self.ItemCount) data = CommFunc.WriteString(data, 19, self.AddTime) data = CommFunc.WriteWORD(data, self.BidderPrice) data = CommFunc.WriteString(data, 19, self.BiddingTime) data = CommFunc.WriteWORD(data, self.UserDataLen) data = CommFunc.WriteString(data, self.UserDataLen, self.UserData) return data def OutputString(self): DumpString = ''' ItemGUID:%s, FamilyID:%d, ItemID:%d, ItemCount:%d, AddTime:%s, BidderPrice:%d, BiddingTime:%s, UserDataLen:%d, UserData:%s '''\ %( self.ItemGUID, self.FamilyID, self.ItemID, self.ItemCount, self.AddTime, self.BidderPrice, self.BiddingTime, self.UserDataLen, self.UserData ) return DumpString class tagGCAttentionAuctionItemInfo(Structure): Head = tagHead() AuctionItemCount = 0 #(BYTE AuctionItemCount)//ÅÄÆ·ÊýÁ¿ AuctionItemList = list() #(vector AuctionItemList)//ÅÄÆ·Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB5 self.Head.SubCmd = 0x06 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.AuctionItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.AuctionItemCount): temAuctionItemList = tagGCAttentionAuctionItem() _pos = temAuctionItemList.ReadData(_lpData, _pos) self.AuctionItemList.append(temAuctionItemList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB5 self.Head.SubCmd = 0x06 self.AuctionItemCount = 0 self.AuctionItemList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.AuctionItemCount): length += self.AuctionItemList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.AuctionItemCount) for i in range(self.AuctionItemCount): data = CommFunc.WriteString(data, self.AuctionItemList[i].GetLength(), self.AuctionItemList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, AuctionItemCount:%d, AuctionItemList:%s '''\ %( self.Head.OutputString(), self.AuctionItemCount, "..." ) return DumpString m_NAtagGCAttentionAuctionItemInfo=tagGCAttentionAuctionItemInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAttentionAuctionItemInfo.Head.Cmd,m_NAtagGCAttentionAuctionItemInfo.Head.SubCmd))] = m_NAtagGCAttentionAuctionItemInfo #------------------------------------------------------ # B5 01 ÅÄÂôÐÐÅÄÂôÖеÄÎïÆ·ÐÅÏ¢ #tagGCAuctionItemInfo class tagGCAuctionItem(Structure): ItemGUID = "" #(char ItemGUID[40]) FamilyID = 0 #(DWORD FamilyID)//ÓÐֵʱΪÏÉÃËÅÄÆ· ItemID = 0 #(DWORD ItemID) ItemCount = 0 #(WORD ItemCount) AddTime = "" #(char AddTime[19])//ÉϼÜʱ¼ä yyyy-MM-dd hh:mm:ss BidderPrice = 0 #(WORD BidderPrice)//¾ºÅÄÍæ¼Ò³ö¼Û BiddingTime = "" #(char BiddingTime[19])//¾º¼Ûʱ¼ä yyyy-MM-dd hh:mm:ss UserDataLen = 0 #(WORD UserDataLen) UserData = "" #(String UserData)//×Ô¶¨ÒåÊý¾Ý data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.ItemGUID,_pos = CommFunc.ReadString(_lpData, _pos,40) self.FamilyID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ItemCount,_pos = CommFunc.ReadWORD(_lpData, _pos) self.AddTime,_pos = CommFunc.ReadString(_lpData, _pos,19) self.BidderPrice,_pos = CommFunc.ReadWORD(_lpData, _pos) self.BiddingTime,_pos = CommFunc.ReadString(_lpData, _pos,19) self.UserDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos) self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen) return _pos def Clear(self): self.ItemGUID = "" self.FamilyID = 0 self.ItemID = 0 self.ItemCount = 0 self.AddTime = "" self.BidderPrice = 0 self.BiddingTime = "" self.UserDataLen = 0 self.UserData = "" return def GetLength(self): length = 0 length += 40 length += 4 length += 4 length += 2 length += 19 length += 2 length += 19 length += 2 length += len(self.UserData) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, 40, self.ItemGUID) data = CommFunc.WriteDWORD(data, self.FamilyID) data = CommFunc.WriteDWORD(data, self.ItemID) data = CommFunc.WriteWORD(data, self.ItemCount) data = CommFunc.WriteString(data, 19, self.AddTime) data = CommFunc.WriteWORD(data, self.BidderPrice) data = CommFunc.WriteString(data, 19, self.BiddingTime) data = CommFunc.WriteWORD(data, self.UserDataLen) data = CommFunc.WriteString(data, self.UserDataLen, self.UserData) return data def OutputString(self): DumpString = ''' ItemGUID:%s, FamilyID:%d, ItemID:%d, ItemCount:%d, AddTime:%s, BidderPrice:%d, BiddingTime:%s, UserDataLen:%d, UserData:%s '''\ %( self.ItemGUID, self.FamilyID, self.ItemID, self.ItemCount, self.AddTime, self.BidderPrice, self.BiddingTime, self.UserDataLen, self.UserData ) return DumpString class tagGCAuctionItemInfo(Structure): Head = tagHead() Job = 0 #(BYTE Job)//¹ýÂËÖ°Òµ£¬0Ϊ²»ÏÞÖÆ ItemTypeCount = 0 #(BYTE ItemTypeCount) ItemTypeList = list() #(vector ItemTypeList)//Ö¸¶¨µÄÎïÆ·ÀàÐÍ ClassLV = 0 #(BYTE ClassLV)//¹ýÂ˽×Êý£¬0Ϊ²»ÏÞÖÆ SpecItemIDCount = 0 #(BYTE SpecItemIDCount)//Ö¸¶¨ÎïÆ·ID¸öÊý SpecItemIDList = list() #(vector SpecItemIDList)//Ö¸¶¨ÎïÆ·ID FromItemGUID = "" #(char FromItemGUID[40])//´ÓÄĸöÎïÆ·¿ªÊ¼²éѯ QueryDir = 0 #(BYTE QueryDir)//²éѯ·½Ïò£¬1-Íùºó²é£¬2-Íùǰ²é£¬3-¶¨Î»²éѯ QueryCount = 0 #(BYTE QueryCount)//²éѯ¸öÊý£¬0Ϊȫ²¿ QueryRemainlCount = 0 #(WORD QueryRemainlCount)//²éѯÌõ¼þ¶ÔÓ¦²éѯ·½ÏòÊ£Óà¸öÊý AuctionItemCount = 0 #(BYTE AuctionItemCount)//·µ»ØÅÄÆ·ÊýÁ¿ AuctionItemList = list() #(vector AuctionItemList)//·µ»ØÅÄÆ·Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB5 self.Head.SubCmd = 0x01 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ItemTypeCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.ItemTypeCount): value,_pos=CommFunc.ReadDWORD(_lpData,_pos) self.ItemTypeList.append(value) self.ClassLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.SpecItemIDCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.SpecItemIDCount): value,_pos=CommFunc.ReadDWORD(_lpData,_pos) self.SpecItemIDList.append(value) self.FromItemGUID,_pos = CommFunc.ReadString(_lpData, _pos,40) self.QueryDir,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.QueryCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.QueryRemainlCount,_pos = CommFunc.ReadWORD(_lpData, _pos) self.AuctionItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.AuctionItemCount): temAuctionItemList = tagGCAuctionItem() _pos = temAuctionItemList.ReadData(_lpData, _pos) self.AuctionItemList.append(temAuctionItemList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB5 self.Head.SubCmd = 0x01 self.Job = 0 self.ItemTypeCount = 0 self.ItemTypeList = list() self.ClassLV = 0 self.SpecItemIDCount = 0 self.SpecItemIDList = list() self.FromItemGUID = "" self.QueryDir = 0 self.QueryCount = 0 self.QueryRemainlCount = 0 self.AuctionItemCount = 0 self.AuctionItemList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 1 length += 4 * self.ItemTypeCount length += 1 length += 1 length += 4 * self.SpecItemIDCount length += 40 length += 1 length += 1 length += 2 length += 1 for i in range(self.AuctionItemCount): length += self.AuctionItemList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteBYTE(data, self.ItemTypeCount) for i in range(self.ItemTypeCount): data = CommFunc.WriteDWORD(data, self.ItemTypeList[i]) data = CommFunc.WriteBYTE(data, self.ClassLV) data = CommFunc.WriteBYTE(data, self.SpecItemIDCount) for i in range(self.SpecItemIDCount): data = CommFunc.WriteDWORD(data, self.SpecItemIDList[i]) data = CommFunc.WriteString(data, 40, self.FromItemGUID) data = CommFunc.WriteBYTE(data, self.QueryDir) data = CommFunc.WriteBYTE(data, self.QueryCount) data = CommFunc.WriteWORD(data, self.QueryRemainlCount) data = CommFunc.WriteBYTE(data, self.AuctionItemCount) for i in range(self.AuctionItemCount): data = CommFunc.WriteString(data, self.AuctionItemList[i].GetLength(), self.AuctionItemList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Job:%d, ItemTypeCount:%d, ItemTypeList:%s, ClassLV:%d, SpecItemIDCount:%d, SpecItemIDList:%s, FromItemGUID:%s, QueryDir:%d, QueryCount:%d, QueryRemainlCount:%d, AuctionItemCount:%d, AuctionItemList:%s '''\ %( self.Head.OutputString(), self.Job, self.ItemTypeCount, "...", self.ClassLV, self.SpecItemIDCount, "...", self.FromItemGUID, self.QueryDir, self.QueryCount, self.QueryRemainlCount, self.AuctionItemCount, "..." ) return DumpString m_NAtagGCAuctionItemInfo=tagGCAuctionItemInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAuctionItemInfo.Head.Cmd,m_NAtagGCAuctionItemInfo.Head.SubCmd))] = m_NAtagGCAuctionItemInfo #------------------------------------------------------ # B5 10 ÅÄÂôÐÐÍæ¼Ò¾º¼ÛÖеÄÎïÆ·ÐÅÏ¢ #tagGCBiddingItemInfo class tagGCBiddingItem(Structure): ItemGUID = "" #(char ItemGUID[40]) FamilyID = 0 #(DWORD FamilyID)//ÓÐֵʱΪÏÉÃËÅÄÆ· ItemID = 0 #(DWORD ItemID) ItemCount = 0 #(WORD ItemCount) AddTime = "" #(char AddTime[19])//ÉϼÜʱ¼ä yyyy-MM-dd hh:mm:ss BidderID = 0 #(DWORD BidderID)//¾ºÅÄÍæ¼ÒID£¬Ò²¾ÍÊǵ±Ç°×î¸ß¾º¼ÛÍæ¼ÒID BidderPrice = 0 #(WORD BidderPrice)//¾ºÅÄÍæ¼Ò³ö¼Û BiddingTime = "" #(char BiddingTime[19])//¾º¼Ûʱ¼ä yyyy-MM-dd hh:mm:ss UserDataLen = 0 #(WORD UserDataLen) UserData = "" #(String UserData)//×Ô¶¨ÒåÊý¾Ý data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.ItemGUID,_pos = CommFunc.ReadString(_lpData, _pos,40) self.FamilyID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ItemCount,_pos = CommFunc.ReadWORD(_lpData, _pos) self.AddTime,_pos = CommFunc.ReadString(_lpData, _pos,19) self.BidderID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.BidderPrice,_pos = CommFunc.ReadWORD(_lpData, _pos) self.BiddingTime,_pos = CommFunc.ReadString(_lpData, _pos,19) self.UserDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos) self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen) return _pos def Clear(self): self.ItemGUID = "" self.FamilyID = 0 self.ItemID = 0 self.ItemCount = 0 self.AddTime = "" self.BidderID = 0 self.BidderPrice = 0 self.BiddingTime = "" self.UserDataLen = 0 self.UserData = "" return def GetLength(self): length = 0 length += 40 length += 4 length += 4 length += 2 length += 19 length += 4 length += 2 length += 19 length += 2 length += len(self.UserData) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, 40, self.ItemGUID) data = CommFunc.WriteDWORD(data, self.FamilyID) data = CommFunc.WriteDWORD(data, self.ItemID) data = CommFunc.WriteWORD(data, self.ItemCount) data = CommFunc.WriteString(data, 19, self.AddTime) data = CommFunc.WriteDWORD(data, self.BidderID) data = CommFunc.WriteWORD(data, self.BidderPrice) data = CommFunc.WriteString(data, 19, self.BiddingTime) data = CommFunc.WriteWORD(data, self.UserDataLen) data = CommFunc.WriteString(data, self.UserDataLen, self.UserData) return data def OutputString(self): DumpString = ''' ItemGUID:%s, FamilyID:%d, ItemID:%d, ItemCount:%d, AddTime:%s, BidderID:%d, BidderPrice:%d, BiddingTime:%s, UserDataLen:%d, UserData:%s '''\ %( self.ItemGUID, self.FamilyID, self.ItemID, self.ItemCount, self.AddTime, self.BidderID, self.BidderPrice, self.BiddingTime, self.UserDataLen, self.UserData ) return DumpString class tagGCBiddingItemInfo(Structure): Head = tagHead() AuctionItemCount = 0 #(BYTE AuctionItemCount)//ÅÄÆ·ÊýÁ¿ AuctionItemList = list() #(vector AuctionItemList)//ÅÄÆ·Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB5 self.Head.SubCmd = 0x10 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.AuctionItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.AuctionItemCount): temAuctionItemList = tagGCBiddingItem() _pos = temAuctionItemList.ReadData(_lpData, _pos) self.AuctionItemList.append(temAuctionItemList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB5 self.Head.SubCmd = 0x10 self.AuctionItemCount = 0 self.AuctionItemList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.AuctionItemCount): length += self.AuctionItemList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.AuctionItemCount) for i in range(self.AuctionItemCount): data = CommFunc.WriteString(data, self.AuctionItemList[i].GetLength(), self.AuctionItemList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, AuctionItemCount:%d, AuctionItemList:%s '''\ %( self.Head.OutputString(), self.AuctionItemCount, "..." ) return DumpString m_NAtagGCBiddingItemInfo=tagGCBiddingItemInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCBiddingItemInfo.Head.Cmd,m_NAtagGCBiddingItemInfo.Head.SubCmd))] = m_NAtagGCBiddingItemInfo #------------------------------------------------------ # B5 09 ÅÄÂôÐÐÇå³ýÅÄÆ· #tagGCClearAuctionItemInfo class tagGCClearAuctionItem(Structure): ItemGUID = "" #(char ItemGUID[40]) data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.ItemGUID,_pos = CommFunc.ReadString(_lpData, _pos,40) return _pos def Clear(self): self.ItemGUID = "" return def GetLength(self): length = 0 length += 40 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, 40, self.ItemGUID) return data def OutputString(self): DumpString = ''' ItemGUID:%s '''\ %( self.ItemGUID ) return DumpString class tagGCClearAuctionItemInfo(Structure): Head = tagHead() ClearCount = 0 #(BYTE ClearCount) ClearAuctionItemList = list() #(vector ClearAuctionItemList) data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB5 self.Head.SubCmd = 0x09 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.ClearCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.ClearCount): temClearAuctionItemList = tagGCClearAuctionItem() _pos = temClearAuctionItemList.ReadData(_lpData, _pos) self.ClearAuctionItemList.append(temClearAuctionItemList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB5 self.Head.SubCmd = 0x09 self.ClearCount = 0 self.ClearAuctionItemList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.ClearCount): length += self.ClearAuctionItemList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.ClearCount) for i in range(self.ClearCount): data = CommFunc.WriteString(data, self.ClearAuctionItemList[i].GetLength(), self.ClearAuctionItemList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, ClearCount:%d, ClearAuctionItemList:%s '''\ %( self.Head.OutputString(), self.ClearCount, "..." ) return DumpString m_NAtagGCClearAuctionItemInfo=tagGCClearAuctionItemInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCClearAuctionItemInfo.Head.Cmd,m_NAtagGCClearAuctionItemInfo.Head.SubCmd))] = m_NAtagGCClearAuctionItemInfo #------------------------------------------------------ # B5 05 ÅÄÂôÐÐÏÉÃËÅÄÂôÖеÄÎïÆ·ÐÅÏ¢ #tagGCFamilyAuctionItemInfo class tagGCFamilyAuctionItem(Structure): ItemGUID = "" #(char ItemGUID[40]) FamilyID = 0 #(DWORD FamilyID)//ÓÐֵʱΪÏÉÃËÅÄÆ· ItemID = 0 #(DWORD ItemID) ItemCount = 0 #(WORD ItemCount) AddTime = "" #(char AddTime[19])//ÉϼÜʱ¼ä yyyy-MM-dd hh:mm:ss BidderPrice = 0 #(WORD BidderPrice)//¾ºÅÄÍæ¼Ò³ö¼Û BiddingTime = "" #(char BiddingTime[19])//¾º¼Ûʱ¼ä yyyy-MM-dd hh:mm:ss UserDataLen = 0 #(WORD UserDataLen) UserData = "" #(String UserData)//×Ô¶¨ÒåÊý¾Ý FamilyPlayerIDLen = 0 #(WORD FamilyPlayerIDLen) FamilyPlayerIDInfo = "" #(String FamilyPlayerIDInfo)//¿É»ñµÃÊÕÒæµÄÏÉÃËÍæ¼ÒIDÐÅÏ¢ AuctionType = 0 #(BYTE AuctionType)//ÅÄÆ·ÀàÐÍ£¬0-È«·þÅÄÆ·£¬1-ÏÉÃËÅÄÆ· data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.ItemGUID,_pos = CommFunc.ReadString(_lpData, _pos,40) self.FamilyID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ItemCount,_pos = CommFunc.ReadWORD(_lpData, _pos) self.AddTime,_pos = CommFunc.ReadString(_lpData, _pos,19) self.BidderPrice,_pos = CommFunc.ReadWORD(_lpData, _pos) self.BiddingTime,_pos = CommFunc.ReadString(_lpData, _pos,19) self.UserDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos) self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen) self.FamilyPlayerIDLen,_pos = CommFunc.ReadWORD(_lpData, _pos) self.FamilyPlayerIDInfo,_pos = CommFunc.ReadString(_lpData, _pos,self.FamilyPlayerIDLen) self.AuctionType,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): self.ItemGUID = "" self.FamilyID = 0 self.ItemID = 0 self.ItemCount = 0 self.AddTime = "" self.BidderPrice = 0 self.BiddingTime = "" self.UserDataLen = 0 self.UserData = "" self.FamilyPlayerIDLen = 0 self.FamilyPlayerIDInfo = "" self.AuctionType = 0 return def GetLength(self): length = 0 length += 40 length += 4 length += 4 length += 2 length += 19 length += 2 length += 19 length += 2 length += len(self.UserData) length += 2 length += len(self.FamilyPlayerIDInfo) length += 1 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, 40, self.ItemGUID) data = CommFunc.WriteDWORD(data, self.FamilyID) data = CommFunc.WriteDWORD(data, self.ItemID) data = CommFunc.WriteWORD(data, self.ItemCount) data = CommFunc.WriteString(data, 19, self.AddTime) data = CommFunc.WriteWORD(data, self.BidderPrice) data = CommFunc.WriteString(data, 19, self.BiddingTime) data = CommFunc.WriteWORD(data, self.UserDataLen) data = CommFunc.WriteString(data, self.UserDataLen, self.UserData) data = CommFunc.WriteWORD(data, self.FamilyPlayerIDLen) data = CommFunc.WriteString(data, self.FamilyPlayerIDLen, self.FamilyPlayerIDInfo) data = CommFunc.WriteBYTE(data, self.AuctionType) return data def OutputString(self): DumpString = ''' ItemGUID:%s, FamilyID:%d, ItemID:%d, ItemCount:%d, AddTime:%s, BidderPrice:%d, BiddingTime:%s, UserDataLen:%d, UserData:%s, FamilyPlayerIDLen:%d, FamilyPlayerIDInfo:%s, AuctionType:%d '''\ %( self.ItemGUID, self.FamilyID, self.ItemID, self.ItemCount, self.AddTime, self.BidderPrice, self.BiddingTime, self.UserDataLen, self.UserData, self.FamilyPlayerIDLen, self.FamilyPlayerIDInfo, self.AuctionType ) return DumpString class tagGCFamilyAuctionItemInfo(Structure): Head = tagHead() AuctionItemCount = 0 #(BYTE AuctionItemCount)//ÅÄÆ·ÊýÁ¿ AuctionItemList = list() #(vector AuctionItemList)//ÅÄÆ·Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB5 self.Head.SubCmd = 0x05 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.AuctionItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.AuctionItemCount): temAuctionItemList = tagGCFamilyAuctionItem() _pos = temAuctionItemList.ReadData(_lpData, _pos) self.AuctionItemList.append(temAuctionItemList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB5 self.Head.SubCmd = 0x05 self.AuctionItemCount = 0 self.AuctionItemList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.AuctionItemCount): length += self.AuctionItemList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.AuctionItemCount) for i in range(self.AuctionItemCount): data = CommFunc.WriteString(data, self.AuctionItemList[i].GetLength(), self.AuctionItemList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, AuctionItemCount:%d, AuctionItemList:%s '''\ %( self.Head.OutputString(), self.AuctionItemCount, "..." ) return DumpString m_NAtagGCFamilyAuctionItemInfo=tagGCFamilyAuctionItemInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCFamilyAuctionItemInfo.Head.Cmd,m_NAtagGCFamilyAuctionItemInfo.Head.SubCmd))] = m_NAtagGCFamilyAuctionItemInfo #------------------------------------------------------ # B5 02 ÅÄÂôÐÐÍæ¼ÒÅÄÂôÖеÄÎïÆ·ÐÅÏ¢ #tagGCPlayerAuctionItemInfo class tagGCPlayerAuctionItem(Structure): ItemGUID = "" #(char ItemGUID[40]) FamilyID = 0 #(DWORD FamilyID)//ÓÐֵʱΪÏÉÃËÅÄÆ· ItemID = 0 #(DWORD ItemID) ItemCount = 0 #(WORD ItemCount) AddTime = "" #(char AddTime[19])//ÉϼÜʱ¼ä yyyy-MM-dd hh:mm:ss BidderPrice = 0 #(WORD BidderPrice)//¾ºÅÄÍæ¼Ò³ö¼Û BiddingTime = "" #(char BiddingTime[19])//¾º¼Ûʱ¼ä yyyy-MM-dd hh:mm:ss UserDataLen = 0 #(WORD UserDataLen) UserData = "" #(String UserData)//×Ô¶¨ÒåÊý¾Ý data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.ItemGUID,_pos = CommFunc.ReadString(_lpData, _pos,40) self.FamilyID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ItemCount,_pos = CommFunc.ReadWORD(_lpData, _pos) self.AddTime,_pos = CommFunc.ReadString(_lpData, _pos,19) self.BidderPrice,_pos = CommFunc.ReadWORD(_lpData, _pos) self.BiddingTime,_pos = CommFunc.ReadString(_lpData, _pos,19) self.UserDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos) self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen) return _pos def Clear(self): self.ItemGUID = "" self.FamilyID = 0 self.ItemID = 0 self.ItemCount = 0 self.AddTime = "" self.BidderPrice = 0 self.BiddingTime = "" self.UserDataLen = 0 self.UserData = "" return def GetLength(self): length = 0 length += 40 length += 4 length += 4 length += 2 length += 19 length += 2 length += 19 length += 2 length += len(self.UserData) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, 40, self.ItemGUID) data = CommFunc.WriteDWORD(data, self.FamilyID) data = CommFunc.WriteDWORD(data, self.ItemID) data = CommFunc.WriteWORD(data, self.ItemCount) data = CommFunc.WriteString(data, 19, self.AddTime) data = CommFunc.WriteWORD(data, self.BidderPrice) data = CommFunc.WriteString(data, 19, self.BiddingTime) data = CommFunc.WriteWORD(data, self.UserDataLen) data = CommFunc.WriteString(data, self.UserDataLen, self.UserData) return data def OutputString(self): DumpString = ''' ItemGUID:%s, FamilyID:%d, ItemID:%d, ItemCount:%d, AddTime:%s, BidderPrice:%d, BiddingTime:%s, UserDataLen:%d, UserData:%s '''\ %( self.ItemGUID, self.FamilyID, self.ItemID, self.ItemCount, self.AddTime, self.BidderPrice, self.BiddingTime, self.UserDataLen, self.UserData ) return DumpString class tagGCPlayerAuctionItemInfo(Structure): Head = tagHead() AuctionItemCount = 0 #(BYTE AuctionItemCount)//ÅÄÆ·ÊýÁ¿ AuctionItemList = list() #(vector AuctionItemList)//ÅÄÆ·Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB5 self.Head.SubCmd = 0x02 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.AuctionItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.AuctionItemCount): temAuctionItemList = tagGCPlayerAuctionItem() _pos = temAuctionItemList.ReadData(_lpData, _pos) self.AuctionItemList.append(temAuctionItemList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB5 self.Head.SubCmd = 0x02 self.AuctionItemCount = 0 self.AuctionItemList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.AuctionItemCount): length += self.AuctionItemList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.AuctionItemCount) for i in range(self.AuctionItemCount): data = CommFunc.WriteString(data, self.AuctionItemList[i].GetLength(), self.AuctionItemList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, AuctionItemCount:%d, AuctionItemList:%s '''\ %( self.Head.OutputString(), self.AuctionItemCount, "..." ) return DumpString m_NAtagGCPlayerAuctionItemInfo=tagGCPlayerAuctionItemInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCPlayerAuctionItemInfo.Head.Cmd,m_NAtagGCPlayerAuctionItemInfo.Head.SubCmd))] = m_NAtagGCPlayerAuctionItemInfo #------------------------------------------------------ # B5 03 ÅÄÂôÐÐÍæ¼ÒÅÄÂô¼Ç¼ #tagGCPlayerAuctionRecordInfo class tagGCPlayerAuctionRecord(Structure): ItemGUID = "" #(char ItemGUID[40]) FamilyID = 0 #(DWORD FamilyID)//ÓÐֵʱΪÏÉÃËÅÄÆ· RecordType = 0 #(BYTE RecordType)//¼Ç¼ÀàÐÍ 0-ÎÒµÄÅÄÆ·¼Ç¼ 1-ÏÉÃËÅÄÆ·¼Ç¼ 2-ÎҵľºÅļǼ RecordResult = 0 #(BYTE RecordResult)//¼Ç¼½á¹û 0-Á÷ÅÄ 1-ÅÄÂô³É½» 2-»ØÊÕ 3-¾º¼Û³É¹¦ 4-¾º¼Ûʧ°Ü RecordTime = "" #(char RecordTime[19])//¼Ç¼ʱ¼ä yyyy-MM-dd hh:mm:ss BidderPrice = 0 #(DWORD BidderPrice)//³É½»¼Û¸ñ BidderName = "" #(char BidderName[33])//³É½»Íæ¼ÒÃû ItemID = 0 #(DWORD ItemID) ItemCount = 0 #(WORD ItemCount) UserDataLen = 0 #(WORD UserDataLen) UserData = "" #(String UserData)//×Ô¶¨ÒåÊý¾Ý data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.ItemGUID,_pos = CommFunc.ReadString(_lpData, _pos,40) self.FamilyID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.RecordType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.RecordResult,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.RecordTime,_pos = CommFunc.ReadString(_lpData, _pos,19) self.BidderPrice,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.BidderName,_pos = CommFunc.ReadString(_lpData, _pos,33) self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ItemCount,_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.ItemGUID = "" self.FamilyID = 0 self.RecordType = 0 self.RecordResult = 0 self.RecordTime = "" self.BidderPrice = 0 self.BidderName = "" self.ItemID = 0 self.ItemCount = 0 self.UserDataLen = 0 self.UserData = "" return def GetLength(self): length = 0 length += 40 length += 4 length += 1 length += 1 length += 19 length += 4 length += 33 length += 4 length += 2 length += 2 length += len(self.UserData) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, 40, self.ItemGUID) data = CommFunc.WriteDWORD(data, self.FamilyID) data = CommFunc.WriteBYTE(data, self.RecordType) data = CommFunc.WriteBYTE(data, self.RecordResult) data = CommFunc.WriteString(data, 19, self.RecordTime) data = CommFunc.WriteDWORD(data, self.BidderPrice) data = CommFunc.WriteString(data, 33, self.BidderName) data = CommFunc.WriteDWORD(data, self.ItemID) data = CommFunc.WriteWORD(data, self.ItemCount) data = CommFunc.WriteWORD(data, self.UserDataLen) data = CommFunc.WriteString(data, self.UserDataLen, self.UserData) return data def OutputString(self): DumpString = ''' ItemGUID:%s, FamilyID:%d, RecordType:%d, RecordResult:%d, RecordTime:%s, BidderPrice:%d, BidderName:%s, ItemID:%d, ItemCount:%d, UserDataLen:%d, UserData:%s '''\ %( self.ItemGUID, self.FamilyID, self.RecordType, self.RecordResult, self.RecordTime, self.BidderPrice, self.BidderName, self.ItemID, self.ItemCount, self.UserDataLen, self.UserData ) return DumpString class tagGCPlayerAuctionRecordInfo(Structure): Head = tagHead() Count = 0 #(BYTE Count) AuctionRecordList = list() #(vector AuctionRecordList) data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB5 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): temAuctionRecordList = tagGCPlayerAuctionRecord() _pos = temAuctionRecordList.ReadData(_lpData, _pos) self.AuctionRecordList.append(temAuctionRecordList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB5 self.Head.SubCmd = 0x03 self.Count = 0 self.AuctionRecordList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.Count): length += self.AuctionRecordList[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.AuctionRecordList[i].GetLength(), self.AuctionRecordList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Count:%d, AuctionRecordList:%s '''\ %( self.Head.OutputString(), self.Count, "..." ) return DumpString m_NAtagGCPlayerAuctionRecordInfo=tagGCPlayerAuctionRecordInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCPlayerAuctionRecordInfo.Head.Cmd,m_NAtagGCPlayerAuctionRecordInfo.Head.SubCmd))] = m_NAtagGCPlayerAuctionRecordInfo #------------------------------------------------------ # B5 08 ÅÄÂôÐÐË¢ÐÂÅÄÆ· #tagGCRefreshAuctionItemInfo class tagGCRefreshAuctionItem(Structure): ItemGUID = "" #(char ItemGUID[40]) AuctionType = 0 #(BYTE AuctionType)//ÅÄÆ·ÀàÐÍ£¬0-È«·þÅÄÆ·£¬1-ÏÉÃËÅÄÆ· AddTime = "" #(char AddTime[19])//ÉϼÜʱ¼ä BidderID = 0 #(DWORD BidderID)//×î¸ß¾ºÅÄÍæ¼ÒID£¬Ò²¾ÍÊǵ±Ç°×î¸ß¾º¼ÛÍæ¼ÒID BidderPrice = 0 #(DWORD BidderPrice)//×î¸ß¾ºÅļ۸ñ BiddingTime = "" #(char BiddingTime[19])//¾º¼Ûʱ¼ä yyyy-MM-dd hh:mm:ss data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.ItemGUID,_pos = CommFunc.ReadString(_lpData, _pos,40) self.AuctionType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.AddTime,_pos = CommFunc.ReadString(_lpData, _pos,19) self.BidderID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.BidderPrice,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.BiddingTime,_pos = CommFunc.ReadString(_lpData, _pos,19) return _pos def Clear(self): self.ItemGUID = "" self.AuctionType = 0 self.AddTime = "" self.BidderID = 0 self.BidderPrice = 0 self.BiddingTime = "" return def GetLength(self): length = 0 length += 40 length += 1 length += 19 length += 4 length += 4 length += 19 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, 40, self.ItemGUID) data = CommFunc.WriteBYTE(data, self.AuctionType) data = CommFunc.WriteString(data, 19, self.AddTime) data = CommFunc.WriteDWORD(data, self.BidderID) data = CommFunc.WriteDWORD(data, self.BidderPrice) data = CommFunc.WriteString(data, 19, self.BiddingTime) return data def OutputString(self): DumpString = ''' ItemGUID:%s, AuctionType:%d, AddTime:%s, BidderID:%d, BidderPrice:%d, BiddingTime:%s '''\ %( self.ItemGUID, self.AuctionType, self.AddTime, self.BidderID, self.BidderPrice, self.BiddingTime ) return DumpString class tagGCRefreshAuctionItemInfo(Structure): Head = tagHead() RefreshCount = 0 #(BYTE RefreshCount) RefreshAuctionItemList = list() #(vector RefreshAuctionItemList) data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB5 self.Head.SubCmd = 0x08 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.RefreshCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.RefreshCount): temRefreshAuctionItemList = tagGCRefreshAuctionItem() _pos = temRefreshAuctionItemList.ReadData(_lpData, _pos) self.RefreshAuctionItemList.append(temRefreshAuctionItemList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB5 self.Head.SubCmd = 0x08 self.RefreshCount = 0 self.RefreshAuctionItemList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.RefreshCount): length += self.RefreshAuctionItemList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.RefreshCount) for i in range(self.RefreshCount): data = CommFunc.WriteString(data, self.RefreshAuctionItemList[i].GetLength(), self.RefreshAuctionItemList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, RefreshCount:%d, RefreshAuctionItemList:%s '''\ %( self.Head.OutputString(), self.RefreshCount, "..." ) return DumpString m_NAtagGCRefreshAuctionItemInfo=tagGCRefreshAuctionItemInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCRefreshAuctionItemInfo.Head.Cmd,m_NAtagGCRefreshAuctionItemInfo.Head.SubCmd))] = m_NAtagGCRefreshAuctionItemInfo #------------------------------------------------------ # B9 13 ½øÈë×é¶Ó¸±±¾Ê§°ÜÔ­Òò #tagGCEnterTeamFBFailReason class tagGCEnterTeamFBFailReason(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("MapID", c_int), # ÇëÇó½øÈëµÄµØÍ¼ID ("AskType", c_ubyte), # ÇëÇóÀàÐÍ£º 0-Æ¥ÅäÇëÇó£»1-½øÈëÇëÇó ("Reason", c_ubyte), # ʧ°ÜÔ­Òò£º2-´ÎÊý²»×㣻3-½øÈëCDÖУ»6-ÃÅÆ±²»×ã ] def __init__(self): self.Clear() self.Cmd = 0xB9 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 = 0xB9 self.SubCmd = 0x13 self.MapID = 0 self.AskType = 0 self.Reason = 0 return def GetLength(self): return sizeof(tagGCEnterTeamFBFailReason) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// B9 13 ½øÈë×é¶Ó¸±±¾Ê§°ÜÔ­Òò //tagGCEnterTeamFBFailReason: Cmd:%s, SubCmd:%s, MapID:%d, AskType:%d, Reason:%d '''\ %( self.Cmd, self.SubCmd, self.MapID, self.AskType, self.Reason ) return DumpString m_NAtagGCEnterTeamFBFailReason=tagGCEnterTeamFBFailReason() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCEnterTeamFBFailReason.Cmd,m_NAtagGCEnterTeamFBFailReason.SubCmd))] = m_NAtagGCEnterTeamFBFailReason #------------------------------------------------------ # 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 #------------------------------------------------------ # C0 05 ¿ç·þPKÈü¼¾ÅÅÐаñ #tagGCCrossRealmPKBillboardInfo class tagGCCrossRealmPKBillboardData(Structure): PlayerID = 0 #(DWORD PlayerID) NameLen = 0 #(BYTE NameLen) PlayerName = "" #(String PlayerName) Job = 0 #(BYTE Job) FightPower = 0 #(DWORD FightPower) RealmLV = 0 #(WORD RealmLV) PKScore = 0 #(DWORD PKScore) DanLV = 0 #(BYTE DanLV) 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.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.PKScore,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.DanLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): self.PlayerID = 0 self.NameLen = 0 self.PlayerName = "" self.Job = 0 self.FightPower = 0 self.RealmLV = 0 self.PKScore = 0 self.DanLV = 0 return def GetLength(self): length = 0 length += 4 length += 1 length += len(self.PlayerName) length += 1 length += 4 length += 2 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.PlayerName) data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteDWORD(data, self.FightPower) data = CommFunc.WriteWORD(data, self.RealmLV) data = CommFunc.WriteDWORD(data, self.PKScore) data = CommFunc.WriteBYTE(data, self.DanLV) return data def OutputString(self): DumpString = ''' PlayerID:%d, NameLen:%d, PlayerName:%s, Job:%d, FightPower:%d, RealmLV:%d, PKScore:%d, DanLV:%d '''\ %( self.PlayerID, self.NameLen, self.PlayerName, self.Job, self.FightPower, self.RealmLV, self.PKScore, self.DanLV ) return DumpString class tagGCCrossRealmPKBillboardInfo(Structure): Head = tagHead() ZoneID = 0 #(BYTE ZoneID)// ÈüÇøID SeasonID = 0 #(BYTE SeasonID)// Èü¼¾ID Count = 0 #(WORD Count) PKBillboardList = list() #(vector PKBillboardList) data = None def __init__(self): self.Clear() self.Head.Cmd = 0xC0 self.Head.SubCmd = 0x05 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.ZoneID,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.SeasonID,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos) for i in range(self.Count): temPKBillboardList = tagGCCrossRealmPKBillboardData() _pos = temPKBillboardList.ReadData(_lpData, _pos) self.PKBillboardList.append(temPKBillboardList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xC0 self.Head.SubCmd = 0x05 self.ZoneID = 0 self.SeasonID = 0 self.Count = 0 self.PKBillboardList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 1 length += 2 for i in range(self.Count): length += self.PKBillboardList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.ZoneID) data = CommFunc.WriteBYTE(data, self.SeasonID) data = CommFunc.WriteWORD(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.PKBillboardList[i].GetLength(), self.PKBillboardList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, ZoneID:%d, SeasonID:%d, Count:%d, PKBillboardList:%s '''\ %( self.Head.OutputString(), self.ZoneID, self.SeasonID, self.Count, "..." ) return DumpString m_NAtagGCCrossRealmPKBillboardInfo=tagGCCrossRealmPKBillboardInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCCrossRealmPKBillboardInfo.Head.Cmd,m_NAtagGCCrossRealmPKBillboardInfo.Head.SubCmd))] = m_NAtagGCCrossRealmPKBillboardInfo #------------------------------------------------------ # C0 01 ¿ç·þPKÆ¥Åä³É¹¦ #tagGCCrossRealmPKMatchOK class tagGCCrossRealmPKMatchPlayer(Structure): PlayerID = 0 #(DWORD PlayerID) NameLen = 0 #(BYTE NameLen) PlayerName = "" #(String PlayerName)// ¿ç·þÃû×Ö Job = 0 #(BYTE Job) LV = 0 #(WORD LV) MaxHP = 0 #(DWORD MaxHP)// ĬÈÏÂúѪ MaxProDef = 0 #(DWORD MaxProDef)// ×î´ó»¤¶Ü 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.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.MaxHP,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MaxProDef,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): self.PlayerID = 0 self.NameLen = 0 self.PlayerName = "" self.Job = 0 self.LV = 0 self.MaxHP = 0 self.MaxProDef = 0 return def GetLength(self): length = 0 length += 4 length += 1 length += len(self.PlayerName) length += 1 length += 2 length += 4 length += 4 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.WriteBYTE(data, self.Job) data = CommFunc.WriteWORD(data, self.LV) data = CommFunc.WriteDWORD(data, self.MaxHP) data = CommFunc.WriteDWORD(data, self.MaxProDef) return data def OutputString(self): DumpString = ''' PlayerID:%d, NameLen:%d, PlayerName:%s, Job:%d, LV:%d, MaxHP:%d, MaxProDef:%d '''\ %( self.PlayerID, self.NameLen, self.PlayerName, self.Job, self.LV, self.MaxHP, self.MaxProDef ) return DumpString class tagGCCrossRealmPKMatchOK(Structure): Head = tagHead() RoomID = 0 #(WORD RoomID)// ·¿¼äID NameLen = 0 #(BYTE NameLen) PlayerName = "" #(String PlayerName)// ¿ç·þÃû×Ö Number = 0 #(BYTE Number)// λÖñàºÅ£»1-×ó£¬2-ÓÒ MatchPlayerCount = 0 #(BYTE MatchPlayerCount) MatchPlayer = list() #(vector MatchPlayer)// Æ¥Åäµ½µÄÍæ¼Ò data = None def __init__(self): self.Clear() self.Head.Cmd = 0xC0 self.Head.SubCmd = 0x01 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.RoomID,_pos = CommFunc.ReadWORD(_lpData, _pos) self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen) self.Number,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.MatchPlayerCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.MatchPlayerCount): temMatchPlayer = tagGCCrossRealmPKMatchPlayer() _pos = temMatchPlayer.ReadData(_lpData, _pos) self.MatchPlayer.append(temMatchPlayer) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xC0 self.Head.SubCmd = 0x01 self.RoomID = 0 self.NameLen = 0 self.PlayerName = "" self.Number = 0 self.MatchPlayerCount = 0 self.MatchPlayer = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 length += 1 length += len(self.PlayerName) length += 1 length += 1 for i in range(self.MatchPlayerCount): length += self.MatchPlayer[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteWORD(data, self.RoomID) data = CommFunc.WriteBYTE(data, self.NameLen) data = CommFunc.WriteString(data, self.NameLen, self.PlayerName) data = CommFunc.WriteBYTE(data, self.Number) data = CommFunc.WriteBYTE(data, self.MatchPlayerCount) for i in range(self.MatchPlayerCount): data = CommFunc.WriteString(data, self.MatchPlayer[i].GetLength(), self.MatchPlayer[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, RoomID:%d, NameLen:%d, PlayerName:%s, Number:%d, MatchPlayerCount:%d, MatchPlayer:%s '''\ %( self.Head.OutputString(), self.RoomID, self.NameLen, self.PlayerName, self.Number, self.MatchPlayerCount, "..." ) return DumpString m_NAtagGCCrossRealmPKMatchOK=tagGCCrossRealmPKMatchOK() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCCrossRealmPKMatchOK.Head.Cmd,m_NAtagGCCrossRealmPKMatchOK.Head.SubCmd))] = m_NAtagGCCrossRealmPKMatchOK #------------------------------------------------------ # C0 03 ¿ç·þPKÕ½¶·½á¹û #tagGCCrossRealmPKOverInfo class tagGCCrossRealmPKOverInfo(Structure): Head = tagHead() TimeStr = "" #(char TimeStr[19])// ½áËãʱ¼ä£¬¸ñʽ yyyy-MM-dd HH:mm:ss OverType = 0 #(BYTE OverType)// 0-Õý³££¬1-ÓÐÈËÀëÏß WinnerID = 0 #(DWORD WinnerID)// ʤ·½ID RoundCount = 0 #(BYTE RoundCount)// PK»ØºÏÊý RoundWinnerID = list() #(vector RoundWinnerID)// »ØºÏ»ñʤIDÁбí AddScore = 0 #(WORD AddScore)// ±¾³¡¼Ó·Ö Score = 0 #(DWORD Score)// µ±Ç°»ý·Ö DanLV = 0 #(BYTE DanLV)// µ±Ç°¶Îλ CWinCnt = 0 #(WORD CWinCnt)// µ±Ç°Á¬Ê¤Êý TagNameLen = 0 #(BYTE TagNameLen) TagName = "" #(String TagName) data = None def __init__(self): self.Clear() self.Head.Cmd = 0xC0 self.Head.SubCmd = 0x03 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.TimeStr,_pos = CommFunc.ReadString(_lpData, _pos,19) self.OverType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.WinnerID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.RoundCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.RoundCount): value,_pos=CommFunc.ReadDWORD(_lpData,_pos) self.RoundWinnerID.append(value) self.AddScore,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Score,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.DanLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.CWinCnt,_pos = CommFunc.ReadWORD(_lpData, _pos) self.TagNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.TagName,_pos = CommFunc.ReadString(_lpData, _pos,self.TagNameLen) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xC0 self.Head.SubCmd = 0x03 self.TimeStr = "" self.OverType = 0 self.WinnerID = 0 self.RoundCount = 0 self.RoundWinnerID = list() self.AddScore = 0 self.Score = 0 self.DanLV = 0 self.CWinCnt = 0 self.TagNameLen = 0 self.TagName = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 19 length += 1 length += 4 length += 1 length += 4 * self.RoundCount length += 2 length += 4 length += 1 length += 2 length += 1 length += len(self.TagName) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteString(data, 19, self.TimeStr) data = CommFunc.WriteBYTE(data, self.OverType) data = CommFunc.WriteDWORD(data, self.WinnerID) data = CommFunc.WriteBYTE(data, self.RoundCount) for i in range(self.RoundCount): data = CommFunc.WriteDWORD(data, self.RoundWinnerID[i]) data = CommFunc.WriteWORD(data, self.AddScore) data = CommFunc.WriteDWORD(data, self.Score) data = CommFunc.WriteBYTE(data, self.DanLV) data = CommFunc.WriteWORD(data, self.CWinCnt) data = CommFunc.WriteBYTE(data, self.TagNameLen) data = CommFunc.WriteString(data, self.TagNameLen, self.TagName) return data def OutputString(self): DumpString = ''' Head:%s, TimeStr:%s, OverType:%d, WinnerID:%d, RoundCount:%d, RoundWinnerID:%s, AddScore:%d, Score:%d, DanLV:%d, CWinCnt:%d, TagNameLen:%d, TagName:%s '''\ %( self.Head.OutputString(), self.TimeStr, self.OverType, self.WinnerID, self.RoundCount, "...", self.AddScore, self.Score, self.DanLV, self.CWinCnt, self.TagNameLen, self.TagName ) return DumpString m_NAtagGCCrossRealmPKOverInfo=tagGCCrossRealmPKOverInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCCrossRealmPKOverInfo.Head.Cmd,m_NAtagGCCrossRealmPKOverInfo.Head.SubCmd))] = m_NAtagGCCrossRealmPKOverInfo #------------------------------------------------------ # C0 04 ¿ç·þPKÈüÇøÈü¼¾ÐÅÏ¢ #tagGCCrossRealmPKSeasonInfo class tagGCCrossRealmPKSeason(Structure): SeasonID = 0 #(WORD SeasonID)// µ±Ç°Èü¼¾ID StartDate = "" #(char StartDate[10])// ¿ªÊ¼ÈÕÆÚ yyyy-MM-dd EndDate = "" #(char EndDate[10])// ½áÊøÈÕÆÚ yyyy-MM-dd EndTime = "" #(char EndTime[5])// Èü¼¾½áËãʱ¼ä£¬Èü¼¾½±Àø¸Ãʱ¼äºó²Å¿ÉÁìÈ¡ hh:mm data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.SeasonID,_pos = CommFunc.ReadWORD(_lpData, _pos) self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10) self.EndDate,_pos = CommFunc.ReadString(_lpData, _pos,10) self.EndTime,_pos = CommFunc.ReadString(_lpData, _pos,5) return _pos def Clear(self): self.SeasonID = 0 self.StartDate = "" self.EndDate = "" self.EndTime = "" return def GetLength(self): length = 0 length += 2 length += 10 length += 10 length += 5 return length def GetBuffer(self): data = '' data = CommFunc.WriteWORD(data, self.SeasonID) data = CommFunc.WriteString(data, 10, self.StartDate) data = CommFunc.WriteString(data, 10, self.EndDate) data = CommFunc.WriteString(data, 5, self.EndTime) return data def OutputString(self): DumpString = ''' SeasonID:%d, StartDate:%s, EndDate:%s, EndTime:%s '''\ %( self.SeasonID, self.StartDate, self.EndDate, self.EndTime ) return DumpString class tagGCCrossRealmPKZone(Structure): ZoneID = 0 #(BYTE ZoneID)// ÈüÇøID ZoneNameLen = 0 #(BYTE ZoneNameLen) ZoneName = "" #(String ZoneName)// ÈüÇøÃû SeasonCount = 0 #(WORD SeasonCount) SeasonList = list() #(vector SeasonList)// Èü¼¾Áбí data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.ZoneID,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ZoneNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ZoneName,_pos = CommFunc.ReadString(_lpData, _pos,self.ZoneNameLen) self.SeasonCount,_pos = CommFunc.ReadWORD(_lpData, _pos) for i in range(self.SeasonCount): temSeasonList = tagGCCrossRealmPKSeason() _pos = temSeasonList.ReadData(_lpData, _pos) self.SeasonList.append(temSeasonList) return _pos def Clear(self): self.ZoneID = 0 self.ZoneNameLen = 0 self.ZoneName = "" self.SeasonCount = 0 self.SeasonList = list() return def GetLength(self): length = 0 length += 1 length += 1 length += len(self.ZoneName) length += 2 for i in range(self.SeasonCount): length += self.SeasonList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteBYTE(data, self.ZoneID) data = CommFunc.WriteBYTE(data, self.ZoneNameLen) data = CommFunc.WriteString(data, self.ZoneNameLen, self.ZoneName) data = CommFunc.WriteWORD(data, self.SeasonCount) for i in range(self.SeasonCount): data = CommFunc.WriteString(data, self.SeasonList[i].GetLength(), self.SeasonList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' ZoneID:%d, ZoneNameLen:%d, ZoneName:%s, SeasonCount:%d, SeasonList:%s '''\ %( self.ZoneID, self.ZoneNameLen, self.ZoneName, self.SeasonCount, "..." ) return DumpString class tagGCCrossRealmPKSeasonInfo(Structure): Head = tagHead() ZoneCount = 0 #(BYTE ZoneCount)// ÈüÇø¸öÊý ZoneList = list() #(vector ZoneList)// ÈüÇøÁбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xC0 self.Head.SubCmd = 0x04 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.ZoneCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.ZoneCount): temZoneList = tagGCCrossRealmPKZone() _pos = temZoneList.ReadData(_lpData, _pos) self.ZoneList.append(temZoneList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xC0 self.Head.SubCmd = 0x04 self.ZoneCount = 0 self.ZoneList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.ZoneCount): length += self.ZoneList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.ZoneCount) for i in range(self.ZoneCount): data = CommFunc.WriteString(data, self.ZoneList[i].GetLength(), self.ZoneList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, ZoneCount:%d, ZoneList:%s '''\ %( self.Head.OutputString(), self.ZoneCount, "..." ) return DumpString m_NAtagGCCrossRealmPKSeasonInfo=tagGCCrossRealmPKSeasonInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCCrossRealmPKSeasonInfo.Head.Cmd,m_NAtagGCCrossRealmPKSeasonInfo.Head.SubCmd))] = m_NAtagGCCrossRealmPKSeasonInfo #------------------------------------------------------ # C0 06 ¿ç·þPK±¾·þÈü¼¾×´Ì¬ #tagGCCrossRealmPKSeasonState class tagGCCrossRealmPKSeasonState(Structure): Head = tagHead() ZoneID = 0 #(BYTE ZoneID)// ËùÊôÈüÇøID SeasonID = 0 #(WORD SeasonID)// µ±Ç°Èü¼¾ID SeasonState = 0 #(BYTE SeasonState)// Èü¼¾×´Ì¬£»0-먦Æô£¬1-¿ªÆôÖУ¬2-ÒѽáÊø MatchState = 0 #(BYTE MatchState)// Æ¥Åä״̬£»0-먦Æô£»1-¿ªÆôÖÐ CrossZoneNameLen = 0 #(BYTE CrossZoneNameLen) CrossZoneName = "" #(String CrossZoneName)// ¿ç·þ·ÖÇøÃû data = None def __init__(self): self.Clear() self.Head.Cmd = 0xC0 self.Head.SubCmd = 0x06 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.ZoneID,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.SeasonID,_pos = CommFunc.ReadWORD(_lpData, _pos) self.SeasonState,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.MatchState,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.CrossZoneNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.CrossZoneName,_pos = CommFunc.ReadString(_lpData, _pos,self.CrossZoneNameLen) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xC0 self.Head.SubCmd = 0x06 self.ZoneID = 0 self.SeasonID = 0 self.SeasonState = 0 self.MatchState = 0 self.CrossZoneNameLen = 0 self.CrossZoneName = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 2 length += 1 length += 1 length += 1 length += len(self.CrossZoneName) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.ZoneID) data = CommFunc.WriteWORD(data, self.SeasonID) data = CommFunc.WriteBYTE(data, self.SeasonState) data = CommFunc.WriteBYTE(data, self.MatchState) data = CommFunc.WriteBYTE(data, self.CrossZoneNameLen) data = CommFunc.WriteString(data, self.CrossZoneNameLen, self.CrossZoneName) return data def OutputString(self): DumpString = ''' Head:%s, ZoneID:%d, SeasonID:%d, SeasonState:%d, MatchState:%d, CrossZoneNameLen:%d, CrossZoneName:%s '''\ %( self.Head.OutputString(), self.ZoneID, self.SeasonID, self.SeasonState, self.MatchState, self.CrossZoneNameLen, self.CrossZoneName ) return DumpString m_NAtagGCCrossRealmPKSeasonState=tagGCCrossRealmPKSeasonState() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCCrossRealmPKSeasonState.Head.Cmd,m_NAtagGCCrossRealmPKSeasonState.Head.SubCmd))] = m_NAtagGCCrossRealmPKSeasonState #------------------------------------------------------ # C0 02 ¿ç·þPK¿ªÊ¼Æ¥Åä #tagGCCrossRealmPKStartMatch class tagGCCrossRealmPKStartMatch(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0xC0 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 = 0xC0 self.SubCmd = 0x02 return def GetLength(self): return sizeof(tagGCCrossRealmPKStartMatch) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// C0 02 ¿ç·þPK¿ªÊ¼Æ¥Åä //tagGCCrossRealmPKStartMatch: Cmd:%s, SubCmd:%s '''\ %( self.Cmd, self.SubCmd ) return DumpString m_NAtagGCCrossRealmPKStartMatch=tagGCCrossRealmPKStartMatch() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCCrossRealmPKStartMatch.Cmd,m_NAtagGCCrossRealmPKStartMatch.SubCmd))] = m_NAtagGCCrossRealmPKStartMatch #------------------------------------------------------ #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 12 Íæ¼Ò³õʼ»¯ #tagMCDBPlayer class tagMCDBPlayer(Structure): Head = tagHead() AccID = "" #(char AccID[65])//ÕʺÅÃû, ¸Ã½ÇÉ«ËùÔÚµÄÕʺŵÄÓû§Ãû PlayerID = 0 #(DWORD PlayerID) PlayerName = "" #(char PlayerName[33])//size = 14 AccState = 0 #(BYTE AccState)//0: δ´´½¨, 1: ´´½¨OK,Õý³£µÇ¼ 2:·âºÅ 3:ÒÑɾ³ý GMLevel = 0 #(BYTE GMLevel)//GMµÈ¼¶, 0:²»ÊÇGM >=1 : GMµÄµÈ¼¶ Sex = 0 #(BYTE Sex)//ÐÔ±ð Job = 0 #(BYTE Job)//Ö°Òµ, 0.ÐÂÊÖ 1.ÓÎÏÀ 2.սʿ 3.¹­¼ýÊÖ 4.ÊõÊ¿ 5.µÀÊ¿ ReincarnationLv = 0 #(WORD ReincarnationLv)// תÉúµÈ¼¶ LV = 0 #(WORD LV)//µÈ¼¶ LVEx = 0 #(WORD LVEx)//Íæ¼ÒµÈ¼¶¸±±¾£¬ÓÃÓÚתÉú LV2 = 0 #(WORD LV2)//´óʦµÈ¼¶ ExpPoint = 0 #(DWORD ExpPoint)//À©³ä¾­ÑéµãÊý TotalExp = 0 #(DWORD TotalExp)//×ܾ­Ñé Family = 0 #(DWORD Family)//¼Ò×å FamilyName = "" #(char FamilyName[33])//¼Ò×åÃû³Æ TeamHornor = 0 #(int TeamHornor)//×é¶ÓÈÙÓþ FamilyHornor = 0 #(int FamilyHornor)//¼Ò×åÈÙÒ« FamilyActiveValue = 0 #(int FamilyActiveValue)//¼Ò×å»îÔ¾¶È LastWeekFamilyActiveValue = 0 #(int LastWeekFamilyActiveValue)//ÉÏÖܼÒ×å»îÔ¾¶È CountryHornor = 0 #(int CountryHornor)//±¾Öܹú¼Ò¹¦Ñ«Öµ CountryLastWeekHornor = 0 #(int CountryLastWeekHornor)//ÉÏÖܹú¼Ò¹¦Ñ«Öµ Mate = 0 #(DWORD Mate) Gold = 0 #(DWORD Gold)//½ð×Ó GoldPaper = 0 #(DWORD GoldPaper)//½ðƱ Silver = 0 #(DWORD Silver)//Òø×Ó SilverPaper = 0 #(DWORD SilverPaper)//񿮱 FightPoint = 0 #(DWORD FightPoint)//Õ½¶·Öµ HappyPoint = 0 #(DWORD HappyPoint)//ÍÑ»ú¹Òʱ³¤£¨Ã룩 LineID = 0 #(BYTE LineID)//½ÇÉ«ËùÔÚÏß· MapID = 0 #(WORD MapID)//½ÇÉ«ËùÔÚµØÍ¼ PosX = 0 #(WORD PosX)//½Çɫ׸±ê PosY = 0 #(WORD PosY) RebornMapID = 0 #(WORD RebornMapID)//ÖØÉúµãµØÍ¼ID RebornPosX = 0 #(WORD RebornPosX) RebornPosY = 0 #(WORD RebornPosY) State = 0 #(BYTE State)//½Çɫ״̬ 0.Õý³£ÔÚÏß1.ÍÑ»ú¹ÒÔÚÏß 2ÍÑ»ú¹ÒËÀÍö HP = 0 #(DWORD HP)//µ±Ç°HP XP = 0 #(DWORD XP)//µ±Ç°XP HPRestoreSetting = 0 #(WORD HPRestoreSetting)//ÉÙÓÚÕâ¸öÖµ%×Ô¶¯ºÈѪ MPRestoreSetting = 0 #(WORD MPRestoreSetting)//ÉÙÓÚÕâ¸öÖµ%×Ô¶¯ºÈħ FreePoint = 0 #(DWORD FreePoint)//δ·ÖÅäµãÊý FreeSkillPoint = 0 #(DWORD FreeSkillPoint)//δ·ÖÅäµÄ¼¼Äܵã BaseSTR = 0 #(int BaseSTR)//ÂãÌåÁ¦Á¿ BasePNE = 0 #(int BasePNE)//ÂãÌåÕæÔª BasePHY = 0 #(int BasePHY)//ÂãÌå½î¹Ç BaseCON = 0 #(int BaseCON)//ÂãÌåÌåÆÇ STR = 0 #(int STR)//Á¦Á¿ PNE = 0 #(int PNE)//ÕæÔª PHY = 0 #(int PHY)//½î¹Ç CON = 0 #(int CON)//ÌåÆÇ PKValue = 0 #(WORD PKValue)//ºâÁ¿PKÄÜÁ¦µÄÒ»ÏîÊôÐÔ£¬Óɹ¥·À¼ÆËã¶øµÃ BackpackLV = 0 #(BYTE BackpackLV)//±³°üµÈ¼¶ WarehouseLV = 0 #(BYTE WarehouseLV)//²Ö¿âµÈ¼¶ TeamID = 0 #(DWORD TeamID)//¶ÓÎéID UseGoldType = 0 #(BYTE UseGoldType)//ĬÈÏÓýð×Ó/½ðƱ ÀàÐÍΪMoneyType UseSilverType = 0 #(BYTE UseSilverType)//ĬÈÏÓõÄÒø×Ó/񿮱 AttackMode = 0 #(BYTE AttackMode)//¹¥»÷ģʽ LastWeekOnlineTime = 0 #(DWORD LastWeekOnlineTime)//ÉÏÖÜÔÚÏßʱ¼ä FBID = 0 #(BYTE FBID)//fb id FamilyLV = 0 #(BYTE FamilyLV)//¼Ò×åµÈ¼¶ FriendFavor = 0 #(DWORD FriendFavor)//ºÃÓÑÈËÆøÖµ Energy = 0 #(DWORD Energy)//¾«Á¦Öµ EquipShowSwitch = 0 #(DWORD EquipShowSwitch)//×°±¸ÏÔʾ¿ª¹Ø LuckValue = 0 #(DWORD LuckValue)//ÐÒÔËÖµ ExAttr1 = 0 #(DWORD ExAttr1)//À©Õ¹ÊôÐÔ1£¬¸÷ÏîĿרÓà ExAttr2 = 0 #(DWORD ExAttr2)//À©Õ¹ÊôÐÔ2£¬¸÷ÏîĿרÓà ExAttr3 = 0 #(DWORD ExAttr3)//À©Õ¹ÊôÐÔ3£¬¸÷ÏîĿרÓà ExAttr4 = 0 #(DWORD ExAttr4)//À©Õ¹ÊôÐÔ4£¬¸÷ÏîĿרÓà ExAttr5 = 0 #(DWORD ExAttr5)//À©Õ¹ÊôÐÔ5£¬¸÷ÏîĿרÓà Faction = 0 #(BYTE Faction)//ÕóÓª InfamyValue = 0 #(DWORD InfamyValue)//¶ñÃûÖµ OfficialRank = 0 #(BYTE OfficialRank)//¹Ù½×£¬¹ÙÖ°µÈ¼¶ ChangeCoinPointTotal = 0 #(DWORD ChangeCoinPointTotal)//¶Ò»»µÄµãÊý×Ü¼Æ VIPLv = 0 #(BYTE VIPLv)//VIPµÈ¼¶ VIPLvForPhone = 0 #(BYTE VIPLvForPhone)//ÒÆ¶¯VIPµÈ¼¶ ExAttr6 = 0 #(DWORD ExAttr6)//À©Õ¹ÊôÐÔ6£¬¸÷ÏîĿרÓà ExAttr7 = 0 #(DWORD ExAttr7)//À©Õ¹ÊôÐÔ7£¬¸÷ÏîĿרÓà ExAttr8 = 0 #(DWORD ExAttr8)//À©Õ¹ÊôÐÔ8£¬¸÷ÏîĿרÓà ExAttr9 = 0 #(DWORD ExAttr9)//À©Õ¹ÊôÐÔ9£¬¸÷ÏîĿרÓà ExAttr10 = 0 #(DWORD ExAttr10)//À©Õ¹ÊôÐÔ10£¬¸÷ÏîĿרÓà ModelMark = 0 #(DWORD ModelMark)// ±äÐÎÄ£ÐÍmark ExAttr11 = 0 #(DWORD ExAttr11)//Ô¤ÁôµÄÀ©Õ¹ÊôÐÔ×ֶΣ¬ÓÃÀ´´æ·ÅÏîÄ¿ÌØ¶¨µÄÊôÐÔ ExAttr12 = 0 #(DWORD ExAttr12)//Ô¤ÁôµÄÀ©Õ¹ÊôÐÔ×ֶΣ¬ÓÃÀ´´æ·ÅÏîÄ¿ÌØ¶¨µÄÊôÐÔ ExAttr13 = 0 #(DWORD ExAttr13)//Ô¤ÁôµÄÀ©Õ¹ÊôÐÔ×ֶΣ¬ÓÃÀ´´æ·ÅÏîÄ¿ÌØ¶¨µÄÊôÐÔ ExAttr14 = 0 #(DWORD ExAttr14)//Ô¤ÁôµÄÀ©Õ¹ÊôÐÔ×ֶΣ¬ÓÃÀ´´æ·ÅÏîÄ¿ÌØ¶¨µÄÊôÐÔ OperateInfo = 0 #(DWORD OperateInfo)//Íæ¼Ò¸½¼ÓÔËÓªÉÌÐÅÏ¢ Operate = "" #(char Operate[15])//ËùÊôÔËÓªÉÌÆ½Ì¨Ãû ServerID = 0 #(DWORD ServerID)//ËùÊôÇø·þID ExAttr15 = 0 #(DWORD ExAttr15)//Ô¤ÁôµÄÀ©Õ¹ÊôÐÔ×ֶΣ¬ÓÃÀ´´æ·ÅÏîÄ¿ÌØ¶¨µÄÊôÐÔ ExAttr16 = 0 #(DWORD ExAttr16)//Ô¤ÁôµÄÀ©Õ¹ÊôÐÔ×ֶΣ¬ÓÃÀ´´æ·ÅÏîÄ¿ÌØ¶¨µÄÊôÐÔ ExAttr17 = 0 #(DWORD ExAttr17)//Ô¤ÁôµÄÀ©Õ¹ÊôÐÔ×ֶΣ¬ÓÃÀ´´æ·ÅÏîÄ¿ÌØ¶¨µÄÊôÐÔ ExAttr18 = 0 #(DWORD ExAttr18)//Ô¤ÁôµÄÀ©Õ¹ÊôÐÔ×ֶΣ¬ÓÃÀ´´æ·ÅÏîÄ¿ÌØ¶¨µÄÊôÐÔ ExAttr19 = 0 #(DWORD ExAttr19)//Ô¤ÁôµÄÀ©Õ¹ÊôÐÔ×ֶΣ¬ÓÃÀ´´æ·ÅÏîÄ¿ÌØ¶¨µÄÊôÐÔ ExAttr20 = 0 #(DWORD ExAttr20)//Ô¤ÁôµÄÀ©Õ¹ÊôÐÔ×ֶΣ¬ÓÃÀ´´æ·ÅÏîÄ¿ÌØ¶¨µÄÊôÐÔ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA1 self.Head.SubCmd = 0x12 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.AccID,_pos = CommFunc.ReadString(_lpData, _pos,65) self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33) self.AccState,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.GMLevel,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Sex,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ReincarnationLv,_pos = CommFunc.ReadWORD(_lpData, _pos) self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.LVEx,_pos = CommFunc.ReadWORD(_lpData, _pos) self.LV2,_pos = CommFunc.ReadWORD(_lpData, _pos) self.ExpPoint,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.TotalExp,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Family,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.FamilyName,_pos = CommFunc.ReadString(_lpData, _pos,33) self.TeamHornor,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.FamilyHornor,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.FamilyActiveValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.LastWeekFamilyActiveValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.CountryHornor,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.CountryLastWeekHornor,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Mate,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Gold,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.GoldPaper,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Silver,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.SilverPaper,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.FightPoint,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.HappyPoint,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.LineID,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.MapID,_pos = CommFunc.ReadWORD(_lpData, _pos) self.PosX,_pos = CommFunc.ReadWORD(_lpData, _pos) self.PosY,_pos = CommFunc.ReadWORD(_lpData, _pos) self.RebornMapID,_pos = CommFunc.ReadWORD(_lpData, _pos) self.RebornPosX,_pos = CommFunc.ReadWORD(_lpData, _pos) self.RebornPosY,_pos = CommFunc.ReadWORD(_lpData, _pos) self.State,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.HP,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.XP,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.HPRestoreSetting,_pos = CommFunc.ReadWORD(_lpData, _pos) self.MPRestoreSetting,_pos = CommFunc.ReadWORD(_lpData, _pos) self.FreePoint,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.FreeSkillPoint,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.BaseSTR,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.BasePNE,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.BasePHY,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.BaseCON,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.STR,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.PNE,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.PHY,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.CON,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.PKValue,_pos = CommFunc.ReadWORD(_lpData, _pos) self.BackpackLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.WarehouseLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.TeamID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.UseGoldType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.UseSilverType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.AttackMode,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LastWeekOnlineTime,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.FBID,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.FamilyLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.FriendFavor,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Energy,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.EquipShowSwitch,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.LuckValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ExAttr1,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ExAttr2,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ExAttr3,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ExAttr4,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ExAttr5,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Faction,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.InfamyValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.OfficialRank,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ChangeCoinPointTotal,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.VIPLv,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.VIPLvForPhone,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ExAttr6,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ExAttr7,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ExAttr8,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ExAttr9,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ExAttr10,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ModelMark,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ExAttr11,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ExAttr12,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ExAttr13,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ExAttr14,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.OperateInfo,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Operate,_pos = CommFunc.ReadString(_lpData, _pos,15) self.ServerID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ExAttr15,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ExAttr16,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ExAttr17,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ExAttr18,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ExAttr19,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ExAttr20,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA1 self.Head.SubCmd = 0x12 self.AccID = "" self.PlayerID = 0 self.PlayerName = "" self.AccState = 0 self.GMLevel = 0 self.Sex = 0 self.Job = 0 self.ReincarnationLv = 0 self.LV = 0 self.LVEx = 0 self.LV2 = 0 self.ExpPoint = 0 self.TotalExp = 0 self.Family = 0 self.FamilyName = "" self.TeamHornor = 0 self.FamilyHornor = 0 self.FamilyActiveValue = 0 self.LastWeekFamilyActiveValue = 0 self.CountryHornor = 0 self.CountryLastWeekHornor = 0 self.Mate = 0 self.Gold = 0 self.GoldPaper = 0 self.Silver = 0 self.SilverPaper = 0 self.FightPoint = 0 self.HappyPoint = 0 self.LineID = 0 self.MapID = 0 self.PosX = 0 self.PosY = 0 self.RebornMapID = 0 self.RebornPosX = 0 self.RebornPosY = 0 self.State = 0 self.HP = 0 self.XP = 0 self.HPRestoreSetting = 0 self.MPRestoreSetting = 0 self.FreePoint = 0 self.FreeSkillPoint = 0 self.BaseSTR = 0 self.BasePNE = 0 self.BasePHY = 0 self.BaseCON = 0 self.STR = 0 self.PNE = 0 self.PHY = 0 self.CON = 0 self.PKValue = 0 self.BackpackLV = 0 self.WarehouseLV = 0 self.TeamID = 0 self.UseGoldType = 0 self.UseSilverType = 0 self.AttackMode = 0 self.LastWeekOnlineTime = 0 self.FBID = 0 self.FamilyLV = 0 self.FriendFavor = 0 self.Energy = 0 self.EquipShowSwitch = 0 self.LuckValue = 0 self.ExAttr1 = 0 self.ExAttr2 = 0 self.ExAttr3 = 0 self.ExAttr4 = 0 self.ExAttr5 = 0 self.Faction = 0 self.InfamyValue = 0 self.OfficialRank = 0 self.ChangeCoinPointTotal = 0 self.VIPLv = 0 self.VIPLvForPhone = 0 self.ExAttr6 = 0 self.ExAttr7 = 0 self.ExAttr8 = 0 self.ExAttr9 = 0 self.ExAttr10 = 0 self.ModelMark = 0 self.ExAttr11 = 0 self.ExAttr12 = 0 self.ExAttr13 = 0 self.ExAttr14 = 0 self.OperateInfo = 0 self.Operate = "" self.ServerID = 0 self.ExAttr15 = 0 self.ExAttr16 = 0 self.ExAttr17 = 0 self.ExAttr18 = 0 self.ExAttr19 = 0 self.ExAttr20 = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 65 length += 4 length += 33 length += 1 length += 1 length += 1 length += 1 length += 2 length += 2 length += 2 length += 2 length += 4 length += 4 length += 4 length += 33 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 1 length += 2 length += 2 length += 2 length += 2 length += 2 length += 2 length += 1 length += 4 length += 4 length += 2 length += 2 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 2 length += 1 length += 1 length += 4 length += 1 length += 1 length += 1 length += 4 length += 1 length += 1 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 1 length += 4 length += 1 length += 4 length += 1 length += 1 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 15 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteString(data, 65, self.AccID) data = CommFunc.WriteDWORD(data, self.PlayerID) data = CommFunc.WriteString(data, 33, self.PlayerName) data = CommFunc.WriteBYTE(data, self.AccState) data = CommFunc.WriteBYTE(data, self.GMLevel) data = CommFunc.WriteBYTE(data, self.Sex) data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteWORD(data, self.ReincarnationLv) data = CommFunc.WriteWORD(data, self.LV) data = CommFunc.WriteWORD(data, self.LVEx) data = CommFunc.WriteWORD(data, self.LV2) data = CommFunc.WriteDWORD(data, self.ExpPoint) data = CommFunc.WriteDWORD(data, self.TotalExp) data = CommFunc.WriteDWORD(data, self.Family) data = CommFunc.WriteString(data, 33, self.FamilyName) data = CommFunc.WriteDWORD(data, self.TeamHornor) data = CommFunc.WriteDWORD(data, self.FamilyHornor) data = CommFunc.WriteDWORD(data, self.FamilyActiveValue) data = CommFunc.WriteDWORD(data, self.LastWeekFamilyActiveValue) data = CommFunc.WriteDWORD(data, self.CountryHornor) data = CommFunc.WriteDWORD(data, self.CountryLastWeekHornor) data = CommFunc.WriteDWORD(data, self.Mate) data = CommFunc.WriteDWORD(data, self.Gold) data = CommFunc.WriteDWORD(data, self.GoldPaper) data = CommFunc.WriteDWORD(data, self.Silver) data = CommFunc.WriteDWORD(data, self.SilverPaper) data = CommFunc.WriteDWORD(data, self.FightPoint) data = CommFunc.WriteDWORD(data, self.HappyPoint) data = CommFunc.WriteBYTE(data, self.LineID) data = CommFunc.WriteWORD(data, self.MapID) data = CommFunc.WriteWORD(data, self.PosX) data = CommFunc.WriteWORD(data, self.PosY) data = CommFunc.WriteWORD(data, self.RebornMapID) data = CommFunc.WriteWORD(data, self.RebornPosX) data = CommFunc.WriteWORD(data, self.RebornPosY) data = CommFunc.WriteBYTE(data, self.State) data = CommFunc.WriteDWORD(data, self.HP) data = CommFunc.WriteDWORD(data, self.XP) data = CommFunc.WriteWORD(data, self.HPRestoreSetting) data = CommFunc.WriteWORD(data, self.MPRestoreSetting) data = CommFunc.WriteDWORD(data, self.FreePoint) data = CommFunc.WriteDWORD(data, self.FreeSkillPoint) data = CommFunc.WriteDWORD(data, self.BaseSTR) data = CommFunc.WriteDWORD(data, self.BasePNE) data = CommFunc.WriteDWORD(data, self.BasePHY) data = CommFunc.WriteDWORD(data, self.BaseCON) data = CommFunc.WriteDWORD(data, self.STR) data = CommFunc.WriteDWORD(data, self.PNE) data = CommFunc.WriteDWORD(data, self.PHY) data = CommFunc.WriteDWORD(data, self.CON) data = CommFunc.WriteWORD(data, self.PKValue) data = CommFunc.WriteBYTE(data, self.BackpackLV) data = CommFunc.WriteBYTE(data, self.WarehouseLV) data = CommFunc.WriteDWORD(data, self.TeamID) data = CommFunc.WriteBYTE(data, self.UseGoldType) data = CommFunc.WriteBYTE(data, self.UseSilverType) data = CommFunc.WriteBYTE(data, self.AttackMode) data = CommFunc.WriteDWORD(data, self.LastWeekOnlineTime) data = CommFunc.WriteBYTE(data, self.FBID) data = CommFunc.WriteBYTE(data, self.FamilyLV) data = CommFunc.WriteDWORD(data, self.FriendFavor) data = CommFunc.WriteDWORD(data, self.Energy) data = CommFunc.WriteDWORD(data, self.EquipShowSwitch) data = CommFunc.WriteDWORD(data, self.LuckValue) data = CommFunc.WriteDWORD(data, self.ExAttr1) data = CommFunc.WriteDWORD(data, self.ExAttr2) data = CommFunc.WriteDWORD(data, self.ExAttr3) data = CommFunc.WriteDWORD(data, self.ExAttr4) data = CommFunc.WriteDWORD(data, self.ExAttr5) data = CommFunc.WriteBYTE(data, self.Faction) data = CommFunc.WriteDWORD(data, self.InfamyValue) data = CommFunc.WriteBYTE(data, self.OfficialRank) data = CommFunc.WriteDWORD(data, self.ChangeCoinPointTotal) data = CommFunc.WriteBYTE(data, self.VIPLv) data = CommFunc.WriteBYTE(data, self.VIPLvForPhone) data = CommFunc.WriteDWORD(data, self.ExAttr6) data = CommFunc.WriteDWORD(data, self.ExAttr7) data = CommFunc.WriteDWORD(data, self.ExAttr8) data = CommFunc.WriteDWORD(data, self.ExAttr9) data = CommFunc.WriteDWORD(data, self.ExAttr10) data = CommFunc.WriteDWORD(data, self.ModelMark) data = CommFunc.WriteDWORD(data, self.ExAttr11) data = CommFunc.WriteDWORD(data, self.ExAttr12) data = CommFunc.WriteDWORD(data, self.ExAttr13) data = CommFunc.WriteDWORD(data, self.ExAttr14) data = CommFunc.WriteDWORD(data, self.OperateInfo) data = CommFunc.WriteString(data, 15, self.Operate) data = CommFunc.WriteDWORD(data, self.ServerID) data = CommFunc.WriteDWORD(data, self.ExAttr15) data = CommFunc.WriteDWORD(data, self.ExAttr16) data = CommFunc.WriteDWORD(data, self.ExAttr17) data = CommFunc.WriteDWORD(data, self.ExAttr18) data = CommFunc.WriteDWORD(data, self.ExAttr19) data = CommFunc.WriteDWORD(data, self.ExAttr20) return data def OutputString(self): DumpString = ''' Head:%s, AccID:%s, PlayerID:%d, PlayerName:%s, AccState:%d, GMLevel:%d, Sex:%d, Job:%d, ReincarnationLv:%d, LV:%d, LVEx:%d, LV2:%d, ExpPoint:%d, TotalExp:%d, Family:%d, FamilyName:%s, TeamHornor:%d, FamilyHornor:%d, FamilyActiveValue:%d, LastWeekFamilyActiveValue:%d, CountryHornor:%d, CountryLastWeekHornor:%d, Mate:%d, Gold:%d, GoldPaper:%d, Silver:%d, SilverPaper:%d, FightPoint:%d, HappyPoint:%d, LineID:%d, MapID:%d, PosX:%d, PosY:%d, RebornMapID:%d, RebornPosX:%d, RebornPosY:%d, State:%d, HP:%d, XP:%d, HPRestoreSetting:%d, MPRestoreSetting:%d, FreePoint:%d, FreeSkillPoint:%d, BaseSTR:%d, BasePNE:%d, BasePHY:%d, BaseCON:%d, STR:%d, PNE:%d, PHY:%d, CON:%d, PKValue:%d, BackpackLV:%d, WarehouseLV:%d, TeamID:%d, UseGoldType:%d, UseSilverType:%d, AttackMode:%d, LastWeekOnlineTime:%d, FBID:%d, FamilyLV:%d, FriendFavor:%d, Energy:%d, EquipShowSwitch:%d, LuckValue:%d, ExAttr1:%d, ExAttr2:%d, ExAttr3:%d, ExAttr4:%d, ExAttr5:%d, Faction:%d, InfamyValue:%d, OfficialRank:%d, ChangeCoinPointTotal:%d, VIPLv:%d, VIPLvForPhone:%d, ExAttr6:%d, ExAttr7:%d, ExAttr8:%d, ExAttr9:%d, ExAttr10:%d, ModelMark:%d, ExAttr11:%d, ExAttr12:%d, ExAttr13:%d, ExAttr14:%d, OperateInfo:%d, Operate:%s, ServerID:%d, ExAttr15:%d, ExAttr16:%d, ExAttr17:%d, ExAttr18:%d, ExAttr19:%d, ExAttr20:%d '''\ %( self.Head.OutputString(), self.AccID, self.PlayerID, self.PlayerName, self.AccState, self.GMLevel, self.Sex, self.Job, self.ReincarnationLv, self.LV, self.LVEx, self.LV2, self.ExpPoint, self.TotalExp, self.Family, self.FamilyName, self.TeamHornor, self.FamilyHornor, self.FamilyActiveValue, self.LastWeekFamilyActiveValue, self.CountryHornor, self.CountryLastWeekHornor, self.Mate, self.Gold, self.GoldPaper, self.Silver, self.SilverPaper, self.FightPoint, self.HappyPoint, self.LineID, self.MapID, self.PosX, self.PosY, self.RebornMapID, self.RebornPosX, self.RebornPosY, self.State, self.HP, self.XP, self.HPRestoreSetting, self.MPRestoreSetting, self.FreePoint, self.FreeSkillPoint, self.BaseSTR, self.BasePNE, self.BasePHY, self.BaseCON, self.STR, self.PNE, self.PHY, self.CON, self.PKValue, self.BackpackLV, self.WarehouseLV, self.TeamID, self.UseGoldType, self.UseSilverType, self.AttackMode, self.LastWeekOnlineTime, self.FBID, self.FamilyLV, self.FriendFavor, self.Energy, self.EquipShowSwitch, self.LuckValue, self.ExAttr1, self.ExAttr2, self.ExAttr3, self.ExAttr4, self.ExAttr5, self.Faction, self.InfamyValue, self.OfficialRank, self.ChangeCoinPointTotal, self.VIPLv, self.VIPLvForPhone, self.ExAttr6, self.ExAttr7, self.ExAttr8, self.ExAttr9, self.ExAttr10, self.ModelMark, self.ExAttr11, self.ExAttr12, self.ExAttr13, self.ExAttr14, self.OperateInfo, self.Operate, self.ServerID, self.ExAttr15, self.ExAttr16, self.ExAttr17, self.ExAttr18, self.ExAttr19, self.ExAttr20 ) return DumpString m_NAtagMCDBPlayer=tagMCDBPlayer() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCDBPlayer.Head.Cmd,m_NAtagMCDBPlayer.Head.SubCmd))] = m_NAtagMCDBPlayer #------------------------------------------------------ #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 24 ֪ͨ°óÓñתÅ̽á¹û #tagMCBindJadeWheelResult class tagMCBindJadeWheelResult(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Index", c_ubyte), # ¸ñ×Ó ("Cnt", c_ubyte), #½ñÈÕÒÑת´ÎÊý ] def __init__(self): self.Clear() self.Cmd = 0xA3 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 = 0xA3 self.SubCmd = 0x24 self.Index = 0 self.Cnt = 0 return def GetLength(self): return sizeof(tagMCBindJadeWheelResult) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A3 24 ֪ͨ°óÓñתÅ̽á¹û //tagMCBindJadeWheelResult: Cmd:%s, SubCmd:%s, Index:%d, Cnt:%d '''\ %( self.Cmd, self.SubCmd, self.Index, self.Cnt ) return DumpString m_NAtagMCBindJadeWheelResult=tagMCBindJadeWheelResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCBindJadeWheelResult.Cmd,m_NAtagMCBindJadeWheelResult.SubCmd))] = m_NAtagMCBindJadeWheelResult #------------------------------------------------------ #A3 B7 µ±ÈÕÀۼƹ¥»÷boss´ÎÊý #tagMCBOSSAttactCnt class tagMCBossCntInfo(Structure): _pack_ = 1 _fields_ = [ ("BossType", c_ubyte), #±àºÅÀàÐÍ0-ÊÀ½çboss 1-bossÖ®¼Ò ("KillCnt", c_int), #»÷ɱ´ÎÊý ("ItemAddCnt", 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.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), # Áì½±¼Ç¼ °´Î»´æ´¢ ("ExtraPoint", 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 self.ExtraPoint = 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, ExtraPoint:%d '''\ %( self.Cmd, self.SubCmd, self.CurValue, self.RealmPoint, self.StageIndex, self.AwardRecord, self.ExtraPoint ) 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 C1 ÉñÊÞÖúս״̬ˢР#tagMCDogzHelpbattleState class tagMCDogzHelpbattleState(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("DogzID", c_ubyte), # ÉñÊÞID ("BatteState", c_ubyte), #ÊÇ·ñÒÑÖúÕ½, 0·ñ1ÊÇ ] def __init__(self): self.Clear() self.Cmd = 0xA3 self.SubCmd = 0xC1 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 = 0xC1 self.DogzID = 0 self.BatteState = 0 return def GetLength(self): return sizeof(tagMCDogzHelpbattleState) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A3 C1 ÉñÊÞÖúս״̬ˢР//tagMCDogzHelpbattleState: Cmd:%s, SubCmd:%s, DogzID:%d, BatteState:%d '''\ %( self.Cmd, self.SubCmd, self.DogzID, self.BatteState ) return DumpString m_NAtagMCDogzHelpbattleState=tagMCDogzHelpbattleState() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCDogzHelpbattleState.Cmd,m_NAtagMCDogzHelpbattleState.SubCmd))] = m_NAtagMCDogzHelpbattleState #------------------------------------------------------ # A3 C0 ÉñÊÞÐÅÏ¢ #tagMCDogzInfo class tagMCDogzInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("BuyHelpbattleCount", c_ubyte), #¶îÍ⹺ÂòµÄÖúÕ½Êý ] def __init__(self): self.Clear() self.Cmd = 0xA3 self.SubCmd = 0xC0 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 = 0xC0 self.BuyHelpbattleCount = 0 return def GetLength(self): return sizeof(tagMCDogzInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A3 C0 ÉñÊÞÐÅÏ¢ //tagMCDogzInfo: Cmd:%s, SubCmd:%s, BuyHelpbattleCount:%d '''\ %( self.Cmd, self.SubCmd, self.BuyHelpbattleCount ) return DumpString m_NAtagMCDogzInfo=tagMCDogzInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCDogzInfo.Cmd,m_NAtagMCDogzInfo.SubCmd))] = m_NAtagMCDogzInfo #------------------------------------------------------ # 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 B1 ×°±¸²¿Î»ÐÇÊýÐÅÏ¢ #tagMCEquipPartStarInfo class tagMCEquipPartStar(Structure): _pack_ = 1 _fields_ = [ ("EquipPackIndex", c_ushort), ("Star", 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.EquipPackIndex = 0 self.Star = 0 return def GetLength(self): return sizeof(tagMCEquipPartStar) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A3 B1 ×°±¸²¿Î»ÐÇÊýÐÅÏ¢ //tagMCEquipPartStarInfo: EquipPackIndex:%d, Star:%d '''\ %( self.EquipPackIndex, self.Star ) return DumpString class tagMCEquipPartStarInfo(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 = 0xB1 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 = tagMCEquipPartStar() _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 = 0xB1 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_NAtagMCEquipPartStarInfo=tagMCEquipPartStarInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCEquipPartStarInfo.Head.Cmd,m_NAtagMCEquipPartStarInfo.Head.SubCmd))] = m_NAtagMCEquipPartStarInfo #------------------------------------------------------ # 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 tagMCFBEncourageCnt(Structure): _pack_ = 1 _fields_ = [ ("MoneyType", c_ubyte), # ½ðÇ®ÀàÐÍ ("EncourageCnt", 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.MoneyType = 0 self.EncourageCnt = 0 return def GetLength(self): return sizeof(tagMCFBEncourageCnt) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//A3 0A ¸±±¾¹ÄÎèÐÅϢ֪ͨ //tagMCFBEncourageInfo: MoneyType:%d, EncourageCnt:%d '''\ %( self.MoneyType, self.EncourageCnt ) return DumpString class tagMCFBEncourageInfo(Structure): Head = tagHead() Cnt = 0 #(BYTE Cnt)// InfoList = list() #(vector InfoList)// ´ÎÊýÐÅÏ¢ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x0A 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 = tagMCFBEncourageCnt() _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 = 0x0A 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_NAtagMCFBEncourageInfo=tagMCFBEncourageInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFBEncourageInfo.Head.Cmd,m_NAtagMCFBEncourageInfo.Head.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), # ÊÇ·ñ¿ªÆô ("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.FuncID = 0 self.State = 0 self.AwardState = 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, AwardState:%d '''\ %( self.FuncID, self.State, self.AwardState ) 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 1E Íæ¼Ò¾Û»ê¿×ÐÅÏ¢ #tagMCGatherSoulHoleInfo class tagMCGatherSoulHoleInfo(Structure): Head = tagHead() Count = 0 #(BYTE Count)// ¿×ÐÅÏ¢Êý GatherSoulDataList = list() #(vector GatherSoulDataList)// ¿×Êý¾ÝÐÅÏ¢, Êý¾ÝÓë±³°üÊý¾ÝÏàͬ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x1E 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.GatherSoulDataList.append(value) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA3 self.Head.SubCmd = 0x1E self.Count = 0 self.GatherSoulDataList = 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.GatherSoulDataList[i]) return data def OutputString(self): DumpString = ''' Head:%s, Count:%d, GatherSoulDataList:%s '''\ %( self.Head.OutputString(), self.Count, "..." ) return DumpString m_NAtagMCGatherSoulHoleInfo=tagMCGatherSoulHoleInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCGatherSoulHoleInfo.Head.Cmd,m_NAtagMCGatherSoulHoleInfo.Head.SubCmd))] = m_NAtagMCGatherSoulHoleInfo #------------------------------------------------------ # 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 52 ·¨±¦µÈ¼¶ÐÅÏ¢ #tagMCMagicWeaponLVInfo class tagMCMagicWeaponInfo(Structure): _pack_ = 1 _fields_ = [ ("MWID", c_int), ("LV", c_ubyte), ("Exp", c_int), ("FBPassLV", c_ubyte), #¸±±¾¹Ø¿¨ ("IsWear", 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.FBPassLV = 0 self.IsWear = 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, FBPassLV:%d, IsWear:%d '''\ %( self.MWID, self.LV, self.Exp, self.FBPassLV, self.IsWear ) 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 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 ×°±¸²¿Î»Ç¿»¯ÐÅÏ¢ #tagMCEquipPartPlusInfo class tagMCEquipPartPlusLV(Structure): _pack_ = 1 _fields_ = [ ("PackType", c_ubyte), ("EquipIndex", c_ubyte), ("EquipPartStarLV", c_ushort), ("Proficiency", c_int), ("EvolveLV", 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.PackType = 0 self.EquipIndex = 0 self.EquipPartStarLV = 0 self.Proficiency = 0 self.EvolveLV = 0 return def GetLength(self): return sizeof(tagMCEquipPartPlusLV) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A3 B3 ×°±¸²¿Î»Ç¿»¯ÐÅÏ¢ //tagMCEquipPartPlusInfo: PackType:%d, EquipIndex:%d, EquipPartStarLV:%d, Proficiency:%d, EvolveLV:%d '''\ %( self.PackType, self.EquipIndex, self.EquipPartStarLV, self.Proficiency, self.EvolveLV ) return DumpString class tagMCEquipPartPlusInfo(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 = tagMCEquipPartPlusLV() _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_NAtagMCEquipPartPlusInfo=tagMCEquipPartPlusInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCEquipPartPlusInfo.Head.Cmd,m_NAtagMCEquipPartPlusInfo.Head.SubCmd))] = m_NAtagMCEquipPartPlusInfo #------------------------------------------------------ #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 26 NPCIDÒѲɼ¯´ÎÊýÐÅÏ¢ #tagMCNPCIDCollectionCntInfo class tagMCNPCIDCollectionCnt(Structure): _pack_ = 1 _fields_ = [ ("NPCID", c_int), #NPCID ("CollectionCnt", 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.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: NPCID:%d, CollectionCnt:%d '''\ %( 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 21 Æí¸£µ¤Ò©½á¹û #tagMCPrayElixirResult class tagMCPrayElixirResult(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ItemID", c_int), # ÎïÆ·ID ("PrayCnt", c_ubyte), # ½ñÈÕÆí¸£´ÎÊý ] def __init__(self): self.Clear() self.Cmd = 0xA3 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 = 0xA3 self.SubCmd = 0x21 self.ItemID = 0 self.PrayCnt = 0 return def GetLength(self): return sizeof(tagMCPrayElixirResult) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A3 21 Æí¸£µ¤Ò©½á¹û //tagMCPrayElixirResult: Cmd:%s, SubCmd:%s, ItemID:%d, PrayCnt:%d '''\ %( self.Cmd, self.SubCmd, self.ItemID, self.PrayCnt ) return DumpString m_NAtagMCPrayElixirResult=tagMCPrayElixirResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPrayElixirResult.Cmd,m_NAtagMCPrayElixirResult.SubCmd))] = m_NAtagMCPrayElixirResult #------------------------------------------------------ # A3 27 ¾³½çÐÞΪ³ØÐÅÏ¢ #tagMCRealmExpInfo class tagMCRealmExpInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("BeginTime", c_int), #¿ªÊ¼¼ÆÊ±Ê±¼ä ("CurExp", c_int), #µ±Ç°×ܾ­Ñé ("CurExpPoint", c_int), #µ±Ç°×ܾ­Ñéµã ] def __init__(self): self.Clear() self.Cmd = 0xA3 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 = 0xA3 self.SubCmd = 0x27 self.BeginTime = 0 self.CurExp = 0 self.CurExpPoint = 0 return def GetLength(self): return sizeof(tagMCRealmExpInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A3 27 ¾³½çÐÞΪ³ØÐÅÏ¢ //tagMCRealmExpInfo: Cmd:%s, SubCmd:%s, BeginTime:%d, CurExp:%d, CurExpPoint:%d '''\ %( self.Cmd, self.SubCmd, self.BeginTime, self.CurExp, self.CurExpPoint ) return DumpString m_NAtagMCRealmExpInfo=tagMCRealmExpInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCRealmExpInfo.Cmd,m_NAtagMCRealmExpInfo.SubCmd))] = m_NAtagMCRealmExpInfo #------------------------------------------------------ # A3 49 ×ÊÔ´ÕһشÎÊý #tagMCRecoverNum class tagMCRecoverNumInfo(Structure): _pack_ = 1 _fields_ = [ ("Index", c_ubyte), # ÕÒ»ØÏîË÷Òý ("RecoverCnt", c_ubyte), # ¿ÉÕһشÎÊý ("ExtraCnt", c_ubyte), # VIP¶îÍâ´ÎÊý ("ExtraData", c_ubyte), # ¶îÍâ²ÎÊý1 ("ExtraData2", c_ubyte), # ¶îÍâ²ÎÊý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.Index = 0 self.RecoverCnt = 0 self.ExtraCnt = 0 self.ExtraData = 0 self.ExtraData2 = 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, ExtraData2:%d '''\ %( self.Index, self.RecoverCnt, self.ExtraCnt, self.ExtraData, self.ExtraData2 ) 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 Í¨ÖªÍæ¼Ò¾³½çÐÅÏ¢ #tagMCSyncRealmInfo class tagMCSyncRealmInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("IsPass", c_ubyte), #ÊÇ·ñͨ¹Ø¸±±¾ ] 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.IsPass = 0 return def GetLength(self): return sizeof(tagMCSyncRealmInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A3 11 Í¨ÖªÍæ¼Ò¾³½çÐÅÏ¢ //tagMCSyncRealmInfo: Cmd:%s, SubCmd:%s, IsPass:%d '''\ %( self.Cmd, self.SubCmd, self.IsPass ) return DumpString m_NAtagMCSyncRealmInfo=tagMCSyncRealmInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSyncRealmInfo.Cmd,m_NAtagMCSyncRealmInfo.SubCmd))] = m_NAtagMCSyncRealmInfo #------------------------------------------------------ #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 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 17 ÁÄÌìÆøÅÝ¿ò״̬ #tagMCChatBubbleBoxState class tagMCChatBubbleBoxState(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("BoxState", c_int), # °´¶þ½øÖÆÎ»´æ´¢´ú±íÊÇ·ñÒÑ¿ªÆô£¬ÔÝÖ§³Ö31룬ÒÔºóÓÐÐèÒªÔÙ¼Ó ] def __init__(self): self.Clear() self.Cmd = 0xA7 self.SubCmd = 0x17 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 = 0x17 self.BoxState = 0 return def GetLength(self): return sizeof(tagMCChatBubbleBoxState) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A7 17 ÁÄÌìÆøÅÝ¿ò״̬ //tagMCChatBubbleBoxState: Cmd:%s, SubCmd:%s, BoxState:%d '''\ %( self.Cmd, self.SubCmd, self.BoxState ) return DumpString m_NAtagMCChatBubbleBoxState=tagMCChatBubbleBoxState() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCChatBubbleBoxState.Cmd,m_NAtagMCChatBubbleBoxState.SubCmd))] = m_NAtagMCChatBubbleBoxState #------------------------------------------------------ # A7 13 ¶¯Ì¬Õϰ­Îï״̬ #tagMCDynamicBarrierState class tagMCDynamicBarrier(Structure): _pack_ = 1 _fields_ = [ ("APosX", c_ushort), ("APosY", c_ushort), ("BPosX", c_ushort), ("BPosY", c_ushort), ("Angle", 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 self.Angle = 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, Angle:%d '''\ %( self.APosX, self.APosY, self.BPosX, self.BPosY, self.Angle ) 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 15 ֪ͨÏÉÃËÇÀBossÉËѪÐÅÏ¢ #tagMCFamilyBossHurtList class tagMCFamilyBossHurt(Structure): FamilyID = 0 #(DWORD FamilyID)// ËùÊôÏÉÃËID HurtID = 0 #(DWORD HurtID)// ÉËѪµÄID, ¸ù¾ÝÉËѪÀàÐͱíʾ²»Í¬µÄID, ÈçÏÉÃËID»òÍæ¼ÒID NameLen = 0 #(BYTE NameLen) HurtName = "" #(String HurtName) HurtValue = 0 #(DWORD HurtValue)// ÀÛ¼ÆÉËѪ£¬ÇóÓà1ÒÚµÄÖµ HurtValueEx = 0 #(DWORD HurtValueEx)// ÀÛ¼ÆÉËѪ£¬Õû³ý1ÒÚµÄÖµ InitTick = 0 #(DWORD InitTick)// ÉËѪ³õʼtick£¬ÓÃÓÚÅÅÐò£¬ÏȰ´ÉËѪµ¹ÐòÅÅ£¬ÔÙ°´tickÕýÐòÅÅ data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.FamilyID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.HurtID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.HurtName,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen) self.HurtValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.HurtValueEx,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.InitTick,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): self.FamilyID = 0 self.HurtID = 0 self.NameLen = 0 self.HurtName = "" self.HurtValue = 0 self.HurtValueEx = 0 self.InitTick = 0 return def GetLength(self): length = 0 length += 4 length += 4 length += 1 length += len(self.HurtName) length += 4 length += 4 length += 4 return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.FamilyID) data = CommFunc.WriteDWORD(data, self.HurtID) data = CommFunc.WriteBYTE(data, self.NameLen) data = CommFunc.WriteString(data, self.NameLen, self.HurtName) data = CommFunc.WriteDWORD(data, self.HurtValue) data = CommFunc.WriteDWORD(data, self.HurtValueEx) data = CommFunc.WriteDWORD(data, self.InitTick) return data def OutputString(self): DumpString = ''' FamilyID:%d, HurtID:%d, NameLen:%d, HurtName:%s, HurtValue:%d, HurtValueEx:%d, InitTick:%d '''\ %( self.FamilyID, self.HurtID, self.NameLen, self.HurtName, self.HurtValue, self.HurtValueEx, self.InitTick ) return DumpString class tagMCFamilyBossHurtList(Structure): Head = tagHead() ObjID = 0 #(DWORD ObjID) NPCID = 0 #(DWORD NPCID) HurtType = 0 #(BYTE HurtType)// 0-ʵʱÏÉÃËÉËѪ£¬1-ÀúÊ·ÏÉÃËÉËѪ£¬2-ÊµÊ±Íæ¼ÒÉËѪ£¬3-ÀúÊ·Íæ¼ÒÉËѪ IsSort = 0 #(BYTE IsSort)// ÊÇ·ñÅÅÐò¹ýµÄ£¬Ò»°ãboss±»»÷ɱºó»áͳһͬ²½Ò»´ÎÅÅÐò¹ýµÄ×îÖÕ½á¹û£¬ÆäËûÇé¿öÏ¿ͻ§¶Ë×Ô¼ºÅÅÐò HurtCount = 0 #(WORD HurtCount)// ÉËѪ¸öÊý HurtList = list() #(vector HurtList)// ÉËѪÁбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA7 self.Head.SubCmd = 0x15 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.HurtType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.IsSort,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.HurtCount,_pos = CommFunc.ReadWORD(_lpData, _pos) for i in range(self.HurtCount): temHurtList = tagMCFamilyBossHurt() _pos = temHurtList.ReadData(_lpData, _pos) self.HurtList.append(temHurtList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA7 self.Head.SubCmd = 0x15 self.ObjID = 0 self.NPCID = 0 self.HurtType = 0 self.IsSort = 0 self.HurtCount = 0 self.HurtList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 4 length += 1 length += 1 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.WriteDWORD(data, self.NPCID) data = CommFunc.WriteBYTE(data, self.HurtType) data = CommFunc.WriteBYTE(data, self.IsSort) 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, NPCID:%d, HurtType:%d, IsSort:%d, HurtCount:%d, HurtList:%s '''\ %( self.Head.OutputString(), self.ObjID, self.NPCID, self.HurtType, self.IsSort, self.HurtCount, "..." ) return DumpString m_NAtagMCFamilyBossHurtList=tagMCFamilyBossHurtList() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilyBossHurtList.Head.Cmd,m_NAtagMCFamilyBossHurtList.Head.SubCmd))] = m_NAtagMCFamilyBossHurtList #------------------------------------------------------ # 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 16 СÖúÊÖÉèÖà #tagMCLittleHelperSet class tagMCLittleHelperFuncSet(Structure): _pack_ = 1 _fields_ = [ ("SetNum", c_ubyte), # Íйܹ¦ÄÜÉèÖñàºÅ1~20£¬Ã¿¸ö±àºÅ¶ÔÓ¦µÄÍйܹ¦ÄÜǰ¶Ë×Ô¶¨Òå ("Value1", c_int), # ×Ô¶¨ÒåÖµ1£¬Èç¹û´æ´¢µÄÊǹ´Ñ¡ÐÅÏ¢, °´¶þ½øÖÆÎ»´æ´¢´ú±íÊÇ·ñ¹´Ñ¡£¬Ö§³Ö31λ£¬Ã¿Î»´ú±íµÄº¬Òåǰ¶Ë×Ô¶¨Òå ("Value2", c_int), # ×Ô¶¨ÒåÖµ2 ("Value3", c_int), # ×Ô¶¨ÒåÖµ3 ("Value4", c_int), # ×Ô¶¨ÒåÖµ4 ("Value5", c_int), # ×Ô¶¨ÒåÖµ5 ("Value6", c_int), # ×Ô¶¨ÒåÖµ6 ] 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.SetNum = 0 self.Value1 = 0 self.Value2 = 0 self.Value3 = 0 self.Value4 = 0 self.Value5 = 0 self.Value6 = 0 return def GetLength(self): return sizeof(tagMCLittleHelperFuncSet) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A7 16 СÖúÊÖÉèÖà //tagMCLittleHelperSet: SetNum:%d, Value1:%d, Value2:%d, Value3:%d, Value4:%d, Value5:%d, Value6:%d '''\ %( self.SetNum, self.Value1, self.Value2, self.Value3, self.Value4, self.Value5, self.Value6 ) return DumpString class tagMCLittleHelperSet(Structure): Head = tagHead() FuncSetCount = 0 #(BYTE FuncSetCount)// Íйܹ¦ÄÜÉèÖÃÊý£¬ÔÝÖ§³Ö20¸ö FuncSetList = list() #(vector FuncSetList)// Íйܹ¦ÄÜÉèÖÃÁбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA7 self.Head.SubCmd = 0x16 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.FuncSetCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.FuncSetCount): temFuncSetList = tagMCLittleHelperFuncSet() _pos = temFuncSetList.ReadData(_lpData, _pos) self.FuncSetList.append(temFuncSetList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA7 self.Head.SubCmd = 0x16 self.FuncSetCount = 0 self.FuncSetList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.FuncSetCount): length += self.FuncSetList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.FuncSetCount) for i in range(self.FuncSetCount): data = CommFunc.WriteString(data, self.FuncSetList[i].GetLength(), self.FuncSetList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, FuncSetCount:%d, FuncSetList:%s '''\ %( self.Head.OutputString(), self.FuncSetCount, "..." ) return DumpString m_NAtagMCLittleHelperSet=tagMCLittleHelperSet() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCLittleHelperSet.Head.Cmd,m_NAtagMCLittleHelperSet.Head.SubCmd))] = m_NAtagMCLittleHelperSet #------------------------------------------------------ # A7 14 ֪ͨ²éѯµÄNPCÊýÁ¿ #tagMCNPCCntList class tagMCNPCCntInfo(Structure): _pack_ = 1 _fields_ = [ ("NPCID", c_int), ("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.NPCID = 0 self.Cnt = 0 return def GetLength(self): return sizeof(tagMCNPCCntInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A7 14 ֪ͨ²éѯµÄNPCÊýÁ¿ //tagMCNPCCntList: NPCID:%d, Cnt:%d '''\ %( self.NPCID, self.Cnt ) return DumpString class tagMCNPCCntList(Structure): Head = tagHead() MapID = 0 #(DWORD MapID) NPCInfoCnt = 0 #(BYTE NPCInfoCnt) NPCInfoList = list() #(vector NPCInfoList) data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA7 self.Head.SubCmd = 0x14 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.NPCInfoCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.NPCInfoCnt): temNPCInfoList = tagMCNPCCntInfo() _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 = 0x14 self.MapID = 0 self.NPCInfoCnt = 0 self.NPCInfoList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 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.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, NPCInfoCnt:%d, NPCInfoList:%s '''\ %( self.Head.OutputString(), self.MapID, self.NPCInfoCnt, "..." ) return DumpString m_NAtagMCNPCCntList=tagMCNPCCntList() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCNPCCntList.Head.Cmd,m_NAtagMCNPCCntList.Head.SubCmd))] = m_NAtagMCNPCCntList #------------------------------------------------------ #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_ = [ ("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() 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.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: ObjID:%d, NPCID:%d, NPCHP:%d, MaxHP:%d, IsActive:%d, PosX:%d, PosY:%d, RefreshSecond:%d '''\ %( 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 16 ÉñÃØÉ̵êÉÌÆ·ÐÅÏ¢ #tagMCMysticalShopInfo class tagMCMysticalShopGoods(Structure): _pack_ = 1 _fields_ = [ ("GoodsID", 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.GoodsID = 0 return def GetLength(self): return sizeof(tagMCMysticalShopGoods) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A8 16 ÉñÃØÉ̵êÉÌÆ·ÐÅÏ¢ //tagMCMysticalShopInfo: GoodsID:%d '''\ %( self.GoodsID ) return DumpString class tagMCMysticalShopInfo(Structure): Head = tagHead() RefreshCnt = 0 #(WORD RefreshCnt)// ˢдÎÊý Count = 0 #(BYTE Count)// ÉÌÆ·Êý GoodsList = list() #(vector GoodsList)// ÉÌÆ·ÐÅÏ¢ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA8 self.Head.SubCmd = 0x16 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.RefreshCnt,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Count): temGoodsList = tagMCMysticalShopGoods() _pos = temGoodsList.ReadData(_lpData, _pos) self.GoodsList.append(temGoodsList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA8 self.Head.SubCmd = 0x16 self.RefreshCnt = 0 self.Count = 0 self.GoodsList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 length += 1 for i in range(self.Count): length += self.GoodsList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteWORD(data, self.RefreshCnt) data = CommFunc.WriteBYTE(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.GoodsList[i].GetLength(), self.GoodsList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, RefreshCnt:%d, Count:%d, GoodsList:%s '''\ %( self.Head.OutputString(), self.RefreshCnt, self.Count, "..." ) return DumpString m_NAtagMCMysticalShopInfo=tagMCMysticalShopInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCMysticalShopInfo.Head.Cmd,m_NAtagMCMysticalShopInfo.Head.SubCmd))] = m_NAtagMCMysticalShopInfo #------------------------------------------------------ # A8 06 ֪ͨÉñÃØÏÞ¹ºÉÌÆ·Ê±¼ä #tagMCMysticalShopTimeInfo class tagMCMysticalShopTime(Structure): _pack_ = 1 _fields_ = [ ("GoodsID", c_int), # ÉÌÆ·ID ("StartTime", 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.GoodsID = 0 self.StartTime = 0 return def GetLength(self): return sizeof(tagMCMysticalShopTime) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A8 06 ֪ͨÉñÃØÏÞ¹ºÉÌÆ·Ê±¼ä //tagMCMysticalShopTimeInfo: GoodsID:%d, StartTime:%d '''\ %( self.GoodsID, self.StartTime ) return DumpString class tagMCMysticalShopTimeInfo(Structure): Head = tagHead() Count = 0 #(WORD Count)// ÉÌÆ·Êý ShopTimeList = list() #(vector ShopTimeList)// ÉÌÆ·¿ªÂôÐÅÏ¢ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA8 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.ReadWORD(_lpData, _pos) for i in range(self.Count): temShopTimeList = tagMCMysticalShopTime() _pos = temShopTimeList.ReadData(_lpData, _pos) self.ShopTimeList.append(temShopTimeList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA8 self.Head.SubCmd = 0x06 self.Count = 0 self.ShopTimeList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 for i in range(self.Count): length += self.ShopTimeList[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.ShopTimeList[i].GetLength(), self.ShopTimeList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Count:%d, ShopTimeList:%s '''\ %( self.Head.OutputString(), self.Count, "..." ) return DumpString m_NAtagMCMysticalShopTimeInfo=tagMCMysticalShopTimeInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCMysticalShopTimeInfo.Head.Cmd,m_NAtagMCMysticalShopTimeInfo.Head.SubCmd))] = m_NAtagMCMysticalShopTimeInfo #------------------------------------------------------ # 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 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 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 #------------------------------------------------------ # A8 15 ÖïÏÉ×°±¸·Ö½â½á¹û֪ͨ #tagMCZhuXianDecomposeResult class tagMCZhuXianDecomposeItem(Structure): _pack_ = 1 _fields_ = [ ("ItemID", c_int), #ÎïÆ·ID ("ItemCnt", c_ubyte), #ÎïÆ·ÊýÁ¿ ("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.ItemCnt = 0 self.IsBind = 0 return def GetLength(self): return sizeof(tagMCZhuXianDecomposeItem) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A8 15 ÖïÏÉ×°±¸·Ö½â½á¹û֪ͨ //tagMCZhuXianDecomposeResult: ItemID:%d, ItemCnt:%d, IsBind:%d '''\ %( self.ItemID, self.ItemCnt, self.IsBind ) return DumpString class tagMCZhuXianDecomposeResult(Structure): Head = tagHead() Cnt = 0 #(BYTE Cnt)//ÊýÁ¿ ItemList = list() #(vector ItemList) data = None def __init__(self): self.Clear() self.Head.Cmd = 0xA8 self.Head.SubCmd = 0x15 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): temItemList = tagMCZhuXianDecomposeItem() _pos = temItemList.ReadData(_lpData, _pos) self.ItemList.append(temItemList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xA8 self.Head.SubCmd = 0x15 self.Cnt = 0 self.ItemList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.Cnt): length += self.ItemList[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.ItemList[i].GetLength(), self.ItemList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Cnt:%d, ItemList:%s '''\ %( self.Head.OutputString(), self.Cnt, "..." ) return DumpString m_NAtagMCZhuXianDecomposeResult=tagMCZhuXianDecomposeResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCZhuXianDecomposeResult.Head.Cmd,m_NAtagMCZhuXianDecomposeResult.Head.SubCmd))] = m_NAtagMCZhuXianDecomposeResult #------------------------------------------------------ # AA 0C µÇ¼½±Àø»î¶¯ÐÅÏ¢ #tagMCActLoginAwardInfo class tagMCActLoginAwardAction(Structure): TemplateID = 0 #(DWORD TemplateID)// Ä£°åID ActionType = 0 #(WORD ActionType)// »î¶¯Àà±ð TotalTimes = 0 #(DWORD TotalTimes)// ¿ÉÍê³ÉµÄ×Ü´ÎÊý£¬0±íʾ²»ÏÞ´ÎÊý SingleTimes = 0 #(DWORD SingleTimes)// µ¥´ÎÁì½±ÐèÒªµÄ´ÎÊý Count = 0 #(WORD Count)// ÎïÆ·ÅäÖó¤¶È ItemInfo = "" #(String ItemInfo)// ÎïÆ·ÐÅÏ¢ data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.TemplateID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ActionType,_pos = CommFunc.ReadWORD(_lpData, _pos) self.TotalTimes,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.SingleTimes,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos) self.ItemInfo,_pos = CommFunc.ReadString(_lpData, _pos,self.Count) return _pos def Clear(self): self.TemplateID = 0 self.ActionType = 0 self.TotalTimes = 0 self.SingleTimes = 0 self.Count = 0 self.ItemInfo = "" return def GetLength(self): length = 0 length += 4 length += 2 length += 4 length += 4 length += 2 length += len(self.ItemInfo) return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.TemplateID) data = CommFunc.WriteWORD(data, self.ActionType) data = CommFunc.WriteDWORD(data, self.TotalTimes) data = CommFunc.WriteDWORD(data, self.SingleTimes) data = CommFunc.WriteWORD(data, self.Count) data = CommFunc.WriteString(data, self.Count, self.ItemInfo) return data def OutputString(self): DumpString = ''' TemplateID:%d, ActionType:%d, TotalTimes:%d, SingleTimes:%d, Count:%d, ItemInfo:%s '''\ %( self.TemplateID, self.ActionType, self.TotalTimes, self.SingleTimes, self.Count, self.ItemInfo ) return DumpString class tagMCActLoginAwardDayInfo(Structure): ActCnt = 0 #(BYTE ActCnt)// ÊýÁ¿ TemplateList = list() #(vector TemplateList)// Ä£°åÁбí WorldLV = 0 #(WORD WorldLV)// ÊÀ½çµÈ¼¶ data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.ActCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.ActCnt): value,_pos=CommFunc.ReadWORD(_lpData,_pos) self.TemplateList.append(value) self.WorldLV,_pos = CommFunc.ReadWORD(_lpData, _pos) return _pos def Clear(self): self.ActCnt = 0 self.TemplateList = list() self.WorldLV = 0 return def GetLength(self): length = 0 length += 1 length += 2 * self.ActCnt length += 2 return length def GetBuffer(self): data = '' data = CommFunc.WriteBYTE(data, self.ActCnt) for i in range(self.ActCnt): data = CommFunc.WriteWORD(data, self.TemplateList[i]) data = CommFunc.WriteWORD(data, self.WorldLV) return data def OutputString(self): DumpString = ''' ActCnt:%d, TemplateList:%s, WorldLV:%d '''\ %( self.ActCnt, "...", self.WorldLV ) return DumpString class tagMCActLoginAwardInfo(Structure): Head = tagHead() StartDate = "" #(char StartDate[10])// ¿ªÊ¼ÈÕÆÚ y-m-d EndtDate = "" #(char EndtDate[10])// ½áÊøÈÕÆÚ y-m-d AdvanceMinutes = 0 #(WORD AdvanceMinutes)// ÌáǰÏÔʾ·ÖÖÓ IsDayReset = 0 #(BYTE IsDayReset)//ÊÇ·ñÿÌìÖØÖà ResetType = 0 #(BYTE ResetType)// ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà LimitLV = 0 #(WORD LimitLV)// ÏÞÖÆµÈ¼¶ DayCnt = 0 #(BYTE DayCnt)// ÌìÊý DayInfoList = list() #(vector DayInfoList)// ÿÌìÄ£°å TCount = 0 #(BYTE TCount)// Ä£°åÊý ActionInfo = list() #(vector ActionInfo)// »î¶¯Ä£°åÐÅÏ¢ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xAA self.Head.SubCmd = 0x0C 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.AdvanceMinutes,_pos = CommFunc.ReadWORD(_lpData, _pos) self.IsDayReset,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ResetType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.DayCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.DayCnt): temDayInfoList = tagMCActLoginAwardDayInfo() _pos = temDayInfoList.ReadData(_lpData, _pos) self.DayInfoList.append(temDayInfoList) self.TCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.TCount): temActionInfo = tagMCActLoginAwardAction() _pos = temActionInfo.ReadData(_lpData, _pos) self.ActionInfo.append(temActionInfo) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xAA self.Head.SubCmd = 0x0C self.StartDate = "" self.EndtDate = "" self.AdvanceMinutes = 0 self.IsDayReset = 0 self.ResetType = 0 self.LimitLV = 0 self.DayCnt = 0 self.DayInfoList = list() self.TCount = 0 self.ActionInfo = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 10 length += 10 length += 2 length += 1 length += 1 length += 2 length += 1 for i in range(self.DayCnt): length += self.DayInfoList[i].GetLength() length += 1 for i in range(self.TCount): length += self.ActionInfo[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.AdvanceMinutes) data = CommFunc.WriteBYTE(data, self.IsDayReset) data = CommFunc.WriteBYTE(data, self.ResetType) data = CommFunc.WriteWORD(data, self.LimitLV) data = CommFunc.WriteBYTE(data, self.DayCnt) for i in range(self.DayCnt): data = CommFunc.WriteString(data, self.DayInfoList[i].GetLength(), self.DayInfoList[i].GetBuffer()) data = CommFunc.WriteBYTE(data, self.TCount) for i in range(self.TCount): data = CommFunc.WriteString(data, self.ActionInfo[i].GetLength(), self.ActionInfo[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, StartDate:%s, EndtDate:%s, AdvanceMinutes:%d, IsDayReset:%d, ResetType:%d, LimitLV:%d, DayCnt:%d, DayInfoList:%s, TCount:%d, ActionInfo:%s '''\ %( self.Head.OutputString(), self.StartDate, self.EndtDate, self.AdvanceMinutes, self.IsDayReset, self.ResetType, self.LimitLV, self.DayCnt, "...", self.TCount, "..." ) return DumpString m_NAtagMCActLoginAwardInfo=tagMCActLoginAwardInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActLoginAwardInfo.Head.Cmd,m_NAtagMCActLoginAwardInfo.Head.SubCmd))] = m_NAtagMCActLoginAwardInfo #------------------------------------------------------ # AA 0D µÇ¼½±ÀøÍæ¼Ò»î¶¯ÐÅÏ¢ #tagMCActLoginAwardPlayerInfo class tagMCActLoginAwardTaskInfo(Structure): _pack_ = 1 _fields_ = [ ("TemplateID", c_ushort), # Ä£°å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.TemplateID = 0 self.CurTimes = 0 self.GotTimes = 0 return def GetLength(self): return sizeof(tagMCActLoginAwardTaskInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AA 0D µÇ¼½±ÀøÍæ¼Ò»î¶¯ÐÅÏ¢ //tagMCActLoginAwardPlayerInfo: TemplateID:%d, CurTimes:%d, GotTimes:%d '''\ %( self.TemplateID, self.CurTimes, self.GotTimes ) return DumpString class tagMCActLoginAwardDayPlayerInfo(Structure): DayIndex = 0 #(DWORD DayIndex)//µÚXÌì ACount = 0 #(DWORD ACount)//ÈÎÎñÌõÄ¿Êý TaskList = list() #(vector TaskList)//»î¶¯Íê³É´ÎÊýÐÅÏ¢ data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.DayIndex,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ACount,_pos = CommFunc.ReadDWORD(_lpData, _pos) for i in range(self.ACount): temTaskList = tagMCActLoginAwardTaskInfo() _pos = temTaskList.ReadData(_lpData, _pos) self.TaskList.append(temTaskList) return _pos def Clear(self): self.DayIndex = 0 self.ACount = 0 self.TaskList = list() return def GetLength(self): length = 0 length += 4 length += 4 for i in range(self.ACount): length += self.TaskList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.DayIndex) data = CommFunc.WriteDWORD(data, self.ACount) for i in range(self.ACount): data = CommFunc.WriteString(data, self.TaskList[i].GetLength(), self.TaskList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' DayIndex:%d, ACount:%d, TaskList:%s '''\ %( self.DayIndex, self.ACount, "..." ) return DumpString class tagMCActLoginAwardPlayerInfo(Structure): Head = tagHead() Count = 0 #(BYTE Count) DayInfoList = list() #(vector DayInfoList)//»î¶¯Íê³É´ÎÊýÐÅÏ¢ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xAA self.Head.SubCmd = 0x0D 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): temDayInfoList = tagMCActLoginAwardDayPlayerInfo() _pos = temDayInfoList.ReadData(_lpData, _pos) self.DayInfoList.append(temDayInfoList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xAA self.Head.SubCmd = 0x0D self.Count = 0 self.DayInfoList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.Count): length += self.DayInfoList[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.DayInfoList[i].GetLength(), self.DayInfoList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Count:%d, DayInfoList:%s '''\ %( self.Head.OutputString(), self.Count, "..." ) return DumpString m_NAtagMCActLoginAwardPlayerInfo=tagMCActLoginAwardPlayerInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActLoginAwardPlayerInfo.Head.Cmd,m_NAtagMCActLoginAwardPlayerInfo.Head.SubCmd))] = m_NAtagMCActLoginAwardPlayerInfo #------------------------------------------------------ # AA 1D ÀۼƳäÖµ»î¶¯ÐÅÏ¢ #tagMCActTotalRechargeInfo class tagMCTotalRechargeAwardItem(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(tagMCTotalRechargeAwardItem) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AA 1D ÀۼƳäÖµ»î¶¯ÐÅÏ¢ //tagMCActTotalRechargeInfo: ItemID:%d, ItemCount:%d, IsBind:%d '''\ %( self.ItemID, self.ItemCount, self.IsBind ) return DumpString class tagMCTotalRechargeAward(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 = tagMCTotalRechargeAwardItem() _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 tagMCTotalRechargeAwardDay(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 = tagMCTotalRechargeAward() _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 tagMCActTotalRechargeInfo(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 = 0x1D 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 = tagMCTotalRechargeAwardDay() _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 = 0x1D 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_NAtagMCActTotalRechargeInfo=tagMCActTotalRechargeInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActTotalRechargeInfo.Head.Cmd,m_NAtagMCActTotalRechargeInfo.Head.SubCmd))] = m_NAtagMCActTotalRechargeInfo #------------------------------------------------------ # AA 1B ÐíÔ¸³ØÍ϶¯½á¹û #tagMCActWishingDragResult class tagMCPlayerWishingDragInfo(Structure): _pack_ = 1 _fields_ = [ ("WellType", c_ubyte), # ¿â 0-¿ÉÑ¡¿â 1-½á¹û¿â ("Index", c_ubyte), # Ë÷Òý ("ItemID", c_int), # ÎïÆ·ID ("ItemCnt", c_ushort), # ÎïÆ·ÊýÁ¿ ("IsBind", c_ubyte), # ÊÇ·ñ°ó¶¨ ("IsSpecial", 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.WellType = 0 self.Index = 0 self.ItemID = 0 self.ItemCnt = 0 self.IsBind = 0 self.IsSpecial = 0 return def GetLength(self): return sizeof(tagMCPlayerWishingDragInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AA 1B ÐíÔ¸³ØÍ϶¯½á¹û //tagMCActWishingDragResult: WellType:%d, Index:%d, ItemID:%d, ItemCnt:%d, IsBind:%d, IsSpecial:%d '''\ %( self.WellType, self.Index, self.ItemID, self.ItemCnt, self.IsBind, self.IsSpecial ) return DumpString class tagMCActWishingDragResult(Structure): Head = tagHead() Cnt = 0 #(BYTE Cnt) InfoList = list() #(vector InfoList) data = None def __init__(self): self.Clear() self.Head.Cmd = 0xAA self.Head.SubCmd = 0x1B 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 = tagMCPlayerWishingDragInfo() _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 = 0x1B 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_NAtagMCActWishingDragResult=tagMCActWishingDragResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActWishingDragResult.Head.Cmd,m_NAtagMCActWishingDragResult.Head.SubCmd))] = m_NAtagMCActWishingDragResult #------------------------------------------------------ # AA 19 ÐíÔ¸³Ø»î¶¯ÐÅÏ¢ #tagMCActWishingWellInfo class tagMCWishingWellItem(Structure): _pack_ = 1 _fields_ = [ ("ItemID", c_int), # ÎïÆ·ID ("ItemCnt", c_ushort), # ÎïÆ·ÊýÁ¿ ("IsBind", c_ubyte), # ÊÇ·ñ°ó¶¨ ("Mark", c_int), # ÅÅÐò±êʶ ("Rare", 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.ItemCnt = 0 self.IsBind = 0 self.Mark = 0 self.Rare = 0 return def GetLength(self): return sizeof(tagMCWishingWellItem) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AA 19 ÐíÔ¸³Ø»î¶¯ÐÅÏ¢ //tagMCActWishingWellInfo: ItemID:%d, ItemCnt:%d, IsBind:%d, Mark:%d, Rare:%d '''\ %( self.ItemID, self.ItemCnt, self.IsBind, self.Mark, self.Rare ) return DumpString class tagMCActWishingWellInfo(Structure): Head = tagHead() StartDate = "" #(char StartDate[10])// ¿ªÊ¼ÈÕÆÚ y-m-d EndtDate = "" #(char EndtDate[10])// ½áÊøÈÕÆÚ y-m-d IsDayReset = 0 #(BYTE IsDayReset)//ÊÇ·ñÿÌìÖØÖà ResetType = 0 #(BYTE ResetType)// ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà LimitLV = 0 #(WORD LimitLV)// ÏÞÖÆµÈ¼¶ Count = 0 #(WORD Count)// ÎïÆ·Êý WellItemInfo = list() #(vector WellItemInfo)// Ëæ»ú¿âÎïÆ·ÐÅÏ¢ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xAA self.Head.SubCmd = 0x19 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.ResetType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos) for i in range(self.Count): temWellItemInfo = tagMCWishingWellItem() _pos = temWellItemInfo.ReadData(_lpData, _pos) self.WellItemInfo.append(temWellItemInfo) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xAA self.Head.SubCmd = 0x19 self.StartDate = "" self.EndtDate = "" self.IsDayReset = 0 self.ResetType = 0 self.LimitLV = 0 self.Count = 0 self.WellItemInfo = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 10 length += 10 length += 1 length += 1 length += 2 length += 2 for i in range(self.Count): length += self.WellItemInfo[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.WriteBYTE(data, self.ResetType) data = CommFunc.WriteWORD(data, self.LimitLV) data = CommFunc.WriteWORD(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.WellItemInfo[i].GetLength(), self.WellItemInfo[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, StartDate:%s, EndtDate:%s, IsDayReset:%d, ResetType:%d, LimitLV:%d, Count:%d, WellItemInfo:%s '''\ %( self.Head.OutputString(), self.StartDate, self.EndtDate, self.IsDayReset, self.ResetType, self.LimitLV, self.Count, "..." ) return DumpString m_NAtagMCActWishingWellInfo=tagMCActWishingWellInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActWishingWellInfo.Head.Cmd,m_NAtagMCActWishingWellInfo.Head.SubCmd))] = m_NAtagMCActWishingWellInfo #------------------------------------------------------ # AA 1A ÐíÔ¸³Ø»î¶¯Íæ¼ÒÐÅÏ¢ #tagMCActWishingWellPlayerInfo class tagMCPlayerWishingWellItem(Structure): _pack_ = 1 _fields_ = [ ("ItemID", c_int), # ÎïÆ·ID ("ItemCnt", c_ushort), # ÎïÆ·ÊýÁ¿ ("IsBind", c_ubyte), # ÊÇ·ñ°ó¶¨ ("IsSpecial", 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.ItemCnt = 0 self.IsBind = 0 self.IsSpecial = 0 return def GetLength(self): return sizeof(tagMCPlayerWishingWellItem) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AA 1A ÐíÔ¸³Ø»î¶¯Íæ¼ÒÐÅÏ¢ //tagMCActWishingWellPlayerInfo: ItemID:%d, ItemCnt:%d, IsBind:%d, IsSpecial:%d '''\ %( self.ItemID, self.ItemCnt, self.IsBind, self.IsSpecial ) return DumpString class tagMCActWishingWellPlayerInfo(Structure): Head = tagHead() FreeStartTime = 0 #(DWORD FreeStartTime)// Ãâ·Ñ¿ªÊ¼µ¹¼ÆÊ±Ê±¼ä WishCnt = 0 #(DWORD WishCnt)// ÐíÔ¸¸¶·ÑˢдÎÊý WellItemCnt = 0 #(BYTE WellItemCnt)//ÐíÔ¸³ØÎïÆ·ÊýÁ¿ WellItemInfo = list() #(vector WellItemInfo)// Ëæ»ú¿âÎïÆ·ÐÅÏ¢ CurAwardCnt = 0 #(BYTE CurAwardCnt)// µ±Ç°½±ÀøÎïÆ·ÊýÁ¿ CurAwardItemInfo = list() #(vector CurAwardItemInfo)// µ±Ç°½±ÀøÎïÆ· LastAwardCnt = 0 #(BYTE LastAwardCnt)// ¿ÉÁìÈ¡½±ÀøÎïÆ·ÊýÁ¿ LastAwardItemInfo = list() #(vector LastAwardItemInfo)// ¿ÉÁìÈ¡½±ÀøÎïÆ· data = None def __init__(self): self.Clear() self.Head.Cmd = 0xAA self.Head.SubCmd = 0x1A return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.FreeStartTime,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.WishCnt,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.WellItemCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.WellItemCnt): temWellItemInfo = tagMCPlayerWishingWellItem() _pos = temWellItemInfo.ReadData(_lpData, _pos) self.WellItemInfo.append(temWellItemInfo) self.CurAwardCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.CurAwardCnt): temCurAwardItemInfo = tagMCPlayerWishingWellItem() _pos = temCurAwardItemInfo.ReadData(_lpData, _pos) self.CurAwardItemInfo.append(temCurAwardItemInfo) self.LastAwardCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.LastAwardCnt): temLastAwardItemInfo = tagMCPlayerWishingWellItem() _pos = temLastAwardItemInfo.ReadData(_lpData, _pos) self.LastAwardItemInfo.append(temLastAwardItemInfo) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xAA self.Head.SubCmd = 0x1A self.FreeStartTime = 0 self.WishCnt = 0 self.WellItemCnt = 0 self.WellItemInfo = list() self.CurAwardCnt = 0 self.CurAwardItemInfo = list() self.LastAwardCnt = 0 self.LastAwardItemInfo = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 4 length += 1 for i in range(self.WellItemCnt): length += self.WellItemInfo[i].GetLength() length += 1 for i in range(self.CurAwardCnt): length += self.CurAwardItemInfo[i].GetLength() length += 1 for i in range(self.LastAwardCnt): length += self.LastAwardItemInfo[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.FreeStartTime) data = CommFunc.WriteDWORD(data, self.WishCnt) data = CommFunc.WriteBYTE(data, self.WellItemCnt) for i in range(self.WellItemCnt): data = CommFunc.WriteString(data, self.WellItemInfo[i].GetLength(), self.WellItemInfo[i].GetBuffer()) data = CommFunc.WriteBYTE(data, self.CurAwardCnt) for i in range(self.CurAwardCnt): data = CommFunc.WriteString(data, self.CurAwardItemInfo[i].GetLength(), self.CurAwardItemInfo[i].GetBuffer()) data = CommFunc.WriteBYTE(data, self.LastAwardCnt) for i in range(self.LastAwardCnt): data = CommFunc.WriteString(data, self.LastAwardItemInfo[i].GetLength(), self.LastAwardItemInfo[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, FreeStartTime:%d, WishCnt:%d, WellItemCnt:%d, WellItemInfo:%s, CurAwardCnt:%d, CurAwardItemInfo:%s, LastAwardCnt:%d, LastAwardItemInfo:%s '''\ %( self.Head.OutputString(), self.FreeStartTime, self.WishCnt, self.WellItemCnt, "...", self.CurAwardCnt, "...", self.LastAwardCnt, "..." ) return DumpString m_NAtagMCActWishingWellPlayerInfo=tagMCActWishingWellPlayerInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActWishingWellPlayerInfo.Head.Cmd,m_NAtagMCActWishingWellPlayerInfo.Head.SubCmd))] = m_NAtagMCActWishingWellPlayerInfo #------------------------------------------------------ # 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 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 20 ½ÚÈÕѲÀñ»î¶¯ÐÅÏ¢ #tagMCFeastWeekPartyInfo class tagMCFeastWeekPartyItem(Structure): _pack_ = 1 _fields_ = [ ("NeedPoint", c_ushort), # Áì½±ÐèÒª»ý·Ö ("ItemID", c_int), # ÎïÆ·ID ("ItemCnt", 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.NeedPoint = 0 self.ItemID = 0 self.ItemCnt = 0 self.IsBind = 0 return def GetLength(self): return sizeof(tagMCFeastWeekPartyItem) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AA 20 ½ÚÈÕѲÀñ»î¶¯ÐÅÏ¢ //tagMCFeastWeekPartyInfo: NeedPoint:%d, ItemID:%d, ItemCnt:%d, IsBind:%d '''\ %( self.NeedPoint, self.ItemID, self.ItemCnt, self.IsBind ) return DumpString class tagMCFeastWeekPartyAction(Structure): TemplateID = 0 #(DWORD TemplateID)// Ä£°åID ActionType = 0 #(WORD ActionType)// »î¶¯Àà±ð TotalTimes = 0 #(DWORD TotalTimes)// ¿ÉÍê³ÉµÄ×Ü´ÎÊý£¬0±íʾ²»ÏÞ´ÎÊý SingleTimes = 0 #(DWORD SingleTimes)// µ¥´ÎÁì½±ÐèÒªµÄ´ÎÊý Point = 0 #(DWORD Point)// µ¥´ÎÁì½±»ý·Ö Count = 0 #(BYTE Count)// ÎïÆ·Êý ItemInfo = list() #(vector ItemInfo)// ÎïÆ·ÐÅÏ¢ data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.TemplateID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ActionType,_pos = CommFunc.ReadWORD(_lpData, _pos) self.TotalTimes,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.SingleTimes,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Point,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Count): temItemInfo = tagMCFeastWeekPartyItem() _pos = temItemInfo.ReadData(_lpData, _pos) self.ItemInfo.append(temItemInfo) return _pos def Clear(self): self.TemplateID = 0 self.ActionType = 0 self.TotalTimes = 0 self.SingleTimes = 0 self.Point = 0 self.Count = 0 self.ItemInfo = list() return def GetLength(self): length = 0 length += 4 length += 2 length += 4 length += 4 length += 4 length += 1 for i in range(self.Count): length += self.ItemInfo[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.TemplateID) data = CommFunc.WriteWORD(data, self.ActionType) data = CommFunc.WriteDWORD(data, self.TotalTimes) data = CommFunc.WriteDWORD(data, self.SingleTimes) data = CommFunc.WriteDWORD(data, self.Point) data = CommFunc.WriteBYTE(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.ItemInfo[i].GetLength(), self.ItemInfo[i].GetBuffer()) return data def OutputString(self): DumpString = ''' TemplateID:%d, ActionType:%d, TotalTimes:%d, SingleTimes:%d, Point:%d, Count:%d, ItemInfo:%s '''\ %( self.TemplateID, self.ActionType, self.TotalTimes, self.SingleTimes, self.Point, self.Count, "..." ) return DumpString class tagMCFeastWeekPartyDayInfo(Structure): ActCnt = 0 #(BYTE ActCnt)// ÊýÁ¿ TemplateList = list() #(vector TemplateList)// Ä£°åÁбí PCount = 0 #(BYTE PCount)// ÎïÆ·Êý PItemInfo = list() #(vector PItemInfo)// ÎïÆ·ÐÅÏ¢ data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.ActCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.ActCnt): value,_pos=CommFunc.ReadWORD(_lpData,_pos) self.TemplateList.append(value) self.PCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.PCount): temPItemInfo = tagMCFeastWeekPartyItem() _pos = temPItemInfo.ReadData(_lpData, _pos) self.PItemInfo.append(temPItemInfo) return _pos def Clear(self): self.ActCnt = 0 self.TemplateList = list() self.PCount = 0 self.PItemInfo = list() return def GetLength(self): length = 0 length += 1 length += 2 * self.ActCnt length += 1 for i in range(self.PCount): length += self.PItemInfo[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteBYTE(data, self.ActCnt) for i in range(self.ActCnt): data = CommFunc.WriteWORD(data, self.TemplateList[i]) data = CommFunc.WriteBYTE(data, self.PCount) for i in range(self.PCount): data = CommFunc.WriteString(data, self.PItemInfo[i].GetLength(), self.PItemInfo[i].GetBuffer()) return data def OutputString(self): DumpString = ''' ActCnt:%d, TemplateList:%s, PCount:%d, PItemInfo:%s '''\ %( self.ActCnt, "...", self.PCount, "..." ) return DumpString class tagMCFeastWeekPartyInfo(Structure): Head = tagHead() StartDate = "" #(char StartDate[10])// ¿ªÊ¼ÈÕÆÚ y-m-d EndtDate = "" #(char EndtDate[10])// ½áÊøÈÕÆÚ y-m-d AdvanceMinutes = 0 #(WORD AdvanceMinutes)// ÌáǰÏÔʾ·ÖÖÓ IsDayReset = 0 #(BYTE IsDayReset)//ÊÇ·ñÿÌìÖØÖà ResetType = 0 #(BYTE ResetType)// ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà LimitLV = 0 #(WORD LimitLV)// ÏÞÖÆµÈ¼¶ DayCnt = 0 #(BYTE DayCnt)// ÌìÊý DayInfoList = list() #(vector DayInfoList)// ÿÌìÄ£°å TCount = 0 #(BYTE TCount)// Ä£°åÊý ActionInfo = list() #(vector ActionInfo)// »î¶¯Ä£°åÐÅÏ¢ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xAA self.Head.SubCmd = 0x20 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.AdvanceMinutes,_pos = CommFunc.ReadWORD(_lpData, _pos) self.IsDayReset,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ResetType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.DayCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.DayCnt): temDayInfoList = tagMCFeastWeekPartyDayInfo() _pos = temDayInfoList.ReadData(_lpData, _pos) self.DayInfoList.append(temDayInfoList) self.TCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.TCount): temActionInfo = tagMCFeastWeekPartyAction() _pos = temActionInfo.ReadData(_lpData, _pos) self.ActionInfo.append(temActionInfo) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xAA self.Head.SubCmd = 0x20 self.StartDate = "" self.EndtDate = "" self.AdvanceMinutes = 0 self.IsDayReset = 0 self.ResetType = 0 self.LimitLV = 0 self.DayCnt = 0 self.DayInfoList = list() self.TCount = 0 self.ActionInfo = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 10 length += 10 length += 2 length += 1 length += 1 length += 2 length += 1 for i in range(self.DayCnt): length += self.DayInfoList[i].GetLength() length += 1 for i in range(self.TCount): length += self.ActionInfo[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.AdvanceMinutes) data = CommFunc.WriteBYTE(data, self.IsDayReset) data = CommFunc.WriteBYTE(data, self.ResetType) data = CommFunc.WriteWORD(data, self.LimitLV) data = CommFunc.WriteBYTE(data, self.DayCnt) for i in range(self.DayCnt): data = CommFunc.WriteString(data, self.DayInfoList[i].GetLength(), self.DayInfoList[i].GetBuffer()) data = CommFunc.WriteBYTE(data, self.TCount) for i in range(self.TCount): data = CommFunc.WriteString(data, self.ActionInfo[i].GetLength(), self.ActionInfo[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, StartDate:%s, EndtDate:%s, AdvanceMinutes:%d, IsDayReset:%d, ResetType:%d, LimitLV:%d, DayCnt:%d, DayInfoList:%s, TCount:%d, ActionInfo:%s '''\ %( self.Head.OutputString(), self.StartDate, self.EndtDate, self.AdvanceMinutes, self.IsDayReset, self.ResetType, self.LimitLV, self.DayCnt, "...", self.TCount, "..." ) return DumpString m_NAtagMCFeastWeekPartyInfo=tagMCFeastWeekPartyInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFeastWeekPartyInfo.Head.Cmd,m_NAtagMCFeastWeekPartyInfo.Head.SubCmd))] = m_NAtagMCFeastWeekPartyInfo #------------------------------------------------------ # AA 21 ½ÚÈÕѲÀñÍæ¼Ò»î¶¯ÐÅÏ¢ #tagMCFeastWeekPartyPlayerInfo class tagMCFeastWeekPartyTaskInfo(Structure): _pack_ = 1 _fields_ = [ ("TemplateID", c_ushort), # Ä£°åID ("CurTimes", c_int), #ÒÑÍê³É´ÎÊý ("GotTimes", 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.TemplateID = 0 self.CurTimes = 0 self.GotTimes = 0 return def GetLength(self): return sizeof(tagMCFeastWeekPartyTaskInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AA 21 ½ÚÈÕѲÀñÍæ¼Ò»î¶¯ÐÅÏ¢ //tagMCFeastWeekPartyPlayerInfo: TemplateID:%d, CurTimes:%d, GotTimes:%d '''\ %( self.TemplateID, self.CurTimes, self.GotTimes ) return DumpString class tagMCFeastWeekPartyDayPlayerInfo(Structure): DayIndex = 0 #(DWORD DayIndex)//µÚXÌì Point = 0 #(DWORD Point)//»ý·Ö AwardRecord = 0 #(DWORD AwardRecord)//»ý·ÖÁì½±¼Ç¼ ACount = 0 #(DWORD ACount)//ÈÎÎñÌõÄ¿Êý TaskList = list() #(vector TaskList)//»î¶¯Íê³É´ÎÊýÐÅÏ¢ data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.DayIndex,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Point,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.AwardRecord,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ACount,_pos = CommFunc.ReadDWORD(_lpData, _pos) for i in range(self.ACount): temTaskList = tagMCFeastWeekPartyTaskInfo() _pos = temTaskList.ReadData(_lpData, _pos) self.TaskList.append(temTaskList) return _pos def Clear(self): self.DayIndex = 0 self.Point = 0 self.AwardRecord = 0 self.ACount = 0 self.TaskList = list() return def GetLength(self): length = 0 length += 4 length += 4 length += 4 length += 4 for i in range(self.ACount): length += self.TaskList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.DayIndex) data = CommFunc.WriteDWORD(data, self.Point) data = CommFunc.WriteDWORD(data, self.AwardRecord) data = CommFunc.WriteDWORD(data, self.ACount) for i in range(self.ACount): data = CommFunc.WriteString(data, self.TaskList[i].GetLength(), self.TaskList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' DayIndex:%d, Point:%d, AwardRecord:%d, ACount:%d, TaskList:%s '''\ %( self.DayIndex, self.Point, self.AwardRecord, self.ACount, "..." ) return DumpString class tagMCFeastWeekPartyPlayerInfo(Structure): Head = tagHead() Count = 0 #(BYTE Count) DayInfoList = list() #(vector DayInfoList)//»î¶¯Íê³É´ÎÊýÐÅÏ¢ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xAA self.Head.SubCmd = 0x21 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): temDayInfoList = tagMCFeastWeekPartyDayPlayerInfo() _pos = temDayInfoList.ReadData(_lpData, _pos) self.DayInfoList.append(temDayInfoList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xAA self.Head.SubCmd = 0x21 self.Count = 0 self.DayInfoList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.Count): length += self.DayInfoList[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.DayInfoList[i].GetLength(), self.DayInfoList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Count:%d, DayInfoList:%s '''\ %( self.Head.OutputString(), self.Count, "..." ) return DumpString m_NAtagMCFeastWeekPartyPlayerInfo=tagMCFeastWeekPartyPlayerInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFeastWeekPartyPlayerInfo.Head.Cmd,m_NAtagMCFeastWeekPartyPlayerInfo.Head.SubCmd))] = m_NAtagMCFeastWeekPartyPlayerInfo #------------------------------------------------------ # AA 02 Ê׳äÐÅÏ¢ #tagMCFirstGoldInfo class tagMCFirstGoldInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("FirstGoldRewardState", c_ubyte), #Ê׳佱ÀøÊÇ·ñÒÑÁì½± ("FirstGoldTry", c_ubyte), #Ê׳äÊÔÓÃ״̬0-²»¿ÉÊÔÓà 1-¿ÉÊÔÓà 2-ÒÑÊÔÓà ] 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 self.FirstGoldTry = 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, FirstGoldTry:%d '''\ %( self.Cmd, self.SubCmd, self.FirstGoldRewardState, self.FirstGoldTry ) 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), #Ê׳äÌáʾʣÓàʱ¼ä ] 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 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 '''\ %( self.Cmd, self.SubCmd, self.FirstGoldRemainTime ) 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 AdvanceMinutes = 0 #(WORD AdvanceMinutes)// ÌáǰÏÔʾ·ÖÖÓ 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.AdvanceMinutes,_pos = CommFunc.ReadWORD(_lpData, _pos) 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.AdvanceMinutes = 0 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 += 2 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.WriteWORD(data, self.AdvanceMinutes) 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, AdvanceMinutes:%d, ActivityTimeCount:%d, ActivityTime:%s, IsDayReset:%d, LimitLV:%d, GiftbagTypeCount:%d, GiftbagTypeInfo:%s '''\ %( self.Head.OutputString(), self.StartDate, self.EndtDate, self.AdvanceMinutes, 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 18 ÏÞʱÇÀ¹º»î¶¯Íæ¼ÒÔ¤Ô¼ÐÅÏ¢ #tagMCFlashSaleAppointmentInfo class tagMCFlashSaleAppointmentState(Structure): _pack_ = 1 _fields_ = [ ("GoodsMark", 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.GoodsMark = 0 self.State = 0 return def GetLength(self): return sizeof(tagMCFlashSaleAppointmentState) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AA 18 ÏÞʱÇÀ¹º»î¶¯Íæ¼ÒÔ¤Ô¼ÐÅÏ¢ //tagMCFlashSaleAppointmentInfo: GoodsMark:%d, State:%d '''\ %( self.GoodsMark, self.State ) return DumpString class tagMCFlashSaleAppointmentInfo(Structure): Head = tagHead() IsAll = 0 #(BYTE IsAll)// ÊÇ·ñÈ«²¿ GoodsCount = 0 #(WORD GoodsCount)// ÉÌÆ·Êý GoodsList = list() #(vector GoodsList)// Ô¤Ô¼µÄÉÌÆ· data = None def __init__(self): self.Clear() self.Head.Cmd = 0xAA self.Head.SubCmd = 0x18 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.GoodsCount,_pos = CommFunc.ReadWORD(_lpData, _pos) for i in range(self.GoodsCount): temGoodsList = tagMCFlashSaleAppointmentState() _pos = temGoodsList.ReadData(_lpData, _pos) self.GoodsList.append(temGoodsList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xAA self.Head.SubCmd = 0x18 self.IsAll = 0 self.GoodsCount = 0 self.GoodsList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 2 for i in range(self.GoodsCount): length += self.GoodsList[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.WriteWORD(data, self.GoodsCount) for i in range(self.GoodsCount): data = CommFunc.WriteString(data, self.GoodsList[i].GetLength(), self.GoodsList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, IsAll:%d, GoodsCount:%d, GoodsList:%s '''\ %( self.Head.OutputString(), self.IsAll, self.GoodsCount, "..." ) return DumpString m_NAtagMCFlashSaleAppointmentInfo=tagMCFlashSaleAppointmentInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFlashSaleAppointmentInfo.Head.Cmd,m_NAtagMCFlashSaleAppointmentInfo.Head.SubCmd))] = m_NAtagMCFlashSaleAppointmentInfo #------------------------------------------------------ # AA 17 ÏÞʱÇÀ¹º»î¶¯ÐÅÏ¢ #tagMCFlashSaleInfo class tagMCFlashSaleGiftbag(Structure): _pack_ = 1 _fields_ = [ ("GiftID", c_int), #É̳DZíµÄÎïÆ·ID ("BuyCountLimit", c_ubyte), #ÏÞ¹ºÊý ("ServerBuyCountLimit", c_ushort), #È«·þÏÞ¹ºÊý ("MoneyType", c_ubyte), #ÏûºÄ»õ±ÒÀàÐÍ ("MoneyNumber", c_int), #ÏûºÄ»õ±ÒÊýÁ¿ ("MoneyOriginal", c_int), #Ô­¼Û ("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.GiftID = 0 self.BuyCountLimit = 0 self.ServerBuyCountLimit = 0 self.MoneyType = 0 self.MoneyNumber = 0 self.MoneyOriginal = 0 self.ItemID = 0 self.ItemCount = 0 self.IsBind = 0 return def GetLength(self): return sizeof(tagMCFlashSaleGiftbag) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AA 17 ÏÞʱÇÀ¹º»î¶¯ÐÅÏ¢ //tagMCFlashSaleInfo: GiftID:%d, BuyCountLimit:%d, ServerBuyCountLimit:%d, MoneyType:%d, MoneyNumber:%d, MoneyOriginal:%d, ItemID:%d, ItemCount:%d, IsBind:%d '''\ %( self.GiftID, self.BuyCountLimit, self.ServerBuyCountLimit, self.MoneyType, self.MoneyNumber, self.MoneyOriginal, self.ItemID, self.ItemCount, self.IsBind ) return DumpString class tagMCFlashSaleShop(Structure): DayIndex = 0 #(BYTE DayIndex)// »î¶¯µÚ¼¸Ìì TimeIndex = 0 #(BYTE TimeIndex)// µÚ¼¸¸öʱ¼ä¶Î 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.DayIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.TimeIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.GiftbagCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.GiftbagCount): temGiftbagInfo = tagMCFlashSaleGiftbag() _pos = temGiftbagInfo.ReadData(_lpData, _pos) self.GiftbagInfo.append(temGiftbagInfo) return _pos def Clear(self): self.DayIndex = 0 self.TimeIndex = 0 self.GiftbagCount = 0 self.GiftbagInfo = list() return def GetLength(self): length = 0 length += 1 length += 1 length += 1 for i in range(self.GiftbagCount): length += self.GiftbagInfo[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteBYTE(data, self.DayIndex) data = CommFunc.WriteBYTE(data, self.TimeIndex) 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 = ''' DayIndex:%d, TimeIndex:%d, GiftbagCount:%d, GiftbagInfo:%s '''\ %( self.DayIndex, self.TimeIndex, self.GiftbagCount, "..." ) return DumpString class tagMCFlashSaleTime(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 tagMCFlashSaleInfo(Structure): Head = tagHead() StartDate = "" #(char StartDate[10])// ¿ªÊ¼ÈÕÆÚ y-m-d EndtDate = "" #(char EndtDate[10])// ½áÊøÈÕÆÚ y-m-d AdvanceMinutes = 0 #(WORD AdvanceMinutes)// ÌáǰÏÔʾ·ÖÖÓ 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 = 0x17 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.AdvanceMinutes,_pos = CommFunc.ReadWORD(_lpData, _pos) self.ActivityTimeCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.ActivityTimeCount): temActivityTime = tagMCFlashSaleTime() _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 = tagMCFlashSaleShop() _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 = 0x17 self.StartDate = "" self.EndtDate = "" self.AdvanceMinutes = 0 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 += 2 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.WriteWORD(data, self.AdvanceMinutes) 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, AdvanceMinutes:%d, ActivityTimeCount:%d, ActivityTime:%s, IsDayReset:%d, LimitLV:%d, ShopCount:%d, ShopInfo:%s '''\ %( self.Head.OutputString(), self.StartDate, self.EndtDate, self.AdvanceMinutes, self.ActivityTimeCount, "...", self.IsDayReset, self.LimitLV, self.ShopCount, "..." ) return DumpString m_NAtagMCFlashSaleInfo=tagMCFlashSaleInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFlashSaleInfo.Head.Cmd,m_NAtagMCFlashSaleInfo.Head.SubCmd))] = m_NAtagMCFlashSaleInfo #------------------------------------------------------ # AA 1F ÐÒÔ˼ø±¦»î¶¯ÐÅÏ¢ #tagMCLuckyTreasureInfo class tagMCLuckyTreasureItem(Structure): _pack_ = 1 _fields_ = [ ("ItemID", c_int), # ÎïÆ·ID ("ItemCnt", 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.ItemCnt = 0 self.IsBind = 0 return def GetLength(self): return sizeof(tagMCLuckyTreasureItem) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AA 1F ÐÒÔ˼ø±¦»î¶¯ÐÅÏ¢ //tagMCLuckyTreasureInfo: ItemID:%d, ItemCnt:%d, IsBind:%d '''\ %( self.ItemID, self.ItemCnt, self.IsBind ) return DumpString class tagMCLuckyTreasureInfo(Structure): Head = tagHead() StartDate = "" #(char StartDate[10])// ¿ªÊ¼ÈÕÆÚ y-m-d EndtDate = "" #(char EndtDate[10])// ½áÊøÈÕÆÚ y-m-d ResetType = 0 #(BYTE ResetType)// ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà LimitLV = 0 #(WORD LimitLV)// ÏÞÖÆµÈ¼¶ LuckyPoint = 0 #(WORD LuckyPoint)// ×ÜÐÒÔËÖµ Count = 0 #(WORD Count)// ÎïÆ·Êý ItemList = list() #(vector ItemList)// Ëæ»ú¿âÎïÆ·ÐÅÏ¢ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xAA self.Head.SubCmd = 0x1F 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.ResetType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.LuckyPoint,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos) for i in range(self.Count): temItemList = tagMCLuckyTreasureItem() _pos = temItemList.ReadData(_lpData, _pos) self.ItemList.append(temItemList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xAA self.Head.SubCmd = 0x1F self.StartDate = "" self.EndtDate = "" self.ResetType = 0 self.LimitLV = 0 self.LuckyPoint = 0 self.Count = 0 self.ItemList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 10 length += 10 length += 1 length += 2 length += 2 length += 2 for i in range(self.Count): length += self.ItemList[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.ResetType) data = CommFunc.WriteWORD(data, self.LimitLV) data = CommFunc.WriteWORD(data, self.LuckyPoint) data = CommFunc.WriteWORD(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.ItemList[i].GetLength(), self.ItemList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, StartDate:%s, EndtDate:%s, ResetType:%d, LimitLV:%d, LuckyPoint:%d, Count:%d, ItemList:%s '''\ %( self.Head.OutputString(), self.StartDate, self.EndtDate, self.ResetType, self.LimitLV, self.LuckyPoint, self.Count, "..." ) return DumpString m_NAtagMCLuckyTreasureInfo=tagMCLuckyTreasureInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCLuckyTreasureInfo.Head.Cmd,m_NAtagMCLuckyTreasureInfo.Head.SubCmd))] = m_NAtagMCLuckyTreasureInfo #------------------------------------------------------ # AA 1E ÐÒÔ˼ø±¦½á¹ûÐÅÏ¢ #tagMCLuckyTreasureResultInfo class tagMCLuckyTreasureResultInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("LuckyPoint", c_ushort), # µ±Ç°ÐÒÔ˵ã ("HasFree", c_ubyte), # ÊÇ·ñÃâ·Ñ¹ý ("ItemID", c_int), # ÎïÆ·ID ("ItemCnt", c_ushort), #ÎïÆ·ÊýÁ¿ ("IsBind", c_ubyte), # ÊÇ·ñ°ó¶¨ ] def __init__(self): self.Clear() self.Cmd = 0xAA self.SubCmd = 0x1E 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 = 0x1E self.LuckyPoint = 0 self.HasFree = 0 self.ItemID = 0 self.ItemCnt = 0 self.IsBind = 0 return def GetLength(self): return sizeof(tagMCLuckyTreasureResultInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AA 1E ÐÒÔ˼ø±¦½á¹ûÐÅÏ¢ //tagMCLuckyTreasureResultInfo: Cmd:%s, SubCmd:%s, LuckyPoint:%d, HasFree:%d, ItemID:%d, ItemCnt:%d, IsBind:%d '''\ %( self.Cmd, self.SubCmd, self.LuckyPoint, self.HasFree, self.ItemID, self.ItemCnt, self.IsBind ) return DumpString m_NAtagMCLuckyTreasureResultInfo=tagMCLuckyTreasureResultInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCLuckyTreasureResultInfo.Cmd,m_NAtagMCLuckyTreasureResultInfo.SubCmd))] = m_NAtagMCLuckyTreasureResultInfo #------------------------------------------------------ # AA 23 ÐÂÏɽçÊ¢µäÈ«ÃñÀ´àËÍæ¼ÒÐÅÏ¢ #tagMCNewAllPeoplePartyInfo class tagMCNewAllPeoplePartyCount(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(tagMCNewAllPeoplePartyCount) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AA 23 ÐÂÏɽçÊ¢µäÈ«ÃñÀ´àËÍæ¼ÒÐÅÏ¢ //tagMCNewAllPeoplePartyInfo: ActID:%d, CurTimes:%d '''\ %( self.ActID, self.CurTimes ) return DumpString class tagMCNewAllPeoplePartyInfo(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 = 0x23 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 = tagMCNewAllPeoplePartyCount() _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 = 0x23 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_NAtagMCNewAllPeoplePartyInfo=tagMCNewAllPeoplePartyInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCNewAllPeoplePartyInfo.Head.Cmd,m_NAtagMCNewAllPeoplePartyInfo.Head.SubCmd))] = m_NAtagMCNewAllPeoplePartyInfo #------------------------------------------------------ # AA 22 ÐÂÏɽçÊ¢µä³äÖµ´óÀñ #tagMCNewXJSDRecharge class tagMCNewXJSDRecharge(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 = 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 = 0xAA self.SubCmd = 0x22 self.State = 0 return def GetLength(self): return sizeof(tagMCNewXJSDRecharge) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AA 22 ÐÂÏɽçÊ¢µä³äÖµ´óÀñ //tagMCNewXJSDRecharge: Cmd:%s, SubCmd:%s, State:%d '''\ %( self.Cmd, self.SubCmd, self.State ) return DumpString m_NAtagMCNewXJSDRecharge=tagMCNewXJSDRecharge() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCNewXJSDRecharge.Cmd,m_NAtagMCNewXJSDRecharge.SubCmd))] = m_NAtagMCNewXJSDRecharge #------------------------------------------------------ # 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 AdvanceMinutes = 0 #(WORD AdvanceMinutes)// ÌáǰÏÔʾ·ÖÖÓ 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.AdvanceMinutes,_pos = CommFunc.ReadWORD(_lpData, _pos) 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.AdvanceMinutes = 0 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 += 2 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.WriteWORD(data, self.AdvanceMinutes) 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, AdvanceMinutes:%d, ActivityTimeCount:%d, ActivityTime:%s, IsDayReset:%d, LimitLV:%d, ShopCount:%d, ShopInfo:%s '''\ %( self.Head.OutputString(), self.StartDate, self.EndtDate, self.AdvanceMinutes, 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 16 ֪ͨ³¬ÖµÀñ°üÐÅÏ¢ #tagMCSuperGiftInfo class tagMCSuperGiftInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("StartTime", c_int), ] def __init__(self): self.Clear() self.Cmd = 0xAA self.SubCmd = 0x16 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 = 0x16 self.StartTime = 0 return def GetLength(self): return sizeof(tagMCSuperGiftInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AA 16 ֪ͨ³¬ÖµÀñ°üÐÅÏ¢ //tagMCSuperGiftInfo: Cmd:%s, SubCmd:%s, StartTime:%d '''\ %( self.Cmd, self.SubCmd, self.StartTime ) return DumpString m_NAtagMCSuperGiftInfo=tagMCSuperGiftInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSuperGiftInfo.Cmd,m_NAtagMCSuperGiftInfo.SubCmd))] = m_NAtagMCSuperGiftInfo #------------------------------------------------------ #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 1C ÀۼƳäÖµÍæ¼Ò»î¶¯ÐÅÏ¢ #tagMCTotalRechargePlayerInfo class tagMCTotalRechargePlayerInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("GoldTotal", c_int), #±¾´Î»î¶¯ÒÑÀۼƳäÖµÏÉÓñÊý ("AwardRecord", c_int), #½±ÀøÁì½±¼Ç¼£¬°´½±ÀøË÷Òý¶þ½øÖÆÎ»´æ´¢ÊÇ·ñÒÑÁìÈ¡ ] def __init__(self): self.Clear() self.Cmd = 0xAA self.SubCmd = 0x1C 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 = 0x1C self.GoldTotal = 0 self.AwardRecord = 0 return def GetLength(self): return sizeof(tagMCTotalRechargePlayerInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AA 1C ÀۼƳäÖµÍæ¼Ò»î¶¯ÐÅÏ¢ //tagMCTotalRechargePlayerInfo: Cmd:%s, SubCmd:%s, GoldTotal:%d, AwardRecord:%d '''\ %( self.Cmd, self.SubCmd, self.GoldTotal, self.AwardRecord ) return DumpString m_NAtagMCTotalRechargePlayerInfo=tagMCTotalRechargePlayerInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCTotalRechargePlayerInfo.Cmd,m_NAtagMCTotalRechargePlayerInfo.SubCmd))] = m_NAtagMCTotalRechargePlayerInfo #------------------------------------------------------ # AA 0A ÖÜ¿ñ»¶»î¶¯ÐÅÏ¢ #tagMCWeekPartyInfo class tagMCWeekPartyItem(Structure): _pack_ = 1 _fields_ = [ ("NeedPoint", c_ushort), # Áì½±ÐèÒª»ý·Ö ("ItemID", c_int), # ÎïÆ·ID ("ItemCnt", 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.NeedPoint = 0 self.ItemID = 0 self.ItemCnt = 0 self.IsBind = 0 return def GetLength(self): return sizeof(tagMCWeekPartyItem) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AA 0A ÖÜ¿ñ»¶»î¶¯ÐÅÏ¢ //tagMCWeekPartyInfo: NeedPoint:%d, ItemID:%d, ItemCnt:%d, IsBind:%d '''\ %( self.NeedPoint, self.ItemID, self.ItemCnt, self.IsBind ) return DumpString class tagMCWeekPartyAction(Structure): TemplateID = 0 #(DWORD TemplateID)// Ä£°åID ActionType = 0 #(WORD ActionType)// »î¶¯Àà±ð TotalTimes = 0 #(DWORD TotalTimes)// ¿ÉÍê³ÉµÄ×Ü´ÎÊý£¬0±íʾ²»ÏÞ´ÎÊý SingleTimes = 0 #(DWORD SingleTimes)// µ¥´ÎÁì½±ÐèÒªµÄ´ÎÊý Point = 0 #(DWORD Point)// µ¥´ÎÁì½±»ý·Ö Count = 0 #(BYTE Count)// ÎïÆ·Êý ItemInfo = list() #(vector ItemInfo)// ÎïÆ·ÐÅÏ¢ data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.TemplateID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ActionType,_pos = CommFunc.ReadWORD(_lpData, _pos) self.TotalTimes,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.SingleTimes,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Point,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Count): temItemInfo = tagMCWeekPartyItem() _pos = temItemInfo.ReadData(_lpData, _pos) self.ItemInfo.append(temItemInfo) return _pos def Clear(self): self.TemplateID = 0 self.ActionType = 0 self.TotalTimes = 0 self.SingleTimes = 0 self.Point = 0 self.Count = 0 self.ItemInfo = list() return def GetLength(self): length = 0 length += 4 length += 2 length += 4 length += 4 length += 4 length += 1 for i in range(self.Count): length += self.ItemInfo[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.TemplateID) data = CommFunc.WriteWORD(data, self.ActionType) data = CommFunc.WriteDWORD(data, self.TotalTimes) data = CommFunc.WriteDWORD(data, self.SingleTimes) data = CommFunc.WriteDWORD(data, self.Point) data = CommFunc.WriteBYTE(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.ItemInfo[i].GetLength(), self.ItemInfo[i].GetBuffer()) return data def OutputString(self): DumpString = ''' TemplateID:%d, ActionType:%d, TotalTimes:%d, SingleTimes:%d, Point:%d, Count:%d, ItemInfo:%s '''\ %( self.TemplateID, self.ActionType, self.TotalTimes, self.SingleTimes, self.Point, self.Count, "..." ) return DumpString class tagMCWeekPartyDayInfo(Structure): ActCnt = 0 #(BYTE ActCnt)// ÊýÁ¿ TemplateList = list() #(vector TemplateList)// Ä£°åÁбí PCount = 0 #(BYTE PCount)// ÎïÆ·Êý PItemInfo = list() #(vector PItemInfo)// ÎïÆ·ÐÅÏ¢ data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.ActCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.ActCnt): value,_pos=CommFunc.ReadWORD(_lpData,_pos) self.TemplateList.append(value) self.PCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.PCount): temPItemInfo = tagMCWeekPartyItem() _pos = temPItemInfo.ReadData(_lpData, _pos) self.PItemInfo.append(temPItemInfo) return _pos def Clear(self): self.ActCnt = 0 self.TemplateList = list() self.PCount = 0 self.PItemInfo = list() return def GetLength(self): length = 0 length += 1 length += 2 * self.ActCnt length += 1 for i in range(self.PCount): length += self.PItemInfo[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteBYTE(data, self.ActCnt) for i in range(self.ActCnt): data = CommFunc.WriteWORD(data, self.TemplateList[i]) data = CommFunc.WriteBYTE(data, self.PCount) for i in range(self.PCount): data = CommFunc.WriteString(data, self.PItemInfo[i].GetLength(), self.PItemInfo[i].GetBuffer()) return data def OutputString(self): DumpString = ''' ActCnt:%d, TemplateList:%s, PCount:%d, PItemInfo:%s '''\ %( self.ActCnt, "...", self.PCount, "..." ) return DumpString class tagMCWeekPartyInfo(Structure): Head = tagHead() StartDate = "" #(char StartDate[10])// ¿ªÊ¼ÈÕÆÚ y-m-d EndtDate = "" #(char EndtDate[10])// ½áÊøÈÕÆÚ y-m-d AdvanceMinutes = 0 #(WORD AdvanceMinutes)// ÌáǰÏÔʾ·ÖÖÓ IsDayReset = 0 #(BYTE IsDayReset)//ÊÇ·ñÿÌìÖØÖà ResetType = 0 #(BYTE ResetType)// ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà LimitLV = 0 #(WORD LimitLV)// ÏÞÖÆµÈ¼¶ DayCnt = 0 #(BYTE DayCnt)// ÌìÊý DayInfoList = list() #(vector DayInfoList)// ÿÌìÄ£°å TCount = 0 #(BYTE TCount)// Ä£°åÊý ActionInfo = list() #(vector ActionInfo)// »î¶¯Ä£°åÐÅÏ¢ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xAA 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.AdvanceMinutes,_pos = CommFunc.ReadWORD(_lpData, _pos) self.IsDayReset,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ResetType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.DayCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.DayCnt): temDayInfoList = tagMCWeekPartyDayInfo() _pos = temDayInfoList.ReadData(_lpData, _pos) self.DayInfoList.append(temDayInfoList) self.TCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.TCount): temActionInfo = tagMCWeekPartyAction() _pos = temActionInfo.ReadData(_lpData, _pos) self.ActionInfo.append(temActionInfo) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xAA self.Head.SubCmd = 0x0A self.StartDate = "" self.EndtDate = "" self.AdvanceMinutes = 0 self.IsDayReset = 0 self.ResetType = 0 self.LimitLV = 0 self.DayCnt = 0 self.DayInfoList = list() self.TCount = 0 self.ActionInfo = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 10 length += 10 length += 2 length += 1 length += 1 length += 2 length += 1 for i in range(self.DayCnt): length += self.DayInfoList[i].GetLength() length += 1 for i in range(self.TCount): length += self.ActionInfo[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.AdvanceMinutes) data = CommFunc.WriteBYTE(data, self.IsDayReset) data = CommFunc.WriteBYTE(data, self.ResetType) data = CommFunc.WriteWORD(data, self.LimitLV) data = CommFunc.WriteBYTE(data, self.DayCnt) for i in range(self.DayCnt): data = CommFunc.WriteString(data, self.DayInfoList[i].GetLength(), self.DayInfoList[i].GetBuffer()) data = CommFunc.WriteBYTE(data, self.TCount) for i in range(self.TCount): data = CommFunc.WriteString(data, self.ActionInfo[i].GetLength(), self.ActionInfo[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, StartDate:%s, EndtDate:%s, AdvanceMinutes:%d, IsDayReset:%d, ResetType:%d, LimitLV:%d, DayCnt:%d, DayInfoList:%s, TCount:%d, ActionInfo:%s '''\ %( self.Head.OutputString(), self.StartDate, self.EndtDate, self.AdvanceMinutes, self.IsDayReset, self.ResetType, self.LimitLV, self.DayCnt, "...", self.TCount, "..." ) return DumpString m_NAtagMCWeekPartyInfo=tagMCWeekPartyInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCWeekPartyInfo.Head.Cmd,m_NAtagMCWeekPartyInfo.Head.SubCmd))] = m_NAtagMCWeekPartyInfo #------------------------------------------------------ # AA 0B ÖÜ¿ñ»¶Íæ¼Ò»î¶¯ÐÅÏ¢ #tagMCWeekPartyPlayerInfo class tagMCWeekPartyTaskInfo(Structure): _pack_ = 1 _fields_ = [ ("TemplateID", c_ushort), # Ä£°åID ("CurTimes", c_int), #ÒÑÍê³É´ÎÊý ("GotTimes", 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.TemplateID = 0 self.CurTimes = 0 self.GotTimes = 0 return def GetLength(self): return sizeof(tagMCWeekPartyTaskInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AA 0B ÖÜ¿ñ»¶Íæ¼Ò»î¶¯ÐÅÏ¢ //tagMCWeekPartyPlayerInfo: TemplateID:%d, CurTimes:%d, GotTimes:%d '''\ %( self.TemplateID, self.CurTimes, self.GotTimes ) return DumpString class tagMCWeekPartyDayPlayerInfo(Structure): DayIndex = 0 #(DWORD DayIndex)//µÚXÌì Point = 0 #(DWORD Point)//»ý·Ö AwardRecord = 0 #(DWORD AwardRecord)//»ý·ÖÁì½±¼Ç¼ ACount = 0 #(DWORD ACount)//ÈÎÎñÌõÄ¿Êý TaskList = list() #(vector TaskList)//»î¶¯Íê³É´ÎÊýÐÅÏ¢ data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.DayIndex,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Point,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.AwardRecord,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ACount,_pos = CommFunc.ReadDWORD(_lpData, _pos) for i in range(self.ACount): temTaskList = tagMCWeekPartyTaskInfo() _pos = temTaskList.ReadData(_lpData, _pos) self.TaskList.append(temTaskList) return _pos def Clear(self): self.DayIndex = 0 self.Point = 0 self.AwardRecord = 0 self.ACount = 0 self.TaskList = list() return def GetLength(self): length = 0 length += 4 length += 4 length += 4 length += 4 for i in range(self.ACount): length += self.TaskList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.DayIndex) data = CommFunc.WriteDWORD(data, self.Point) data = CommFunc.WriteDWORD(data, self.AwardRecord) data = CommFunc.WriteDWORD(data, self.ACount) for i in range(self.ACount): data = CommFunc.WriteString(data, self.TaskList[i].GetLength(), self.TaskList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' DayIndex:%d, Point:%d, AwardRecord:%d, ACount:%d, TaskList:%s '''\ %( self.DayIndex, self.Point, self.AwardRecord, self.ACount, "..." ) return DumpString class tagMCWeekPartyPlayerInfo(Structure): Head = tagHead() Count = 0 #(BYTE Count) DayInfoList = list() #(vector DayInfoList)//»î¶¯Íê³É´ÎÊýÐÅÏ¢ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xAA self.Head.SubCmd = 0x0B 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): temDayInfoList = tagMCWeekPartyDayPlayerInfo() _pos = temDayInfoList.ReadData(_lpData, _pos) self.DayInfoList.append(temDayInfoList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xAA self.Head.SubCmd = 0x0B self.Count = 0 self.DayInfoList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.Count): length += self.DayInfoList[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.DayInfoList[i].GetLength(), self.DayInfoList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Count:%d, DayInfoList:%s '''\ %( self.Head.OutputString(), self.Count, "..." ) return DumpString m_NAtagMCWeekPartyPlayerInfo=tagMCWeekPartyPlayerInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCWeekPartyPlayerInfo.Head.Cmd,m_NAtagMCWeekPartyPlayerInfo.Head.SubCmd))] = m_NAtagMCWeekPartyPlayerInfo #------------------------------------------------------ # 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 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 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 ResetType = 0 #(BYTE ResetType)// ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà 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.ResetType,_pos = CommFunc.ReadBYTE(_lpData, _pos) 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.ResetType = 0 self.LimitLV = 0 self.TaskCnt = 0 self.TaskInfo = 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.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.WriteBYTE(data, self.ResetType) 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, ResetType:%d, LimitLV:%d, TaskCnt:%d, TaskInfo:%s '''\ %( self.Head.OutputString(), self.StartDate, self.EndtDate, self.ResetType, 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 25 ½ÚÈÕºì°üÐÅÏ¢ #tagMCFeastRedPackInfo class tagMCFeastRedPackInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("MoneyNum", c_int), # ÀÛ»ýÇÀµ½¶àÉÙÇ® ("GrabCnt", c_ushort), # ÒÑÇÀºì°ü´ÎÊý ] def __init__(self): self.Clear() self.Cmd = 0xAB 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 = 0xAB self.SubCmd = 0x25 self.MoneyNum = 0 self.GrabCnt = 0 return def GetLength(self): return sizeof(tagMCFeastRedPackInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// AB 25 ½ÚÈÕºì°üÐÅÏ¢ //tagMCFeastRedPackInfo: Cmd:%s, SubCmd:%s, MoneyNum:%d, GrabCnt:%d '''\ %( self.Cmd, self.SubCmd, self.MoneyNum, self.GrabCnt ) return DumpString m_NAtagMCFeastRedPackInfo=tagMCFeastRedPackInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFeastRedPackInfo.Cmd,m_NAtagMCFeastRedPackInfo.SubCmd))] = m_NAtagMCFeastRedPackInfo #------------------------------------------------------ # 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_ = [ ("CoatIndex", c_int), #ʱװË÷Òý ("CoatLV", 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.CoatIndex = 0 self.CoatLV = 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: CoatIndex:%d, CoatLV:%d '''\ %( self.CoatIndex, self.CoatLV ) return DumpString class tagMCClothesCoatSkinState(Structure): Head = tagHead() CoatChestLV = 0 #(DWORD CoatChestLV)//ʱװ¹ñµÈ¼¶ CoatChestExp = 0 #(DWORD CoatChestExp)//ʱװ¹ñ¾­Ñé CoatNum = 0 #(WORD 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.CoatChestLV,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.CoatChestExp,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.CoatNum,_pos = CommFunc.ReadWORD(_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.CoatChestLV = 0 self.CoatChestExp = 0 self.CoatNum = 0 self.CoatInfoList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 4 length += 2 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.CoatChestLV) data = CommFunc.WriteDWORD(data, self.CoatChestExp) data = CommFunc.WriteWORD(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, CoatChestLV:%d, CoatChestExp:%d, CoatNum:%d, CoatInfoList:%s '''\ %( self.Head.OutputString(), self.CoatChestLV, self.CoatChestExp, self.CoatNum, "..." ) return DumpString m_NAtagMCClothesCoatSkinState=tagMCClothesCoatSkinState() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCClothesCoatSkinState.Head.Cmd,m_NAtagMCClothesCoatSkinState.Head.SubCmd))] = m_NAtagMCClothesCoatSkinState #------------------------------------------------------ # B1 06 Í¨ÖªÍæ¼ÒÏòÄ¿±êµãÒÆ¶¯ #tagMCNotifyPlayerMove class tagMCNotifyPlayerMove(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PosX", c_int), ("PosY", c_int), ("NPCID", c_int), #Ä¿±êµãѰ·NPCID, ¿ÉÄÜΪ0 ] def __init__(self): self.Clear() self.Cmd = 0xB1 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 = 0xB1 self.SubCmd = 0x06 self.PosX = 0 self.PosY = 0 self.NPCID = 0 return def GetLength(self): return sizeof(tagMCNotifyPlayerMove) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// B1 06 Í¨ÖªÍæ¼ÒÏòÄ¿±êµãÒÆ¶¯ //tagMCNotifyPlayerMove: Cmd:%s, SubCmd:%s, PosX:%d, PosY:%d, NPCID:%d '''\ %( self.Cmd, self.SubCmd, self.PosX, self.PosY, self.NPCID ) return DumpString m_NAtagMCNotifyPlayerMove=tagMCNotifyPlayerMove() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCNotifyPlayerMove.Cmd,m_NAtagMCNotifyPlayerMove.SubCmd))] = m_NAtagMCNotifyPlayerMove #------------------------------------------------------ # 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 07 Íæ¼ÒµãÊýÐÅÏ¢ #tagMCRolePointInfo class tagMCRolePointInfo(Structure): Head = tagHead() PointAttrIDCount = 0 #(BYTE PointAttrIDCount)// µãÀàÐ͸öÊý PointAttrIDList = list() #(vector PointAttrIDList)// µãÀàÐÍÁбí PointValueList = list() #(vector PointValueList)// µãÀàÐͶÔÓ¦ÒѼÓ×ÔÓɵãÊýÁбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB1 self.Head.SubCmd = 0x07 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.PointAttrIDCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.PointAttrIDCount): value,_pos=CommFunc.ReadBYTE(_lpData,_pos) self.PointAttrIDList.append(value) for i in range(self.PointAttrIDCount): value,_pos=CommFunc.ReadWORD(_lpData,_pos) self.PointValueList.append(value) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB1 self.Head.SubCmd = 0x07 self.PointAttrIDCount = 0 self.PointAttrIDList = list() self.PointValueList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 1 * self.PointAttrIDCount length += 2 * self.PointAttrIDCount return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.PointAttrIDCount) for i in range(self.PointAttrIDCount): data = CommFunc.WriteBYTE(data, self.PointAttrIDList[i]) for i in range(self.PointAttrIDCount): data = CommFunc.WriteWORD(data, self.PointValueList[i]) return data def OutputString(self): DumpString = ''' Head:%s, PointAttrIDCount:%d, PointAttrIDList:%s, PointValueList:%s '''\ %( self.Head.OutputString(), self.PointAttrIDCount, "...", "..." ) return DumpString m_NAtagMCRolePointInfo=tagMCRolePointInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCRolePointInfo.Head.Cmd,m_NAtagMCRolePointInfo.Head.SubCmd))] = m_NAtagMCRolePointInfo #------------------------------------------------------ # 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 08 »ñµÃÏÉÔµ±ÒÐÅÏ¢ #tagMCAddXianyuanCoinMsg class tagMCAddXianyuanCoinMsg(Structure): Head = tagHead() MapID = 0 #(DWORD MapID) FuncLineID = 0 #(BYTE FuncLineID) Relation = 0 #(BYTE Relation)// µ±Ê±µÄ¹ØÏµ£º0-ÎÞ£¬1-ºÃÓÑ£¬2-ÃËÓÑ RelationCoinAdd = 0 #(BYTE RelationCoinAdd)// Éç½»¹ØÏµ×Ü¼Ó³É XianyuanCoinAdd = 0 #(WORD XianyuanCoinAdd)// ʵ¼ÊÔö¼ÓµÄÏÉÔµ±Ò Reason = 0 #(BYTE Reason)//ÏÉÔµ±ÒΪ0ʱµÄÔ­Òò£º1-ÖúÕ½´ÎÊýÉÏÏÞ£»2-ÿÈÕ»ñµÃÉÏÏÞ CallPlayerID = 0 #(DWORD CallPlayerID)// ÖúÕ½µÄÍæ¼ÒID£¬ÓÐֵʱ´ú±íÕæÊµÖúÕ½£¬Ã»ÓÐֵʱΪ×Ô¼º´òµÄ NameLen = 0 #(BYTE NameLen) CallPlayerName = "" #(String CallPlayerName)// ÖúÕ½µÄÍæ¼ÒÃû£¬size = NameLen IsSweep = 0 #(BYTE IsSweep)// ÊÇ·ñɨµ´ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB2 self.Head.SubCmd = 0x08 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.FuncLineID,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Relation,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.RelationCoinAdd,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.XianyuanCoinAdd,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Reason,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.CallPlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.CallPlayerName,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen) self.IsSweep,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB2 self.Head.SubCmd = 0x08 self.MapID = 0 self.FuncLineID = 0 self.Relation = 0 self.RelationCoinAdd = 0 self.XianyuanCoinAdd = 0 self.Reason = 0 self.CallPlayerID = 0 self.NameLen = 0 self.CallPlayerName = "" self.IsSweep = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += 1 length += 1 length += 2 length += 1 length += 4 length += 1 length += len(self.CallPlayerName) length += 1 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.FuncLineID) data = CommFunc.WriteBYTE(data, self.Relation) data = CommFunc.WriteBYTE(data, self.RelationCoinAdd) data = CommFunc.WriteWORD(data, self.XianyuanCoinAdd) data = CommFunc.WriteBYTE(data, self.Reason) data = CommFunc.WriteDWORD(data, self.CallPlayerID) data = CommFunc.WriteBYTE(data, self.NameLen) data = CommFunc.WriteString(data, self.NameLen, self.CallPlayerName) data = CommFunc.WriteBYTE(data, self.IsSweep) return data def OutputString(self): DumpString = ''' Head:%s, MapID:%d, FuncLineID:%d, Relation:%d, RelationCoinAdd:%d, XianyuanCoinAdd:%d, Reason:%d, CallPlayerID:%d, NameLen:%d, CallPlayerName:%s, IsSweep:%d '''\ %( self.Head.OutputString(), self.MapID, self.FuncLineID, self.Relation, self.RelationCoinAdd, self.XianyuanCoinAdd, self.Reason, self.CallPlayerID, self.NameLen, self.CallPlayerName, self.IsSweep ) return DumpString m_NAtagMCAddXianyuanCoinMsg=tagMCAddXianyuanCoinMsg() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCAddXianyuanCoinMsg.Head.Cmd,m_NAtagMCAddXianyuanCoinMsg.Head.SubCmd))] = m_NAtagMCAddXianyuanCoinMsg #------------------------------------------------------ # 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), #ÊÇ·ñË«±¶ ("OldDouble", 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 self.OldDouble = 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, OldDouble:%d '''\ %( self.Cmd, self.SubCmd, self.IsDouble, self.OldDouble ) return DumpString m_NAtagMCFMTDoubleState=tagMCFMTDoubleState() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFMTDoubleState.Cmd,m_NAtagMCFMTDoubleState.SubCmd))] = m_NAtagMCFMTDoubleState #------------------------------------------------------ # B2 06 ÖúÕ½ÕÙ»½½á¹û #tagMCHelpBattleCallResult class tagMCHelpBattleCallResult(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ObjID", c_int), # ÖúսʵÀýID ("PlayerID", c_int), # ÖúÕ½¾µÏñID,´óÓÚ1СÓÚ100´ú±í»úÆ÷ÈË,Èç¹ûÊÇ»úÆ÷ÈËǰ¶Ë°´Ë³Ðò×Ô¼º¼Ç¼¶ÔӦʵÀýID´ú±íÒÑÕÙ»½ ("Job", c_ubyte), # Ö°Òµ ] def __init__(self): self.Clear() self.Cmd = 0xB2 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 = 0xB2 self.SubCmd = 0x06 self.ObjID = 0 self.PlayerID = 0 self.Job = 0 return def GetLength(self): return sizeof(tagMCHelpBattleCallResult) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// B2 06 ÖúÕ½ÕÙ»½½á¹û //tagMCHelpBattleCallResult: Cmd:%s, SubCmd:%s, ObjID:%d, PlayerID:%d, Job:%d '''\ %( self.Cmd, self.SubCmd, self.ObjID, self.PlayerID, self.Job ) return DumpString m_NAtagMCHelpBattleCallResult=tagMCHelpBattleCallResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCHelpBattleCallResult.Cmd,m_NAtagMCHelpBattleCallResult.SubCmd))] = m_NAtagMCHelpBattleCallResult #------------------------------------------------------ # B2 05 ÖúÕ½µÇ¼Ç½á¹û #tagMCHelpBattleCheckInResult class tagMCHelpBattleCheckInResult(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("IsOK", c_ubyte), #ÊÇ·ñ³É¹¦ ("IsLogin", c_ubyte), #ÊÇ·ñµÇ¼ͬ²½ÒÑµÇ¼Ç ] def __init__(self): self.Clear() self.Cmd = 0xB2 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 = 0xB2 self.SubCmd = 0x05 self.IsOK = 0 self.IsLogin = 0 return def GetLength(self): return sizeof(tagMCHelpBattleCheckInResult) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// B2 05 ÖúÕ½µÇ¼Ç½á¹û //tagMCHelpBattleCheckInResult: Cmd:%s, SubCmd:%s, IsOK:%d, IsLogin:%d '''\ %( self.Cmd, self.SubCmd, self.IsOK, self.IsLogin ) return DumpString m_NAtagMCHelpBattleCheckInResult=tagMCHelpBattleCheckInResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCHelpBattleCheckInResult.Cmd,m_NAtagMCHelpBattleCheckInResult.SubCmd))] = m_NAtagMCHelpBattleCheckInResult #------------------------------------------------------ # B2 07 ÖúÕ½»úÆ÷ÈËÁбí #tagMCHelpBattleList class tagMCHelpBattlePlayer(Structure): ObjID = 0 #(DWORD ObjID)// ʵÀýID, 0´ú±íδÕÙ»½ PlayerID = 0 #(DWORD PlayerID)// ÖúÕ½¾µÏñID, ´óÓÚ1СÓÚ100´ú±í»úÆ÷ÈË,Èç¹ûÊÇ»úÆ÷ÈË£¬Ã»ÓÐÒÔÏÂÐÅÏ¢£¬Ïà¹ØÐÅÏ¢×Ô¼º¶ÁÅäÖà NameLen = 0 #(BYTE NameLen) Name = "" #(String Name)// Íæ¼ÒÃû£¬size = NameLen LV = 0 #(WORD LV)// Íæ¼ÒµÈ¼¶ Job = 0 #(BYTE Job)// Íæ¼ÒÖ°Òµ£¬ Èç¹ûÊÇ»úÆ÷ÈË£¬ÔòÖ°ÒµÓÐÖµ£¬·þÎñ¶Ë¿ØÖÆ RealmLV = 0 #(WORD RealmLV)// Íæ¼Ò¾³½çµÈ¼¶ FightPower = 0 #(DWORD FightPower)// Íæ¼ÒÕ½Á¦ Relation = 0 #(BYTE Relation)// ¹ØÏµ£º0-ÎÞ£¬1-ºÃÓÑ£¬2-ÃËÓÑ IsNeedGold = 0 #(BYTE IsNeedGold)// ÊÇ·ñÐèÒªÏÉÓñÕÙ»½ data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.ObjID,_pos = CommFunc.ReadDWORD(_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.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Relation,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.IsNeedGold,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): self.ObjID = 0 self.PlayerID = 0 self.NameLen = 0 self.Name = "" self.LV = 0 self.Job = 0 self.RealmLV = 0 self.FightPower = 0 self.Relation = 0 self.IsNeedGold = 0 return def GetLength(self): length = 0 length += 4 length += 4 length += 1 length += len(self.Name) length += 2 length += 1 length += 2 length += 4 length += 1 length += 1 return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.ObjID) 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.WriteWORD(data, self.RealmLV) data = CommFunc.WriteDWORD(data, self.FightPower) data = CommFunc.WriteBYTE(data, self.Relation) data = CommFunc.WriteBYTE(data, self.IsNeedGold) return data def OutputString(self): DumpString = ''' ObjID:%d, PlayerID:%d, NameLen:%d, Name:%s, LV:%d, Job:%d, RealmLV:%d, FightPower:%d, Relation:%d, IsNeedGold:%d '''\ %( self.ObjID, self.PlayerID, self.NameLen, self.Name, self.LV, self.Job, self.RealmLV, self.FightPower, self.Relation, self.IsNeedGold ) return DumpString class tagMCHelpBattleList(Structure): Head = tagHead() RefreshCount = 0 #(BYTE RefreshCount)// ÒÑˢдÎÊý HelpCount = 0 #(BYTE HelpCount)// ÖúÕ½¸öÊý HelpPlayerList = list() #(vector HelpPlayerList)// ÖúÕ½¾µÏñÐÅÏ¢ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB2 self.Head.SubCmd = 0x07 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.RefreshCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.HelpCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.HelpCount): temHelpPlayerList = tagMCHelpBattlePlayer() _pos = temHelpPlayerList.ReadData(_lpData, _pos) self.HelpPlayerList.append(temHelpPlayerList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB2 self.Head.SubCmd = 0x07 self.RefreshCount = 0 self.HelpCount = 0 self.HelpPlayerList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 1 for i in range(self.HelpCount): length += self.HelpPlayerList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.RefreshCount) data = CommFunc.WriteBYTE(data, self.HelpCount) for i in range(self.HelpCount): data = CommFunc.WriteString(data, self.HelpPlayerList[i].GetLength(), self.HelpPlayerList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, RefreshCount:%d, HelpCount:%d, HelpPlayerList:%s '''\ %( self.Head.OutputString(), self.RefreshCount, self.HelpCount, "..." ) return DumpString m_NAtagMCHelpBattleList=tagMCHelpBattleList() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCHelpBattleList.Head.Cmd,m_NAtagMCHelpBattleList.Head.SubCmd))] = m_NAtagMCHelpBattleList #------------------------------------------------------ # B2 11 ÖúÕ½¼Ç¼Áбí #tagMCHelpBattleRecordList class tagMCHelpBattleRecord(Structure): CallPlayerID = 0 #(DWORD CallPlayerID)// ÑûÇëÖúÕ½µÄÍæ¼ÒID NameLen = 0 #(BYTE NameLen) CallPlayerName = "" #(String CallPlayerName)// ÑûÇëÖúÕ½µÄÍæ¼ÒÃû£¬size = NameLen MapID = 0 #(DWORD MapID) FuncLineID = 0 #(BYTE FuncLineID) XianyuanCoinAdd = 0 #(WORD XianyuanCoinAdd)// Ôö¼ÓµÄÏÉÔµ±Ò£¬0´ú±íÒÑ´ïÉÏÏÞ Relation = 0 #(BYTE Relation)// µ±Ê±µÄ¹ØÏµ£º0-ÎÞ£¬1-ºÃÓÑ£¬2-ÃËÓÑ VIPLV = 0 #(BYTE VIPLV)// µ±Ê±µÄVIPµÈ¼¶ HelpTime = "" #(char HelpTime[19])// Öúսʱ¼äyyyy-MM-dd hh:mm:ss data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.CallPlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.CallPlayerName,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen) self.MapID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.FuncLineID,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.XianyuanCoinAdd,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Relation,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.VIPLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.HelpTime,_pos = CommFunc.ReadString(_lpData, _pos,19) return _pos def Clear(self): self.CallPlayerID = 0 self.NameLen = 0 self.CallPlayerName = "" self.MapID = 0 self.FuncLineID = 0 self.XianyuanCoinAdd = 0 self.Relation = 0 self.VIPLV = 0 self.HelpTime = "" return def GetLength(self): length = 0 length += 4 length += 1 length += len(self.CallPlayerName) length += 4 length += 1 length += 2 length += 1 length += 1 length += 19 return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.CallPlayerID) data = CommFunc.WriteBYTE(data, self.NameLen) data = CommFunc.WriteString(data, self.NameLen, self.CallPlayerName) data = CommFunc.WriteDWORD(data, self.MapID) data = CommFunc.WriteBYTE(data, self.FuncLineID) data = CommFunc.WriteWORD(data, self.XianyuanCoinAdd) data = CommFunc.WriteBYTE(data, self.Relation) data = CommFunc.WriteBYTE(data, self.VIPLV) data = CommFunc.WriteString(data, 19, self.HelpTime) return data def OutputString(self): DumpString = ''' CallPlayerID:%d, NameLen:%d, CallPlayerName:%s, MapID:%d, FuncLineID:%d, XianyuanCoinAdd:%d, Relation:%d, VIPLV:%d, HelpTime:%s '''\ %( self.CallPlayerID, self.NameLen, self.CallPlayerName, self.MapID, self.FuncLineID, self.XianyuanCoinAdd, self.Relation, self.VIPLV, self.HelpTime ) return DumpString class tagMCHelpBattleRecordList(Structure): Head = tagHead() RecordCount = 0 #(WORD RecordCount)// ¼Ç¼Êý RecordList = list() #(vector RecordList) data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB2 self.Head.SubCmd = 0x11 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.RecordCount,_pos = CommFunc.ReadWORD(_lpData, _pos) for i in range(self.RecordCount): temRecordList = tagMCHelpBattleRecord() _pos = temRecordList.ReadData(_lpData, _pos) self.RecordList.append(temRecordList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB2 self.Head.SubCmd = 0x11 self.RecordCount = 0 self.RecordList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 for i in range(self.RecordCount): 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.RecordCount) for i in range(self.RecordCount): data = CommFunc.WriteString(data, self.RecordList[i].GetLength(), self.RecordList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, RecordCount:%d, RecordList:%s '''\ %( self.Head.OutputString(), self.RecordCount, "..." ) return DumpString m_NAtagMCHelpBattleRecordList=tagMCHelpBattleRecordList() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCHelpBattleRecordList.Head.Cmd,m_NAtagMCHelpBattleRecordList.Head.SubCmd))] = m_NAtagMCHelpBattleRecordList #------------------------------------------------------ # B2 04 ±ù¾§¿óÂöÐÅϢ֪ͨ #tagMCIceLodeInfo class tagMCIceLodeInfo(Structure): Head = tagHead() Cnt = 0 #(BYTE Cnt)// ½ñÈÕÍæ·¨ÊýÁ¿ LineList = list() #(vector LineList)// Íæ·¨Áбí AwardRecord = 0 #(DWORD AwardRecord)// Áì½±¼Ç¼ HasSweep = 0 #(BYTE HasSweep)// ÊÇ·ñÒÑɨµ´ DayLV = 0 #(WORD DayLV)// ½ñÈյȼ¶ data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB2 self.Head.SubCmd = 0x04 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): value,_pos=CommFunc.ReadBYTE(_lpData,_pos) self.LineList.append(value) self.AwardRecord,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.HasSweep,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.DayLV,_pos = CommFunc.ReadWORD(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB2 self.Head.SubCmd = 0x04 self.Cnt = 0 self.LineList = list() self.AwardRecord = 0 self.HasSweep = 0 self.DayLV = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 1 * self.Cnt length += 4 length += 1 length += 2 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.WriteBYTE(data, self.LineList[i]) data = CommFunc.WriteDWORD(data, self.AwardRecord) data = CommFunc.WriteBYTE(data, self.HasSweep) data = CommFunc.WriteWORD(data, self.DayLV) return data def OutputString(self): DumpString = ''' Head:%s, Cnt:%d, LineList:%s, AwardRecord:%d, HasSweep:%d, DayLV:%d '''\ %( self.Head.OutputString(), self.Cnt, "...", self.AwardRecord, self.HasSweep, self.DayLV ) return DumpString m_NAtagMCIceLodeInfo=tagMCIceLodeInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCIceLodeInfo.Head.Cmd,m_NAtagMCIceLodeInfo.Head.SubCmd))] = m_NAtagMCIceLodeInfo #------------------------------------------------------ # 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 #------------------------------------------------------ # B2 12 ÖïÏÉBOSSЭÖú´ÎÊý #tagMCZhuXianBossCnt class tagMCZhuXianBossCnt(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Cnt", c_ubyte), # Ê£Óà¿ÉЭÖú´ÎÊý ] def __init__(self): self.Clear() self.Cmd = 0xB2 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 = 0xB2 self.SubCmd = 0x12 self.Cnt = 0 return def GetLength(self): return sizeof(tagMCZhuXianBossCnt) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// B2 12 ÖïÏÉBOSSЭÖú´ÎÊý //tagMCZhuXianBossCnt: Cmd:%s, SubCmd:%s, Cnt:%d '''\ %( self.Cmd, self.SubCmd, self.Cnt ) return DumpString m_NAtagMCZhuXianBossCnt=tagMCZhuXianBossCnt() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCZhuXianBossCnt.Cmd,m_NAtagMCZhuXianBossCnt.SubCmd))] = m_NAtagMCZhuXianBossCnt #------------------------------------------------------ # B2 13 ÖïÏÉËþͨ¹Ø²ãÊý #tagMCZhuXianTowerInfo class tagMCZhuXianTowerInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Floor", c_int), # ÒÑͨ¹Ø²ã ("LastFloor", c_int), # ÉÏ´ÎÌôÕ½²ã ] def __init__(self): self.Clear() self.Cmd = 0xB2 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 = 0xB2 self.SubCmd = 0x13 self.Floor = 0 self.LastFloor = 0 return def GetLength(self): return sizeof(tagMCZhuXianTowerInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// B2 13 ÖïÏÉËþͨ¹Ø²ãÊý //tagMCZhuXianTowerInfo: Cmd:%s, SubCmd:%s, Floor:%d, LastFloor:%d '''\ %( self.Cmd, self.SubCmd, self.Floor, self.LastFloor ) return DumpString m_NAtagMCZhuXianTowerInfo=tagMCZhuXianTowerInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCZhuXianTowerInfo.Cmd,m_NAtagMCZhuXianTowerInfo.SubCmd))] = m_NAtagMCZhuXianTowerInfo #------------------------------------------------------ # 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 14 ¸ù¾ÝÀàÐÍÀ´¾ö¶¨Òƶ¯µÄ·½Ê½ #tagMCMoveByType class tagMCMoveByType(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ID", c_int), #Íæ¼ÒID ("PosX", c_ushort), # Ä¿±êX ("PosY", c_ushort), # Ä¿±êY ("MoveType", c_ubyte), #ÒÆ¶¯·½Ê½ ] def __init__(self): self.Clear() self.Cmd = 0xB4 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 = 0xB4 self.SubCmd = 0x14 self.ID = 0 self.PosX = 0 self.PosY = 0 self.MoveType = 0 return def GetLength(self): return sizeof(tagMCMoveByType) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//B4 14 ¸ù¾ÝÀàÐÍÀ´¾ö¶¨Òƶ¯µÄ·½Ê½ //tagMCMoveByType: Cmd:%s, SubCmd:%s, ID:%d, PosX:%d, PosY:%d, MoveType:%d '''\ %( self.Cmd, self.SubCmd, self.ID, self.PosX, self.PosY, self.MoveType ) return DumpString m_NAtagMCMoveByType=tagMCMoveByType() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCMoveByType.Cmd,m_NAtagMCMoveByType.SubCmd))] = m_NAtagMCMoveByType #------------------------------------------------------ #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 13 Í¨ÖªÍæ¼ÒËùÓÐÒÑѧ¼¼ÄÜ #tagMCPlayerSkills class tagPlayerSkill(Structure): _pack_ = 1 _fields_ = [ ("SkillID", c_int), #¼¼ÄÜID ("RemainTime", c_int), #Ê£Óàʱ¼ä ("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.SkillID = 0 self.RemainTime = 0 self.Proficiency = 0 return def GetLength(self): return sizeof(tagPlayerSkill) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// B4 13 Í¨ÖªÍæ¼ÒËùÓÐÒÑѧ¼¼ÄÜ //tagMCPlayerSkills: SkillID:%d, RemainTime:%d, Proficiency:%d '''\ %( self.SkillID, self.RemainTime, self.Proficiency ) return DumpString class tagMCPlayerSkills(Structure): Head = tagHead() Count = 0 #(WORD Count)//¼¼ÄܸöÊý Skills = list() #(vector Skills)// ¼¼ÄÜÊý¾Ý data = None def __init__(self): self.Clear() self.Head.Cmd = 0xB4 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.ReadWORD(_lpData, _pos) for i in range(self.Count): temSkills = tagPlayerSkill() _pos = temSkills.ReadData(_lpData, _pos) self.Skills.append(temSkills) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xB4 self.Head.SubCmd = 0x13 self.Count = 0 self.Skills = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 for i in range(self.Count): length += self.Skills[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.Skills[i].GetLength(), self.Skills[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Count:%d, Skills:%s '''\ %( self.Head.OutputString(), self.Count, "..." ) return DumpString m_NAtagMCPlayerSkills=tagMCPlayerSkills() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPlayerSkills.Head.Cmd,m_NAtagMCPlayerSkills.Head.SubCmd))] = m_NAtagMCPlayerSkills #------------------------------------------------------ #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 #------------------------------------------------------ # C1 02 ¿ç·þPKÍæ¼Ò½±Àø¼Ç¼ #tagMCCrossRealmPKAwardState class tagMCCrossRealmPKAwardState(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("DayPKCountAwardState", c_int), # ÿÈÕÆ¥Åä´ÎÊý½±Àø¼Ç¼£¬¶þ½øÖÆÎ»´æ´¢ÊÇ·ñÒÑÁìÈ¡£¬°´Æ¥Åä´ÎÊýÉýÐòÅÅÐòË÷Òý´ú±í½±ÀøÎ» ("DayWinCountAwardState", c_int), # ÿÈÕʤÀû´ÎÊý½±Àø¼Ç¼£¬¶þ½øÖÆÎ»´æ´¢ÊÇ·ñÒÑÁìÈ¡£¬°´Ê¤Àû´ÎÊýÉýÐòÅÅÐòË÷Òý´ú±í½±ÀøÎ» ("DanLVAwardState", c_int), # ¶Îλ´ï±ê½±Àø¼Ç¼£¬¶þ½øÖÆÎ»´æ´¢ÊÇ·ñÒÑÁìÈ¡£¬°´¶Îλ´ú±í½±ÀøÎ» ("SeasonAwardState", c_ubyte), # Èü¼¾½áËã½±ÀøÊÇ·ñÒÑÁìÈ¡ ] def __init__(self): self.Clear() self.Cmd = 0xC1 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 = 0xC1 self.SubCmd = 0x02 self.DayPKCountAwardState = 0 self.DayWinCountAwardState = 0 self.DanLVAwardState = 0 self.SeasonAwardState = 0 return def GetLength(self): return sizeof(tagMCCrossRealmPKAwardState) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// C1 02 ¿ç·þPKÍæ¼Ò½±Àø¼Ç¼ //tagMCCrossRealmPKAwardState: Cmd:%s, SubCmd:%s, DayPKCountAwardState:%d, DayWinCountAwardState:%d, DanLVAwardState:%d, SeasonAwardState:%d '''\ %( self.Cmd, self.SubCmd, self.DayPKCountAwardState, self.DayWinCountAwardState, self.DanLVAwardState, self.SeasonAwardState ) return DumpString m_NAtagMCCrossRealmPKAwardState=tagMCCrossRealmPKAwardState() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCrossRealmPKAwardState.Cmd,m_NAtagMCCrossRealmPKAwardState.SubCmd))] = m_NAtagMCCrossRealmPKAwardState #------------------------------------------------------ # C1 03 ¿ç·þPKÍæ¼ÒÀúÊ·Èü¼¾ÐÅÏ¢ #tagMCCrossRealmPKPlayerHisSeasonInfo class tagMCCrossRealmPKPlayerHisSeason(Structure): _pack_ = 1 _fields_ = [ ("SeasonID", c_ushort), # Èü¼¾ID ("Order", c_ushort), # Ãû´Î ("DanLV", c_ubyte), # ¶Îλ ("Score", c_int), # »ý·Ö ("AwardLV", 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.SeasonID = 0 self.Order = 0 self.DanLV = 0 self.Score = 0 self.AwardLV = 0 return def GetLength(self): return sizeof(tagMCCrossRealmPKPlayerHisSeason) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// C1 03 ¿ç·þPKÍæ¼ÒÀúÊ·Èü¼¾ÐÅÏ¢ //tagMCCrossRealmPKPlayerHisSeasonInfo: SeasonID:%d, Order:%d, DanLV:%d, Score:%d, AwardLV:%d '''\ %( self.SeasonID, self.Order, self.DanLV, self.Score, self.AwardLV ) return DumpString class tagMCCrossRealmPKPlayerHisSeasonInfo(Structure): Head = tagHead() Count = 0 #(WORD Count)// Èü¼¾¸öÊý SeasonList = list() #(vector SeasonList)// Èü¼¾ÐÅÏ¢Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0xC1 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.ReadWORD(_lpData, _pos) for i in range(self.Count): temSeasonList = tagMCCrossRealmPKPlayerHisSeason() _pos = temSeasonList.ReadData(_lpData, _pos) self.SeasonList.append(temSeasonList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0xC1 self.Head.SubCmd = 0x03 self.Count = 0 self.SeasonList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 for i in range(self.Count): length += self.SeasonList[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.SeasonList[i].GetLength(), self.SeasonList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Count:%d, SeasonList:%s '''\ %( self.Head.OutputString(), self.Count, "..." ) return DumpString m_NAtagMCCrossRealmPKPlayerHisSeasonInfo=tagMCCrossRealmPKPlayerHisSeasonInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCrossRealmPKPlayerHisSeasonInfo.Head.Cmd,m_NAtagMCCrossRealmPKPlayerHisSeasonInfo.Head.SubCmd))] = m_NAtagMCCrossRealmPKPlayerHisSeasonInfo #------------------------------------------------------ # C1 01 ¿ç·þPKÍæ¼ÒÐÅÏ¢ #tagMCCrossRealmPKPlayerInfo class tagMCCrossRealmPKPlayerInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Score", c_int), # µ±Ç°»ý·Ö ("DanLV", c_ubyte), # µ±Ç°¶Îλ ("PKCount", c_ushort), # PK´ÎÊý ("WinCount", c_ushort), # ʤÀû´ÎÊý ("CWinCount", c_ushort), # Á¬Ê¤´ÎÊý ("DayPKCount", c_ubyte), # µ±ÈÕÒÑPK´ÎÊý ("DayWinCount", c_ubyte), # µ±ÈÕÒÑʤÀû´ÎÊý ("DayBuyCount", c_ubyte), # µ±ÈÕÒѹºÂò´ÎÊý ("DayItemAddCount", c_ubyte), # µ±ÈÕÎïÆ·Ôö¼Ó´ÎÊý ] def __init__(self): self.Clear() self.Cmd = 0xC1 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 = 0xC1 self.SubCmd = 0x01 self.Score = 0 self.DanLV = 0 self.PKCount = 0 self.WinCount = 0 self.CWinCount = 0 self.DayPKCount = 0 self.DayWinCount = 0 self.DayBuyCount = 0 self.DayItemAddCount = 0 return def GetLength(self): return sizeof(tagMCCrossRealmPKPlayerInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// C1 01 ¿ç·þPKÍæ¼ÒÐÅÏ¢ //tagMCCrossRealmPKPlayerInfo: Cmd:%s, SubCmd:%s, Score:%d, DanLV:%d, PKCount:%d, WinCount:%d, CWinCount:%d, DayPKCount:%d, DayWinCount:%d, DayBuyCount:%d, DayItemAddCount:%d '''\ %( self.Cmd, self.SubCmd, self.Score, self.DanLV, self.PKCount, self.WinCount, self.CWinCount, self.DayPKCount, self.DayWinCount, self.DayBuyCount, self.DayItemAddCount ) return DumpString m_NAtagMCCrossRealmPKPlayerInfo=tagMCCrossRealmPKPlayerInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCrossRealmPKPlayerInfo.Cmd,m_NAtagMCCrossRealmPKPlayerInfo.SubCmd))] = m_NAtagMCCrossRealmPKPlayerInfo #------------------------------------------------------ # C1 06 ½øÈë¿ç·þ·þÎñÆ÷´íÎó #tagMCEnterCrossServerError class tagMCEnterCrossServerError(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0xC1 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 = 0xC1 self.SubCmd = 0x06 return def GetLength(self): return sizeof(tagMCEnterCrossServerError) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// C1 06 ½øÈë¿ç·þ·þÎñÆ÷´íÎó //tagMCEnterCrossServerError: Cmd:%s, SubCmd:%s '''\ %( self.Cmd, self.SubCmd ) return DumpString m_NAtagMCEnterCrossServerError=tagMCEnterCrossServerError() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCEnterCrossServerError.Cmd,m_NAtagMCEnterCrossServerError.SubCmd))] = m_NAtagMCEnterCrossServerError #------------------------------------------------------ # C1 04 ×¼±¸½øÈë¿ç·þ·þÎñÆ÷ #tagMCPrepareEnterCrossServer class tagMCPrepareEnterCrossServer(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("DataMapID", c_int), ] def __init__(self): self.Clear() self.Cmd = 0xC1 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 = 0xC1 self.SubCmd = 0x04 self.DataMapID = 0 return def GetLength(self): return sizeof(tagMCPrepareEnterCrossServer) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// C1 04 ×¼±¸½øÈë¿ç·þ·þÎñÆ÷ //tagMCPrepareEnterCrossServer: Cmd:%s, SubCmd:%s, DataMapID:%d '''\ %( self.Cmd, self.SubCmd, self.DataMapID ) return DumpString m_NAtagMCPrepareEnterCrossServer=tagMCPrepareEnterCrossServer() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPrepareEnterCrossServer.Cmd,m_NAtagMCPrepareEnterCrossServer.SubCmd))] = m_NAtagMCPrepareEnterCrossServer #------------------------------------------------------ # C1 05 ¿ªÊ¼½øÈë¿ç·þ·þÎñÆ÷ #tagMCStartEnterCrossServer class tagMCStartEnterCrossServer(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0xC1 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 = 0xC1 self.SubCmd = 0x05 return def GetLength(self): return sizeof(tagMCStartEnterCrossServer) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// C1 05 ¿ªÊ¼½øÈë¿ç·þ·þÎñÆ÷ //tagMCStartEnterCrossServer: Cmd:%s, SubCmd:%s '''\ %( self.Cmd, self.SubCmd ) return DumpString m_NAtagMCStartEnterCrossServer=tagMCStartEnterCrossServer() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCStartEnterCrossServer.Cmd,m_NAtagMCStartEnterCrossServer.SubCmd))] = m_NAtagMCStartEnterCrossServer