#!/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 #------------------------------------------------------ #01 01 ·þÎñÆ÷InitOK#tagServerPrepared class tagServerPrepared(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Version", c_int), ] def __init__(self): self.Clear() self.Cmd = 0x01 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 = 0x01 self.SubCmd = 0x01 self.Version = 0 return def GetLength(self): return sizeof(tagServerPrepared) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//01 01 ·þÎñÆ÷InitOK//tagServerPrepared: Cmd:%s, SubCmd:%s, Version:%d '''\ %( self.Cmd, self.SubCmd, self.Version ) return DumpString m_NAtagServerPrepared=tagServerPrepared() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagServerPrepared.Cmd,m_NAtagServerPrepared.SubCmd))] = m_NAtagServerPrepared #------------------------------------------------------ #01 03 н¨½ÇÉ«#tagNeedCreateRole class tagNeedCreateRole(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ] def __init__(self): self.Clear() self.Cmd = 0x01 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 = 0x01 self.SubCmd = 0x03 self.PlayerID = 0 return def GetLength(self): return sizeof(tagNeedCreateRole) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//01 03 н¨½ÇÉ«//tagNeedCreateRole: Cmd:%s, SubCmd:%s, PlayerID:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID ) return DumpString m_NAtagNeedCreateRole=tagNeedCreateRole() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagNeedCreateRole.Cmd,m_NAtagNeedCreateRole.SubCmd))] = m_NAtagNeedCreateRole #------------------------------------------------------ #01 04 ¶ÏÏß#tagServerDisconnect class tagServerDisconnect(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Reason", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0x01 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 = 0x01 self.SubCmd = 0x04 self.Reason = 0 return def GetLength(self): return sizeof(tagServerDisconnect) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//01 04 ¶ÏÏß//tagServerDisconnect: Cmd:%s, SubCmd:%s, Reason:%d '''\ %( self.Cmd, self.SubCmd, self.Reason ) return DumpString m_NAtagServerDisconnect=tagServerDisconnect() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagServerDisconnect.Cmd,m_NAtagServerDisconnect.SubCmd))] = m_NAtagServerDisconnect #------------------------------------------------------ #01 10 ÅŶӺÅÂë#tagLoginPlayerInQueue class tagLoginPlayerInQueue(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Count", c_int), #µÚ¶àÉÙλ ] def __init__(self): self.Clear() self.Cmd = 0x01 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 = 0x01 self.SubCmd = 0x10 self.Count = 0 return def GetLength(self): return sizeof(tagLoginPlayerInQueue) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//01 10 ÅŶӺÅÂë//tagLoginPlayerInQueue: Cmd:%s, SubCmd:%s, Count:%d '''\ %( self.Cmd, self.SubCmd, self.Count ) return DumpString m_NAtagLoginPlayerInQueue=tagLoginPlayerInQueue() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagLoginPlayerInQueue.Cmd,m_NAtagLoginPlayerInQueue.SubCmd))] = m_NAtagLoginPlayerInQueue #------------------------------------------------------ #01 17 ApexUserData#tagApexUserData class tagApexUserData(Structure): Head = tagHead() MsgLen = 0 #(WORD MsgLen) Msg = "" #(String Msg)//size = MsgLen data = None def __init__(self): self.Clear() self.Head.Cmd = 0x01 self.Head.SubCmd = 0x17 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.MsgLen,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Msg,_pos = CommFunc.ReadString(_lpData, _pos,self.MsgLen) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x01 self.Head.SubCmd = 0x17 self.MsgLen = 0 self.Msg = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 length += len(self.Msg) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteWORD(data, self.MsgLen) data = CommFunc.WriteString(data, self.MsgLen, self.Msg) return data def OutputString(self): DumpString = ''' Head:%s, MsgLen:%d, Msg:%s '''\ %( self.Head.OutputString(), self.MsgLen, self.Msg ) return DumpString m_NAtagApexUserData=tagApexUserData() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagApexUserData.Head.Cmd,m_NAtagApexUserData.Head.SubCmd))] = m_NAtagApexUserData #------------------------------------------------------ #01 15 ÇëÇó¿Í»§¶Ë°æ±¾ºÅ#tagAskClientVersion class tagAskClientVersion(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ubyte), #ÎÞÒâÒå ] def __init__(self): self.Clear() self.Cmd = 0x01 self.SubCmd = 0x15 return def 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 = 0x01 self.SubCmd = 0x15 self.Type = 0 return def GetLength(self): return sizeof(tagAskClientVersion) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//01 15 ÇëÇó¿Í»§¶Ë°æ±¾ºÅ//tagAskClientVersion: Cmd:%s, SubCmd:%s, Type:%d '''\ %( self.Cmd, self.SubCmd, self.Type ) return DumpString m_NAtagAskClientVersion=tagAskClientVersion() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagAskClientVersion.Cmd,m_NAtagAskClientVersion.SubCmd))] = m_NAtagAskClientVersion #------------------------------------------------------ #01 2B GameServer¿ªÊ¼»î¶¯Í¨Ó÷â°ü#tagBeginActionÕâÀï·â°üÒ»°ã×ö¹ã²¥Ó㬶ÔÐÔÄÜÓÐÓ°Ïì±È½Ï´ó£¬É÷Óà class tagBeginAction(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ActionType", c_ubyte), # »î¶¯ÀàÐÍ ] def __init__(self): self.Clear() self.Cmd = 0x01 self.SubCmd = 0x2B return def 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 = 0x01 self.SubCmd = 0x2B self.ActionType = 0 return def GetLength(self): return sizeof(tagBeginAction) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//01 2B GameServer¿ªÊ¼»î¶¯Í¨Ó÷â°ü//tagBeginActionÕâÀï·â°üÒ»°ã×ö¹ã²¥Ó㬶ÔÐÔÄÜÓÐÓ°Ïì±È½Ï´ó£¬É÷ÓÃ: Cmd:%s, SubCmd:%s, ActionType:%d '''\ %( self.Cmd, self.SubCmd, self.ActionType ) return DumpString m_NAtagBeginAction=tagBeginAction() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagBeginAction.Cmd,m_NAtagBeginAction.SubCmd))] = m_NAtagBeginAction #------------------------------------------------------ #01 07 ¿Í»§¶ËÏÔʾ´´½¨½ÇÉ«/Ñ¡Ôñ½ÇÉ«½çÃæ#tagShowLoginFrm class tagShowLoginFrm(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ubyte), #1:ÏÔʾ´´½¨½ÇÉ«½çÃæ 2:ÏÔʾѡÔñ½ÇÉ«½çÃæ ] def __init__(self): self.Clear() self.Cmd = 0x01 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 = 0x01 self.SubCmd = 0x07 self.Type = 0 return def GetLength(self): return sizeof(tagShowLoginFrm) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//01 07 ¿Í»§¶ËÏÔʾ´´½¨½ÇÉ«/Ñ¡Ôñ½ÇÉ«½çÃæ//tagShowLoginFrm: Cmd:%s, SubCmd:%s, Type:%d '''\ %( self.Cmd, self.SubCmd, self.Type ) return DumpString m_NAtagShowLoginFrm=tagShowLoginFrm() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagShowLoginFrm.Cmd,m_NAtagShowLoginFrm.SubCmd))] = m_NAtagShowLoginFrm #------------------------------------------------------ #01 20 ÐÞ¸ÄÃÜÂë·µ»ØÖµ#tagChangePswReply class tagChangePswReply(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Result", c_ubyte), #0ÅfÃÜ´aåeÕ` 1Ð޸ijɹ¦ 2:Ÿo´ËŽ¤Ì– ] def __init__(self): self.Clear() self.Cmd = 0x01 self.SubCmd = 0x20 return def 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 = 0x01 self.SubCmd = 0x20 self.Result = 0 return def GetLength(self): return sizeof(tagChangePswReply) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//01 20 ÐÞ¸ÄÃÜÂë·µ»ØÖµ//tagChangePswReply: Cmd:%s, SubCmd:%s, Result:%d '''\ %( self.Cmd, self.SubCmd, self.Result ) return DumpString m_NAtagChangePswReply=tagChangePswReply() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagChangePswReply.Cmd,m_NAtagChangePswReply.SubCmd))] = m_NAtagChangePswReply #------------------------------------------------------ #01 31ÕʺÅÑéÖ¤½á¹û#tagCheckAccResult class tagCheckAccResult(Structure): Head = tagHead() ResultCode = 0 #(BYTE ResultCode)//·µ»Ø½á¹ûCode ResultMsgLen = 0 #(BYTE ResultMsgLen)// ·µ»ØÏûÏ¢³¤¶È ResultMsg = "" #(String ResultMsg)// ·µ»ØÏûÏ¢ data = None def __init__(self): self.Clear() self.Head.Cmd = 0x01 self.Head.SubCmd = 0x31 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.ResultCode,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ResultMsgLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ResultMsg,_pos = CommFunc.ReadString(_lpData, _pos,self.ResultMsgLen) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x01 self.Head.SubCmd = 0x31 self.ResultCode = 0 self.ResultMsgLen = 0 self.ResultMsg = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 1 length += len(self.ResultMsg) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.ResultCode) data = CommFunc.WriteBYTE(data, self.ResultMsgLen) data = CommFunc.WriteString(data, self.ResultMsgLen, self.ResultMsg) return data def OutputString(self): DumpString = ''' Head:%s, ResultCode:%d, ResultMsgLen:%d, ResultMsg:%s '''\ %( self.Head.OutputString(), self.ResultCode, self.ResultMsgLen, self.ResultMsg ) return DumpString m_NAtagCheckAccResult=tagCheckAccResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCheckAccResult.Head.Cmd,m_NAtagCheckAccResult.Head.SubCmd))] = m_NAtagCheckAccResult #------------------------------------------------------ #01 05 ÈËÎï´´½¨Ê§°Ü#tagCreateRoleFail class tagCreateRoleFail(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0x01 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 = 0x01 self.SubCmd = 0x05 self.Type = 0 return def GetLength(self): return sizeof(tagCreateRoleFail) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//01 05 ÈËÎï´´½¨Ê§°Ü//tagCreateRoleFail: Cmd:%s, SubCmd:%s, Type:%d '''\ %( self.Cmd, self.SubCmd, self.Type ) return DumpString m_NAtagCreateRoleFail=tagCreateRoleFail() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCreateRoleFail.Cmd,m_NAtagCreateRoleFail.SubCmd))] = m_NAtagCreateRoleFail #------------------------------------------------------ #01 08 Íæ¼Òɾ³ý½ÇÉ«¶þ¼¶ÃÜÂë´íÎó#tagDeleteRolePsw2Error class tagDeleteRolePsw2Error(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0x01 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 = 0x01 self.SubCmd = 0x08 self.Type = 0 return def GetLength(self): return sizeof(tagDeleteRolePsw2Error) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//01 08 Íæ¼Òɾ³ý½ÇÉ«¶þ¼¶ÃÜÂë´íÎó//tagDeleteRolePsw2Error: Cmd:%s, SubCmd:%s, Type:%d '''\ %( self.Cmd, self.SubCmd, self.Type ) return DumpString m_NAtagDeleteRolePsw2Error=tagDeleteRolePsw2Error() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagDeleteRolePsw2Error.Cmd,m_NAtagDeleteRolePsw2Error.SubCmd))] = m_NAtagDeleteRolePsw2Error #------------------------------------------------------ #01 27 ɾ³ý½ÇÉ«½á¹û#tagDeleteRoleResult class tagDeleteRoleResult(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("LastError", c_ubyte), #0³É¹¦,ÆäËûÖµ(Èç¹ûÓÐ)ÊÇʧ°ÜÔ­Òò ] def __init__(self): self.Clear() self.Cmd = 0x01 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 = 0x01 self.SubCmd = 0x27 self.LastError = 0 return def GetLength(self): return sizeof(tagDeleteRoleResult) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//01 27 ɾ³ý½ÇÉ«½á¹û//tagDeleteRoleResult: Cmd:%s, SubCmd:%s, LastError:%d '''\ %( self.Cmd, self.SubCmd, self.LastError ) return DumpString m_NAtagDeleteRoleResult=tagDeleteRoleResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagDeleteRoleResult.Cmd,m_NAtagDeleteRoleResult.SubCmd))] = m_NAtagDeleteRoleResult #------------------------------------------------------ #01 2C GameServer½áÊø»î¶¯Í¨Ó÷â°ü#tagEndActionÕâÀï·â°üÒ»°ã×ö¹ã²¥Ó㬶ÔÐÔÄÜÓÐÓ°Ïì±È½Ï´ó£¬É÷Óà class tagEndAction(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ActionType", c_ubyte), # »î¶¯ÀàÐÍ ] def __init__(self): self.Clear() self.Cmd = 0x01 self.SubCmd = 0x2C return def 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 = 0x01 self.SubCmd = 0x2C self.ActionType = 0 return def GetLength(self): return sizeof(tagEndAction) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//01 2C GameServer½áÊø»î¶¯Í¨Ó÷â°ü//tagEndActionÕâÀï·â°üÒ»°ã×ö¹ã²¥Ó㬶ÔÐÔÄÜÓÐÓ°Ïì±È½Ï´ó£¬É÷ÓÃ: Cmd:%s, SubCmd:%s, ActionType:%d '''\ %( self.Cmd, self.SubCmd, self.ActionType ) return DumpString m_NAtagEndAction=tagEndAction() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagEndAction.Cmd,m_NAtagEndAction.SubCmd))] = m_NAtagEndAction #------------------------------------------------------ #01 2D ²Î¼Ó»î¶¯»Ø°ü#tagJoinActionOK ¶ÔÐÔÄÜÓ°ÏìÒ»°ã²»´ó class tagJoinActionOK(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ubyte), #»î¶¯ÀàÐÍ ("IsOK", c_ubyte), # 1²Î¼Ó³É¹¦£¬0 ʧ°Ü ] def __init__(self): self.Clear() self.Cmd = 0x01 self.SubCmd = 0x2D return def 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 = 0x01 self.SubCmd = 0x2D self.Type = 0 self.IsOK = 0 return def GetLength(self): return sizeof(tagJoinActionOK) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//01 2D ²Î¼Ó»î¶¯»Ø°ü//tagJoinActionOK ¶ÔÐÔÄÜÓ°ÏìÒ»°ã²»´ó: Cmd:%s, SubCmd:%s, Type:%d, IsOK:%d '''\ %( self.Cmd, self.SubCmd, self.Type, self.IsOK ) return DumpString m_NAtagJoinActionOK=tagJoinActionOK() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagJoinActionOK.Cmd,m_NAtagJoinActionOK.SubCmd))] = m_NAtagJoinActionOK #------------------------------------------------------ #01 11 ÔÚÏß»ØÓ¦»Ø±¨#tagOnlineReply class tagOnlineReply(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0x01 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 = 0x01 self.SubCmd = 0x11 self.Type = 0 return def GetLength(self): return sizeof(tagOnlineReply) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//01 11 ÔÚÏß»ØÓ¦»Ø±¨//tagOnlineReply: Cmd:%s, SubCmd:%s, Type:%d '''\ %( self.Cmd, self.SubCmd, self.Type ) return DumpString m_NAtagOnlineReply=tagOnlineReply() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagOnlineReply.Cmd,m_NAtagOnlineReply.SubCmd))] = m_NAtagOnlineReply #------------------------------------------------------ #01 02 Íæ¼Ò³õʼ»¯#tagCDBPlayer class tagCDBPlayer(Structure): Head = tagHead() AccID = "" #(char AccID[65])//_KEY_i_ÕʺÅÃû, ¸Ã½ÇÉ«ËùÔÚµÄÕʺŵÄÓû§Ãû PlayerID = 0 #(DWORD PlayerID)//_IDT_ 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)//ÌåÆÇ Setting = "" #(char Setting[100])//É趨 PKValue = 0 #(WORD PKValue)//ºâÁ¿PKÄÜÁ¦µÄÒ»ÏîÊôÐÔ£¬Óɹ¥·À¼ÆËã¶øµÃ ActiveValue = 0 #(WORD ActiveValue)//»÷ɱµÐ¹úÕóÓªÍæ¼ÒºÍNPCµÄͳ¼ÆÖµ 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 = 0x01 self.Head.SubCmd = 0x02 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.Setting,_pos = CommFunc.ReadString(_lpData, _pos,100) self.PKValue,_pos = CommFunc.ReadWORD(_lpData, _pos) self.ActiveValue,_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 = 0x01 self.Head.SubCmd = 0x02 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.Setting = "" self.PKValue = 0 self.ActiveValue = 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 += 100 length += 2 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.WriteString(data, 100, self.Setting) data = CommFunc.WriteWORD(data, self.PKValue) data = CommFunc.WriteWORD(data, self.ActiveValue) 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, Setting:%s, PKValue:%d, ActiveValue:%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.Setting, self.PKValue, self.ActiveValue, 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_NAtagCDBPlayer=tagCDBPlayer() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCDBPlayer.Head.Cmd,m_NAtagCDBPlayer.Head.SubCmd))] = m_NAtagCDBPlayer #------------------------------------------------------ #01 12 ½ÇÉ«ÃûÊÇ·ñ´æÔÚ»ØÓ¦#tagPlayerNameIsExist class tagPlayerNameIsExist(Structure): Head = tagHead() NameLen = 0 #(BYTE NameLen) Name = "" #(String Name)//size = NameLen IsExist = 0 #(BYTE IsExist)//0. ²»´æÔÚ 1. ´æÔÚ data = None def __init__(self): self.Clear() self.Head.Cmd = 0x01 self.Head.SubCmd = 0x12 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Name,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen) self.IsExist,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x01 self.Head.SubCmd = 0x12 self.NameLen = 0 self.Name = "" self.IsExist = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += len(self.Name) length += 1 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.NameLen) data = CommFunc.WriteString(data, self.NameLen, self.Name) data = CommFunc.WriteBYTE(data, self.IsExist) return data def OutputString(self): DumpString = ''' Head:%s, NameLen:%d, Name:%s, IsExist:%d '''\ %( self.Head.OutputString(), self.NameLen, self.Name, self.IsExist ) return DumpString m_NAtagPlayerNameIsExist=tagPlayerNameIsExist() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerNameIsExist.Head.Cmd,m_NAtagPlayerNameIsExist.Head.SubCmd))] = m_NAtagPlayerNameIsExist #------------------------------------------------------ #01 18 ´¢Öµ¿¨»ØÓ¦#tagSaveCardReply class tagSaveCardReply(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ubyte), #¿¨Æ¬ÀàÐÍ ("Result", c_ubyte), #ÀàÐ͸ù¾Ý¿¨Æ¬ÀàÐÍÀ´¶¨ ("CurrentCoin", c_int), #´¢ÖµºóµÄµãÊý ("CardPoint", c_int), #´¢ÖµÁ˶àÉÙµãÊý ] def __init__(self): self.Clear() self.Cmd = 0x01 self.SubCmd = 0x18 return def 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 = 0x01 self.SubCmd = 0x18 self.Type = 0 self.Result = 0 self.CurrentCoin = 0 self.CardPoint = 0 return def GetLength(self): return sizeof(tagSaveCardReply) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//01 18 ´¢Öµ¿¨»ØÓ¦//tagSaveCardReply: Cmd:%s, SubCmd:%s, Type:%d, Result:%d, CurrentCoin:%d, CardPoint:%d '''\ %( self.Cmd, self.SubCmd, self.Type, self.Result, self.CurrentCoin, self.CardPoint ) return DumpString m_NAtagSaveCardReply=tagSaveCardReply() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSaveCardReply.Cmd,m_NAtagSaveCardReply.SubCmd))] = m_NAtagSaveCardReply #------------------------------------------------------ #01 14 ·þÎñÆ÷Ïß·״̬#tagServerLineState class tagServerCurrentLine(Structure): _pack_ = 1 _fields_ = [ ("CurrentPercent", 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.CurrentPercent = 0 return def GetLength(self): return sizeof(tagServerCurrentLine) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//01 14 ·þÎñÆ÷Ïß·״̬//tagServerLineState: CurrentPercent:%d '''\ %( self.CurrentPercent ) return DumpString class tagServerLineState(Structure): Head = tagHead() LineCount = 0 #(BYTE LineCount) LineState = list() #(vector LineState)//size = LineCount data = None def __init__(self): self.Clear() self.Head.Cmd = 0x01 self.Head.SubCmd = 0x14 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.LineCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.LineCount): temLineState = tagServerCurrentLine() _pos = temLineState.ReadData(_lpData, _pos) self.LineState.append(temLineState) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x01 self.Head.SubCmd = 0x14 self.LineCount = 0 self.LineState = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.LineCount): length += self.LineState[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.LineCount) for i in range(self.LineCount): data = CommFunc.WriteString(data, self.LineState[i].GetLength(), self.LineState[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, LineCount:%d, LineState:%s '''\ %( self.Head.OutputString(), self.LineCount, "..." ) return DumpString m_NAtagServerLineState=tagServerLineState() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagServerLineState.Head.Cmd,m_NAtagServerLineState.Head.SubCmd))] = m_NAtagServerLineState #------------------------------------------------------ #01 26 ºÏ·þѯÎÊÍæ¼ÒÊÇ·ñÖØÃüÃû#tagServerMergeAskRename class tagServerMergeAskRename(Structure): Head = tagHead() NameLen = 0 #(BYTE NameLen)//ÎĵµÖÐûÓÐ˵ÐèÒªÍæ¼ÒÃû³Æ, µ«ÊÇ»¹ÊÇ·¢ËͱȽϺÃ, ÃâµÃ¸Ä Name = "" #(String Name)//size = NameLen data = None def __init__(self): self.Clear() self.Head.Cmd = 0x01 self.Head.SubCmd = 0x26 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Name,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x01 self.Head.SubCmd = 0x26 self.NameLen = 0 self.Name = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += len(self.Name) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.NameLen) data = CommFunc.WriteString(data, self.NameLen, self.Name) return data def OutputString(self): DumpString = ''' Head:%s, NameLen:%d, Name:%s '''\ %( self.Head.OutputString(), self.NameLen, self.Name ) return DumpString m_NAtagServerMergeAskRename=tagServerMergeAskRename() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagServerMergeAskRename.Head.Cmd,m_NAtagServerMergeAskRename.Head.SubCmd))] = m_NAtagServerMergeAskRename #------------------------------------------------------ #01 25 ºÏ·þÖØÃûÌáʾ#tagServerMergePlayerNameIsExist class tagServerMergePlayerNameIsExist(Structure): Head = tagHead() NameLen = 0 #(BYTE NameLen) Name = "" #(String Name)//size = NameLen IsExist = 0 #(BYTE IsExist)//0. ²»´æÔÚ 1. ´æÔÚ data = None def __init__(self): self.Clear() self.Head.Cmd = 0x01 self.Head.SubCmd = 0x25 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Name,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen) self.IsExist,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x01 self.Head.SubCmd = 0x25 self.NameLen = 0 self.Name = "" self.IsExist = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += len(self.Name) length += 1 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.NameLen) data = CommFunc.WriteString(data, self.NameLen, self.Name) data = CommFunc.WriteBYTE(data, self.IsExist) return data def OutputString(self): DumpString = ''' Head:%s, NameLen:%d, Name:%s, IsExist:%d '''\ %( self.Head.OutputString(), self.NameLen, self.Name, self.IsExist ) return DumpString m_NAtagServerMergePlayerNameIsExist=tagServerMergePlayerNameIsExist() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagServerMergePlayerNameIsExist.Head.Cmd,m_NAtagServerMergePlayerNameIsExist.Head.SubCmd))] = m_NAtagServerMergePlayerNameIsExist #------------------------------------------------------ #01 23 ºÏ·þÖØÃüÃûÍæ¼Ò#tagServerMergePlayerRename class tagServerMergePlayerRename(Structure): Head = tagHead() OldName = "" #(char OldName[33]) data = None def __init__(self): self.Clear() self.Head.Cmd = 0x01 self.Head.SubCmd = 0x23 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.OldName,_pos = CommFunc.ReadString(_lpData, _pos,33) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x01 self.Head.SubCmd = 0x23 self.OldName = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 33 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteString(data, 33, self.OldName) return data def OutputString(self): DumpString = ''' Head:%s, OldName:%s '''\ %( self.Head.OutputString(), self.OldName ) return DumpString m_NAtagServerMergePlayerRename=tagServerMergePlayerRename() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagServerMergePlayerRename.Head.Cmd,m_NAtagServerMergePlayerRename.Head.SubCmd))] = m_NAtagServerMergePlayerRename #------------------------------------------------------ #01 09 ·þÎñÆ÷×¼±¸¾ÍÐ÷#tagServerPrepareOK class tagServerPrepareOK(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0x01 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 = 0x01 self.SubCmd = 0x09 self.Type = 0 return def GetLength(self): return sizeof(tagServerPrepareOK) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//01 09 ·þÎñÆ÷×¼±¸¾ÍÐ÷//tagServerPrepareOK: Cmd:%s, SubCmd:%s, Type:%d '''\ %( self.Cmd, self.SubCmd, self.Type ) return DumpString m_NAtagServerPrepareOK=tagServerPrepareOK() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagServerPrepareOK.Cmd,m_NAtagServerPrepareOK.SubCmd))] = m_NAtagServerPrepareOK #------------------------------------------------------ #01 24 Íæ¼ÒÖØÃüÃû³É¹¦#tagPlayerRenameOK class tagPlayerRenameOK(Structure): Head = tagHead() PlayerID = 0 #(DWORD PlayerID) OldNameLen = 0 #(BYTE OldNameLen)//¾ÉÃû×Ö OldName = "" #(String OldName)//size = OldNameLen NameLen = 0 #(BYTE NameLen)//ÐÂÃû×Ö Name = "" #(String Name)//size = NameLen data = None def __init__(self): self.Clear() self.Head.Cmd = 0x01 self.Head.SubCmd = 0x24 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.OldNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.OldName,_pos = CommFunc.ReadString(_lpData, _pos,self.OldNameLen) self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Name,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x01 self.Head.SubCmd = 0x24 self.PlayerID = 0 self.OldNameLen = 0 self.OldName = "" self.NameLen = 0 self.Name = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += len(self.OldName) length += 1 length += len(self.Name) 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.OldNameLen) data = CommFunc.WriteString(data, self.OldNameLen, self.OldName) data = CommFunc.WriteBYTE(data, self.NameLen) data = CommFunc.WriteString(data, self.NameLen, self.Name) return data def OutputString(self): DumpString = ''' Head:%s, PlayerID:%d, OldNameLen:%d, OldName:%s, NameLen:%d, Name:%s '''\ %( self.Head.OutputString(), self.PlayerID, self.OldNameLen, self.OldName, self.NameLen, self.Name ) return DumpString m_NAtagPlayerRenameOK=tagPlayerRenameOK() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerRenameOK.Head.Cmd,m_NAtagPlayerRenameOK.Head.SubCmd))] = m_NAtagPlayerRenameOK #------------------------------------------------------ #01 16 ·þÎñÆ÷¸ºÔØ#tagServerSupport class tagServerSupport(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Percent", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0x01 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 = 0x01 self.SubCmd = 0x16 self.Percent = 0 return def GetLength(self): return sizeof(tagServerSupport) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//01 16 ·þÎñÆ÷¸ºÔØ//tagServerSupport: Cmd:%s, SubCmd:%s, Percent:%d '''\ %( self.Cmd, self.SubCmd, self.Percent ) return DumpString m_NAtagServerSupport=tagServerSupport() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagServerSupport.Cmd,m_NAtagServerSupport.SubCmd))] = m_NAtagServerSupport #------------------------------------------------------ #01 13 ·þÎñÆ÷ÐÄÌø°ü#tagServerHeart class tagServerHeart(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0x01 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 = 0x01 self.SubCmd = 0x13 self.Type = 0 return def GetLength(self): return sizeof(tagServerHeart) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//01 13 ·þÎñÆ÷ÐÄÌø°ü//tagServerHeart: Cmd:%s, SubCmd:%s, Type:%d '''\ %( self.Cmd, self.SubCmd, self.Type ) return DumpString m_NAtagServerHeart=tagServerHeart() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagServerHeart.Cmd,m_NAtagServerHeart.SubCmd))] = m_NAtagServerHeart #------------------------------------------------------ #01 19 ÏÔʾ³õʼ»¯ÃÜÂë½çÃæ#tagShowInitFrm class tagShowInitFrm(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ubyte), #ÎÞÒâÒå ] def __init__(self): self.Clear() self.Cmd = 0x01 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 = 0x01 self.SubCmd = 0x19 self.Type = 0 return def GetLength(self): return sizeof(tagShowInitFrm) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//01 19 ÏÔʾ³õʼ»¯ÃÜÂë½çÃæ//tagShowInitFrm: Cmd:%s, SubCmd:%s, Type:%d '''\ %( self.Cmd, self.SubCmd, self.Type ) return DumpString m_NAtagShowInitFrm=tagShowInitFrm() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagShowInitFrm.Cmd,m_NAtagShowInitFrm.SubCmd))] = m_NAtagShowInitFrm #------------------------------------------------------ #01 28 ͬ²½GameServerʱ¼äµ½¿Í»§¶Ë#tagSyncServerDataTimeƵ·±·¢ËͶÔϵͳÓбȽϴóµÄÓ°Ï죬²»¹ýÒ»°ãÖ»Ôڵǽʱ·¢ËÍÒ»´Î class tagSyncServerDataTime(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), #Ãë ("Milliseconds", c_ushort), #ºÁÃë ] def __init__(self): self.Clear() self.Cmd = 0x01 self.SubCmd = 0x28 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0x01 self.SubCmd = 0x28 self.Year = 0 self.Month = 0 self.Day = 0 self.Hour = 0 self.Minute = 0 self.Second = 0 self.Milliseconds = 0 return def GetLength(self): return sizeof(tagSyncServerDataTime) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//01 28 ͬ²½GameServerʱ¼äµ½¿Í»§¶Ë//tagSyncServerDataTimeƵ·±·¢ËͶÔϵͳÓбȽϴóµÄÓ°Ï죬²»¹ýÒ»°ãÖ»Ôڵǽʱ·¢ËÍÒ»´Î: Cmd:%s, SubCmd:%s, Year:%d, Month:%d, Day:%d, Hour:%d, Minute:%d, Second:%d, Milliseconds:%d '''\ %( self.Cmd, self.SubCmd, self.Year, self.Month, self.Day, self.Hour, self.Minute, self.Second, self.Milliseconds ) return DumpString m_NAtagSyncServerDataTime=tagSyncServerDataTime() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSyncServerDataTime.Cmd,m_NAtagSyncServerDataTime.SubCmd))] = m_NAtagSyncServerDataTime #------------------------------------------------------ #01 06 ϵͳÌáʾ(Òì³£Ìáʾ)#tagSysMessage class tagSysMessage(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0x01 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 = 0x01 self.SubCmd = 0x06 self.Type = 0 return def GetLength(self): return sizeof(tagSysMessage) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//01 06 ϵͳÌáʾ(Òì³£Ìáʾ)//tagSysMessage: Cmd:%s, SubCmd:%s, Type:%d '''\ %( self.Cmd, self.SubCmd, self.Type ) return DumpString m_NAtagSysMessage=tagSysMessage() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSysMessage.Cmd,m_NAtagSysMessage.SubCmd))] = m_NAtagSysMessage #------------------------------------------------------ #01 30Ãܱ£¿¨ÑéÖ¤½á¹û#tagCheckSecurityCardResult class tagCheckSecurityCardResult(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Result", c_ubyte), #0-ʧ°Ü£¬1-³É¹¦ ] def __init__(self): self.Clear() self.Cmd = 0x01 self.SubCmd = 0x30 return def 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 = 0x01 self.SubCmd = 0x30 self.Result = 0 return def GetLength(self): return sizeof(tagCheckSecurityCardResult) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//01 30Ãܱ£¿¨ÑéÖ¤½á¹û//tagCheckSecurityCardResult: Cmd:%s, SubCmd:%s, Result:%d '''\ %( self.Cmd, self.SubCmd, self.Result ) return DumpString m_NAtagCheckSecurityCardResult=tagCheckSecurityCardResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCheckSecurityCardResult.Cmd,m_NAtagCheckSecurityCardResult.SubCmd))] = m_NAtagCheckSecurityCardResult #------------------------------------------------------ #01 32 ´´½Ç³É¹¦ #tagCreateRoleSucess class tagCreateRoleSucess(Structure): Head = tagHead() PlayerID = 0 #(DWORD PlayerID) PlayerName = "" #(char PlayerName[33]) data = None def __init__(self): self.Clear() self.Head.Cmd = 0x01 self.Head.SubCmd = 0x32 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x01 self.Head.SubCmd = 0x32 self.PlayerID = 0 self.PlayerName = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 33 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.PlayerID) data = CommFunc.WriteString(data, 33, self.PlayerName) return data def OutputString(self): DumpString = ''' Head:%s, PlayerID:%d, PlayerName:%s '''\ %( self.Head.OutputString(), self.PlayerID, self.PlayerName ) return DumpString m_NAtagCreateRoleSucess=tagCreateRoleSucess() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCreateRoleSucess.Head.Cmd,m_NAtagCreateRoleSucess.Head.SubCmd))] = m_NAtagCreateRoleSucess #------------------------------------------------------ #01 2AÁìÈ¡¼ÆÊ±ÐÂÊÖ°ü½á¹û#tagGetNewGuyCountBackwardsAwardResult¶ÔÐÔÄÜÓ°ÏìС class tagGetNewGuyCountBackwardsAwardResult(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Result", c_ubyte), # 0±íʾʧ°Ü£»1±íʾ³É¹¦ ] def __init__(self): self.Clear() self.Cmd = 0x01 self.SubCmd = 0x2A return def 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 = 0x01 self.SubCmd = 0x2A self.Result = 0 return def GetLength(self): return sizeof(tagGetNewGuyCountBackwardsAwardResult) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//01 2AÁìÈ¡¼ÆÊ±ÐÂÊÖ°ü½á¹û//tagGetNewGuyCountBackwardsAwardResult¶ÔÐÔÄÜÓ°ÏìС: Cmd:%s, SubCmd:%s, Result:%d '''\ %( self.Cmd, self.SubCmd, self.Result ) return DumpString m_NAtagGetNewGuyCountBackwardsAwardResult=tagGetNewGuyCountBackwardsAwardResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGetNewGuyCountBackwardsAwardResult.Cmd,m_NAtagGetNewGuyCountBackwardsAwardResult.SubCmd))] = m_NAtagGetNewGuyCountBackwardsAwardResult #------------------------------------------------------ #01 2E ÀñÎïÐÅϢˢÐÂ#tagRefreshPresentInfo class tagRefreshPresentInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PresentID", c_int), #ÀñÎïID ("CountdownTime", c_int), #µ¥Î»:Ãë ] def __init__(self): self.Clear() self.Cmd = 0x01 self.SubCmd = 0x2E return def 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 = 0x01 self.SubCmd = 0x2E self.PresentID = 0 self.CountdownTime = 0 return def GetLength(self): return sizeof(tagRefreshPresentInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//01 2E ÀñÎïÐÅϢˢÐÂ//tagRefreshPresentInfo: Cmd:%s, SubCmd:%s, PresentID:%d, CountdownTime:%d '''\ %( self.Cmd, self.SubCmd, self.PresentID, self.CountdownTime ) return DumpString m_NAtagRefreshPresentInfo=tagRefreshPresentInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagRefreshPresentInfo.Cmd,m_NAtagRefreshPresentInfo.SubCmd))] = m_NAtagRefreshPresentInfo #------------------------------------------------------ #01 2FÃܱ£¿¨ÐÅÏ¢#tagSecurityCardInfo class tagSecurityCardInfo(Structure): Head = tagHead() ResultCode = 0 #(BYTE ResultCode)//·µ»Ø½á¹û AccLen = 0 #(BYTE AccLen)//Õʺų¤¶È Acc = "" #(String Acc)//size = AccLen Token = list() #(BYTE Token[16])//µ±´ÎÃܱ£¿¨×ø±êÁîÅÆ(ÁîÅÆ»á¹ýÆÚ£¬TTM¿ØÖÆ) PosList = "" #(char PosList[7])//3×ø±ê ResultMsgLen = 0 #(BYTE ResultMsgLen)// ·µ»ØÏûÏ¢³¤¶È ResultMsg = "" #(String ResultMsg)// ·µ»ØÏûÏ¢ data = None def __init__(self): self.Clear() self.Head.Cmd = 0x01 self.Head.SubCmd = 0x2F return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.ResultCode,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.AccLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Acc,_pos = CommFunc.ReadString(_lpData, _pos,self.AccLen) self.Token = list() for i in range(16): data,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Token.append(data) self.PosList,_pos = CommFunc.ReadString(_lpData, _pos,7) self.ResultMsgLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ResultMsg,_pos = CommFunc.ReadString(_lpData, _pos,self.ResultMsgLen) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x01 self.Head.SubCmd = 0x2F self.ResultCode = 0 self.AccLen = 0 self.Acc = "" self.Token = list() self.PosList = "" self.ResultMsgLen = 0 self.ResultMsg = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 1 length += len(self.Acc) length += 1*16 length += 7 length += 1 length += len(self.ResultMsg) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.ResultCode) data = CommFunc.WriteBYTE(data, self.AccLen) data = CommFunc.WriteString(data, self.AccLen, self.Acc) for item in self.Token: data = CommFunc.WriteBYTE(data, item) data = CommFunc.WriteString(data, 7, self.PosList) data = CommFunc.WriteBYTE(data, self.ResultMsgLen) data = CommFunc.WriteString(data, self.ResultMsgLen, self.ResultMsg) return data def OutputString(self): DumpString = ''' Head:%s, ResultCode:%d, AccLen:%d, Acc:%s, Token:%s, PosList:%s, ResultMsgLen:%d, ResultMsg:%s '''\ %( self.Head.OutputString(), self.ResultCode, self.AccLen, self.Acc, "...", self.PosList, self.ResultMsgLen, self.ResultMsg ) return DumpString m_NAtagSecurityCardInfo=tagSecurityCardInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSecurityCardInfo.Head.Cmd,m_NAtagSecurityCardInfo.Head.SubCmd))] = m_NAtagSecurityCardInfo #------------------------------------------------------ #01 22 ºÏ·þÍæ¼ÒÐÅÏ¢#tagServerMergeInfo class tagServerMergePlayer(Structure): PlayerID = 0 #(DWORD PlayerID) Name = "" #(char Name[33]) LeaderFamilyID = 0 #(DWORD LeaderFamilyID)//Èç¹ûÊǼÒ×峤µÄ»°, ¼Ò×åIDÌîд, ²»ÊǼÒ×峤¾Í²»Ìî Job = 0 #(BYTE Job) Sex = 0 #(BYTE Sex) LV = 0 #(WORD LV) TotalSTR = 0 #(DWORD TotalSTR)//Á¦Á¿ TotalPNE = 0 #(DWORD TotalPNE)//ÕæÔª TotalPHY = 0 #(DWORD TotalPHY)//½î¹Ç TotalCON = 0 #(DWORD TotalCON)//ÌåÆÇ Gold = 0 #(DWORD Gold) GoldPaper = 0 #(DWORD GoldPaper) Silver = 0 #(DWORD Silver) SilverPaper = 0 #(DWORD SilverPaper) WarehouseGold = 0 #(DWORD WarehouseGold) WarehouseSilver = 0 #(DWORD WarehouseSilver) FightPower = 0 #(DWORD FightPower)//Õ½¶·Á¦ 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.Name,_pos = CommFunc.ReadString(_lpData, _pos,33) self.LeaderFamilyID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Sex,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.TotalSTR,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.TotalPNE,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.TotalPHY,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.TotalCON,_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.WarehouseGold,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.WarehouseSilver,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): self.PlayerID = 0 self.Name = "" self.LeaderFamilyID = 0 self.Job = 0 self.Sex = 0 self.LV = 0 self.TotalSTR = 0 self.TotalPNE = 0 self.TotalPHY = 0 self.TotalCON = 0 self.Gold = 0 self.GoldPaper = 0 self.Silver = 0 self.SilverPaper = 0 self.WarehouseGold = 0 self.WarehouseSilver = 0 self.FightPower = 0 return def GetLength(self): length = 0 length += 4 length += 33 length += 4 length += 1 length += 1 length += 2 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.PlayerID) data = CommFunc.WriteString(data, 33, self.Name) data = CommFunc.WriteDWORD(data, self.LeaderFamilyID) data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteBYTE(data, self.Sex) data = CommFunc.WriteWORD(data, self.LV) data = CommFunc.WriteDWORD(data, self.TotalSTR) data = CommFunc.WriteDWORD(data, self.TotalPNE) data = CommFunc.WriteDWORD(data, self.TotalPHY) data = CommFunc.WriteDWORD(data, self.TotalCON) 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.WarehouseGold) data = CommFunc.WriteDWORD(data, self.WarehouseSilver) data = CommFunc.WriteDWORD(data, self.FightPower) return data def OutputString(self): DumpString = ''' PlayerID:%d, Name:%s, LeaderFamilyID:%d, Job:%d, Sex:%d, LV:%d, TotalSTR:%d, TotalPNE:%d, TotalPHY:%d, TotalCON:%d, Gold:%d, GoldPaper:%d, Silver:%d, SilverPaper:%d, WarehouseGold:%d, WarehouseSilver:%d, FightPower:%d '''\ %( self.PlayerID, self.Name, self.LeaderFamilyID, self.Job, self.Sex, self.LV, self.TotalSTR, self.TotalPNE, self.TotalPHY, self.TotalCON, self.Gold, self.GoldPaper, self.Silver, self.SilverPaper, self.WarehouseGold, self.WarehouseSilver, self.FightPower ) return DumpString class tagServerMergeInfo(Structure): Head = tagHead() PlayerCount = 0 #(WORD PlayerCount) Players = list() #(vector Players)//size = PlayerCount data = None def __init__(self): self.Clear() self.Head.Cmd = 0x01 self.Head.SubCmd = 0x22 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.PlayerCount,_pos = CommFunc.ReadWORD(_lpData, _pos) for i in range(self.PlayerCount): temPlayers = tagServerMergePlayer() _pos = temPlayers.ReadData(_lpData, _pos) self.Players.append(temPlayers) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x01 self.Head.SubCmd = 0x22 self.PlayerCount = 0 self.Players = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 for i in range(self.PlayerCount): length += self.Players[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteWORD(data, self.PlayerCount) for i in range(self.PlayerCount): data = CommFunc.WriteString(data, self.Players[i].GetLength(), self.Players[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, PlayerCount:%d, Players:%s '''\ %( self.Head.OutputString(), self.PlayerCount, "..." ) return DumpString m_NAtagServerMergeInfo=tagServerMergeInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagServerMergeInfo.Head.Cmd,m_NAtagServerMergeInfo.Head.SubCmd))] = m_NAtagServerMergeInfo #------------------------------------------------------ #01 29 ÐÂÊÖµ¹Êý¼ÆÊ±ÁìÈ¡½±Àø½çÃæ#tagShowNewGuyCountBackwardsFrm ¶ÔÐÔÄÜÓ°ÏìС class tagShowNewGuyCountBackwardsFrm(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("CountBackwardsSecs", c_int), # µ¹Êý¼ÆÊ±Ê£ÓàÃëÊý ] def __init__(self): self.Clear() self.Cmd = 0x01 self.SubCmd = 0x29 return def 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 = 0x01 self.SubCmd = 0x29 self.CountBackwardsSecs = 0 return def GetLength(self): return sizeof(tagShowNewGuyCountBackwardsFrm) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//01 29 ÐÂÊÖµ¹Êý¼ÆÊ±ÁìÈ¡½±Àø½çÃæ//tagShowNewGuyCountBackwardsFrm ¶ÔÐÔÄÜÓ°ÏìС: Cmd:%s, SubCmd:%s, CountBackwardsSecs:%d '''\ %( self.Cmd, self.SubCmd, self.CountBackwardsSecs ) return DumpString m_NAtagShowNewGuyCountBackwardsFrm=tagShowNewGuyCountBackwardsFrm() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagShowNewGuyCountBackwardsFrm.Cmd,m_NAtagShowNewGuyCountBackwardsFrm.SubCmd))] = m_NAtagShowNewGuyCountBackwardsFrm #------------------------------------------------------ #01 21 ÏÔÊ¾Í¨Ñ¶Ëø½çÃæ#tagShowTelState class tagShowTelState(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0x01 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 = 0x01 self.SubCmd = 0x21 self.Type = 0 return def GetLength(self): return sizeof(tagShowTelState) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//01 21 ÏÔÊ¾Í¨Ñ¶Ëø½çÃæ//tagShowTelState: Cmd:%s, SubCmd:%s, Type:%d '''\ %( self.Cmd, self.SubCmd, self.Type ) return DumpString m_NAtagShowTelState=tagShowTelState() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagShowTelState.Cmd,m_NAtagShowTelState.SubCmd))] = m_NAtagShowTelState #------------------------------------------------------ #02 13 ½çÃæÖв¿×Ô¶¨ÒåÌáʾ#tagNotifyMiddle class tagNotifyMiddle(Structure): Head = tagHead() MissionID = 0 #(DWORD MissionID) MsgLen = 0 #(BYTE MsgLen) Msg = "" #(String Msg)//size = MsgLen data = None def __init__(self): self.Clear() self.Head.Cmd = 0x02 self.Head.SubCmd = 0x13 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.MissionID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MsgLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Msg,_pos = CommFunc.ReadString(_lpData, _pos,self.MsgLen) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x02 self.Head.SubCmd = 0x13 self.MissionID = 0 self.MsgLen = 0 self.Msg = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += len(self.Msg) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.MissionID) data = CommFunc.WriteBYTE(data, self.MsgLen) data = CommFunc.WriteString(data, self.MsgLen, self.Msg) return data def OutputString(self): DumpString = ''' Head:%s, MissionID:%d, MsgLen:%d, Msg:%s '''\ %( self.Head.OutputString(), self.MissionID, self.MsgLen, self.Msg ) return DumpString m_NAtagNotifyMiddle=tagNotifyMiddle() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagNotifyMiddle.Head.Cmd,m_NAtagNotifyMiddle.Head.SubCmd))] = m_NAtagNotifyMiddle #------------------------------------------------------ #02 11 ½çÃæÉÏ·½¹ö¶¯»Æ×ÖÌáʾ#tagBigNotify class tagBigNotify(Structure): Head = tagHead() Len = 0 #(BYTE Len) Msg = "" #(String Msg)//size = Len data = None def __init__(self): self.Clear() self.Head.Cmd = 0x02 self.Head.SubCmd = 0x11 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Len,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Msg,_pos = CommFunc.ReadString(_lpData, _pos,self.Len) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x02 self.Head.SubCmd = 0x11 self.Len = 0 self.Msg = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += len(self.Msg) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.Len) data = CommFunc.WriteString(data, self.Len, self.Msg) return data def OutputString(self): DumpString = ''' Head:%s, Len:%d, Msg:%s '''\ %( self.Head.OutputString(), self.Len, self.Msg ) return DumpString m_NAtagBigNotify=tagBigNotify() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagBigNotify.Head.Cmd,m_NAtagBigNotify.Head.SubCmd))] = m_NAtagBigNotify #------------------------------------------------------ #02 17 ¸±±¾ÖеÄϵͳÏûÏ¢#tagFbSystemMessage class tagFbSystemMessage(Structure): Head = tagHead() MapID = 0 #(WORD MapID) KeepTime = 0 #(DWORD KeepTime)//³ÖÐøÊ±¼ä(Ãë) MsgType = 0 #(BYTE MsgType)//1. SystemMessage 2. ASCIIÂë TFbSystemMessageType MsgLen = 0 #(WORD MsgLen) Msg = "" #(String Msg)//size = MsgLen data = None def __init__(self): self.Clear() self.Head.Cmd = 0x02 self.Head.SubCmd = 0x17 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.MapID,_pos = CommFunc.ReadWORD(_lpData, _pos) self.KeepTime,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MsgType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.MsgLen,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Msg,_pos = CommFunc.ReadString(_lpData, _pos,self.MsgLen) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x02 self.Head.SubCmd = 0x17 self.MapID = 0 self.KeepTime = 0 self.MsgType = 0 self.MsgLen = 0 self.Msg = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 length += 4 length += 1 length += 2 length += len(self.Msg) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteWORD(data, self.MapID) data = CommFunc.WriteDWORD(data, self.KeepTime) data = CommFunc.WriteBYTE(data, self.MsgType) data = CommFunc.WriteWORD(data, self.MsgLen) data = CommFunc.WriteString(data, self.MsgLen, self.Msg) return data def OutputString(self): DumpString = ''' Head:%s, MapID:%d, KeepTime:%d, MsgType:%d, MsgLen:%d, Msg:%s '''\ %( self.Head.OutputString(), self.MapID, self.KeepTime, self.MsgType, self.MsgLen, self.Msg ) return DumpString m_NAtagFbSystemMessage=tagFbSystemMessage() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagFbSystemMessage.Head.Cmd,m_NAtagFbSystemMessage.Head.SubCmd))] = m_NAtagFbSystemMessage #------------------------------------------------------ #02 18 GM»ØÓ¦¸øÍæ¼Ò#tagGMAnswerPlayer class tagGMAnswerPlayer(Structure): Head = tagHead() TitleLen = 0 #(BYTE TitleLen) Title = "" #(String Title)//size = TitleLen ContentLen = 0 #(BYTE ContentLen) Content = "" #(String Content)//size = ContentLen data = None def __init__(self): self.Clear() self.Head.Cmd = 0x02 self.Head.SubCmd = 0x18 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.TitleLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Title,_pos = CommFunc.ReadString(_lpData, _pos,self.TitleLen) self.ContentLen,_pos = CommFunc.ReadBYTE(_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 = 0x02 self.Head.SubCmd = 0x18 self.TitleLen = 0 self.Title = "" self.ContentLen = 0 self.Content = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += len(self.Title) length += 1 length += len(self.Content) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.TitleLen) data = CommFunc.WriteString(data, self.TitleLen, self.Title) data = CommFunc.WriteBYTE(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_NAtagGMAnswerPlayer=tagGMAnswerPlayer() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGMAnswerPlayer.Head.Cmd,m_NAtagGMAnswerPlayer.Head.SubCmd))] = m_NAtagGMAnswerPlayer #------------------------------------------------------ #02 12 ´úÂëÌáʾ#tagNotifyCode class tagNotifyStr(Structure): MsgInt = 0 #(DWORD MsgInt)//intÀàÐÍ Len = 0 #(BYTE Len) Msg = "" #(String Msg)//size = Len data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.MsgInt,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Len,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Msg,_pos = CommFunc.ReadString(_lpData, _pos,self.Len) return _pos def Clear(self): self.MsgInt = 0 self.Len = 0 self.Msg = "" return def GetLength(self): length = 0 length += 4 length += 1 length += len(self.Msg) return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.MsgInt) data = CommFunc.WriteBYTE(data, self.Len) data = CommFunc.WriteString(data, self.Len, self.Msg) return data def OutputString(self): DumpString = ''' MsgInt:%d, Len:%d, Msg:%s '''\ %( self.MsgInt, self.Len, self.Msg ) return DumpString class tagNotifyCode(Structure): Head = tagHead() MsgLen = 0 #(BYTE MsgLen)//±íÖеÄmsgÐÅÏ¢ Msg = "" #(String Msg)//size = MsgLen ParCount = 0 #(BYTE ParCount) Pars = list() #(vector Pars)//size = ParCount data = None def __init__(self): self.Clear() self.Head.Cmd = 0x02 self.Head.SubCmd = 0x12 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.MsgLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Msg,_pos = CommFunc.ReadString(_lpData, _pos,self.MsgLen) self.ParCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.ParCount): temPars = tagNotifyStr() _pos = temPars.ReadData(_lpData, _pos) self.Pars.append(temPars) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x02 self.Head.SubCmd = 0x12 self.MsgLen = 0 self.Msg = "" self.ParCount = 0 self.Pars = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += len(self.Msg) length += 1 for i in range(self.ParCount): length += self.Pars[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.MsgLen) data = CommFunc.WriteString(data, self.MsgLen, self.Msg) data = CommFunc.WriteBYTE(data, self.ParCount) for i in range(self.ParCount): data = CommFunc.WriteString(data, self.Pars[i].GetLength(), self.Pars[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, MsgLen:%d, Msg:%s, ParCount:%d, Pars:%s '''\ %( self.Head.OutputString(), self.MsgLen, self.Msg, self.ParCount, "..." ) return DumpString m_NAtagNotifyCode=tagNotifyCode() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagNotifyCode.Head.Cmd,m_NAtagNotifyCode.Head.SubCmd))] = m_NAtagNotifyCode #------------------------------------------------------ #02 10 ϵͳÌáʾ#tagNotify class tagNotify(Structure): Head = tagHead() MissionID = 0 #(DWORD MissionID) Len = 0 #(BYTE Len) Msg = "" #(String Msg)//size = Len data = None def __init__(self): self.Clear() self.Head.Cmd = 0x02 self.Head.SubCmd = 0x10 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.MissionID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Len,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Msg,_pos = CommFunc.ReadString(_lpData, _pos,self.Len) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x02 self.Head.SubCmd = 0x10 self.MissionID = 0 self.Len = 0 self.Msg = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += len(self.Msg) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.MissionID) data = CommFunc.WriteBYTE(data, self.Len) data = CommFunc.WriteString(data, self.Len, self.Msg) return data def OutputString(self): DumpString = ''' Head:%s, MissionID:%d, Len:%d, Msg:%s '''\ %( self.Head.OutputString(), self.MissionID, self.Len, self.Msg ) return DumpString m_NAtagNotify=tagNotify() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagNotify.Head.Cmd,m_NAtagNotify.Head.SubCmd))] = m_NAtagNotify #------------------------------------------------------ #02 19 Íæ¼ÒËͳöGMÐżþµÄ»ØÓ¦#tagSendGMLetterResult class tagSendGMLetterResult(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Result", c_ubyte), #0:ʧ°Ü 1:³É¹¦ ] def __init__(self): self.Clear() self.Cmd = 0x02 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 = 0x02 self.SubCmd = 0x19 self.Result = 0 return def GetLength(self): return sizeof(tagSendGMLetterResult) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//02 19 Íæ¼ÒËͳöGMÐżþµÄ»ØÓ¦//tagSendGMLetterResult: Cmd:%s, SubCmd:%s, Result:%d '''\ %( self.Cmd, self.SubCmd, self.Result ) return DumpString m_NAtagSendGMLetterResult=tagSendGMLetterResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSendGMLetterResult.Cmd,m_NAtagSendGMLetterResult.SubCmd))] = m_NAtagSendGMLetterResult #------------------------------------------------------ #02 22 ÌáʾÐÅÏ¢(ƵµÀ+Ìáʾ¿ò)#tagHintMsg class tagHintMsg(Structure): Head = tagHead() MsgLen = 0 #(BYTE MsgLen) Msg = "" #(String Msg) data = None def __init__(self): self.Clear() self.Head.Cmd = 0x02 self.Head.SubCmd = 0x22 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.MsgLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Msg,_pos = CommFunc.ReadString(_lpData, _pos,self.MsgLen) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x02 self.Head.SubCmd = 0x22 self.MsgLen = 0 self.Msg = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += len(self.Msg) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.MsgLen) data = CommFunc.WriteString(data, self.MsgLen, self.Msg) return data def OutputString(self): DumpString = ''' Head:%s, MsgLen:%d, Msg:%s '''\ %( self.Head.OutputString(), self.MsgLen, self.Msg ) return DumpString m_NAtagHintMsg=tagHintMsg() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagHintMsg.Head.Cmd,m_NAtagHintMsg.Head.SubCmd))] = m_NAtagHintMsg #------------------------------------------------------ #02 20 ֪ͨÅÜÂíµÆ#tagNotifyPaoMaDeng class tagNotifyPaoMaDeng(Structure): Head = tagHead() MsgLen = 0 #(WORD MsgLen) Msg = "" #(String Msg)//size = MsgLen data = None def __init__(self): self.Clear() self.Head.Cmd = 0x02 self.Head.SubCmd = 0x20 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.MsgLen,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Msg,_pos = CommFunc.ReadString(_lpData, _pos,self.MsgLen) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x02 self.Head.SubCmd = 0x20 self.MsgLen = 0 self.Msg = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 length += len(self.Msg) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteWORD(data, self.MsgLen) data = CommFunc.WriteString(data, self.MsgLen, self.Msg) return data def OutputString(self): DumpString = ''' Head:%s, MsgLen:%d, Msg:%s '''\ %( self.Head.OutputString(), self.MsgLen, self.Msg ) return DumpString m_NAtagNotifyPaoMaDeng=tagNotifyPaoMaDeng() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagNotifyPaoMaDeng.Head.Cmd,m_NAtagNotifyPaoMaDeng.Head.SubCmd))] = m_NAtagNotifyPaoMaDeng #------------------------------------------------------ #02 07 ÇøÓòƵµÀ#tagTalkArea class tagTalkArea(Structure): Head = tagHead() SrcNameLen = 0 #(BYTE SrcNameLen) SrcName = "" #(String SrcName)//size = SrcNameLen 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 = 0x02 self.Head.SubCmd = 0x07 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_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.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 = 0x02 self.Head.SubCmd = 0x07 self.SrcNameLen = 0 self.SrcName = "" 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 += len(self.SrcName) 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.SrcNameLen) data = CommFunc.WriteString(data, self.SrcNameLen, self.SrcName) 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, SrcNameLen:%d, SrcName:%s, PlayerID:%d, Len:%d, Content:%s, ExtraValue:%d, Extras:%s '''\ %( self.Head.OutputString(), self.SrcNameLen, self.SrcName, self.PlayerID, self.Len, self.Content, self.ExtraValue, self.Extras ) return DumpString m_NAtagTalkArea=tagTalkArea() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagTalkArea.Head.Cmd,m_NAtagTalkArea.Head.SubCmd))] = m_NAtagTalkArea #------------------------------------------------------ #02 03 ¼Ò×寵 #tagTalkBang class tagTalkBang(Structure): Head = tagHead() 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 = 0x02 self.Head.SubCmd = 0x03 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_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 = 0x02 self.Head.SubCmd = 0x03 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 += 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.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, NameLen:%d, Name:%s, PlayerID:%d, Len:%d, Content:%s, ExtraValue:%d, Extras:%s '''\ %( self.Head.OutputString(), self.NameLen, self.Name, self.PlayerID, self.Len, self.Content, self.ExtraValue, self.Extras ) return DumpString m_NAtagTalkBang=tagTalkBang() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagTalkBang.Head.Cmd,m_NAtagTalkBang.Head.SubCmd))] = m_NAtagTalkBang #------------------------------------------------------ #02 1A Õ½³¡ÆµµÀ#tagTalkBattlefield class tagTalkBattlefield(Structure): Head = tagHead() 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 = 0x02 self.Head.SubCmd = 0x1A return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_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 = 0x02 self.Head.SubCmd = 0x1A 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 += 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.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, NameLen:%d, Name:%s, PlayerID:%d, Len:%d, Content:%s, ExtraValue:%d, Extras:%s '''\ %( self.Head.OutputString(), self.NameLen, self.Name, self.PlayerID, self.Len, self.Content, self.ExtraValue, self.Extras ) return DumpString m_NAtagTalkBattlefield=tagTalkBattlefield() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagTalkBattlefield.Head.Cmd,m_NAtagTalkBattlefield.Head.SubCmd))] = m_NAtagTalkBattlefield #------------------------------------------------------ #02 08 ¹ú¼ÒƵµÀ#tagTalkCountry class tagTalkCountry(Structure): Head = tagHead() 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 = 0x02 self.Head.SubCmd = 0x08 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_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 = 0x02 self.Head.SubCmd = 0x08 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 += 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.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, NameLen:%d, Name:%s, PlayerID:%d, Len:%d, Content:%s, ExtraValue:%d, Extras:%s '''\ %( self.Head.OutputString(), self.NameLen, self.Name, self.PlayerID, self.Len, self.Content, self.ExtraValue, self.Extras ) return DumpString m_NAtagTalkCountry=tagTalkCountry() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagTalkCountry.Head.Cmd,m_NAtagTalkCountry.Head.SubCmd))] = m_NAtagTalkCountry #------------------------------------------------------ #02 05 ¶ÔƵ#tagTalkDui class tagTalkDui(Structure): Head = tagHead() 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 = 0x02 self.Head.SubCmd = 0x05 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_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 = 0x02 self.Head.SubCmd = 0x05 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 += 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.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, NameLen:%d, Name:%s, PlayerID:%d, Len:%d, Content:%s, ExtraValue:%d, Extras:%s '''\ %( self.Head.OutputString(), self.NameLen, self.Name, self.PlayerID, self.Len, self.Content, self.ExtraValue, self.Extras ) return DumpString m_NAtagTalkDui=tagTalkDui() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagTalkDui.Head.Cmd,m_NAtagTalkDui.Head.SubCmd))] = m_NAtagTalkDui #------------------------------------------------------ #02 15ÔÚÁÄÌì/дÐÅʱ ·þÎñÆ÷·µ»Ø´íÎóÐÅÏ¢#tagTalkError class tagTalkError(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ubyte), #1.¶Ô·½²»´æÔÚ 2.˵»°Ì«¿ìÁË ] def __init__(self): self.Clear() self.Cmd = 0x02 self.SubCmd = 0x15 return def 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 = 0x02 self.SubCmd = 0x15 self.Type = 0 return def GetLength(self): return sizeof(tagTalkError) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//02 15ÔÚÁÄÌì/дÐÅʱ ·þÎñÆ÷·µ»Ø´íÎóÐÅÏ¢//tagTalkError: Cmd:%s, SubCmd:%s, Type:%d '''\ %( self.Cmd, self.SubCmd, self.Type ) return DumpString m_NAtagTalkError=tagTalkError() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagTalkError.Cmd,m_NAtagTalkError.SubCmd))] = m_NAtagTalkError #------------------------------------------------------ #02 01 ¹«ÆÁ#tagTalkGong class tagTalkGong(Structure): Head = tagHead() 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 = 0x02 self.Head.SubCmd = 0x01 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_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 = 0x02 self.Head.SubCmd = 0x01 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 += 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.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, NameLen:%d, Name:%s, PlayerID:%d, Len:%d, Content:%s, ExtraValue:%d, Extras:%s '''\ %( self.Head.OutputString(), self.NameLen, self.Name, self.PlayerID, self.Len, self.Content, self.ExtraValue, self.Extras ) return DumpString m_NAtagTalkGong=tagTalkGong() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagTalkGong.Head.Cmd,m_NAtagTalkGong.Head.SubCmd))] = m_NAtagTalkGong #------------------------------------------------------ #02 06 ÃÜÆµ #tagTalkMi class tagTalkMi(Structure): Head = tagHead() TalkType = 0 #(BYTE TalkType)//0ΪĬÈÏ, 1Ϊ1¶Ô1ÁÄÌìÓà 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 = "" #(String Content)//size = Len ExtraValue = 0 #(DWORD ExtraValue)//¸½¼ÓÖµ Extras = "" #(char Extras[256])//¸½¼ÓÖµÁбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0x02 self.Head.SubCmd = 0x06 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.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) 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 = 0x02 self.Head.SubCmd = 0x06 self.TalkType = 0 self.SrcNameLen = 0 self.SrcName = "" self.PlayerID = 0 self.ToNameLen = 0 self.ToName = "" self.ToPlayerID = 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.SrcName) length += 4 length += 1 length += len(self.ToName) 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.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) 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, SrcNameLen:%d, SrcName:%s, PlayerID:%d, ToNameLen:%d, ToName:%s, ToPlayerID:%d, Len:%d, Content:%s, ExtraValue:%d, Extras:%s '''\ %( self.Head.OutputString(), self.TalkType, self.SrcNameLen, self.SrcName, self.PlayerID, self.ToNameLen, self.ToName, self.ToPlayerID, self.Len, self.Content, self.ExtraValue, self.Extras ) return DumpString m_NAtagTalkMi=tagTalkMi() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagTalkMi.Head.Cmd,m_NAtagTalkMi.Head.SubCmd))] = m_NAtagTalkMi #------------------------------------------------------ #02 02 ÇáÆÁ#tagTalkQing class tagTalkQing(Structure): Head = tagHead() PlayerID = 0 #(DWORD PlayerID) NameLen = 0 #(BYTE NameLen) Name = "" #(String Name)//size = NameLen 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 = 0x02 self.Head.SubCmd = 0x02 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.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 = 0x02 self.Head.SubCmd = 0x02 self.PlayerID = 0 self.NameLen = 0 self.Name = "" self.Len = 0 self.Content = "" self.ExtraValue = 0 self.Extras = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += len(self.Name) 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.WriteDWORD(data, self.PlayerID) data = CommFunc.WriteBYTE(data, self.NameLen) data = CommFunc.WriteString(data, self.NameLen, self.Name) 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, PlayerID:%d, NameLen:%d, Name:%s, Len:%d, Content:%s, ExtraValue:%d, Extras:%s '''\ %( self.Head.OutputString(), self.PlayerID, self.NameLen, self.Name, self.Len, self.Content, self.ExtraValue, self.Extras ) return DumpString m_NAtagTalkQing=tagTalkQing() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagTalkQing.Head.Cmd,m_NAtagTalkQing.Head.SubCmd))] = m_NAtagTalkQing #------------------------------------------------------ #02 04 ÓÑÆÁ#tagTalkYou class tagTalkYou(Structure): Head = tagHead() 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 = 0x02 self.Head.SubCmd = 0x04 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_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 = 0x02 self.Head.SubCmd = 0x04 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 += 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.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, NameLen:%d, Name:%s, PlayerID:%d, Len:%d, Content:%s, ExtraValue:%d, Extras:%s '''\ %( self.Head.OutputString(), self.NameLen, self.Name, self.PlayerID, self.Len, self.Content, self.ExtraValue, self.Extras ) return DumpString m_NAtagTalkYou=tagTalkYou() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagTalkYou.Head.Cmd,m_NAtagTalkYou.Head.SubCmd))] = m_NAtagTalkYou #------------------------------------------------------ #02 16 ʹÓÃСÀ®°È#tagUseSpeaker class tagUseSpeaker(Structure): Head = tagHead() PlayerID = 0 #(DWORD PlayerID) NameLen = 0 #(BYTE NameLen) Name = "" #(String Name)//size = NameLen SpeakerType = 0 #(BYTE SpeakerType) TextLen = 0 #(BYTE TextLen) Text = "" #(String Text)//size = TextLen ExtraValue = 0 #(DWORD ExtraValue)//¸½¼ÓÖµ Extras = "" #(char Extras[256])//¸½¼ÓÖµÁбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0x02 self.Head.SubCmd = 0x16 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.SpeakerType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.TextLen,_pos = CommFunc.ReadBYTE(_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 = 0x02 self.Head.SubCmd = 0x16 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 += 4 length += 1 length += len(self.Name) length += 1 length += 1 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.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.WriteBYTE(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, PlayerID:%d, NameLen:%d, Name:%s, SpeakerType:%d, TextLen:%d, Text:%s, ExtraValue:%d, Extras:%s '''\ %( self.Head.OutputString(), self.PlayerID, self.NameLen, self.Name, self.SpeakerType, self.TextLen, self.Text, self.ExtraValue, self.Extras ) return DumpString m_NAtagUseSpeaker=tagUseSpeaker() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagUseSpeaker.Head.Cmd,m_NAtagUseSpeaker.Head.SubCmd))] = m_NAtagUseSpeaker #------------------------------------------------------ #03 30 Ö÷½Çµ±Ç°¾­Ñé±¶ÂÊ#tagCurExpRate ¶¨Ê±·¢ËÍ £¬¶ÔÐÔÄÜÓÐÒ»¶¨Ó°Ïì class tagCurExpRate(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("CurExpRate", c_int), #¾­Ñé±¶ÂÊ ] def __init__(self): self.Clear() self.Cmd = 0x03 self.SubCmd = 0x30 return def 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 = 0x03 self.SubCmd = 0x30 self.CurExpRate = 0 return def GetLength(self): return sizeof(tagCurExpRate) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//03 30 Ö÷½Çµ±Ç°¾­Ñé±¶ÂÊ//tagCurExpRate ¶¨Ê±·¢ËÍ £¬¶ÔÐÔÄÜÓÐÒ»¶¨Ó°Ïì: Cmd:%s, SubCmd:%s, CurExpRate:%d '''\ %( self.Cmd, self.SubCmd, self.CurExpRate ) return DumpString m_NAtagCurExpRate=tagCurExpRate() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCurExpRate.Cmd,m_NAtagCurExpRate.SubCmd))] = m_NAtagCurExpRate #------------------------------------------------------ #03 11 Ö÷½Çɾ³ý¼¼ÄÜ#tagDeleteSkill class tagDeleteSkill(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("SkillID", c_int), ] def __init__(self): self.Clear() self.Cmd = 0x03 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 = 0x03 self.SubCmd = 0x11 self.SkillID = 0 return def GetLength(self): return sizeof(tagDeleteSkill) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//03 11 Ö÷½Çɾ³ý¼¼ÄÜ//tagDeleteSkill: Cmd:%s, SubCmd:%s, SkillID:%d '''\ %( self.Cmd, self.SubCmd, self.SkillID ) return DumpString m_NAtagDeleteSkill=tagDeleteSkill() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagDeleteSkill.Cmd,m_NAtagDeleteSkill.SubCmd))] = m_NAtagDeleteSkill #------------------------------------------------------ #03 2B Ôöֵ˫±¶¾­Ñéʱ¼ä²éѯ#tagDoubleExpQueryResult class tagDoubleExpQueryResult(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("SysTime", c_int), # ϵͳ˫±¶¾­Ñéʱ¼ä ("IncTime", c_int), # Ôöֵ˫±¶¾­Ñéʱ¼ä ("FamilyTime", c_int), #°ï»áË«±¶¾­Ñéʱ¼ä ] def __init__(self): self.Clear() self.Cmd = 0x03 self.SubCmd = 0x2B return def 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 = 0x03 self.SubCmd = 0x2B self.SysTime = 0 self.IncTime = 0 self.FamilyTime = 0 return def GetLength(self): return sizeof(tagDoubleExpQueryResult) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//03 2B Ôöֵ˫±¶¾­Ñéʱ¼ä²éѯ//tagDoubleExpQueryResult: Cmd:%s, SubCmd:%s, SysTime:%d, IncTime:%d, FamilyTime:%d '''\ %( self.Cmd, self.SubCmd, self.SysTime, self.IncTime, self.FamilyTime ) return DumpString m_NAtagDoubleExpQueryResult=tagDoubleExpQueryResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagDoubleExpQueryResult.Cmd,m_NAtagDoubleExpQueryResult.SubCmd))] = m_NAtagDoubleExpQueryResult #------------------------------------------------------ #03 2D Íæ¼Ò¾«Á¦Ë¢ÐÂ#tagEnergyRefresh class tagEnergyRefresh(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Energy", c_int), # Íæ¼ÒÊ£ÓྫÁ¦ ] def __init__(self): self.Clear() self.Cmd = 0x03 self.SubCmd = 0x2D return def 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 = 0x03 self.SubCmd = 0x2D self.Energy = 0 return def GetLength(self): return sizeof(tagEnergyRefresh) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//03 2D Íæ¼Ò¾«Á¦Ë¢ÐÂ//tagEnergyRefresh: Cmd:%s, SubCmd:%s, Energy:%d '''\ %( self.Cmd, self.SubCmd, self.Energy ) return DumpString m_NAtagEnergyRefresh=tagEnergyRefresh() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagEnergyRefresh.Cmd,m_NAtagEnergyRefresh.SubCmd))] = m_NAtagEnergyRefresh #------------------------------------------------------ #03 24 ·¨±¦ÌáÁ¶½á¹û#tagFabaoTiLianResult class tagFabaoTiLianResult(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Result", c_ubyte), #0:ʧ°Ü 1:³É¹¦ ] def __init__(self): self.Clear() self.Cmd = 0x03 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 = 0x03 self.SubCmd = 0x24 self.Result = 0 return def GetLength(self): return sizeof(tagFabaoTiLianResult) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//03 24 ·¨±¦ÌáÁ¶½á¹û//tagFabaoTiLianResult: Cmd:%s, SubCmd:%s, Result:%d '''\ %( self.Cmd, self.SubCmd, self.Result ) return DumpString m_NAtagFabaoTiLianResult=tagFabaoTiLianResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagFabaoTiLianResult.Cmd,m_NAtagFabaoTiLianResult.SubCmd))] = m_NAtagFabaoTiLianResult #------------------------------------------------------ #03 26 ¼Ò×åÃû³ÆË¢ÐÂ#tagFamilyNameRefresh class tagFamilyNameRefresh(Structure): Head = tagHead() PlayerID = 0 #(DWORD PlayerID) FamilyNameLen = 0 #(BYTE FamilyNameLen) FamilyName = "" #(String FamilyName)//size = FamilyNameLen data = None def __init__(self): self.Clear() self.Head.Cmd = 0x03 self.Head.SubCmd = 0x26 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.FamilyNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.FamilyName,_pos = CommFunc.ReadString(_lpData, _pos,self.FamilyNameLen) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x03 self.Head.SubCmd = 0x26 self.PlayerID = 0 self.FamilyNameLen = 0 self.FamilyName = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += len(self.FamilyName) 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.FamilyNameLen) data = CommFunc.WriteString(data, self.FamilyNameLen, self.FamilyName) return data def OutputString(self): DumpString = ''' Head:%s, PlayerID:%d, FamilyNameLen:%d, FamilyName:%s '''\ %( self.Head.OutputString(), self.PlayerID, self.FamilyNameLen, self.FamilyName ) return DumpString m_NAtagFamilyNameRefresh=tagFamilyNameRefresh() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagFamilyNameRefresh.Head.Cmd,m_NAtagFamilyNameRefresh.Head.SubCmd))] = m_NAtagFamilyNameRefresh #------------------------------------------------------ #03 17 ¼Ò×åÕ½ÅÅÆÚʱ¼ä#tagFamilyWarTime class tagFamilyWarTime(Structure): Head = tagHead() VSFamilyID = 0 #(DWORD VSFamilyID) VSFamilyNameLen = 0 #(BYTE VSFamilyNameLen) VSFamilyName = "" #(String VSFamilyName)//size = VSFamilyNameLen RemainDate = 0 #(BYTE RemainDate)//Ê£Ó༸Ìì data = None def __init__(self): self.Clear() self.Head.Cmd = 0x03 self.Head.SubCmd = 0x17 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.VSFamilyID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.VSFamilyNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.VSFamilyName,_pos = CommFunc.ReadString(_lpData, _pos,self.VSFamilyNameLen) self.RemainDate,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x03 self.Head.SubCmd = 0x17 self.VSFamilyID = 0 self.VSFamilyNameLen = 0 self.VSFamilyName = "" self.RemainDate = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += len(self.VSFamilyName) length += 1 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.VSFamilyID) data = CommFunc.WriteBYTE(data, self.VSFamilyNameLen) data = CommFunc.WriteString(data, self.VSFamilyNameLen, self.VSFamilyName) data = CommFunc.WriteBYTE(data, self.RemainDate) return data def OutputString(self): DumpString = ''' Head:%s, VSFamilyID:%d, VSFamilyNameLen:%d, VSFamilyName:%s, RemainDate:%d '''\ %( self.Head.OutputString(), self.VSFamilyID, self.VSFamilyNameLen, self.VSFamilyName, self.RemainDate ) return DumpString m_NAtagFamilyWarTime=tagFamilyWarTime() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagFamilyWarTime.Head.Cmd,m_NAtagFamilyWarTime.Head.SubCmd))] = m_NAtagFamilyWarTime #------------------------------------------------------ #03 21 ˢи±±¾ÅÅÐаñ#tagFBBillboard class tagFBBillboardPlayer(Structure): PlayerID = 0 #(DWORD PlayerID)//Íæ¼ÒID PlayerNameLen = 0 #(BYTE PlayerNameLen)//Íæ¼ÒÃû³Æ PlayerName = "" #(String PlayerName)//size = PlayerNameLen Country = 0 #(BYTE Country)//¹ú¼® 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.Country,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Point,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): self.PlayerID = 0 self.PlayerNameLen = 0 self.PlayerName = "" self.Country = 0 self.Point = 0 return def GetLength(self): length = 0 length += 4 length += 1 length += len(self.PlayerName) length += 1 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.Country) data = CommFunc.WriteDWORD(data, self.Point) return data def OutputString(self): DumpString = ''' PlayerID:%d, PlayerNameLen:%d, PlayerName:%s, Country:%d, Point:%d '''\ %( self.PlayerID, self.PlayerNameLen, self.PlayerName, self.Country, self.Point ) return DumpString class tagFBBillboard(Structure): Head = tagHead() PlayerBillboard = 0 #(WORD PlayerBillboard)//Íæ¼Òµ±Ç°ÅÅÐаñ PlayerPoint = 0 #(WORD PlayerPoint)//±¾ÈË»ý·Ö BillboardCount = 0 #(BYTE BillboardCount) FBBillboardPlayer = list() #(vector FBBillboardPlayer)//size = BillboardCount data = None def __init__(self): self.Clear() self.Head.Cmd = 0x03 self.Head.SubCmd = 0x21 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.PlayerBillboard,_pos = CommFunc.ReadWORD(_lpData, _pos) self.PlayerPoint,_pos = CommFunc.ReadWORD(_lpData, _pos) self.BillboardCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.BillboardCount): temFBBillboardPlayer = tagFBBillboardPlayer() _pos = temFBBillboardPlayer.ReadData(_lpData, _pos) self.FBBillboardPlayer.append(temFBBillboardPlayer) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x03 self.Head.SubCmd = 0x21 self.PlayerBillboard = 0 self.PlayerPoint = 0 self.BillboardCount = 0 self.FBBillboardPlayer = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 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.WriteWORD(data, self.PlayerBillboard) data = CommFunc.WriteWORD(data, self.PlayerPoint) 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, PlayerBillboard:%d, PlayerPoint:%d, BillboardCount:%d, FBBillboardPlayer:%s '''\ %( self.Head.OutputString(), self.PlayerBillboard, self.PlayerPoint, self.BillboardCount, "..." ) return DumpString m_NAtagFBBillboard=tagFBBillboard() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagFBBillboard.Head.Cmd,m_NAtagFBBillboard.Head.SubCmd))] = m_NAtagFBBillboard #------------------------------------------------------ #03 20 ¸±±¾½áÊø½çÃæ#tagFBEnd class tagFBEnd(Structure): Head = tagHead() Len = 0 #(WORD Len) Msg = "" #(String Msg)//size = Len data = None def __init__(self): self.Clear() self.Head.Cmd = 0x03 self.Head.SubCmd = 0x20 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.Msg,_pos = CommFunc.ReadString(_lpData, _pos,self.Len) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x03 self.Head.SubCmd = 0x20 self.Len = 0 self.Msg = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 length += len(self.Msg) 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.Msg) return data def OutputString(self): DumpString = ''' Head:%s, Len:%d, Msg:%s '''\ %( self.Head.OutputString(), self.Len, self.Msg ) return DumpString m_NAtagFBEnd=tagFBEnd() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagFBEnd.Head.Cmd,m_NAtagFBEnd.Head.SubCmd))] = m_NAtagFBEnd #------------------------------------------------------ #03 22 ¸±±¾»î¶¯½çÃæ#tagGameFbEvent class tagGameFbLine(Structure): _pack_ = 1 _fields_ = [ ("LineID", c_ushort), #ÏßID ("PlayerCnt", c_ushort), #µ±Ç°Íæ¼ÒÊýÄ¿ ("MaxPlayerCnt", 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.LineID = 0 self.PlayerCnt = 0 self.MaxPlayerCnt = 0 return def GetLength(self): return sizeof(tagGameFbLine) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//03 22 ¸±±¾»î¶¯½çÃæ//tagGameFbEvent: LineID:%d, PlayerCnt:%d, MaxPlayerCnt:%d '''\ %( self.LineID, self.PlayerCnt, self.MaxPlayerCnt ) return DumpString class tagGameFb(Structure): MapID = 0 #(WORD MapID)//µØÍ¼ID FbInfoLen = 0 #(WORD FbInfoLen)//ÐÅÏ¢ FbInfo = "" #(String FbInfo)//size = FbInfoLen LineCount = 0 #(WORD LineCount) GameFbLine = list() #(vector GameFbLine)//size = LineCount data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.MapID,_pos = CommFunc.ReadWORD(_lpData, _pos) self.FbInfoLen,_pos = CommFunc.ReadWORD(_lpData, _pos) self.FbInfo,_pos = CommFunc.ReadString(_lpData, _pos,self.FbInfoLen) self.LineCount,_pos = CommFunc.ReadWORD(_lpData, _pos) for i in range(self.LineCount): temGameFbLine = tagGameFbLine() _pos = temGameFbLine.ReadData(_lpData, _pos) self.GameFbLine.append(temGameFbLine) return _pos def Clear(self): self.MapID = 0 self.FbInfoLen = 0 self.FbInfo = "" self.LineCount = 0 self.GameFbLine = list() return def GetLength(self): length = 0 length += 2 length += 2 length += len(self.FbInfo) length += 2 for i in range(self.LineCount): length += self.GameFbLine[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteWORD(data, self.MapID) data = CommFunc.WriteWORD(data, self.FbInfoLen) data = CommFunc.WriteString(data, self.FbInfoLen, self.FbInfo) data = CommFunc.WriteWORD(data, self.LineCount) for i in range(self.LineCount): data = CommFunc.WriteString(data, self.GameFbLine[i].GetLength(), self.GameFbLine[i].GetBuffer()) return data def OutputString(self): DumpString = ''' MapID:%d, FbInfoLen:%d, FbInfo:%s, LineCount:%d, GameFbLine:%s '''\ %( self.MapID, self.FbInfoLen, self.FbInfo, self.LineCount, "..." ) return DumpString class tagGameFbEvent(Structure): Head = tagHead() GameFbCount = 0 #(BYTE GameFbCount) GameFb = list() #(vector GameFb)//size = GameFbCount data = None def __init__(self): self.Clear() self.Head.Cmd = 0x03 self.Head.SubCmd = 0x22 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.GameFbCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.GameFbCount): temGameFb = tagGameFb() _pos = temGameFb.ReadData(_lpData, _pos) self.GameFb.append(temGameFb) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x03 self.Head.SubCmd = 0x22 self.GameFbCount = 0 self.GameFb = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.GameFbCount): length += self.GameFb[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.GameFbCount) for i in range(self.GameFbCount): data = CommFunc.WriteString(data, self.GameFb[i].GetLength(), self.GameFb[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, GameFbCount:%d, GameFb:%s '''\ %( self.Head.OutputString(), self.GameFbCount, "..." ) return DumpString m_NAtagGameFbEvent=tagGameFbEvent() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGameFbEvent.Head.Cmd,m_NAtagGameFbEvent.Head.SubCmd))] = m_NAtagGameFbEvent #------------------------------------------------------ #03 19 ¸±±¾°ïÖú½çÃæ»ØÓ¦#tagFBHelp class tagFBHelp(Structure): Head = tagHead() Len = 0 #(WORD Len) Msg = "" #(String Msg)//size = Len data = None def __init__(self): self.Clear() self.Head.Cmd = 0x03 self.Head.SubCmd = 0x19 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.Msg,_pos = CommFunc.ReadString(_lpData, _pos,self.Len) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x03 self.Head.SubCmd = 0x19 self.Len = 0 self.Msg = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 length += len(self.Msg) 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.Msg) return data def OutputString(self): DumpString = ''' Head:%s, Len:%d, Msg:%s '''\ %( self.Head.OutputString(), self.Len, self.Msg ) return DumpString m_NAtagFBHelp=tagFBHelp() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagFBHelp.Head.Cmd,m_NAtagFBHelp.Head.SubCmd))] = m_NAtagFBHelp #------------------------------------------------------ #03 2C Õ½¶·Ð¡ÖúÊÖϵͳ¿ªÆô»ò¹ØÏµ»Ø°ü#tagFightAssistantSystemRespond class tagFightAssistantSystemRespond(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("StartOrEnd", c_ubyte), #1 ÒÑ´ò¿ª£¬2 ÒѾ­¹Ø±Õ ] def __init__(self): self.Clear() self.Cmd = 0x03 self.SubCmd = 0x2C return def 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 = 0x03 self.SubCmd = 0x2C self.StartOrEnd = 0 return def GetLength(self): return sizeof(tagFightAssistantSystemRespond) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//03 2C Õ½¶·Ð¡ÖúÊÖϵͳ¿ªÆô»ò¹ØÏµ»Ø°ü//tagFightAssistantSystemRespond: Cmd:%s, SubCmd:%s, StartOrEnd:%d '''\ %( self.Cmd, self.SubCmd, self.StartOrEnd ) return DumpString m_NAtagFightAssistantSystemRespond=tagFightAssistantSystemRespond() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagFightAssistantSystemRespond.Cmd,m_NAtagFightAssistantSystemRespond.SubCmd))] = m_NAtagFightAssistantSystemRespond #------------------------------------------------------ #03 25 ÒÅÍü²Ö¿âÃÜÂëµÄʱ¼ä#tagForgetWarehousePsw class tagForgetWarehousePsw(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("StartYear", c_ushort), #Äê, Èç¹ûÌîд0, ¾ÍÒþ²Ø´Ë´°¿Ú ("StartMonth", c_ushort), #Ô ("StartDate", c_ubyte), #ÈÕ ("EndYear", c_ushort), ("EndMonth", c_ushort), ("EndDate", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0x03 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 = 0x03 self.SubCmd = 0x25 self.StartYear = 0 self.StartMonth = 0 self.StartDate = 0 self.EndYear = 0 self.EndMonth = 0 self.EndDate = 0 return def GetLength(self): return sizeof(tagForgetWarehousePsw) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//03 25 ÒÅÍü²Ö¿âÃÜÂëµÄʱ¼ä//tagForgetWarehousePsw: Cmd:%s, SubCmd:%s, StartYear:%d, StartMonth:%d, StartDate:%d, EndYear:%d, EndMonth:%d, EndDate:%d '''\ %( self.Cmd, self.SubCmd, self.StartYear, self.StartMonth, self.StartDate, self.EndYear, self.EndMonth, self.EndDate ) return DumpString m_NAtagForgetWarehousePsw=tagForgetWarehousePsw() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagForgetWarehousePsw.Cmd,m_NAtagForgetWarehousePsw.SubCmd))] = m_NAtagForgetWarehousePsw #------------------------------------------------------ #03 18 æô³µÎ»ÖûØÓ¦#tagTruckPosQuery class tagTruckPosQuery(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("MapID", c_ushort), ("PosX", c_ushort), ("PosY", c_ushort), ] def __init__(self): self.Clear() self.Cmd = 0x03 self.SubCmd = 0x18 return def 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 = 0x03 self.SubCmd = 0x18 self.MapID = 0 self.PosX = 0 self.PosY = 0 return def GetLength(self): return sizeof(tagTruckPosQuery) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//03 18 æô³µÎ»ÖûØÓ¦//tagTruckPosQuery: Cmd:%s, SubCmd:%s, MapID:%d, PosX:%d, PosY:%d '''\ %( self.Cmd, self.SubCmd, self.MapID, self.PosX, self.PosY ) return DumpString m_NAtagTruckPosQuery=tagTruckPosQuery() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagTruckPosQuery.Cmd,m_NAtagTruckPosQuery.SubCmd))] = m_NAtagTruckPosQuery #------------------------------------------------------ #03 33 Íæ¼ÒÔÚ¼Ò×åÖеÄÐÅϢˢÐÂ#tagHPlayerInFamilyInfoRefresh class tagHPlayerInFamilyInfoRefresh(Structure): Head = tagHead() PlayerID = 0 #(DWORD PlayerID) FamilyNameLen = 0 #(BYTE FamilyNameLen) FamilyName = "" #(String FamilyName)//size = FamilyNameLen FamilyMemberLV = 0 #(BYTE FamilyMemberLV)//Íæ¼ÒÔÚ¼Ò×åÖеÄְλ data = None def __init__(self): self.Clear() self.Head.Cmd = 0x03 self.Head.SubCmd = 0x33 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.FamilyNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.FamilyName,_pos = CommFunc.ReadString(_lpData, _pos,self.FamilyNameLen) self.FamilyMemberLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x03 self.Head.SubCmd = 0x33 self.PlayerID = 0 self.FamilyNameLen = 0 self.FamilyName = "" self.FamilyMemberLV = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += len(self.FamilyName) length += 1 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.PlayerID) data = CommFunc.WriteBYTE(data, self.FamilyNameLen) data = CommFunc.WriteString(data, self.FamilyNameLen, self.FamilyName) data = CommFunc.WriteBYTE(data, self.FamilyMemberLV) return data def OutputString(self): DumpString = ''' Head:%s, PlayerID:%d, FamilyNameLen:%d, FamilyName:%s, FamilyMemberLV:%d '''\ %( self.Head.OutputString(), self.PlayerID, self.FamilyNameLen, self.FamilyName, self.FamilyMemberLV ) return DumpString m_NAtagHPlayerInFamilyInfoRefresh=tagHPlayerInFamilyInfoRefresh() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagHPlayerInFamilyInfoRefresh.Head.Cmd,m_NAtagHPlayerInFamilyInfoRefresh.Head.SubCmd))] = m_NAtagHPlayerInFamilyInfoRefresh #------------------------------------------------------ #03 0F ¼¼ÄÜѧϰ#tagLearnSkill class tagLearnSkill(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("SkillID", c_int), ] def __init__(self): self.Clear() self.Cmd = 0x03 self.SubCmd = 0x0F return def 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 = 0x03 self.SubCmd = 0x0F self.SkillID = 0 return def GetLength(self): return sizeof(tagLearnSkill) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//03 0F ¼¼ÄÜѧϰ//tagLearnSkill: Cmd:%s, SubCmd:%s, SkillID:%d '''\ %( self.Cmd, self.SubCmd, self.SkillID ) return DumpString m_NAtagLearnSkill=tagLearnSkill() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagLearnSkill.Cmd,m_NAtagLearnSkill.SubCmd))] = m_NAtagLearnSkill #------------------------------------------------------ #03 2A ÀëÏß¹Ò»úʱ¼ä²éѯ#tagOfflineTimeQueryResult class tagOfflineTimeQueryResult(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("OfflineTimeTotal", c_int), #ÀëÏß¹Ò»ú×Üʱ¼ä,µ¥Î»:·ÖÖÓ ] def __init__(self): self.Clear() self.Cmd = 0x03 self.SubCmd = 0x2A return def 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 = 0x03 self.SubCmd = 0x2A self.OfflineTimeTotal = 0 return def GetLength(self): return sizeof(tagOfflineTimeQueryResult) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//03 2A ÀëÏß¹Ò»úʱ¼ä²éѯ//tagOfflineTimeQueryResult: Cmd:%s, SubCmd:%s, OfflineTimeTotal:%d '''\ %( self.Cmd, self.SubCmd, self.OfflineTimeTotal ) return DumpString m_NAtagOfflineTimeQueryResult=tagOfflineTimeQueryResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagOfflineTimeQueryResult.Cmd,m_NAtagOfflineTimeQueryResult.SubCmd))] = m_NAtagOfflineTimeQueryResult #------------------------------------------------------ #03 29 ÀëÏß¹Ò»úʱ¼äË¢ÐÂ#tagOfflineTimeRefresh class tagOfflineTimeRefresh(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("LastOfflineTime", c_int), #±¾´ÎÀëÏß¹Ò»úʱ¼ä,µ¥Î»:·ÖÖÓ ("OfflineTimeTotal", c_int), #ÀëÏß¹Ò»ú×Üʱ¼ä,µ¥Î»:·ÖÖÓ ] def __init__(self): self.Clear() self.Cmd = 0x03 self.SubCmd = 0x29 return def 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 = 0x03 self.SubCmd = 0x29 self.LastOfflineTime = 0 self.OfflineTimeTotal = 0 return def GetLength(self): return sizeof(tagOfflineTimeRefresh) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//03 29 ÀëÏß¹Ò»úʱ¼äË¢ÐÂ//tagOfflineTimeRefresh: Cmd:%s, SubCmd:%s, LastOfflineTime:%d, OfflineTimeTotal:%d '''\ %( self.Cmd, self.SubCmd, self.LastOfflineTime, self.OfflineTimeTotal ) return DumpString m_NAtagOfflineTimeRefresh=tagOfflineTimeRefresh() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagOfflineTimeRefresh.Cmd,m_NAtagOfflineTimeRefresh.SubCmd))] = m_NAtagOfflineTimeRefresh #------------------------------------------------------ #03 15 ¿Í»§¶Ë´ò¿ªFrm#tagClientOpenFrm class tagClientOpenFrm(Structure): Head = tagHead() MsgLen = 0 #(BYTE MsgLen) Msg = "" #(String Msg)//size = MsgLen data = None def __init__(self): self.Clear() self.Head.Cmd = 0x03 self.Head.SubCmd = 0x15 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.MsgLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Msg,_pos = CommFunc.ReadString(_lpData, _pos,self.MsgLen) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x03 self.Head.SubCmd = 0x15 self.MsgLen = 0 self.Msg = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += len(self.Msg) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.MsgLen) data = CommFunc.WriteString(data, self.MsgLen, self.Msg) return data def OutputString(self): DumpString = ''' Head:%s, MsgLen:%d, Msg:%s '''\ %( self.Head.OutputString(), self.MsgLen, self.Msg ) return DumpString m_NAtagClientOpenFrm=tagClientOpenFrm() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagClientOpenFrm.Head.Cmd,m_NAtagClientOpenFrm.Head.SubCmd))] = m_NAtagClientOpenFrm #------------------------------------------------------ #03 16 ±³°üÖØÕû³É¹¦#tagPackResetOK class tagPackResetOK(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0x03 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 = 0x03 self.SubCmd = 0x16 self.Type = 0 return def GetLength(self): return sizeof(tagPackResetOK) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//03 16 ±³°üÖØÕû³É¹¦//tagPackResetOK: Cmd:%s, SubCmd:%s, Type:%d '''\ %( self.Cmd, self.SubCmd, self.Type ) return DumpString m_NAtagPackResetOK=tagPackResetOK() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPackResetOK.Cmd,m_NAtagPackResetOK.SubCmd))] = m_NAtagPackResetOK #------------------------------------------------------ #03 04 Íæ¼ÒµÃµ½¾­ÑéÏÔʾ#tagPlayerGetExpView class tagPlayerGetExpView(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Exp", c_int), ("Type", c_ubyte), # ¾­ÑéÇþµÀ ] def __init__(self): self.Clear() self.Cmd = 0x03 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 = 0x03 self.SubCmd = 0x04 self.Exp = 0 self.Type = 0 return def GetLength(self): return sizeof(tagPlayerGetExpView) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//03 04 Íæ¼ÒµÃµ½¾­ÑéÏÔʾ//tagPlayerGetExpView: Cmd:%s, SubCmd:%s, Exp:%d, Type:%d '''\ %( self.Cmd, self.SubCmd, self.Exp, self.Type ) return DumpString m_NAtagPlayerGetExpView=tagPlayerGetExpView() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerGetExpView.Cmd,m_NAtagPlayerGetExpView.SubCmd))] = m_NAtagPlayerGetExpView #------------------------------------------------------ #03 3B Íæ¼Ò±»ÕÙ»ØÐÅÏ¢#tagPlayerBeRecalledInfo class tagPlayerBeRecalledInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Time", c_int), #ÀëÏßʱ¼ä ] def __init__(self): self.Clear() self.Cmd = 0x03 self.SubCmd = 0x3B return def 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 = 0x03 self.SubCmd = 0x3B self.Time = 0 return def GetLength(self): return sizeof(tagPlayerBeRecalledInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//03 3B Íæ¼Ò±»ÕÙ»ØÐÅÏ¢//tagPlayerBeRecalledInfo: Cmd:%s, SubCmd:%s, Time:%d '''\ %( self.Cmd, self.SubCmd, self.Time ) return DumpString m_NAtagPlayerBeRecalledInfo=tagPlayerBeRecalledInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerBeRecalledInfo.Cmd,m_NAtagPlayerBeRecalledInfo.SubCmd))] = m_NAtagPlayerBeRecalledInfo #------------------------------------------------------ #03 01 Ö÷½ÇBuff³õʼ»¯#tagPlayerBuffInit class tagPlayerBuff(Structure): _pack_ = 1 _fields_ = [ ("SkillID", c_ushort), ("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.SkillID = 0 self.RemainTime = 0 return def GetLength(self): return sizeof(tagPlayerBuff) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//03 01 Ö÷½ÇBuff³õʼ»¯//tagPlayerBuffInit: SkillID:%d, RemainTime:%d '''\ %( self.SkillID, self.RemainTime ) return DumpString class tagPlayerBuffInit(Structure): Head = tagHead() BuffCount = 0 #(BYTE BuffCount) BuffType = 0 #(BYTE BuffType)//0 : Buff, 1: DeBuff, 2: ÔöÖµ Buffs = list() #(vector Buffs)//size = BuffCount data = None def __init__(self): self.Clear() self.Head.Cmd = 0x03 self.Head.SubCmd = 0x01 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.BuffCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.BuffType,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.BuffCount): temBuffs = tagPlayerBuff() _pos = temBuffs.ReadData(_lpData, _pos) self.Buffs.append(temBuffs) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x03 self.Head.SubCmd = 0x01 self.BuffCount = 0 self.BuffType = 0 self.Buffs = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 1 for i in range(self.BuffCount): length += self.Buffs[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.BuffCount) data = CommFunc.WriteBYTE(data, self.BuffType) for i in range(self.BuffCount): data = CommFunc.WriteString(data, self.Buffs[i].GetLength(), self.Buffs[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, BuffCount:%d, BuffType:%d, Buffs:%s '''\ %( self.Head.OutputString(), self.BuffCount, self.BuffType, "..." ) return DumpString m_NAtagPlayerBuffInit=tagPlayerBuffInit() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerBuffInit.Head.Cmd,m_NAtagPlayerBuffInit.Head.SubCmd))] = m_NAtagPlayerBuffInit #------------------------------------------------------ #03 37 Ö÷½Çɾ³ýÍ·ÏÎ#tagPlayerDelDienstgrad class tagPlayerDelDienstgrad(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("GradID", c_int), #Í·ÏÎID ] def __init__(self): self.Clear() self.Cmd = 0x03 self.SubCmd = 0x37 return def 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 = 0x03 self.SubCmd = 0x37 self.GradID = 0 return def GetLength(self): return sizeof(tagPlayerDelDienstgrad) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//03 37 Ö÷½Çɾ³ýÍ·ÏÎ//tagPlayerDelDienstgrad: Cmd:%s, SubCmd:%s, GradID:%d '''\ %( self.Cmd, self.SubCmd, self.GradID ) return DumpString m_NAtagPlayerDelDienstgrad=tagPlayerDelDienstgrad() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerDelDienstgrad.Cmd,m_NAtagPlayerDelDienstgrad.SubCmd))] = m_NAtagPlayerDelDienstgrad #------------------------------------------------------ #03 35 Ö÷½ÇÍ·ÏÎˢаü#tagPlayerDienstgradPack class tagPlayerDienstgradItem(Structure): GradID = 0 #(DWORD GradID)//Í·ÏÎID State = 0 #(BYTE State)//×°±¸ºÍʹÓÃ״̬ °´Î»Åж¨£¬µÚһλ0δװ±¸1ÒÑ×°±¸ µÚ¶þλ0δʹÓà 1ʹÓà CreateTime = "" #(char CreateTime[30])//»ñµÃʱ¼ä ExpireTime = 0 #(DWORD ExpireTime)// ³ÖÐøÊ±¼ä£¬0ΪÅä±í¹Ì¶¨Ê±¼ä data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.GradID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.State,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.CreateTime,_pos = CommFunc.ReadString(_lpData, _pos,30) self.ExpireTime,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): self.GradID = 0 self.State = 0 self.CreateTime = "" self.ExpireTime = 0 return def GetLength(self): length = 0 length += 4 length += 1 length += 30 length += 4 return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.GradID) data = CommFunc.WriteBYTE(data, self.State) data = CommFunc.WriteString(data, 30, self.CreateTime) data = CommFunc.WriteDWORD(data, self.ExpireTime) return data def OutputString(self): DumpString = ''' GradID:%d, State:%d, CreateTime:%s, ExpireTime:%d '''\ %( self.GradID, self.State, self.CreateTime, self.ExpireTime ) return DumpString class tagPlayerDienstgradPack(Structure): Head = tagHead() Count = 0 #(BYTE Count)//ÊýÁ¿ Items = list() #(vector Items)//size = Count data = None def __init__(self): self.Clear() self.Head.Cmd = 0x03 self.Head.SubCmd = 0x35 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): temItems = tagPlayerDienstgradItem() _pos = temItems.ReadData(_lpData, _pos) self.Items.append(temItems) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x03 self.Head.SubCmd = 0x35 self.Count = 0 self.Items = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.Count): length += self.Items[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.Items[i].GetLength(), self.Items[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Count:%d, Items:%s '''\ %( self.Head.OutputString(), self.Count, "..." ) return DumpString m_NAtagPlayerDienstgradPack=tagPlayerDienstgradPack() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerDienstgradPack.Head.Cmd,m_NAtagPlayerDienstgradPack.Head.SubCmd))] = m_NAtagPlayerDienstgradPack #------------------------------------------------------ #03 36 Ö÷½Ç»ñµÃÍ·ÏÎ#tagPlayerGetDienstgrad class tagPlayerGetDienstgrad(Structure): Head = tagHead() GradID = 0 #(DWORD GradID)//Í·ÏÎID CreateTime = "" #(char CreateTime[30])//»ñµÃʱ¼ä ExpireTime = 0 #(DWORD ExpireTime)// ³ÖÐøÊ±¼ä£¬0ΪÅä±í¹Ì¶¨Ê±¼ä data = None def __init__(self): self.Clear() self.Head.Cmd = 0x03 self.Head.SubCmd = 0x36 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.GradID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.CreateTime,_pos = CommFunc.ReadString(_lpData, _pos,30) self.ExpireTime,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x03 self.Head.SubCmd = 0x36 self.GradID = 0 self.CreateTime = "" self.ExpireTime = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 30 length += 4 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.GradID) data = CommFunc.WriteString(data, 30, self.CreateTime) data = CommFunc.WriteDWORD(data, self.ExpireTime) return data def OutputString(self): DumpString = ''' Head:%s, GradID:%d, CreateTime:%s, ExpireTime:%d '''\ %( self.Head.OutputString(), self.GradID, self.CreateTime, self.ExpireTime ) return DumpString m_NAtagPlayerGetDienstgrad=tagPlayerGetDienstgrad() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerGetDienstgrad.Head.Cmd,m_NAtagPlayerGetDienstgrad.Head.SubCmd))] = m_NAtagPlayerGetDienstgrad #------------------------------------------------------ #03 3A Íæ¼ÒÕÙ»ØÐÅÏ¢#tagPlayerRecallInfo class tagPlayerRecallInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("RecallCount", c_ushort), #Íæ¼ÒÕٻظöÊý ("ReceiveFlag", c_int), #ÁìÈ¡Çé¿ö ] def __init__(self): self.Clear() self.Cmd = 0x03 self.SubCmd = 0x3A return def 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 = 0x03 self.SubCmd = 0x3A self.RecallCount = 0 self.ReceiveFlag = 0 return def GetLength(self): return sizeof(tagPlayerRecallInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//03 3A Íæ¼ÒÕÙ»ØÐÅÏ¢//tagPlayerRecallInfo: Cmd:%s, SubCmd:%s, RecallCount:%d, ReceiveFlag:%d '''\ %( self.Cmd, self.SubCmd, self.RecallCount, self.ReceiveFlag ) return DumpString m_NAtagPlayerRecallInfo=tagPlayerRecallInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerRecallInfo.Cmd,m_NAtagPlayerRecallInfo.SubCmd))] = m_NAtagPlayerRecallInfo #------------------------------------------------------ #03 34 ֪ͨ¿Í»§¶ËÍþÍûϵͳ½±ÀøµÄÁìÈ¡Çé¿ö #tagPrestigeRewardState class tagPrestigeRewardState(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("RewardMark", c_int), #Python×Ô¶¨ÒåµÄÍþÍû½±Àø±êʶ ("HasGetSalary", c_ubyte), #½ñÈÕÊÇ·ñÁìÈ¡¹ýٺ» ] def __init__(self): self.Clear() self.Cmd = 0x03 self.SubCmd = 0x34 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0x03 self.SubCmd = 0x34 self.RewardMark = 0 self.HasGetSalary = 0 return def GetLength(self): return sizeof(tagPrestigeRewardState) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//03 34 ֪ͨ¿Í»§¶ËÍþÍûϵͳ½±ÀøµÄÁìÈ¡Çé¿ö //tagPrestigeRewardState: Cmd:%s, SubCmd:%s, RewardMark:%d, HasGetSalary:%d '''\ %( self.Cmd, self.SubCmd, self.RewardMark, self.HasGetSalary ) return DumpString m_NAtagPrestigeRewardState=tagPrestigeRewardState() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPrestigeRewardState.Cmd,m_NAtagPrestigeRewardState.SubCmd))] = m_NAtagPrestigeRewardState #------------------------------------------------------ #03 28 תÉú³É¹¦#tagReincarnationOK class tagReincarnationOK(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ubyte), #0ʧ°Ü,ÆäËû³É¹¦ ] def __init__(self): self.Clear() self.Cmd = 0x03 self.SubCmd = 0x28 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0x03 self.SubCmd = 0x28 self.Type = 0 return def GetLength(self): return sizeof(tagReincarnationOK) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//03 28 תÉú³É¹¦//tagReincarnationOK: Cmd:%s, SubCmd:%s, Type:%d '''\ %( self.Cmd, self.SubCmd, self.Type ) return DumpString m_NAtagReincarnationOK=tagReincarnationOK() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagReincarnationOK.Cmd,m_NAtagReincarnationOK.SubCmd))] = m_NAtagReincarnationOK #------------------------------------------------------ #03 08 Ö÷½Ç¼¼ÄÜÖØÖÃ#tagResetAllSkill class tagResetAllSkill(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ubyte), #ÔÝʱÎÞÓà ] def __init__(self): self.Clear() self.Cmd = 0x03 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 = 0x03 self.SubCmd = 0x08 self.Type = 0 return def GetLength(self): return sizeof(tagResetAllSkill) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//03 08 Ö÷½Ç¼¼ÄÜÖØÖÃ//tagResetAllSkill: Cmd:%s, SubCmd:%s, Type:%d '''\ %( self.Cmd, self.SubCmd, self.Type ) return DumpString m_NAtagResetAllSkill=tagResetAllSkill() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagResetAllSkill.Cmd,m_NAtagResetAllSkill.SubCmd))] = m_NAtagResetAllSkill #------------------------------------------------------ #03 09 Ö÷½ÇµÇ¼ʱºòµÄ¼ò¶ÌÐÅÏ¢#tagPlayerLoginInfo class tagLoginInfoEquip(Structure): _pack_ = 1 _fields_ = [ ("ItemID", 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.ItemID = 0 return def GetLength(self): return sizeof(tagLoginInfoEquip) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//03 09 Ö÷½ÇµÇ¼ʱºòµÄ¼ò¶ÌÐÅÏ¢//tagPlayerLoginInfo: ItemID:%d '''\ %( self.ItemID ) return DumpString class tagPlayerLoginInfo(Structure): Head = tagHead() PlayerID = 0 #(DWORD PlayerID) PlayerName = "" #(char PlayerName[33]) Job = 0 #(BYTE Job) LV = 0 #(WORD LV)//µÈ¼¶ Country = 0 #(BYTE Country)//Íæ¼Ò¹ú¼Ò HavePswLV2 = 0 #(BYTE HavePswLV2)//ÊÇ·ñÓжþ¼¶ÃÜÂë EquipCount = 0 #(BYTE EquipCount) EquipInfo = list() #(vector EquipInfo)//size = EquipCount EquipShowSwitch = 0 #(DWORD EquipShowSwitch)//Íæ¼Ò×°±¸ÏÔʾ¿ª¹Ø ExAttr15 = 0 #(DWORD ExAttr15)//Ô¤ÁôµÄÀ©Õ¹ÊôÐÔ×ֶΣ¬ÓÃÀ´´æ·ÅÏîÄ¿ÌØ¶¨µÄÊôÐÔ ExAttr16 = 0 #(DWORD ExAttr16)//Ô¤ÁôµÄÀ©Õ¹ÊôÐÔ×ֶΣ¬ÓÃÀ´´æ·ÅÏîÄ¿ÌØ¶¨µÄÊôÐÔ ExAttr17 = 0 #(DWORD ExAttr17)//Ô¤ÁôµÄÀ©Õ¹ÊôÐÔ×ֶΣ¬ÓÃÀ´´æ·ÅÏîÄ¿ÌØ¶¨µÄÊôÐÔ ExAttr18 = 0 #(DWORD ExAttr18)//Ô¤ÁôµÄÀ©Õ¹ÊôÐÔ×ֶΣ¬ÓÃÀ´´æ·ÅÏîÄ¿ÌØ¶¨µÄÊôÐÔ ExAttr19 = 0 #(DWORD ExAttr19)//Ô¤ÁôµÄÀ©Õ¹ÊôÐÔ×ֶΣ¬ÓÃÀ´´æ·ÅÏîÄ¿ÌØ¶¨µÄÊôÐÔ ExAttr20 = 0 #(DWORD ExAttr20)//Ô¤ÁôµÄÀ©Õ¹ÊôÐÔ×ֶΣ¬ÓÃÀ´´æ·ÅÏîÄ¿ÌØ¶¨µÄÊôÐÔ IPLen = 0 #(BYTE IPLen) IP = "" #(String IP)// ¿ç·þIP Port = 0 #(WORD Port)// ¿ç·þ¶Ë¿Ú CrossState = 0 #(BYTE CrossState)// ¿ç·þ״̬0-·Ç¿ç·þ״̬£¬1-¿ç·þ״̬£¬2-¿ç·þ״̬Òì³£ data = None def __init__(self): self.Clear() self.Head.Cmd = 0x03 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.Country,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.HavePswLV2,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.EquipCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.EquipCount): temEquipInfo = tagLoginInfoEquip() _pos = temEquipInfo.ReadData(_lpData, _pos) self.EquipInfo.append(temEquipInfo) self.EquipShowSwitch,_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) self.IPLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.IP,_pos = CommFunc.ReadString(_lpData, _pos,self.IPLen) self.Port,_pos = CommFunc.ReadWORD(_lpData, _pos) self.CrossState,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x03 self.Head.SubCmd = 0x09 self.PlayerID = 0 self.PlayerName = "" self.Job = 0 self.LV = 0 self.Country = 0 self.HavePswLV2 = 0 self.EquipCount = 0 self.EquipInfo = list() self.EquipShowSwitch = 0 self.ExAttr15 = 0 self.ExAttr16 = 0 self.ExAttr17 = 0 self.ExAttr18 = 0 self.ExAttr19 = 0 self.ExAttr20 = 0 self.IPLen = 0 self.IP = "" self.Port = 0 self.CrossState = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 33 length += 1 length += 2 length += 1 length += 1 length += 1 for i in range(self.EquipCount): length += self.EquipInfo[i].GetLength() length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 1 length += len(self.IP) length += 2 length += 1 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.PlayerID) data = CommFunc.WriteString(data, 33, self.PlayerName) data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteWORD(data, self.LV) data = CommFunc.WriteBYTE(data, self.Country) data = CommFunc.WriteBYTE(data, self.HavePswLV2) data = CommFunc.WriteBYTE(data, self.EquipCount) for i in range(self.EquipCount): data = CommFunc.WriteString(data, self.EquipInfo[i].GetLength(), self.EquipInfo[i].GetBuffer()) data = CommFunc.WriteDWORD(data, self.EquipShowSwitch) 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) data = CommFunc.WriteBYTE(data, self.IPLen) data = CommFunc.WriteString(data, self.IPLen, self.IP) data = CommFunc.WriteWORD(data, self.Port) data = CommFunc.WriteBYTE(data, self.CrossState) return data def OutputString(self): DumpString = ''' Head:%s, PlayerID:%d, PlayerName:%s, Job:%d, LV:%d, Country:%d, HavePswLV2:%d, EquipCount:%d, EquipInfo:%s, EquipShowSwitch:%d, ExAttr15:%d, ExAttr16:%d, ExAttr17:%d, ExAttr18:%d, ExAttr19:%d, ExAttr20:%d, IPLen:%d, IP:%s, Port:%d, CrossState:%d '''\ %( self.Head.OutputString(), self.PlayerID, self.PlayerName, self.Job, self.LV, self.Country, self.HavePswLV2, self.EquipCount, "...", self.EquipShowSwitch, self.ExAttr15, self.ExAttr16, self.ExAttr17, self.ExAttr18, self.ExAttr19, self.ExAttr20, self.IPLen, self.IP, self.Port, self.CrossState ) return DumpString m_NAtagPlayerLoginInfo=tagPlayerLoginInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerLoginInfo.Head.Cmd,m_NAtagPlayerLoginInfo.Head.SubCmd))] = m_NAtagPlayerLoginInfo #------------------------------------------------------ #03 07 Ö÷½ÇÈÎÎñ³õʼ»¯#tagRoleMissionUpdate class tagRoleMissionUpdate(Structure): Head = tagHead() MissionID = 0 #(DWORD MissionID) DetailLen = 0 #(WORD DetailLen) Detai = "" #(String Detai)//size = DetailLen data = None def __init__(self): self.Clear() self.Head.Cmd = 0x03 self.Head.SubCmd = 0x07 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.MissionID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.DetailLen,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Detai,_pos = CommFunc.ReadString(_lpData, _pos,self.DetailLen) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x03 self.Head.SubCmd = 0x07 self.MissionID = 0 self.DetailLen = 0 self.Detai = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 2 length += len(self.Detai) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.MissionID) data = CommFunc.WriteWORD(data, self.DetailLen) data = CommFunc.WriteString(data, self.DetailLen, self.Detai) return data def OutputString(self): DumpString = ''' Head:%s, MissionID:%d, DetailLen:%d, Detai:%s '''\ %( self.Head.OutputString(), self.MissionID, self.DetailLen, self.Detai ) return DumpString m_NAtagRoleMissionUpdate=tagRoleMissionUpdate() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagRoleMissionUpdate.Head.Cmd,m_NAtagRoleMissionUpdate.Head.SubCmd))] = m_NAtagRoleMissionUpdate #------------------------------------------------------ #03 12 Ö÷½ÇÖØÐ¼ÆËãËùÓÐÊôÐÔ#tagRoleRefreshClear class tagRoleRefreshClear(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0x03 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 = 0x03 self.SubCmd = 0x12 self.Type = 0 return def GetLength(self): return sizeof(tagRoleRefreshClear) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//03 12 Ö÷½ÇÖØÐ¼ÆËãËùÓÐÊôÐÔ//tagRoleRefreshClear: Cmd:%s, SubCmd:%s, Type:%d '''\ %( self.Cmd, self.SubCmd, self.Type ) return DumpString m_NAtagRoleRefreshClear=tagRoleRefreshClear() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagRoleRefreshClear.Cmd,m_NAtagRoleRefreshClear.SubCmd))] = m_NAtagRoleRefreshClear #------------------------------------------------------ #03 10 Íæ¼ÒÉý¼¶¼¼ÄÜ#tagRoleSkillChange class tagRoleSkillChange(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("OldSkillID", c_int), #Ô­À´µÄ¼¼ÄÜID ("NewSkillID", c_int), #ÏÖÔڵļ¼ÄÜID ("RemainTime", c_int), #Ê£Óàʱ¼ä ("Proficiency", c_int), #ÊìÁ·¶È ] def __init__(self): self.Clear() self.Cmd = 0x03 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 = 0x03 self.SubCmd = 0x10 self.OldSkillID = 0 self.NewSkillID = 0 self.RemainTime = 0 self.Proficiency = 0 return def GetLength(self): return sizeof(tagRoleSkillChange) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//03 10 Íæ¼ÒÉý¼¶¼¼ÄÜ//tagRoleSkillChange: Cmd:%s, SubCmd:%s, OldSkillID:%d, NewSkillID:%d, RemainTime:%d, Proficiency:%d '''\ %( self.Cmd, self.SubCmd, self.OldSkillID, self.NewSkillID, self.RemainTime, self.Proficiency ) return DumpString m_NAtagRoleSkillChange=tagRoleSkillChange() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagRoleSkillChange.Cmd,m_NAtagRoleSkillChange.SubCmd))] = m_NAtagRoleSkillChange #------------------------------------------------------ #03 3D Ö÷½Ç¼¼ÄÜÊìÁ·¶ÈË¢ÐÂ#tagRoleSkillProficiencyRefresh class tagRoleSkillProficiencyRefresh(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("SkillID", c_int), #¼¼ÄÜID ("Value", c_int), ] def __init__(self): self.Clear() self.Cmd = 0x03 self.SubCmd = 0x3D return def 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 = 0x03 self.SubCmd = 0x3D self.SkillID = 0 self.Value = 0 return def GetLength(self): return sizeof(tagRoleSkillProficiencyRefresh) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//03 3D Ö÷½Ç¼¼ÄÜÊìÁ·¶ÈË¢ÐÂ//tagRoleSkillProficiencyRefresh: Cmd:%s, SubCmd:%s, SkillID:%d, Value:%d '''\ %( self.Cmd, self.SubCmd, self.SkillID, self.Value ) return DumpString m_NAtagRoleSkillProficiencyRefresh=tagRoleSkillProficiencyRefresh() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagRoleSkillProficiencyRefresh.Cmd,m_NAtagRoleSkillProficiencyRefresh.SubCmd))] = m_NAtagRoleSkillProficiencyRefresh #------------------------------------------------------ #03 2F ·¢ËÍÍæ¼ÒÿÈÕ¹¤×ÊÃ÷ϸ#tagSalaryDetail class tagSalaryDetail(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("OnlineMinute", c_ushort), #Íæ¼Ò½ñÈÕÔÚÏß·ÖÖÖÊý ("ReceivedSalary", c_ushort), #ÒÑ»ñµÃ¹¤×ÊÊý£¬ ("LeftMinute", c_ushort), #¿É¼ÌÐøÔÚÏß·ÖÖÓÊý ("LeftSalary", c_ushort), #½«»á»ñÈ¡µÄ¹¤×ÊÊý ("CanReceiveSalary", c_ushort), #¿É»ñÈ¡µÄ¹¤×ÊÊý ] def __init__(self): self.Clear() self.Cmd = 0x03 self.SubCmd = 0x2F return def 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 = 0x03 self.SubCmd = 0x2F self.OnlineMinute = 0 self.ReceivedSalary = 0 self.LeftMinute = 0 self.LeftSalary = 0 self.CanReceiveSalary = 0 return def GetLength(self): return sizeof(tagSalaryDetail) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//03 2F ·¢ËÍÍæ¼ÒÿÈÕ¹¤×ÊÃ÷ϸ//tagSalaryDetail: Cmd:%s, SubCmd:%s, OnlineMinute:%d, ReceivedSalary:%d, LeftMinute:%d, LeftSalary:%d, CanReceiveSalary:%d '''\ %( self.Cmd, self.SubCmd, self.OnlineMinute, self.ReceivedSalary, self.LeftMinute, self.LeftSalary, self.CanReceiveSalary ) return DumpString m_NAtagSalaryDetail=tagSalaryDetail() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSalaryDetail.Cmd,m_NAtagSalaryDetail.SubCmd))] = m_NAtagSalaryDetail #------------------------------------------------------ #03 27 ³¡¾°·½ÏòµÆ#tagScreenDirection class tagScreenDirectionPos(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(tagScreenDirectionPos) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//03 27 ³¡¾°·½ÏòµÆ//tagScreenDirection: PosX:%d, PosY:%d '''\ %( self.PosX, self.PosY ) return DumpString class tagScreenDirection(Structure): Head = tagHead() PosCount = 0 #(BYTE PosCount) PosList = list() #(vector PosList)//size = PosCount data = None def __init__(self): self.Clear() self.Head.Cmd = 0x03 self.Head.SubCmd = 0x27 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.PosCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.PosCount): temPosList = tagScreenDirectionPos() _pos = temPosList.ReadData(_lpData, _pos) self.PosList.append(temPosList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x03 self.Head.SubCmd = 0x27 self.PosCount = 0 self.PosList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.PosCount): length += self.PosList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.PosCount) for i in range(self.PosCount): data = CommFunc.WriteString(data, self.PosList[i].GetLength(), self.PosList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, PosCount:%d, PosList:%s '''\ %( self.Head.OutputString(), self.PosCount, "..." ) return DumpString m_NAtagScreenDirection=tagScreenDirection() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagScreenDirection.Head.Cmd,m_NAtagScreenDirection.Head.SubCmd))] = m_NAtagScreenDirection #------------------------------------------------------ #03 3C ·¢ËÍÑûÇëÂë#tagSendInviteCode class tagSendInviteCode(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("InviteCode", c_int), ] def __init__(self): self.Clear() self.Cmd = 0x03 self.SubCmd = 0x3C return def 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 = 0x03 self.SubCmd = 0x3C self.InviteCode = 0 return def GetLength(self): return sizeof(tagSendInviteCode) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//03 3C ·¢ËÍÑûÇëÂë//tagSendInviteCode: Cmd:%s, SubCmd:%s, InviteCode:%d '''\ %( self.Cmd, self.SubCmd, self.InviteCode ) return DumpString m_NAtagSendInviteCode=tagSendInviteCode() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSendInviteCode.Cmd,m_NAtagSendInviteCode.SubCmd))] = m_NAtagSendInviteCode #------------------------------------------------------ #03 13 ÉèÖñ³°ü¸ñ×ÓÊýÄ¿#tagSetBackpackItemCount class tagSetBackpackItemCount(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Count", c_ushort), ] def __init__(self): self.Clear() self.Cmd = 0x03 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 = 0x03 self.SubCmd = 0x13 self.Count = 0 return def GetLength(self): return sizeof(tagSetBackpackItemCount) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//03 13 ÉèÖñ³°ü¸ñ×ÓÊýÄ¿//tagSetBackpackItemCount: Cmd:%s, SubCmd:%s, Count:%d '''\ %( self.Cmd, self.SubCmd, self.Count ) return DumpString m_NAtagSetBackpackItemCount=tagSetBackpackItemCount() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSetBackpackItemCount.Cmd,m_NAtagSetBackpackItemCount.SubCmd))] = m_NAtagSetBackpackItemCount #------------------------------------------------------ #03 23 ÏÔʾ¸±±¾ÅÅÐаñ#tagShowFbBillboard class tagShowFbBillboard(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ubyte), #ÏÔʾ¸±±¾ÅÅÐаñ ] def __init__(self): self.Clear() self.Cmd = 0x03 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 = 0x03 self.SubCmd = 0x23 self.Type = 0 return def GetLength(self): return sizeof(tagShowFbBillboard) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//03 23 ÏÔʾ¸±±¾ÅÅÐаñ//tagShowFbBillboard: Cmd:%s, SubCmd:%s, Type:%d '''\ %( self.Cmd, self.SubCmd, self.Type ) return DumpString m_NAtagShowFbBillboard=tagShowFbBillboard() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagShowFbBillboard.Cmd,m_NAtagShowFbBillboard.SubCmd))] = m_NAtagShowFbBillboard #------------------------------------------------------ #03 02 Ö÷½Ç¼¼Äܳõʼ»¯(·ÏÆú)#tagSkillInit class tagSkillInit(Structure): Head = tagHead() SkillCount = 0 #(BYTE SkillCount) SkillID = list() #(vector SkillID)//size = SkillCount data = None def __init__(self): self.Clear() self.Head.Cmd = 0x03 self.Head.SubCmd = 0x02 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.SkillCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.SkillCount): value,_pos=CommFunc.ReadWORD(_lpData,_pos) self.SkillID.append(value) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x03 self.Head.SubCmd = 0x02 self.SkillCount = 0 self.SkillID = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 2 * self.SkillCount return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.SkillCount) for i in range(self.SkillCount): data = CommFunc.WriteWORD(data, self.SkillID[i]) return data def OutputString(self): DumpString = ''' Head:%s, SkillCount:%d, SkillID:%s '''\ %( self.Head.OutputString(), self.SkillCount, "..." ) return DumpString m_NAtagSkillInit=tagSkillInit() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSkillInit.Head.Cmd,m_NAtagSkillInit.Head.SubCmd))] = m_NAtagSkillInit #------------------------------------------------------ #03 39 ÓÎÀú½­ºþÈÎÎñÐÅÏ¢#tagExpTaskInfo class tagExpTaskInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("LeftCount", c_int), #Ê£Óà´ÎÊý ] def __init__(self): self.Clear() self.Cmd = 0x03 self.SubCmd = 0x39 return def 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 = 0x03 self.SubCmd = 0x39 self.LeftCount = 0 return def GetLength(self): return sizeof(tagExpTaskInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//03 39 ÓÎÀú½­ºþÈÎÎñÐÅÏ¢//tagExpTaskInfo: Cmd:%s, SubCmd:%s, LeftCount:%d '''\ %( self.Cmd, self.SubCmd, self.LeftCount ) return DumpString m_NAtagExpTaskInfo=tagExpTaskInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagExpTaskInfo.Cmd,m_NAtagExpTaskInfo.SubCmd))] = m_NAtagExpTaskInfo #------------------------------------------------------ #03 38 ¸±±¾»î¶¯Áбí#tagFBEventList class tagFBEventDetail(Structure): _pack_ = 1 _fields_ = [ ("FBID", c_int), #¸±±¾ID ("CurCount", c_int), #ÒÑÍê³É´ÎÊý ("MaxCount", 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.FBID = 0 self.CurCount = 0 self.MaxCount = 0 return def GetLength(self): return sizeof(tagFBEventDetail) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//03 38 ¸±±¾»î¶¯Áбí//tagFBEventList: FBID:%d, CurCount:%d, MaxCount:%d '''\ %( self.FBID, self.CurCount, self.MaxCount ) return DumpString class tagFBEventList(Structure): Head = tagHead() EventCount = 0 #(BYTE EventCount)//¸±±¾»î¶¯Êý EventList = list() #(vector EventList)//¸±±¾»î¶¯Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0x03 self.Head.SubCmd = 0x38 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.EventCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.EventCount): temEventList = tagFBEventDetail() _pos = temEventList.ReadData(_lpData, _pos) self.EventList.append(temEventList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x03 self.Head.SubCmd = 0x38 self.EventCount = 0 self.EventList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.EventCount): length += self.EventList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.EventCount) for i in range(self.EventCount): data = CommFunc.WriteString(data, self.EventList[i].GetLength(), self.EventList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, EventCount:%d, EventList:%s '''\ %( self.Head.OutputString(), self.EventCount, "..." ) return DumpString m_NAtagFBEventList=tagFBEventList() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagFBEventList.Head.Cmd,m_NAtagFBEventList.Head.SubCmd))] = m_NAtagFBEventList #------------------------------------------------------ #03 31 ¸±±¾Íæ¼Ò¼¤»îÌØÊâ¼¼ÄÜ״̬֪ͨ#tagFBSpecilSkillState class tagFBSpecilSkillState(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ushort), #¼¼ÄÜÀàÐÍ ("State", c_ubyte), #״̬:¿ª1¹Ø0 ] def __init__(self): self.Clear() self.Cmd = 0x03 self.SubCmd = 0x31 return def 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 = 0x03 self.SubCmd = 0x31 self.Type = 0 self.State = 0 return def GetLength(self): return sizeof(tagFBSpecilSkillState) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//03 31 ¸±±¾Íæ¼Ò¼¤»îÌØÊâ¼¼ÄÜ״̬֪ͨ//tagFBSpecilSkillState: Cmd:%s, SubCmd:%s, Type:%d, State:%d '''\ %( self.Cmd, self.SubCmd, self.Type, self.State ) return DumpString m_NAtagFBSpecilSkillState=tagFBSpecilSkillState() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagFBSpecilSkillState.Cmd,m_NAtagFBSpecilSkillState.SubCmd))] = m_NAtagFBSpecilSkillState #------------------------------------------------------ #03 2E ´ò¿ª¿Í»§¶ËðÅÝ#tagOpenBubble class tagOpenBubble(Structure): Head = tagHead() MsgLen = 0 #(BYTE MsgLen) Msg = "" #(String Msg)//size = MsgLen data = None def __init__(self): self.Clear() self.Head.Cmd = 0x03 self.Head.SubCmd = 0x2E return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.MsgLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Msg,_pos = CommFunc.ReadString(_lpData, _pos,self.MsgLen) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x03 self.Head.SubCmd = 0x2E self.MsgLen = 0 self.Msg = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += len(self.Msg) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.MsgLen) data = CommFunc.WriteString(data, self.MsgLen, self.Msg) return data def OutputString(self): DumpString = ''' Head:%s, MsgLen:%d, Msg:%s '''\ %( self.Head.OutputString(), self.MsgLen, self.Msg ) return DumpString m_NAtagOpenBubble=tagOpenBubble() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagOpenBubble.Head.Cmd,m_NAtagOpenBubble.Head.SubCmd))] = m_NAtagOpenBubble #------------------------------------------------------ #03 32 Éú²úϵͳ״̬»Ø±¨#tagProductionState class tagProductionState(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ("State", c_ubyte), #״̬:¿ª1¹Ø0 ] def __init__(self): self.Clear() self.Cmd = 0x03 self.SubCmd = 0x32 return def 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 = 0x03 self.SubCmd = 0x32 self.PlayerID = 0 self.State = 0 return def GetLength(self): return sizeof(tagProductionState) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//03 32 Éú²úϵͳ״̬»Ø±¨//tagProductionState: Cmd:%s, SubCmd:%s, PlayerID:%d, State:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID, self.State ) return DumpString m_NAtagProductionState=tagProductionState() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagProductionState.Cmd,m_NAtagProductionState.SubCmd))] = m_NAtagProductionState #------------------------------------------------------ #03 F0 PyÄ£Äâ·â°ü#tagPyFakePack class tagPyFakePack(Structure): Head = tagHead() MsgLen = 0 #(WORD MsgLen) Msg = "" #(String Msg)//size = MsgLen data = None def __init__(self): self.Clear() self.Head.Cmd = 0x03 self.Head.SubCmd = 0xF0 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.MsgLen,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Msg,_pos = CommFunc.ReadString(_lpData, _pos,self.MsgLen) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x03 self.Head.SubCmd = 0xF0 self.MsgLen = 0 self.Msg = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 length += len(self.Msg) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteWORD(data, self.MsgLen) data = CommFunc.WriteString(data, self.MsgLen, self.Msg) return data def OutputString(self): DumpString = ''' Head:%s, MsgLen:%d, Msg:%s '''\ %( self.Head.OutputString(), self.MsgLen, self.Msg ) return DumpString m_NAtagPyFakePack=tagPyFakePack() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPyFakePack.Head.Cmd,m_NAtagPyFakePack.Head.SubCmd))] = m_NAtagPyFakePack #------------------------------------------------------ #04 09 ÖÜÎ§Íæ¼ÒÐÅÏ¢(·ÏÆú)#tagAreaPlayerInfo class tagAreaPlayerInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ] def __init__(self): self.Clear() self.Cmd = 0x04 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 = 0x04 self.SubCmd = 0x09 self.PlayerID = 0 return def GetLength(self): return sizeof(tagAreaPlayerInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//04 09 ÖÜÎ§Íæ¼ÒÐÅÏ¢(·ÏÆú)//tagAreaPlayerInfo: Cmd:%s, SubCmd:%s, PlayerID:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID ) return DumpString m_NAtagAreaPlayerInfo=tagAreaPlayerInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagAreaPlayerInfo.Cmd,m_NAtagAreaPlayerInfo.SubCmd))] = m_NAtagAreaPlayerInfo #------------------------------------------------------ #04 01 ÈËÎïËùÔڵij¡¾°³õʼ»¯#tagPlayerMapInit class tagPlayerMapInit(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("MapID", c_int), ("PosX", c_ushort), ("PosY", c_ushort), ] def __init__(self): self.Clear() self.Cmd = 0x04 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 = 0x04 self.SubCmd = 0x01 self.MapID = 0 self.PosX = 0 self.PosY = 0 return def GetLength(self): return sizeof(tagPlayerMapInit) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//04 01 ÈËÎïËùÔڵij¡¾°³õʼ»¯//tagPlayerMapInit: Cmd:%s, SubCmd:%s, MapID:%d, PosX:%d, PosY:%d '''\ %( self.Cmd, self.SubCmd, self.MapID, self.PosX, self.PosY ) return DumpString m_NAtagPlayerMapInit=tagPlayerMapInit() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerMapInit.Cmd,m_NAtagPlayerMapInit.SubCmd))] = m_NAtagPlayerMapInit #------------------------------------------------------ #04 04 ÖÜÎ§Íæ¼Ò³öÏÖ#tagPlayerAppear class tagPlayerAppear(Structure): Head = tagHead() PlayerID = 0 #(DWORD PlayerID) Sex = 0 #(BYTE Sex) Len = 0 #(BYTE Len) Name = "" #(String Name)//size = Len IsAlive = 0 #(BYTE IsAlive)//Íæ¼ÒÊÇ·ñ»î×Å PosX = 0 #(WORD PosX) PosY = 0 #(WORD PosY) Speed = 0 #(WORD Speed)//ËÙ¶È Job = 0 #(BYTE Job)//Ö°Òµ PKValue = 0 #(WORD PKValue)//PKÖµ data = None def __init__(self): self.Clear() self.Head.Cmd = 0x04 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.Sex,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Len,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Name,_pos = CommFunc.ReadString(_lpData, _pos,self.Len) self.IsAlive,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.PosX,_pos = CommFunc.ReadWORD(_lpData, _pos) self.PosY,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Speed,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.PKValue,_pos = CommFunc.ReadWORD(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x04 self.Head.SubCmd = 0x04 self.PlayerID = 0 self.Sex = 0 self.Len = 0 self.Name = "" self.IsAlive = 0 self.PosX = 0 self.PosY = 0 self.Speed = 0 self.Job = 0 self.PKValue = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += 1 length += len(self.Name) length += 1 length += 2 length += 2 length += 2 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.Sex) data = CommFunc.WriteBYTE(data, self.Len) data = CommFunc.WriteString(data, self.Len, self.Name) data = CommFunc.WriteBYTE(data, self.IsAlive) data = CommFunc.WriteWORD(data, self.PosX) data = CommFunc.WriteWORD(data, self.PosY) data = CommFunc.WriteWORD(data, self.Speed) data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteWORD(data, self.PKValue) return data def OutputString(self): DumpString = ''' Head:%s, PlayerID:%d, Sex:%d, Len:%d, Name:%s, IsAlive:%d, PosX:%d, PosY:%d, Speed:%d, Job:%d, PKValue:%d '''\ %( self.Head.OutputString(), self.PlayerID, self.Sex, self.Len, self.Name, self.IsAlive, self.PosX, self.PosY, self.Speed, self.Job, self.PKValue ) return DumpString m_NAtagPlayerAppear=tagPlayerAppear() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerAppear.Head.Cmd,m_NAtagPlayerAppear.Head.SubCmd))] = m_NAtagPlayerAppear #------------------------------------------------------ #04 34 ÖÜÎ§Íæ¼Ò³öÏֺϲ¢·â°ü#tagAreaPlayerAppearEx class tagEquipInfo(Structure): _pack_ = 1 _fields_ = [ ("ItemID", 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.ItemID = 0 return def GetLength(self): return sizeof(tagEquipInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//04 34 ÖÜÎ§Íæ¼Ò³öÏֺϲ¢·â°ü//tagAreaPlayerAppearEx: ItemID:%d '''\ %( self.ItemID ) return DumpString class tagAreaPlayerBuff(Structure): _pack_ = 1 _fields_ = [ ("BuffType", c_ubyte), ("SkillID", c_ushort), ("RemainTime", c_int), ("OwnerID", c_int), # buffÀ´Ô´Õß ("OwnerType", 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.BuffType = 0 self.SkillID = 0 self.RemainTime = 0 self.OwnerID = 0 self.OwnerType = 0 return def GetLength(self): return sizeof(tagAreaPlayerBuff) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//04 34 ÖÜÎ§Íæ¼Ò³öÏֺϲ¢·â°ü//tagAreaPlayerAppearEx: BuffType:%d, SkillID:%d, RemainTime:%d, OwnerID:%d, OwnerType:%d '''\ %( self.BuffType, self.SkillID, self.RemainTime, self.OwnerID, self.OwnerType ) return DumpString class tagAreaPlayerAppearEx(Structure): Head = tagHead() PlayerID = 0 #(DWORD PlayerID) PlayerName = "" #(char PlayerName[33]) IsAlive = 0 #(BYTE IsAlive)//Íæ¼ÒÊÇ·ñ»î×Å PosX = 0 #(WORD PosX)// X×ø±ê PosY = 0 #(WORD PosY)// Y×ø±ê Speed = 0 #(WORD Speed)//ËÙ¶È ReincarnationLv = 0 #(WORD ReincarnationLv) LV = 0 #(WORD LV)//µÈ¼¶ Job = 0 #(BYTE Job) TeamLV = 0 #(BYTE TeamLV)//×é¶ÓµÈ¼¶ TeamID = 0 #(DWORD TeamID)//×é¶ÓID HP = 0 #(DWORD HP) MaxHP = 0 #(DWORD MaxHP) PlayerState = 0 #(BYTE PlayerState)//TClientPlayerState Íæ¼Ò״̬ ´ò×ø/ÂíÉÏ/ÈËïÚºÏÒ» IsHideMask = 0 #(BYTE IsHideMask) Country = 0 #(BYTE Country)//Íæ¼Ò¹ú¼Ò FamilyID = 0 #(DWORD FamilyID)//¼Ò×åID FamilyNameLen = 0 #(BYTE FamilyNameLen)//¼Ò×åÃû×Ö FamilyName = "" #(String FamilyName)//size = FamilyNameLen BuffCount = 0 #(BYTE BuffCount)//buff BuffList = list() #(vector BuffList)//size = BuffCount EquipCount = 0 #(BYTE EquipCount) EquipInfo = list() #(vector EquipInfo)//size = EquipCount IsVisible = 0 #(BYTE IsVisible)//ÊÇ·ñÒþÉí EquipShowSwitch = 0 #(DWORD EquipShowSwitch)//Íæ¼Ò×°±¸ÏÔʾ¿ª¹Ø FamilyMemberLV = 0 #(BYTE FamilyMemberLV)//¼Ò×å³ÉÔ±µÈ¼¶ Faction = 0 #(BYTE Faction)//ÕóÓª OfficialRank = 0 #(BYTE OfficialRank)//¹Ù½×£¬¹ÙÖ°µÈ¼¶ CurDienstgradID = 0 #(DWORD CurDienstgradID)//µ±Ç°×°±¸µÄ³ÆºÅÍ·ÏÎID ModelMark = 0 #(DWORD ModelMark)//±äÐÎÄ£ÐÍMark PKValue = 0 #(WORD PKValue)//PKÖµ GMLevel = 0 #(BYTE GMLevel)//GMµÈ¼¶, 0:²»ÊÇGM >=1 : GMµÄµÈ¼¶ AtkInterval = 0 #(DWORD AtkInterval)//¹¥»÷¼ä¸ô ExAttr1 = 0 #(DWORD ExAttr1)//Ô¤ÁôµÄÀ©Õ¹ÊôÐÔ×ֶΣ¬ÓÃÀ´´æ·ÅÏîÄ¿ÌØ¶¨µÄÊôÐÔ ExAttr2 = 0 #(DWORD ExAttr2)//Ô¤ÁôµÄÀ©Õ¹ÊôÐÔ×ֶΣ¬ÓÃÀ´´æ·ÅÏîÄ¿ÌØ¶¨µÄÊôÐÔ ExAttr3 = 0 #(DWORD ExAttr3)//Ô¤ÁôµÄÀ©Õ¹ÊôÐÔ×ֶΣ¬ÓÃÀ´´æ·ÅÏîÄ¿ÌØ¶¨µÄÊôÐÔ ExAttr4 = 0 #(DWORD ExAttr4)//Ô¤ÁôµÄÀ©Õ¹ÊôÐÔ×ֶΣ¬ÓÃÀ´´æ·ÅÏîÄ¿ÌØ¶¨µÄÊôÐÔ ExAttr5 = 0 #(DWORD ExAttr5)//Ô¤ÁôµÄÀ©Õ¹ÊôÐÔ×ֶΣ¬ÓÃÀ´´æ·ÅÏîÄ¿ÌØ¶¨µÄÊôÐÔ ServerID = 0 #(DWORD ServerID)//ËùÊôÇø·þID State = 0 #(BYTE State)// 0.Õý³£ÔÚÏß1.ÍÑ»ú¹ÒÔÚÏß 2ÍÑ»ú¹ÒËÀÍö 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 = 0x04 self.Head.SubCmd = 0x34 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.IsAlive,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.PosX,_pos = CommFunc.ReadWORD(_lpData, _pos) self.PosY,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Speed,_pos = CommFunc.ReadWORD(_lpData, _pos) self.ReincarnationLv,_pos = CommFunc.ReadWORD(_lpData, _pos) self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.TeamLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.TeamID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.HP,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MaxHP,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.PlayerState,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.IsHideMask,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Country,_pos = CommFunc.ReadBYTE(_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.BuffCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.BuffCount): temBuffList = tagAreaPlayerBuff() _pos = temBuffList.ReadData(_lpData, _pos) self.BuffList.append(temBuffList) self.EquipCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.EquipCount): temEquipInfo = tagEquipInfo() _pos = temEquipInfo.ReadData(_lpData, _pos) self.EquipInfo.append(temEquipInfo) self.IsVisible,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.EquipShowSwitch,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.FamilyMemberLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Faction,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.OfficialRank,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.CurDienstgradID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ModelMark,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.PKValue,_pos = CommFunc.ReadWORD(_lpData, _pos) self.GMLevel,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.AtkInterval,_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.ServerID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.State,_pos = CommFunc.ReadBYTE(_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 = 0x04 self.Head.SubCmd = 0x34 self.PlayerID = 0 self.PlayerName = "" self.IsAlive = 0 self.PosX = 0 self.PosY = 0 self.Speed = 0 self.ReincarnationLv = 0 self.LV = 0 self.Job = 0 self.TeamLV = 0 self.TeamID = 0 self.HP = 0 self.MaxHP = 0 self.PlayerState = 0 self.IsHideMask = 0 self.Country = 0 self.FamilyID = 0 self.FamilyNameLen = 0 self.FamilyName = "" self.BuffCount = 0 self.BuffList = list() self.EquipCount = 0 self.EquipInfo = list() self.IsVisible = 0 self.EquipShowSwitch = 0 self.FamilyMemberLV = 0 self.Faction = 0 self.OfficialRank = 0 self.CurDienstgradID = 0 self.ModelMark = 0 self.PKValue = 0 self.GMLevel = 0 self.AtkInterval = 0 self.ExAttr1 = 0 self.ExAttr2 = 0 self.ExAttr3 = 0 self.ExAttr4 = 0 self.ExAttr5 = 0 self.ServerID = 0 self.State = 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 += 4 length += 33 length += 1 length += 2 length += 2 length += 2 length += 2 length += 2 length += 1 length += 1 length += 4 length += 4 length += 4 length += 1 length += 1 length += 1 length += 4 length += 1 length += len(self.FamilyName) length += 1 for i in range(self.BuffCount): length += self.BuffList[i].GetLength() length += 1 for i in range(self.EquipCount): length += self.EquipInfo[i].GetLength() length += 1 length += 4 length += 1 length += 1 length += 1 length += 4 length += 4 length += 2 length += 1 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 1 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.WriteDWORD(data, self.PlayerID) data = CommFunc.WriteString(data, 33, self.PlayerName) data = CommFunc.WriteBYTE(data, self.IsAlive) data = CommFunc.WriteWORD(data, self.PosX) data = CommFunc.WriteWORD(data, self.PosY) data = CommFunc.WriteWORD(data, self.Speed) data = CommFunc.WriteWORD(data, self.ReincarnationLv) data = CommFunc.WriteWORD(data, self.LV) data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteBYTE(data, self.TeamLV) data = CommFunc.WriteDWORD(data, self.TeamID) data = CommFunc.WriteDWORD(data, self.HP) data = CommFunc.WriteDWORD(data, self.MaxHP) data = CommFunc.WriteBYTE(data, self.PlayerState) data = CommFunc.WriteBYTE(data, self.IsHideMask) data = CommFunc.WriteBYTE(data, self.Country) data = CommFunc.WriteDWORD(data, self.FamilyID) data = CommFunc.WriteBYTE(data, self.FamilyNameLen) data = CommFunc.WriteString(data, self.FamilyNameLen, self.FamilyName) data = CommFunc.WriteBYTE(data, self.BuffCount) for i in range(self.BuffCount): data = CommFunc.WriteString(data, self.BuffList[i].GetLength(), self.BuffList[i].GetBuffer()) data = CommFunc.WriteBYTE(data, self.EquipCount) for i in range(self.EquipCount): data = CommFunc.WriteString(data, self.EquipInfo[i].GetLength(), self.EquipInfo[i].GetBuffer()) data = CommFunc.WriteBYTE(data, self.IsVisible) data = CommFunc.WriteDWORD(data, self.EquipShowSwitch) data = CommFunc.WriteBYTE(data, self.FamilyMemberLV) data = CommFunc.WriteBYTE(data, self.Faction) data = CommFunc.WriteBYTE(data, self.OfficialRank) data = CommFunc.WriteDWORD(data, self.CurDienstgradID) data = CommFunc.WriteDWORD(data, self.ModelMark) data = CommFunc.WriteWORD(data, self.PKValue) data = CommFunc.WriteBYTE(data, self.GMLevel) data = CommFunc.WriteDWORD(data, self.AtkInterval) 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.WriteDWORD(data, self.ServerID) data = CommFunc.WriteBYTE(data, self.State) 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, PlayerID:%d, PlayerName:%s, IsAlive:%d, PosX:%d, PosY:%d, Speed:%d, ReincarnationLv:%d, LV:%d, Job:%d, TeamLV:%d, TeamID:%d, HP:%d, MaxHP:%d, PlayerState:%d, IsHideMask:%d, Country:%d, FamilyID:%d, FamilyNameLen:%d, FamilyName:%s, BuffCount:%d, BuffList:%s, EquipCount:%d, EquipInfo:%s, IsVisible:%d, EquipShowSwitch:%d, FamilyMemberLV:%d, Faction:%d, OfficialRank:%d, CurDienstgradID:%d, ModelMark:%d, PKValue:%d, GMLevel:%d, AtkInterval:%d, ExAttr1:%d, ExAttr2:%d, ExAttr3:%d, ExAttr4:%d, ExAttr5:%d, ServerID:%d, State:%d, ExAttr15:%d, ExAttr16:%d, ExAttr17:%d, ExAttr18:%d, ExAttr19:%d, ExAttr20:%d '''\ %( self.Head.OutputString(), self.PlayerID, self.PlayerName, self.IsAlive, self.PosX, self.PosY, self.Speed, self.ReincarnationLv, self.LV, self.Job, self.TeamLV, self.TeamID, self.HP, self.MaxHP, self.PlayerState, self.IsHideMask, self.Country, self.FamilyID, self.FamilyNameLen, self.FamilyName, self.BuffCount, "...", self.EquipCount, "...", self.IsVisible, self.EquipShowSwitch, self.FamilyMemberLV, self.Faction, self.OfficialRank, self.CurDienstgradID, self.ModelMark, self.PKValue, self.GMLevel, self.AtkInterval, self.ExAttr1, self.ExAttr2, self.ExAttr3, self.ExAttr4, self.ExAttr5, self.ServerID, self.State, self.ExAttr15, self.ExAttr16, self.ExAttr17, self.ExAttr18, self.ExAttr19, self.ExAttr20 ) return DumpString m_NAtagAreaPlayerAppearEx=tagAreaPlayerAppearEx() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagAreaPlayerAppearEx.Head.Cmd,m_NAtagAreaPlayerAppearEx.Head.SubCmd))] = m_NAtagAreaPlayerAppearEx #------------------------------------------------------ #04 05 ÖÜÎ§Íæ¼ÒÏûʧ#tagPlayerDisappear class tagPlayerDisappear(Structure): Head = tagHead() PlayerCount = 0 #(BYTE PlayerCount) Players = list() #(vector Players)//size = PlayerCount data = None def __init__(self): self.Clear() self.Head.Cmd = 0x04 self.Head.SubCmd = 0x05 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): value,_pos=CommFunc.ReadDWORD(_lpData,_pos) self.Players.append(value) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x04 self.Head.SubCmd = 0x05 self.PlayerCount = 0 self.Players = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 4 * self.PlayerCount 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.WriteDWORD(data, self.Players[i]) return data def OutputString(self): DumpString = ''' Head:%s, PlayerCount:%d, Players:%s '''\ %( self.Head.OutputString(), self.PlayerCount, "..." ) return DumpString m_NAtagPlayerDisappear=tagPlayerDisappear() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerDisappear.Head.Cmd,m_NAtagPlayerDisappear.Head.SubCmd))] = m_NAtagPlayerDisappear #------------------------------------------------------ #04 26 ɾ³ýÎïÆ·Ìáʾ#tagDelItemView class tagDelItemView(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ItemID", c_int), ("Count", c_int), ] def __init__(self): self.Clear() self.Cmd = 0x04 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 = 0x04 self.SubCmd = 0x26 self.ItemID = 0 self.Count = 0 return def GetLength(self): return sizeof(tagDelItemView) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//04 26 ɾ³ýÎïÆ·Ìáʾ//tagDelItemView: Cmd:%s, SubCmd:%s, ItemID:%d, Count:%d '''\ %( self.Cmd, self.SubCmd, self.ItemID, self.Count ) return DumpString m_NAtagDelItemView=tagDelItemView() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagDelItemView.Cmd,m_NAtagDelItemView.SubCmd))] = m_NAtagDelItemView #------------------------------------------------------ #04 33 ÌßÍæ¼ÒÏÂÂí#tagDownHorse class tagDownHorse(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ("PosX", c_ushort), ("PosY", c_ushort), ] def __init__(self): self.Clear() self.Cmd = 0x04 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 = 0x04 self.SubCmd = 0x33 self.PlayerID = 0 self.PosX = 0 self.PosY = 0 return def GetLength(self): return sizeof(tagDownHorse) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//04 33 ÌßÍæ¼ÒÏÂÂí//tagDownHorse: Cmd:%s, SubCmd:%s, PlayerID:%d, PosX:%d, PosY:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID, self.PosX, self.PosY ) return DumpString m_NAtagDownHorse=tagDownHorse() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagDownHorse.Cmd,m_NAtagDownHorse.SubCmd))] = m_NAtagDownHorse #------------------------------------------------------ #04 25 ¾­ÑéÖµ¸Ä±ä֪ͨ#tagExpAddView class tagExpAddView(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Value", c_int), ] def __init__(self): self.Clear() self.Cmd = 0x04 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 = 0x04 self.SubCmd = 0x25 self.Value = 0 return def GetLength(self): return sizeof(tagExpAddView) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//04 25 ¾­ÑéÖµ¸Ä±ä֪ͨ//tagExpAddView: Cmd:%s, SubCmd:%s, Value:%d '''\ %( self.Cmd, self.SubCmd, self.Value ) return DumpString m_NAtagExpAddView=tagExpAddView() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagExpAddView.Cmd,m_NAtagExpAddView.SubCmd))] = m_NAtagExpAddView #------------------------------------------------------ #04 27 »ñÈ¡ÆäËûÍæ¼ÒÐÅϢʧ°Ü#tagGetOtherInfoFail class tagGetOtherInfoFail(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ] def __init__(self): self.Clear() self.Cmd = 0x04 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 = 0x04 self.SubCmd = 0x27 self.PlayerID = 0 return def GetLength(self): return sizeof(tagGetOtherInfoFail) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//04 27 »ñÈ¡ÆäËûÍæ¼ÒÐÅϢʧ°Ü//tagGetOtherInfoFail: Cmd:%s, SubCmd:%s, PlayerID:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID ) return DumpString m_NAtagGetOtherInfoFail=tagGetOtherInfoFail() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGetOtherInfoFail.Cmd,m_NAtagGetOtherInfoFail.SubCmd))] = m_NAtagGetOtherInfoFail #------------------------------------------------------ #04 06 NPC³öÏÖ#tagNPCAppear class tagNPCAppear(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ObjID", c_int), ("NPCID", c_int), ("NPCHP", c_int), ("NPCHPEx", c_int), #À©Õ¹³¬¹ý20EѪÁ¿ ("MaxHP", c_int), #³É³¤ÐÍNPCÐèҪ֪ͨ ("MaxHPEx", c_int), #³¬¹ý20EѪÁ¿ ("CurLV", c_ushort), #³É³¤ÐÍNPC ("PosX", c_ushort), ("PosY", c_ushort), ("Speed", c_ushort), ] def __init__(self): self.Clear() self.Cmd = 0x04 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 = 0x04 self.SubCmd = 0x06 self.ObjID = 0 self.NPCID = 0 self.NPCHP = 0 self.NPCHPEx = 0 self.MaxHP = 0 self.MaxHPEx = 0 self.CurLV = 0 self.PosX = 0 self.PosY = 0 self.Speed = 0 return def GetLength(self): return sizeof(tagNPCAppear) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//04 06 NPC³öÏÖ//tagNPCAppear: Cmd:%s, SubCmd:%s, ObjID:%d, NPCID:%d, NPCHP:%d, NPCHPEx:%d, MaxHP:%d, MaxHPEx:%d, CurLV:%d, PosX:%d, PosY:%d, Speed:%d '''\ %( self.Cmd, self.SubCmd, self.ObjID, self.NPCID, self.NPCHP, self.NPCHPEx, self.MaxHP, self.MaxHPEx, self.CurLV, self.PosX, self.PosY, self.Speed ) return DumpString m_NAtagNPCAppear=tagNPCAppear() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagNPCAppear.Cmd,m_NAtagNPCAppear.SubCmd))] = m_NAtagNPCAppear #------------------------------------------------------ #04 17 NPCÐÅÏ¢#tagNPCDetail class tagNPCDetailBuff(Structure): _pack_ = 1 _fields_ = [ ("BuffType", c_ubyte), ("SkillID", c_ushort), ("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.BuffType = 0 self.SkillID = 0 self.RemainTime = 0 return def GetLength(self): return sizeof(tagNPCDetailBuff) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//04 17 NPCÐÅÏ¢//tagNPCDetail: BuffType:%d, SkillID:%d, RemainTime:%d '''\ %( self.BuffType, self.SkillID, self.RemainTime ) return DumpString class tagNPCDetail(Structure): Head = tagHead() ObjID = 0 #(DWORD ObjID) BuffCount = 0 #(BYTE BuffCount) NPCBuff = list() #(vector NPCBuff)//size = BuffCount data = None def __init__(self): self.Clear() self.Head.Cmd = 0x04 self.Head.SubCmd = 0x17 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.BuffCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.BuffCount): temNPCBuff = tagNPCDetailBuff() _pos = temNPCBuff.ReadData(_lpData, _pos) self.NPCBuff.append(temNPCBuff) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x04 self.Head.SubCmd = 0x17 self.ObjID = 0 self.BuffCount = 0 self.NPCBuff = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 for i in range(self.BuffCount): length += self.NPCBuff[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.BuffCount) for i in range(self.BuffCount): data = CommFunc.WriteString(data, self.NPCBuff[i].GetLength(), self.NPCBuff[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, ObjID:%d, BuffCount:%d, NPCBuff:%s '''\ %( self.Head.OutputString(), self.ObjID, self.BuffCount, "..." ) return DumpString m_NAtagNPCDetail=tagNPCDetail() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagNPCDetail.Head.Cmd,m_NAtagNPCDetail.Head.SubCmd))] = m_NAtagNPCDetail #------------------------------------------------------ #04 07 NPCÏûʧ#tagNPCDisappear class tagNPCDisappear(Structure): Head = tagHead() Count = 0 #(WORD Count) NPCID = list() #(vector NPCID)//size = Count data = None def __init__(self): self.Clear() self.Head.Cmd = 0x04 self.Head.SubCmd = 0x07 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): value,_pos=CommFunc.ReadDWORD(_lpData,_pos) self.NPCID.append(value) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x04 self.Head.SubCmd = 0x07 self.Count = 0 self.NPCID = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 length += 4 * self.Count 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.WriteDWORD(data, self.NPCID[i]) return data def OutputString(self): DumpString = ''' Head:%s, Count:%d, NPCID:%s '''\ %( self.Head.OutputString(), self.Count, "..." ) return DumpString m_NAtagNPCDisappear=tagNPCDisappear() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagNPCDisappear.Head.Cmd,m_NAtagNPCDisappear.Head.SubCmd))] = m_NAtagNPCDisappear #------------------------------------------------------ #04 38 NPCº°»°#tagNPCShout ¶ÔÐÔÄÜÓÐÒ»¶¨Ó°Ï죬ÇëÏÞ·¢ class tagNPCShout(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ObjID", c_int), #NPC¶ÔÏóID ("MsgID", c_int), #º°»°ÏûÏ¢ID ] def __init__(self): self.Clear() self.Cmd = 0x04 self.SubCmd = 0x38 return def 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 = 0x04 self.SubCmd = 0x38 self.ObjID = 0 self.MsgID = 0 return def GetLength(self): return sizeof(tagNPCShout) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//04 38 NPCº°»°//tagNPCShout ¶ÔÐÔÄÜÓÐÒ»¶¨Ó°Ï죬ÇëÏÞ·¢: Cmd:%s, SubCmd:%s, ObjID:%d, MsgID:%d '''\ %( self.Cmd, self.SubCmd, self.ObjID, self.MsgID ) return DumpString m_NAtagNPCShout=tagNPCShout() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagNPCShout.Cmd,m_NAtagNPCShout.SubCmd))] = m_NAtagNPCShout #------------------------------------------------------ #04 29 ¶ÔÏóÖØÖÃ×Ô¼ºÎ»ÖÃ#tagObjResetPos class tagObjResetPos(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ObjID", c_int), #¶ÔÏóID ("ObjType", c_ubyte), #¶ÔÏóÀàÐÍ ("PosX", c_ushort), ("PosY", c_ushort), ("Reason", c_int), # 0ΪÓÎϷͨÓã¬ÆäËûδ¾ö¶¨µÄΪ¼¼ÄÜID ] def __init__(self): self.Clear() self.Cmd = 0x04 self.SubCmd = 0x29 return def 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 = 0x04 self.SubCmd = 0x29 self.ObjID = 0 self.ObjType = 0 self.PosX = 0 self.PosY = 0 self.Reason = 0 return def GetLength(self): return sizeof(tagObjResetPos) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//04 29 ¶ÔÏóÖØÖÃ×Ô¼ºÎ»ÖÃ//tagObjResetPos: Cmd:%s, SubCmd:%s, ObjID:%d, ObjType:%d, PosX:%d, PosY:%d, Reason:%d '''\ %( self.Cmd, self.SubCmd, self.ObjID, self.ObjType, self.PosX, self.PosY, self.Reason ) return DumpString m_NAtagObjResetPos=tagObjResetPos() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagObjResetPos.Cmd,m_NAtagObjResetPos.SubCmd))] = m_NAtagObjResetPos #------------------------------------------------------ #04 35 ³èÎï³öÏÖ#tagPetAppear class tagPetAppear(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PetID", c_int), # ³èÎïID ("NPCID", c_int), # NPCID ("PlayerID", c_int), # Ö÷ÈËID ("PosX", c_int), # X×ø±ê ("PosY", c_int), # Y×ø±ê ("Rank", c_ubyte), #½×¶Î ] def __init__(self): self.Clear() self.Cmd = 0x04 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 = 0x04 self.SubCmd = 0x35 self.PetID = 0 self.NPCID = 0 self.PlayerID = 0 self.PosX = 0 self.PosY = 0 self.Rank = 0 return def GetLength(self): return sizeof(tagPetAppear) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//04 35 ³èÎï³öÏÖ//tagPetAppear: Cmd:%s, SubCmd:%s, PetID:%d, NPCID:%d, PlayerID:%d, PosX:%d, PosY:%d, Rank:%d '''\ %( self.Cmd, self.SubCmd, self.PetID, self.NPCID, self.PlayerID, self.PosX, self.PosY, self.Rank ) return DumpString m_NAtagPetAppear=tagPetAppear() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPetAppear.Cmd,m_NAtagPetAppear.SubCmd))] = m_NAtagPetAppear #------------------------------------------------------ #04 18 ÖÜΧ¶ÔÏóË¢ÐÂ#tagObjInfoRefresh class tagObjInfoRefresh(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ObjID", c_int), ("ObjType", c_ubyte), ("RefreshType", c_ubyte), ("Value", c_int), ] def __init__(self): self.Clear() self.Cmd = 0x04 self.SubCmd = 0x18 return def 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 = 0x04 self.SubCmd = 0x18 self.ObjID = 0 self.ObjType = 0 self.RefreshType = 0 self.Value = 0 return def GetLength(self): return sizeof(tagObjInfoRefresh) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//04 18 ÖÜΧ¶ÔÏóË¢ÐÂ//tagObjInfoRefresh: Cmd:%s, SubCmd:%s, ObjID:%d, ObjType:%d, RefreshType:%d, Value:%d '''\ %( self.Cmd, self.SubCmd, self.ObjID, self.ObjType, self.RefreshType, self.Value ) return DumpString m_NAtagObjInfoRefresh=tagObjInfoRefresh() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagObjInfoRefresh.Cmd,m_NAtagObjInfoRefresh.SubCmd))] = m_NAtagObjInfoRefresh #------------------------------------------------------ #04 13 Íæ¼Ò»»×°#tagPlayerChangeEquip class tagPlayerChangeEquip(Structure): Head = tagHead() PlayerID = 0 #(DWORD PlayerID) EquipID = 0 #(DWORD EquipID) EquipIndex = 0 #(BYTE EquipIndex)//×°±¸Ë÷Òý ItemStarLV = 0 #(BYTE ItemStarLV)//×°±¸ÐǼ¶ HoleCount = 0 #(BYTE HoleCount)//¿×Êý StoneCount = 0 #(BYTE StoneCount)//ÏâǶ±¦Ê¯ÊýÁ¿ UserDataLen = 0 #(DWORD UserDataLen) UserData = "" #(String UserData)// ¸½¼ÓÊý¾Ý data = None def __init__(self): self.Clear() self.Head.Cmd = 0x04 self.Head.SubCmd = 0x13 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.EquipID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.EquipIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ItemStarLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.HoleCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.StoneCount,_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.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x04 self.Head.SubCmd = 0x13 self.PlayerID = 0 self.EquipID = 0 self.EquipIndex = 0 self.ItemStarLV = 0 self.HoleCount = 0 self.StoneCount = 0 self.UserDataLen = 0 self.UserData = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 4 length += 1 length += 1 length += 1 length += 1 length += 4 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.PlayerID) data = CommFunc.WriteDWORD(data, self.EquipID) data = CommFunc.WriteBYTE(data, self.EquipIndex) data = CommFunc.WriteBYTE(data, self.ItemStarLV) data = CommFunc.WriteBYTE(data, self.HoleCount) data = CommFunc.WriteBYTE(data, self.StoneCount) data = CommFunc.WriteDWORD(data, self.UserDataLen) data = CommFunc.WriteString(data, self.UserDataLen, self.UserData) return data def OutputString(self): DumpString = ''' Head:%s, PlayerID:%d, EquipID:%d, EquipIndex:%d, ItemStarLV:%d, HoleCount:%d, StoneCount:%d, UserDataLen:%d, UserData:%s '''\ %( self.Head.OutputString(), self.PlayerID, self.EquipID, self.EquipIndex, self.ItemStarLV, self.HoleCount, self.StoneCount, self.UserDataLen, self.UserData ) return DumpString m_NAtagPlayerChangeEquip=tagPlayerChangeEquip() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerChangeEquip.Head.Cmd,m_NAtagPlayerChangeEquip.Head.SubCmd))] = m_NAtagPlayerChangeEquip #------------------------------------------------------ #04 39 ÖÜÎ§Íæ¼Òµ±Ç°×°±¸Í·ÏÎË¢ÐÂ#tagPlayerChangeDienstgrad class tagPlayerChangeDienstgrad(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), #Íæ¼ÒID ("GradID", c_int), #Í·ÏÎID,δװ±¸Í·ÏÎÔòΪ0 ] def __init__(self): self.Clear() self.Cmd = 0x04 self.SubCmd = 0x39 return def 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 = 0x04 self.SubCmd = 0x39 self.PlayerID = 0 self.GradID = 0 return def GetLength(self): return sizeof(tagPlayerChangeDienstgrad) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//04 39 ÖÜÎ§Íæ¼Òµ±Ç°×°±¸Í·ÏÎË¢ÐÂ//tagPlayerChangeDienstgrad: Cmd:%s, SubCmd:%s, PlayerID:%d, GradID:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID, self.GradID ) return DumpString m_NAtagPlayerChangeDienstgrad=tagPlayerChangeDienstgrad() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerChangeDienstgrad.Cmd,m_NAtagPlayerChangeDienstgrad.SubCmd))] = m_NAtagPlayerChangeDienstgrad #------------------------------------------------------ #04 21 Íæ¼ÒÌøÎè/µöÓ㿪ʼ#tagStartGameEvent class tagStartGameEvent(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ("Type", c_ubyte), #ÓÎϷʼþ Type = TGameEvent ] def __init__(self): self.Clear() self.Cmd = 0x04 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 = 0x04 self.SubCmd = 0x21 self.PlayerID = 0 self.Type = 0 return def GetLength(self): return sizeof(tagStartGameEvent) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//04 21 Íæ¼ÒÌøÎè/µöÓ㿪ʼ//tagStartGameEvent: Cmd:%s, SubCmd:%s, PlayerID:%d, Type:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID, self.Type ) return DumpString m_NAtagStartGameEvent=tagStartGameEvent() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagStartGameEvent.Cmd,m_NAtagStartGameEvent.SubCmd))] = m_NAtagStartGameEvent #------------------------------------------------------ #04 37 ÖÜÎ§Íæ¼Ò¼Ò×åְλˢÐÂ#tagPlayerFamilyMemberLVRefresh class tagPlayerFamilyMemberLVRefresh(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ("FamilyMemberLV", c_ubyte), #Íæ¼ÒÔÚ¼Ò×åÖеÄְλ ] def __init__(self): self.Clear() self.Cmd = 0x04 self.SubCmd = 0x37 return def 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 = 0x04 self.SubCmd = 0x37 self.PlayerID = 0 self.FamilyMemberLV = 0 return def GetLength(self): return sizeof(tagPlayerFamilyMemberLVRefresh) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//04 37 ÖÜÎ§Íæ¼Ò¼Ò×åְλˢÐÂ//tagPlayerFamilyMemberLVRefresh: Cmd:%s, SubCmd:%s, PlayerID:%d, FamilyMemberLV:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID, self.FamilyMemberLV ) return DumpString m_NAtagPlayerFamilyMemberLVRefresh=tagPlayerFamilyMemberLVRefresh() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerFamilyMemberLVRefresh.Cmd,m_NAtagPlayerFamilyMemberLVRefresh.SubCmd))] = m_NAtagPlayerFamilyMemberLVRefresh #------------------------------------------------------ #04 36 ÖÜÎ§Íæ¼Ò¼Ò×åÃûË¢ÐÂ#tagPlayerFamilyNameRefresh class tagPlayerFamilyNameRefresh(Structure): Head = tagHead() PlayerID = 0 #(DWORD PlayerID) FamilyNameLen = 0 #(BYTE FamilyNameLen) FamilyName = "" #(String FamilyName)//size = FamilyNameLen data = None def __init__(self): self.Clear() self.Head.Cmd = 0x04 self.Head.SubCmd = 0x36 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.FamilyNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.FamilyName,_pos = CommFunc.ReadString(_lpData, _pos,self.FamilyNameLen) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x04 self.Head.SubCmd = 0x36 self.PlayerID = 0 self.FamilyNameLen = 0 self.FamilyName = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += len(self.FamilyName) 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.FamilyNameLen) data = CommFunc.WriteString(data, self.FamilyNameLen, self.FamilyName) return data def OutputString(self): DumpString = ''' Head:%s, PlayerID:%d, FamilyNameLen:%d, FamilyName:%s '''\ %( self.Head.OutputString(), self.PlayerID, self.FamilyNameLen, self.FamilyName ) return DumpString m_NAtagPlayerFamilyNameRefresh=tagPlayerFamilyNameRefresh() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerFamilyNameRefresh.Head.Cmd,m_NAtagPlayerFamilyNameRefresh.Head.SubCmd))] = m_NAtagPlayerFamilyNameRefresh #------------------------------------------------------ #04 30 Íæ¼Ò¼Ò×åÃû×ÖְλµÈÐÅϢˢÐÂ#tagPlayerInFamilyInfoRefresh class tagPlayerInFamilyInfoRefresh(Structure): Head = tagHead() PlayerID = 0 #(DWORD PlayerID) FamilyNameLen = 0 #(BYTE FamilyNameLen) FamilyName = "" #(String FamilyName)//size = FamilyNameLen FamilyMemberLV = 0 #(BYTE FamilyMemberLV)//Íæ¼ÒÔÚ¼Ò×åÖеÄְλ data = None def __init__(self): self.Clear() self.Head.Cmd = 0x04 self.Head.SubCmd = 0x30 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.FamilyNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.FamilyName,_pos = CommFunc.ReadString(_lpData, _pos,self.FamilyNameLen) self.FamilyMemberLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x04 self.Head.SubCmd = 0x30 self.PlayerID = 0 self.FamilyNameLen = 0 self.FamilyName = "" self.FamilyMemberLV = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += len(self.FamilyName) length += 1 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.PlayerID) data = CommFunc.WriteBYTE(data, self.FamilyNameLen) data = CommFunc.WriteString(data, self.FamilyNameLen, self.FamilyName) data = CommFunc.WriteBYTE(data, self.FamilyMemberLV) return data def OutputString(self): DumpString = ''' Head:%s, PlayerID:%d, FamilyNameLen:%d, FamilyName:%s, FamilyMemberLV:%d '''\ %( self.Head.OutputString(), self.PlayerID, self.FamilyNameLen, self.FamilyName, self.FamilyMemberLV ) return DumpString m_NAtagPlayerInFamilyInfoRefresh=tagPlayerInFamilyInfoRefresh() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerInFamilyInfoRefresh.Head.Cmd,m_NAtagPlayerInFamilyInfoRefresh.Head.SubCmd))] = m_NAtagPlayerInFamilyInfoRefresh #------------------------------------------------------ #04 03 Íæ¼ÒµÇ¼Êý¾Ý·¢ËÍÍê±ÏOK#tagPlayerLoginLoadOK class tagPlayerLoginLoadOK(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0x04 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 = 0x04 self.SubCmd = 0x03 self.Type = 0 return def GetLength(self): return sizeof(tagPlayerLoginLoadOK) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//04 03 Íæ¼ÒµÇ¼Êý¾Ý·¢ËÍÍê±ÏOK//tagPlayerLoginLoadOK: Cmd:%s, SubCmd:%s, Type:%d '''\ %( self.Cmd, self.SubCmd, self.Type ) return DumpString m_NAtagPlayerLoginLoadOK=tagPlayerLoginLoadOK() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerLoginLoadOK.Cmd,m_NAtagPlayerLoginLoadOK.SubCmd))] = m_NAtagPlayerLoginLoadOK #------------------------------------------------------ #04 19 Íæ¼ÒÖØÉú#tagPlayerReborn class tagPlayerReborn(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ("Type", c_ubyte), #¸´»îÀàÐÍ ("PosX", c_ushort), ("PosY", c_ushort), ] def __init__(self): self.Clear() self.Cmd = 0x04 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 = 0x04 self.SubCmd = 0x19 self.PlayerID = 0 self.Type = 0 self.PosX = 0 self.PosY = 0 return def GetLength(self): return sizeof(tagPlayerReborn) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//04 19 Íæ¼ÒÖØÉú//tagPlayerReborn: Cmd:%s, SubCmd:%s, PlayerID:%d, Type:%d, PosX:%d, PosY:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID, self.Type, self.PosX, self.PosY ) return DumpString m_NAtagPlayerReborn=tagPlayerReborn() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerReborn.Cmd,m_NAtagPlayerReborn.SubCmd))] = m_NAtagPlayerReborn #------------------------------------------------------ #04 28 Íæ¼ÒÉÏÂí#tagPlayerRideHorse class tagPlayerRideHorse(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ("Ride", c_ubyte), #1: ÉÏÂí 0:ÏÂÂí ] def __init__(self): self.Clear() self.Cmd = 0x04 self.SubCmd = 0x28 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0x04 self.SubCmd = 0x28 self.PlayerID = 0 self.Ride = 0 return def GetLength(self): return sizeof(tagPlayerRideHorse) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//04 28 Íæ¼ÒÉÏÂí//tagPlayerRideHorse: Cmd:%s, SubCmd:%s, PlayerID:%d, Ride:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID, self.Ride ) return DumpString m_NAtagPlayerRideHorse=tagPlayerRideHorse() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerRideHorse.Cmd,m_NAtagPlayerRideHorse.SubCmd))] = m_NAtagPlayerRideHorse #------------------------------------------------------ #04 11 Íæ¼Ò×øÏÂ/Õ¾Á¢#tagPlayerSit class tagPlayerSit(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ("Type", c_ubyte), #0 : ×øÏ 1:Õ¾Á¢ ] def __init__(self): self.Clear() self.Cmd = 0x04 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 = 0x04 self.SubCmd = 0x11 self.PlayerID = 0 self.Type = 0 return def GetLength(self): return sizeof(tagPlayerSit) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//04 11 Íæ¼Ò×øÏÂ/Õ¾Á¢//tagPlayerSit: Cmd:%s, SubCmd:%s, PlayerID:%d, Type:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID, self.Type ) return DumpString m_NAtagPlayerSit=tagPlayerSit() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerSit.Cmd,m_NAtagPlayerSit.SubCmd))] = m_NAtagPlayerSit #------------------------------------------------------ #04 15 Íæ¼ÒжÏÂ×°±¸#tagPlayerUnEquipItem class tagPlayerUnEquipItem(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ("EquipID", c_int), ("EquipIndex", c_ubyte), #×°±¸Ë÷Òý ] def __init__(self): self.Clear() self.Cmd = 0x04 self.SubCmd = 0x15 return def 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 = 0x04 self.SubCmd = 0x15 self.PlayerID = 0 self.EquipID = 0 self.EquipIndex = 0 return def GetLength(self): return sizeof(tagPlayerUnEquipItem) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//04 15 Íæ¼ÒжÏÂ×°±¸//tagPlayerUnEquipItem: Cmd:%s, SubCmd:%s, PlayerID:%d, EquipID:%d, EquipIndex:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID, self.EquipID, self.EquipIndex ) return DumpString m_NAtagPlayerUnEquipItem=tagPlayerUnEquipItem() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerUnEquipItem.Cmd,m_NAtagPlayerUnEquipItem.SubCmd))] = m_NAtagPlayerUnEquipItem #------------------------------------------------------ #04 22 Íæ¼ÒʹÓõ°°×#tagPlayerUseFastRestore class tagPlayerUseFastRestore(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ("Type", c_ubyte), #1. ºìµ°°× 2. À¶µ°°× ("Value", c_int), ] def __init__(self): self.Clear() self.Cmd = 0x04 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 = 0x04 self.SubCmd = 0x22 self.PlayerID = 0 self.Type = 0 self.Value = 0 return def GetLength(self): return sizeof(tagPlayerUseFastRestore) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//04 22 Íæ¼ÒʹÓõ°°×//tagPlayerUseFastRestore: Cmd:%s, SubCmd:%s, PlayerID:%d, Type:%d, Value:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID, self.Type, self.Value ) return DumpString m_NAtagPlayerUseFastRestore=tagPlayerUseFastRestore() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerUseFastRestore.Cmd,m_NAtagPlayerUseFastRestore.SubCmd))] = m_NAtagPlayerUseFastRestore #------------------------------------------------------ #04 23 ¶ÔÏó״̬ˢÐÂ֪ͨ(Ö»ÏÔʾ)#tagObjPropertyRefreshView class tagObjPropertyRefreshView(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ObjID", c_int), #¶ÔÏóID ("ObjType", c_ubyte), #¶ÔÏóÀàÐÍ ("SkillID", c_int), #¼¼ÄÜID ("DiffValue", c_int), #Öµ ("AttackType", c_ubyte), #¹¥»÷ÀàÐÍ ("SrcObjID", c_int), #ƮѪÀ´Ô´ ("SrcObjType", c_ubyte), ("HP", c_int), #Ê£ÓàѪÁ¿ ("HPEx", c_int), #Ê£ÓàѪÁ¿ ÒÚ ] def __init__(self): self.Clear() self.Cmd = 0x04 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 = 0x04 self.SubCmd = 0x23 self.ObjID = 0 self.ObjType = 0 self.SkillID = 0 self.DiffValue = 0 self.AttackType = 0 self.SrcObjID = 0 self.SrcObjType = 0 self.HP = 0 self.HPEx = 0 return def GetLength(self): return sizeof(tagObjPropertyRefreshView) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//04 23 ¶ÔÏó״̬ˢÐÂ֪ͨ(Ö»ÏÔʾ)//tagObjPropertyRefreshView: Cmd:%s, SubCmd:%s, ObjID:%d, ObjType:%d, SkillID:%d, DiffValue:%d, AttackType:%d, SrcObjID:%d, SrcObjType:%d, HP:%d, HPEx:%d '''\ %( self.Cmd, self.SubCmd, self.ObjID, self.ObjType, self.SkillID, self.DiffValue, self.AttackType, self.SrcObjID, self.SrcObjType, self.HP, self.HPEx ) return DumpString m_NAtagObjPropertyRefreshView=tagObjPropertyRefreshView() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagObjPropertyRefreshView.Cmd,m_NAtagObjPropertyRefreshView.SubCmd))] = m_NAtagObjPropertyRefreshView #------------------------------------------------------ #04 02 Ë¢ÐÂÈËÎïÔÚ±¾µØÍ¼ÖеÄλÖÃ#tagPlayerResetPos class tagPlayerResetPos(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PosX", c_int), ("PosY", c_int), ] def __init__(self): self.Clear() self.Cmd = 0x04 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 = 0x04 self.SubCmd = 0x02 self.PosX = 0 self.PosY = 0 return def GetLength(self): return sizeof(tagPlayerResetPos) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//04 02 Ë¢ÐÂÈËÎïÔÚ±¾µØÍ¼ÖеÄλÖÃ//tagPlayerResetPos: Cmd:%s, SubCmd:%s, PosX:%d, PosY:%d '''\ %( self.Cmd, self.SubCmd, self.PosX, self.PosY ) return DumpString m_NAtagPlayerResetPos=tagPlayerResetPos() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerResetPos.Cmd,m_NAtagPlayerResetPos.SubCmd))] = m_NAtagPlayerResetPos #------------------------------------------------------ #04 20 Íæ¼Ò¶¯×÷#tagPlayerShowFace class tagPlayerShowFace(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ("Type", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0x04 self.SubCmd = 0x20 return def 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 = 0x04 self.SubCmd = 0x20 self.PlayerID = 0 self.Type = 0 return def GetLength(self): return sizeof(tagPlayerShowFace) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//04 20 Íæ¼Ò¶¯×÷//tagPlayerShowFace: Cmd:%s, SubCmd:%s, PlayerID:%d, Type:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID, self.Type ) return DumpString m_NAtagPlayerShowFace=tagPlayerShowFace() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerShowFace.Cmd,m_NAtagPlayerShowFace.SubCmd))] = m_NAtagPlayerShowFace #------------------------------------------------------ #04 08 Íæ¼ÒÕÙ»½NPC³öÏÖ#tagPlayerSummonNPCAppear class tagPlayerSummonNPCAppear(Structure): Head = tagHead() PlayerID = 0 #(DWORD PlayerID) Country = 0 #(BYTE Country) ObjID = 0 #(DWORD ObjID)//ÕÙ»½³öÀ´µÄNPCID NPCID = 0 #(DWORD NPCID) PosX = 0 #(WORD PosX) PosY = 0 #(WORD PosY) HP = 0 #(DWORD HP) HPEx = 0 #(DWORD HPEx) MaxHP = 0 #(DWORD MaxHP) MaxHPEx = 0 #(DWORD MaxHPEx) Speed = 0 #(WORD Speed) LV = 0 #(WORD LV) OwnerNameLen = 0 #(BYTE OwnerNameLen) OwnerName = "" #(String OwnerName)//size = OwnerNameLen data = None def __init__(self): self.Clear() self.Head.Cmd = 0x04 self.Head.SubCmd = 0x08 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.Country,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ObjID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.NPCID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.PosX,_pos = CommFunc.ReadWORD(_lpData, _pos) self.PosY,_pos = CommFunc.ReadWORD(_lpData, _pos) self.HP,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.HPEx,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MaxHP,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MaxHPEx,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Speed,_pos = CommFunc.ReadWORD(_lpData, _pos) self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.OwnerNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.OwnerName,_pos = CommFunc.ReadString(_lpData, _pos,self.OwnerNameLen) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x04 self.Head.SubCmd = 0x08 self.PlayerID = 0 self.Country = 0 self.ObjID = 0 self.NPCID = 0 self.PosX = 0 self.PosY = 0 self.HP = 0 self.HPEx = 0 self.MaxHP = 0 self.MaxHPEx = 0 self.Speed = 0 self.LV = 0 self.OwnerNameLen = 0 self.OwnerName = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += 4 length += 4 length += 2 length += 2 length += 4 length += 4 length += 4 length += 4 length += 2 length += 2 length += 1 length += len(self.OwnerName) 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.Country) data = CommFunc.WriteDWORD(data, self.ObjID) data = CommFunc.WriteDWORD(data, self.NPCID) data = CommFunc.WriteWORD(data, self.PosX) data = CommFunc.WriteWORD(data, self.PosY) data = CommFunc.WriteDWORD(data, self.HP) data = CommFunc.WriteDWORD(data, self.HPEx) data = CommFunc.WriteDWORD(data, self.MaxHP) data = CommFunc.WriteDWORD(data, self.MaxHPEx) data = CommFunc.WriteWORD(data, self.Speed) data = CommFunc.WriteWORD(data, self.LV) data = CommFunc.WriteBYTE(data, self.OwnerNameLen) data = CommFunc.WriteString(data, self.OwnerNameLen, self.OwnerName) return data def OutputString(self): DumpString = ''' Head:%s, PlayerID:%d, Country:%d, ObjID:%d, NPCID:%d, PosX:%d, PosY:%d, HP:%d, HPEx:%d, MaxHP:%d, MaxHPEx:%d, Speed:%d, LV:%d, OwnerNameLen:%d, OwnerName:%s '''\ %( self.Head.OutputString(), self.PlayerID, self.Country, self.ObjID, self.NPCID, self.PosX, self.PosY, self.HP, self.HPEx, self.MaxHP, self.MaxHPEx, self.Speed, self.LV, self.OwnerNameLen, self.OwnerName ) return DumpString m_NAtagPlayerSummonNPCAppear=tagPlayerSummonNPCAppear() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerSummonNPCAppear.Head.Cmd,m_NAtagPlayerSummonNPCAppear.Head.SubCmd))] = m_NAtagPlayerSummonNPCAppear #------------------------------------------------------ #04 40 ÖÜΧ¶ÔÏóˢУ¨Ö§³Ö´óÊýÖµ£© #tagObjInfoRefreshEx class tagObjInfoRefreshEx(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ObjID", c_int), ("ObjType", c_ubyte), ("RefreshType", c_ubyte), ("Value", c_int), ("ValueEx", c_int), ] def __init__(self): self.Clear() self.Cmd = 0x04 self.SubCmd = 0x40 return def 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 = 0x04 self.SubCmd = 0x40 self.ObjID = 0 self.ObjType = 0 self.RefreshType = 0 self.Value = 0 self.ValueEx = 0 return def GetLength(self): return sizeof(tagObjInfoRefreshEx) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//04 40 ÖÜΧ¶ÔÏóˢУ¨Ö§³Ö´óÊýÖµ£© //tagObjInfoRefreshEx: Cmd:%s, SubCmd:%s, ObjID:%d, ObjType:%d, RefreshType:%d, Value:%d, ValueEx:%d '''\ %( self.Cmd, self.SubCmd, self.ObjID, self.ObjType, self.RefreshType, self.Value, self.ValueEx ) return DumpString m_NAtagObjInfoRefreshEx=tagObjInfoRefreshEx() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagObjInfoRefreshEx.Cmd,m_NAtagObjInfoRefreshEx.SubCmd))] = m_NAtagObjInfoRefreshEx #------------------------------------------------------ #04 32 ʱÖÓ˳¼ÆÊ±#tagAddTimeTick class tagAddTimeTick(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ubyte), #TTimeTickType ("ID", c_int), ("Tick", c_int), ("IsContinue", c_ubyte), #ÊÇ·ñ¼ÌÐø, 0:Í£Ö¹, 1:¼ÌÐø ] def __init__(self): self.Clear() self.Cmd = 0x04 self.SubCmd = 0x32 return def 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 = 0x04 self.SubCmd = 0x32 self.Type = 0 self.ID = 0 self.Tick = 0 self.IsContinue = 0 return def GetLength(self): return sizeof(tagAddTimeTick) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//04 32 ʱÖÓ˳¼ÆÊ±//tagAddTimeTick : Cmd:%s, SubCmd:%s, Type:%d, ID:%d, Tick:%d, IsContinue:%d '''\ %( self.Cmd, self.SubCmd, self.Type, self.ID, self.Tick, self.IsContinue ) return DumpString m_NAtagAddTimeTick=tagAddTimeTick() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagAddTimeTick.Cmd,m_NAtagAddTimeTick.SubCmd))] = m_NAtagAddTimeTick #------------------------------------------------------ #04 31 µ¹¼ÆÊ±#tagTimeTick class tagTimeTick(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ubyte), #TTimeTickType ("ID", c_int), ("Tick", c_int), ("IsContinue", c_ubyte), #ÊÇ·ñ¼ÌÐø, 0:Í£Ö¹, 1:¼ÌÐø ] def __init__(self): self.Clear() self.Cmd = 0x04 self.SubCmd = 0x31 return def 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 = 0x04 self.SubCmd = 0x31 self.Type = 0 self.ID = 0 self.Tick = 0 self.IsContinue = 0 return def GetLength(self): return sizeof(tagTimeTick) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//04 31 µ¹¼ÆÊ±//tagTimeTick: Cmd:%s, SubCmd:%s, Type:%d, ID:%d, Tick:%d, IsContinue:%d '''\ %( self.Cmd, self.SubCmd, self.Type, self.ID, self.Tick, self.IsContinue ) return DumpString m_NAtagTimeTick=tagTimeTick() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagTimeTick.Cmd,m_NAtagTimeTick.SubCmd))] = m_NAtagTimeTick #------------------------------------------------------ #04 16 æô³µ³öÏÖ#tagTruckAppearView class tagTruckAppearView(Structure): Head = tagHead() ObjID = 0 #(DWORD ObjID) NPCID = 0 #(DWORD NPCID) NPCFaceDir = 0 #(WORD NPCFaceDir)//NPCµÄÃæÏò NPCHP = 0 #(DWORD NPCHP) NPCEventType = 0 #(WORD NPCEventType)//0 ¹¥»÷ 1 ʼþ IsActive = 0 #(BYTE IsActive)//Õâ¸öNPCÊÇ·ñ»î×Å PosX = 0 #(WORD PosX) PosY = 0 #(WORD PosY) Country = 0 #(BYTE Country)//¹ú¼® NameLen = 0 #(WORD NameLen) Name = "" #(String Name)//size = NameLen Speed = 0 #(WORD Speed) PlayerID = 0 #(DWORD PlayerID)//ÓµÓÐÕßID data = None def __init__(self): self.Clear() self.Head.Cmd = 0x04 self.Head.SubCmd = 0x16 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.NPCFaceDir,_pos = CommFunc.ReadWORD(_lpData, _pos) self.NPCHP,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.NPCEventType,_pos = CommFunc.ReadWORD(_lpData, _pos) self.IsActive,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.PosX,_pos = CommFunc.ReadWORD(_lpData, _pos) self.PosY,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Country,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.NameLen,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Name,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen) self.Speed,_pos = CommFunc.ReadWORD(_lpData, _pos) self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x04 self.Head.SubCmd = 0x16 self.ObjID = 0 self.NPCID = 0 self.NPCFaceDir = 0 self.NPCHP = 0 self.NPCEventType = 0 self.IsActive = 0 self.PosX = 0 self.PosY = 0 self.Country = 0 self.NameLen = 0 self.Name = "" self.Speed = 0 self.PlayerID = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 4 length += 2 length += 4 length += 2 length += 1 length += 2 length += 2 length += 1 length += 2 length += len(self.Name) length += 2 length += 4 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.ObjID) data = CommFunc.WriteDWORD(data, self.NPCID) data = CommFunc.WriteWORD(data, self.NPCFaceDir) data = CommFunc.WriteDWORD(data, self.NPCHP) data = CommFunc.WriteWORD(data, self.NPCEventType) data = CommFunc.WriteBYTE(data, self.IsActive) data = CommFunc.WriteWORD(data, self.PosX) data = CommFunc.WriteWORD(data, self.PosY) data = CommFunc.WriteBYTE(data, self.Country) data = CommFunc.WriteWORD(data, self.NameLen) data = CommFunc.WriteString(data, self.NameLen, self.Name) data = CommFunc.WriteWORD(data, self.Speed) data = CommFunc.WriteDWORD(data, self.PlayerID) return data def OutputString(self): DumpString = ''' Head:%s, ObjID:%d, NPCID:%d, NPCFaceDir:%d, NPCHP:%d, NPCEventType:%d, IsActive:%d, PosX:%d, PosY:%d, Country:%d, NameLen:%d, Name:%s, Speed:%d, PlayerID:%d '''\ %( self.Head.OutputString(), self.ObjID, self.NPCID, self.NPCFaceDir, self.NPCHP, self.NPCEventType, self.IsActive, self.PosX, self.PosY, self.Country, self.NameLen, self.Name, self.Speed, self.PlayerID ) return DumpString m_NAtagTruckAppearView=tagTruckAppearView() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagTruckAppearView.Head.Cmd,m_NAtagTruckAppearView.Head.SubCmd))] = m_NAtagTruckAppearView #------------------------------------------------------ #05 05 Ö÷½ÇÒÆ¶¯Ê§°Ü#tagRoleMoveFail class tagRoleMoveFail(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PosX", c_ushort), ("PosY", c_ushort), ("DestPosX", c_ushort), ("DestPosY", c_ushort), ] def __init__(self): self.Clear() self.Cmd = 0x05 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 = 0x05 self.SubCmd = 0x05 self.PosX = 0 self.PosY = 0 self.DestPosX = 0 self.DestPosY = 0 return def GetLength(self): return sizeof(tagRoleMoveFail) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//05 05 Ö÷½ÇÒÆ¶¯Ê§°Ü//tagRoleMoveFail: Cmd:%s, SubCmd:%s, PosX:%d, PosY:%d, DestPosX:%d, DestPosY:%d '''\ %( self.Cmd, self.SubCmd, self.PosX, self.PosY, self.DestPosX, self.DestPosY ) return DumpString m_NAtagRoleMoveFail=tagRoleMoveFail() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagRoleMoveFail.Cmd,m_NAtagRoleMoveFail.SubCmd))] = m_NAtagRoleMoveFail #------------------------------------------------------ #05 06 Ö÷½Ç¿ªÊ¼ÌøÔ¾#tagPlayerJump class tagPlayerJump(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ("StartX", c_ushort), ("StartY", c_ushort), ("DestX", c_ushort), ("DestY", c_ushort), ("SkillID", c_ushort), ] def __init__(self): self.Clear() self.Cmd = 0x05 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 = 0x05 self.SubCmd = 0x06 self.PlayerID = 0 self.StartX = 0 self.StartY = 0 self.DestX = 0 self.DestY = 0 self.SkillID = 0 return def GetLength(self): return sizeof(tagPlayerJump) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//05 06 Ö÷½Ç¿ªÊ¼ÌøÔ¾//tagPlayerJump: Cmd:%s, SubCmd:%s, PlayerID:%d, StartX:%d, StartY:%d, DestX:%d, DestY:%d, SkillID:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID, self.StartX, self.StartY, self.DestX, self.DestY, self.SkillID ) return DumpString m_NAtagPlayerJump=tagPlayerJump() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerJump.Cmd,m_NAtagPlayerJump.SubCmd))] = m_NAtagPlayerJump #------------------------------------------------------ #05 01 ¶ÔÏóÒÆ¶¯¿ªÊ¼ #tagObjMove class tagObjMove(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ObjID", c_int), ("ObjType", c_ubyte), ("MoveType", c_ubyte), ("Speed", c_ushort), ("StartPosX", c_ushort), ("StartPosY", c_ushort), ("DestPosX", c_ushort), ("DestPosY", c_ushort), ] def __init__(self): self.Clear() self.Cmd = 0x05 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 = 0x05 self.SubCmd = 0x01 self.ObjID = 0 self.ObjType = 0 self.MoveType = 0 self.Speed = 0 self.StartPosX = 0 self.StartPosY = 0 self.DestPosX = 0 self.DestPosY = 0 return def GetLength(self): return sizeof(tagObjMove) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//05 01 ¶ÔÏóÒÆ¶¯¿ªÊ¼ //tagObjMove: Cmd:%s, SubCmd:%s, ObjID:%d, ObjType:%d, MoveType:%d, Speed:%d, StartPosX:%d, StartPosY:%d, DestPosX:%d, DestPosY:%d '''\ %( self.Cmd, self.SubCmd, self.ObjID, self.ObjType, self.MoveType, self.Speed, self.StartPosX, self.StartPosY, self.DestPosX, self.DestPosY ) return DumpString m_NAtagObjMove=tagObjMove() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagObjMove.Cmd,m_NAtagObjMove.SubCmd))] = m_NAtagObjMove #------------------------------------------------------ #05 02 ¶ÔÏóÍ£Ö¹ÒÆ¶¯#tagObjStopMove class tagObjStopMove(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ObjID", c_int), ("ObjType", c_ubyte), ("PosX", c_ushort), ("PosY", c_ushort), ] def __init__(self): self.Clear() self.Cmd = 0x05 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 = 0x05 self.SubCmd = 0x02 self.ObjID = 0 self.ObjType = 0 self.PosX = 0 self.PosY = 0 return def GetLength(self): return sizeof(tagObjStopMove) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//05 02 ¶ÔÏóÍ£Ö¹ÒÆ¶¯//tagObjStopMove: Cmd:%s, SubCmd:%s, ObjID:%d, ObjType:%d, PosX:%d, PosY:%d '''\ %( self.Cmd, self.SubCmd, self.ObjID, self.ObjType, self.PosX, self.PosY ) return DumpString m_NAtagObjStopMove=tagObjStopMove() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagObjStopMove.Cmd,m_NAtagObjStopMove.SubCmd))] = m_NAtagObjStopMove #------------------------------------------------------ #05 04 ×Ô¼ºÒƶ¯½áÊø#tagPlayerMoveStop class tagPlayerMoveStop(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PosX", c_ushort), ("PosY", c_ushort), ] def __init__(self): self.Clear() self.Cmd = 0x05 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 = 0x05 self.SubCmd = 0x04 self.PosX = 0 self.PosY = 0 return def GetLength(self): return sizeof(tagPlayerMoveStop) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//05 04 ×Ô¼ºÒƶ¯½áÊø//tagPlayerMoveStop: Cmd:%s, SubCmd:%s, PosX:%d, PosY:%d '''\ %( self.Cmd, self.SubCmd, self.PosX, self.PosY ) return DumpString m_NAtagPlayerMoveStop=tagPlayerMoveStop() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerMoveStop.Cmd,m_NAtagPlayerMoveStop.SubCmd))] = m_NAtagPlayerMoveStop #------------------------------------------------------ #05 03 ×Ô¼ºÒƶ¯¿ªÊ¼#tagPlayerMoveStart class tagPlayerMoveStart(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("SrcX", c_ushort), ("SrcY", c_ushort), ("DestX", c_ushort), ("DestY", c_ushort), ] def __init__(self): self.Clear() self.Cmd = 0x05 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 = 0x05 self.SubCmd = 0x03 self.SrcX = 0 self.SrcY = 0 self.DestX = 0 self.DestY = 0 return def GetLength(self): return sizeof(tagPlayerMoveStart) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//05 03 ×Ô¼ºÒƶ¯¿ªÊ¼//tagPlayerMoveStart: Cmd:%s, SubCmd:%s, SrcX:%d, SrcY:%d, DestX:%d, DestY:%d '''\ %( self.Cmd, self.SubCmd, self.SrcX, self.SrcY, self.DestX, self.DestY ) return DumpString m_NAtagPlayerMoveStart=tagPlayerMoveStart() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerMoveStart.Cmd,m_NAtagPlayerMoveStart.SubCmd))] = m_NAtagPlayerMoveStart #------------------------------------------------------ #06 03 ¼¼ÄÜʹÓóɹ¦#tagPlayerUseSkill class tagPlayerUseSkill(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ("SkillID", c_ushort), ] def __init__(self): self.Clear() self.Cmd = 0x06 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 = 0x06 self.SubCmd = 0x03 self.PlayerID = 0 self.SkillID = 0 return def GetLength(self): return sizeof(tagPlayerUseSkill) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//06 03 ¼¼ÄÜʹÓóɹ¦//tagPlayerUseSkill: Cmd:%s, SubCmd:%s, PlayerID:%d, SkillID:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID, self.SkillID ) return DumpString m_NAtagPlayerUseSkill=tagPlayerUseSkill() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerUseSkill.Cmd,m_NAtagPlayerUseSkill.SubCmd))] = m_NAtagPlayerUseSkill #------------------------------------------------------ #06 13 ¹¥»÷ʧ°Ü#tagAttackFailReason class tagAttackFailReason(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("TagObjID", c_int), ("TagObjType", c_ubyte), ("PosX", c_ushort), ("PosY", c_ushort), ("Reason", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0x06 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 = 0x06 self.SubCmd = 0x13 self.TagObjID = 0 self.TagObjType = 0 self.PosX = 0 self.PosY = 0 self.Reason = 0 return def GetLength(self): return sizeof(tagAttackFailReason) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//06 13 ¹¥»÷ʧ°Ü//tagAttackFailReason: Cmd:%s, SubCmd:%s, TagObjID:%d, TagObjType:%d, PosX:%d, PosY:%d, Reason:%d '''\ %( self.Cmd, self.SubCmd, self.TagObjID, self.TagObjType, self.PosX, self.PosY, self.Reason ) return DumpString m_NAtagAttackFailReason=tagAttackFailReason() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagAttackFailReason.Cmd,m_NAtagAttackFailReason.SubCmd))] = m_NAtagAttackFailReason #------------------------------------------------------ #06 12 ¸ù¾ÝÀàÐÍÇå¿Õ¶ÔÏóµÄbuff#tagClearObjBuff class tagClearObjBuff(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ObjType", c_ubyte), ("ObjID", c_int), ("BuffType", c_ubyte), #buffÀàÐÍ ] def __init__(self): self.Clear() self.Cmd = 0x06 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 = 0x06 self.SubCmd = 0x12 self.ObjType = 0 self.ObjID = 0 self.BuffType = 0 return def GetLength(self): return sizeof(tagClearObjBuff) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//06 12 ¸ù¾ÝÀàÐÍÇå¿Õ¶ÔÏóµÄbuff//tagClearObjBuff: Cmd:%s, SubCmd:%s, ObjType:%d, ObjID:%d, BuffType:%d '''\ %( self.Cmd, self.SubCmd, self.ObjType, self.ObjID, self.BuffType ) return DumpString m_NAtagClearObjBuff=tagClearObjBuff() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagClearObjBuff.Cmd,m_NAtagClearObjBuff.SubCmd))] = m_NAtagClearObjBuff #------------------------------------------------------ #06 18 µ±Ç°Á¬»÷´ÎÊý#tagComboCount class tagComboCount(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Count", c_ushort), #Á¬»÷´ÎÊý ] def __init__(self): self.Clear() self.Cmd = 0x06 self.SubCmd = 0x18 return def 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 = 0x06 self.SubCmd = 0x18 self.Count = 0 return def GetLength(self): return sizeof(tagComboCount) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//06 18 µ±Ç°Á¬»÷´ÎÊý//tagComboCount: Cmd:%s, SubCmd:%s, Count:%d '''\ %( self.Cmd, self.SubCmd, self.Count ) return DumpString m_NAtagComboCount=tagComboCount() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagComboCount.Cmd,m_NAtagComboCount.SubCmd))] = m_NAtagComboCount #------------------------------------------------------ #06 06 ¶ÔÏó¼õÉÙBuf#tagObjDelBuff class tagObjDelBuff(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ObjType", c_ubyte), ("ObjID", c_int), ("BuffType", c_ubyte), ("SkillID", c_ushort), ] def __init__(self): self.Clear() self.Cmd = 0x06 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 = 0x06 self.SubCmd = 0x06 self.ObjType = 0 self.ObjID = 0 self.BuffType = 0 self.SkillID = 0 return def GetLength(self): return sizeof(tagObjDelBuff) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//06 06 ¶ÔÏó¼õÉÙBuf//tagObjDelBuff: Cmd:%s, SubCmd:%s, ObjType:%d, ObjID:%d, BuffType:%d, SkillID:%d '''\ %( self.Cmd, self.SubCmd, self.ObjType, self.ObjID, self.BuffType, self.SkillID ) return DumpString m_NAtagObjDelBuff=tagObjDelBuff() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagObjDelBuff.Cmd,m_NAtagObjDelBuff.SubCmd))] = m_NAtagObjDelBuff #------------------------------------------------------ #06 15 ·¨±¦¼¼Äܹ¥»÷#tagFaBaoUseSkillAttack class tagFaBaoSkillHurtObj(Structure): _pack_ = 1 _fields_ = [ ("ObjType", c_ubyte), ("ObjID", c_int), ("AttackType", c_ubyte), #±¬»÷, miss ("HurtHP", c_int), ("CurHP", 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 return def GetLength(self): return sizeof(tagFaBaoSkillHurtObj) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//06 15 ·¨±¦¼¼Äܹ¥»÷//tagFaBaoUseSkillAttack: ObjType:%d, ObjID:%d, AttackType:%d, HurtHP:%d, CurHP:%d '''\ %( self.ObjType, self.ObjID, self.AttackType, self.HurtHP, self.CurHP ) return DumpString class tagFaBaoUseSkillAttack(Structure): Head = tagHead() ObjID = 0 #(DWORD ObjID) ObjType = 0 #(BYTE ObjType) BattleType = 0 #(BYTE BattleType)//ÎïÀí/ħ·¨ SkillID = 0 #(DWORD SkillID) HurtCount = 0 #(WORD HurtCount)//É˺¦ÊýÄ¿ HurtList = list() #(vector HurtList)//size = HurtCount data = None def __init__(self): self.Clear() self.Head.Cmd = 0x06 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.ObjType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.BattleType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.SkillID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.HurtCount,_pos = CommFunc.ReadWORD(_lpData, _pos) for i in range(self.HurtCount): temHurtList = tagFaBaoSkillHurtObj() _pos = temHurtList.ReadData(_lpData, _pos) self.HurtList.append(temHurtList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x06 self.Head.SubCmd = 0x15 self.ObjID = 0 self.ObjType = 0 self.BattleType = 0 self.SkillID = 0 self.HurtCount = 0 self.HurtList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += 1 length += 4 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.WriteBYTE(data, self.BattleType) data = CommFunc.WriteDWORD(data, self.SkillID) 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, BattleType:%d, SkillID:%d, HurtCount:%d, HurtList:%s '''\ %( self.Head.OutputString(), self.ObjID, self.ObjType, self.BattleType, self.SkillID, self.HurtCount, "..." ) return DumpString m_NAtagFaBaoUseSkillAttack=tagFaBaoUseSkillAttack() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagFaBaoUseSkillAttack.Head.Cmd,m_NAtagFaBaoUseSkillAttack.Head.SubCmd))] = m_NAtagFaBaoUseSkillAttack #------------------------------------------------------ #06 10 NPCʹÓü¼ÄÜ#tagNPCUseSkill class tagNPCUseSkill(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ObjID", c_int), ("SkillID", c_ushort), ] def __init__(self): self.Clear() self.Cmd = 0x06 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 = 0x06 self.SubCmd = 0x10 self.ObjID = 0 self.SkillID = 0 return def GetLength(self): return sizeof(tagNPCUseSkill) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//06 10 NPCʹÓü¼ÄÜ//tagNPCUseSkill: Cmd:%s, SubCmd:%s, ObjID:%d, SkillID:%d '''\ %( self.Cmd, self.SubCmd, self.ObjID, self.SkillID ) return DumpString m_NAtagNPCUseSkill=tagNPCUseSkill() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagNPCUseSkill.Cmd,m_NAtagNPCUseSkill.SubCmd))] = m_NAtagNPCUseSkill #------------------------------------------------------ #06 17 ¶ÔÏóÔö¼ÓbuffºÏ²¢°ü#tagObjAddBuffPack class tagObjAddBuffPackItem(Structure): _pack_ = 1 _fields_ = [ ("BuffType", c_ubyte), #BuffÀàÐÍ TBuffType ("SkillID", c_ushort), ("LastTime", c_int), ("Value", c_int), ("Value1", c_int), ("Value2", c_int), ("OwnerID", c_int), # buffÀ´Ô´Õß ("OwnerType", c_ubyte), ("Layer", 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.BuffType = 0 self.SkillID = 0 self.LastTime = 0 self.Value = 0 self.Value1 = 0 self.Value2 = 0 self.OwnerID = 0 self.OwnerType = 0 self.Layer = 0 return def GetLength(self): return sizeof(tagObjAddBuffPackItem) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//06 17 ¶ÔÏóÔö¼ÓbuffºÏ²¢°ü//tagObjAddBuffPack: BuffType:%d, SkillID:%d, LastTime:%d, Value:%d, Value1:%d, Value2:%d, OwnerID:%d, OwnerType:%d, Layer:%d '''\ %( self.BuffType, self.SkillID, self.LastTime, self.Value, self.Value1, self.Value2, self.OwnerID, self.OwnerType, self.Layer ) return DumpString class tagObjAddBuffPack(Structure): Head = tagHead() ObjType = 0 #(BYTE ObjType)//buffµÄÊÜЧ¹ûÕß ObjID = 0 #(DWORD ObjID) ItemCount = 0 #(DWORD ItemCount) Items = list() #(vector Items) data = None def __init__(self): self.Clear() self.Head.Cmd = 0x06 self.Head.SubCmd = 0x17 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.ObjType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ObjID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ItemCount,_pos = CommFunc.ReadDWORD(_lpData, _pos) for i in range(self.ItemCount): temItems = tagObjAddBuffPackItem() _pos = temItems.ReadData(_lpData, _pos) self.Items.append(temItems) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x06 self.Head.SubCmd = 0x17 self.ObjType = 0 self.ObjID = 0 self.ItemCount = 0 self.Items = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 4 length += 4 for i in range(self.ItemCount): length += self.Items[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.ObjType) data = CommFunc.WriteDWORD(data, self.ObjID) data = CommFunc.WriteDWORD(data, self.ItemCount) for i in range(self.ItemCount): data = CommFunc.WriteString(data, self.Items[i].GetLength(), self.Items[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, ObjType:%d, ObjID:%d, ItemCount:%d, Items:%s '''\ %( self.Head.OutputString(), self.ObjType, self.ObjID, self.ItemCount, "..." ) return DumpString m_NAtagObjAddBuffPack=tagObjAddBuffPack() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagObjAddBuffPack.Head.Cmd,m_NAtagObjAddBuffPack.Head.SubCmd))] = m_NAtagObjAddBuffPack #------------------------------------------------------ #06 08 NPCËÀÍö#tagNPCDie class tagNPCDie(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ObjID", c_int), ("Reason", c_int), ("KillerType", c_ubyte), ("KillerID", c_int), ] def __init__(self): self.Clear() self.Cmd = 0x06 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 = 0x06 self.SubCmd = 0x08 self.ObjID = 0 self.Reason = 0 self.KillerType = 0 self.KillerID = 0 return def GetLength(self): return sizeof(tagNPCDie) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//06 08 NPCËÀÍö//tagNPCDie: Cmd:%s, SubCmd:%s, ObjID:%d, Reason:%d, KillerType:%d, KillerID:%d '''\ %( self.Cmd, self.SubCmd, self.ObjID, self.Reason, self.KillerType, self.KillerID ) return DumpString m_NAtagNPCDie=tagNPCDie() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagNPCDie.Cmd,m_NAtagNPCDie.SubCmd))] = m_NAtagNPCDie #------------------------------------------------------ #06 05 ¶ÔÏóÔö¼ÓBuf#tagObjAddBuff class tagObjAddBuff(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ObjType", c_ubyte), #buffµÄÊÜЧ¹ûÕß ("ObjID", c_int), ("BuffType", c_ubyte), #BuffÀàÐÍ TBuffType ("SkillID", c_ushort), ("LastTime", c_int), ("Value", c_int), ("Value1", c_int), ("Value2", c_int), ("Layer", c_ubyte), #²ãÊý£¬²»ÐèҪĬÈÏ0 ("OwnerID", c_int), # buffÀ´Ô´Õß ("OwnerType", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0x06 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 = 0x06 self.SubCmd = 0x05 self.ObjType = 0 self.ObjID = 0 self.BuffType = 0 self.SkillID = 0 self.LastTime = 0 self.Value = 0 self.Value1 = 0 self.Value2 = 0 self.Layer = 0 self.OwnerID = 0 self.OwnerType = 0 return def GetLength(self): return sizeof(tagObjAddBuff) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//06 05 ¶ÔÏóÔö¼ÓBuf//tagObjAddBuff: Cmd:%s, SubCmd:%s, ObjType:%d, ObjID:%d, BuffType:%d, SkillID:%d, LastTime:%d, Value:%d, Value1:%d, Value2:%d, Layer:%d, OwnerID:%d, OwnerType:%d '''\ %( self.Cmd, self.SubCmd, self.ObjType, self.ObjID, self.BuffType, self.SkillID, self.LastTime, self.Value, self.Value1, self.Value2, self.Layer, self.OwnerID, self.OwnerType ) return DumpString m_NAtagObjAddBuff=tagObjAddBuff() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagObjAddBuff.Cmd,m_NAtagObjAddBuff.SubCmd))] = m_NAtagObjAddBuff #------------------------------------------------------ #06 02 ÆÕͨ¹¥»÷#tagObjBaseAttack class tagObjBaseAttack(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("AttackerID", c_int), ("AttackerObjType", c_ubyte), ("BattleType", c_ubyte), #¹¥»÷ÀàÐÍ ÎïÀí/ħ·¨ ("ObjID", c_int), #¶ÔÏóID ("ObjType", c_ubyte), #¶ÔÏóÀàÐÍ ("AttackType", c_ubyte), #ÆÕ¹¥, ÉÁ¶ã, ÖÂÃü ÀàÐÍ ("Value", c_int), ("RemainHP", c_int), #¶Ô·½Ê£ÓàµÄѪ ("RemainHPEx", c_int), #¶Ô·½Ê£ÓàµÄѪ, ³¬ÒÚÖ§³Ö ] def __init__(self): self.Clear() self.Cmd = 0x06 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 = 0x06 self.SubCmd = 0x02 self.AttackerID = 0 self.AttackerObjType = 0 self.BattleType = 0 self.ObjID = 0 self.ObjType = 0 self.AttackType = 0 self.Value = 0 self.RemainHP = 0 self.RemainHPEx = 0 return def GetLength(self): return sizeof(tagObjBaseAttack) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//06 02 ÆÕͨ¹¥»÷//tagObjBaseAttack: Cmd:%s, SubCmd:%s, AttackerID:%d, AttackerObjType:%d, BattleType:%d, ObjID:%d, ObjType:%d, AttackType:%d, Value:%d, RemainHP:%d, RemainHPEx:%d '''\ %( self.Cmd, self.SubCmd, self.AttackerID, self.AttackerObjType, self.BattleType, self.ObjID, self.ObjType, self.AttackType, self.Value, self.RemainHP, self.RemainHPEx ) return DumpString m_NAtagObjBaseAttack=tagObjBaseAttack() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagObjBaseAttack.Cmd,m_NAtagObjBaseAttack.SubCmd))] = m_NAtagObjBaseAttack #------------------------------------------------------ #06 09 Íæ¼ÒËÀÍö#tagPlayerDie class tagPlayerDie(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ("KillerID", c_int), ("KillerType", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0x06 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 = 0x06 self.SubCmd = 0x09 self.PlayerID = 0 self.KillerID = 0 self.KillerType = 0 return def GetLength(self): return sizeof(tagPlayerDie) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//06 09 Íæ¼ÒËÀÍö//tagPlayerDie: Cmd:%s, SubCmd:%s, PlayerID:%d, KillerID:%d, KillerType:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID, self.KillerID, self.KillerType ) return DumpString m_NAtagPlayerDie=tagPlayerDie() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerDie.Cmd,m_NAtagPlayerDie.SubCmd))] = m_NAtagPlayerDie #------------------------------------------------------ #06 16ÈËÎï½øÈë¶ÔÖÅ״̬³É¹¦»òʧ°Ü #tagPlayerBattleOK class tagPlayerBattleOK(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ("TargetID", c_int), ("TargetType", c_ubyte), ("EnterOrExit", c_ubyte), #0½øÈë;ÆäËûÍ˳ö ] def __init__(self): self.Clear() self.Cmd = 0x06 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 = 0x06 self.SubCmd = 0x16 self.PlayerID = 0 self.TargetID = 0 self.TargetType = 0 self.EnterOrExit = 0 return def GetLength(self): return sizeof(tagPlayerBattleOK) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//06 16ÈËÎï½øÈë¶ÔÖÅ״̬³É¹¦»òʧ°Ü //tagPlayerBattleOK: Cmd:%s, SubCmd:%s, PlayerID:%d, TargetID:%d, TargetType:%d, EnterOrExit:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID, self.TargetID, self.TargetType, self.EnterOrExit ) return DumpString m_NAtagPlayerBattleOK=tagPlayerBattleOK() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerBattleOK.Cmd,m_NAtagPlayerBattleOK.SubCmd))] = m_NAtagPlayerBattleOK #------------------------------------------------------ #06 04 ¼¼Äܹ¥»÷ʹÓóɹ¦#tagUseSkillAttack class tagSkillHurtObj(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(tagSkillHurtObj) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//06 04 ¼¼Äܹ¥»÷ʹÓóɹ¦//tagUseSkillAttack: 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 tagUseSkillAttack(Structure): Head = tagHead() ObjID = 0 #(DWORD ObjID) ObjType = 0 #(BYTE ObjType) BattleType = 0 #(BYTE BattleType)//ÎïÀí/ħ·¨ SkillID = 0 #(WORD SkillID) AttackID = 0 #(DWORD AttackID)//Ö÷¹¥»÷Ä¿±ê AttackObjType = 0 #(BYTE AttackObjType)//Ö÷¹¥»÷Ä¿±ê HurtCount = 0 #(WORD HurtCount)//É˺¦ÊýÄ¿ HurtList = list() #(vector HurtList)//size = HurtCount data = None def __init__(self): self.Clear() self.Head.Cmd = 0x06 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.ObjType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.BattleType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.SkillID,_pos = CommFunc.ReadWORD(_lpData, _pos) self.AttackID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.AttackObjType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.HurtCount,_pos = CommFunc.ReadWORD(_lpData, _pos) for i in range(self.HurtCount): temHurtList = tagSkillHurtObj() _pos = temHurtList.ReadData(_lpData, _pos) self.HurtList.append(temHurtList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x06 self.Head.SubCmd = 0x04 self.ObjID = 0 self.ObjType = 0 self.BattleType = 0 self.SkillID = 0 self.AttackID = 0 self.AttackObjType = 0 self.HurtCount = 0 self.HurtList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += 1 length += 2 length += 4 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.WriteBYTE(data, self.ObjType) data = CommFunc.WriteBYTE(data, self.BattleType) data = CommFunc.WriteWORD(data, self.SkillID) data = CommFunc.WriteDWORD(data, self.AttackID) data = CommFunc.WriteBYTE(data, self.AttackObjType) 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, BattleType:%d, SkillID:%d, AttackID:%d, AttackObjType:%d, HurtCount:%d, HurtList:%s '''\ %( self.Head.OutputString(), self.ObjID, self.ObjType, self.BattleType, self.SkillID, self.AttackID, self.AttackObjType, self.HurtCount, "..." ) return DumpString m_NAtagUseSkillAttack=tagUseSkillAttack() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagUseSkillAttack.Head.Cmd,m_NAtagUseSkillAttack.Head.SubCmd))] = m_NAtagUseSkillAttack #------------------------------------------------------ #06 14 ¶ÔµØÃæµÄ¼¼ÄÜʹÓóɹ¦#tagUseSkillPos 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 = '''//06 14 ¶ÔµØÃæµÄ¼¼ÄÜʹÓóɹ¦//tagUseSkillPos: 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 tagUseSkillPos(Structure): Head = tagHead() ObjID = 0 #(DWORD ObjID) ObjType = 0 #(BYTE ObjType) BattleType = 0 #(BYTE BattleType)//ÎïÀí/ħ·¨ SkillID = 0 #(WORD SkillID) SkillIDEx = 0 #(WORD SkillIDEx) PosX = 0 #(WORD PosX) PosY = 0 #(WORD PosY) HurtCount = 0 #(WORD HurtCount)//É˺¦ÊýÄ¿ HurtList = list() #(vector HurtList)//size = HurtCount SkillElementID = 0 #(WORD SkillElementID)//ר¾«¼¼ÄÜID data = None def __init__(self): self.Clear() self.Head.Cmd = 0x06 self.Head.SubCmd = 0x14 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.BattleType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.SkillID,_pos = CommFunc.ReadWORD(_lpData, _pos) self.SkillIDEx,_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) self.SkillElementID,_pos = CommFunc.ReadWORD(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x06 self.Head.SubCmd = 0x14 self.ObjID = 0 self.ObjType = 0 self.BattleType = 0 self.SkillID = 0 self.SkillIDEx = 0 self.PosX = 0 self.PosY = 0 self.HurtCount = 0 self.HurtList = list() self.SkillElementID = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += 1 length += 2 length += 2 length += 2 length += 2 length += 2 for i in range(self.HurtCount): length += self.HurtList[i].GetLength() length += 2 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.BattleType) data = CommFunc.WriteWORD(data, self.SkillID) data = CommFunc.WriteWORD(data, self.SkillIDEx) 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()) data = CommFunc.WriteWORD(data, self.SkillElementID) return data def OutputString(self): DumpString = ''' Head:%s, ObjID:%d, ObjType:%d, BattleType:%d, SkillID:%d, SkillIDEx:%d, PosX:%d, PosY:%d, HurtCount:%d, HurtList:%s, SkillElementID:%d '''\ %( self.Head.OutputString(), self.ObjID, self.ObjType, self.BattleType, self.SkillID, self.SkillIDEx, self.PosX, self.PosY, self.HurtCount, "...", self.SkillElementID ) return DumpString m_NAtagUseSkillPos=tagUseSkillPos() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagUseSkillPos.Head.Cmd,m_NAtagUseSkillPos.Head.SubCmd))] = m_NAtagUseSkillPos #------------------------------------------------------ #07 11 Çå¿Õ±³°ü#tagClearItemPack class tagClearItemPack(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PackIndex", c_ubyte), #±³°üË÷Òý ("ItemBeginIndex", c_ushort), #±³°ü¸ñ×ÓÆðʼË÷Òý£¬´Ó0¿ªÊ¼ ("ItemEndIndex", c_ushort), #±³°ü¸ñ×Ó½áË÷Òý£¬´Ó0¿ªÊ¼ ] def __init__(self): self.Clear() self.Cmd = 0x07 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 = 0x07 self.SubCmd = 0x11 self.PackIndex = 0 self.ItemBeginIndex = 0 self.ItemEndIndex = 0 return def GetLength(self): return sizeof(tagClearItemPack) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//07 11 Çå¿Õ±³°ü//tagClearItemPack: Cmd:%s, SubCmd:%s, PackIndex:%d, ItemBeginIndex:%d, ItemEndIndex:%d '''\ %( self.Cmd, self.SubCmd, self.PackIndex, self.ItemBeginIndex, self.ItemEndIndex ) return DumpString m_NAtagClearItemPack=tagClearItemPack() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagClearItemPack.Cmd,m_NAtagClearItemPack.SubCmd))] = m_NAtagClearItemPack #------------------------------------------------------ #07 09 Çå¿ÕÎïÆ·#tagClearItem class tagClearItem(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PackType", c_ubyte), ("ItemIndex", c_ubyte), ("ClearType", c_ubyte), #Type = TItemNotifyType ] def __init__(self): self.Clear() self.Cmd = 0x07 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 = 0x07 self.SubCmd = 0x09 self.PackType = 0 self.ItemIndex = 0 self.ClearType = 0 return def GetLength(self): return sizeof(tagClearItem) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//07 09 Çå¿ÕÎïÆ·//tagClearItem: Cmd:%s, SubCmd:%s, PackType:%d, ItemIndex:%d, ClearType:%d '''\ %( self.Cmd, self.SubCmd, self.PackType, self.ItemIndex, self.ClearType ) return DumpString m_NAtagClearItem=tagClearItem() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagClearItem.Cmd,m_NAtagClearItem.SubCmd))] = m_NAtagClearItem #------------------------------------------------------ #07 05 ÎïÆ·Ä;ÃË¢ÐÂ#tagDurgRefresh class tagDurgRefresh(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PackType", c_ubyte), ("Place", c_ubyte), ("CurDurg", c_int), ("MaxDurg", c_int), ] def __init__(self): self.Clear() self.Cmd = 0x07 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 = 0x07 self.SubCmd = 0x05 self.PackType = 0 self.Place = 0 self.CurDurg = 0 self.MaxDurg = 0 return def GetLength(self): return sizeof(tagDurgRefresh) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//07 05 ÎïÆ·Ä;ÃË¢ÐÂ//tagDurgRefresh: Cmd:%s, SubCmd:%s, PackType:%d, Place:%d, CurDurg:%d, MaxDurg:%d '''\ %( self.Cmd, self.SubCmd, self.PackType, self.Place, self.CurDurg, self.MaxDurg ) return DumpString m_NAtagDurgRefresh=tagDurgRefresh() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagDurgRefresh.Cmd,m_NAtagDurgRefresh.SubCmd))] = m_NAtagDurgRefresh #------------------------------------------------------ #07 19 ·¨±¦ºÏ³É½á¹û#tagFabaoMergeResult class tagFabaoMergeResult(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Result", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0x07 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 = 0x07 self.SubCmd = 0x19 self.Result = 0 return def GetLength(self): return sizeof(tagFabaoMergeResult) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//07 19 ·¨±¦ºÏ³É½á¹û//tagFabaoMergeResult: Cmd:%s, SubCmd:%s, Result:%d '''\ %( self.Cmd, self.SubCmd, self.Result ) return DumpString m_NAtagFabaoMergeResult=tagFabaoMergeResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagFabaoMergeResult.Cmd,m_NAtagFabaoMergeResult.SubCmd))] = m_NAtagFabaoMergeResult #------------------------------------------------------ #07 12 µÃµ½ÎïÆ·Í¨Öª#tagGetItemView class tagGetItemView(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ItemID", c_int), ("Count", c_int), ] def __init__(self): self.Clear() self.Cmd = 0x07 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 = 0x07 self.SubCmd = 0x12 self.ItemID = 0 self.Count = 0 return def GetLength(self): return sizeof(tagGetItemView) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//07 12 µÃµ½ÎïÆ·Í¨Öª//tagGetItemView: Cmd:%s, SubCmd:%s, ItemID:%d, Count:%d '''\ %( self.Cmd, self.SubCmd, self.ItemID, self.Count ) return DumpString m_NAtagGetItemView=tagGetItemView() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGetItemView.Cmd,m_NAtagGetItemView.SubCmd))] = m_NAtagGetItemView #------------------------------------------------------ #07 07 ÎïÆ·ÊýÁ¿Ë¢ÐÂ#tagItemCountRefresh class tagItemCountRefresh(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PackType", c_ubyte), ("ItemIndex", c_ubyte), ("ItemCount", c_ushort), ] def __init__(self): self.Clear() self.Cmd = 0x07 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 = 0x07 self.SubCmd = 0x07 self.PackType = 0 self.ItemIndex = 0 self.ItemCount = 0 return def GetLength(self): return sizeof(tagItemCountRefresh) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//07 07 ÎïÆ·ÊýÁ¿Ë¢ÐÂ//tagItemCountRefresh: Cmd:%s, SubCmd:%s, PackType:%d, ItemIndex:%d, ItemCount:%d '''\ %( self.Cmd, self.SubCmd, self.PackType, self.ItemIndex, self.ItemCount ) return DumpString m_NAtagItemCountRefresh=tagItemCountRefresh() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagItemCountRefresh.Cmd,m_NAtagItemCountRefresh.SubCmd))] = m_NAtagItemCountRefresh #------------------------------------------------------ #07 22 ÎïÆ·ËÀËø#tagItemDeadLockRefresh class tagItemDeadLockRefresh(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PackType", c_ubyte), ("ItemIndex", c_ubyte), ("IsLock", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0x07 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 = 0x07 self.SubCmd = 0x22 self.PackType = 0 self.ItemIndex = 0 self.IsLock = 0 return def GetLength(self): return sizeof(tagItemDeadLockRefresh) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//07 22 ÎïÆ·ËÀËø//tagItemDeadLockRefresh: Cmd:%s, SubCmd:%s, PackType:%d, ItemIndex:%d, IsLock:%d '''\ %( self.Cmd, self.SubCmd, self.PackType, self.ItemIndex, self.IsLock ) return DumpString m_NAtagItemDeadLockRefresh=tagItemDeadLockRefresh() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagItemDeadLockRefresh.Cmd,m_NAtagItemDeadLockRefresh.SubCmd))] = m_NAtagItemDeadLockRefresh #------------------------------------------------------ #07 02 µôÂäÔڵذåÉϵÄÎïÆ·Ïûʧ#tagDropItemDisappear class tagDropItemDisappear(Structure): Head = tagHead() ItemCount = 0 #(WORD ItemCount) DropID = list() #(vector DropID)//size = ItemCount data = None def __init__(self): self.Clear() self.Head.Cmd = 0x07 self.Head.SubCmd = 0x02 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.DropID.append(value) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x07 self.Head.SubCmd = 0x02 self.ItemCount = 0 self.DropID = 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.DropID[i]) return data def OutputString(self): DumpString = ''' Head:%s, ItemCount:%d, DropID:%s '''\ %( self.Head.OutputString(), self.ItemCount, "..." ) return DumpString m_NAtagDropItemDisappear=tagDropItemDisappear() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagDropItemDisappear.Head.Cmd,m_NAtagDropItemDisappear.Head.SubCmd))] = m_NAtagDropItemDisappear #------------------------------------------------------ #07 01 ÎïÆ·µôÂäÔÚµØÉÏ#tagItemDrop class tagItemDrop(Structure): Head = tagHead() IsFirstSeen = 0 #(BYTE IsFirstSeen)//ÊÇ·ñµÚÒ»´Î³öÏÖ, 1ΪµÚÒ»´Î³öÏÖ, 0Ϊ²»ÊÇ DropID = 0 #(WORD DropID) ItemTypeID = 0 #(DWORD ItemTypeID) PosX = 0 #(WORD PosX) PosY = 0 #(WORD PosY) OwnerType = 0 #(BYTE OwnerType)//ÓµÓÐÕßÀàÐÍ, 1-Íæ¼Ò, 2-¶ÓÎé... OwnerID = 0 #(DWORD OwnerID)//ÓµÓÐÕßID, Èç¹ûÊǶÓÎé, ÔòÊǶÓÎéID RemainTime = 0 #(DWORD RemainTime)//ÊôÓÚÕâ¸öÓµÓÐÕßµÄÊ£Óàʱ¼ä(ms) ByObjID = 0 #(DWORD ByObjID)//ÎïÆ·Ô­±¾ÔÚÄĸö¶ÔÏóÉíÉÏ DropTick = 0 #(DWORD DropTick)//ÎïÆ·µôÂäTick UserDataLen = 0 #(WORD UserDataLen)//¸½¼ÓÊôÐÔ³¤¶È UserData = "" #(String UserData)//¸½¼ÓÊôÐÔ size = UserDataLen data = None def __init__(self): self.Clear() self.Head.Cmd = 0x07 self.Head.SubCmd = 0x01 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.IsFirstSeen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.DropID,_pos = CommFunc.ReadWORD(_lpData, _pos) self.ItemTypeID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.PosX,_pos = CommFunc.ReadWORD(_lpData, _pos) self.PosY,_pos = CommFunc.ReadWORD(_lpData, _pos) self.OwnerType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.OwnerID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.RemainTime,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ByObjID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.DropTick,_pos = CommFunc.ReadDWORD(_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 = 0x07 self.Head.SubCmd = 0x01 self.IsFirstSeen = 0 self.DropID = 0 self.ItemTypeID = 0 self.PosX = 0 self.PosY = 0 self.OwnerType = 0 self.OwnerID = 0 self.RemainTime = 0 self.ByObjID = 0 self.DropTick = 0 self.UserDataLen = 0 self.UserData = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 2 length += 4 length += 2 length += 2 length += 1 length += 4 length += 4 length += 4 length += 4 length += 2 length += len(self.UserData) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.IsFirstSeen) data = CommFunc.WriteWORD(data, self.DropID) data = CommFunc.WriteDWORD(data, self.ItemTypeID) data = CommFunc.WriteWORD(data, self.PosX) data = CommFunc.WriteWORD(data, self.PosY) data = CommFunc.WriteBYTE(data, self.OwnerType) data = CommFunc.WriteDWORD(data, self.OwnerID) data = CommFunc.WriteDWORD(data, self.RemainTime) data = CommFunc.WriteDWORD(data, self.ByObjID) data = CommFunc.WriteDWORD(data, self.DropTick) data = CommFunc.WriteWORD(data, self.UserDataLen) data = CommFunc.WriteString(data, self.UserDataLen, self.UserData) return data def OutputString(self): DumpString = ''' Head:%s, IsFirstSeen:%d, DropID:%d, ItemTypeID:%d, PosX:%d, PosY:%d, OwnerType:%d, OwnerID:%d, RemainTime:%d, ByObjID:%d, DropTick:%d, UserDataLen:%d, UserData:%s '''\ %( self.Head.OutputString(), self.IsFirstSeen, self.DropID, self.ItemTypeID, self.PosX, self.PosY, self.OwnerType, self.OwnerID, self.RemainTime, self.ByObjID, self.DropTick, self.UserDataLen, self.UserData ) return DumpString m_NAtagItemDrop=tagItemDrop() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagItemDrop.Head.Cmd,m_NAtagItemDrop.Head.SubCmd))] = m_NAtagItemDrop #------------------------------------------------------ #07 10 ÎïÆ·¸ß¼¶ÐÅÏ¢#tagItemSuperProperty class tagItemSuperProperty(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ItemPack", c_ubyte), #±³°üÀàÐÍ ("ItemIndex", c_ubyte), #×°±¸Î»Öà ("SoulActive", c_ubyte), #ÊÇ·ñ¼¤»îÁé»ê ] def __init__(self): self.Clear() self.Cmd = 0x07 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 = 0x07 self.SubCmd = 0x10 self.ItemPack = 0 self.ItemIndex = 0 self.SoulActive = 0 return def GetLength(self): return sizeof(tagItemSuperProperty) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//07 10 ÎïÆ·¸ß¼¶ÐÅÏ¢//tagItemSuperProperty: Cmd:%s, SubCmd:%s, ItemPack:%d, ItemIndex:%d, SoulActive:%d '''\ %( self.Cmd, self.SubCmd, self.ItemPack, self.ItemIndex, self.SoulActive ) return DumpString m_NAtagItemSuperProperty=tagItemSuperProperty() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagItemSuperProperty.Cmd,m_NAtagItemSuperProperty.SubCmd))] = m_NAtagItemSuperProperty #------------------------------------------------------ #07 08 ÎïÆ·ÊÇ·ñËø¶¨Ë¢ÐÂ#tagItemLockRefresh class tagItemLockRefresh(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PackType", c_ubyte), ("ItemIndex", c_ubyte), ("IsLock", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0x07 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 = 0x07 self.SubCmd = 0x08 self.PackType = 0 self.ItemIndex = 0 self.IsLock = 0 return def GetLength(self): return sizeof(tagItemLockRefresh) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//07 08 ÎïÆ·ÊÇ·ñËø¶¨Ë¢ÐÂ//tagItemLockRefresh: Cmd:%s, SubCmd:%s, PackType:%d, ItemIndex:%d, IsLock:%d '''\ %( self.Cmd, self.SubCmd, self.PackType, self.ItemIndex, self.IsLock ) return DumpString m_NAtagItemLockRefresh=tagItemLockRefresh() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagItemLockRefresh.Cmd,m_NAtagItemLockRefresh.SubCmd))] = m_NAtagItemLockRefresh #------------------------------------------------------ #07 13 ÎïÆ·¼ñÆð³É¹¦#tagItemPickupResult class tagItemPickupResult(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("MapItemID", c_int), ("Result", c_ubyte), #0:ʧ°Ü 1:³É¹¦ ] def __init__(self): self.Clear() self.Cmd = 0x07 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 = 0x07 self.SubCmd = 0x13 self.MapItemID = 0 self.Result = 0 return def GetLength(self): return sizeof(tagItemPickupResult) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//07 13 ÎïÆ·¼ñÆð³É¹¦//tagItemPickupResult: Cmd:%s, SubCmd:%s, MapItemID:%d, Result:%d '''\ %( self.Cmd, self.SubCmd, self.MapItemID, self.Result ) return DumpString m_NAtagItemPickupResult=tagItemPickupResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagItemPickupResult.Cmd,m_NAtagItemPickupResult.SubCmd))] = m_NAtagItemPickupResult #------------------------------------------------------ #07 14 ÎïÆ··ÅÈëʧ°Ü#tagItemPutFail class tagItemPutFail(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("FromPlace", c_ubyte), ("FromIndex", c_ushort), ("ToPlace", c_ubyte), ("ToIndex", c_ushort), ] def __init__(self): self.Clear() self.Cmd = 0x07 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 = 0x07 self.SubCmd = 0x14 self.FromPlace = 0 self.FromIndex = 0 self.ToPlace = 0 self.ToIndex = 0 return def GetLength(self): return sizeof(tagItemPutFail) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//07 14 ÎïÆ··ÅÈëʧ°Ü//tagItemPutFail: Cmd:%s, SubCmd:%s, FromPlace:%d, FromIndex:%d, ToPlace:%d, ToIndex:%d '''\ %( self.Cmd, self.SubCmd, self.FromPlace, self.FromIndex, self.ToPlace, self.ToIndex ) return DumpString m_NAtagItemPutFail=tagItemPutFail() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagItemPutFail.Cmd,m_NAtagItemPutFail.SubCmd))] = m_NAtagItemPutFail #------------------------------------------------------ #07 20 ´«ËµÎïÆ·ºÏ³É½á¹û#tagLegendMergeResult class tagLegendMergeResult(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Result", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0x07 self.SubCmd = 0x20 return def 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 = 0x07 self.SubCmd = 0x20 self.Result = 0 return def GetLength(self): return sizeof(tagLegendMergeResult) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//07 20 ´«ËµÎïÆ·ºÏ³É½á¹û//tagLegendMergeResult: Cmd:%s, SubCmd:%s, Result:%d '''\ %( self.Cmd, self.SubCmd, self.Result ) return DumpString m_NAtagLegendMergeResult=tagLegendMergeResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagLegendMergeResult.Cmd,m_NAtagLegendMergeResult.SubCmd))] = m_NAtagLegendMergeResult #------------------------------------------------------ #07 21 ×°±¸ÖÆÔì»ØÓ¦#tagMakeItemAnswer class tagMakeItemAnswer(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("MakeType", c_ubyte), #ÀàÐÍ TMakeItemType ("Result", c_ubyte), #ÊÇ·ñ³É¹¦ ] def __init__(self): self.Clear() self.Cmd = 0x07 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 = 0x07 self.SubCmd = 0x21 self.MakeType = 0 self.Result = 0 return def GetLength(self): return sizeof(tagMakeItemAnswer) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//07 21 ×°±¸ÖÆÔì»ØÓ¦//tagMakeItemAnswer: Cmd:%s, SubCmd:%s, MakeType:%d, Result:%d '''\ %( self.Cmd, self.SubCmd, self.MakeType, self.Result ) return DumpString m_NAtagMakeItemAnswer=tagMakeItemAnswer() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMakeItemAnswer.Cmd,m_NAtagMakeItemAnswer.SubCmd))] = m_NAtagMakeItemAnswer #------------------------------------------------------ #07 18 Ò»¼ü»»×°½á¹û#tagOneKeyChangeEquipResult class tagOneKeyChangeEquipResult(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Result", c_ubyte), #1Ϊ³É¹¦ ] def __init__(self): self.Clear() self.Cmd = 0x07 self.SubCmd = 0x18 return def 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 = 0x07 self.SubCmd = 0x18 self.Result = 0 return def GetLength(self): return sizeof(tagOneKeyChangeEquipResult) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//07 18 Ò»¼ü»»×°½á¹û//tagOneKeyChangeEquipResult: Cmd:%s, SubCmd:%s, Result:%d '''\ %( self.Cmd, self.SubCmd, self.Result ) return DumpString m_NAtagOneKeyChangeEquipResult=tagOneKeyChangeEquipResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagOneKeyChangeEquipResult.Cmd,m_NAtagOneKeyChangeEquipResult.SubCmd))] = m_NAtagOneKeyChangeEquipResult #------------------------------------------------------ #07 06 Íæ¼ÒʹÓÃÎïÆ·³É¹¦#tagUseItemSuccess class tagUseItemSuccess(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ("ItemID", c_int), ("ItemIndex", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0x07 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 = 0x07 self.SubCmd = 0x06 self.PlayerID = 0 self.ItemID = 0 self.ItemIndex = 0 return def GetLength(self): return sizeof(tagUseItemSuccess) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//07 06 Íæ¼ÒʹÓÃÎïÆ·³É¹¦//tagUseItemSuccess: Cmd:%s, SubCmd:%s, PlayerID:%d, ItemID:%d, ItemIndex:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID, self.ItemID, self.ItemIndex ) return DumpString m_NAtagUseItemSuccess=tagUseItemSuccess() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagUseItemSuccess.Cmd,m_NAtagUseItemSuccess.SubCmd))] = m_NAtagUseItemSuccess #------------------------------------------------------ #07 23 Íæ¼ÒÌùÐĸ£´üÐÅÏ¢#tagRoleIntimateGoodyBagInfo ÀۼƱ£Ö¤µã±ä¸üʱ֪ͨ£¬¶ÔÐÔÄܼ¸ºõÎÞÓ°Ïì class tagRoleIntimateGoodyBagInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("IntimateGoodyBagID", c_int), #ÌùÐĸ£´üID ("GuaranteeValue", c_int), #ÀۼƱ£Ö¤µã ] def __init__(self): self.Clear() self.Cmd = 0x07 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 = 0x07 self.SubCmd = 0x23 self.IntimateGoodyBagID = 0 self.GuaranteeValue = 0 return def GetLength(self): return sizeof(tagRoleIntimateGoodyBagInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//07 23 Íæ¼ÒÌùÐĸ£´üÐÅÏ¢//tagRoleIntimateGoodyBagInfo ÀۼƱ£Ö¤µã±ä¸üʱ֪ͨ£¬¶ÔÐÔÄܼ¸ºõÎÞÓ°Ïì: Cmd:%s, SubCmd:%s, IntimateGoodyBagID:%d, GuaranteeValue:%d '''\ %( self.Cmd, self.SubCmd, self.IntimateGoodyBagID, self.GuaranteeValue ) return DumpString m_NAtagRoleIntimateGoodyBagInfo=tagRoleIntimateGoodyBagInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagRoleIntimateGoodyBagInfo.Cmd,m_NAtagRoleIntimateGoodyBagInfo.SubCmd))] = m_NAtagRoleIntimateGoodyBagInfo #------------------------------------------------------ #07 15 ÎïÆ·Ê£Óàʱ¼äË¢ÐÂ#tagItemRemainHourRefresh class tagItemRemainHourRefresh(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PackType", c_ubyte), ("ItemIndex", c_ubyte), ("RemainHour", c_int), ] def __init__(self): self.Clear() self.Cmd = 0x07 self.SubCmd = 0x15 return def 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 = 0x07 self.SubCmd = 0x15 self.PackType = 0 self.ItemIndex = 0 self.RemainHour = 0 return def GetLength(self): return sizeof(tagItemRemainHourRefresh) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//07 15 ÎïÆ·Ê£Óàʱ¼äË¢ÐÂ//tagItemRemainHourRefresh: Cmd:%s, SubCmd:%s, PackType:%d, ItemIndex:%d, RemainHour:%d '''\ %( self.Cmd, self.SubCmd, self.PackType, self.ItemIndex, self.RemainHour ) return DumpString m_NAtagItemRemainHourRefresh=tagItemRemainHourRefresh() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagItemRemainHourRefresh.Cmd,m_NAtagItemRemainHourRefresh.SubCmd))] = m_NAtagItemRemainHourRefresh #------------------------------------------------------ #07 24 Ö÷½Ç±³°üÒÑ¿ªÆô¸ñÊý#tagRolePackCanUseCount class tagRolePackCanUseCount(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PackType", c_ubyte), #±³°üÀàÐÍ:rptItem, rptEquip, rptWarehouse ("CanUseCount", c_ushort), #±³°üÒÑ¿ªÆô¸ñÊý ] def __init__(self): self.Clear() self.Cmd = 0x07 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 = 0x07 self.SubCmd = 0x24 self.PackType = 0 self.CanUseCount = 0 return def GetLength(self): return sizeof(tagRolePackCanUseCount) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//07 24 Ö÷½Ç±³°üÒÑ¿ªÆô¸ñÊý//tagRolePackCanUseCount: Cmd:%s, SubCmd:%s, PackType:%d, CanUseCount:%d '''\ %( self.Cmd, self.SubCmd, self.PackType, self.CanUseCount ) return DumpString m_NAtagRolePackCanUseCount=tagRolePackCanUseCount() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagRolePackCanUseCount.Cmd,m_NAtagRolePackCanUseCount.SubCmd))] = m_NAtagRolePackCanUseCount #------------------------------------------------------ #07 04 Ö÷½Ç±³°üË¢ÐÂ#tagRolePackRefresh class tagRolePackRefresh(Structure): Head = tagHead() PackType = 0 #(BYTE PackType)//±³°üÀàÐÍ:rptItem, rptEquip, rptWarehouse ItemPlace = 0 #(BYTE ItemPlace) ItemID = 0 #(DWORD ItemID) IsLocked = 0 #(BYTE IsLocked)//ÊÇ·ñËø¶¨ ItemCount = 0 #(WORD ItemCount)//ÎïÆ·ÊýÁ¿ IsBind = 0 #(BYTE IsBind)//ÊÇ·ñ°ó¶¨ GearScore = 0 #(DWORD GearScore)//ÆÀ·Ö RemainHour = 0 #(DWORD RemainHour)//Ê£Óàʱ¼ä(Сʱ) IsSuite = 0 #(BYTE IsSuite)//ÊÇ·ñÒѾ­Ì××°»¯ UserDataLen = 0 #(DWORD UserDataLen) UserData = "" #(String UserData)//size = UserDataLen ItemGUID = "" #(char ItemGUID[40]) data = None def __init__(self): self.Clear() self.Head.Cmd = 0x07 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.ItemPlace,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.IsLocked,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ItemCount,_pos = CommFunc.ReadWORD(_lpData, _pos) self.IsBind,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.GearScore,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.RemainHour,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.IsSuite,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.UserDataLen,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen) self.ItemGUID,_pos = CommFunc.ReadString(_lpData, _pos,40) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x07 self.Head.SubCmd = 0x04 self.PackType = 0 self.ItemPlace = 0 self.ItemID = 0 self.IsLocked = 0 self.ItemCount = 0 self.IsBind = 0 self.GearScore = 0 self.RemainHour = 0 self.IsSuite = 0 self.UserDataLen = 0 self.UserData = "" self.ItemGUID = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 1 length += 4 length += 1 length += 2 length += 1 length += 4 length += 4 length += 1 length += 4 length += len(self.UserData) length += 40 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.PackType) data = CommFunc.WriteBYTE(data, self.ItemPlace) data = CommFunc.WriteDWORD(data, self.ItemID) data = CommFunc.WriteBYTE(data, self.IsLocked) data = CommFunc.WriteWORD(data, self.ItemCount) data = CommFunc.WriteBYTE(data, self.IsBind) data = CommFunc.WriteDWORD(data, self.GearScore) data = CommFunc.WriteDWORD(data, self.RemainHour) data = CommFunc.WriteBYTE(data, self.IsSuite) data = CommFunc.WriteDWORD(data, self.UserDataLen) data = CommFunc.WriteString(data, self.UserDataLen, self.UserData) data = CommFunc.WriteString(data, 40, self.ItemGUID) return data def OutputString(self): DumpString = ''' Head:%s, PackType:%d, ItemPlace:%d, ItemID:%d, IsLocked:%d, ItemCount:%d, IsBind:%d, GearScore:%d, RemainHour:%d, IsSuite:%d, UserDataLen:%d, UserData:%s, ItemGUID:%s '''\ %( self.Head.OutputString(), self.PackType, self.ItemPlace, self.ItemID, self.IsLocked, self.ItemCount, self.IsBind, self.GearScore, self.RemainHour, self.IsSuite, self.UserDataLen, self.UserData, self.ItemGUID ) return DumpString m_NAtagRolePackRefresh=tagRolePackRefresh() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagRolePackRefresh.Head.Cmd,m_NAtagRolePackRefresh.Head.SubCmd))] = m_NAtagRolePackRefresh #------------------------------------------------------ #07 03 Ö÷½Ç¼ñÆðÎïÆ·#tagRolePickupItem class tagRolePickupItem(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ("MapItemID", c_int), ] def __init__(self): self.Clear() self.Cmd = 0x07 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 = 0x07 self.SubCmd = 0x03 self.PlayerID = 0 self.MapItemID = 0 return def GetLength(self): return sizeof(tagRolePickupItem) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//07 03 Ö÷½Ç¼ñÆðÎïÆ·//tagRolePickupItem: Cmd:%s, SubCmd:%s, PlayerID:%d, MapItemID:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID, self.MapItemID ) return DumpString m_NAtagRolePickupItem=tagRolePickupItem() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagRolePickupItem.Cmd,m_NAtagRolePickupItem.SubCmd))] = m_NAtagRolePickupItem #------------------------------------------------------ #07 16 É̳ÇÎïÆ·#tagWatchStoreItemList class tagWatchStoreItem(Structure): _pack_ = 1 _fields_ = [ ("ItemID", c_int), #ÎïÆ·ID ("SaleState", c_ubyte), #ÂòÂô״̬ ("ItemCount", c_ushort), #ÎïÆ·ÊýÁ¿ ("Gold", c_int), #ÎïÆ·±ê¼Û£¨½ð×Ó£© ("GoldPaper", c_int), #ÎïÆ·±ê¼Û£¨½ðƱ£© ("Silver", c_int), #ÎïÆ·±ê¼Û£¨Òø×Ó£© ("SilverPaper", 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.ItemID = 0 self.SaleState = 0 self.ItemCount = 0 self.Gold = 0 self.GoldPaper = 0 self.Silver = 0 self.SilverPaper = 0 return def GetLength(self): return sizeof(tagWatchStoreItem) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//07 16 É̳ÇÎïÆ·//tagWatchStoreItemList: ItemID:%d, SaleState:%d, ItemCount:%d, Gold:%d, GoldPaper:%d, Silver:%d, SilverPaper:%d '''\ %( self.ItemID, self.SaleState, self.ItemCount, self.Gold, self.GoldPaper, self.Silver, self.SilverPaper ) return DumpString class tagWatchStoreItemList(Structure): Head = tagHead() AreaIndex = 0 #(BYTE AreaIndex)//ÇøÓòIndex(TStoreArea) MenuIndex = 0 #(BYTE MenuIndex)//²Ëµ¥Index TypeIndex = 0 #(BYTE TypeIndex)//·ÖÀàË÷ÒýIndex(>0) PageIndex = 0 #(BYTE PageIndex)//Ò³ÃæIndex TotalPageCount = 0 #(BYTE TotalPageCount)//×ܹ²Ò³Êý Count = 0 #(BYTE Count) WatchStoreItem = list() #(vector WatchStoreItem)//size = Count data = None def __init__(self): self.Clear() self.Head.Cmd = 0x07 self.Head.SubCmd = 0x16 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.AreaIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.MenuIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.TypeIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.PageIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.TotalPageCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Count): temWatchStoreItem = tagWatchStoreItem() _pos = temWatchStoreItem.ReadData(_lpData, _pos) self.WatchStoreItem.append(temWatchStoreItem) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x07 self.Head.SubCmd = 0x16 self.AreaIndex = 0 self.MenuIndex = 0 self.TypeIndex = 0 self.PageIndex = 0 self.TotalPageCount = 0 self.Count = 0 self.WatchStoreItem = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 1 length += 1 length += 1 length += 1 length += 1 for i in range(self.Count): length += self.WatchStoreItem[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.AreaIndex) data = CommFunc.WriteBYTE(data, self.MenuIndex) data = CommFunc.WriteBYTE(data, self.TypeIndex) data = CommFunc.WriteBYTE(data, self.PageIndex) data = CommFunc.WriteBYTE(data, self.TotalPageCount) data = CommFunc.WriteBYTE(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.WatchStoreItem[i].GetLength(), self.WatchStoreItem[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, AreaIndex:%d, MenuIndex:%d, TypeIndex:%d, PageIndex:%d, TotalPageCount:%d, Count:%d, WatchStoreItem:%s '''\ %( self.Head.OutputString(), self.AreaIndex, self.MenuIndex, self.TypeIndex, self.PageIndex, self.TotalPageCount, self.Count, "..." ) return DumpString m_NAtagWatchStoreItemList=tagWatchStoreItemList() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagWatchStoreItemList.Head.Cmd,m_NAtagWatchStoreItemList.Head.SubCmd))] = m_NAtagWatchStoreItemList #------------------------------------------------------ #07 17 É̳ǹºÂòÎïÆ·¼Ç¼#tagStoreItemRecord class tagStoreItemRecord(Structure): Head = tagHead() TimeLen = 0 #(BYTE TimeLen) Time = "" #(String Time)//size = TimeLen ItemID = 0 #(DWORD ItemID)//ÎïÆ·ID ItemCount = 0 #(WORD ItemCount)//ÎïÆ·ÊýÁ¿ MoneyType = 0 #(BYTE MoneyType)//½ðÇ®ÀàÐÍ Money = 0 #(DWORD Money)//½ðÇ® ErrorMsgLen = 0 #(BYTE ErrorMsgLen)//´íÎóÐÅÏ¢, ÌîдSystemMessage, Èç¹û²»Ìîд, ±íʾ³É¹¦ ErrorMsg = "" #(String ErrorMsg)//size = ErrorMsgLen data = None def __init__(self): self.Clear() self.Head.Cmd = 0x07 self.Head.SubCmd = 0x17 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.TimeLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Time,_pos = CommFunc.ReadString(_lpData, _pos,self.TimeLen) self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ItemCount,_pos = CommFunc.ReadWORD(_lpData, _pos) self.MoneyType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Money,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ErrorMsgLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ErrorMsg,_pos = CommFunc.ReadString(_lpData, _pos,self.ErrorMsgLen) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x07 self.Head.SubCmd = 0x17 self.TimeLen = 0 self.Time = "" self.ItemID = 0 self.ItemCount = 0 self.MoneyType = 0 self.Money = 0 self.ErrorMsgLen = 0 self.ErrorMsg = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += len(self.Time) length += 4 length += 2 length += 1 length += 4 length += 1 length += len(self.ErrorMsg) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.TimeLen) data = CommFunc.WriteString(data, self.TimeLen, self.Time) data = CommFunc.WriteDWORD(data, self.ItemID) data = CommFunc.WriteWORD(data, self.ItemCount) data = CommFunc.WriteBYTE(data, self.MoneyType) data = CommFunc.WriteDWORD(data, self.Money) data = CommFunc.WriteBYTE(data, self.ErrorMsgLen) data = CommFunc.WriteString(data, self.ErrorMsgLen, self.ErrorMsg) return data def OutputString(self): DumpString = ''' Head:%s, TimeLen:%d, Time:%s, ItemID:%d, ItemCount:%d, MoneyType:%d, Money:%d, ErrorMsgLen:%d, ErrorMsg:%s '''\ %( self.Head.OutputString(), self.TimeLen, self.Time, self.ItemID, self.ItemCount, self.MoneyType, self.Money, self.ErrorMsgLen, self.ErrorMsg ) return DumpString m_NAtagStoreItemRecord=tagStoreItemRecord() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagStoreItemRecord.Head.Cmd,m_NAtagStoreItemRecord.Head.SubCmd))] = m_NAtagStoreItemRecord #------------------------------------------------------ #07 40 ÁìÈ¡ÀñÎï½á¹û#tagRetrievePresentResult class tagRetrievePresentResult(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Result", c_ubyte), #0-ʧ°Ü£»1-³É¹¦ ] def __init__(self): self.Clear() self.Cmd = 0x07 self.SubCmd = 0x40 return def 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 = 0x07 self.SubCmd = 0x40 self.Result = 0 return def GetLength(self): return sizeof(tagRetrievePresentResult) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//07 40 ÁìÈ¡ÀñÎï½á¹û//tagRetrievePresentResult: Cmd:%s, SubCmd:%s, Result:%d '''\ %( self.Cmd, self.SubCmd, self.Result ) return DumpString m_NAtagRetrievePresentResult=tagRetrievePresentResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagRetrievePresentResult.Cmd,m_NAtagRetrievePresentResult.SubCmd))] = m_NAtagRetrievePresentResult #------------------------------------------------------ #07 25 Ö÷½Ç±³°üˢУ¨Í¨ÖªËùÓÐÎïÆ·£© #tagRolePackRefreshEx class tagRoleItemRefresh(Structure): ItemPlace = 0 #(BYTE ItemPlace) ItemID = 0 #(DWORD ItemID) IsLocked = 0 #(BYTE IsLocked)//ÊÇ·ñËø¶¨ ItemCount = 0 #(WORD ItemCount)//ÎïÆ·ÊýÁ¿ IsBind = 0 #(BYTE IsBind)//ÊÇ·ñ°ó¶¨ GearScore = 0 #(DWORD GearScore)//ÆÀ·Ö RemainHour = 0 #(DWORD RemainHour)//Ê£Óàʱ¼ä(Сʱ) IsSuite = 0 #(BYTE IsSuite)//ÊÇ·ñÒѾ­Ì××°»¯ UserDataLen = 0 #(DWORD UserDataLen) UserData = "" #(String UserData)//size = UserDataLen ItemGUID = "" #(char ItemGUID[40]) data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.ItemPlace,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.IsLocked,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ItemCount,_pos = CommFunc.ReadWORD(_lpData, _pos) self.IsBind,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.GearScore,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.RemainHour,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.IsSuite,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.UserDataLen,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen) self.ItemGUID,_pos = CommFunc.ReadString(_lpData, _pos,40) return _pos def Clear(self): self.ItemPlace = 0 self.ItemID = 0 self.IsLocked = 0 self.ItemCount = 0 self.IsBind = 0 self.GearScore = 0 self.RemainHour = 0 self.IsSuite = 0 self.UserDataLen = 0 self.UserData = "" self.ItemGUID = "" return def GetLength(self): length = 0 length += 1 length += 4 length += 1 length += 2 length += 1 length += 4 length += 4 length += 1 length += 4 length += len(self.UserData) length += 40 return length def GetBuffer(self): data = '' data = CommFunc.WriteBYTE(data, self.ItemPlace) data = CommFunc.WriteDWORD(data, self.ItemID) data = CommFunc.WriteBYTE(data, self.IsLocked) data = CommFunc.WriteWORD(data, self.ItemCount) data = CommFunc.WriteBYTE(data, self.IsBind) data = CommFunc.WriteDWORD(data, self.GearScore) data = CommFunc.WriteDWORD(data, self.RemainHour) data = CommFunc.WriteBYTE(data, self.IsSuite) data = CommFunc.WriteDWORD(data, self.UserDataLen) data = CommFunc.WriteString(data, self.UserDataLen, self.UserData) data = CommFunc.WriteString(data, 40, self.ItemGUID) return data def OutputString(self): DumpString = ''' ItemPlace:%d, ItemID:%d, IsLocked:%d, ItemCount:%d, IsBind:%d, GearScore:%d, RemainHour:%d, IsSuite:%d, UserDataLen:%d, UserData:%s, ItemGUID:%s '''\ %( self.ItemPlace, self.ItemID, self.IsLocked, self.ItemCount, self.IsBind, self.GearScore, self.RemainHour, self.IsSuite, self.UserDataLen, self.UserData, self.ItemGUID ) return DumpString class tagRolePackRefreshEx(Structure): Head = tagHead() PackType = 0 #(BYTE PackType)//±³°üÀàÐÍ:rptItem, rptEquip, rptWarehouse ItemCount = 0 #(WORD ItemCount) ItemInfo = list() #(vector ItemInfo)//size = ItemCount data = None def __init__(self): self.Clear() self.Head.Cmd = 0x07 self.Head.SubCmd = 0x25 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.ItemCount,_pos = CommFunc.ReadWORD(_lpData, _pos) for i in range(self.ItemCount): temItemInfo = tagRoleItemRefresh() _pos = temItemInfo.ReadData(_lpData, _pos) self.ItemInfo.append(temItemInfo) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x07 self.Head.SubCmd = 0x25 self.PackType = 0 self.ItemCount = 0 self.ItemInfo = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 2 for i in range(self.ItemCount): length += self.ItemInfo[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.ItemCount) for i in range(self.ItemCount): data = CommFunc.WriteString(data, self.ItemInfo[i].GetLength(), self.ItemInfo[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, PackType:%d, ItemCount:%d, ItemInfo:%s '''\ %( self.Head.OutputString(), self.PackType, self.ItemCount, "..." ) return DumpString m_NAtagRolePackRefreshEx=tagRolePackRefreshEx() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagRolePackRefreshEx.Head.Cmd,m_NAtagRolePackRefreshEx.Head.SubCmd))] = m_NAtagRolePackRefreshEx #------------------------------------------------------ #08 19 СÓÎϷʼþ½á¹û#tagGameEventResult class tagGameEventResult(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ubyte), #TGameEvent ] def __init__(self): self.Clear() self.Cmd = 0x08 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 = 0x08 self.SubCmd = 0x19 self.Type = 0 return def GetLength(self): return sizeof(tagGameEventResult) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//08 19 СÓÎϷʼþ½á¹û//tagGameEventResult: Cmd:%s, SubCmd:%s, Type:%d '''\ %( self.Cmd, self.SubCmd, self.Type ) return DumpString m_NAtagGameEventResult=tagGameEventResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGameEventResult.Cmd,m_NAtagGameEventResult.SubCmd))] = m_NAtagGameEventResult #------------------------------------------------------ #08 12 ¿ªÊ¼×¼±¸Ê¼þ#tagBeginPrepare class tagBeginPrepare(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ("PrepareState", c_ubyte), #×¼±¸ÀàÐÍ, TPreparingState ("MaxTime", c_int), #×î´óʱ¼ä ("PrepareID", c_int), #×¼±¸ID, Èç¹ûÊǼ¼ÄÜ, ÔòÊǼ¼ÄÜID ] def __init__(self): self.Clear() self.Cmd = 0x08 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 = 0x08 self.SubCmd = 0x12 self.PlayerID = 0 self.PrepareState = 0 self.MaxTime = 0 self.PrepareID = 0 return def GetLength(self): return sizeof(tagBeginPrepare) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//08 12 ¿ªÊ¼×¼±¸Ê¼þ//tagBeginPrepare: Cmd:%s, SubCmd:%s, PlayerID:%d, PrepareState:%d, MaxTime:%d, PrepareID:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID, self.PrepareState, self.MaxTime, self.PrepareID ) return DumpString m_NAtagBeginPrepare=tagBeginPrepare() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagBeginPrepare.Cmd,m_NAtagBeginPrepare.SubCmd))] = m_NAtagBeginPrepare #------------------------------------------------------ #08 02 É̵êÎïÆ·#tagShopItem class tagSingleShopItem(Structure): ItemID = 0 #(WORD ItemID) Count = 0 #(WORD Count) KindIndex = 0 #(BYTE KindIndex)///<·ÖÀàË÷Òý MoneyType = 0 #(BYTE MoneyType)///<¼Û¸ñÀàÐÍ Money = 0 #(DWORD Money)///<¼Û¸ñ StarLV = 0 #(BYTE StarLV)//Ç¿»¯µÈ¼¶ IsLucky = 0 #(BYTE IsLucky)//ÊÇ·ñÐÒÔË×° SkillBoostIndex = 0 #(WORD SkillBoostIndex)//¼¼ÄÜÔöǿЧ¹ûË÷Òý SkillBoostValue = 0 #(DWORD SkillBoostValue)//¼¼ÄÜÔöǿЧ¹ûÖµ AddAttrLV = 0 #(BYTE AddAttrLV)//×°±¸×·¼ÓµÈ¼¶ AddAttrType = 0 #(BYTE AddAttrType)//×°±¸×·¼ÓÀàÐÍ AddAttrValue = 0 #(WORD AddAttrValue)//×°±¸×·¼ÓÖµ Hole = 0 #(BYTE Hole)//´ò¿×Êý StoneInfoSize = 0 #(BYTE StoneInfoSize)//±¦Ê¯ÐÅÏ¢×Ö·û´®³¤¶È StoneInfo = "" #(String StoneInfo)//±¦Ê¯ÐÅÏ¢×Ö·û´®£¬³¤¶È=StoneInfoSize¡£"[StoneID,¡­]"£¨ÊýÁ¿±ØÐëÓë´ò¿×ÊýÒ»Ö£¬¿ÕλÌî0£© LimitFamilyLV = 0 #(BYTE LimitFamilyLV)//ÏÞÖÆ¹ºÂò¼Ò×åµÈ¼¶ LimitCountDaily = 0 #(DWORD LimitCountDaily)//ÿÈÕÏÞÖÆ¹ºÂòÊý LimitPlusType1 = 0 #(BYTE LimitPlusType1)//À©Õ¹ÏÞÖÆÌõ¼þ1 ÀàÐÍ LimitPlusValue1 = 0 #(WORD LimitPlusValue1)//À©Õ¹ÏÞÖÆÌõ¼þ1 Öµ LimitPlusType2 = 0 #(BYTE LimitPlusType2)//À©Õ¹ÏÞÖÆÌõ¼þ2 ÀàÐÍ LimitPlusValue2 = 0 #(WORD LimitPlusValue2)//À©Õ¹ÏÞÖÆÌõ¼þ2 Öµ LimitPlusType3 = 0 #(BYTE LimitPlusType3)//À©Õ¹ÏÞÖÆÌõ¼þ3 ÀàÐÍ LimitPlusValue3 = 0 #(WORD LimitPlusValue3)//À©Õ¹ÏÞÖÆÌõ¼þ3 Öµ data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.ItemID,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos) self.KindIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.MoneyType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Money,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.StarLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.IsLucky,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.SkillBoostIndex,_pos = CommFunc.ReadWORD(_lpData, _pos) self.SkillBoostValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.AddAttrLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.AddAttrType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.AddAttrValue,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Hole,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.StoneInfoSize,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.StoneInfo,_pos = CommFunc.ReadString(_lpData, _pos,self.StoneInfoSize) self.LimitFamilyLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LimitCountDaily,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.LimitPlusType1,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LimitPlusValue1,_pos = CommFunc.ReadWORD(_lpData, _pos) self.LimitPlusType2,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LimitPlusValue2,_pos = CommFunc.ReadWORD(_lpData, _pos) self.LimitPlusType3,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LimitPlusValue3,_pos = CommFunc.ReadWORD(_lpData, _pos) return _pos def Clear(self): self.ItemID = 0 self.Count = 0 self.KindIndex = 0 self.MoneyType = 0 self.Money = 0 self.StarLV = 0 self.IsLucky = 0 self.SkillBoostIndex = 0 self.SkillBoostValue = 0 self.AddAttrLV = 0 self.AddAttrType = 0 self.AddAttrValue = 0 self.Hole = 0 self.StoneInfoSize = 0 self.StoneInfo = "" self.LimitFamilyLV = 0 self.LimitCountDaily = 0 self.LimitPlusType1 = 0 self.LimitPlusValue1 = 0 self.LimitPlusType2 = 0 self.LimitPlusValue2 = 0 self.LimitPlusType3 = 0 self.LimitPlusValue3 = 0 return def GetLength(self): length = 0 length += 2 length += 2 length += 1 length += 1 length += 4 length += 1 length += 1 length += 2 length += 4 length += 1 length += 1 length += 2 length += 1 length += 1 length += len(self.StoneInfo) length += 1 length += 4 length += 1 length += 2 length += 1 length += 2 length += 1 length += 2 return length def GetBuffer(self): data = '' data = CommFunc.WriteWORD(data, self.ItemID) data = CommFunc.WriteWORD(data, self.Count) data = CommFunc.WriteBYTE(data, self.KindIndex) data = CommFunc.WriteBYTE(data, self.MoneyType) data = CommFunc.WriteDWORD(data, self.Money) data = CommFunc.WriteBYTE(data, self.StarLV) data = CommFunc.WriteBYTE(data, self.IsLucky) data = CommFunc.WriteWORD(data, self.SkillBoostIndex) data = CommFunc.WriteDWORD(data, self.SkillBoostValue) data = CommFunc.WriteBYTE(data, self.AddAttrLV) data = CommFunc.WriteBYTE(data, self.AddAttrType) data = CommFunc.WriteWORD(data, self.AddAttrValue) data = CommFunc.WriteBYTE(data, self.Hole) data = CommFunc.WriteBYTE(data, self.StoneInfoSize) data = CommFunc.WriteString(data, self.StoneInfoSize, self.StoneInfo) data = CommFunc.WriteBYTE(data, self.LimitFamilyLV) data = CommFunc.WriteDWORD(data, self.LimitCountDaily) data = CommFunc.WriteBYTE(data, self.LimitPlusType1) data = CommFunc.WriteWORD(data, self.LimitPlusValue1) data = CommFunc.WriteBYTE(data, self.LimitPlusType2) data = CommFunc.WriteWORD(data, self.LimitPlusValue2) data = CommFunc.WriteBYTE(data, self.LimitPlusType3) data = CommFunc.WriteWORD(data, self.LimitPlusValue3) return data def OutputString(self): DumpString = ''' ItemID:%d, Count:%d, KindIndex:%d, MoneyType:%d, Money:%d, StarLV:%d, IsLucky:%d, SkillBoostIndex:%d, SkillBoostValue:%d, AddAttrLV:%d, AddAttrType:%d, AddAttrValue:%d, Hole:%d, StoneInfoSize:%d, StoneInfo:%s, LimitFamilyLV:%d, LimitCountDaily:%d, LimitPlusType1:%d, LimitPlusValue1:%d, LimitPlusType2:%d, LimitPlusValue2:%d, LimitPlusType3:%d, LimitPlusValue3:%d '''\ %( self.ItemID, self.Count, self.KindIndex, self.MoneyType, self.Money, self.StarLV, self.IsLucky, self.SkillBoostIndex, self.SkillBoostValue, self.AddAttrLV, self.AddAttrType, self.AddAttrValue, self.Hole, self.StoneInfoSize, self.StoneInfo, self.LimitFamilyLV, self.LimitCountDaily, self.LimitPlusType1, self.LimitPlusValue1, self.LimitPlusType2, self.LimitPlusValue2, self.LimitPlusType3, self.LimitPlusValue3 ) return DumpString class tagShopItem(Structure): Head = tagHead() ItemCount = 0 #(WORD ItemCount) Item = list() #(vector Item)//size = ItemCount data = None def __init__(self): self.Clear() self.Head.Cmd = 0x08 self.Head.SubCmd = 0x02 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): temItem = tagSingleShopItem() _pos = temItem.ReadData(_lpData, _pos) self.Item.append(temItem) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x08 self.Head.SubCmd = 0x02 self.ItemCount = 0 self.Item = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 for i in range(self.ItemCount): length += self.Item[i].GetLength() 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.WriteString(data, self.Item[i].GetLength(), self.Item[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, ItemCount:%d, Item:%s '''\ %( self.Head.OutputString(), self.ItemCount, "..." ) return DumpString m_NAtagShopItem=tagShopItem() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagShopItem.Head.Cmd,m_NAtagShopItem.Head.SubCmd))] = m_NAtagShopItem #------------------------------------------------------ #08 26 Çå¿ÕÈÎÎñ×Öµä#tagClearMissionDict class tagClearMissionDict(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("MissionID", c_int), ] def __init__(self): self.Clear() self.Cmd = 0x08 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 = 0x08 self.SubCmd = 0x26 self.MissionID = 0 return def GetLength(self): return sizeof(tagClearMissionDict) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//08 26 Çå¿ÕÈÎÎñ×Öµä//tagClearMissionDict: Cmd:%s, SubCmd:%s, MissionID:%d '''\ %( self.Cmd, self.SubCmd, self.MissionID ) return DumpString m_NAtagClearMissionDict=tagClearMissionDict() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagClearMissionDict.Cmd,m_NAtagClearMissionDict.SubCmd))] = m_NAtagClearMissionDict #------------------------------------------------------ #08 23 ÕæÊµÉ¾³ýÈÎÎñ#tagDelMission class tagDelMission(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("MissionID", c_int), ] def __init__(self): self.Clear() self.Cmd = 0x08 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 = 0x08 self.SubCmd = 0x23 self.MissionID = 0 return def GetLength(self): return sizeof(tagDelMission) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//08 23 ÕæÊµÉ¾³ýÈÎÎñ//tagDelMission: Cmd:%s, SubCmd:%s, MissionID:%d '''\ %( self.Cmd, self.SubCmd, self.MissionID ) return DumpString m_NAtagDelMission=tagDelMission() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagDelMission.Cmd,m_NAtagDelMission.SubCmd))] = m_NAtagDelMission #------------------------------------------------------ #08 11 ÌØÊâÈÎÎñ½á¹û#tagEndSpecialEvent class tagEndSpecialEvent(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ubyte), #1. ¿ªÊ¼´òÔì 2. ¿ªÊ¼¼ø¶¨ 3. ... ] def __init__(self): self.Clear() self.Cmd = 0x08 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 = 0x08 self.SubCmd = 0x11 self.Type = 0 return def GetLength(self): return sizeof(tagEndSpecialEvent) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//08 11 ÌØÊâÈÎÎñ½á¹û//tagEndSpecialEvent: Cmd:%s, SubCmd:%s, Type:%d '''\ %( self.Cmd, self.SubCmd, self.Type ) return DumpString m_NAtagEndSpecialEvent=tagEndSpecialEvent() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagEndSpecialEvent.Cmd,m_NAtagEndSpecialEvent.SubCmd))] = m_NAtagEndSpecialEvent #------------------------------------------------------ #08 05 ʼþ×ßÂ·Ëø#tagEventLock class tagEventLock(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("LockType", c_ubyte), # ËøÀàÐÍ,see EventLockType ("lock", c_ubyte), #0: ½âËø, ¿ÉÒÔ×ß· 1:ÉÏËø, ²»ÄÜ×ß· ("PosX", c_int), ("PosY", c_int), ] def __init__(self): self.Clear() self.Cmd = 0x08 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 = 0x08 self.SubCmd = 0x05 self.LockType = 0 self.lock = 0 self.PosX = 0 self.PosY = 0 return def GetLength(self): return sizeof(tagEventLock) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//08 05 ʼþ×ßÂ·Ëø//tagEventLock: Cmd:%s, SubCmd:%s, LockType:%d, lock:%d, PosX:%d, PosY:%d '''\ %( self.Cmd, self.SubCmd, self.LockType, self.lock, self.PosX, self.PosY ) return DumpString m_NAtagEventLock=tagEventLock() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagEventLock.Cmd,m_NAtagEventLock.SubCmd))] = m_NAtagEventLock #------------------------------------------------------ #08 01 ʼþÑ¡Ôñ#tagEventTalk class tagMsgStr(Structure): MsgLen = 0 #(WORD MsgLen) Msg = "" #(String Msg)//size = MsgLen data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.MsgLen,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Msg,_pos = CommFunc.ReadString(_lpData, _pos,self.MsgLen) return _pos def Clear(self): self.MsgLen = 0 self.Msg = "" return def GetLength(self): length = 0 length += 2 length += len(self.Msg) return length def GetBuffer(self): data = '' data = CommFunc.WriteWORD(data, self.MsgLen) data = CommFunc.WriteString(data, self.MsgLen, self.Msg) return data def OutputString(self): DumpString = ''' MsgLen:%d, Msg:%s '''\ %( self.MsgLen, self.Msg ) return DumpString class tagMsgParStr(Structure): MsgInt = 0 #(DWORD MsgInt)//intÀàÐÍ Len = 0 #(BYTE Len) Msg = "" #(String Msg)//size = Len data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.MsgInt,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Len,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Msg,_pos = CommFunc.ReadString(_lpData, _pos,self.Len) return _pos def Clear(self): self.MsgInt = 0 self.Len = 0 self.Msg = "" return def GetLength(self): length = 0 length += 4 length += 1 length += len(self.Msg) return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.MsgInt) data = CommFunc.WriteBYTE(data, self.Len) data = CommFunc.WriteString(data, self.Len, self.Msg) return data def OutputString(self): DumpString = ''' MsgInt:%d, Len:%d, Msg:%s '''\ %( self.MsgInt, self.Len, self.Msg ) return DumpString class tagEventTalk(Structure): Head = tagHead() Type = 0 #(BYTE Type)//1.µ¥»Ø´ð 2:¶à»Ø´ð 3:ͼƬ֪ͨ 4:µ¯³ö֪ͨ MissionID = 0 #(DWORD MissionID) Msg=tagMsgStr() #(tagMsgStr Msg) MsgParStrCount = 0 #(BYTE MsgParStrCount)//²ÎÊýÊýÄ¿ MsgParStr = list() #(vector MsgParStr)//size = MsgParStrCount NPCID = 0 #(DWORD NPCID) NameLen = 0 #(BYTE NameLen) Name = "" #(String Name)//size = NameLen AnswerCount = 0 #(BYTE AnswerCount) Answer = list() #(vector Answer)//size = AnswerCount data = None def __init__(self): self.Clear() self.Head.Cmd = 0x08 self.Head.SubCmd = 0x01 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.MissionID,_pos = CommFunc.ReadDWORD(_lpData, _pos) _pos = self.Msg.ReadData(_lpData,_pos) self.MsgParStrCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.MsgParStrCount): temMsgParStr = tagMsgParStr() _pos = temMsgParStr.ReadData(_lpData, _pos) self.MsgParStr.append(temMsgParStr) self.NPCID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Name,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen) self.AnswerCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.AnswerCount): temAnswer = tagMsgStr() _pos = temAnswer.ReadData(_lpData, _pos) self.Answer.append(temAnswer) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x08 self.Head.SubCmd = 0x01 self.Type = 0 self.MissionID = 0 self.Msg=tagMsgStr() self.Msg.Clear() self.MsgParStrCount = 0 self.MsgParStr = list() self.NPCID = 0 self.NameLen = 0 self.Name = "" self.AnswerCount = 0 self.Answer = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 4 length += self.Msg.GetLength() length += 1 for i in range(self.MsgParStrCount): length += self.MsgParStr[i].GetLength() length += 4 length += 1 length += len(self.Name) length += 1 for i in range(self.AnswerCount): length += self.Answer[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.WriteDWORD(data, self.MissionID) data = CommFunc.WriteString(data,self.Msg.GetLength(),self.Msg.GetBuffer()) data = CommFunc.WriteBYTE(data, self.MsgParStrCount) for i in range(self.MsgParStrCount): data = CommFunc.WriteString(data, self.MsgParStr[i].GetLength(), self.MsgParStr[i].GetBuffer()) data = CommFunc.WriteDWORD(data, self.NPCID) data = CommFunc.WriteBYTE(data, self.NameLen) data = CommFunc.WriteString(data, self.NameLen, self.Name) data = CommFunc.WriteBYTE(data, self.AnswerCount) for i in range(self.AnswerCount): data = CommFunc.WriteString(data, self.Answer[i].GetLength(), self.Answer[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Type:%d, MissionID:%d, Msg:%s, MsgParStrCount:%d, MsgParStr:%s, NPCID:%d, NameLen:%d, Name:%s, AnswerCount:%d, Answer:%s '''\ %( self.Head.OutputString(), self.Type, self.MissionID, self.Msg.OutputString(), self.MsgParStrCount, "...", self.NPCID, self.NameLen, self.Name, self.AnswerCount, "..." ) return DumpString m_NAtagEventTalk=tagEventTalk() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagEventTalk.Head.Cmd,m_NAtagEventTalk.Head.SubCmd))] = m_NAtagEventTalk #------------------------------------------------------ #08 22 ¼Ò×åÕ½¶ÔÕ½½á¹û#tagFamilyWarResult class tagPlayerFamilyWarResult(Structure): PlayerID = 0 #(DWORD PlayerID) PlayerNameLen = 0 #(BYTE PlayerNameLen) PlayerName = "" #(String PlayerName)//size = PlayerNameLen Job = 0 #(BYTE Job) LV = 0 #(WORD LV) FlagCount = 0 #(BYTE FlagCount)//¶áÆìÊý Kill = 0 #(WORD Kill) Reborn = 0 #(WORD Reborn) SecondaryAttack = 0 #(WORD SecondaryAttack)//Öú¹¥ÊýÄ¿ 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.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.FlagCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Kill,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Reborn,_pos = CommFunc.ReadWORD(_lpData, _pos) self.SecondaryAttack,_pos = CommFunc.ReadWORD(_lpData, _pos) return _pos def Clear(self): self.PlayerID = 0 self.PlayerNameLen = 0 self.PlayerName = "" self.Job = 0 self.LV = 0 self.FlagCount = 0 self.Kill = 0 self.Reborn = 0 self.SecondaryAttack = 0 return def GetLength(self): length = 0 length += 4 length += 1 length += len(self.PlayerName) length += 1 length += 2 length += 1 length += 2 length += 2 length += 2 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.Job) data = CommFunc.WriteWORD(data, self.LV) data = CommFunc.WriteBYTE(data, self.FlagCount) data = CommFunc.WriteWORD(data, self.Kill) data = CommFunc.WriteWORD(data, self.Reborn) data = CommFunc.WriteWORD(data, self.SecondaryAttack) return data def OutputString(self): DumpString = ''' PlayerID:%d, PlayerNameLen:%d, PlayerName:%s, Job:%d, LV:%d, FlagCount:%d, Kill:%d, Reborn:%d, SecondaryAttack:%d '''\ %( self.PlayerID, self.PlayerNameLen, self.PlayerName, self.Job, self.LV, self.FlagCount, self.Kill, self.Reborn, self.SecondaryAttack ) return DumpString class tagFamilyWarResult(Structure): Head = tagHead() AttackerNameLen = 0 #(BYTE AttackerNameLen)//½ø¹¥·½ AttackerName = "" #(String AttackerName)//size = AttackerNameLen DefenderNameLen = 0 #(BYTE DefenderNameLen)//·ÀÊØ·½ DefenderName = "" #(String DefenderName)//size = DefenderNameLen WinnerFamilyNameLen = 0 #(BYTE WinnerFamilyNameLen) WinnerFamilyName = "" #(String WinnerFamilyName)//size = WinnerFamilyNameLen OccuptNorth = 0 #(BYTE OccuptNorth)//±±²¿Ëþ OccupyMiddle = 0 #(BYTE OccupyMiddle)//Öв¿Ëþ OccupySouth = 0 #(BYTE OccupySouth)//Äϲ¿Ëþ OccupyFlag = 0 #(BYTE OccupyFlag)//Æå AttackerPlayerCount = 0 #(BYTE AttackerPlayerCount)//½ø¹¥·½ÈËÊý AttackerResult = list() #(vector AttackerResult)//size = AttackerPlayerCount DefendPlayerCount = 0 #(BYTE DefendPlayerCount)//·ÀÊØ·½ÈËÊý DefendResult = list() #(vector DefendResult)//size = DefendPlayerCount data = None def __init__(self): self.Clear() self.Head.Cmd = 0x08 self.Head.SubCmd = 0x22 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.AttackerNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.AttackerName,_pos = CommFunc.ReadString(_lpData, _pos,self.AttackerNameLen) self.DefenderNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.DefenderName,_pos = CommFunc.ReadString(_lpData, _pos,self.DefenderNameLen) self.WinnerFamilyNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.WinnerFamilyName,_pos = CommFunc.ReadString(_lpData, _pos,self.WinnerFamilyNameLen) self.OccuptNorth,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.OccupyMiddle,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.OccupySouth,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.OccupyFlag,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.AttackerPlayerCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.AttackerPlayerCount): temAttackerResult = tagPlayerFamilyWarResult() _pos = temAttackerResult.ReadData(_lpData, _pos) self.AttackerResult.append(temAttackerResult) self.DefendPlayerCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.DefendPlayerCount): temDefendResult = tagPlayerFamilyWarResult() _pos = temDefendResult.ReadData(_lpData, _pos) self.DefendResult.append(temDefendResult) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x08 self.Head.SubCmd = 0x22 self.AttackerNameLen = 0 self.AttackerName = "" self.DefenderNameLen = 0 self.DefenderName = "" self.WinnerFamilyNameLen = 0 self.WinnerFamilyName = "" self.OccuptNorth = 0 self.OccupyMiddle = 0 self.OccupySouth = 0 self.OccupyFlag = 0 self.AttackerPlayerCount = 0 self.AttackerResult = list() self.DefendPlayerCount = 0 self.DefendResult = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += len(self.AttackerName) length += 1 length += len(self.DefenderName) length += 1 length += len(self.WinnerFamilyName) length += 1 length += 1 length += 1 length += 1 length += 1 for i in range(self.AttackerPlayerCount): length += self.AttackerResult[i].GetLength() length += 1 for i in range(self.DefendPlayerCount): length += self.DefendResult[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.AttackerNameLen) data = CommFunc.WriteString(data, self.AttackerNameLen, self.AttackerName) data = CommFunc.WriteBYTE(data, self.DefenderNameLen) data = CommFunc.WriteString(data, self.DefenderNameLen, self.DefenderName) data = CommFunc.WriteBYTE(data, self.WinnerFamilyNameLen) data = CommFunc.WriteString(data, self.WinnerFamilyNameLen, self.WinnerFamilyName) data = CommFunc.WriteBYTE(data, self.OccuptNorth) data = CommFunc.WriteBYTE(data, self.OccupyMiddle) data = CommFunc.WriteBYTE(data, self.OccupySouth) data = CommFunc.WriteBYTE(data, self.OccupyFlag) data = CommFunc.WriteBYTE(data, self.AttackerPlayerCount) for i in range(self.AttackerPlayerCount): data = CommFunc.WriteString(data, self.AttackerResult[i].GetLength(), self.AttackerResult[i].GetBuffer()) data = CommFunc.WriteBYTE(data, self.DefendPlayerCount) for i in range(self.DefendPlayerCount): data = CommFunc.WriteString(data, self.DefendResult[i].GetLength(), self.DefendResult[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, AttackerNameLen:%d, AttackerName:%s, DefenderNameLen:%d, DefenderName:%s, WinnerFamilyNameLen:%d, WinnerFamilyName:%s, OccuptNorth:%d, OccupyMiddle:%d, OccupySouth:%d, OccupyFlag:%d, AttackerPlayerCount:%d, AttackerResult:%s, DefendPlayerCount:%d, DefendResult:%s '''\ %( self.Head.OutputString(), self.AttackerNameLen, self.AttackerName, self.DefenderNameLen, self.DefenderName, self.WinnerFamilyNameLen, self.WinnerFamilyName, self.OccuptNorth, self.OccupyMiddle, self.OccupySouth, self.OccupyFlag, self.AttackerPlayerCount, "...", self.DefendPlayerCount, "..." ) return DumpString m_NAtagFamilyWarResult=tagFamilyWarResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagFamilyWarResult.Head.Cmd,m_NAtagFamilyWarResult.Head.SubCmd))] = m_NAtagFamilyWarResult #------------------------------------------------------ #08 24 ¸£´ü½á¹û#tagGamblingResult class tagGamblingItem(Structure): _pack_ = 1 _fields_ = [ ("ID", c_int), #ÎïÆ·ID ("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.ID = 0 self.Count = 0 return def GetLength(self): return sizeof(tagGamblingItem) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//08 24 ¸£´ü½á¹û//tagGamblingResult: ID:%d, Count:%d '''\ %( self.ID, self.Count ) return DumpString class tagGamblingResult(Structure): Head = tagHead() IdentifyItemIndex = 0 #(BYTE IdentifyItemIndex)//µ±Ç°¼ø¶¨µÄÎïÆ·Ë÷Òý ResultIndex = 0 #(BYTE ResultIndex)//½á¹ûÐòºÅ IdentifyCount = 0 #(BYTE IdentifyCount) Items = list() #(vector Items)//size = IdentifyCount data = None def __init__(self): self.Clear() self.Head.Cmd = 0x08 self.Head.SubCmd = 0x24 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.IdentifyItemIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ResultIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.IdentifyCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.IdentifyCount): temItems = tagGamblingItem() _pos = temItems.ReadData(_lpData, _pos) self.Items.append(temItems) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x08 self.Head.SubCmd = 0x24 self.IdentifyItemIndex = 0 self.ResultIndex = 0 self.IdentifyCount = 0 self.Items = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 1 length += 1 for i in range(self.IdentifyCount): length += self.Items[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.IdentifyItemIndex) data = CommFunc.WriteBYTE(data, self.ResultIndex) data = CommFunc.WriteBYTE(data, self.IdentifyCount) for i in range(self.IdentifyCount): data = CommFunc.WriteString(data, self.Items[i].GetLength(), self.Items[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, IdentifyItemIndex:%d, ResultIndex:%d, IdentifyCount:%d, Items:%s '''\ %( self.Head.OutputString(), self.IdentifyItemIndex, self.ResultIndex, self.IdentifyCount, "..." ) return DumpString m_NAtagGamblingResult=tagGamblingResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGamblingResult.Head.Cmd,m_NAtagGamblingResult.Head.SubCmd))] = m_NAtagGamblingResult #------------------------------------------------------ #08 14 ¼ø¶¨½á¹û#tagIdentifyResult class tagIdentifyItem(Structure): _pack_ = 1 _fields_ = [ ("ID", c_int), #ÎïÆ·ID ("StarLV", c_ubyte), #ÐǼ¶ ("SoulProperty", c_ushort), #Áé»êÊôÐÔID, Èç¹ûûÓÐ, ÔòΪ0 ("Property", c_ubyte), #ÎåÐÐ, Èç¹ûûÓÐ, Ϊ0 ("HoleCount", 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.ID = 0 self.StarLV = 0 self.SoulProperty = 0 self.Property = 0 self.HoleCount = 0 return def GetLength(self): return sizeof(tagIdentifyItem) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//08 14 ¼ø¶¨½á¹û//tagIdentifyResult: ID:%d, StarLV:%d, SoulProperty:%d, Property:%d, HoleCount:%d '''\ %( self.ID, self.StarLV, self.SoulProperty, self.Property, self.HoleCount ) return DumpString class tagIdentifyResult(Structure): Head = tagHead() IdentifyItemIndex = 0 #(BYTE IdentifyItemIndex)//µ±Ç°¼ø¶¨µÄÎïÆ·Ë÷Òý ResultIndex = 0 #(BYTE ResultIndex)//½á¹ûÐòºÅ CanContinue = 0 #(BYTE CanContinue)//ÊÇ·ñÄܹ»¼ÌÐø¼ø¶¨ IdentifyCount = 0 #(BYTE IdentifyCount) Items = list() #(vector Items)//size = IdentifyCount data = None def __init__(self): self.Clear() self.Head.Cmd = 0x08 self.Head.SubCmd = 0x14 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.IdentifyItemIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ResultIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.CanContinue,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.IdentifyCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.IdentifyCount): temItems = tagIdentifyItem() _pos = temItems.ReadData(_lpData, _pos) self.Items.append(temItems) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x08 self.Head.SubCmd = 0x14 self.IdentifyItemIndex = 0 self.ResultIndex = 0 self.CanContinue = 0 self.IdentifyCount = 0 self.Items = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 1 length += 1 length += 1 for i in range(self.IdentifyCount): length += self.Items[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.IdentifyItemIndex) data = CommFunc.WriteBYTE(data, self.ResultIndex) data = CommFunc.WriteBYTE(data, self.CanContinue) data = CommFunc.WriteBYTE(data, self.IdentifyCount) for i in range(self.IdentifyCount): data = CommFunc.WriteString(data, self.Items[i].GetLength(), self.Items[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, IdentifyItemIndex:%d, ResultIndex:%d, CanContinue:%d, IdentifyCount:%d, Items:%s '''\ %( self.Head.OutputString(), self.IdentifyItemIndex, self.ResultIndex, self.CanContinue, self.IdentifyCount, "..." ) return DumpString m_NAtagIdentifyResult=tagIdentifyResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagIdentifyResult.Head.Cmd,m_NAtagIdentifyResult.Head.SubCmd))] = m_NAtagIdentifyResult #------------------------------------------------------ #08 27 ÈÎÎñÃèÊö#tagMissionDesc class tagMissionDesc(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("MissionID", c_int), #ÈÎÎñID ("MissionState", c_ubyte), #ÈÎÎñ״̬, ´ý¶¨ ("DiscriptionIndex", c_ushort), #ÈÎÎñÃèÊöINDEX ] def __init__(self): self.Clear() self.Cmd = 0x08 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 = 0x08 self.SubCmd = 0x27 self.MissionID = 0 self.MissionState = 0 self.DiscriptionIndex = 0 return def GetLength(self): return sizeof(tagMissionDesc) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//08 27 ÈÎÎñÃèÊö//tagMissionDesc: Cmd:%s, SubCmd:%s, MissionID:%d, MissionState:%d, DiscriptionIndex:%d '''\ %( self.Cmd, self.SubCmd, self.MissionID, self.MissionState, self.DiscriptionIndex ) return DumpString m_NAtagMissionDesc=tagMissionDesc() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMissionDesc.Cmd,m_NAtagMissionDesc.SubCmd))] = m_NAtagMissionDesc #------------------------------------------------------ #08 21 ÈÎÎñË¢ÐÂ#tagMissionDescription class tagPlayerMissionLight(Structure): _pack_ = 1 _fields_ = [ ("NPCID", c_int), ("Light", 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.Light = 0 return def GetLength(self): return sizeof(tagPlayerMissionLight) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//08 21 ÈÎÎñË¢ÐÂ//tagMissionDescription: NPCID:%d, Light:%d '''\ %( self.NPCID, self.Light ) return DumpString class tagPlayerMissionInfo(Structure): MissionInfoLen = 0 #(BYTE MissionInfoLen)//ÈÎÎñ×·×Ù MissionInfo = "" #(String MissionInfo)//size = MissionInfoLen data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.MissionInfoLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.MissionInfo,_pos = CommFunc.ReadString(_lpData, _pos,self.MissionInfoLen) return _pos def Clear(self): self.MissionInfoLen = 0 self.MissionInfo = "" return def GetLength(self): length = 0 length += 1 length += len(self.MissionInfo) return length def GetBuffer(self): data = '' data = CommFunc.WriteBYTE(data, self.MissionInfoLen) data = CommFunc.WriteString(data, self.MissionInfoLen, self.MissionInfo) return data def OutputString(self): DumpString = ''' MissionInfoLen:%d, MissionInfo:%s '''\ %( self.MissionInfoLen, self.MissionInfo ) return DumpString class tagMissionDescription(Structure): Head = tagHead() MissionID = 0 #(DWORD MissionID)//ÈÎÎñID MissionType = 0 #(BYTE MissionType)//ÈÎÎñÀàÐÍ NPCID = 0 #(DWORD NPCID)//ÆðʼNPC LV = 0 #(WORD LV)//¿É½ÓµÈ¼¶ NameLen = 0 #(BYTE NameLen)//ÈÎÎñÃû×Ö ColorLV = 0 #(DWORD ColorLV)//ÈÎÎñÑÕÉ« Name = "" #(String Name)//size = NameLen MissionState = 0 #(BYTE MissionState)//ÈÎÎñ״̬, ´ý¶¨ DescLen = 0 #(BYTE DescLen)//ÈÎÎñÃèÊö Desc = "" #(String Desc)//size = DescLen PlayerMissionInfoLen = 0 #(BYTE PlayerMissionInfoLen)//ÈÎÎñ×·×Ù PlayerMissionInfo = list() #(vector PlayerMissionInfo)//size = PlayerMissionInfoLen PlayerMissionLightLen = 0 #(BYTE PlayerMissionLightLen)//Í·¶¥Í¼±ê PlayerMissionLight = list() #(vector PlayerMissionLight)//size = PlayerMissionLightLen ComleteMsgLen = 0 #(BYTE ComleteMsgLen) ComleteMsg = "" #(String ComleteMsg)//size = ComleteMsgLen CanDelete = 0 #(BYTE CanDelete)//ÊÇ·ñÄܹ»É¾³ý data = None def __init__(self): self.Clear() self.Head.Cmd = 0x08 self.Head.SubCmd = 0x21 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.MissionID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MissionType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.NPCID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ColorLV,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Name,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen) self.MissionState,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.DescLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Desc,_pos = CommFunc.ReadString(_lpData, _pos,self.DescLen) self.PlayerMissionInfoLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.PlayerMissionInfoLen): temPlayerMissionInfo = tagPlayerMissionInfo() _pos = temPlayerMissionInfo.ReadData(_lpData, _pos) self.PlayerMissionInfo.append(temPlayerMissionInfo) self.PlayerMissionLightLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.PlayerMissionLightLen): temPlayerMissionLight = tagPlayerMissionLight() _pos = temPlayerMissionLight.ReadData(_lpData, _pos) self.PlayerMissionLight.append(temPlayerMissionLight) self.ComleteMsgLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ComleteMsg,_pos = CommFunc.ReadString(_lpData, _pos,self.ComleteMsgLen) self.CanDelete,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x08 self.Head.SubCmd = 0x21 self.MissionID = 0 self.MissionType = 0 self.NPCID = 0 self.LV = 0 self.NameLen = 0 self.ColorLV = 0 self.Name = "" self.MissionState = 0 self.DescLen = 0 self.Desc = "" self.PlayerMissionInfoLen = 0 self.PlayerMissionInfo = list() self.PlayerMissionLightLen = 0 self.PlayerMissionLight = list() self.ComleteMsgLen = 0 self.ComleteMsg = "" self.CanDelete = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += 4 length += 2 length += 1 length += 4 length += len(self.Name) length += 1 length += 1 length += len(self.Desc) length += 1 for i in range(self.PlayerMissionInfoLen): length += self.PlayerMissionInfo[i].GetLength() length += 1 for i in range(self.PlayerMissionLightLen): length += self.PlayerMissionLight[i].GetLength() length += 1 length += len(self.ComleteMsg) length += 1 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.MissionID) data = CommFunc.WriteBYTE(data, self.MissionType) data = CommFunc.WriteDWORD(data, self.NPCID) data = CommFunc.WriteWORD(data, self.LV) data = CommFunc.WriteBYTE(data, self.NameLen) data = CommFunc.WriteDWORD(data, self.ColorLV) data = CommFunc.WriteString(data, self.NameLen, self.Name) data = CommFunc.WriteBYTE(data, self.MissionState) data = CommFunc.WriteBYTE(data, self.DescLen) data = CommFunc.WriteString(data, self.DescLen, self.Desc) data = CommFunc.WriteBYTE(data, self.PlayerMissionInfoLen) for i in range(self.PlayerMissionInfoLen): data = CommFunc.WriteString(data, self.PlayerMissionInfo[i].GetLength(), self.PlayerMissionInfo[i].GetBuffer()) data = CommFunc.WriteBYTE(data, self.PlayerMissionLightLen) for i in range(self.PlayerMissionLightLen): data = CommFunc.WriteString(data, self.PlayerMissionLight[i].GetLength(), self.PlayerMissionLight[i].GetBuffer()) data = CommFunc.WriteBYTE(data, self.ComleteMsgLen) data = CommFunc.WriteString(data, self.ComleteMsgLen, self.ComleteMsg) data = CommFunc.WriteBYTE(data, self.CanDelete) return data def OutputString(self): DumpString = ''' Head:%s, MissionID:%d, MissionType:%d, NPCID:%d, LV:%d, NameLen:%d, ColorLV:%d, Name:%s, MissionState:%d, DescLen:%d, Desc:%s, PlayerMissionInfoLen:%d, PlayerMissionInfo:%s, PlayerMissionLightLen:%d, PlayerMissionLight:%s, ComleteMsgLen:%d, ComleteMsg:%s, CanDelete:%d '''\ %( self.Head.OutputString(), self.MissionID, self.MissionType, self.NPCID, self.LV, self.NameLen, self.ColorLV, self.Name, self.MissionState, self.DescLen, self.Desc, self.PlayerMissionInfoLen, "...", self.PlayerMissionLightLen, "...", self.ComleteMsgLen, self.ComleteMsg, self.CanDelete ) return DumpString m_NAtagMissionDescription=tagMissionDescription() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMissionDescription.Head.Cmd,m_NAtagMissionDescription.Head.SubCmd))] = m_NAtagMissionDescription #------------------------------------------------------ #08 20 ÈÎÎñ×ÖµäÐÅÏ¢#tagMissionDict class tagMissionDict(Structure): Head = tagHead() MissionID = 0 #(DWORD MissionID) DictKeyLen = 0 #(BYTE DictKeyLen) DictKey = "" #(String DictKey)//size = DictKeyLen DictValue = 0 #(DWORD DictValue) data = None def __init__(self): self.Clear() self.Head.Cmd = 0x08 self.Head.SubCmd = 0x20 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.MissionID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.DictKeyLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.DictKey,_pos = CommFunc.ReadString(_lpData, _pos,self.DictKeyLen) self.DictValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x08 self.Head.SubCmd = 0x20 self.MissionID = 0 self.DictKeyLen = 0 self.DictKey = "" self.DictValue = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += len(self.DictKey) length += 4 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.MissionID) data = CommFunc.WriteBYTE(data, self.DictKeyLen) data = CommFunc.WriteString(data, self.DictKeyLen, self.DictKey) data = CommFunc.WriteDWORD(data, self.DictValue) return data def OutputString(self): DumpString = ''' Head:%s, MissionID:%d, DictKeyLen:%d, DictKey:%s, DictValue:%d '''\ %( self.Head.OutputString(), self.MissionID, self.DictKeyLen, self.DictKey, self.DictValue ) return DumpString m_NAtagMissionDict=tagMissionDict() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMissionDict.Head.Cmd,m_NAtagMissionDict.Head.SubCmd))] = m_NAtagMissionDict #------------------------------------------------------ #08 31 ÊÖ»úVIPÊ£Óàʱ¼äͬ²½#tagPhoneVIPRemainTime class tagPhoneVIPRemainTime(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("RemainTime", c_int), #Ê£Óàʱ¼ä ] def __init__(self): self.Clear() self.Cmd = 0x08 self.SubCmd = 0x31 return def 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 = 0x08 self.SubCmd = 0x31 self.RemainTime = 0 return def GetLength(self): return sizeof(tagPhoneVIPRemainTime) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//08 31 ÊÖ»úVIPÊ£Óàʱ¼äͬ²½//tagPhoneVIPRemainTime: Cmd:%s, SubCmd:%s, RemainTime:%d '''\ %( self.Cmd, self.SubCmd, self.RemainTime ) return DumpString m_NAtagPhoneVIPRemainTime=tagPhoneVIPRemainTime() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPhoneVIPRemainTime.Cmd,m_NAtagPhoneVIPRemainTime.SubCmd))] = m_NAtagPhoneVIPRemainTime #------------------------------------------------------ #08 13 ×¼±¸½áÊø#tagPrepareEnd class tagPrepareEnd(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ("Type", c_ubyte), # 0 ³É¹¦£¬1ÆäËûʧ°Ü ] def __init__(self): self.Clear() self.Cmd = 0x08 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 = 0x08 self.SubCmd = 0x13 self.PlayerID = 0 self.Type = 0 return def GetLength(self): return sizeof(tagPrepareEnd) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//08 13 ×¼±¸½áÊø//tagPrepareEnd: Cmd:%s, SubCmd:%s, PlayerID:%d, Type:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID, self.Type ) return DumpString m_NAtagPrepareEnd=tagPrepareEnd() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPrepareEnd.Cmd,m_NAtagPrepareEnd.SubCmd))] = m_NAtagPrepareEnd #------------------------------------------------------ #08 30 ·¢Ë͹¦ÄÜÏûϢ֪ͨ#tagSendEventMsg class tagSendEventMsg(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("EventType", c_ubyte), #¹¦ÄÜÀàÐÍ ("State", c_ubyte), #ÈÎÎñ״̬(¿ªÊ¼»ò½áÊø) ("Time", c_int), #ʱ¼ä(Ãë) ("Exp", c_int), #½±Àø¾­Ñé ("Money", c_int), #½±Àø½ðÇ® ] def __init__(self): self.Clear() self.Cmd = 0x08 self.SubCmd = 0x30 return def 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 = 0x08 self.SubCmd = 0x30 self.EventType = 0 self.State = 0 self.Time = 0 self.Exp = 0 self.Money = 0 return def GetLength(self): return sizeof(tagSendEventMsg) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//08 30 ·¢Ë͹¦ÄÜÏûϢ֪ͨ//tagSendEventMsg: Cmd:%s, SubCmd:%s, EventType:%d, State:%d, Time:%d, Exp:%d, Money:%d '''\ %( self.Cmd, self.SubCmd, self.EventType, self.State, self.Time, self.Exp, self.Money ) return DumpString m_NAtagSendEventMsg=tagSendEventMsg() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSendEventMsg.Cmd,m_NAtagSendEventMsg.SubCmd))] = m_NAtagSendEventMsg #------------------------------------------------------ #08 03 É̵깺Âò½á¹û#tagShoppingResult class tagShoppingResult(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ShopIndex", c_ushort), ("Result", c_ubyte), #TShopResult ] def __init__(self): self.Clear() self.Cmd = 0x08 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 = 0x08 self.SubCmd = 0x03 self.ShopIndex = 0 self.Result = 0 return def GetLength(self): return sizeof(tagShoppingResult) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//08 03 É̵깺Âò½á¹û//tagShoppingResult: Cmd:%s, SubCmd:%s, ShopIndex:%d, Result:%d '''\ %( self.Cmd, self.SubCmd, self.ShopIndex, self.Result ) return DumpString m_NAtagShoppingResult=tagShoppingResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagShoppingResult.Cmd,m_NAtagShoppingResult.SubCmd))] = m_NAtagShoppingResult #------------------------------------------------------ #08 10 ¿ªÊ¼ÌØÊâʼþ#tagSpecialEvent class tagSpecialEvent(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ubyte), #TSpecialEvent ] def __init__(self): self.Clear() self.Cmd = 0x08 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 = 0x08 self.SubCmd = 0x10 self.Type = 0 return def GetLength(self): return sizeof(tagSpecialEvent) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//08 10 ¿ªÊ¼ÌØÊâʼþ//tagSpecialEvent: Cmd:%s, SubCmd:%s, Type:%d '''\ %( self.Cmd, self.SubCmd, self.Type ) return DumpString m_NAtagSpecialEvent=tagSpecialEvent() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSpecialEvent.Cmd,m_NAtagSpecialEvent.SubCmd))] = m_NAtagSpecialEvent #------------------------------------------------------ #08 25 ±¦Ê¯²ð½â½á¹û#tagStoneBreakResult class tagStoneBreakItem(Structure): _pack_ = 1 _fields_ = [ ("ID", c_int), #ÎïÆ·ID ("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.ID = 0 self.Count = 0 return def GetLength(self): return sizeof(tagStoneBreakItem) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//08 25 ±¦Ê¯²ð½â½á¹û//tagStoneBreakResult: ID:%d, Count:%d '''\ %( self.ID, self.Count ) return DumpString class tagStoneBreakResult(Structure): Head = tagHead() IdentifyItemIndex = 0 #(BYTE IdentifyItemIndex)//µ±Ç°¼ø¶¨µÄÎïÆ·Ë÷Òý ResultIndex = 0 #(BYTE ResultIndex)//½á¹ûÐòºÅ IdentifyCount = 0 #(BYTE IdentifyCount) Items = list() #(vector Items)//size = IdentifyCount data = None def __init__(self): self.Clear() self.Head.Cmd = 0x08 self.Head.SubCmd = 0x25 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.IdentifyItemIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ResultIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.IdentifyCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.IdentifyCount): temItems = tagStoneBreakItem() _pos = temItems.ReadData(_lpData, _pos) self.Items.append(temItems) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x08 self.Head.SubCmd = 0x25 self.IdentifyItemIndex = 0 self.ResultIndex = 0 self.IdentifyCount = 0 self.Items = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 1 length += 1 for i in range(self.IdentifyCount): length += self.Items[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.IdentifyItemIndex) data = CommFunc.WriteBYTE(data, self.ResultIndex) data = CommFunc.WriteBYTE(data, self.IdentifyCount) for i in range(self.IdentifyCount): data = CommFunc.WriteString(data, self.Items[i].GetLength(), self.Items[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, IdentifyItemIndex:%d, ResultIndex:%d, IdentifyCount:%d, Items:%s '''\ %( self.Head.OutputString(), self.IdentifyItemIndex, self.ResultIndex, self.IdentifyCount, "..." ) return DumpString m_NAtagStoneBreakResult=tagStoneBreakResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagStoneBreakResult.Head.Cmd,m_NAtagStoneBreakResult.Head.SubCmd))] = m_NAtagStoneBreakResult #------------------------------------------------------ #08 2C ÓÎÀú½­ºþÈÎÎñ״̬ˢÐÂ#tagExpTaskStateRefresh class tagExpTaskStateRefresh(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Time", c_int), #µ¥Î»:Ãë ] def __init__(self): self.Clear() self.Cmd = 0x08 self.SubCmd = 0x2C return def 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 = 0x08 self.SubCmd = 0x2C self.Time = 0 return def GetLength(self): return sizeof(tagExpTaskStateRefresh) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//08 2C ÓÎÀú½­ºþÈÎÎñ״̬ˢÐÂ//tagExpTaskStateRefresh: Cmd:%s, SubCmd:%s, Time:%d '''\ %( self.Cmd, self.SubCmd, self.Time ) return DumpString m_NAtagExpTaskStateRefresh=tagExpTaskStateRefresh() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagExpTaskStateRefresh.Cmd,m_NAtagExpTaskStateRefresh.SubCmd))] = m_NAtagExpTaskStateRefresh #------------------------------------------------------ #08 29 ¸±±¾»î¶¯×´Ì¬Ë¢ÐÂ#tagFBEventStateRefresh class tagFBEventStateRefresh(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("EventID", c_int), #»î¶¯ID ("Time", c_int), #µ¥Î»:Ãë ] def __init__(self): self.Clear() self.Cmd = 0x08 self.SubCmd = 0x29 return def 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 = 0x08 self.SubCmd = 0x29 self.EventID = 0 self.Time = 0 return def GetLength(self): return sizeof(tagFBEventStateRefresh) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//08 29 ¸±±¾»î¶¯×´Ì¬Ë¢ÐÂ//tagFBEventStateRefresh: Cmd:%s, SubCmd:%s, EventID:%d, Time:%d '''\ %( self.Cmd, self.SubCmd, self.EventID, self.Time ) return DumpString m_NAtagFBEventStateRefresh=tagFBEventStateRefresh() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagFBEventStateRefresh.Cmd,m_NAtagFBEventStateRefresh.SubCmd))] = m_NAtagFBEventStateRefresh #------------------------------------------------------ #08 2F Ц¶÷¼ÈÎÎñ״̬ˢÐÂ#tagStarMissionStateRefresh class tagStarMissionStateRefresh(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("MissionID", c_int), #ÈÎÎñID ("Time", c_int), #µ¥Î»:Ãë ] def __init__(self): self.Clear() self.Cmd = 0x08 self.SubCmd = 0x2F return def 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 = 0x08 self.SubCmd = 0x2F self.MissionID = 0 self.Time = 0 return def GetLength(self): return sizeof(tagStarMissionStateRefresh) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//08 2F Ц¶÷¼ÈÎÎñ״̬ˢÐÂ//tagStarMissionStateRefresh: Cmd:%s, SubCmd:%s, MissionID:%d, Time:%d '''\ %( self.Cmd, self.SubCmd, self.MissionID, self.Time ) return DumpString m_NAtagStarMissionStateRefresh=tagStarMissionStateRefresh() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagStarMissionStateRefresh.Cmd,m_NAtagStarMissionStateRefresh.SubCmd))] = m_NAtagStarMissionStateRefresh #------------------------------------------------------ #08 2A ¿ªÊ¼ÓÎÀú½­ºþÈÎÎñ½á¹û#tagStartExpTaskResult class tagStartExpTaskResult(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Result", c_ubyte), #0-ʧ°Ü£»1-³É¹¦ ] def __init__(self): self.Clear() self.Cmd = 0x08 self.SubCmd = 0x2A return def 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 = 0x08 self.SubCmd = 0x2A self.Result = 0 return def GetLength(self): return sizeof(tagStartExpTaskResult) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//08 2A ¿ªÊ¼ÓÎÀú½­ºþÈÎÎñ½á¹û//tagStartExpTaskResult: Cmd:%s, SubCmd:%s, Result:%d '''\ %( self.Cmd, self.SubCmd, self.Result ) return DumpString m_NAtagStartExpTaskResult=tagStartExpTaskResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagStartExpTaskResult.Cmd,m_NAtagStartExpTaskResult.SubCmd))] = m_NAtagStartExpTaskResult #------------------------------------------------------ #08 1F ¿ªÊ¼¸±±¾»î¶¯½á¹û#tagStartFBEventResult class tagStartFBEventResult(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("EventID", c_int), #»î¶¯ID ("Result", c_ubyte), #0-ʧ°Ü£»1-³É¹¦ ] def __init__(self): self.Clear() self.Cmd = 0x08 self.SubCmd = 0x1F return def 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 = 0x08 self.SubCmd = 0x1F self.EventID = 0 self.Result = 0 return def GetLength(self): return sizeof(tagStartFBEventResult) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//08 1F ¿ªÊ¼¸±±¾»î¶¯½á¹û//tagStartFBEventResult: Cmd:%s, SubCmd:%s, EventID:%d, Result:%d '''\ %( self.Cmd, self.SubCmd, self.EventID, self.Result ) return DumpString m_NAtagStartFBEventResult=tagStartFBEventResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagStartFBEventResult.Cmd,m_NAtagStartFBEventResult.SubCmd))] = m_NAtagStartFBEventResult #------------------------------------------------------ #08 2D ¿ªÊ¼Ð¦¶÷¼ÈÎÎñ½á¹û#tagStartStarMissionResult class tagStartStarMissionResult(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("MissionID", c_int), #ÈÎÎñID ("Result", c_ubyte), #0-ʧ°Ü£»1-³É¹¦ ] def __init__(self): self.Clear() self.Cmd = 0x08 self.SubCmd = 0x2D return def 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 = 0x08 self.SubCmd = 0x2D self.MissionID = 0 self.Result = 0 return def GetLength(self): return sizeof(tagStartStarMissionResult) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//08 2D ¿ªÊ¼Ð¦¶÷¼ÈÎÎñ½á¹û//tagStartStarMissionResult: Cmd:%s, SubCmd:%s, MissionID:%d, Result:%d '''\ %( self.Cmd, self.SubCmd, self.MissionID, self.Result ) return DumpString m_NAtagStartStarMissionResult=tagStartStarMissionResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagStartStarMissionResult.Cmd,m_NAtagStartStarMissionResult.SubCmd))] = m_NAtagStartStarMissionResult #------------------------------------------------------ #08 1C ¿ªÊ¼Ãûʦָµ¼½á¹û#tagStartTeacherEventResult class tagStartTeacherEventResult(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Result", c_ubyte), #0-ʧ°Ü;1-³É¹¦ ] def __init__(self): self.Clear() self.Cmd = 0x08 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 = 0x08 self.SubCmd = 0x1C self.Result = 0 return def GetLength(self): return sizeof(tagStartTeacherEventResult) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//08 1C ¿ªÊ¼Ãûʦָµ¼½á¹û//tagStartTeacherEventResult: Cmd:%s, SubCmd:%s, Result:%d '''\ %( self.Cmd, self.SubCmd, self.Result ) return DumpString m_NAtagStartTeacherEventResult=tagStartTeacherEventResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagStartTeacherEventResult.Cmd,m_NAtagStartTeacherEventResult.SubCmd))] = m_NAtagStartTeacherEventResult #------------------------------------------------------ #08 2B Í£Ö¹ÓÎÀú½­ºþÈÎÎñ½á¹û#tagStopExpTaskResult class tagStopExpTaskResult(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Result", c_ubyte), #0-ʧ°Ü;1-³É¹¦ ] def __init__(self): self.Clear() self.Cmd = 0x08 self.SubCmd = 0x2B return def 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 = 0x08 self.SubCmd = 0x2B self.Result = 0 return def GetLength(self): return sizeof(tagStopExpTaskResult) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//08 2B Í£Ö¹ÓÎÀú½­ºþÈÎÎñ½á¹û//tagStopExpTaskResult: Cmd:%s, SubCmd:%s, Result:%d '''\ %( self.Cmd, self.SubCmd, self.Result ) return DumpString m_NAtagStopExpTaskResult=tagStopExpTaskResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagStopExpTaskResult.Cmd,m_NAtagStopExpTaskResult.SubCmd))] = m_NAtagStopExpTaskResult #------------------------------------------------------ #08 28 Í£Ö¹¸±±¾»î¶¯½á¹û#tagStopFBEventResult class tagStopFBEventResult(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("EventID", c_int), #»î¶¯ID ("Result", c_ubyte), #0-ʧ°Ü£»1-³É¹¦ ] def __init__(self): self.Clear() self.Cmd = 0x08 self.SubCmd = 0x28 return def ReadData(self, stringData, _pos=0, _len=0): self.Clear() memmove(addressof(self), stringData[_pos:], self.GetLength()) return _pos + self.GetLength() def Clear(self): self.Cmd = 0x08 self.SubCmd = 0x28 self.EventID = 0 self.Result = 0 return def GetLength(self): return sizeof(tagStopFBEventResult) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//08 28 Í£Ö¹¸±±¾»î¶¯½á¹û//tagStopFBEventResult: Cmd:%s, SubCmd:%s, EventID:%d, Result:%d '''\ %( self.Cmd, self.SubCmd, self.EventID, self.Result ) return DumpString m_NAtagStopFBEventResult=tagStopFBEventResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagStopFBEventResult.Cmd,m_NAtagStopFBEventResult.SubCmd))] = m_NAtagStopFBEventResult #------------------------------------------------------ #08 2E ֹͣЦ¶÷¼ÈÎÎñ½á¹û#tagStopStarMissionResult class tagStopStarMissionResult(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("MissionID", c_int), #ÈÎÎñID ("Result", c_ubyte), #0-ʧ°Ü£»1-³É¹¦ ] def __init__(self): self.Clear() self.Cmd = 0x08 self.SubCmd = 0x2E return def 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 = 0x08 self.SubCmd = 0x2E self.MissionID = 0 self.Result = 0 return def GetLength(self): return sizeof(tagStopStarMissionResult) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//08 2E ֹͣЦ¶÷¼ÈÎÎñ½á¹û//tagStopStarMissionResult: Cmd:%s, SubCmd:%s, MissionID:%d, Result:%d '''\ %( self.Cmd, self.SubCmd, self.MissionID, self.Result ) return DumpString m_NAtagStopStarMissionResult=tagStopStarMissionResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagStopStarMissionResult.Cmd,m_NAtagStopStarMissionResult.SubCmd))] = m_NAtagStopStarMissionResult #------------------------------------------------------ #08 1DÍ£Ö¹Ãûʦָµ¼½á¹û#tagStopTeacherEventResult class tagStopTeacherEventResult(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Result", c_ubyte), #0-ʧ°Ü£»1-³É¹¦ ] def __init__(self): self.Clear() self.Cmd = 0x08 self.SubCmd = 0x1D return def 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 = 0x08 self.SubCmd = 0x1D self.Result = 0 return def GetLength(self): return sizeof(tagStopTeacherEventResult) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//08 1DÍ£Ö¹Ãûʦָµ¼½á¹û//tagStopTeacherEventResult: Cmd:%s, SubCmd:%s, Result:%d '''\ %( self.Cmd, self.SubCmd, self.Result ) return DumpString m_NAtagStopTeacherEventResult=tagStopTeacherEventResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagStopTeacherEventResult.Cmd,m_NAtagStopTeacherEventResult.SubCmd))] = m_NAtagStopTeacherEventResult #------------------------------------------------------ #08 1E ²é¿´Ê¼þ״̬#tagViewEventState class tagEventState(Structure): _pack_ = 1 _fields_ = [ ("StateID", c_int), ("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.StateID = 0 self.Value = 0 return def GetLength(self): return sizeof(tagEventState) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//08 1E ²é¿´Ê¼þ״̬//tagViewEventState: StateID:%d, Value:%d '''\ %( self.StateID, self.Value ) return DumpString class tagViewEventState(Structure): Head = tagHead() EventID = 0 #(DWORD EventID)//ʼþID StateCount = 0 #(BYTE StateCount)//״̬Êý States = list() #(vector States)//״ֵ̬Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0x08 self.Head.SubCmd = 0x1E return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.EventID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.StateCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.StateCount): temStates = tagEventState() _pos = temStates.ReadData(_lpData, _pos) self.States.append(temStates) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x08 self.Head.SubCmd = 0x1E self.EventID = 0 self.StateCount = 0 self.States = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 for i in range(self.StateCount): length += self.States[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.EventID) data = CommFunc.WriteBYTE(data, self.StateCount) for i in range(self.StateCount): data = CommFunc.WriteString(data, self.States[i].GetLength(), self.States[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, EventID:%d, StateCount:%d, States:%s '''\ %( self.Head.OutputString(), self.EventID, self.StateCount, "..." ) return DumpString m_NAtagViewEventState=tagViewEventState() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagViewEventState.Head.Cmd,m_NAtagViewEventState.Head.SubCmd))] = m_NAtagViewEventState #------------------------------------------------------ #09 01 ¶Ó³¤ÑûÇëÍæ¼Ò¼ÓÈë¶ÓÎé#tagLeaderAskJoin class tagLeaderAskJoin(Structure): Head = tagHead() LeaderID = 0 #(DWORD LeaderID) TeamType = 0 #(BYTE TeamType)//TTeamType ttNormal = 1, //ÆÕͨ×é¶Ó ttHornor //ÈÙÓþ×é¶Ó NameLen = 0 #(BYTE NameLen) Name = "" #(String Name)//size = NameLen data = None def __init__(self): self.Clear() self.Head.Cmd = 0x09 self.Head.SubCmd = 0x01 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.LeaderID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.TeamType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Name,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x09 self.Head.SubCmd = 0x01 self.LeaderID = 0 self.TeamType = 0 self.NameLen = 0 self.Name = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += 1 length += len(self.Name) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.LeaderID) data = CommFunc.WriteBYTE(data, self.TeamType) data = CommFunc.WriteBYTE(data, self.NameLen) data = CommFunc.WriteString(data, self.NameLen, self.Name) return data def OutputString(self): DumpString = ''' Head:%s, LeaderID:%d, TeamType:%d, NameLen:%d, Name:%s '''\ %( self.Head.OutputString(), self.LeaderID, self.TeamType, self.NameLen, self.Name ) return DumpString m_NAtagLeaderAskJoin=tagLeaderAskJoin() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagLeaderAskJoin.Head.Cmd,m_NAtagLeaderAskJoin.Head.SubCmd))] = m_NAtagLeaderAskJoin #------------------------------------------------------ #09 03 ¶Ó³¤È·ÈϾÍλ#tagLeaderConfirmActive class tagLeaderConfirmActive(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0x09 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 = 0x09 self.SubCmd = 0x03 self.Type = 0 return def GetLength(self): return sizeof(tagLeaderConfirmActive) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//09 03 ¶Ó³¤È·ÈϾÍλ//tagLeaderConfirmActive: Cmd:%s, SubCmd:%s, Type:%d '''\ %( self.Cmd, self.SubCmd, self.Type ) return DumpString m_NAtagLeaderConfirmActive=tagLeaderConfirmActive() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagLeaderConfirmActive.Cmd,m_NAtagLeaderConfirmActive.SubCmd))] = m_NAtagLeaderConfirmActive #------------------------------------------------------ #09 07 ÊÇ·ñÔÊÐí¶ÓÔ±¼ÓÈë#tagPlayerAskJoinTeam class tagPlayerAskJoinTeam(Structure): Head = tagHead() PlayerID = 0 #(DWORD PlayerID) NameLen = 0 #(BYTE NameLen) Name = "" #(String Name)//size = NameLen data = None def __init__(self): self.Clear() self.Head.Cmd = 0x09 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) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x09 self.Head.SubCmd = 0x07 self.PlayerID = 0 self.NameLen = 0 self.Name = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += len(self.Name) 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) return data def OutputString(self): DumpString = ''' Head:%s, PlayerID:%d, NameLen:%d, Name:%s '''\ %( self.Head.OutputString(), self.PlayerID, self.NameLen, self.Name ) return DumpString m_NAtagPlayerAskJoinTeam=tagPlayerAskJoinTeam() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerAskJoinTeam.Head.Cmd,m_NAtagPlayerAskJoinTeam.Head.SubCmd))] = m_NAtagPlayerAskJoinTeam #------------------------------------------------------ #09 06 Íæ¼ÒÀ뿪¶ÓÎéµÄÏûÏ¢#tagPlayerLeaveTeamMsg class tagPlayerLeaveTeamMsg(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ("Reason", c_ubyte), #0: À뿪 1: ±»Ìß ] def __init__(self): self.Clear() self.Cmd = 0x09 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 = 0x09 self.SubCmd = 0x06 self.PlayerID = 0 self.Reason = 0 return def GetLength(self): return sizeof(tagPlayerLeaveTeamMsg) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//09 06 Íæ¼ÒÀ뿪¶ÓÎéµÄÏûÏ¢//tagPlayerLeaveTeamMsg: Cmd:%s, SubCmd:%s, PlayerID:%d, Reason:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID, self.Reason ) return DumpString m_NAtagPlayerLeaveTeamMsg=tagPlayerLeaveTeamMsg() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerLeaveTeamMsg.Cmd,m_NAtagPlayerLeaveTeamMsg.SubCmd))] = m_NAtagPlayerLeaveTeamMsg #------------------------------------------------------ #09 14 ¿çµØÍ¼³ÉÔ±ÐÅÏ¢#tagTeamMemberState class tagTeamMemberState(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ("ReincarnationLv", c_ushort), # תÉúµÈ¼¶ ("LV", c_ushort), #µÈ¼¶ ("LVEx", c_ushort), #Íæ¼ÒµÈ¼¶¸±±¾£¬ÓÃÓÚתÉú ("LV2", c_ushort), #´óʦµÈ¼¶ ("Sex", c_ubyte), ("Country", c_ushort), ("Job", c_ubyte), ("PlayerProperty", c_ubyte), #ÎåÐÐ ("CurrentPlayerProperty", c_ubyte), #µ±Ç°ÎåÐÐ ("OperateInfo", c_int), #Íæ¼Ò¸½¼ÓÔËÓªÉÌÐÅÏ¢ ] def __init__(self): self.Clear() self.Cmd = 0x09 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 = 0x09 self.SubCmd = 0x14 self.PlayerID = 0 self.ReincarnationLv = 0 self.LV = 0 self.LVEx = 0 self.LV2 = 0 self.Sex = 0 self.Country = 0 self.Job = 0 self.PlayerProperty = 0 self.CurrentPlayerProperty = 0 self.OperateInfo = 0 return def GetLength(self): return sizeof(tagTeamMemberState) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//09 14 ¿çµØÍ¼³ÉÔ±ÐÅÏ¢//tagTeamMemberState: Cmd:%s, SubCmd:%s, PlayerID:%d, ReincarnationLv:%d, LV:%d, LVEx:%d, LV2:%d, Sex:%d, Country:%d, Job:%d, PlayerProperty:%d, CurrentPlayerProperty:%d, OperateInfo:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID, self.ReincarnationLv, self.LV, self.LVEx, self.LV2, self.Sex, self.Country, self.Job, self.PlayerProperty, self.CurrentPlayerProperty, self.OperateInfo ) return DumpString m_NAtagTeamMemberState=tagTeamMemberState() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagTeamMemberState.Cmd,m_NAtagTeamMemberState.SubCmd))] = m_NAtagTeamMemberState #------------------------------------------------------ #09 16 ˢг¡¾°¶ÓÎ黨Ӧ°ü#tagRefreshSceneTeam¶ÔÐÔÄÜÓбȽϴóµÄÓ°Ïì class tagCaptainInfo(Structure): PlayerID = 0 #(DWORD PlayerID) CaptainNameLen = 0 #(BYTE CaptainNameLen)//¶Ó³¤Ãû³Æ CaptainName = "" #(String CaptainName) LV = 0 #(WORD LV)//¶Ó³¤µÈ¼¶ LVEx = 0 #(WORD LVEx)//Íæ¼ÒµÈ¼¶¸±±¾£¬ÓÃÓÚתÉú LV2 = 0 #(WORD LV2)//´óʦµÈ¼¶ OperateInfo = 0 #(DWORD OperateInfo)//¶Ó³¤¸½¼ÓÔËÓªÉÌÐÅÏ¢ TeamMemberCount = 0 #(BYTE TeamMemberCount)//¶ÓÎéÈËÊý 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.CaptainNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.CaptainName,_pos = CommFunc.ReadString(_lpData, _pos,self.CaptainNameLen) self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.LVEx,_pos = CommFunc.ReadWORD(_lpData, _pos) self.LV2,_pos = CommFunc.ReadWORD(_lpData, _pos) self.OperateInfo,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.TeamMemberCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): self.PlayerID = 0 self.CaptainNameLen = 0 self.CaptainName = "" self.LV = 0 self.LVEx = 0 self.LV2 = 0 self.OperateInfo = 0 self.TeamMemberCount = 0 return def GetLength(self): length = 0 length += 4 length += 1 length += len(self.CaptainName) length += 2 length += 2 length += 2 length += 4 length += 1 return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.PlayerID) data = CommFunc.WriteBYTE(data, self.CaptainNameLen) data = CommFunc.WriteString(data, self.CaptainNameLen, self.CaptainName) data = CommFunc.WriteWORD(data, self.LV) data = CommFunc.WriteWORD(data, self.LVEx) data = CommFunc.WriteWORD(data, self.LV2) data = CommFunc.WriteDWORD(data, self.OperateInfo) data = CommFunc.WriteBYTE(data, self.TeamMemberCount) return data def OutputString(self): DumpString = ''' PlayerID:%d, CaptainNameLen:%d, CaptainName:%s, LV:%d, LVEx:%d, LV2:%d, OperateInfo:%d, TeamMemberCount:%d '''\ %( self.PlayerID, self.CaptainNameLen, self.CaptainName, self.LV, self.LVEx, self.LV2, self.OperateInfo, self.TeamMemberCount ) return DumpString class tagRefreshSceneTeam(Structure): Head = tagHead() CaptainCount = 0 #(WORD CaptainCount) SceneCaptain = list() #(vector SceneCaptain) data = None def __init__(self): self.Clear() self.Head.Cmd = 0x09 self.Head.SubCmd = 0x16 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.CaptainCount,_pos = CommFunc.ReadWORD(_lpData, _pos) for i in range(self.CaptainCount): temSceneCaptain = tagCaptainInfo() _pos = temSceneCaptain.ReadData(_lpData, _pos) self.SceneCaptain.append(temSceneCaptain) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x09 self.Head.SubCmd = 0x16 self.CaptainCount = 0 self.SceneCaptain = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 for i in range(self.CaptainCount): length += self.SceneCaptain[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteWORD(data, self.CaptainCount) for i in range(self.CaptainCount): data = CommFunc.WriteString(data, self.SceneCaptain[i].GetLength(), self.SceneCaptain[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, CaptainCount:%d, SceneCaptain:%s '''\ %( self.Head.OutputString(), self.CaptainCount, "..." ) return DumpString m_NAtagRefreshSceneTeam=tagRefreshSceneTeam() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagRefreshSceneTeam.Head.Cmd,m_NAtagRefreshSceneTeam.Head.SubCmd))] = m_NAtagRefreshSceneTeam #------------------------------------------------------ #09 05 ½âÉ¢¶ÓÎé#tagTeamClear class tagTeamClear(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0x09 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 = 0x09 self.SubCmd = 0x05 self.Type = 0 return def GetLength(self): return sizeof(tagTeamClear) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//09 05 ½âÉ¢¶ÓÎé//tagTeamClear: Cmd:%s, SubCmd:%s, Type:%d '''\ %( self.Cmd, self.SubCmd, self.Type ) return DumpString m_NAtagTeamClear=tagTeamClear() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagTeamClear.Cmd,m_NAtagTeamClear.SubCmd))] = m_NAtagTeamClear #------------------------------------------------------ #09 04 ¾ÍλȷÈÏ#tagTeamConfirmAnswer class tagTeamConfirmAnswer(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ("Type", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0x09 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 = 0x09 self.SubCmd = 0x04 self.PlayerID = 0 self.Type = 0 return def GetLength(self): return sizeof(tagTeamConfirmAnswer) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//09 04 ¾ÍλȷÈÏ//tagTeamConfirmAnswer: Cmd:%s, SubCmd:%s, PlayerID:%d, Type:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID, self.Type ) return DumpString m_NAtagTeamConfirmAnswer=tagTeamConfirmAnswer() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagTeamConfirmAnswer.Cmd,m_NAtagTeamConfirmAnswer.SubCmd))] = m_NAtagTeamConfirmAnswer #------------------------------------------------------ #09 08 ¶ÓÎéÏûÏ¢#tagTeamMessage class tagTeamMessage(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0x09 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 = 0x09 self.SubCmd = 0x08 self.Type = 0 return def GetLength(self): return sizeof(tagTeamMessage) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//09 08 ¶ÓÎéÏûÏ¢//tagTeamMessage: Cmd:%s, SubCmd:%s, Type:%d '''\ %( self.Cmd, self.SubCmd, self.Type ) return DumpString m_NAtagTeamMessage=tagTeamMessage() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagTeamMessage.Cmd,m_NAtagTeamMessage.SubCmd))] = m_NAtagTeamMessage #------------------------------------------------------ #09 13 ¶ÓÎé³ÉÔ±Çл»µØÍ¼#tagTeamMemberChangeMap class tagTeamMemberChangeMap(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ("MapID", c_int), ("LineID", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0x09 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 = 0x09 self.SubCmd = 0x13 self.PlayerID = 0 self.MapID = 0 self.LineID = 0 return def GetLength(self): return sizeof(tagTeamMemberChangeMap) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//09 13 ¶ÓÎé³ÉÔ±Çл»µØÍ¼//tagTeamMemberChangeMap: Cmd:%s, SubCmd:%s, PlayerID:%d, MapID:%d, LineID:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID, self.MapID, self.LineID ) return DumpString m_NAtagTeamMemberChangeMap=tagTeamMemberChangeMap() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagTeamMemberChangeMap.Cmd,m_NAtagTeamMemberChangeMap.SubCmd))] = m_NAtagTeamMemberChangeMap #------------------------------------------------------ #09 09 ¶ÓÎé³ÉԱͷÏñË¢ÐÂ#tagTeamMemberDetail class tagTeamMemberDetail(Structure): Head = tagHead() PlayerID = 0 #(DWORD PlayerID) NameLen = 0 #(BYTE NameLen) Name = "" #(String Name)//size = NameLen Job = 0 #(BYTE Job) Sex = 0 #(DWORD Sex) Hair = 0 #(DWORD Hair) HairColor = 0 #(DWORD HairColor) Face = 0 #(DWORD Face) FacePic = 0 #(DWORD FacePic) ReincarnationLv = 0 #(WORD ReincarnationLv) LV = 0 #(WORD LV)//µÈ¼¶ LVEx = 0 #(WORD LVEx)//Íæ¼ÒµÈ¼¶¸±±¾£¬ÓÃÓÚתÉú LV2 = 0 #(WORD LV2)//´óʦµÈ¼¶ HP = 0 #(DWORD HP) MaxHP = 0 #(DWORD MaxHP) MP = 0 #(DWORD MP) MaxMP = 0 #(DWORD MaxMP) PlayerType = 0 #(BYTE PlayerType)//ÎåÐÐ Country = 0 #(BYTE Country)//¹ú¼Ò CurrentPlayerType = 0 #(BYTE CurrentPlayerType)//µ±Ç°ÎåÐÐ VIPLv = 0 #(BYTE VIPLv)//VIPµÈ¼¶ OperateInfo = 0 #(DWORD OperateInfo)//¶Ó³¤¸½¼ÓÔËÓªÉÌÐÅÏ¢ data = None def __init__(self): self.Clear() self.Head.Cmd = 0x09 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.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Name,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen) self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Sex,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Hair,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.HairColor,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.FacePic,_pos = CommFunc.ReadDWORD(_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.HP,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MaxHP,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MP,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MaxMP,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.PlayerType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Country,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.CurrentPlayerType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.VIPLv,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.OperateInfo,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x09 self.Head.SubCmd = 0x09 self.PlayerID = 0 self.NameLen = 0 self.Name = "" self.Job = 0 self.Sex = 0 self.Hair = 0 self.HairColor = 0 self.Face = 0 self.FacePic = 0 self.ReincarnationLv = 0 self.LV = 0 self.LVEx = 0 self.LV2 = 0 self.HP = 0 self.MaxHP = 0 self.MP = 0 self.MaxMP = 0 self.PlayerType = 0 self.Country = 0 self.CurrentPlayerType = 0 self.VIPLv = 0 self.OperateInfo = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += len(self.Name) length += 1 length += 4 length += 4 length += 4 length += 4 length += 4 length += 2 length += 2 length += 2 length += 2 length += 4 length += 4 length += 4 length += 4 length += 1 length += 1 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.WriteBYTE(data, self.NameLen) data = CommFunc.WriteString(data, self.NameLen, self.Name) data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteDWORD(data, self.Sex) data = CommFunc.WriteDWORD(data, self.Hair) data = CommFunc.WriteDWORD(data, self.HairColor) data = CommFunc.WriteDWORD(data, self.Face) data = CommFunc.WriteDWORD(data, self.FacePic) 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.HP) data = CommFunc.WriteDWORD(data, self.MaxHP) data = CommFunc.WriteDWORD(data, self.MP) data = CommFunc.WriteDWORD(data, self.MaxMP) data = CommFunc.WriteBYTE(data, self.PlayerType) data = CommFunc.WriteBYTE(data, self.Country) data = CommFunc.WriteBYTE(data, self.CurrentPlayerType) data = CommFunc.WriteBYTE(data, self.VIPLv) data = CommFunc.WriteDWORD(data, self.OperateInfo) return data def OutputString(self): DumpString = ''' Head:%s, PlayerID:%d, NameLen:%d, Name:%s, Job:%d, Sex:%d, Hair:%d, HairColor:%d, Face:%d, FacePic:%d, ReincarnationLv:%d, LV:%d, LVEx:%d, LV2:%d, HP:%d, MaxHP:%d, MP:%d, MaxMP:%d, PlayerType:%d, Country:%d, CurrentPlayerType:%d, VIPLv:%d, OperateInfo:%d '''\ %( self.Head.OutputString(), self.PlayerID, self.NameLen, self.Name, self.Job, self.Sex, self.Hair, self.HairColor, self.Face, self.FacePic, self.ReincarnationLv, self.LV, self.LVEx, self.LV2, self.HP, self.MaxHP, self.MP, self.MaxMP, self.PlayerType, self.Country, self.CurrentPlayerType, self.VIPLv, self.OperateInfo ) return DumpString m_NAtagTeamMemberDetail=tagTeamMemberDetail() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagTeamMemberDetail.Head.Cmd,m_NAtagTeamMemberDetail.Head.SubCmd))] = m_NAtagTeamMemberDetail #------------------------------------------------------ #09 11 ¶ÓÎé³ÉԱѪÁ¿Ë¢ÐÂ#tagTeamMemberHPMP class tagTeamMemberHPMP(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ("LV", c_ushort), ("HP", c_int), ("MaxHP", c_int), ("MP", c_int), ("MaxMP", c_int), ] def __init__(self): self.Clear() self.Cmd = 0x09 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 = 0x09 self.SubCmd = 0x11 self.PlayerID = 0 self.LV = 0 self.HP = 0 self.MaxHP = 0 self.MP = 0 self.MaxMP = 0 return def GetLength(self): return sizeof(tagTeamMemberHPMP) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//09 11 ¶ÓÎé³ÉԱѪÁ¿Ë¢ÐÂ//tagTeamMemberHPMP: Cmd:%s, SubCmd:%s, PlayerID:%d, LV:%d, HP:%d, MaxHP:%d, MP:%d, MaxMP:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID, self.LV, self.HP, self.MaxHP, self.MP, self.MaxMP ) return DumpString m_NAtagTeamMemberHPMP=tagTeamMemberHPMP() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagTeamMemberHPMP.Cmd,m_NAtagTeamMemberHPMP.SubCmd))] = m_NAtagTeamMemberHPMP #------------------------------------------------------ #09 12 ¶ÓÎé³ÉÔ±ÉÏÏß/ÏÂÏß#tagTeamMemberLoginInfo class tagTeamMemberLoginInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ("Type", c_ubyte), #0: ÏÂÏß 1:ÉÏÏß ] def __init__(self): self.Clear() self.Cmd = 0x09 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 = 0x09 self.SubCmd = 0x12 self.PlayerID = 0 self.Type = 0 return def GetLength(self): return sizeof(tagTeamMemberLoginInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//09 12 ¶ÓÎé³ÉÔ±ÉÏÏß/ÏÂÏß//tagTeamMemberLoginInfo: Cmd:%s, SubCmd:%s, PlayerID:%d, Type:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID, self.Type ) return DumpString m_NAtagTeamMemberLoginInfo=tagTeamMemberLoginInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagTeamMemberLoginInfo.Cmd,m_NAtagTeamMemberLoginInfo.SubCmd))] = m_NAtagTeamMemberLoginInfo #------------------------------------------------------ #09 17 ¶ÓÎé³ÉÔ±ÊôÐÔË¢ÐÂ#tagTeamMemberRefreshProperty class tagTeamMemberRefreshProperty(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ("RefreshType", c_ubyte), #Ë¢ÐÂÀàÐÍ enum TCDBPlayerRefresh ("Value", c_int), ] def __init__(self): self.Clear() self.Cmd = 0x09 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 = 0x09 self.SubCmd = 0x17 self.PlayerID = 0 self.RefreshType = 0 self.Value = 0 return def GetLength(self): return sizeof(tagTeamMemberRefreshProperty) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//09 17 ¶ÓÎé³ÉÔ±ÊôÐÔË¢ÐÂ//tagTeamMemberRefreshProperty: Cmd:%s, SubCmd:%s, PlayerID:%d, RefreshType:%d, Value:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID, self.RefreshType, self.Value ) return DumpString m_NAtagTeamMemberRefreshProperty=tagTeamMemberRefreshProperty() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagTeamMemberRefreshProperty.Cmd,m_NAtagTeamMemberRefreshProperty.SubCmd))] = m_NAtagTeamMemberRefreshProperty #------------------------------------------------------ #09 10 ¶ÓÎéÍæ¼ÒλÖÃË¢ÐÂ#tagTeamPlayerPos class tagTeamPlayerPos(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ("PosX", c_ushort), ("PosY", c_ushort), ] def __init__(self): self.Clear() self.Cmd = 0x09 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 = 0x09 self.SubCmd = 0x10 self.PlayerID = 0 self.PosX = 0 self.PosY = 0 return def GetLength(self): return sizeof(tagTeamPlayerPos) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//09 10 ¶ÓÎéÍæ¼ÒλÖÃË¢ÐÂ//tagTeamPlayerPos: Cmd:%s, SubCmd:%s, PlayerID:%d, PosX:%d, PosY:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID, self.PosX, self.PosY ) return DumpString m_NAtagTeamPlayerPos=tagTeamPlayerPos() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagTeamPlayerPos.Cmd,m_NAtagTeamPlayerPos.SubCmd))] = m_NAtagTeamPlayerPos #------------------------------------------------------ #09 02 ¶ÓÎéÐÅϢˢÐÂ#tagTeamRefresh class tagTeamMember(Structure): PlayerID = 0 #(DWORD PlayerID) NameLen = 0 #(BYTE NameLen) Name = "" #(String Name)//size = NameLen Sex = 0 #(BYTE Sex)//ÐÔ±ð PlayerState = 0 #(BYTE PlayerState)//0: ÀëÏß 1:ÔÚÏß MapID = 0 #(WORD MapID) LineID = 0 #(BYTE LineID)//Ïß·ID TeamLV = 0 #(BYTE TeamLV)//TTeamMemberLV Property = 0 #(BYTE Property)//ÎåÐÐ CurrentProperty = 0 #(BYTE CurrentProperty)//µ±Ç°ÎåÐÐ VIPLv = 0 #(BYTE VIPLv)//VIPµÈ¼¶ OperateInfo = 0 #(DWORD OperateInfo)//¶Ó³¤¸½¼ÓÔËÓªÉÌÐÅÏ¢ 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.Sex,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.PlayerState,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.MapID,_pos = CommFunc.ReadWORD(_lpData, _pos) self.LineID,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.TeamLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Property,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.CurrentProperty,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.VIPLv,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.OperateInfo,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): self.PlayerID = 0 self.NameLen = 0 self.Name = "" self.Sex = 0 self.PlayerState = 0 self.MapID = 0 self.LineID = 0 self.TeamLV = 0 self.Property = 0 self.CurrentProperty = 0 self.VIPLv = 0 self.OperateInfo = 0 return def GetLength(self): length = 0 length += 4 length += 1 length += len(self.Name) length += 1 length += 1 length += 2 length += 1 length += 1 length += 1 length += 1 length += 1 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.Name) data = CommFunc.WriteBYTE(data, self.Sex) data = CommFunc.WriteBYTE(data, self.PlayerState) data = CommFunc.WriteWORD(data, self.MapID) data = CommFunc.WriteBYTE(data, self.LineID) data = CommFunc.WriteBYTE(data, self.TeamLV) data = CommFunc.WriteBYTE(data, self.Property) data = CommFunc.WriteBYTE(data, self.CurrentProperty) data = CommFunc.WriteBYTE(data, self.VIPLv) data = CommFunc.WriteDWORD(data, self.OperateInfo) return data def OutputString(self): DumpString = ''' PlayerID:%d, NameLen:%d, Name:%s, Sex:%d, PlayerState:%d, MapID:%d, LineID:%d, TeamLV:%d, Property:%d, CurrentProperty:%d, VIPLv:%d, OperateInfo:%d '''\ %( self.PlayerID, self.NameLen, self.Name, self.Sex, self.PlayerState, self.MapID, self.LineID, self.TeamLV, self.Property, self.CurrentProperty, self.VIPLv, self.OperateInfo ) return DumpString class tagTeamRefresh(Structure): Head = tagHead() TeamID = 0 #(DWORD TeamID) TeamType = 0 #(BYTE TeamType)//TTeamType MemberCount = 0 #(BYTE MemberCount) Member = list() #(vector Member)//size = MemberCount data = None def __init__(self): self.Clear() self.Head.Cmd = 0x09 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.TeamType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.MemberCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.MemberCount): temMember = tagTeamMember() _pos = temMember.ReadData(_lpData, _pos) self.Member.append(temMember) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x09 self.Head.SubCmd = 0x02 self.TeamID = 0 self.TeamType = 0 self.MemberCount = 0 self.Member = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += 1 for i in range(self.MemberCount): length += self.Member[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.WriteBYTE(data, self.TeamType) data = CommFunc.WriteBYTE(data, self.MemberCount) for i in range(self.MemberCount): data = CommFunc.WriteString(data, self.Member[i].GetLength(), self.Member[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, TeamID:%d, TeamType:%d, MemberCount:%d, Member:%s '''\ %( self.Head.OutputString(), self.TeamID, self.TeamType, self.MemberCount, "..." ) return DumpString m_NAtagTeamRefresh=tagTeamRefresh() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagTeamRefresh.Head.Cmd,m_NAtagTeamRefresh.Head.SubCmd))] = m_NAtagTeamRefresh #------------------------------------------------------ #09 15 ¶ÓÎéÀàÐÍË¢ÐÂ#tagTeamTypeRefresh class tagTeamTypeRefresh(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("TeamType", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0x09 self.SubCmd = 0x15 return def 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 = 0x09 self.SubCmd = 0x15 self.TeamType = 0 return def GetLength(self): return sizeof(tagTeamTypeRefresh) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//09 15 ¶ÓÎéÀàÐÍË¢ÐÂ//tagTeamTypeRefresh: Cmd:%s, SubCmd:%s, TeamType:%d '''\ %( self.Cmd, self.SubCmd, self.TeamType ) return DumpString m_NAtagTeamTypeRefresh=tagTeamTypeRefresh() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagTeamTypeRefresh.Cmd,m_NAtagTeamTypeRefresh.SubCmd))] = m_NAtagTeamTypeRefresh #------------------------------------------------------ #0A 02 Ìí¼Ó½»Ò×ÎïÆ·#tagAddTradeItem class tagAddTradeItem(Structure): Head = tagHead() PlayerID = 0 #(DWORD PlayerID) ItemIndex = 0 #(BYTE ItemIndex) TradeIndex = 0 #(BYTE TradeIndex)//½»Ò×À¸µÄindex ItemID = 0 #(DWORD ItemID) ItemCount = 0 #(WORD ItemCount)//ÎïÆ·ÊýÁ¿ IsBind = 0 #(BYTE IsBind)//ÊÇ·ñ°ó¶¨ StarLV = 0 #(BYTE StarLV)//×°±¸ÐǼ¶ ItemDurg = 0 #(DWORD ItemDurg)//µ±Ç°Ä;à MaxDurg = 0 #(DWORD MaxDurg)//×î´óÄ;à RemainHour = 0 #(DWORD RemainHour)//ÎïÆ·ÓÐЧʱ¼ä MaxStoneCount = 0 #(BYTE MaxStoneCount)//¿ÉÏâǶ±¦Ê¯Êý0±íʾ²»¿ÉÒÔÏâǶ±¦Ê¯ Stones = list() #(vector Stones)//size = MaxStoneCount ItemProperty = 0 #(DWORD ItemProperty)//×°±¸ÎåÐÐ SoulProperty = 0 #(DWORD SoulProperty)//Áé»êÊôÐÔ MakerID = 0 #(DWORD MakerID)//ÖÆ×÷ÕßID MakerNameLen = 0 #(BYTE MakerNameLen)//ÖÆÔìÕßÃû×Ö MakerName = "" #(String MakerName)//size = MakerNameLen UserDataLen = 0 #(DWORD UserDataLen) UserData = "" #(String UserData)//size = UserDataLen IsSuite = 0 #(BYTE IsSuite)//ÊÇ·ñÌ××°»¯ FitLV = 0 #(BYTE FitLV)//ÎïÆ·ÆõºÏµÈ¼¶ Proficiency = 0 #(DWORD Proficiency)//ÊìÁ·¶È RelMaxAddSkillCnt = 0 #(BYTE RelMaxAddSkillCnt)//×î´óÁéÎÆÊýÁ¿£¨tagRoleItem±íMaxAddSkillCnÊôÐÔ£¬»á±ä»¯£© EquipMinAtkValue = 0 #(DWORD EquipMinAtkValue)//ÓÃÓڼǼװ±¸µÄ×îСÉ˺¦Öµ EquipMaxAtkValue = 0 #(DWORD EquipMaxAtkValue)//ÓÃÓڼǼװ±¸µÄ×î´óÉ˺¦Öµ BaseHP = 0 #(DWORD BaseHP)// HP»ù´¡Öµ BaseMagicDef = 0 #(DWORD BaseMagicDef)//ÄÚ·À»ù´¡Öµ EquipDefenseValue = 0 #(DWORD EquipDefenseValue)//ÓÃÓڼǼװ±¸µÄ·ÀÓùÖµ EquipMagicDefValue = 0 #(DWORD EquipMagicDefValue)//×°±¸ÄÚ·ÀÖµ EquipMinMagicAtkValue = 0 #(DWORD EquipMinMagicAtkValue)//×°±¸×îСÄÚ¹¥ EquipMaxMagicAtkValue = 0 #(DWORD EquipMaxMagicAtkValue)//×°±¸×î´óÄÚ¹¥ data = None def __init__(self): self.Clear() self.Head.Cmd = 0x0A self.Head.SubCmd = 0x02 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.ItemIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.TradeIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ItemCount,_pos = CommFunc.ReadWORD(_lpData, _pos) self.IsBind,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.StarLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ItemDurg,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MaxDurg,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.RemainHour,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MaxStoneCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.MaxStoneCount): value,_pos=CommFunc.ReadDWORD(_lpData,_pos) self.Stones.append(value) self.ItemProperty,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.SoulProperty,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MakerID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MakerNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.MakerName,_pos = CommFunc.ReadString(_lpData, _pos,self.MakerNameLen) self.UserDataLen,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen) self.IsSuite,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.FitLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Proficiency,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.RelMaxAddSkillCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.EquipMinAtkValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.EquipMaxAtkValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.BaseHP,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.BaseMagicDef,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.EquipDefenseValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.EquipMagicDefValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.EquipMinMagicAtkValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.EquipMaxMagicAtkValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x0A self.Head.SubCmd = 0x02 self.PlayerID = 0 self.ItemIndex = 0 self.TradeIndex = 0 self.ItemID = 0 self.ItemCount = 0 self.IsBind = 0 self.StarLV = 0 self.ItemDurg = 0 self.MaxDurg = 0 self.RemainHour = 0 self.MaxStoneCount = 0 self.Stones = list() self.ItemProperty = 0 self.SoulProperty = 0 self.MakerID = 0 self.MakerNameLen = 0 self.MakerName = "" self.UserDataLen = 0 self.UserData = "" self.IsSuite = 0 self.FitLV = 0 self.Proficiency = 0 self.RelMaxAddSkillCnt = 0 self.EquipMinAtkValue = 0 self.EquipMaxAtkValue = 0 self.BaseHP = 0 self.BaseMagicDef = 0 self.EquipDefenseValue = 0 self.EquipMagicDefValue = 0 self.EquipMinMagicAtkValue = 0 self.EquipMaxMagicAtkValue = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += 1 length += 4 length += 2 length += 1 length += 1 length += 4 length += 4 length += 4 length += 1 length += 4 * self.MaxStoneCount length += 4 length += 4 length += 4 length += 1 length += len(self.MakerName) length += 4 length += len(self.UserData) length += 1 length += 1 length += 4 length += 1 length += 4 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.WriteDWORD(data, self.PlayerID) data = CommFunc.WriteBYTE(data, self.ItemIndex) data = CommFunc.WriteBYTE(data, self.TradeIndex) data = CommFunc.WriteDWORD(data, self.ItemID) data = CommFunc.WriteWORD(data, self.ItemCount) data = CommFunc.WriteBYTE(data, self.IsBind) data = CommFunc.WriteBYTE(data, self.StarLV) data = CommFunc.WriteDWORD(data, self.ItemDurg) data = CommFunc.WriteDWORD(data, self.MaxDurg) data = CommFunc.WriteDWORD(data, self.RemainHour) data = CommFunc.WriteBYTE(data, self.MaxStoneCount) for i in range(self.MaxStoneCount): data = CommFunc.WriteDWORD(data, self.Stones[i]) data = CommFunc.WriteDWORD(data, self.ItemProperty) data = CommFunc.WriteDWORD(data, self.SoulProperty) data = CommFunc.WriteDWORD(data, self.MakerID) data = CommFunc.WriteBYTE(data, self.MakerNameLen) data = CommFunc.WriteString(data, self.MakerNameLen, self.MakerName) data = CommFunc.WriteDWORD(data, self.UserDataLen) data = CommFunc.WriteString(data, self.UserDataLen, self.UserData) data = CommFunc.WriteBYTE(data, self.IsSuite) data = CommFunc.WriteBYTE(data, self.FitLV) data = CommFunc.WriteDWORD(data, self.Proficiency) data = CommFunc.WriteBYTE(data, self.RelMaxAddSkillCnt) data = CommFunc.WriteDWORD(data, self.EquipMinAtkValue) data = CommFunc.WriteDWORD(data, self.EquipMaxAtkValue) data = CommFunc.WriteDWORD(data, self.BaseHP) data = CommFunc.WriteDWORD(data, self.BaseMagicDef) data = CommFunc.WriteDWORD(data, self.EquipDefenseValue) data = CommFunc.WriteDWORD(data, self.EquipMagicDefValue) data = CommFunc.WriteDWORD(data, self.EquipMinMagicAtkValue) data = CommFunc.WriteDWORD(data, self.EquipMaxMagicAtkValue) return data def OutputString(self): DumpString = ''' Head:%s, PlayerID:%d, ItemIndex:%d, TradeIndex:%d, ItemID:%d, ItemCount:%d, IsBind:%d, StarLV:%d, ItemDurg:%d, MaxDurg:%d, RemainHour:%d, MaxStoneCount:%d, Stones:%s, ItemProperty:%d, SoulProperty:%d, MakerID:%d, MakerNameLen:%d, MakerName:%s, UserDataLen:%d, UserData:%s, IsSuite:%d, FitLV:%d, Proficiency:%d, RelMaxAddSkillCnt:%d, EquipMinAtkValue:%d, EquipMaxAtkValue:%d, BaseHP:%d, BaseMagicDef:%d, EquipDefenseValue:%d, EquipMagicDefValue:%d, EquipMinMagicAtkValue:%d, EquipMaxMagicAtkValue:%d '''\ %( self.Head.OutputString(), self.PlayerID, self.ItemIndex, self.TradeIndex, self.ItemID, self.ItemCount, self.IsBind, self.StarLV, self.ItemDurg, self.MaxDurg, self.RemainHour, self.MaxStoneCount, "...", self.ItemProperty, self.SoulProperty, self.MakerID, self.MakerNameLen, self.MakerName, self.UserDataLen, self.UserData, self.IsSuite, self.FitLV, self.Proficiency, self.RelMaxAddSkillCnt, self.EquipMinAtkValue, self.EquipMaxAtkValue, self.BaseHP, self.BaseMagicDef, self.EquipDefenseValue, self.EquipMagicDefValue, self.EquipMinMagicAtkValue, self.EquipMaxMagicAtkValue ) return DumpString m_NAtagAddTradeItem=tagAddTradeItem() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagAddTradeItem.Head.Cmd,m_NAtagAddTradeItem.Head.SubCmd))] = m_NAtagAddTradeItem #------------------------------------------------------ #0A 03 ɾ³ý½»Ò×ÎïÆ·#tagDeleteTradeItem class tagDeleteTradeItem(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ("ItemIndex", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0x0A 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 = 0x0A self.SubCmd = 0x03 self.PlayerID = 0 self.ItemIndex = 0 return def GetLength(self): return sizeof(tagDeleteTradeItem) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//0A 03 ɾ³ý½»Ò×ÎïÆ·//tagDeleteTradeItem: Cmd:%s, SubCmd:%s, PlayerID:%d, ItemIndex:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID, self.ItemIndex ) return DumpString m_NAtagDeleteTradeItem=tagDeleteTradeItem() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagDeleteTradeItem.Cmd,m_NAtagDeleteTradeItem.SubCmd))] = m_NAtagDeleteTradeItem #------------------------------------------------------ #0A 04 ½áÊø½»Ò×#tagEndTrade class tagEndTrade(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ubyte), #0: Ç¿ÐÐÖÕÖ¹ 1: ³É¹¦½»Ò× ] def __init__(self): self.Clear() self.Cmd = 0x0A 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 = 0x0A self.SubCmd = 0x04 self.Type = 0 return def GetLength(self): return sizeof(tagEndTrade) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//0A 04 ½áÊø½»Ò×//tagEndTrade: Cmd:%s, SubCmd:%s, Type:%d '''\ %( self.Cmd, self.SubCmd, self.Type ) return DumpString m_NAtagEndTrade=tagEndTrade() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagEndTrade.Cmd,m_NAtagEndTrade.SubCmd))] = m_NAtagEndTrade #------------------------------------------------------ #0A 07 ½çÃæÉÁ˸ÇëÇóÐÅÏ¢Ìáʾ#tagRequestWarn class tagRequestWarn(Structure): Head = tagHead() RequestType = 0 #(BYTE RequestType) RequestID = 0 #(DWORD RequestID) NameLen = 0 #(BYTE NameLen) Name = "" #(String Name)//size = NameLen data = None def __init__(self): self.Clear() self.Head.Cmd = 0x0A self.Head.SubCmd = 0x07 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.RequestType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.RequestID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Name,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x0A self.Head.SubCmd = 0x07 self.RequestType = 0 self.RequestID = 0 self.NameLen = 0 self.Name = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 4 length += 1 length += len(self.Name) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.RequestType) data = CommFunc.WriteDWORD(data, self.RequestID) data = CommFunc.WriteBYTE(data, self.NameLen) data = CommFunc.WriteString(data, self.NameLen, self.Name) return data def OutputString(self): DumpString = ''' Head:%s, RequestType:%d, RequestID:%d, NameLen:%d, Name:%s '''\ %( self.Head.OutputString(), self.RequestType, self.RequestID, self.NameLen, self.Name ) return DumpString m_NAtagRequestWarn=tagRequestWarn() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagRequestWarn.Head.Cmd,m_NAtagRequestWarn.Head.SubCmd))] = m_NAtagRequestWarn #------------------------------------------------------ #0A 01 ¿ªÊ¼½»Ò×#tagStartTrade class tagStartTrade(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ] def __init__(self): self.Clear() self.Cmd = 0x0A 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 = 0x0A self.SubCmd = 0x01 self.PlayerID = 0 return def GetLength(self): return sizeof(tagStartTrade) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//0A 01 ¿ªÊ¼½»Ò×//tagStartTrade: Cmd:%s, SubCmd:%s, PlayerID:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID ) return DumpString m_NAtagStartTrade=tagStartTrade() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagStartTrade.Cmd,m_NAtagStartTrade.SubCmd))] = m_NAtagStartTrade #------------------------------------------------------ #0A 05 ½»Ò×Ëø¶¨#tagTradeLock class tagTradeLock(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ("LockType", c_ubyte), #0:²»Ëø¶¨ 1:Ëø¶¨ ("Gold", c_int), #½ð×Ó ("GoldPaper", c_int), #½ðƱ ("Silver", c_int), #Òø×Ó ("SilverPaper", c_int), #񿮱 ] def __init__(self): self.Clear() self.Cmd = 0x0A 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 = 0x0A self.SubCmd = 0x05 self.PlayerID = 0 self.LockType = 0 self.Gold = 0 self.GoldPaper = 0 self.Silver = 0 self.SilverPaper = 0 return def GetLength(self): return sizeof(tagTradeLock) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//0A 05 ½»Ò×Ëø¶¨//tagTradeLock: Cmd:%s, SubCmd:%s, PlayerID:%d, LockType:%d, Gold:%d, GoldPaper:%d, Silver:%d, SilverPaper:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID, self.LockType, self.Gold, self.GoldPaper, self.Silver, self.SilverPaper ) return DumpString m_NAtagTradeLock=tagTradeLock() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagTradeLock.Cmd,m_NAtagTradeLock.SubCmd))] = m_NAtagTradeLock #------------------------------------------------------ #0A 06 ½»Ò×ÐÅÏ¢#tagTradeMsg class tagTradeMsg(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0x0A 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 = 0x0A self.SubCmd = 0x06 self.Type = 0 return def GetLength(self): return sizeof(tagTradeMsg) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//0A 06 ½»Ò×ÐÅÏ¢//tagTradeMsg: Cmd:%s, SubCmd:%s, Type:%d '''\ %( self.Cmd, self.SubCmd, self.Type ) return DumpString m_NAtagTradeMsg=tagTradeMsg() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagTradeMsg.Cmd,m_NAtagTradeMsg.SubCmd))] = m_NAtagTradeMsg #------------------------------------------------------ #0B 01 æô³µ³öÏÖ/Ïûʧ#tagTruckAppear class tagTruckAppear(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ("TruckID", c_int), ("TruckShow", c_ubyte), #0:Ïûʧ 1:³öÏÖ ] def __init__(self): self.Clear() self.Cmd = 0x0B 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 = 0x0B self.SubCmd = 0x01 self.PlayerID = 0 self.TruckID = 0 self.TruckShow = 0 return def GetLength(self): return sizeof(tagTruckAppear) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//0B 01 æô³µ³öÏÖ/Ïûʧ//tagTruckAppear: Cmd:%s, SubCmd:%s, PlayerID:%d, TruckID:%d, TruckShow:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID, self.TruckID, self.TruckShow ) return DumpString m_NAtagTruckAppear=tagTruckAppear() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagTruckAppear.Cmd,m_NAtagTruckAppear.SubCmd))] = m_NAtagTruckAppear #------------------------------------------------------ #0B 04 æô³µÐÅÏ¢#tagTruckMsg class tagTruckMsg(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Msg", c_ubyte), #TTruckMsg ] def __init__(self): self.Clear() self.Cmd = 0x0B 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 = 0x0B self.SubCmd = 0x04 self.Msg = 0 return def GetLength(self): return sizeof(tagTruckMsg) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//0B 04 æô³µÐÅÏ¢//tagTruckMsg: Cmd:%s, SubCmd:%s, Msg:%d '''\ %( self.Cmd, self.SubCmd, self.Msg ) return DumpString m_NAtagTruckMsg=tagTruckMsg() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagTruckMsg.Cmd,m_NAtagTruckMsg.SubCmd))] = m_NAtagTruckMsg #------------------------------------------------------ #0B 03 æô³µ´òÀÃ#tagTruckDestroy class tagTruckDestroy(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ("TruckID", c_int), ("DestroyNPCID", c_int), #»Ù»µµÄNPCID ] def __init__(self): self.Clear() self.Cmd = 0x0B 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 = 0x0B self.SubCmd = 0x03 self.PlayerID = 0 self.TruckID = 0 self.DestroyNPCID = 0 return def GetLength(self): return sizeof(tagTruckDestroy) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//0B 03 æô³µ´òÀÃ//tagTruckDestroy: Cmd:%s, SubCmd:%s, PlayerID:%d, TruckID:%d, DestroyNPCID:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID, self.TruckID, self.DestroyNPCID ) return DumpString m_NAtagTruckDestroy=tagTruckDestroy() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagTruckDestroy.Cmd,m_NAtagTruckDestroy.SubCmd))] = m_NAtagTruckDestroy #------------------------------------------------------ #0B 02 ÈËïÚºÏÒ»¿ªÊ¼/½áÊø#tagTruckGetOn class tagTruckGetOn(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ("TruckID", c_int), ("Type", c_ubyte), #0: ÏÂæô³µ 1:ÈËïÚºÏÒ» ] def __init__(self): self.Clear() self.Cmd = 0x0B 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 = 0x0B self.SubCmd = 0x02 self.PlayerID = 0 self.TruckID = 0 self.Type = 0 return def GetLength(self): return sizeof(tagTruckGetOn) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//0B 02 ÈËïÚºÏÒ»¿ªÊ¼/½áÊø//tagTruckGetOn: Cmd:%s, SubCmd:%s, PlayerID:%d, TruckID:%d, Type:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID, self.TruckID, self.Type ) return DumpString m_NAtagTruckGetOn=tagTruckGetOn() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagTruckGetOn.Cmd,m_NAtagTruckGetOn.SubCmd))] = m_NAtagTruckGetOn #------------------------------------------------------ #0B 05 æô³µ×ø±ê#tagTruckPosInfo class tagTruckPosInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("MapID", c_int), ("PosX", c_ushort), ("PosY", c_ushort), ] def __init__(self): self.Clear() self.Cmd = 0x0B 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 = 0x0B self.SubCmd = 0x05 self.MapID = 0 self.PosX = 0 self.PosY = 0 return def GetLength(self): return sizeof(tagTruckPosInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//0B 05 æô³µ×ø±ê//tagTruckPosInfo: Cmd:%s, SubCmd:%s, MapID:%d, PosX:%d, PosY:%d '''\ %( self.Cmd, self.SubCmd, self.MapID, self.PosX, self.PosY ) return DumpString m_NAtagTruckPosInfo=tagTruckPosInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagTruckPosInfo.Cmd,m_NAtagTruckPosInfo.SubCmd))] = m_NAtagTruckPosInfo #------------------------------------------------------ #0C 02 ´ò¿ªÇ®×¯ÊäÈëÃÜÂë#tagWarehousePsw class tagWarehousePsw(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ubyte), #1. ÐèÒªÊäÈëÃÜÂë(1¸öedit¿ò)2. ÐÞ¸ÄÃÜÂë(3¸öedit)3.µÚÒ»´Î½øÈëµÄʱºòÊäÈëÃÜÂë(2¸öedit) ] def __init__(self): self.Clear() self.Cmd = 0x0C 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 = 0x0C self.SubCmd = 0x02 self.Type = 0 return def GetLength(self): return sizeof(tagWarehousePsw) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//0C 02 ´ò¿ªÇ®×¯ÊäÈëÃÜÂë//tagWarehousePsw: Cmd:%s, SubCmd:%s, Type:%d '''\ %( self.Cmd, self.SubCmd, self.Type ) return DumpString m_NAtagWarehousePsw=tagWarehousePsw() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagWarehousePsw.Cmd,m_NAtagWarehousePsw.SubCmd))] = m_NAtagWarehousePsw #------------------------------------------------------ #0C 04 ²Ö¿â½ð×ÓË¢ÐÂ#tagWarehouseGold class tagWarehouseGold(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Gold", c_int), ] def __init__(self): self.Clear() self.Cmd = 0x0C 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 = 0x0C self.SubCmd = 0x04 self.Gold = 0 return def GetLength(self): return sizeof(tagWarehouseGold) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//0C 04 ²Ö¿â½ð×ÓË¢ÐÂ//tagWarehouseGold: Cmd:%s, SubCmd:%s, Gold:%d '''\ %( self.Cmd, self.SubCmd, self.Gold ) return DumpString m_NAtagWarehouseGold=tagWarehouseGold() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagWarehouseGold.Cmd,m_NAtagWarehouseGold.SubCmd))] = m_NAtagWarehouseGold #------------------------------------------------------ #0C 01 ´ò¿ªÇ®×¯#tagOpenWarehouse class tagOpenWarehouse(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("WarehouseLV", c_ubyte), ("IsWarehouseLocked", c_ubyte), #²Ö¿âÊÇ·ñËø¶¨ ] def __init__(self): self.Clear() self.Cmd = 0x0C 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 = 0x0C self.SubCmd = 0x01 self.WarehouseLV = 0 self.IsWarehouseLocked = 0 return def GetLength(self): return sizeof(tagOpenWarehouse) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//0C 01 ´ò¿ªÇ®×¯//tagOpenWarehouse: Cmd:%s, SubCmd:%s, WarehouseLV:%d, IsWarehouseLocked:%d '''\ %( self.Cmd, self.SubCmd, self.WarehouseLV, self.IsWarehouseLocked ) return DumpString m_NAtagOpenWarehouse=tagOpenWarehouse() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagOpenWarehouse.Cmd,m_NAtagOpenWarehouse.SubCmd))] = m_NAtagOpenWarehouse #------------------------------------------------------ #0C 03 ¿ªÇ®×¯µÄÏûÏ¢#tagWarehouseMsg class tagWarehouseMsg(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Msg", c_ubyte), #type = TWarehouseMsg ] def __init__(self): self.Clear() self.Cmd = 0x0C 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 = 0x0C self.SubCmd = 0x03 self.Msg = 0 return def GetLength(self): return sizeof(tagWarehouseMsg) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//0C 03 ¿ªÇ®×¯µÄÏûÏ¢//tagWarehouseMsg: Cmd:%s, SubCmd:%s, Msg:%d '''\ %( self.Cmd, self.SubCmd, self.Msg ) return DumpString m_NAtagWarehouseMsg=tagWarehouseMsg() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagWarehouseMsg.Cmd,m_NAtagWarehouseMsg.SubCmd))] = m_NAtagWarehouseMsg #------------------------------------------------------ #0C 05 ²Ö¿âÒø×ÓË¢ÐÂ#tagWarehouseSilver class tagWarehouseSilver(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Silver", c_int), ] def __init__(self): self.Clear() self.Cmd = 0x0C 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 = 0x0C self.SubCmd = 0x05 self.Silver = 0 return def GetLength(self): return sizeof(tagWarehouseSilver) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//0C 05 ²Ö¿âÒø×ÓË¢ÐÂ//tagWarehouseSilver: Cmd:%s, SubCmd:%s, Silver:%d '''\ %( self.Cmd, self.SubCmd, self.Silver ) return DumpString m_NAtagWarehouseSilver=tagWarehouseSilver() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagWarehouseSilver.Cmd,m_NAtagWarehouseSilver.SubCmd))] = m_NAtagWarehouseSilver #------------------------------------------------------ #0F 04 ѯÎÊÊÇ·ñ¼ÓÈë¼Ò×å#tagFamilyAskIfJoin class tagFamilyAskIfJoin(Structure): Head = tagHead() LeaderID = 0 #(DWORD LeaderID)//ÑûÇëÈË LeaderNameLen = 0 #(BYTE LeaderNameLen) LeaderName = "" #(String LeaderName)//size = LeaderNameLen FamilyID = 0 #(DWORD FamilyID) FamilyNameLen = 0 #(BYTE FamilyNameLen)//¼Ò×åÃû³Æ FamilyName = "" #(String FamilyName)//size = FamilyNameLen data = None def __init__(self): self.Clear() self.Head.Cmd = 0x0F self.Head.SubCmd = 0x04 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.LeaderID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.LeaderNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LeaderName,_pos = CommFunc.ReadString(_lpData, _pos,self.LeaderNameLen) self.FamilyID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.FamilyNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.FamilyName,_pos = CommFunc.ReadString(_lpData, _pos,self.FamilyNameLen) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x0F self.Head.SubCmd = 0x04 self.LeaderID = 0 self.LeaderNameLen = 0 self.LeaderName = "" self.FamilyID = 0 self.FamilyNameLen = 0 self.FamilyName = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += len(self.LeaderName) length += 4 length += 1 length += len(self.FamilyName) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.LeaderID) data = CommFunc.WriteBYTE(data, self.LeaderNameLen) data = CommFunc.WriteString(data, self.LeaderNameLen, self.LeaderName) data = CommFunc.WriteDWORD(data, self.FamilyID) data = CommFunc.WriteBYTE(data, self.FamilyNameLen) data = CommFunc.WriteString(data, self.FamilyNameLen, self.FamilyName) return data def OutputString(self): DumpString = ''' Head:%s, LeaderID:%d, LeaderNameLen:%d, LeaderName:%s, FamilyID:%d, FamilyNameLen:%d, FamilyName:%s '''\ %( self.Head.OutputString(), self.LeaderID, self.LeaderNameLen, self.LeaderName, self.FamilyID, self.FamilyNameLen, self.FamilyName ) return DumpString m_NAtagFamilyAskIfJoin=tagFamilyAskIfJoin() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagFamilyAskIfJoin.Head.Cmd,m_NAtagFamilyAskIfJoin.Head.SubCmd))] = m_NAtagFamilyAskIfJoin #------------------------------------------------------ #0F 03 ¼Ò×å»ù±¾ÐÅÏ¢#tagRoleFamilyInfo class tagRoleFamilyMember(Structure): PlayerID = 0 #(DWORD PlayerID) Sex = 0 #(BYTE Sex)//ÐÔ±ð NameLen = 0 #(BYTE NameLen) Name = "" #(String Name)//size = NameLen LV = 0 #(WORD LV) ReincarnationLv = 0 #(WORD ReincarnationLv) FamilyLV = 0 #(BYTE FamilyLV)//¼Ò×åµÈ¼¶ FamilyNameLen = 0 #(BYTE FamilyNameLen) FamilyName = "" #(String FamilyName)//size = FamilyNameLen Job = 0 #(BYTE Job)//Ö°Òµ FamilyActiveValue = 0 #(DWORD FamilyActiveValue)//±¾ÖܼÒ×å»îÔ¾¶È LastWeekFamilyActiveValue = 0 #(DWORD LastWeekFamilyActiveValue)//ÉÏÖܼÒ×å»îÔ¾¶È OfficialRank = 0 #(BYTE OfficialRank)//¾³½ç Exattr1 = 0 #(DWORD Exattr1)//À©Õ¹ÊôÐÔ Exattr2 = 0 #(DWORD Exattr2)//À©Õ¹ÊôÐÔ Exattr3 = 0 #(DWORD Exattr3)//À©Õ¹ÊôÐÔ Exattr4 = 0 #(DWORD Exattr4)//À©Õ¹ÊôÐÔ Exattr5 = 0 #(DWORD Exattr5)//À©Õ¹ÊôÐÔ OperateInfo = 0 #(DWORD OperateInfo)//Íæ¼Ò¸½¼ÓÔËÓªÉÌÐÅÏ¢ 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.Sex,_pos = CommFunc.ReadBYTE(_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.ReincarnationLv,_pos = CommFunc.ReadWORD(_lpData, _pos) self.FamilyLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.FamilyNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.FamilyName,_pos = CommFunc.ReadString(_lpData, _pos,self.FamilyNameLen) self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.FamilyActiveValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.LastWeekFamilyActiveValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.OfficialRank,_pos = CommFunc.ReadBYTE(_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.OperateInfo,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): self.PlayerID = 0 self.Sex = 0 self.NameLen = 0 self.Name = "" self.LV = 0 self.ReincarnationLv = 0 self.FamilyLV = 0 self.FamilyNameLen = 0 self.FamilyName = "" self.Job = 0 self.FamilyActiveValue = 0 self.LastWeekFamilyActiveValue = 0 self.OfficialRank = 0 self.Exattr1 = 0 self.Exattr2 = 0 self.Exattr3 = 0 self.Exattr4 = 0 self.Exattr5 = 0 self.OperateInfo = 0 return def GetLength(self): length = 0 length += 4 length += 1 length += 1 length += len(self.Name) length += 2 length += 2 length += 1 length += 1 length += len(self.FamilyName) length += 1 length += 4 length += 4 length += 1 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.PlayerID) data = CommFunc.WriteBYTE(data, self.Sex) data = CommFunc.WriteBYTE(data, self.NameLen) data = CommFunc.WriteString(data, self.NameLen, self.Name) data = CommFunc.WriteWORD(data, self.LV) data = CommFunc.WriteWORD(data, self.ReincarnationLv) data = CommFunc.WriteBYTE(data, self.FamilyLV) data = CommFunc.WriteBYTE(data, self.FamilyNameLen) data = CommFunc.WriteString(data, self.FamilyNameLen, self.FamilyName) data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteDWORD(data, self.FamilyActiveValue) data = CommFunc.WriteDWORD(data, self.LastWeekFamilyActiveValue) data = CommFunc.WriteBYTE(data, self.OfficialRank) 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.WriteDWORD(data, self.OperateInfo) return data def OutputString(self): DumpString = ''' PlayerID:%d, Sex:%d, NameLen:%d, Name:%s, LV:%d, ReincarnationLv:%d, FamilyLV:%d, FamilyNameLen:%d, FamilyName:%s, Job:%d, FamilyActiveValue:%d, LastWeekFamilyActiveValue:%d, OfficialRank:%d, Exattr1:%d, Exattr2:%d, Exattr3:%d, Exattr4:%d, Exattr5:%d, OperateInfo:%d '''\ %( self.PlayerID, self.Sex, self.NameLen, self.Name, self.LV, self.ReincarnationLv, self.FamilyLV, self.FamilyNameLen, self.FamilyName, self.Job, self.FamilyActiveValue, self.LastWeekFamilyActiveValue, self.OfficialRank, self.Exattr1, self.Exattr2, self.Exattr3, self.Exattr4, self.Exattr5, self.OperateInfo ) return DumpString class tagRoleFamilyInfo(Structure): Head = tagHead() FamilyID = 0 #(DWORD FamilyID) FamilyName = "" #(char FamilyName[33])//¼Ò×åÃû³Æ FamilyLV = 0 #(WORD FamilyLV)//¼Ò×åµÈ¼¶ FamilyMoney = 0 #(DWORD FamilyMoney)//×ʽð FamilyHornor = 0 #(DWORD FamilyHornor)//ÈÙÓþ MemberCount = 0 #(WORD MemberCount)//ÈËÊý BroadcastLen = 0 #(WORD BroadcastLen)//¹«¸æ Point = 0 #(DWORD Point)//¼Ò×åÕ½»ý·Ö Broadcast = "" #(String Broadcast)//size = BroadcastLen FamilyActiveValue = 0 #(DWORD FamilyActiveValue)//±¾ÖܼÒ×å»îÔ¾¶È LastWeekFamilyActiveValue = 0 #(DWORD LastWeekFamilyActiveValue)//ÉÏÖܼÒ×å»îÔ¾¶È Member = list() #(vector Member)//size = MemberCount Extra1 = 0 #(DWORD Extra1)//¸½¼Ó×Ö¶Î1 Extra2 = 0 #(DWORD Extra2)//¸½¼Ó×Ö¶Î2 Extra3 = 0 #(DWORD Extra3)//¸½¼Ó×Ö¶Î3 Extra4 = 0 #(DWORD Extra4)//¸½¼Ó×Ö¶Î4 Extra5 = 0 #(DWORD Extra5)//¸½¼Ó×Ö¶Î5 AcceptJoin = 0 #(BYTE AcceptJoin)//ÊÇ·ñ½ÓÊÜÉêÇë data = None def __init__(self): self.Clear() self.Head.Cmd = 0x0F 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.FamilyName,_pos = CommFunc.ReadString(_lpData, _pos,33) self.FamilyLV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.FamilyMoney,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.FamilyHornor,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MemberCount,_pos = CommFunc.ReadWORD(_lpData, _pos) self.BroadcastLen,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Point,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Broadcast,_pos = CommFunc.ReadString(_lpData, _pos,self.BroadcastLen) self.FamilyActiveValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.LastWeekFamilyActiveValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) for i in range(self.MemberCount): temMember = tagRoleFamilyMember() _pos = temMember.ReadData(_lpData, _pos) self.Member.append(temMember) self.Extra1,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Extra2,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Extra3,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Extra4,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Extra5,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.AcceptJoin,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x0F self.Head.SubCmd = 0x03 self.FamilyID = 0 self.FamilyName = "" self.FamilyLV = 0 self.FamilyMoney = 0 self.FamilyHornor = 0 self.MemberCount = 0 self.BroadcastLen = 0 self.Point = 0 self.Broadcast = "" self.FamilyActiveValue = 0 self.LastWeekFamilyActiveValue = 0 self.Member = list() self.Extra1 = 0 self.Extra2 = 0 self.Extra3 = 0 self.Extra4 = 0 self.Extra5 = 0 self.AcceptJoin = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 33 length += 2 length += 4 length += 4 length += 2 length += 2 length += 4 length += len(self.Broadcast) length += 4 length += 4 for i in range(self.MemberCount): length += self.Member[i].GetLength() length += 4 length += 4 length += 4 length += 4 length += 4 length += 1 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.FamilyID) data = CommFunc.WriteString(data, 33, self.FamilyName) data = CommFunc.WriteWORD(data, self.FamilyLV) data = CommFunc.WriteDWORD(data, self.FamilyMoney) data = CommFunc.WriteDWORD(data, self.FamilyHornor) data = CommFunc.WriteWORD(data, self.MemberCount) data = CommFunc.WriteWORD(data, self.BroadcastLen) data = CommFunc.WriteDWORD(data, self.Point) data = CommFunc.WriteString(data, self.BroadcastLen, self.Broadcast) data = CommFunc.WriteDWORD(data, self.FamilyActiveValue) data = CommFunc.WriteDWORD(data, self.LastWeekFamilyActiveValue) for i in range(self.MemberCount): data = CommFunc.WriteString(data, self.Member[i].GetLength(), self.Member[i].GetBuffer()) data = CommFunc.WriteDWORD(data, self.Extra1) data = CommFunc.WriteDWORD(data, self.Extra2) data = CommFunc.WriteDWORD(data, self.Extra3) data = CommFunc.WriteDWORD(data, self.Extra4) data = CommFunc.WriteDWORD(data, self.Extra5) data = CommFunc.WriteBYTE(data, self.AcceptJoin) return data def OutputString(self): DumpString = ''' Head:%s, FamilyID:%d, FamilyName:%s, FamilyLV:%d, FamilyMoney:%d, FamilyHornor:%d, MemberCount:%d, BroadcastLen:%d, Point:%d, Broadcast:%s, FamilyActiveValue:%d, LastWeekFamilyActiveValue:%d, Member:%s, Extra1:%d, Extra2:%d, Extra3:%d, Extra4:%d, Extra5:%d, AcceptJoin:%d '''\ %( self.Head.OutputString(), self.FamilyID, self.FamilyName, self.FamilyLV, self.FamilyMoney, self.FamilyHornor, self.MemberCount, self.BroadcastLen, self.Point, self.Broadcast, self.FamilyActiveValue, self.LastWeekFamilyActiveValue, "...", self.Extra1, self.Extra2, self.Extra3, self.Extra4, self.Extra5, self.AcceptJoin ) return DumpString m_NAtagRoleFamilyInfo=tagRoleFamilyInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagRoleFamilyInfo.Head.Cmd,m_NAtagRoleFamilyInfo.Head.SubCmd))] = m_NAtagRoleFamilyInfo #------------------------------------------------------ #0F 05 ¼Ò×å±ä¸ü#tagFamilyChange class tagFamilyChange(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0x0F 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 = 0x0F self.SubCmd = 0x05 self.Type = 0 return def GetLength(self): return sizeof(tagFamilyChange) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//0F 05 ¼Ò×å±ä¸ü//tagFamilyChange: Cmd:%s, SubCmd:%s, Type:%d '''\ %( self.Cmd, self.SubCmd, self.Type ) return DumpString m_NAtagFamilyChange=tagFamilyChange() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagFamilyChange.Cmd,m_NAtagFamilyChange.SubCmd))] = m_NAtagFamilyChange #------------------------------------------------------ #0F 10 ÊäÈë¾èÏ×½ðÇ®#tagInputFamilyContribute class tagInputFamilyContribute(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ubyte), #ÎÞÒâÒå ] def __init__(self): self.Clear() self.Cmd = 0x0F 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 = 0x0F self.SubCmd = 0x10 self.Type = 0 return def GetLength(self): return sizeof(tagInputFamilyContribute) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//0F 10 ÊäÈë¾èÏ×½ðÇ®//tagInputFamilyContribute: Cmd:%s, SubCmd:%s, Type:%d '''\ %( self.Cmd, self.SubCmd, self.Type ) return DumpString m_NAtagInputFamilyContribute=tagInputFamilyContribute() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagInputFamilyContribute.Cmd,m_NAtagInputFamilyContribute.SubCmd))] = m_NAtagInputFamilyContribute #------------------------------------------------------ #0F 07 ¼Ò×åÃû³Æ¸ÄÃû½á¹û#tagFamilyRenameResult class tagFamilyRenameResult(Structure): Head = tagHead() FamilyNameLen = 0 #(BYTE FamilyNameLen) FamilyName = "" #(String FamilyName)//size = FamilyNameLen Reasult = 0 #(BYTE Reasult) data = None def __init__(self): self.Clear() self.Head.Cmd = 0x0F self.Head.SubCmd = 0x07 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.FamilyNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.FamilyName,_pos = CommFunc.ReadString(_lpData, _pos,self.FamilyNameLen) self.Reasult,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x0F self.Head.SubCmd = 0x07 self.FamilyNameLen = 0 self.FamilyName = "" self.Reasult = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += len(self.FamilyName) length += 1 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.FamilyNameLen) data = CommFunc.WriteString(data, self.FamilyNameLen, self.FamilyName) data = CommFunc.WriteBYTE(data, self.Reasult) return data def OutputString(self): DumpString = ''' Head:%s, FamilyNameLen:%d, FamilyName:%s, Reasult:%d '''\ %( self.Head.OutputString(), self.FamilyNameLen, self.FamilyName, self.Reasult ) return DumpString m_NAtagFamilyRenameResult=tagFamilyRenameResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagFamilyRenameResult.Head.Cmd,m_NAtagFamilyRenameResult.Head.SubCmd))] = m_NAtagFamilyRenameResult #------------------------------------------------------ #0F 13 ¼Ò×åÕù°ÔÕ½±¨ÃûÐÅÏ¢#tagFamilyVSEnrollInfo class tagFamilyVSEnrollInfo(Structure): Head = tagHead() InfoLen = 0 #(int InfoLen) FamilyVSEnrollInfo = "" #(String FamilyVSEnrollInfo) data = None def __init__(self): self.Clear() self.Head.Cmd = 0x0F self.Head.SubCmd = 0x13 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.InfoLen,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.FamilyVSEnrollInfo,_pos = CommFunc.ReadString(_lpData, _pos,self.InfoLen) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x0F self.Head.SubCmd = 0x13 self.InfoLen = 0 self.FamilyVSEnrollInfo = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += len(self.FamilyVSEnrollInfo) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.InfoLen) data = CommFunc.WriteString(data, self.InfoLen, self.FamilyVSEnrollInfo) return data def OutputString(self): DumpString = ''' Head:%s, InfoLen:%d, FamilyVSEnrollInfo:%s '''\ %( self.Head.OutputString(), self.InfoLen, self.FamilyVSEnrollInfo ) return DumpString m_NAtagFamilyVSEnrollInfo=tagFamilyVSEnrollInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagFamilyVSEnrollInfo.Head.Cmd,m_NAtagFamilyVSEnrollInfo.Head.SubCmd))] = m_NAtagFamilyVSEnrollInfo #------------------------------------------------------ #0F 09 ¼Ò×åÕ½ÅÅÐаñÐÅÏ¢#tagFamilyWarBillboardResult class tagFamilyWarBillboardInfo(Structure): FamilyID = 0 #(DWORD FamilyID)//¼Ò×åID FamilyNameLen = 0 #(BYTE FamilyNameLen) FamilyName = "" #(String FamilyName)//size = FamilyNameLen Billboard = 0 #(DWORD Billboard)//ÅÅÃû FamilyCountry = 0 #(BYTE FamilyCountry)//¹ú¼® 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.FamilyNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.FamilyName,_pos = CommFunc.ReadString(_lpData, _pos,self.FamilyNameLen) self.Billboard,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.FamilyCountry,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): self.FamilyID = 0 self.FamilyNameLen = 0 self.FamilyName = "" self.Billboard = 0 self.FamilyCountry = 0 return def GetLength(self): length = 0 length += 4 length += 1 length += len(self.FamilyName) length += 4 length += 1 return length def GetBuffer(self): data = '' 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.Billboard) data = CommFunc.WriteBYTE(data, self.FamilyCountry) return data def OutputString(self): DumpString = ''' FamilyID:%d, FamilyNameLen:%d, FamilyName:%s, Billboard:%d, FamilyCountry:%d '''\ %( self.FamilyID, self.FamilyNameLen, self.FamilyName, self.Billboard, self.FamilyCountry ) return DumpString class tagFamilyWarBillboardResult(Structure): Head = tagHead() ResultCount = 0 #(BYTE ResultCount) Result = list() #(vector Result)//size = ResultCount data = None def __init__(self): self.Clear() self.Head.Cmd = 0x0F self.Head.SubCmd = 0x09 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.ResultCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.ResultCount): temResult = tagFamilyWarBillboardInfo() _pos = temResult.ReadData(_lpData, _pos) self.Result.append(temResult) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x0F self.Head.SubCmd = 0x09 self.ResultCount = 0 self.Result = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.ResultCount): length += self.Result[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.ResultCount) for i in range(self.ResultCount): data = CommFunc.WriteString(data, self.Result[i].GetLength(), self.Result[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, ResultCount:%d, Result:%s '''\ %( self.Head.OutputString(), self.ResultCount, "..." ) return DumpString m_NAtagFamilyWarBillboardResult=tagFamilyWarBillboardResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagFamilyWarBillboardResult.Head.Cmd,m_NAtagFamilyWarBillboardResult.Head.SubCmd))] = m_NAtagFamilyWarBillboardResult #------------------------------------------------------ #0F 08 ¼Ò×åÕù°ÔÕ½ÐÅÏ¢#tagFamilyWarRace class tagFamilyWarRaceInfo(Structure): AttackerFamilyID = 0 #(DWORD AttackerFamilyID)//½ø¹¥·½ID AttackerFamilyNameLen = 0 #(BYTE AttackerFamilyNameLen) AttackerFamilyName = "" #(String AttackerFamilyName)//size = AttackerFamilyNameLen DefanceFamilyID = 0 #(DWORD DefanceFamilyID)//·ÀÊØ·½ID DefanceFamilyNameLen = 0 #(BYTE DefanceFamilyNameLen) DefanceFamilyName = "" #(String DefanceFamilyName)//size = DefanceFamilyNameLen BattleID = 0 #(DWORD BattleID)//³¡´ÎID Result = 0 #(DWORD Result)//½á¹û(0:û´ò 1:³É¹¦ 2:ʧ°Ü) data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.AttackerFamilyID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.AttackerFamilyNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.AttackerFamilyName,_pos = CommFunc.ReadString(_lpData, _pos,self.AttackerFamilyNameLen) self.DefanceFamilyID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.DefanceFamilyNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.DefanceFamilyName,_pos = CommFunc.ReadString(_lpData, _pos,self.DefanceFamilyNameLen) self.BattleID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Result,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): self.AttackerFamilyID = 0 self.AttackerFamilyNameLen = 0 self.AttackerFamilyName = "" self.DefanceFamilyID = 0 self.DefanceFamilyNameLen = 0 self.DefanceFamilyName = "" self.BattleID = 0 self.Result = 0 return def GetLength(self): length = 0 length += 4 length += 1 length += len(self.AttackerFamilyName) length += 4 length += 1 length += len(self.DefanceFamilyName) length += 4 length += 4 return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.AttackerFamilyID) data = CommFunc.WriteBYTE(data, self.AttackerFamilyNameLen) data = CommFunc.WriteString(data, self.AttackerFamilyNameLen, self.AttackerFamilyName) data = CommFunc.WriteDWORD(data, self.DefanceFamilyID) data = CommFunc.WriteBYTE(data, self.DefanceFamilyNameLen) data = CommFunc.WriteString(data, self.DefanceFamilyNameLen, self.DefanceFamilyName) data = CommFunc.WriteDWORD(data, self.BattleID) data = CommFunc.WriteDWORD(data, self.Result) return data def OutputString(self): DumpString = ''' AttackerFamilyID:%d, AttackerFamilyNameLen:%d, AttackerFamilyName:%s, DefanceFamilyID:%d, DefanceFamilyNameLen:%d, DefanceFamilyName:%s, BattleID:%d, Result:%d '''\ %( self.AttackerFamilyID, self.AttackerFamilyNameLen, self.AttackerFamilyName, self.DefanceFamilyID, self.DefanceFamilyNameLen, self.DefanceFamilyName, self.BattleID, self.Result ) return DumpString class tagFamilyWarRace(Structure): Head = tagHead() Country = 0 #(BYTE Country)//¹ú¼Ò ExDataLen = 0 #(DWORD ExDataLen)//Õ½Õùʱ¼ä ExData = "" #(String ExData)//size = WarTimeLen FamilyWarRaceCount = 0 #(BYTE FamilyWarRaceCount) FamilyWarRaceInfo = list() #(vector FamilyWarRaceInfo)//size = FamilyWarRaceCount data = None def __init__(self): self.Clear() self.Head.Cmd = 0x0F self.Head.SubCmd = 0x08 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Country,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ExDataLen,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ExData,_pos = CommFunc.ReadString(_lpData, _pos,self.ExDataLen) self.FamilyWarRaceCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.FamilyWarRaceCount): temFamilyWarRaceInfo = tagFamilyWarRaceInfo() _pos = temFamilyWarRaceInfo.ReadData(_lpData, _pos) self.FamilyWarRaceInfo.append(temFamilyWarRaceInfo) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x0F self.Head.SubCmd = 0x08 self.Country = 0 self.ExDataLen = 0 self.ExData = "" self.FamilyWarRaceCount = 0 self.FamilyWarRaceInfo = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 4 length += len(self.ExData) length += 1 for i in range(self.FamilyWarRaceCount): length += self.FamilyWarRaceInfo[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.Country) data = CommFunc.WriteDWORD(data, self.ExDataLen) data = CommFunc.WriteString(data, self.ExDataLen, self.ExData) data = CommFunc.WriteBYTE(data, self.FamilyWarRaceCount) for i in range(self.FamilyWarRaceCount): data = CommFunc.WriteString(data, self.FamilyWarRaceInfo[i].GetLength(), self.FamilyWarRaceInfo[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Country:%d, ExDataLen:%d, ExData:%s, FamilyWarRaceCount:%d, FamilyWarRaceInfo:%s '''\ %( self.Head.OutputString(), self.Country, self.ExDataLen, self.ExData, self.FamilyWarRaceCount, "..." ) return DumpString m_NAtagFamilyWarRace=tagFamilyWarRace() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagFamilyWarRace.Head.Cmd,m_NAtagFamilyWarRace.Head.SubCmd))] = m_NAtagFamilyWarRace #------------------------------------------------------ #0F 16 ²éѯ¼Ò×å½á¹û#tagFindFamilyResult class tagMatchFamily(Structure): FamilyId = 0 #(DWORD FamilyId) Name = "" #(char Name[33])//Ãû×Ö LeaderName = "" #(char LeaderName[33])//×峤Ãû³Æ LV = 0 #(BYTE LV)//¼Ò×åµÈ¼¶ MemberCount = 0 #(WORD MemberCount)//°ï»á³ÉÔ±ÈËÊý 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.Name,_pos = CommFunc.ReadString(_lpData, _pos,33) self.LeaderName,_pos = CommFunc.ReadString(_lpData, _pos,33) self.LV,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.MemberCount,_pos = CommFunc.ReadWORD(_lpData, _pos) return _pos def Clear(self): self.FamilyId = 0 self.Name = "" self.LeaderName = "" self.LV = 0 self.MemberCount = 0 return def GetLength(self): length = 0 length += 4 length += 33 length += 33 length += 1 length += 2 return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.FamilyId) data = CommFunc.WriteString(data, 33, self.Name) data = CommFunc.WriteString(data, 33, self.LeaderName) data = CommFunc.WriteBYTE(data, self.LV) data = CommFunc.WriteWORD(data, self.MemberCount) return data def OutputString(self): DumpString = ''' FamilyId:%d, Name:%s, LeaderName:%s, LV:%d, MemberCount:%d '''\ %( self.FamilyId, self.Name, self.LeaderName, self.LV, self.MemberCount ) return DumpString class tagFindFamilyResult(Structure): Head = tagHead() Count = 0 #(DWORD Count) MatchItems = list() #(vector MatchItems) data = None def __init__(self): self.Clear() self.Head.Cmd = 0x0F self.Head.SubCmd = 0x16 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Count,_pos = CommFunc.ReadDWORD(_lpData, _pos) for i in range(self.Count): temMatchItems = tagMatchFamily() _pos = temMatchItems.ReadData(_lpData, _pos) self.MatchItems.append(temMatchItems) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x0F self.Head.SubCmd = 0x16 self.Count = 0 self.MatchItems = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 for i in range(self.Count): length += self.MatchItems[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.MatchItems[i].GetLength(), self.MatchItems[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Count:%d, MatchItems:%s '''\ %( self.Head.OutputString(), self.Count, "..." ) return DumpString m_NAtagFindFamilyResult=tagFindFamilyResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagFindFamilyResult.Head.Cmd,m_NAtagFindFamilyResult.Head.SubCmd))] = m_NAtagFindFamilyResult #------------------------------------------------------ #0F 01 ÊäÈë¼Ò×åÃû³Æ#tagInputFamilyName class tagInputFamilyName(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0x0F 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 = 0x0F self.SubCmd = 0x01 self.Type = 0 return def GetLength(self): return sizeof(tagInputFamilyName) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//0F 01 ÊäÈë¼Ò×åÃû³Æ//tagInputFamilyName: Cmd:%s, SubCmd:%s, Type:%d '''\ %( self.Cmd, self.SubCmd, self.Type ) return DumpString m_NAtagInputFamilyName=tagInputFamilyName() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagInputFamilyName.Cmd,m_NAtagInputFamilyName.SubCmd))] = m_NAtagInputFamilyName #------------------------------------------------------ #0F 11 ²éѯռÁì#tagQueryOccupy class tagQueryOccupy(Structure): Head = tagHead() InfoLen = 0 #(WORD InfoLen) Info = "" #(String Info)//size = InfoLen data = None def __init__(self): self.Clear() self.Head.Cmd = 0x0F self.Head.SubCmd = 0x11 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.InfoLen,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Info,_pos = CommFunc.ReadString(_lpData, _pos,self.InfoLen) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x0F self.Head.SubCmd = 0x11 self.InfoLen = 0 self.Info = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 length += len(self.Info) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteWORD(data, self.InfoLen) data = CommFunc.WriteString(data, self.InfoLen, self.Info) return data def OutputString(self): DumpString = ''' Head:%s, InfoLen:%d, Info:%s '''\ %( self.Head.OutputString(), self.InfoLen, self.Info ) return DumpString m_NAtagQueryOccupy=tagQueryOccupy() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagQueryOccupy.Head.Cmd,m_NAtagQueryOccupy.Head.SubCmd))] = m_NAtagQueryOccupy #------------------------------------------------------ #0F 06 ÖØÃüÃû¼Ò×å#tagRenameFamilyAsk class tagRenameFamilyAsk(Structure): Head = tagHead() CurrentFamilyNameLen = 0 #(BYTE CurrentFamilyNameLen) CurrentFamilyName = "" #(String CurrentFamilyName)//size = CurrentFamilyNameLen data = None def __init__(self): self.Clear() self.Head.Cmd = 0x0F self.Head.SubCmd = 0x06 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.CurrentFamilyNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.CurrentFamilyName,_pos = CommFunc.ReadString(_lpData, _pos,self.CurrentFamilyNameLen) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x0F self.Head.SubCmd = 0x06 self.CurrentFamilyNameLen = 0 self.CurrentFamilyName = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += len(self.CurrentFamilyName) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.CurrentFamilyNameLen) data = CommFunc.WriteString(data, self.CurrentFamilyNameLen, self.CurrentFamilyName) return data def OutputString(self): DumpString = ''' Head:%s, CurrentFamilyNameLen:%d, CurrentFamilyName:%s '''\ %( self.Head.OutputString(), self.CurrentFamilyNameLen, self.CurrentFamilyName ) return DumpString m_NAtagRenameFamilyAsk=tagRenameFamilyAsk() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagRenameFamilyAsk.Head.Cmd,m_NAtagRenameFamilyAsk.Head.SubCmd))] = m_NAtagRenameFamilyAsk #------------------------------------------------------ #0F 15 ɾ³ý°ï»á¿Æ¼¼#tagDelFamilyTech class tagDelFamilyTech(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("TechID", c_int), #¿Æ¼¼ID ] def __init__(self): self.Clear() self.Cmd = 0x0F self.SubCmd = 0x15 return def 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 = 0x0F self.SubCmd = 0x15 self.TechID = 0 return def GetLength(self): return sizeof(tagDelFamilyTech) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//0F 15 ɾ³ý°ï»á¿Æ¼¼//tagDelFamilyTech: Cmd:%s, SubCmd:%s, TechID:%d '''\ %( self.Cmd, self.SubCmd, self.TechID ) return DumpString m_NAtagDelFamilyTech=tagDelFamilyTech() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagDelFamilyTech.Cmd,m_NAtagDelFamilyTech.SubCmd))] = m_NAtagDelFamilyTech #------------------------------------------------------ #0F 14 °ï»á¿Æ¼¼ÐÅÏ¢#tagFamilyTechInfoµ¥¸ö¿Æ¼¼ÐÅÏ¢ class tagTechInfo(Structure): TechID = 0 #(DWORD TechID)//¿Æ¼¼ID szBeginStudyTime = "" #(char szBeginStudyTime[20])//¿ªÊ¼Ñо¿Ê±¼ä IsUseKey = 0 #(BYTE IsUseKey)//ÊÇ·ñʹÓÃÍ»·ÉÁî IsTmp = 0 #(BYTE IsTmp)//ÊÇ·ñ¼Ó³Ö szBeginTmpTime = "" #(char szBeginTmpTime[20])//¿ªÊ¼¼Ó³Öʱ¼ä TmpTime = 0 #(WORD TmpTime)// ¼Ó³Öʱ¼ä TmpLV = 0 #(BYTE TmpLV)//¼Ó³ÖµÈ¼¶ CurLV = 0 #(BYTE CurLV)//µ±Ç°µÈ¼¶ data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.TechID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.szBeginStudyTime,_pos = CommFunc.ReadString(_lpData, _pos,20) self.IsUseKey,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.IsTmp,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.szBeginTmpTime,_pos = CommFunc.ReadString(_lpData, _pos,20) self.TmpTime,_pos = CommFunc.ReadWORD(_lpData, _pos) self.TmpLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.CurLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): self.TechID = 0 self.szBeginStudyTime = "" self.IsUseKey = 0 self.IsTmp = 0 self.szBeginTmpTime = "" self.TmpTime = 0 self.TmpLV = 0 self.CurLV = 0 return def GetLength(self): length = 0 length += 4 length += 20 length += 1 length += 1 length += 20 length += 2 length += 1 length += 1 return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.TechID) data = CommFunc.WriteString(data, 20, self.szBeginStudyTime) data = CommFunc.WriteBYTE(data, self.IsUseKey) data = CommFunc.WriteBYTE(data, self.IsTmp) data = CommFunc.WriteString(data, 20, self.szBeginTmpTime) data = CommFunc.WriteWORD(data, self.TmpTime) data = CommFunc.WriteBYTE(data, self.TmpLV) data = CommFunc.WriteBYTE(data, self.CurLV) return data def OutputString(self): DumpString = ''' TechID:%d, szBeginStudyTime:%s, IsUseKey:%d, IsTmp:%d, szBeginTmpTime:%s, TmpTime:%d, TmpLV:%d, CurLV:%d '''\ %( self.TechID, self.szBeginStudyTime, self.IsUseKey, self.IsTmp, self.szBeginTmpTime, self.TmpTime, self.TmpLV, self.CurLV ) return DumpString class tagFamilyTechInfo(Structure): Head = tagHead() TechCount = 0 #(WORD TechCount)//°ï»á¿Æ¼¼ÊýÁ¿ TechInfoList = list() #(vector TechInfoList)//¿Æ¼¼ÐÅÏ¢Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0x0F self.Head.SubCmd = 0x14 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.TechCount,_pos = CommFunc.ReadWORD(_lpData, _pos) for i in range(self.TechCount): temTechInfoList = tagTechInfo() _pos = temTechInfoList.ReadData(_lpData, _pos) self.TechInfoList.append(temTechInfoList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x0F self.Head.SubCmd = 0x14 self.TechCount = 0 self.TechInfoList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 for i in range(self.TechCount): length += self.TechInfoList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteWORD(data, self.TechCount) for i in range(self.TechCount): data = CommFunc.WriteString(data, self.TechInfoList[i].GetLength(), self.TechInfoList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, TechCount:%d, TechInfoList:%s '''\ %( self.Head.OutputString(), self.TechCount, "..." ) return DumpString m_NAtagFamilyTechInfo=tagFamilyTechInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagFamilyTechInfo.Head.Cmd,m_NAtagFamilyTechInfo.Head.SubCmd))] = m_NAtagFamilyTechInfo #------------------------------------------------------ #0F 12 ÏÔʾϴºìÃû½çÃæ#tagXiHongMingShow class tagXiHongMingShow(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ubyte), #ÎÞÒâÒå ] def __init__(self): self.Clear() self.Cmd = 0x0F 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 = 0x0F self.SubCmd = 0x12 self.Type = 0 return def GetLength(self): return sizeof(tagXiHongMingShow) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//0F 12 ÏÔʾϴºìÃû½çÃæ//tagXiHongMingShow: Cmd:%s, SubCmd:%s, Type:%d '''\ %( self.Cmd, self.SubCmd, self.Type ) return DumpString m_NAtagXiHongMingShow=tagXiHongMingShow() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagXiHongMingShow.Cmd,m_NAtagXiHongMingShow.SubCmd))] = m_NAtagXiHongMingShow #------------------------------------------------------ #0F 02 ²é¿´¼Ò×å#tagAllFamilyView class tagFamilyView(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)//ÉêÇë״̬ Point = 0 #(DWORD Point)//»ý·Ö 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.Point,_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.Point = 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 += 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.WriteDWORD(data, self.Point) 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, Point:%d '''\ %( self.FamilyIndex, self.FamilyID, self.FamilyNameLen, self.FamilyName, self.LeaderID, self.LeaderNameLen, self.LeaderName, self.LeaderOfficialRank, self.FamilyLV, self.FamilyMemberCount, self.JoinAccept, self.Point ) return DumpString class tagAllFamilyView(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 ViewType = 0 #(BYTE ViewType)//Type = TViewFamilyType IsSearching = 0 #(BYTE IsSearching)//ÊÇ·ñÔÚÄ£ºýËÑË÷״̬Ï data = None def __init__(self): self.Clear() self.Head.Cmd = 0x0F self.Head.SubCmd = 0x02 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 = tagFamilyView() _pos = temFamily.ReadData(_lpData, _pos) self.Family.append(temFamily) self.ViewType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.IsSearching,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x0F self.Head.SubCmd = 0x02 self.TotalCount = 0 self.CurPage = 0 self.PageCount = 0 self.Family = list() self.ViewType = 0 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 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.ViewType) data = CommFunc.WriteBYTE(data, self.IsSearching) return data def OutputString(self): DumpString = ''' Head:%s, TotalCount:%d, CurPage:%d, PageCount:%d, Family:%s, ViewType:%d, IsSearching:%d '''\ %( self.Head.OutputString(), self.TotalCount, self.CurPage, self.PageCount, "...", self.ViewType, self.IsSearching ) return DumpString m_NAtagAllFamilyView=tagAllFamilyView() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagAllFamilyView.Head.Cmd,m_NAtagAllFamilyView.Head.SubCmd))] = m_NAtagAllFamilyView #------------------------------------------------------ #10 01 ÅÅÐаñÐÅÏ¢#tagBillboard ¶ÔÐÔÄÜÓ°Ïì±È½Ï´ó£¬ ÐèÒªÏÞÖÆtick class tagBillboardList(Structure): ID = 0 #(DWORD ID)// ²»Ò»¶¨¶¼ÄÜÓÃÉÏ£¬Ä¿Ç°ÓÃÓÚ±£´æ³èÎïNPCID 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.ID,_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.ID = 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 += 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.ID) 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 = ''' ID:%d, Name1:%s, Name2:%s, Type2:%d, Value1:%d, Value2:%d, CmpValue:%d, CmpValue2:%d, CmpValue3:%d '''\ %( self.ID, self.Name1, self.Name2, self.Type2, self.Value1, self.Value2, self.CmpValue, self.CmpValue2, self.CmpValue3 ) return DumpString class tagBillboard(Structure): Head = tagHead() BillboardCount = 0 #(BYTE BillboardCount) Type = 0 #(BYTE Type)//ÅÅÐаñÀàÐÍ Billboard = list() #(vector Billboard)//size = BillboardCount data = None def __init__(self): self.Clear() self.Head.Cmd = 0x10 self.Head.SubCmd = 0x01 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.BillboardCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Type,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.BillboardCount): temBillboard = tagBillboardList() _pos = temBillboard.ReadData(_lpData, _pos) self.Billboard.append(temBillboard) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x10 self.Head.SubCmd = 0x01 self.BillboardCount = 0 self.Type = 0 self.Billboard = list() return def GetLength(self): length = 0 length += self.Head.GetLength() 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.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, BillboardCount:%d, Type:%d, Billboard:%s '''\ %( self.Head.OutputString(), self.BillboardCount, self.Type, "..." ) return DumpString m_NAtagBillboard=tagBillboard() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagBillboard.Head.Cmd,m_NAtagBillboard.Head.SubCmd))] = m_NAtagBillboard #------------------------------------------------------ #10 02 ½±ÀøÅÅÐаñÐÅÏ¢#tagBillboardPrize class tagBillboardPrizeList(Structure): Index = 0 #(BYTE Index) ID = 0 #(DWORD ID)//ID×Ö¶Î, ĿǰÎÞÒâÒå Country = 0 #(BYTE Country) Job = 0 #(WORD Job) NameLen = 0 #(BYTE NameLen) Name = "" #(String Name)//size = NameLen Value = 0 #(DWORD Value) Value2 = 0 #(DWORD Value2)//À¨ºÅÖеÄÎÄ×Ö, ÒªÇó 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.ID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Country,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Job,_pos = CommFunc.ReadWORD(_lpData, _pos) self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Name,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen) self.Value,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Value2,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): self.Index = 0 self.ID = 0 self.Country = 0 self.Job = 0 self.NameLen = 0 self.Name = "" self.Value = 0 self.Value2 = 0 return def GetLength(self): length = 0 length += 1 length += 4 length += 1 length += 2 length += 1 length += len(self.Name) length += 4 length += 4 return length def GetBuffer(self): data = '' data = CommFunc.WriteBYTE(data, self.Index) data = CommFunc.WriteDWORD(data, self.ID) data = CommFunc.WriteBYTE(data, self.Country) data = CommFunc.WriteWORD(data, self.Job) data = CommFunc.WriteBYTE(data, self.NameLen) data = CommFunc.WriteString(data, self.NameLen, self.Name) data = CommFunc.WriteDWORD(data, self.Value) data = CommFunc.WriteDWORD(data, self.Value2) return data def OutputString(self): DumpString = ''' Index:%d, ID:%d, Country:%d, Job:%d, NameLen:%d, Name:%s, Value:%d, Value2:%d '''\ %( self.Index, self.ID, self.Country, self.Job, self.NameLen, self.Name, self.Value, self.Value2 ) return DumpString class tagBillboardPrize(Structure): Head = tagHead() Type = 0 #(BYTE Type)//TBillboardType BillboardCount = 0 #(BYTE BillboardCount) Billboard = list() #(vector Billboard)//size = BillboardCount data = None def __init__(self): self.Clear() self.Head.Cmd = 0x10 self.Head.SubCmd = 0x02 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.BillboardCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.BillboardCount): temBillboard = tagBillboardPrizeList() _pos = temBillboard.ReadData(_lpData, _pos) self.Billboard.append(temBillboard) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x10 self.Head.SubCmd = 0x02 self.Type = 0 self.BillboardCount = 0 self.Billboard = list() return def GetLength(self): length = 0 length += self.Head.GetLength() 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.Type) data = CommFunc.WriteBYTE(data, self.BillboardCount) 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, Type:%d, BillboardCount:%d, Billboard:%s '''\ %( self.Head.OutputString(), self.Type, self.BillboardCount, "..." ) return DumpString m_NAtagBillboardPrize=tagBillboardPrize() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagBillboardPrize.Head.Cmd,m_NAtagBillboardPrize.Head.SubCmd))] = m_NAtagBillboardPrize #------------------------------------------------------ #11 08 Ìí¼Ó³ðÈË#tagAddEnemy class tagAddEnemy(Structure): Head = tagHead() PlayerID = 0 #(DWORD PlayerID) NameLen = 0 #(BYTE NameLen) Name = "" #(String Name)//size = NameLen data = None def __init__(self): self.Clear() self.Head.Cmd = 0x11 self.Head.SubCmd = 0x08 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) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x11 self.Head.SubCmd = 0x08 self.PlayerID = 0 self.NameLen = 0 self.Name = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += len(self.Name) 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) return data def OutputString(self): DumpString = ''' Head:%s, PlayerID:%d, NameLen:%d, Name:%s '''\ %( self.Head.OutputString(), self.PlayerID, self.NameLen, self.Name ) return DumpString m_NAtagAddEnemy=tagAddEnemy() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagAddEnemy.Head.Cmd,m_NAtagAddEnemy.Head.SubCmd))] = m_NAtagAddEnemy #------------------------------------------------------ #11 03 Ìí¼ÓºÃÓÑ#tagAddFriend class tagAddFriend(Structure): Head = tagHead() PlayerID = 0 #(DWORD PlayerID) PlayerNameLen = 0 #(BYTE PlayerNameLen) PlayerName = "" #(String PlayerName)//size = PlayerNameLen data = None def __init__(self): self.Clear() self.Head.Cmd = 0x11 self.Head.SubCmd = 0x03 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.PlayerNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,self.PlayerNameLen) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x11 self.Head.SubCmd = 0x03 self.PlayerID = 0 self.PlayerNameLen = 0 self.PlayerName = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += len(self.PlayerName) 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.PlayerNameLen) data = CommFunc.WriteString(data, self.PlayerNameLen, self.PlayerName) return data def OutputString(self): DumpString = ''' Head:%s, PlayerID:%d, PlayerNameLen:%d, PlayerName:%s '''\ %( self.Head.OutputString(), self.PlayerID, self.PlayerNameLen, self.PlayerName ) return DumpString m_NAtagAddFriend=tagAddFriend() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagAddFriend.Head.Cmd,m_NAtagAddFriend.Head.SubCmd))] = m_NAtagAddFriend #------------------------------------------------------ #11 01 ѯÎÊÊÇ·ñÔÊÐíÌí¼ÓºÃÓÑ#tagFriendAskIfJoin class tagFriendAskIfJoin(Structure): Head = tagHead() LeaderID = 0 #(DWORD LeaderID)//ÑûÇëÈË LeaderNameLen = 0 #(BYTE LeaderNameLen) LeaderName = "" #(String LeaderName)//size = LeaderNameLen data = None def __init__(self): self.Clear() self.Head.Cmd = 0x11 self.Head.SubCmd = 0x01 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.LeaderID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.LeaderNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LeaderName,_pos = CommFunc.ReadString(_lpData, _pos,self.LeaderNameLen) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x11 self.Head.SubCmd = 0x01 self.LeaderID = 0 self.LeaderNameLen = 0 self.LeaderName = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += len(self.LeaderName) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.LeaderID) data = CommFunc.WriteBYTE(data, self.LeaderNameLen) data = CommFunc.WriteString(data, self.LeaderNameLen, self.LeaderName) return data def OutputString(self): DumpString = ''' Head:%s, LeaderID:%d, LeaderNameLen:%d, LeaderName:%s '''\ %( self.Head.OutputString(), self.LeaderID, self.LeaderNameLen, self.LeaderName ) return DumpString m_NAtagFriendAskIfJoin=tagFriendAskIfJoin() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagFriendAskIfJoin.Head.Cmd,m_NAtagFriendAskIfJoin.Head.SubCmd))] = m_NAtagFriendAskIfJoin #------------------------------------------------------ #11 06 ºÃÓÑ·Ö×é¸Ä±ä#tagFriendGoupNameChange class tagFriendGoupNameChange(Structure): Head = tagHead() PlayerID = 0 #(DWORD PlayerID) GroupNameLen = 0 #(BYTE GroupNameLen) GroupName = "" #(String GroupName)//size = GroupNameLen data = None def __init__(self): self.Clear() self.Head.Cmd = 0x11 self.Head.SubCmd = 0x06 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.GroupNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.GroupName,_pos = CommFunc.ReadString(_lpData, _pos,self.GroupNameLen) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x11 self.Head.SubCmd = 0x06 self.PlayerID = 0 self.GroupNameLen = 0 self.GroupName = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += len(self.GroupName) 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.GroupNameLen) data = CommFunc.WriteString(data, self.GroupNameLen, self.GroupName) return data def OutputString(self): DumpString = ''' Head:%s, PlayerID:%d, GroupNameLen:%d, GroupName:%s '''\ %( self.Head.OutputString(), self.PlayerID, self.GroupNameLen, self.GroupName ) return DumpString m_NAtagFriendGoupNameChange=tagFriendGoupNameChange() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagFriendGoupNameChange.Head.Cmd,m_NAtagFriendGoupNameChange.Head.SubCmd))] = m_NAtagFriendGoupNameChange #------------------------------------------------------ #11 0B ɾ³ý³ðÈË#tagDeleteEnemy class tagDeleteEnemy(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ] def __init__(self): self.Clear() self.Cmd = 0x11 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 = 0x11 self.SubCmd = 0x0B self.PlayerID = 0 return def GetLength(self): return sizeof(tagDeleteEnemy) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//11 0B ɾ³ý³ðÈË//tagDeleteEnemy: Cmd:%s, SubCmd:%s, PlayerID:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID ) return DumpString m_NAtagDeleteEnemy=tagDeleteEnemy() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagDeleteEnemy.Cmd,m_NAtagDeleteEnemy.SubCmd))] = m_NAtagDeleteEnemy #------------------------------------------------------ #11 04 ɾ³ýºÃÓÑ#tagDelFriend class tagDelFriend(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ] def __init__(self): self.Clear() self.Cmd = 0x11 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 = 0x11 self.SubCmd = 0x04 self.PlayerID = 0 return def GetLength(self): return sizeof(tagDelFriend) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//11 04 ɾ³ýºÃÓÑ//tagDelFriend: Cmd:%s, SubCmd:%s, PlayerID:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID ) return DumpString m_NAtagDelFriend=tagDelFriend() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagDelFriend.Cmd,m_NAtagDelFriend.SubCmd))] = m_NAtagDelFriend #------------------------------------------------------ #11 09 ³ðÈËÉÏÏß#tagEnemyLogin class tagEnemyLogin(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("EnemyID", c_int), ("Job", c_ubyte), ("Country", c_ubyte), ("LV", c_ushort), ("Notify", c_ubyte), #ÊÇ·ñÏÔʾ֪ͨÌáʾ ] def __init__(self): self.Clear() self.Cmd = 0x11 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 = 0x11 self.SubCmd = 0x09 self.EnemyID = 0 self.Job = 0 self.Country = 0 self.LV = 0 self.Notify = 0 return def GetLength(self): return sizeof(tagEnemyLogin) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//11 09 ³ðÈËÉÏÏß//tagEnemyLogin: Cmd:%s, SubCmd:%s, EnemyID:%d, Job:%d, Country:%d, LV:%d, Notify:%d '''\ %( self.Cmd, self.SubCmd, self.EnemyID, self.Job, self.Country, self.LV, self.Notify ) return DumpString m_NAtagEnemyLogin=tagEnemyLogin() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagEnemyLogin.Cmd,m_NAtagEnemyLogin.SubCmd))] = m_NAtagEnemyLogin #------------------------------------------------------ #11 0A ³ðÈËÏÂÏß#tagEnemyLogoff class tagEnemyLogoff(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("EnemyID", c_int), ] def __init__(self): self.Clear() self.Cmd = 0x11 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 = 0x11 self.SubCmd = 0x0A self.EnemyID = 0 return def GetLength(self): return sizeof(tagEnemyLogoff) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//11 0A ³ðÈËÏÂÏß//tagEnemyLogoff: Cmd:%s, SubCmd:%s, EnemyID:%d '''\ %( self.Cmd, self.SubCmd, self.EnemyID ) return DumpString m_NAtagEnemyLogoff=tagEnemyLogoff() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagEnemyLogoff.Cmd,m_NAtagEnemyLogoff.SubCmd))] = m_NAtagEnemyLogoff #------------------------------------------------------ #11 07 ºÃÓÑÉÏÏß/ÏÂÏß#tagFriendLogin class tagFriendLogin(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), ("IsLogin", c_ubyte), #µÇ¼Ϊ1, ÀëÏßΪ0 ] def __init__(self): self.Clear() self.Cmd = 0x11 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 = 0x11 self.SubCmd = 0x07 self.PlayerID = 0 self.IsLogin = 0 return def GetLength(self): return sizeof(tagFriendLogin) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//11 07 ºÃÓÑÉÏÏß/ÏÂÏß//tagFriendLogin: Cmd:%s, SubCmd:%s, PlayerID:%d, IsLogin:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID, self.IsLogin ) return DumpString m_NAtagFriendLogin=tagFriendLogin() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagFriendLogin.Cmd,m_NAtagFriendLogin.SubCmd))] = m_NAtagFriendLogin #------------------------------------------------------ #11 0D ºÃÓѵØÍ¼ID¸Ä±ä#tagFriendMapIDChange class tagFriendMapIDChange(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("FriendID", c_int), ("MapID", c_ushort), ("LineID", c_ubyte), # ºÃÓÑËùÔڵķÖÏßID ] def __init__(self): self.Clear() self.Cmd = 0x11 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 = 0x11 self.SubCmd = 0x0D self.FriendID = 0 self.MapID = 0 self.LineID = 0 return def GetLength(self): return sizeof(tagFriendMapIDChange) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//11 0D ºÃÓѵØÍ¼ID¸Ä±ä//tagFriendMapIDChange: Cmd:%s, SubCmd:%s, FriendID:%d, MapID:%d, LineID:%d '''\ %( self.Cmd, self.SubCmd, self.FriendID, self.MapID, self.LineID ) return DumpString m_NAtagFriendMapIDChange=tagFriendMapIDChange() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagFriendMapIDChange.Cmd,m_NAtagFriendMapIDChange.SubCmd))] = m_NAtagFriendMapIDChange #------------------------------------------------------ #11 0C ºÃÓÑÔÚÏßÐÅÏ¢#tagFriendOnlineInfo class tagFriendOnlineInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("FriendID", c_int), ("Sex", c_ubyte), ("Job", c_ubyte), ("Country", c_ubyte), ("ReincarnationLv", c_ushort), # תÉúµÈ¼¶ ("LV", c_ushort), #µÈ¼¶ ("LVEx", c_ushort), #Íæ¼ÒµÈ¼¶¸±±¾£¬ÓÃÓÚתÉú ("LV2", c_ushort), #´óʦµÈ¼¶ ("OperateInfo", c_int), #Íæ¼ÒÔËÓªÉ̸½¼ÓÐÅÏ¢ ("MapID", c_ushort), ("LineID", c_ubyte), #Íæ¼Ò·ÖÏßID ] def __init__(self): self.Clear() self.Cmd = 0x11 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 = 0x11 self.SubCmd = 0x0C self.FriendID = 0 self.Sex = 0 self.Job = 0 self.Country = 0 self.ReincarnationLv = 0 self.LV = 0 self.LVEx = 0 self.LV2 = 0 self.OperateInfo = 0 self.MapID = 0 self.LineID = 0 return def GetLength(self): return sizeof(tagFriendOnlineInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//11 0C ºÃÓÑÔÚÏßÐÅÏ¢//tagFriendOnlineInfo: Cmd:%s, SubCmd:%s, FriendID:%d, Sex:%d, Job:%d, Country:%d, ReincarnationLv:%d, LV:%d, LVEx:%d, LV2:%d, OperateInfo:%d, MapID:%d, LineID:%d '''\ %( self.Cmd, self.SubCmd, self.FriendID, self.Sex, self.Job, self.Country, self.ReincarnationLv, self.LV, self.LVEx, self.LV2, self.OperateInfo, self.MapID, self.LineID ) return DumpString m_NAtagFriendOnlineInfo=tagFriendOnlineInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagFriendOnlineInfo.Cmd,m_NAtagFriendOnlineInfo.SubCmd))] = m_NAtagFriendOnlineInfo #------------------------------------------------------ #11 0E ºÃÓÑÊÕÀñ#tagFriendRecvPrize class tagFriendRecvPrize(Structure): Head = tagHead() PlayerID = 0 #(DWORD PlayerID)//·¢ËÍÕßÍæ¼ÒID NameLen = 0 #(BYTE NameLen) Name = "" #(String Name)//size = NameLen SendItemID = 0 #(DWORD SendItemID)//ËͳöµÄÎïÆ·ID. ΪÒÔºóÀ©Õ¹Ê¹Óà data = None def __init__(self): self.Clear() self.Head.Cmd = 0x11 self.Head.SubCmd = 0x0E 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.SendItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x11 self.Head.SubCmd = 0x0E self.PlayerID = 0 self.NameLen = 0 self.Name = "" self.SendItemID = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += len(self.Name) 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.Name) data = CommFunc.WriteDWORD(data, self.SendItemID) return data def OutputString(self): DumpString = ''' Head:%s, PlayerID:%d, NameLen:%d, Name:%s, SendItemID:%d '''\ %( self.Head.OutputString(), self.PlayerID, self.NameLen, self.Name, self.SendItemID ) return DumpString m_NAtagFriendRecvPrize=tagFriendRecvPrize() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagFriendRecvPrize.Head.Cmd,m_NAtagFriendRecvPrize.Head.SubCmd))] = m_NAtagFriendRecvPrize #------------------------------------------------------ #11 05 ºÃÓѶȸıä#tagFriendValueChange class tagFriendValueChange(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("FriendID", c_int), ("Value", c_int), ] def __init__(self): self.Clear() self.Cmd = 0x11 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 = 0x11 self.SubCmd = 0x05 self.FriendID = 0 self.Value = 0 return def GetLength(self): return sizeof(tagFriendValueChange) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//11 05 ºÃÓѶȸıä//tagFriendValueChange: Cmd:%s, SubCmd:%s, FriendID:%d, Value:%d '''\ %( self.Cmd, self.SubCmd, self.FriendID, self.Value ) return DumpString m_NAtagFriendValueChange=tagFriendValueChange() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagFriendValueChange.Cmd,m_NAtagFriendValueChange.SubCmd))] = m_NAtagFriendValueChange #------------------------------------------------------ #11 02 Íæ¼ÒºÃÓÑ»ù±¾ÐÅÏ¢#tagFriendInfo class tagFriendPlayer(Structure): PlayerID = 0 #(DWORD PlayerID) PlayerNameLen = 0 #(BYTE PlayerNameLen) PlayerName = "" #(String PlayerName)//size = PlayerNameLen GroupNameLen = 0 #(BYTE GroupNameLen) GroupName = "" #(String GroupName)//size = GroupNameLen FriendValue = 0 #(DWORD FriendValue)//ºÃÓÑ¶È 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.PlayerNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,self.PlayerNameLen) self.GroupNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.GroupName,_pos = CommFunc.ReadString(_lpData, _pos,self.GroupNameLen) self.FriendValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.IsOnline,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): self.PlayerID = 0 self.PlayerNameLen = 0 self.PlayerName = "" self.GroupNameLen = 0 self.GroupName = "" self.FriendValue = 0 self.IsOnline = 0 return def GetLength(self): length = 0 length += 4 length += 1 length += len(self.PlayerName) length += 1 length += len(self.GroupName) length += 4 length += 1 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.GroupNameLen) data = CommFunc.WriteString(data, self.GroupNameLen, self.GroupName) data = CommFunc.WriteDWORD(data, self.FriendValue) data = CommFunc.WriteBYTE(data, self.IsOnline) return data def OutputString(self): DumpString = ''' PlayerID:%d, PlayerNameLen:%d, PlayerName:%s, GroupNameLen:%d, GroupName:%s, FriendValue:%d, IsOnline:%d '''\ %( self.PlayerID, self.PlayerNameLen, self.PlayerName, self.GroupNameLen, self.GroupName, self.FriendValue, self.IsOnline ) return DumpString class tagFriendInfo(Structure): Head = tagHead() Count = 0 #(WORD Count) Player = list() #(vector Player)//size = Count data = None def __init__(self): self.Clear() self.Head.Cmd = 0x11 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): temPlayer = tagFriendPlayer() _pos = temPlayer.ReadData(_lpData, _pos) self.Player.append(temPlayer) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x11 self.Head.SubCmd = 0x02 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_NAtagFriendInfo=tagFriendInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagFriendInfo.Head.Cmd,m_NAtagFriendInfo.Head.SubCmd))] = m_NAtagFriendInfo #------------------------------------------------------ #12 06 ÐżþÏûʧ#tagMailDisappear class tagMailDisappear(Structure): Head = tagHead() MailID = "" #(char MailID[40]) data = None def __init__(self): self.Clear() self.Head.Cmd = 0x12 self.Head.SubCmd = 0x06 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.MailID,_pos = CommFunc.ReadString(_lpData, _pos,40) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x12 self.Head.SubCmd = 0x06 self.MailID = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 40 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteString(data, 40, self.MailID) return data def OutputString(self): DumpString = ''' Head:%s, MailID:%s '''\ %( self.Head.OutputString(), self.MailID ) return DumpString m_NAtagMailDisappear=tagMailDisappear() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMailDisappear.Head.Cmd,m_NAtagMailDisappear.Head.SubCmd))] = m_NAtagMailDisappear #------------------------------------------------------ #12 05 ÐżþÀàÐ͸ıä#tagMailTypeChange class tagMailTypeChange(Structure): Head = tagHead() MailID = "" #(char MailID[40]) MailType = 0 #(BYTE MailType) data = None def __init__(self): self.Clear() self.Head.Cmd = 0x12 self.Head.SubCmd = 0x05 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.MailID,_pos = CommFunc.ReadString(_lpData, _pos,40) self.MailType,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x12 self.Head.SubCmd = 0x05 self.MailID = "" self.MailType = 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.MailID) data = CommFunc.WriteBYTE(data, self.MailType) return data def OutputString(self): DumpString = ''' Head:%s, MailID:%s, MailType:%d '''\ %( self.Head.OutputString(), self.MailID, self.MailType ) return DumpString m_NAtagMailTypeChange=tagMailTypeChange() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMailTypeChange.Head.Cmd,m_NAtagMailTypeChange.Head.SubCmd))] = m_NAtagMailTypeChange #------------------------------------------------------ #12 02 ´ò¿ªÐżþ#tagOpenLetter class tagLetterItem(Structure): ItemID = 0 #(DWORD ItemID) ItemCount = 0 #(WORD ItemCount)//ÎïÆ·ÊýÁ¿ StartLV = 0 #(BYTE StartLV)//×°±¸ÐǼ¶ ItemDurg = 0 #(DWORD ItemDurg)//µ±Ç°Ä;à MaxDurg = 0 #(DWORD MaxDurg)//×î´óÄ;à MaxStoneCount = 0 #(BYTE MaxStoneCount)//¿ÉÏâǶ±¦Ê¯Êý0±íʾ²»¿ÉÒÔÏâǶ±¦Ê¯ Stones = list() #(vector Stones)//size = MaxStoneCount ItemProperty = 0 #(BYTE ItemProperty)//×°±¸ÎåÐÐ SoulProperty = 0 #(WORD SoulProperty)//Áé»êÊôÐÔ MakerID = 0 #(DWORD MakerID)//ÖÆ×÷ÕßID MakerNameLen = 0 #(BYTE MakerNameLen)//ÖÆÔìÕßÃû×Ö MakerName = "" #(String MakerName)//size = MakerNameLen 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.ItemCount,_pos = CommFunc.ReadWORD(_lpData, _pos) self.StartLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ItemDurg,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MaxDurg,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MaxStoneCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.MaxStoneCount): value,_pos=CommFunc.ReadDWORD(_lpData,_pos) self.Stones.append(value) self.ItemProperty,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.SoulProperty,_pos = CommFunc.ReadWORD(_lpData, _pos) self.MakerID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MakerNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.MakerName,_pos = CommFunc.ReadString(_lpData, _pos,self.MakerNameLen) 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.ItemCount = 0 self.StartLV = 0 self.ItemDurg = 0 self.MaxDurg = 0 self.MaxStoneCount = 0 self.Stones = list() self.ItemProperty = 0 self.SoulProperty = 0 self.MakerID = 0 self.MakerNameLen = 0 self.MakerName = "" self.UserDataLen = 0 self.UserData = "" return def GetLength(self): length = 0 length += 4 length += 2 length += 1 length += 4 length += 4 length += 1 length += 4 * self.MaxStoneCount length += 1 length += 2 length += 4 length += 1 length += len(self.MakerName) length += 4 length += len(self.UserData) return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.ItemID) data = CommFunc.WriteWORD(data, self.ItemCount) data = CommFunc.WriteBYTE(data, self.StartLV) data = CommFunc.WriteDWORD(data, self.ItemDurg) data = CommFunc.WriteDWORD(data, self.MaxDurg) data = CommFunc.WriteBYTE(data, self.MaxStoneCount) for i in range(self.MaxStoneCount): data = CommFunc.WriteDWORD(data, self.Stones[i]) data = CommFunc.WriteBYTE(data, self.ItemProperty) data = CommFunc.WriteWORD(data, self.SoulProperty) data = CommFunc.WriteDWORD(data, self.MakerID) data = CommFunc.WriteBYTE(data, self.MakerNameLen) data = CommFunc.WriteString(data, self.MakerNameLen, self.MakerName) data = CommFunc.WriteDWORD(data, self.UserDataLen) data = CommFunc.WriteString(data, self.UserDataLen, self.UserData) return data def OutputString(self): DumpString = ''' ItemID:%d, ItemCount:%d, StartLV:%d, ItemDurg:%d, MaxDurg:%d, MaxStoneCount:%d, Stones:%s, ItemProperty:%d, SoulProperty:%d, MakerID:%d, MakerNameLen:%d, MakerName:%s, UserDataLen:%d, UserData:%s '''\ %( self.ItemID, self.ItemCount, self.StartLV, self.ItemDurg, self.MaxDurg, self.MaxStoneCount, "...", self.ItemProperty, self.SoulProperty, self.MakerID, self.MakerNameLen, self.MakerName, self.UserDataLen, self.UserData ) return DumpString class tagOpenLetter(Structure): Head = tagHead() MailID = "" #(char MailID[40]) SenderNameLen = 0 #(BYTE SenderNameLen)//¼ÄÐÅÈË SenderName = "" #(String SenderName)//size = SenderNameLen TitleLen = 0 #(BYTE TitleLen)//Ö÷Ìâ Title = "" #(String Title)//size = TitleLen ContentLen = 0 #(WORD ContentLen)//ÄÚÈÝ Content = "" #(String Content)//size = ContentLen TitleUseSystemMessage = 0 #(BYTE TitleUseSystemMessage)//Èç¹ûΪ1, ±êÌâʹÓÃsystemmessage ContentUseSystemMessage = 0 #(BYTE ContentUseSystemMessage)//Èç¹ûΪ1, ÄÚÈÝʹÓÃsystemmessage Money = 0 #(DWORD Money)//Òø×Ó LetterType = 0 #(BYTE LetterType)//ÀàÐÍ: TLetterType LetterItemCount = 0 #(BYTE LetterItemCount)//ÐżþÎïÆ· LetterItem = list() #(vector LetterItem)//size = LetterItemCount data = None def __init__(self): self.Clear() self.Head.Cmd = 0x12 self.Head.SubCmd = 0x02 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.MailID,_pos = CommFunc.ReadString(_lpData, _pos,40) self.SenderNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.SenderName,_pos = CommFunc.ReadString(_lpData, _pos,self.SenderNameLen) self.TitleLen,_pos = CommFunc.ReadBYTE(_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) self.TitleUseSystemMessage,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ContentUseSystemMessage,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Money,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.LetterType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LetterItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.LetterItemCount): temLetterItem = tagLetterItem() _pos = temLetterItem.ReadData(_lpData, _pos) self.LetterItem.append(temLetterItem) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x12 self.Head.SubCmd = 0x02 self.MailID = "" self.SenderNameLen = 0 self.SenderName = "" self.TitleLen = 0 self.Title = "" self.ContentLen = 0 self.Content = "" self.TitleUseSystemMessage = 0 self.ContentUseSystemMessage = 0 self.Money = 0 self.LetterType = 0 self.LetterItemCount = 0 self.LetterItem = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 40 length += 1 length += len(self.SenderName) length += 1 length += len(self.Title) length += 2 length += len(self.Content) length += 1 length += 1 length += 4 length += 1 length += 1 for i in range(self.LetterItemCount): length += self.LetterItem[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteString(data, 40, self.MailID) data = CommFunc.WriteBYTE(data, self.SenderNameLen) data = CommFunc.WriteString(data, self.SenderNameLen, self.SenderName) data = CommFunc.WriteBYTE(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) data = CommFunc.WriteBYTE(data, self.TitleUseSystemMessage) data = CommFunc.WriteBYTE(data, self.ContentUseSystemMessage) data = CommFunc.WriteDWORD(data, self.Money) data = CommFunc.WriteBYTE(data, self.LetterType) data = CommFunc.WriteBYTE(data, self.LetterItemCount) for i in range(self.LetterItemCount): data = CommFunc.WriteString(data, self.LetterItem[i].GetLength(), self.LetterItem[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, MailID:%s, SenderNameLen:%d, SenderName:%s, TitleLen:%d, Title:%s, ContentLen:%d, Content:%s, TitleUseSystemMessage:%d, ContentUseSystemMessage:%d, Money:%d, LetterType:%d, LetterItemCount:%d, LetterItem:%s '''\ %( self.Head.OutputString(), self.MailID, self.SenderNameLen, self.SenderName, self.TitleLen, self.Title, self.ContentLen, self.Content, self.TitleUseSystemMessage, self.ContentUseSystemMessage, self.Money, self.LetterType, self.LetterItemCount, "..." ) return DumpString m_NAtagOpenLetter=tagOpenLetter() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagOpenLetter.Head.Cmd,m_NAtagOpenLetter.Head.SubCmd))] = m_NAtagOpenLetter #------------------------------------------------------ #12 07 ÓʼþÌáʾ#tagPlayerMailInfo class tagPlayerMailInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("InfoType", c_ubyte), #TPlayerMailInfo ] def __init__(self): self.Clear() self.Cmd = 0x12 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 = 0x12 self.SubCmd = 0x07 self.InfoType = 0 return def GetLength(self): return sizeof(tagPlayerMailInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//12 07 ÓʼþÌáʾ//tagPlayerMailInfo: Cmd:%s, SubCmd:%s, InfoType:%d '''\ %( self.Cmd, self.SubCmd, self.InfoType ) return DumpString m_NAtagPlayerMailInfo=tagPlayerMailInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerMailInfo.Cmd,m_NAtagPlayerMailInfo.SubCmd))] = m_NAtagPlayerMailInfo #------------------------------------------------------ #12 01 ÊÕÐÅ#tagRecvLetter class tagLetter(Structure): MailID = "" #(char MailID[40])//ÓʼþID SenderNameLen = 0 #(BYTE SenderNameLen) SenderName = "" #(String SenderName)//size = SenderNameLen MailType = 0 #(BYTE MailType)//ÓʼþÀàÐÍ TWatchMailType LetterType = 0 #(BYTE LetterType)//¶Ô·½¸¶·Ñ/×Ô¼º¸¶·ÑµÄÀàÐÍ TitleNameLen = 0 #(BYTE TitleNameLen) TitleName = "" #(String TitleName)//size = TitleNameLen RemainTime = 0 #(BYTE RemainTime)//µ½ÆÚʱ¼ä TitleUseSystemMessage = 0 #(BYTE TitleUseSystemMessage)//Èç¹ûÕâ¸öΪ1, ÄÇôTitleNameΪSystemMessage data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.MailID,_pos = CommFunc.ReadString(_lpData, _pos,40) self.SenderNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.SenderName,_pos = CommFunc.ReadString(_lpData, _pos,self.SenderNameLen) self.MailType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LetterType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.TitleNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.TitleName,_pos = CommFunc.ReadString(_lpData, _pos,self.TitleNameLen) self.RemainTime,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.TitleUseSystemMessage,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): self.MailID = "" self.SenderNameLen = 0 self.SenderName = "" self.MailType = 0 self.LetterType = 0 self.TitleNameLen = 0 self.TitleName = "" self.RemainTime = 0 self.TitleUseSystemMessage = 0 return def GetLength(self): length = 0 length += 40 length += 1 length += len(self.SenderName) length += 1 length += 1 length += 1 length += len(self.TitleName) length += 1 length += 1 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, 40, self.MailID) data = CommFunc.WriteBYTE(data, self.SenderNameLen) data = CommFunc.WriteString(data, self.SenderNameLen, self.SenderName) data = CommFunc.WriteBYTE(data, self.MailType) data = CommFunc.WriteBYTE(data, self.LetterType) data = CommFunc.WriteBYTE(data, self.TitleNameLen) data = CommFunc.WriteString(data, self.TitleNameLen, self.TitleName) data = CommFunc.WriteBYTE(data, self.RemainTime) data = CommFunc.WriteBYTE(data, self.TitleUseSystemMessage) return data def OutputString(self): DumpString = ''' MailID:%s, SenderNameLen:%d, SenderName:%s, MailType:%d, LetterType:%d, TitleNameLen:%d, TitleName:%s, RemainTime:%d, TitleUseSystemMessage:%d '''\ %( self.MailID, self.SenderNameLen, self.SenderName, self.MailType, self.LetterType, self.TitleNameLen, self.TitleName, self.RemainTime, self.TitleUseSystemMessage ) return DumpString class tagRecvLetter(Structure): Head = tagHead() LetterCount = 0 #(BYTE LetterCount) Letter = list() #(vector Letter)//size = LetterCount data = None def __init__(self): self.Clear() self.Head.Cmd = 0x12 self.Head.SubCmd = 0x01 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.LetterCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.LetterCount): temLetter = tagLetter() _pos = temLetter.ReadData(_lpData, _pos) self.Letter.append(temLetter) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x12 self.Head.SubCmd = 0x01 self.LetterCount = 0 self.Letter = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.LetterCount): length += self.Letter[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.LetterCount) for i in range(self.LetterCount): data = CommFunc.WriteString(data, self.Letter[i].GetLength(), self.Letter[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, LetterCount:%d, Letter:%s '''\ %( self.Head.OutputString(), self.LetterCount, "..." ) return DumpString m_NAtagRecvLetter=tagRecvLetter() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagRecvLetter.Head.Cmd,m_NAtagRecvLetter.Head.SubCmd))] = m_NAtagRecvLetter #------------------------------------------------------ #12 03 ÊÕÈ¡ÐżþÎïÆ·#tagRecvLetterItem class tagRecvLetterItem(Structure): Head = tagHead() MailID = "" #(char MailID[40])//ÐżþID data = None def __init__(self): self.Clear() self.Head.Cmd = 0x12 self.Head.SubCmd = 0x03 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.MailID,_pos = CommFunc.ReadString(_lpData, _pos,40) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x12 self.Head.SubCmd = 0x03 self.MailID = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 40 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteString(data, 40, self.MailID) return data def OutputString(self): DumpString = ''' Head:%s, MailID:%s '''\ %( self.Head.OutputString(), self.MailID ) return DumpString m_NAtagRecvLetterItem=tagRecvLetterItem() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagRecvLetterItem.Head.Cmd,m_NAtagRecvLetterItem.Head.SubCmd))] = m_NAtagRecvLetterItem #------------------------------------------------------ #12 04 ÁìÈ¡ÐżþÒø×Ó#tagRecvLetterMoney class tagRecvLetterMoney(Structure): Head = tagHead() MailID = "" #(char MailID[40])//ÐżþID data = None def __init__(self): self.Clear() self.Head.Cmd = 0x12 self.Head.SubCmd = 0x04 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.MailID,_pos = CommFunc.ReadString(_lpData, _pos,40) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x12 self.Head.SubCmd = 0x04 self.MailID = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 40 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteString(data, 40, self.MailID) return data def OutputString(self): DumpString = ''' Head:%s, MailID:%s '''\ %( self.Head.OutputString(), self.MailID ) return DumpString m_NAtagRecvLetterMoney=tagRecvLetterMoney() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagRecvLetterMoney.Head.Cmd,m_NAtagRecvLetterMoney.Head.SubCmd))] = m_NAtagRecvLetterMoney #------------------------------------------------------ #13 08 ¼¤»î´ðÌâÌØÊ⹦ÄÜ»ØÓ¦#tagActivateExamSpelFuncAnswer ¶ÔÐÔÄÜÓÐÒ»¶¨Ó°Ïì class tagActivateExamSpelFuncAnswer(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ubyte), #´ðÌâÀàÐÍ ("QuestionNO", c_ushort), # ´ðÌâºÅ ("FunctionNO", c_ubyte), # ¹¦ÄܺŠ("FunctionOpt1", c_ubyte), #¹¦ÄÜÑ¡Ïî1 ("FunctionOpt2", c_ubyte), #¹¦ÄÜÑ¡Ïî2 ("FunctionOpt3", c_ubyte), #¹¦ÄÜÑ¡Ïî3 ("FunctionOpt4", c_ubyte), #¹¦ÄÜÑ¡Ïî4 ] def __init__(self): self.Clear() self.Cmd = 0x13 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 = 0x13 self.SubCmd = 0x08 self.Type = 0 self.QuestionNO = 0 self.FunctionNO = 0 self.FunctionOpt1 = 0 self.FunctionOpt2 = 0 self.FunctionOpt3 = 0 self.FunctionOpt4 = 0 return def GetLength(self): return sizeof(tagActivateExamSpelFuncAnswer) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//13 08 ¼¤»î´ðÌâÌØÊ⹦ÄÜ»ØÓ¦//tagActivateExamSpelFuncAnswer ¶ÔÐÔÄÜÓÐÒ»¶¨Ó°Ïì: Cmd:%s, SubCmd:%s, Type:%d, QuestionNO:%d, FunctionNO:%d, FunctionOpt1:%d, FunctionOpt2:%d, FunctionOpt3:%d, FunctionOpt4:%d '''\ %( self.Cmd, self.SubCmd, self.Type, self.QuestionNO, self.FunctionNO, self.FunctionOpt1, self.FunctionOpt2, self.FunctionOpt3, self.FunctionOpt4 ) return DumpString m_NAtagActivateExamSpelFuncAnswer=tagActivateExamSpelFuncAnswer() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagActivateExamSpelFuncAnswer.Cmd,m_NAtagActivateExamSpelFuncAnswer.SubCmd))] = m_NAtagActivateExamSpelFuncAnswer #------------------------------------------------------ #13 05 Íæ¼ÒÑ¡Ôñ´ð°¸ºóµÄ»Ø°ü#tagExamAnswerOK class tagExamAnswerOK(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Answer", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0x13 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 = 0x13 self.SubCmd = 0x05 self.Answer = 0 return def GetLength(self): return sizeof(tagExamAnswerOK) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//13 05 Íæ¼ÒÑ¡Ôñ´ð°¸ºóµÄ»Ø°ü//tagExamAnswerOK: Cmd:%s, SubCmd:%s, Answer:%d '''\ %( self.Cmd, self.SubCmd, self.Answer ) return DumpString m_NAtagExamAnswerOK=tagExamAnswerOK() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagExamAnswerOK.Cmd,m_NAtagExamAnswerOK.SubCmd))] = m_NAtagExamAnswerOK #------------------------------------------------------ #13 01 ¿ªÊ¼´ðÌâ#tagBeginExam class tagBeginExam(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ExamType", c_ubyte), #TExamType ("IsBegin", c_ubyte), #ÊÇ·ñ¿ªÊ¼ ] def __init__(self): self.Clear() self.Cmd = 0x13 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 = 0x13 self.SubCmd = 0x01 self.ExamType = 0 self.IsBegin = 0 return def GetLength(self): return sizeof(tagBeginExam) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//13 01 ¿ªÊ¼´ðÌâ//tagBeginExam: Cmd:%s, SubCmd:%s, ExamType:%d, IsBegin:%d '''\ %( self.Cmd, self.SubCmd, self.ExamType, self.IsBegin ) return DumpString m_NAtagBeginExam=tagBeginExam() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagBeginExam.Cmd,m_NAtagBeginExam.SubCmd))] = m_NAtagBeginExam #------------------------------------------------------ #13 02 ´ðÌâÌâÄ¿#tagExamSubject class tagExamAnswer(Structure): AnswerLen = 0 #(BYTE AnswerLen)//»Ø´ð Answer = "" #(String Answer)//size = AnswerLen data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.AnswerLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Answer,_pos = CommFunc.ReadString(_lpData, _pos,self.AnswerLen) return _pos def Clear(self): self.AnswerLen = 0 self.Answer = "" return def GetLength(self): length = 0 length += 1 length += len(self.Answer) return length def GetBuffer(self): data = '' data = CommFunc.WriteBYTE(data, self.AnswerLen) data = CommFunc.WriteString(data, self.AnswerLen, self.Answer) return data def OutputString(self): DumpString = ''' AnswerLen:%d, Answer:%s '''\ %( self.AnswerLen, self.Answer ) return DumpString class tagExamSubject(Structure): Head = tagHead() SubjectIndex = 0 #(BYTE SubjectIndex)//µ±Ç°µÚ¼¸Ìâ SubjectLen = 0 #(BYTE SubjectLen)//ÌâÄ¿ Subject = "" #(String Subject)//size = SubjectLen AnswerCount = 0 #(BYTE AnswerCount) Answer = list() #(vector Answer)//size = AnswerCount data = None def __init__(self): self.Clear() self.Head.Cmd = 0x13 self.Head.SubCmd = 0x02 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.SubjectIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.SubjectLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Subject,_pos = CommFunc.ReadString(_lpData, _pos,self.SubjectLen) self.AnswerCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.AnswerCount): temAnswer = tagExamAnswer() _pos = temAnswer.ReadData(_lpData, _pos) self.Answer.append(temAnswer) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x13 self.Head.SubCmd = 0x02 self.SubjectIndex = 0 self.SubjectLen = 0 self.Subject = "" self.AnswerCount = 0 self.Answer = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 length += 1 length += len(self.Subject) length += 1 for i in range(self.AnswerCount): length += self.Answer[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.SubjectIndex) data = CommFunc.WriteBYTE(data, self.SubjectLen) data = CommFunc.WriteString(data, self.SubjectLen, self.Subject) data = CommFunc.WriteBYTE(data, self.AnswerCount) for i in range(self.AnswerCount): data = CommFunc.WriteString(data, self.Answer[i].GetLength(), self.Answer[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, SubjectIndex:%d, SubjectLen:%d, Subject:%s, AnswerCount:%d, Answer:%s '''\ %( self.Head.OutputString(), self.SubjectIndex, self.SubjectLen, self.Subject, self.AnswerCount, "..." ) return DumpString m_NAtagExamSubject=tagExamSubject() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagExamSubject.Head.Cmd,m_NAtagExamSubject.Head.SubCmd))] = m_NAtagExamSubject #------------------------------------------------------ #13 04 ´ðÌâÅÅÐаñ#tagExamBillboard class tagExamPeople(Structure): NameLen = 0 #(BYTE NameLen) Name = "" #(String Name)//size = NameLen Mark = 0 #(WORD Mark)//·ÖÊý 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) self.Mark,_pos = CommFunc.ReadWORD(_lpData, _pos) return _pos def Clear(self): self.NameLen = 0 self.Name = "" self.Mark = 0 return def GetLength(self): length = 0 length += 1 length += len(self.Name) length += 2 return length def GetBuffer(self): data = '' data = CommFunc.WriteBYTE(data, self.NameLen) data = CommFunc.WriteString(data, self.NameLen, self.Name) data = CommFunc.WriteWORD(data, self.Mark) return data def OutputString(self): DumpString = ''' NameLen:%d, Name:%s, Mark:%d '''\ %( self.NameLen, self.Name, self.Mark ) return DumpString class tagExamBillboard(Structure): Head = tagHead() BillboardCount = 0 #(BYTE BillboardCount) People = list() #(vector People)//size = BillboardCount data = None def __init__(self): self.Clear() self.Head.Cmd = 0x13 self.Head.SubCmd = 0x04 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.BillboardCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.BillboardCount): temPeople = tagExamPeople() _pos = temPeople.ReadData(_lpData, _pos) self.People.append(temPeople) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x13 self.Head.SubCmd = 0x04 self.BillboardCount = 0 self.People = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.BillboardCount): length += self.People[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.BillboardCount) for i in range(self.BillboardCount): data = CommFunc.WriteString(data, self.People[i].GetLength(), self.People[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, BillboardCount:%d, People:%s '''\ %( self.Head.OutputString(), self.BillboardCount, "..." ) return DumpString m_NAtagExamBillboard=tagExamBillboard() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagExamBillboard.Head.Cmd,m_NAtagExamBillboard.Head.SubCmd))] = m_NAtagExamBillboard #------------------------------------------------------ #13 06 ´ðÌâÌâÄ¿(GameServer´ðÌâϵͳ)#tagExamQuestion ´Ë·â°üÒª¹ã²¥È«·þÍæ¼Ò£¬¶ÔÐÔÄÜÓбȽϴóµÄÓ°Ïì class tagExamQuestion(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("QuestionIndex", c_ushort), #µ±Ç°µÚ¼¸Ìâ ("ExtraValue1", c_ushort), #¸½¼ÓÖµ1 ("ExtraValue2", c_ubyte), #¸½¼ÓÖµ2 ("ExtraValue3", c_ubyte), #¸½¼ÓÖµ3 ("ExtraValue4", c_ubyte), #¸½¼ÓÖµ4 ("ExtraValue5", c_ubyte), #¸½¼ÓÖµ4 ] def __init__(self): self.Clear() self.Cmd = 0x13 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 = 0x13 self.SubCmd = 0x06 self.QuestionIndex = 0 self.ExtraValue1 = 0 self.ExtraValue2 = 0 self.ExtraValue3 = 0 self.ExtraValue4 = 0 self.ExtraValue5 = 0 return def GetLength(self): return sizeof(tagExamQuestion) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//13 06 ´ðÌâÌâÄ¿(GameServer´ðÌâϵͳ)//tagExamQuestion ´Ë·â°üÒª¹ã²¥È«·þÍæ¼Ò£¬¶ÔÐÔÄÜÓбȽϴóµÄÓ°Ïì: Cmd:%s, SubCmd:%s, QuestionIndex:%d, ExtraValue1:%d, ExtraValue2:%d, ExtraValue3:%d, ExtraValue4:%d, ExtraValue5:%d '''\ %( self.Cmd, self.SubCmd, self.QuestionIndex, self.ExtraValue1, self.ExtraValue2, self.ExtraValue3, self.ExtraValue4, self.ExtraValue5 ) return DumpString m_NAtagExamQuestion=tagExamQuestion() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagExamQuestion.Cmd,m_NAtagExamQuestion.SubCmd))] = m_NAtagExamQuestion #------------------------------------------------------ #13 07 ÌâÄ¿»Ø´ð½á¹û#tagExamResult class tagExamResult(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("IsSuccess", c_ubyte), #ÊÇ·ñ³É¹¦ ("Mark", c_int), #·ÖÊý ("BillboardIndex", c_ushort), #0ÆðʼµÄÅÅÐаñÅÅÃûË÷Òý ] def __init__(self): self.Clear() self.Cmd = 0x13 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 = 0x13 self.SubCmd = 0x07 self.IsSuccess = 0 self.Mark = 0 self.BillboardIndex = 0 return def GetLength(self): return sizeof(tagExamResult) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//13 07 ÌâÄ¿»Ø´ð½á¹û//tagExamResult: Cmd:%s, SubCmd:%s, IsSuccess:%d, Mark:%d, BillboardIndex:%d '''\ %( self.Cmd, self.SubCmd, self.IsSuccess, self.Mark, self.BillboardIndex ) return DumpString m_NAtagExamResult=tagExamResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagExamResult.Cmd,m_NAtagExamResult.SubCmd))] = m_NAtagExamResult #------------------------------------------------------ #13 03 ÌâÄ¿»Ø´ð½á¹û#tagSubjectResult class tagSubjectResult(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("IsSuccess", c_ubyte), #ÊÇ·ñ³É¹¦ ("Mark", c_int), #·ÖÊý ] def __init__(self): self.Clear() self.Cmd = 0x13 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 = 0x13 self.SubCmd = 0x03 self.IsSuccess = 0 self.Mark = 0 return def GetLength(self): return sizeof(tagSubjectResult) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//13 03 ÌâÄ¿»Ø´ð½á¹û//tagSubjectResult: Cmd:%s, SubCmd:%s, IsSuccess:%d, Mark:%d '''\ %( self.Cmd, self.SubCmd, self.IsSuccess, self.Mark ) return DumpString m_NAtagSubjectResult=tagSubjectResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSubjectResult.Cmd,m_NAtagSubjectResult.SubCmd))] = m_NAtagSubjectResult #------------------------------------------------------ #14 04 ¹ºÂòÉ̵êÎïÆ·#tagBuyShopItem class tagBuyShopItem(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("BuyerID", c_int), ("ItemIndex", c_ubyte), ("BuyCount", c_ushort), ] def __init__(self): self.Clear() self.Cmd = 0x14 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 = 0x14 self.SubCmd = 0x04 self.BuyerID = 0 self.ItemIndex = 0 self.BuyCount = 0 return def GetLength(self): return sizeof(tagBuyShopItem) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//14 04 ¹ºÂòÉ̵êÎïÆ·//tagBuyShopItem: Cmd:%s, SubCmd:%s, BuyerID:%d, ItemIndex:%d, BuyCount:%d '''\ %( self.Cmd, self.SubCmd, self.BuyerID, self.ItemIndex, self.BuyCount ) return DumpString m_NAtagBuyShopItem=tagBuyShopItem() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagBuyShopItem.Cmd,m_NAtagBuyShopItem.SubCmd))] = m_NAtagBuyShopItem #------------------------------------------------------ #14 02 ½áÊø°Ú̯(¹ã²¥)#tagEndShop class tagEndShop(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PlayerID", c_int), #°Ú̯ÈËID ] def __init__(self): self.Clear() self.Cmd = 0x14 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 = 0x14 self.SubCmd = 0x02 self.PlayerID = 0 return def GetLength(self): return sizeof(tagEndShop) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//14 02 ½áÊø°Ú̯(¹ã²¥)//tagEndShop: Cmd:%s, SubCmd:%s, PlayerID:%d '''\ %( self.Cmd, self.SubCmd, self.PlayerID ) return DumpString m_NAtagEndShop=tagEndShop() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagEndShop.Cmd,m_NAtagEndShop.SubCmd))] = m_NAtagEndShop #------------------------------------------------------ #14 03 ²é¿´Ì¯Î»#tagPlayerShop class tagPlayerShopItem(Structure): ItemIndex = 0 #(BYTE ItemIndex) Gold = 0 #(DWORD Gold)//½ð×Ó GoldPaper = 0 #(DWORD GoldPaper)//½ðƱ Silver = 0 #(DWORD Silver)//Òø×Ó SilverPaper = 0 #(DWORD SilverPaper)//񿮱 ItemID = 0 #(DWORD ItemID) ItemCount = 0 #(WORD ItemCount)//ÎïÆ·ÊýÁ¿ StartLV = 0 #(BYTE StartLV)//×°±¸ÐǼ¶ ItemDurg = 0 #(DWORD ItemDurg)//µ±Ç°Ä;à MaxDurg = 0 #(DWORD MaxDurg)//×î´óÄ;à RemainHour = 0 #(DWORD RemainHour)//ÎïÆ·ÓÐЧʱ¼ä MaxStoneCount = 0 #(BYTE MaxStoneCount)//¿ÉÏâǶ±¦Ê¯Êý0±íʾ²»¿ÉÒÔÏâǶ±¦Ê¯ Stones = list() #(vector Stones)//size = MaxStoneCount ItemProperty = 0 #(BYTE ItemProperty)//×°±¸ÎåÐÐ SoulProperty = 0 #(WORD SoulProperty)//Áé»êÊôÐÔ MakerID = 0 #(DWORD MakerID)//ÖÆ×÷ÕßID MakerNameLen = 0 #(BYTE MakerNameLen)//ÖÆÔìÕßÃû×Ö MakerName = "" #(String MakerName)//size = MakerNameLen UserDataLen = 0 #(DWORD UserDataLen) UserData = "" #(String UserData)//size = UserDataLen IsSuite = 0 #(BYTE IsSuite)//ÊÇ·ñÒѾ­Ì××°»¯ FitLV = 0 #(BYTE FitLV)//ÎïÆ·ÆõºÏµÈ¼¶ Proficiency = 0 #(DWORD Proficiency)//ÊìÁ·¶È RelMaxAddSkillCnt = 0 #(BYTE RelMaxAddSkillCnt)//×î´óÁéÎÆÊýÁ¿£¨tagRoleItem±íMaxAddSkillCnÊôÐÔ£¬»á±ä»¯£© EquipMinAtkValue = 0 #(DWORD EquipMinAtkValue)//ÓÃÓڼǼװ±¸µÄ×îСÉ˺¦Öµ EquipMaxAtkValue = 0 #(DWORD EquipMaxAtkValue)//ÓÃÓڼǼװ±¸µÄ×î´óÉ˺¦Öµ BaseHP = 0 #(DWORD BaseHP)// HP»ù´¡Öµ BaseMagicDef = 0 #(DWORD BaseMagicDef)//ÄÚ·À»ù´¡Öµ EquipDefenseValue = 0 #(DWORD EquipDefenseValue)//ÓÃÓڼǼװ±¸µÄ·ÀÓùÖµ EquipMagicDefValue = 0 #(DWORD EquipMagicDefValue)//×°±¸ÄÚ·ÀÖµ EquipMinMagicAtkValue = 0 #(DWORD EquipMinMagicAtkValue)//×°±¸×îСÄÚ¹¥ EquipMaxMagicAtkValue = 0 #(DWORD EquipMaxMagicAtkValue)//×°±¸×î´óÄÚ¹¥ data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.ItemIndex,_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) self.SilverPaper,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ItemCount,_pos = CommFunc.ReadWORD(_lpData, _pos) self.StartLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ItemDurg,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MaxDurg,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.RemainHour,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MaxStoneCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.MaxStoneCount): value,_pos=CommFunc.ReadDWORD(_lpData,_pos) self.Stones.append(value) self.ItemProperty,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.SoulProperty,_pos = CommFunc.ReadWORD(_lpData, _pos) self.MakerID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MakerNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.MakerName,_pos = CommFunc.ReadString(_lpData, _pos,self.MakerNameLen) self.UserDataLen,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen) self.IsSuite,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.FitLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Proficiency,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.RelMaxAddSkillCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.EquipMinAtkValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.EquipMaxAtkValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.BaseHP,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.BaseMagicDef,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.EquipDefenseValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.EquipMagicDefValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.EquipMinMagicAtkValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.EquipMaxMagicAtkValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): self.ItemIndex = 0 self.Gold = 0 self.GoldPaper = 0 self.Silver = 0 self.SilverPaper = 0 self.ItemID = 0 self.ItemCount = 0 self.StartLV = 0 self.ItemDurg = 0 self.MaxDurg = 0 self.RemainHour = 0 self.MaxStoneCount = 0 self.Stones = list() self.ItemProperty = 0 self.SoulProperty = 0 self.MakerID = 0 self.MakerNameLen = 0 self.MakerName = "" self.UserDataLen = 0 self.UserData = "" self.IsSuite = 0 self.FitLV = 0 self.Proficiency = 0 self.RelMaxAddSkillCnt = 0 self.EquipMinAtkValue = 0 self.EquipMaxAtkValue = 0 self.BaseHP = 0 self.BaseMagicDef = 0 self.EquipDefenseValue = 0 self.EquipMagicDefValue = 0 self.EquipMinMagicAtkValue = 0 self.EquipMaxMagicAtkValue = 0 return def GetLength(self): length = 0 length += 1 length += 4 length += 4 length += 4 length += 4 length += 4 length += 2 length += 1 length += 4 length += 4 length += 4 length += 1 length += 4 * self.MaxStoneCount length += 1 length += 2 length += 4 length += 1 length += len(self.MakerName) length += 4 length += len(self.UserData) length += 1 length += 1 length += 4 length += 1 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 return length def GetBuffer(self): data = '' data = CommFunc.WriteBYTE(data, self.ItemIndex) 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.ItemID) data = CommFunc.WriteWORD(data, self.ItemCount) data = CommFunc.WriteBYTE(data, self.StartLV) data = CommFunc.WriteDWORD(data, self.ItemDurg) data = CommFunc.WriteDWORD(data, self.MaxDurg) data = CommFunc.WriteDWORD(data, self.RemainHour) data = CommFunc.WriteBYTE(data, self.MaxStoneCount) for i in range(self.MaxStoneCount): data = CommFunc.WriteDWORD(data, self.Stones[i]) data = CommFunc.WriteBYTE(data, self.ItemProperty) data = CommFunc.WriteWORD(data, self.SoulProperty) data = CommFunc.WriteDWORD(data, self.MakerID) data = CommFunc.WriteBYTE(data, self.MakerNameLen) data = CommFunc.WriteString(data, self.MakerNameLen, self.MakerName) data = CommFunc.WriteDWORD(data, self.UserDataLen) data = CommFunc.WriteString(data, self.UserDataLen, self.UserData) data = CommFunc.WriteBYTE(data, self.IsSuite) data = CommFunc.WriteBYTE(data, self.FitLV) data = CommFunc.WriteDWORD(data, self.Proficiency) data = CommFunc.WriteBYTE(data, self.RelMaxAddSkillCnt) data = CommFunc.WriteDWORD(data, self.EquipMinAtkValue) data = CommFunc.WriteDWORD(data, self.EquipMaxAtkValue) data = CommFunc.WriteDWORD(data, self.BaseHP) data = CommFunc.WriteDWORD(data, self.BaseMagicDef) data = CommFunc.WriteDWORD(data, self.EquipDefenseValue) data = CommFunc.WriteDWORD(data, self.EquipMagicDefValue) data = CommFunc.WriteDWORD(data, self.EquipMinMagicAtkValue) data = CommFunc.WriteDWORD(data, self.EquipMaxMagicAtkValue) return data def OutputString(self): DumpString = ''' ItemIndex:%d, Gold:%d, GoldPaper:%d, Silver:%d, SilverPaper:%d, ItemID:%d, ItemCount:%d, StartLV:%d, ItemDurg:%d, MaxDurg:%d, RemainHour:%d, MaxStoneCount:%d, Stones:%s, ItemProperty:%d, SoulProperty:%d, MakerID:%d, MakerNameLen:%d, MakerName:%s, UserDataLen:%d, UserData:%s, IsSuite:%d, FitLV:%d, Proficiency:%d, RelMaxAddSkillCnt:%d, EquipMinAtkValue:%d, EquipMaxAtkValue:%d, BaseHP:%d, BaseMagicDef:%d, EquipDefenseValue:%d, EquipMagicDefValue:%d, EquipMinMagicAtkValue:%d, EquipMaxMagicAtkValue:%d '''\ %( self.ItemIndex, self.Gold, self.GoldPaper, self.Silver, self.SilverPaper, self.ItemID, self.ItemCount, self.StartLV, self.ItemDurg, self.MaxDurg, self.RemainHour, self.MaxStoneCount, "...", self.ItemProperty, self.SoulProperty, self.MakerID, self.MakerNameLen, self.MakerName, self.UserDataLen, self.UserData, self.IsSuite, self.FitLV, self.Proficiency, self.RelMaxAddSkillCnt, self.EquipMinAtkValue, self.EquipMaxAtkValue, self.BaseHP, self.BaseMagicDef, self.EquipDefenseValue, self.EquipMagicDefValue, self.EquipMinMagicAtkValue, self.EquipMaxMagicAtkValue ) return DumpString class tagPlayerShop(Structure): Head = tagHead() PlayerID = 0 #(DWORD PlayerID) ShopNameLen = 0 #(BYTE ShopNameLen) ShopName = "" #(String ShopName)//size = ShopNameLen ShopLV = 0 #(BYTE ShopLV)//̯λµÈ¼¶ SellCount = 0 #(BYTE SellCount)//³öÊÛÎïÆ· SellItemIndex = list() #(vector SellItemIndex)//size = SellCount data = None def __init__(self): self.Clear() self.Head.Cmd = 0x14 self.Head.SubCmd = 0x03 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.ShopNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ShopName,_pos = CommFunc.ReadString(_lpData, _pos,self.ShopNameLen) self.ShopLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.SellCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.SellCount): temSellItemIndex = tagPlayerShopItem() _pos = temSellItemIndex.ReadData(_lpData, _pos) self.SellItemIndex.append(temSellItemIndex) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x14 self.Head.SubCmd = 0x03 self.PlayerID = 0 self.ShopNameLen = 0 self.ShopName = "" self.ShopLV = 0 self.SellCount = 0 self.SellItemIndex = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += len(self.ShopName) length += 1 length += 1 for i in range(self.SellCount): length += self.SellItemIndex[i].GetLength() 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.ShopNameLen) data = CommFunc.WriteString(data, self.ShopNameLen, self.ShopName) data = CommFunc.WriteBYTE(data, self.ShopLV) data = CommFunc.WriteBYTE(data, self.SellCount) for i in range(self.SellCount): data = CommFunc.WriteString(data, self.SellItemIndex[i].GetLength(), self.SellItemIndex[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, PlayerID:%d, ShopNameLen:%d, ShopName:%s, ShopLV:%d, SellCount:%d, SellItemIndex:%s '''\ %( self.Head.OutputString(), self.PlayerID, self.ShopNameLen, self.ShopName, self.ShopLV, self.SellCount, "..." ) return DumpString m_NAtagPlayerShop=tagPlayerShop() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerShop.Head.Cmd,m_NAtagPlayerShop.Head.SubCmd))] = m_NAtagPlayerShop #------------------------------------------------------ #14 07 °Ú̯Âô¼ÒÂô³öÎïÆ·#tagSellerSellShopItem class tagSellerSellShopItem(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("BuyerID", c_int), ("ItemIndex", c_ubyte), ("BuyCount", c_ushort), ] def __init__(self): self.Clear() self.Cmd = 0x14 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 = 0x14 self.SubCmd = 0x07 self.BuyerID = 0 self.ItemIndex = 0 self.BuyCount = 0 return def GetLength(self): return sizeof(tagSellerSellShopItem) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//14 07 °Ú̯Âô¼ÒÂô³öÎïÆ·//tagSellerSellShopItem: Cmd:%s, SubCmd:%s, BuyerID:%d, ItemIndex:%d, BuyCount:%d '''\ %( self.Cmd, self.SubCmd, self.BuyerID, self.ItemIndex, self.BuyCount ) return DumpString m_NAtagSellerSellShopItem=tagSellerSellShopItem() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSellerSellShopItem.Cmd,m_NAtagSellerSellShopItem.SubCmd))] = m_NAtagSellerSellShopItem #------------------------------------------------------ #14 06 ²é¿´ËûÈË̯λµÄ´°¿Ú¹Ø±Õ#tagWatchShopClose class tagWatchShopClose(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("Type", c_ubyte), #ÎÞÒâÒå ] def __init__(self): self.Clear() self.Cmd = 0x14 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 = 0x14 self.SubCmd = 0x06 self.Type = 0 return def GetLength(self): return sizeof(tagWatchShopClose) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//14 06 ²é¿´ËûÈË̯λµÄ´°¿Ú¹Ø±Õ//tagWatchShopClose: Cmd:%s, SubCmd:%s, Type:%d '''\ %( self.Cmd, self.SubCmd, self.Type ) return DumpString m_NAtagWatchShopClose=tagWatchShopClose() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagWatchShopClose.Cmd,m_NAtagWatchShopClose.SubCmd))] = m_NAtagWatchShopClose #------------------------------------------------------ #14 05 ×Ô¼º°Ú̯ÎïÆ·Ë¢ÐÂ#tagShopItemRefresh class tagCurShopItem(Structure): _pack_ = 1 _fields_ = [ ("ItemIndex", c_ubyte), ("Gold", c_int), #½ð×Ó ("GoldPaper", c_int), #½ðƱ ("Silver", c_int), #Òø×Ó ("SilverPaper", 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.ItemIndex = 0 self.Gold = 0 self.GoldPaper = 0 self.Silver = 0 self.SilverPaper = 0 return def GetLength(self): return sizeof(tagCurShopItem) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//14 05 ×Ô¼º°Ú̯ÎïÆ·Ë¢ÐÂ//tagShopItemRefresh: ItemIndex:%d, Gold:%d, GoldPaper:%d, Silver:%d, SilverPaper:%d '''\ %( self.ItemIndex, self.Gold, self.GoldPaper, self.Silver, self.SilverPaper ) return DumpString class tagShopItemRefresh(Structure): Head = tagHead() SellCount = 0 #(BYTE SellCount)//³öÊÛÎïÆ· SellItemIndex = list() #(vector SellItemIndex)//size = SellCount data = None def __init__(self): self.Clear() self.Head.Cmd = 0x14 self.Head.SubCmd = 0x05 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.SellCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.SellCount): temSellItemIndex = tagCurShopItem() _pos = temSellItemIndex.ReadData(_lpData, _pos) self.SellItemIndex.append(temSellItemIndex) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x14 self.Head.SubCmd = 0x05 self.SellCount = 0 self.SellItemIndex = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.SellCount): length += self.SellItemIndex[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.SellCount) for i in range(self.SellCount): data = CommFunc.WriteString(data, self.SellItemIndex[i].GetLength(), self.SellItemIndex[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, SellCount:%d, SellItemIndex:%s '''\ %( self.Head.OutputString(), self.SellCount, "..." ) return DumpString m_NAtagShopItemRefresh=tagShopItemRefresh() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagShopItemRefresh.Head.Cmd,m_NAtagShopItemRefresh.Head.SubCmd))] = m_NAtagShopItemRefresh #------------------------------------------------------ #14 01 ¿ªÊ¼°Ú̯(¹ã²¥)#tagStartShop class tagStartShop(Structure): Head = tagHead() PlayerID = 0 #(DWORD PlayerID)//°Ú̯ÈËID ShopNameLen = 0 #(BYTE ShopNameLen) ShopName = "" #(String ShopName)//size = ShopNameLen ShopLV = 0 #(BYTE ShopLV)//̯λµÈ¼¶ data = None def __init__(self): self.Clear() self.Head.Cmd = 0x14 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.ShopNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ShopName,_pos = CommFunc.ReadString(_lpData, _pos,self.ShopNameLen) self.ShopLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x14 self.Head.SubCmd = 0x01 self.PlayerID = 0 self.ShopNameLen = 0 self.ShopName = "" self.ShopLV = 0 return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += len(self.ShopName) length += 1 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.PlayerID) data = CommFunc.WriteBYTE(data, self.ShopNameLen) data = CommFunc.WriteString(data, self.ShopNameLen, self.ShopName) data = CommFunc.WriteBYTE(data, self.ShopLV) return data def OutputString(self): DumpString = ''' Head:%s, PlayerID:%d, ShopNameLen:%d, ShopName:%s, ShopLV:%d '''\ %( self.Head.OutputString(), self.PlayerID, self.ShopNameLen, self.ShopName, self.ShopLV ) return DumpString m_NAtagStartShop=tagStartShop() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagStartShop.Head.Cmd,m_NAtagStartShop.Head.SubCmd))] = m_NAtagStartShop #------------------------------------------------------ #15 01 ¹ú¼ÒÐÅÏ¢±í#tagCountryInfo class tagCountry(Structure): CountryID = 0 #(BYTE CountryID) KingID = 0 #(DWORD KingID) KingNameLen = 0 #(BYTE KingNameLen) KingName = "" #(String KingName)//size = KingNameLen Revenue = 0 #(WORD Revenue) data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.CountryID,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.KingID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.KingNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.KingName,_pos = CommFunc.ReadString(_lpData, _pos,self.KingNameLen) self.Revenue,_pos = CommFunc.ReadWORD(_lpData, _pos) return _pos def Clear(self): self.CountryID = 0 self.KingID = 0 self.KingNameLen = 0 self.KingName = "" self.Revenue = 0 return def GetLength(self): length = 0 length += 1 length += 4 length += 1 length += len(self.KingName) length += 2 return length def GetBuffer(self): data = '' data = CommFunc.WriteBYTE(data, self.CountryID) data = CommFunc.WriteDWORD(data, self.KingID) data = CommFunc.WriteBYTE(data, self.KingNameLen) data = CommFunc.WriteString(data, self.KingNameLen, self.KingName) data = CommFunc.WriteWORD(data, self.Revenue) return data def OutputString(self): DumpString = ''' CountryID:%d, KingID:%d, KingNameLen:%d, KingName:%s, Revenue:%d '''\ %( self.CountryID, self.KingID, self.KingNameLen, self.KingName, self.Revenue ) return DumpString class tagCountryInfo(Structure): Head = tagHead() CountryCount = 0 #(BYTE CountryCount) CountryInfo = list() #(vector CountryInfo)//size = CountryCount data = None def __init__(self): self.Clear() self.Head.Cmd = 0x15 self.Head.SubCmd = 0x01 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.CountryCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.CountryCount): temCountryInfo = tagCountry() _pos = temCountryInfo.ReadData(_lpData, _pos) self.CountryInfo.append(temCountryInfo) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x15 self.Head.SubCmd = 0x01 self.CountryCount = 0 self.CountryInfo = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.CountryCount): length += self.CountryInfo[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.CountryCount) for i in range(self.CountryCount): data = CommFunc.WriteString(data, self.CountryInfo[i].GetLength(), self.CountryInfo[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, CountryCount:%d, CountryInfo:%s '''\ %( self.Head.OutputString(), self.CountryCount, "..." ) return DumpString m_NAtagCountryInfo=tagCountryInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCountryInfo.Head.Cmd,m_NAtagCountryInfo.Head.SubCmd))] = m_NAtagCountryInfo #------------------------------------------------------ #16 0A ³èÎïÀ¸É¾³ý³èÎï#tagDeletePet class tagDeletePet(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PetID", c_int), ] def __init__(self): self.Clear() self.Cmd = 0x16 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 = 0x16 self.SubCmd = 0x0A self.PetID = 0 return def GetLength(self): return sizeof(tagDeletePet) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//16 0A ³èÎïÀ¸É¾³ý³èÎï//tagDeletePet: Cmd:%s, SubCmd:%s, PetID:%d '''\ %( self.Cmd, self.SubCmd, self.PetID ) return DumpString m_NAtagDeletePet=tagDeletePet() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagDeletePet.Cmd,m_NAtagDeletePet.SubCmd))] = m_NAtagDeletePet #------------------------------------------------------ #16 0C ³èÎïɾ³ý¼¼ÄÜ#tagPetDeleteSkill class tagPetDeleteSkill(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PetID", c_int), # ³èÎïID ("SkillID", c_int), #¼¼ÄÜID ] def __init__(self): self.Clear() self.Cmd = 0x16 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 = 0x16 self.SubCmd = 0x0C self.PetID = 0 self.SkillID = 0 return def GetLength(self): return sizeof(tagPetDeleteSkill) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//16 0C ³èÎïɾ³ý¼¼ÄÜ//tagPetDeleteSkill: Cmd:%s, SubCmd:%s, PetID:%d, SkillID:%d '''\ %( self.Cmd, self.SubCmd, self.PetID, self.SkillID ) return DumpString m_NAtagPetDeleteSkill=tagPetDeleteSkill() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPetDeleteSkill.Cmd,m_NAtagPetDeleteSkill.SubCmd))] = m_NAtagPetDeleteSkill #------------------------------------------------------ #16 01 ³èÎïÁбíË¢ÐÂ#tagPetListRefresh class tagPetSkillInfo(Structure): _pack_ = 1 _fields_ = [ ("SkillID", 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.SkillID = 0 self.RemainTime = 0 return def GetLength(self): return sizeof(tagPetSkillInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//16 01 ³èÎïÁбíË¢ÐÂ//tagPetListRefresh: SkillID:%d, RemainTime:%d '''\ %( self.SkillID, self.RemainTime ) return DumpString class tagPetInfo(Structure): ID = 0 #(DWORD ID)// ³èÎïID PlayerID = 0 #(DWORD PlayerID)// Ö÷ÈËID NPCID = 0 #(DWORD NPCID)// ³èÎïµÄNPCID NameLen = 0 #(BYTE NameLen)// ³èÎïÃû×Ö³¤¶È Name = "" #(String Name)// ³èÎïÃû×Ö,Èç¹ûûÓÐ×Ô¶¨ÒåÃû×Ö,´ËÃû×ÖΪ¿Õ,×Ô¼º²é±í BindType = 0 #(BYTE BindType)// °ó¶¨ÀàÐÍ LV = 0 #(WORD LV)// µÈ¼¶ Exp = 0 #(DWORD Exp) Grade = 0 #(DWORD Grade)//ÆÀ·Ö Friendliness = 0 #(WORD Friendliness)// Ç×ÃÜ¶È STR = 0 #(DWORD STR)//Á¦Á¿ PNE = 0 #(DWORD PNE)//ÕæÔª PHY = 0 #(DWORD PHY)//½î¹Ç CON = 0 #(DWORD CON)//ÌåÆÇ LeftPoints = 0 #(WORD LeftPoints)//DZÁ¦,¼´Ê£ÓàµãÊý HP = 0 #(DWORD HP)// µ±Ç°ÆøÑª MaxHP = 0 #(DWORD MaxHP)// ×î´óÆøÑª PhysicAtk = 0 #(DWORD PhysicAtk)// Í⹦ PhysicDef = 0 #(DWORD PhysicDef)// Íâ·À MagicAtk = 0 #(DWORD MagicAtk)// ÄÚ¹¥ MagicDef = 0 #(DWORD MagicDef)// ÄÚ·À SkillListCnt = 0 #(BYTE SkillListCnt)// ¼¼ÄÜÊý SkillList = list() #(vector SkillList)//size = SkillListCnt UseCreatorDrugCnt = 0 #(BYTE UseCreatorDrugCnt)// Ô컯µ¤Ê¹ÓôÎÊý DailyTrainCnt = 0 #(BYTE DailyTrainCnt)// ÿÈÕѵÁ·´ÎÊý HPTalent = 0 #(WORD HPTalent)//ÆøÑª×ÊÖÊ MPTalent = 0 #(WORD MPTalent)//ÄÚÁ¦×ÊÖÊ PhysicAtkTalent = 0 #(WORD PhysicAtkTalent)//Íâ¹¥×ÊÖÊ MagicAtkTalent = 0 #(WORD MagicAtkTalent)//ÄÚ¹¥×ÊÖÊ PhysicDefTalent = 0 #(WORD PhysicDefTalent)//Íâ·À×ÊÖÊ MagicDefTalent = 0 #(WORD MagicDefTalent)//ÄÚ·À×ÊÖÊ WindAtk = 0 #(DWORD WindAtk)// ·ç¹¥ WindDef = 0 #(DWORD WindDef)// ·ç·À FireAtk = 0 #(DWORD FireAtk)// »ð¹¥ FireDef = 0 #(DWORD FireDef)// »ð·À ThunderAtk = 0 #(DWORD ThunderAtk)// À×¹¥ ThunderDef = 0 #(DWORD ThunderDef)// À×·À IceAtk = 0 #(DWORD IceAtk)// ±ù¹¥ IceDef = 0 #(DWORD IceDef)// ±ù·À PoisionAtk = 0 #(DWORD PoisionAtk)// ¶¾¹¥ PoisionDef = 0 #(DWORD PoisionDef)// ¶¾·À QualityLV = 0 #(int QualityLV)//Æ·Öʵȼ¶ AIMode = 0 #(BYTE AIMode)//AIģʽ BattlePower = 0 #(DWORD BattlePower)//Õ½¶·Á¦ IncreateSkillCnt = 0 #(BYTE IncreateSkillCnt)//ÒÑÓõÀ¾ßÀ©Õ¹¼¼ÄÜÉÏÏÞ´ÎÊý SkillAtkRate = 0 #(DWORD SkillAtkRate)//Õ½¶·ÊôÐÔ--¼¼Äܹ¥»÷Íò·Ö±È LuckyHitRate = 0 #(DWORD LuckyHitRate)//Õ½¶·ÊôÐÔ--»áÐÄÒ»»÷»úÂÊÍò·ÖÂÊ LuckyHitVal = 0 #(DWORD LuckyHitVal)//Õ½¶·ÊôÐÔ--»áÐÄÒ»»÷¶îÍâÉ˺¦ GreatHitRate = 0 #(DWORD GreatHitRate)//Õ½¶·ÊôÐÔ--׿Խһ»÷»úÂÊÍò·ÖÂÊ GreatHitVal = 0 #(DWORD GreatHitVal)//Õ½¶·ÊôÐÔ--׿Խһ»÷¶îÍâÉ˺¦ KillBackHP = 0 #(DWORD KillBackHP)//Õ½¶·ÊôÐÔ--ɱ¹Ö»ØÑª KillBackMP = 0 #(DWORD KillBackMP)//Õ½¶·ÊôÐÔ--ɱ¹Ö»ØÄ§ DamageReduceRate = 0 #(DWORD DamageReduceRate)//Õ½¶·ÊôÐÔ--¼õÉËÍò·Ö±È DamageBackRate = 0 #(DWORD DamageBackRate)//Õ½¶·ÊôÐÔ--·´ÉËÍò·Ö±È GoldFoundRate = 0 #(DWORD GoldFoundRate)//Õ½¶·ÊôÐÔ--½ðǮѰ»ñ¼Ó³ÉÍò·Ö±È IgnoreDefRate = 0 #(DWORD IgnoreDefRate)//Õ½¶·ÊôÐÔ--ÎÞÊÓ·ÀÓù»úÂÊÍò·ÖÂÊ BattleValEx1 = 0 #(DWORD BattleValEx1)//Õ½¶·ÊôÐÔ--À©Õ¹1 BattleValEx2 = 0 #(DWORD BattleValEx2)//Õ½¶·ÊôÐÔ--À©Õ¹2 BattleValEx3 = 0 #(DWORD BattleValEx3)//Õ½¶·ÊôÐÔ--À©Õ¹3 BattleValEx4 = 0 #(DWORD BattleValEx4)//Õ½¶·ÊôÐÔ--À©Õ¹4 BattleValEx5 = 0 #(DWORD BattleValEx5)//Õ½¶·ÊôÐÔ--À©Õ¹5 PetIndex = 0 #(BYTE PetIndex)//Íæ¼Ò³èÎïË÷Òý 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.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.NPCID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Name,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen) self.BindType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Exp,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Grade,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Friendliness,_pos = CommFunc.ReadWORD(_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.LeftPoints,_pos = CommFunc.ReadWORD(_lpData, _pos) self.HP,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MaxHP,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.PhysicAtk,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.PhysicDef,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MagicAtk,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MagicDef,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.SkillListCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.SkillListCnt): temSkillList = tagPetSkillInfo() _pos = temSkillList.ReadData(_lpData, _pos) self.SkillList.append(temSkillList) self.UseCreatorDrugCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.DailyTrainCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.HPTalent,_pos = CommFunc.ReadWORD(_lpData, _pos) self.MPTalent,_pos = CommFunc.ReadWORD(_lpData, _pos) self.PhysicAtkTalent,_pos = CommFunc.ReadWORD(_lpData, _pos) self.MagicAtkTalent,_pos = CommFunc.ReadWORD(_lpData, _pos) self.PhysicDefTalent,_pos = CommFunc.ReadWORD(_lpData, _pos) self.MagicDefTalent,_pos = CommFunc.ReadWORD(_lpData, _pos) self.WindAtk,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.WindDef,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.FireAtk,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.FireDef,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ThunderAtk,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ThunderDef,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.IceAtk,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.IceDef,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.PoisionAtk,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.PoisionDef,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.QualityLV,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.AIMode,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.BattlePower,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.IncreateSkillCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.SkillAtkRate,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.LuckyHitRate,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.LuckyHitVal,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.GreatHitRate,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.GreatHitVal,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.KillBackHP,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.KillBackMP,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.DamageReduceRate,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.DamageBackRate,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.GoldFoundRate,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.IgnoreDefRate,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.BattleValEx1,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.BattleValEx2,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.BattleValEx3,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.BattleValEx4,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.BattleValEx5,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.PetIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): self.ID = 0 self.PlayerID = 0 self.NPCID = 0 self.NameLen = 0 self.Name = "" self.BindType = 0 self.LV = 0 self.Exp = 0 self.Grade = 0 self.Friendliness = 0 self.STR = 0 self.PNE = 0 self.PHY = 0 self.CON = 0 self.LeftPoints = 0 self.HP = 0 self.MaxHP = 0 self.PhysicAtk = 0 self.PhysicDef = 0 self.MagicAtk = 0 self.MagicDef = 0 self.SkillListCnt = 0 self.SkillList = list() self.UseCreatorDrugCnt = 0 self.DailyTrainCnt = 0 self.HPTalent = 0 self.MPTalent = 0 self.PhysicAtkTalent = 0 self.MagicAtkTalent = 0 self.PhysicDefTalent = 0 self.MagicDefTalent = 0 self.WindAtk = 0 self.WindDef = 0 self.FireAtk = 0 self.FireDef = 0 self.ThunderAtk = 0 self.ThunderDef = 0 self.IceAtk = 0 self.IceDef = 0 self.PoisionAtk = 0 self.PoisionDef = 0 self.QualityLV = 0 self.AIMode = 0 self.BattlePower = 0 self.IncreateSkillCnt = 0 self.SkillAtkRate = 0 self.LuckyHitRate = 0 self.LuckyHitVal = 0 self.GreatHitRate = 0 self.GreatHitVal = 0 self.KillBackHP = 0 self.KillBackMP = 0 self.DamageReduceRate = 0 self.DamageBackRate = 0 self.GoldFoundRate = 0 self.IgnoreDefRate = 0 self.BattleValEx1 = 0 self.BattleValEx2 = 0 self.BattleValEx3 = 0 self.BattleValEx4 = 0 self.BattleValEx5 = 0 self.PetIndex = 0 return def GetLength(self): length = 0 length += 4 length += 4 length += 4 length += 1 length += len(self.Name) length += 1 length += 2 length += 4 length += 4 length += 2 length += 4 length += 4 length += 4 length += 4 length += 2 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 1 for i in range(self.SkillListCnt): length += self.SkillList[i].GetLength() length += 1 length += 1 length += 2 length += 2 length += 2 length += 2 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 += 4 length += 1 length += 4 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 += 4 length += 4 length += 4 length += 4 length += 4 length += 1 return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.ID) data = CommFunc.WriteDWORD(data, self.PlayerID) data = CommFunc.WriteDWORD(data, self.NPCID) data = CommFunc.WriteBYTE(data, self.NameLen) data = CommFunc.WriteString(data, self.NameLen, self.Name) data = CommFunc.WriteBYTE(data, self.BindType) data = CommFunc.WriteWORD(data, self.LV) data = CommFunc.WriteDWORD(data, self.Exp) data = CommFunc.WriteDWORD(data, self.Grade) data = CommFunc.WriteWORD(data, self.Friendliness) 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.LeftPoints) data = CommFunc.WriteDWORD(data, self.HP) data = CommFunc.WriteDWORD(data, self.MaxHP) data = CommFunc.WriteDWORD(data, self.PhysicAtk) data = CommFunc.WriteDWORD(data, self.PhysicDef) data = CommFunc.WriteDWORD(data, self.MagicAtk) data = CommFunc.WriteDWORD(data, self.MagicDef) data = CommFunc.WriteBYTE(data, self.SkillListCnt) for i in range(self.SkillListCnt): data = CommFunc.WriteString(data, self.SkillList[i].GetLength(), self.SkillList[i].GetBuffer()) data = CommFunc.WriteBYTE(data, self.UseCreatorDrugCnt) data = CommFunc.WriteBYTE(data, self.DailyTrainCnt) data = CommFunc.WriteWORD(data, self.HPTalent) data = CommFunc.WriteWORD(data, self.MPTalent) data = CommFunc.WriteWORD(data, self.PhysicAtkTalent) data = CommFunc.WriteWORD(data, self.MagicAtkTalent) data = CommFunc.WriteWORD(data, self.PhysicDefTalent) data = CommFunc.WriteWORD(data, self.MagicDefTalent) data = CommFunc.WriteDWORD(data, self.WindAtk) data = CommFunc.WriteDWORD(data, self.WindDef) data = CommFunc.WriteDWORD(data, self.FireAtk) data = CommFunc.WriteDWORD(data, self.FireDef) data = CommFunc.WriteDWORD(data, self.ThunderAtk) data = CommFunc.WriteDWORD(data, self.ThunderDef) data = CommFunc.WriteDWORD(data, self.IceAtk) data = CommFunc.WriteDWORD(data, self.IceDef) data = CommFunc.WriteDWORD(data, self.PoisionAtk) data = CommFunc.WriteDWORD(data, self.PoisionDef) data = CommFunc.WriteDWORD(data, self.QualityLV) data = CommFunc.WriteBYTE(data, self.AIMode) data = CommFunc.WriteDWORD(data, self.BattlePower) data = CommFunc.WriteBYTE(data, self.IncreateSkillCnt) data = CommFunc.WriteDWORD(data, self.SkillAtkRate) data = CommFunc.WriteDWORD(data, self.LuckyHitRate) data = CommFunc.WriteDWORD(data, self.LuckyHitVal) data = CommFunc.WriteDWORD(data, self.GreatHitRate) data = CommFunc.WriteDWORD(data, self.GreatHitVal) data = CommFunc.WriteDWORD(data, self.KillBackHP) data = CommFunc.WriteDWORD(data, self.KillBackMP) data = CommFunc.WriteDWORD(data, self.DamageReduceRate) data = CommFunc.WriteDWORD(data, self.DamageBackRate) data = CommFunc.WriteDWORD(data, self.GoldFoundRate) data = CommFunc.WriteDWORD(data, self.IgnoreDefRate) data = CommFunc.WriteDWORD(data, self.BattleValEx1) data = CommFunc.WriteDWORD(data, self.BattleValEx2) data = CommFunc.WriteDWORD(data, self.BattleValEx3) data = CommFunc.WriteDWORD(data, self.BattleValEx4) data = CommFunc.WriteDWORD(data, self.BattleValEx5) data = CommFunc.WriteBYTE(data, self.PetIndex) return data def OutputString(self): DumpString = ''' ID:%d, PlayerID:%d, NPCID:%d, NameLen:%d, Name:%s, BindType:%d, LV:%d, Exp:%d, Grade:%d, Friendliness:%d, STR:%d, PNE:%d, PHY:%d, CON:%d, LeftPoints:%d, HP:%d, MaxHP:%d, PhysicAtk:%d, PhysicDef:%d, MagicAtk:%d, MagicDef:%d, SkillListCnt:%d, SkillList:%s, UseCreatorDrugCnt:%d, DailyTrainCnt:%d, HPTalent:%d, MPTalent:%d, PhysicAtkTalent:%d, MagicAtkTalent:%d, PhysicDefTalent:%d, MagicDefTalent:%d, WindAtk:%d, WindDef:%d, FireAtk:%d, FireDef:%d, ThunderAtk:%d, ThunderDef:%d, IceAtk:%d, IceDef:%d, PoisionAtk:%d, PoisionDef:%d, QualityLV:%d, AIMode:%d, BattlePower:%d, IncreateSkillCnt:%d, SkillAtkRate:%d, LuckyHitRate:%d, LuckyHitVal:%d, GreatHitRate:%d, GreatHitVal:%d, KillBackHP:%d, KillBackMP:%d, DamageReduceRate:%d, DamageBackRate:%d, GoldFoundRate:%d, IgnoreDefRate:%d, BattleValEx1:%d, BattleValEx2:%d, BattleValEx3:%d, BattleValEx4:%d, BattleValEx5:%d, PetIndex:%d '''\ %( self.ID, self.PlayerID, self.NPCID, self.NameLen, self.Name, self.BindType, self.LV, self.Exp, self.Grade, self.Friendliness, self.STR, self.PNE, self.PHY, self.CON, self.LeftPoints, self.HP, self.MaxHP, self.PhysicAtk, self.PhysicDef, self.MagicAtk, self.MagicDef, self.SkillListCnt, "...", self.UseCreatorDrugCnt, self.DailyTrainCnt, self.HPTalent, self.MPTalent, self.PhysicAtkTalent, self.MagicAtkTalent, self.PhysicDefTalent, self.MagicDefTalent, self.WindAtk, self.WindDef, self.FireAtk, self.FireDef, self.ThunderAtk, self.ThunderDef, self.IceAtk, self.IceDef, self.PoisionAtk, self.PoisionDef, self.QualityLV, self.AIMode, self.BattlePower, self.IncreateSkillCnt, self.SkillAtkRate, self.LuckyHitRate, self.LuckyHitVal, self.GreatHitRate, self.GreatHitVal, self.KillBackHP, self.KillBackMP, self.DamageReduceRate, self.DamageBackRate, self.GoldFoundRate, self.IgnoreDefRate, self.BattleValEx1, self.BattleValEx2, self.BattleValEx3, self.BattleValEx4, self.BattleValEx5, self.PetIndex ) return DumpString class tagPetListRefresh(Structure): Head = tagHead() PetInfo=tagPetInfo() #(tagPetInfo PetInfo) data = None def __init__(self): self.Clear() self.Head.Cmd = 0x16 self.Head.SubCmd = 0x01 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) _pos = self.PetInfo.ReadData(_lpData,_pos) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x16 self.Head.SubCmd = 0x01 self.PetInfo=tagPetInfo() self.PetInfo.Clear() return def GetLength(self): length = 0 length += self.Head.GetLength() length += self.PetInfo.GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteString(data,self.PetInfo.GetLength(),self.PetInfo.GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, PetInfo:%s '''\ %( self.Head.OutputString(), self.PetInfo.OutputString() ) return DumpString m_NAtagPetListRefresh=tagPetListRefresh() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPetListRefresh.Head.Cmd,m_NAtagPetListRefresh.Head.SubCmd))] = m_NAtagPetListRefresh #------------------------------------------------------ #16 09 ·ÅÉú³èÎï#tagPetSetFree class tagPetSetFree(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PetID", c_int), ("Result", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0x16 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 = 0x16 self.SubCmd = 0x09 self.PetID = 0 self.Result = 0 return def GetLength(self): return sizeof(tagPetSetFree) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//16 09 ·ÅÉú³èÎï//tagPetSetFree: Cmd:%s, SubCmd:%s, PetID:%d, Result:%d '''\ %( self.Cmd, self.SubCmd, self.PetID, self.Result ) return DumpString m_NAtagPetSetFree=tagPetSetFree() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPetSetFree.Cmd,m_NAtagPetSetFree.SubCmd))] = m_NAtagPetSetFree #------------------------------------------------------ #16 02 ³èÎï״̬ˢÐÂ#tagPetStateRefresh class tagPetStateRefresh(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PetID", c_int), ("State", c_ubyte), # ״̬.0-ÕÙ»Ø;1-³öÕ½ ] def __init__(self): self.Clear() self.Cmd = 0x16 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 = 0x16 self.SubCmd = 0x02 self.PetID = 0 self.State = 0 return def GetLength(self): return sizeof(tagPetStateRefresh) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//16 02 ³èÎï״̬ˢÐÂ//tagPetStateRefresh: Cmd:%s, SubCmd:%s, PetID:%d, State:%d '''\ %( self.Cmd, self.SubCmd, self.PetID, self.State ) return DumpString m_NAtagPetStateRefresh=tagPetStateRefresh() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPetStateRefresh.Cmd,m_NAtagPetStateRefresh.SubCmd))] = m_NAtagPetStateRefresh #------------------------------------------------------ #16 04 ³èÎïѵÁ·½áÊø#tagPetTrainingEnd class tagPetTrainingEnd(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PetID", c_int), ] def __init__(self): self.Clear() self.Cmd = 0x16 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 = 0x16 self.SubCmd = 0x04 self.PetID = 0 return def GetLength(self): return sizeof(tagPetTrainingEnd) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//16 04 ³èÎïѵÁ·½áÊø//tagPetTrainingEnd: Cmd:%s, SubCmd:%s, PetID:%d '''\ %( self.Cmd, self.SubCmd, self.PetID ) return DumpString m_NAtagPetTrainingEnd=tagPetTrainingEnd() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPetTrainingEnd.Cmd,m_NAtagPetTrainingEnd.SubCmd))] = m_NAtagPetTrainingEnd #------------------------------------------------------ #16 03 ³èÎïѵÁ·¿ªÊ¼#tagPetTrainingStart class tagPetTrainingStart(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PetID", c_int), ("Time", c_int), ] def __init__(self): self.Clear() self.Cmd = 0x16 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 = 0x16 self.SubCmd = 0x03 self.PetID = 0 self.Time = 0 return def GetLength(self): return sizeof(tagPetTrainingStart) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//16 03 ³èÎïѵÁ·¿ªÊ¼//tagPetTrainingStart: Cmd:%s, SubCmd:%s, PetID:%d, Time:%d '''\ %( self.Cmd, self.SubCmd, self.PetID, self.Time ) return DumpString m_NAtagPetTrainingStart=tagPetTrainingStart() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPetTrainingStart.Cmd,m_NAtagPetTrainingStart.SubCmd))] = m_NAtagPetTrainingStart #------------------------------------------------------ #16 08 ˢгèÎïÊôÐÔ#tagRefreshPetProp class tagRefreshPetProp(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("PetID", c_int), ("Type", c_ubyte), ("Value", c_int), ] def __init__(self): self.Clear() self.Cmd = 0x16 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 = 0x16 self.SubCmd = 0x08 self.PetID = 0 self.Type = 0 self.Value = 0 return def GetLength(self): return sizeof(tagRefreshPetProp) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//16 08 ˢгèÎïÊôÐÔ//tagRefreshPetProp: Cmd:%s, SubCmd:%s, PetID:%d, Type:%d, Value:%d '''\ %( self.Cmd, self.SubCmd, self.PetID, self.Type, self.Value ) return DumpString m_NAtagRefreshPetProp=tagRefreshPetProp() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagRefreshPetProp.Cmd,m_NAtagRefreshPetProp.SubCmd))] = m_NAtagRefreshPetProp #------------------------------------------------------ #16 05 ˢгèÎï¼¼ÄÜ#tagRefreshPetSkill class tagRefreshPetSkill(Structure): Head = tagHead() PetID = 0 #(DWORD PetID) SkillCnt = 0 #(BYTE SkillCnt) SkillList = list() #(vector SkillList)//size = SkillCnt data = None def __init__(self): self.Clear() self.Head.Cmd = 0x16 self.Head.SubCmd = 0x05 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.PetID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.SkillCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.SkillCnt): temSkillList = tagPetSkillInfo() _pos = temSkillList.ReadData(_lpData, _pos) self.SkillList.append(temSkillList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x16 self.Head.SubCmd = 0x05 self.PetID = 0 self.SkillCnt = 0 self.SkillList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 for i in range(self.SkillCnt): length += self.SkillList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.PetID) data = CommFunc.WriteBYTE(data, self.SkillCnt) for i in range(self.SkillCnt): data = CommFunc.WriteString(data, self.SkillList[i].GetLength(), self.SkillList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, PetID:%d, SkillCnt:%d, SkillList:%s '''\ %( self.Head.OutputString(), self.PetID, self.SkillCnt, "..." ) return DumpString m_NAtagRefreshPetSkill=tagRefreshPetSkill() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagRefreshPetSkill.Head.Cmd,m_NAtagRefreshPetSkill.Head.SubCmd))] = m_NAtagRefreshPetSkill #------------------------------------------------------ #16 07 ³èÎï¸ÄÃû½á¹û#tagRenamePetResult class tagRenamePetResult(Structure): Head = tagHead() PetID = 0 #(DWORD PetID) NewNameLen = 0 #(BYTE NewNameLen) NewName = "" #(String NewName)//size = NewNameLen data = None def __init__(self): self.Clear() self.Head.Cmd = 0x16 self.Head.SubCmd = 0x07 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.PetID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.NewNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.NewName,_pos = CommFunc.ReadString(_lpData, _pos,self.NewNameLen) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x16 self.Head.SubCmd = 0x07 self.PetID = 0 self.NewNameLen = 0 self.NewName = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 1 length += len(self.NewName) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.PetID) data = CommFunc.WriteBYTE(data, self.NewNameLen) data = CommFunc.WriteString(data, self.NewNameLen, self.NewName) return data def OutputString(self): DumpString = ''' Head:%s, PetID:%d, NewNameLen:%d, NewName:%s '''\ %( self.Head.OutputString(), self.PetID, self.NewNameLen, self.NewName ) return DumpString m_NAtagRenamePetResult=tagRenamePetResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagRenamePetResult.Head.Cmd,m_NAtagRenamePetResult.Head.SubCmd))] = m_NAtagRenamePetResult #------------------------------------------------------ #17 03 ³öÊÛÔª±¦³É¹¦#tagSaleGoldOk class tagSaleGoldOk(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0x17 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 = 0x17 self.SubCmd = 0x03 return def GetLength(self): return sizeof(tagSaleGoldOk) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//17 03 ³öÊÛÔª±¦³É¹¦//tagSaleGoldOk: Cmd:%s, SubCmd:%s '''\ %( self.Cmd, self.SubCmd ) return DumpString m_NAtagSaleGoldOk=tagSaleGoldOk() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSaleGoldOk.Cmd,m_NAtagSaleGoldOk.SubCmd))] = m_NAtagSaleGoldOk #------------------------------------------------------ #17 01 ·¢ËÍÍæ¼Ò¹ºÂòÔª±¦ÐÅÏ¢#tagSendBuyGoldInfo ¶ÔÐÔÄÜÓ°Ïì½Ï´ó£¬ÐèÒªÏÞÖÆtick class tagBuyGoldInfo(Structure): _pack_ = 1 _fields_ = [ ("PlayerID", c_int), #¹Òµ¥Íæ¼ÒµÄid ("FormID", c_int), # ¹Òµ¥£É£Ä ("UnitPrice", c_int), #¸Ãµ¥¹ºÂòÔª±¦µÄÒøÁ½µ¥¼Û£¨Ã¿×é) ("LefGold", c_int), #¸Ãµ¥µÄÊ£Ó๺ÂòÔª±¦×éÊý ("LeftTime", 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.PlayerID = 0 self.FormID = 0 self.UnitPrice = 0 self.LefGold = 0 self.LeftTime = 0 return def GetLength(self): return sizeof(tagBuyGoldInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//17 01 ·¢ËÍÍæ¼Ò¹ºÂòÔª±¦ÐÅÏ¢//tagSendBuyGoldInfo ¶ÔÐÔÄÜÓ°Ïì½Ï´ó£¬ÐèÒªÏÞÖÆtick: PlayerID:%d, FormID:%d, UnitPrice:%d, LefGold:%d, LeftTime:%d '''\ %( self.PlayerID, self.FormID, self.UnitPrice, self.LefGold, self.LeftTime ) return DumpString class tagSendBuyGoldInfo(Structure): Head = tagHead() TotalPageCount = 0 #(WORD TotalPageCount)//×ÜÒ³Êý Count = 0 #(WORD Count)//Ôª±¦¹ºÂòÐÅÏ¢¸öÊý PageIndex = 0 #(WORD PageIndex)// Ò³Êý BuyGoldInfo = list() #(vector BuyGoldInfo)//Ôª±¦¹ºÂòÐÅÏ¢Êý¾Ý data = None def __init__(self): self.Clear() self.Head.Cmd = 0x17 self.Head.SubCmd = 0x01 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.TotalPageCount,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos) self.PageIndex,_pos = CommFunc.ReadWORD(_lpData, _pos) for i in range(self.Count): temBuyGoldInfo = tagBuyGoldInfo() _pos = temBuyGoldInfo.ReadData(_lpData, _pos) self.BuyGoldInfo.append(temBuyGoldInfo) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x17 self.Head.SubCmd = 0x01 self.TotalPageCount = 0 self.Count = 0 self.PageIndex = 0 self.BuyGoldInfo = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 length += 2 length += 2 for i in range(self.Count): length += self.BuyGoldInfo[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteWORD(data, self.TotalPageCount) data = CommFunc.WriteWORD(data, self.Count) data = CommFunc.WriteWORD(data, self.PageIndex) for i in range(self.Count): data = CommFunc.WriteString(data, self.BuyGoldInfo[i].GetLength(), self.BuyGoldInfo[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, TotalPageCount:%d, Count:%d, PageIndex:%d, BuyGoldInfo:%s '''\ %( self.Head.OutputString(), self.TotalPageCount, self.Count, self.PageIndex, "..." ) return DumpString m_NAtagSendBuyGoldInfo=tagSendBuyGoldInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSendBuyGoldInfo.Head.Cmd,m_NAtagSendBuyGoldInfo.Head.SubCmd))] = m_NAtagSendBuyGoldInfo #------------------------------------------------------ #17 02 ·¢ËÍÍæ¼Ò×Ô¼ºµÄ¹ºÂòÔª±¦ÐÅÏ¢#tagSendSelfBuyGoldInfo class tagSendSelfBuyGoldInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("FormID", c_int), # ¹Òµ¥ID ("UnitPrice", c_int), #¸Ãµ¥¹ºÂòÔª±¦µÄÒøÁ½µ¥¼Û£¨Ã¿×é) ("LefGold", c_int), #¸Ãµ¥µÄÊ£Ó๺ÂòÔª±¦×éÊý ("LeftTime", c_ushort), #¸Ãµ¥µÄÊ£ÓàÔÚ¼Üʱ¼ä ] def __init__(self): self.Clear() self.Cmd = 0x17 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 = 0x17 self.SubCmd = 0x02 self.FormID = 0 self.UnitPrice = 0 self.LefGold = 0 self.LeftTime = 0 return def GetLength(self): return sizeof(tagSendSelfBuyGoldInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//17 02 ·¢ËÍÍæ¼Ò×Ô¼ºµÄ¹ºÂòÔª±¦ÐÅÏ¢//tagSendSelfBuyGoldInfo: Cmd:%s, SubCmd:%s, FormID:%d, UnitPrice:%d, LefGold:%d, LeftTime:%d '''\ %( self.Cmd, self.SubCmd, self.FormID, self.UnitPrice, self.LefGold, self.LeftTime ) return DumpString m_NAtagSendSelfBuyGoldInfo=tagSendSelfBuyGoldInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSendSelfBuyGoldInfo.Cmd,m_NAtagSendSelfBuyGoldInfo.SubCmd))] = m_NAtagSendSelfBuyGoldInfo #------------------------------------------------------ #18 01 ͨÓ÷â°ü#tagGameServerGeneralPack É÷Ó㬲»Í¬ÓÃ;£¬¶ÔÐÔÄܵÄÓ°Ï첻ͬ class tagGameServerGeneralPack(Structure): Head = tagHead() DataLen = 0 #(WORD DataLen)// ͨÓðü³¤¶È Data = "" #(String Data)//ͨÓðüÊý¾Ý data = None def __init__(self): self.Clear() self.Head.Cmd = 0x18 self.Head.SubCmd = 0x01 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.DataLen,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Data,_pos = CommFunc.ReadString(_lpData, _pos,self.DataLen) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x18 self.Head.SubCmd = 0x01 self.DataLen = 0 self.Data = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 length += len(self.Data) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteWORD(data, self.DataLen) data = CommFunc.WriteString(data, self.DataLen, self.Data) return data def OutputString(self): DumpString = ''' Head:%s, DataLen:%d, Data:%s '''\ %( self.Head.OutputString(), self.DataLen, self.Data ) return DumpString m_NAtagGameServerGeneralPack=tagGameServerGeneralPack() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGameServerGeneralPack.Head.Cmd,m_NAtagGameServerGeneralPack.Head.SubCmd))] = m_NAtagGameServerGeneralPack #------------------------------------------------------ #19 02 Ìí¼Ó×Ô¶¨Òå±êÇ©#tagAddLabelToPlayer class tagAddLabelToPlayer(Structure): Head = tagHead() PlayerID = 0 #(DWORD PlayerID)// Èç¹ûÍæ¼Òid²»Îª0¾ÍÊǺÃÓÑÌí¼ÓÓ¡Ïó szPlayerName = "" #(char szPlayerName[33])// ºÃÓÑÃû×Ö LabelID = 0 #(DWORD LabelID)//±êÇ©ID LabelContext = "" #(char LabelContext[21])//±êǩʱ¼ä Time = "" #(char Time[20])// ʱ¼ä data = None def __init__(self): self.Clear() self.Head.Cmd = 0x19 self.Head.SubCmd = 0x02 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.szPlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33) self.LabelID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.LabelContext,_pos = CommFunc.ReadString(_lpData, _pos,21) self.Time,_pos = CommFunc.ReadString(_lpData, _pos,20) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x19 self.Head.SubCmd = 0x02 self.PlayerID = 0 self.szPlayerName = "" self.LabelID = 0 self.LabelContext = "" self.Time = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 33 length += 4 length += 21 length += 20 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.szPlayerName) data = CommFunc.WriteDWORD(data, self.LabelID) data = CommFunc.WriteString(data, 21, self.LabelContext) data = CommFunc.WriteString(data, 20, self.Time) return data def OutputString(self): DumpString = ''' Head:%s, PlayerID:%d, szPlayerName:%s, LabelID:%d, LabelContext:%s, Time:%s '''\ %( self.Head.OutputString(), self.PlayerID, self.szPlayerName, self.LabelID, self.LabelContext, self.Time ) return DumpString m_NAtagAddLabelToPlayer=tagAddLabelToPlayer() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagAddLabelToPlayer.Head.Cmd,m_NAtagAddLabelToPlayer.Head.SubCmd))] = m_NAtagAddLabelToPlayer #------------------------------------------------------ #19 01 Ìí¼Óϵͳ±êÇ©#tagAddSysLabelToPlayer class tagAddSysLabelToPlayer(Structure): Head = tagHead() PlayerID = 0 #(DWORD PlayerID)// Èç¹ûÍæ¼Òid²»ÊÇΪ0¾ÍÊǺÃÓÑÌí¼ÓÓ¡Ïó PlayerName = "" #(char PlayerName[33])// Íæ¼ÒÃû×Ö LabelID = 0 #(DWORD LabelID)//±êÇ©ID Time = "" #(char Time[20])// ʱ¼ä data = None def __init__(self): self.Clear() self.Head.Cmd = 0x19 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.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33) self.LabelID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Time,_pos = CommFunc.ReadString(_lpData, _pos,20) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x19 self.Head.SubCmd = 0x01 self.PlayerID = 0 self.PlayerName = "" self.LabelID = 0 self.Time = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 33 length += 4 length += 20 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.WriteDWORD(data, self.LabelID) data = CommFunc.WriteString(data, 20, self.Time) return data def OutputString(self): DumpString = ''' Head:%s, PlayerID:%d, PlayerName:%s, LabelID:%d, Time:%s '''\ %( self.Head.OutputString(), self.PlayerID, self.PlayerName, self.LabelID, self.Time ) return DumpString m_NAtagAddSysLabelToPlayer=tagAddSysLabelToPlayer() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagAddSysLabelToPlayer.Head.Cmd,m_NAtagAddSysLabelToPlayer.Head.SubCmd))] = m_NAtagAddSysLabelToPlayer #------------------------------------------------------ #19 03 ɾ³ý±êÇ©#tagDeletePlayerLabel class tagDeletePlayerLabel(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("LabelID", c_int), # ɾ³ý±êÇ© ] def __init__(self): self.Clear() self.Cmd = 0x19 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 = 0x19 self.SubCmd = 0x03 self.LabelID = 0 return def GetLength(self): return sizeof(tagDeletePlayerLabel) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//19 03 ɾ³ý±êÇ©//tagDeletePlayerLabel: Cmd:%s, SubCmd:%s, LabelID:%d '''\ %( self.Cmd, self.SubCmd, self.LabelID ) return DumpString m_NAtagDeletePlayerLabel=tagDeletePlayerLabel() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagDeletePlayerLabel.Cmd,m_NAtagDeletePlayerLabel.SubCmd))] = m_NAtagDeletePlayerLabel #------------------------------------------------------ #19 06 Íæ¼Ò¸öÐÔÇ©Ãû#tagPlayerSignature class tagPlayerSignature(Structure): Head = tagHead() Signature = "" #(char Signature[101])// ¸öÈËÇ©Ãû data = None def __init__(self): self.Clear() self.Head.Cmd = 0x19 self.Head.SubCmd = 0x06 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Signature,_pos = CommFunc.ReadString(_lpData, _pos,101) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x19 self.Head.SubCmd = 0x06 self.Signature = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 101 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteString(data, 101, self.Signature) return data def OutputString(self): DumpString = ''' Head:%s, Signature:%s '''\ %( self.Head.OutputString(), self.Signature ) return DumpString m_NAtagPlayerSignature=tagPlayerSignature() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerSignature.Head.Cmd,m_NAtagPlayerSignature.Head.SubCmd))] = m_NAtagPlayerSignature #------------------------------------------------------ #19 05 ͬµÀÖÐÈËÐÅÏ¢#tagSameLabelPlayer class tagSameLabelPlayerInfo(Structure): PlayerID = 0 #(DWORD PlayerID)// Íæ¼ÒID PlayerName = "" #(char PlayerName[33]) Sex = 0 #(BYTE Sex)//ÐÔ±ð LV = 0 #(WORD LV)//µÈ¼¶ Job = 0 #(BYTE Job)//Ö°Òµ 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.Sex,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): self.PlayerID = 0 self.PlayerName = "" self.Sex = 0 self.LV = 0 self.Job = 0 return def GetLength(self): length = 0 length += 4 length += 33 length += 1 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.Sex) data = CommFunc.WriteWORD(data, self.LV) data = CommFunc.WriteBYTE(data, self.Job) return data def OutputString(self): DumpString = ''' PlayerID:%d, PlayerName:%s, Sex:%d, LV:%d, Job:%d '''\ %( self.PlayerID, self.PlayerName, self.Sex, self.LV, self.Job ) return DumpString class tagSameLabelPlayer(Structure): Head = tagHead() PlayerCount = 0 #(WORD PlayerCount) PlayerList = list() #(vector PlayerList) data = None def __init__(self): self.Clear() self.Head.Cmd = 0x19 self.Head.SubCmd = 0x05 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.PlayerCount,_pos = CommFunc.ReadWORD(_lpData, _pos) for i in range(self.PlayerCount): temPlayerList = tagSameLabelPlayerInfo() _pos = temPlayerList.ReadData(_lpData, _pos) self.PlayerList.append(temPlayerList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x19 self.Head.SubCmd = 0x05 self.PlayerCount = 0 self.PlayerList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 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.WriteWORD(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_NAtagSameLabelPlayer=tagSameLabelPlayer() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSameLabelPlayer.Head.Cmd,m_NAtagSameLabelPlayer.Head.SubCmd))] = m_NAtagSameLabelPlayer #------------------------------------------------------ #1A 07 ËùÓз¿¼äÐÅϢˢÐÂ#tagAllRoomsInfo class tagRoomItem(Structure): RoomId = 0 #(DWORD RoomId)// ·¿¼äID RoomNameLen = 0 #(BYTE RoomNameLen) RoomName = "" #(String RoomName)// ·¿¼äÃû CreaterLv = 0 #(BYTE CreaterLv)// ·¿Ö÷µÈ¼¶ RoomType = 0 #(BYTE RoomType)// ·¿¼äÀàÐÍ VsValueMode = 0 #(BYTE VsValueMode)//¾ö¶·ÉèÖÃģʽ VsMode = 0 #(BYTE VsMode)//Õýа¾öģʽ MemberCount = 0 #(BYTE MemberCount)//ÈËÊý RoomState = 0 #(BYTE RoomState)//·¿¼ä״̬ IsSetPwd = 0 #(BYTE IsSetPwd)//ÃÜÂë data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.RoomId,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.RoomNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.RoomName,_pos = CommFunc.ReadString(_lpData, _pos,self.RoomNameLen) self.CreaterLv,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.RoomType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.VsValueMode,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.VsMode,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.MemberCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.RoomState,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.IsSetPwd,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): self.RoomId = 0 self.RoomNameLen = 0 self.RoomName = "" self.CreaterLv = 0 self.RoomType = 0 self.VsValueMode = 0 self.VsMode = 0 self.MemberCount = 0 self.RoomState = 0 self.IsSetPwd = 0 return def GetLength(self): length = 0 length += 4 length += 1 length += len(self.RoomName) length += 1 length += 1 length += 1 length += 1 length += 1 length += 1 length += 1 return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.RoomId) data = CommFunc.WriteBYTE(data, self.RoomNameLen) data = CommFunc.WriteString(data, self.RoomNameLen, self.RoomName) data = CommFunc.WriteBYTE(data, self.CreaterLv) data = CommFunc.WriteBYTE(data, self.RoomType) data = CommFunc.WriteBYTE(data, self.VsValueMode) data = CommFunc.WriteBYTE(data, self.VsMode) data = CommFunc.WriteBYTE(data, self.MemberCount) data = CommFunc.WriteBYTE(data, self.RoomState) data = CommFunc.WriteBYTE(data, self.IsSetPwd) return data def OutputString(self): DumpString = ''' RoomId:%d, RoomNameLen:%d, RoomName:%s, CreaterLv:%d, RoomType:%d, VsValueMode:%d, VsMode:%d, MemberCount:%d, RoomState:%d, IsSetPwd:%d '''\ %( self.RoomId, self.RoomNameLen, self.RoomName, self.CreaterLv, self.RoomType, self.VsValueMode, self.VsMode, self.MemberCount, self.RoomState, self.IsSetPwd ) return DumpString class tagAllRoomsInfo(Structure): Head = tagHead() RoomCount = 0 #(WORD RoomCount)//·¿¼ä¸öÊý RoomList = list() #(vector RoomList)// ·¿¼äÁбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0x1A self.Head.SubCmd = 0x07 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.RoomCount,_pos = CommFunc.ReadWORD(_lpData, _pos) for i in range(self.RoomCount): temRoomList = tagRoomItem() _pos = temRoomList.ReadData(_lpData, _pos) self.RoomList.append(temRoomList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x1A self.Head.SubCmd = 0x07 self.RoomCount = 0 self.RoomList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 for i in range(self.RoomCount): length += self.RoomList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteWORD(data, self.RoomCount) for i in range(self.RoomCount): data = CommFunc.WriteString(data, self.RoomList[i].GetLength(), self.RoomList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, RoomCount:%d, RoomList:%s '''\ %( self.Head.OutputString(), self.RoomCount, "..." ) return DumpString m_NAtagAllRoomsInfo=tagAllRoomsInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagAllRoomsInfo.Head.Cmd,m_NAtagAllRoomsInfo.Head.SubCmd))] = m_NAtagAllRoomsInfo #------------------------------------------------------ #1A 04 ¿ªÊ¼Õ½¶·OK#tagBeginVsOk class tagBeginVsOk(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("LeftTime", c_int), #µ¹¼ÆÊ±Ê±¼ä ] def __init__(self): self.Clear() self.Cmd = 0x1A 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 = 0x1A self.SubCmd = 0x04 self.LeftTime = 0 return def GetLength(self): return sizeof(tagBeginVsOk) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//1A 04 ¿ªÊ¼Õ½¶·OK//tagBeginVsOk: Cmd:%s, SubCmd:%s, LeftTime:%d '''\ %( self.Cmd, self.SubCmd, self.LeftTime ) return DumpString m_NAtagBeginVsOk=tagBeginVsOk() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagBeginVsOk.Cmd,m_NAtagBeginVsOk.SubCmd))] = m_NAtagBeginVsOk #------------------------------------------------------ # 1A 03 ×¼±¸Õ½¶·OK#tagBeReadyVsOk class tagBeReadyVsOk(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0x1A 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 = 0x1A self.SubCmd = 0x03 return def GetLength(self): return sizeof(tagBeReadyVsOk) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// 1A 03 ×¼±¸Õ½¶·OK//tagBeReadyVsOk: Cmd:%s, SubCmd:%s '''\ %( self.Cmd, self.SubCmd ) return DumpString m_NAtagBeReadyVsOk=tagBeReadyVsOk() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagBeReadyVsOk.Cmd,m_NAtagBeReadyVsOk.SubCmd))] = m_NAtagBeReadyVsOk #------------------------------------------------------ #1A 06 ¾º¼¼·¿Ëµ»°#tagChatVsRoom class tagChatVsRoom(Structure): Head = tagHead() TalkerId = 0 #(DWORD TalkerId)// ˵»°ÈËID TalkerName = "" #(char TalkerName[33])//˵»°ÈËÃû³Æ Len = 0 #(BYTE Len)//˵»°³¤¶È Content = "" #(String Content)//˵»°³¤¶È ExtraValue = 0 #(DWORD ExtraValue)//¸½¼ÓÖµ Extras = "" #(char Extras[256])//¸½¼ÓÖµÁбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0x1A self.Head.SubCmd = 0x06 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.TalkerId,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.TalkerName,_pos = CommFunc.ReadString(_lpData, _pos,33) self.Len,_pos = CommFunc.ReadBYTE(_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 = 0x1A self.Head.SubCmd = 0x06 self.TalkerId = 0 self.TalkerName = "" self.Len = 0 self.Content = "" self.ExtraValue = 0 self.Extras = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 33 length += 1 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.WriteDWORD(data, self.TalkerId) data = CommFunc.WriteString(data, 33, self.TalkerName) data = CommFunc.WriteBYTE(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, TalkerId:%d, TalkerName:%s, Len:%d, Content:%s, ExtraValue:%d, Extras:%s '''\ %( self.Head.OutputString(), self.TalkerId, self.TalkerName, self.Len, self.Content, self.ExtraValue, self.Extras ) return DumpString m_NAtagChatVsRoom=tagChatVsRoom() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagChatVsRoom.Head.Cmd,m_NAtagChatVsRoom.Head.SubCmd))] = m_NAtagChatVsRoom #------------------------------------------------------ #1A 01 ´´½¨·¿¼ä³É¹¦#tagCreateVsRoomOk class tagCreateVsRoomOk(Structure): Head = tagHead() RoomId = 0 #(DWORD RoomId)// ·¿¼äID RoomName = "" #(char RoomName[15])// ·¿¼äÃû RoomType = 0 #(BYTE RoomType)// ·¿¼äÀàÐÍ VsValueMode = 0 #(BYTE VsValueMode)//¾ö¶·ÉèÖÃģʽ VsMode = 0 #(BYTE VsMode)//Õýа¾öģʽ LeftTime = 0 #(DWORD LeftTime)// Ê£Óàʱ¼ä Pwd = "" #(char Pwd[7])//ÃÜÂë data = None def __init__(self): self.Clear() self.Head.Cmd = 0x1A 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.ReadDWORD(_lpData, _pos) self.RoomName,_pos = CommFunc.ReadString(_lpData, _pos,15) self.RoomType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.VsValueMode,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.VsMode,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LeftTime,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Pwd,_pos = CommFunc.ReadString(_lpData, _pos,7) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x1A self.Head.SubCmd = 0x01 self.RoomId = 0 self.RoomName = "" self.RoomType = 0 self.VsValueMode = 0 self.VsMode = 0 self.LeftTime = 0 self.Pwd = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 15 length += 1 length += 1 length += 1 length += 4 length += 7 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.RoomId) data = CommFunc.WriteString(data, 15, self.RoomName) data = CommFunc.WriteBYTE(data, self.RoomType) data = CommFunc.WriteBYTE(data, self.VsValueMode) data = CommFunc.WriteBYTE(data, self.VsMode) data = CommFunc.WriteDWORD(data, self.LeftTime) data = CommFunc.WriteString(data, 7, self.Pwd) return data def OutputString(self): DumpString = ''' Head:%s, RoomId:%d, RoomName:%s, RoomType:%d, VsValueMode:%d, VsMode:%d, LeftTime:%d, Pwd:%s '''\ %( self.Head.OutputString(), self.RoomId, self.RoomName, self.RoomType, self.VsValueMode, self.VsMode, self.LeftTime, self.Pwd ) return DumpString m_NAtagCreateVsRoomOk=tagCreateVsRoomOk() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCreateVsRoomOk.Head.Cmd,m_NAtagCreateVsRoomOk.Head.SubCmd))] = m_NAtagCreateVsRoomOk #------------------------------------------------------ #1A 14 ÌìÌݾº¼¼³¡Íæ¼Ò¶ÔÕ½¼Ç¼#tagHighLadderPlayerVsRec class tagHighLadderRec(Structure): VsPlayerID = 0 #(DWORD VsPlayerID)//¶ÔÕ½Íæ¼Ò Order = 0 #(WORD Order)//Íæ¼Òµ±Ê±Ëù´¦ÅÅλ VsOrder = 0 #(WORD VsOrder)//Íæ¼Ò VsPlayerName = "" #(char VsPlayerName[33]) Position = 0 #(BYTE Position)//×ÔÉí¹¥·ÀλÖà 0 ¹¥»÷ 1·ÀÊØ Result = 0 #(BYTE Result)//½á¹û data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.VsPlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Order,_pos = CommFunc.ReadWORD(_lpData, _pos) self.VsOrder,_pos = CommFunc.ReadWORD(_lpData, _pos) self.VsPlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33) self.Position,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Result,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): self.VsPlayerID = 0 self.Order = 0 self.VsOrder = 0 self.VsPlayerName = "" self.Position = 0 self.Result = 0 return def GetLength(self): length = 0 length += 4 length += 2 length += 2 length += 33 length += 1 length += 1 return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.VsPlayerID) data = CommFunc.WriteWORD(data, self.Order) data = CommFunc.WriteWORD(data, self.VsOrder) data = CommFunc.WriteString(data, 33, self.VsPlayerName) data = CommFunc.WriteBYTE(data, self.Position) data = CommFunc.WriteBYTE(data, self.Result) return data def OutputString(self): DumpString = ''' VsPlayerID:%d, Order:%d, VsOrder:%d, VsPlayerName:%s, Position:%d, Result:%d '''\ %( self.VsPlayerID, self.Order, self.VsOrder, self.VsPlayerName, self.Position, self.Result ) return DumpString class tagHighLadderPlayerVsRec(Structure): Head = tagHead() RecCount = 0 #(BYTE RecCount) RecList = list() #(vector RecList)//¼Ç¼Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0x1A self.Head.SubCmd = 0x14 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.RecCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.RecCount): temRecList = tagHighLadderRec() _pos = temRecList.ReadData(_lpData, _pos) self.RecList.append(temRecList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x1A self.Head.SubCmd = 0x14 self.RecCount = 0 self.RecList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.RecCount): length += self.RecList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteBYTE(data, self.RecCount) for i in range(self.RecCount): data = CommFunc.WriteString(data, self.RecList[i].GetLength(), self.RecList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, RecCount:%d, RecList:%s '''\ %( self.Head.OutputString(), self.RecCount, "..." ) return DumpString m_NAtagHighLadderPlayerVsRec=tagHighLadderPlayerVsRec() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagHighLadderPlayerVsRec.Head.Cmd,m_NAtagHighLadderPlayerVsRec.Head.SubCmd))] = m_NAtagHighLadderPlayerVsRec #------------------------------------------------------ #1A 11 ÌìÌݾº¼¼³¡¶¥¼¶Íæ¼ÒÁбí#tagHightLadderTopPlayerList class tagHightLadderItemInfo(Structure): ItemTypeID = 0 #(DWORD ItemTypeID)//ÎïÆ·ID ItemPlaceType = 0 #(BYTE ItemPlaceType)//ÎïÆ·Î»Öõı³°üÀàÐÍ ItemPlaceIndex = 0 #(BYTE ItemPlaceIndex)//ÎïÆ·ËùÔÚµÄË÷Òý Count = 0 #(WORD Count)//µ¥×éÊýÁ¿ ItemStarLV = 0 #(BYTE ItemStarLV)//×°±¸ÐǼ¶ IdentifyPar = 0 #(BYTE IdentifyPar)//¼ø¶¨²ÎÊý CurDurg = 0 #(DWORD CurDurg)//µ±Ç°Ä;à MaxDurg = 0 #(DWORD MaxDurg)//×î´óÄ;à CanPlaceStoneCount = 0 #(BYTE CanPlaceStoneCount)//¿ÉÏâǶ±¦Ê¯Êý0±íʾ²»¿ÉÒÔÏâǶ±¦Ê¯ ItemProperty = 0 #(BYTE ItemProperty)//×°±¸ÎåÐÐ SoulProperty = 0 #(WORD SoulProperty)//Áé»êÊôÐÔÊôÐÔ Maker = 0 #(DWORD Maker)//ÖÆ×÷ÕßID MakerName = "" #(char MakerName[33])//ÖÆÔìÕßÃû×Ö Stone1 = 0 #(DWORD Stone1)//ÏâǶ±¦Ê¯1 Stone2 = 0 #(DWORD Stone2)//ÏâǶ±¦Ê¯ Stone3 = 0 #(DWORD Stone3)//ÏâǶ±¦Ê¯ Stone4 = 0 #(DWORD Stone4)//ÏâǶ±¦Ê¯ Stone5 = 0 #(DWORD Stone5)//ÏâǶ±¦Ê¯ Stone6 = 0 #(DWORD Stone6)//ÏâǶ±¦Ê¯ Stone7 = 0 #(DWORD Stone7)//ÏâǶ±¦Ê¯ Stone8 = 0 #(DWORD Stone8)//ÏâǶ±¦Ê¯ Stone9 = 0 #(DWORD Stone9)//ÏâǶ±¦Ê¯ IsRenZhu = 0 #(BYTE IsRenZhu)//ÊÇ·ñÈÏÖ÷ EquipDefenseValue = 0 #(DWORD EquipDefenseValue)//ÓÃÓڼǼװ±¸µÄ·ÀÓùÖµ EquipMinAtkValue = 0 #(DWORD EquipMinAtkValue)//ÓÃÓڼǼװ±¸µÄ×îСÉ˺¦Öµ EquipMaxAtkValue = 0 #(DWORD EquipMaxAtkValue)//ÓÃÓڼǼװ±¸µÄ×î´óÉ˺¦Öµ UserDataLen = 0 #(DWORD UserDataLen) UserData = "" #(String UserData)//×Ô¶¨ÒåÊý¾Ý FitLV = 0 #(BYTE FitLV)//ÎïÆ·ÆõºÏµÈ¼¶ Proficiency = 0 #(DWORD Proficiency)//ÊìÁ·¶È IsSuite = 0 #(BYTE IsSuite)//ÊÇ·ñÒѾ­Ì××°»¯ BaseHP = 0 #(DWORD BaseHP)// HP»ù´¡Öµ BaseMagicDef = 0 #(DWORD BaseMagicDef)//ÄÚ·À»ù´¡Öµ MaxAddSkillCnt = 0 #(BYTE MaxAddSkillCnt)// ×î´ó¸½Ä§´ÎÊý PetID = 0 #(DWORD PetID)//×°±¸¸Ã×°±¸µÄ³èÎïID£¬Îª0Ôòδװ±¸ EquipMagicDefValue = 0 #(DWORD EquipMagicDefValue)//×°±¸ÄÚ·ÀÖµ EquipMinMagicAtkValue = 0 #(DWORD EquipMinMagicAtkValue)//×°±¸×îСÄÚ¹¥ EquipMaxMagicAtkValue = 0 #(DWORD EquipMaxMagicAtkValue)//×°±¸×î´óÄÚ¹¥ data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.ItemTypeID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ItemPlaceType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ItemPlaceIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos) self.ItemStarLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.IdentifyPar,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.CurDurg,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MaxDurg,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.CanPlaceStoneCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ItemProperty,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.SoulProperty,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Maker,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MakerName,_pos = CommFunc.ReadString(_lpData, _pos,33) self.Stone1,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Stone2,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Stone3,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Stone4,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Stone5,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Stone6,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Stone7,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Stone8,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Stone9,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.IsRenZhu,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.EquipDefenseValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.EquipMinAtkValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.EquipMaxAtkValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.UserDataLen,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen) self.FitLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Proficiency,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.IsSuite,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.BaseHP,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.BaseMagicDef,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MaxAddSkillCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.PetID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.EquipMagicDefValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.EquipMinMagicAtkValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.EquipMaxMagicAtkValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): self.ItemTypeID = 0 self.ItemPlaceType = 0 self.ItemPlaceIndex = 0 self.Count = 0 self.ItemStarLV = 0 self.IdentifyPar = 0 self.CurDurg = 0 self.MaxDurg = 0 self.CanPlaceStoneCount = 0 self.ItemProperty = 0 self.SoulProperty = 0 self.Maker = 0 self.MakerName = "" self.Stone1 = 0 self.Stone2 = 0 self.Stone3 = 0 self.Stone4 = 0 self.Stone5 = 0 self.Stone6 = 0 self.Stone7 = 0 self.Stone8 = 0 self.Stone9 = 0 self.IsRenZhu = 0 self.EquipDefenseValue = 0 self.EquipMinAtkValue = 0 self.EquipMaxAtkValue = 0 self.UserDataLen = 0 self.UserData = "" self.FitLV = 0 self.Proficiency = 0 self.IsSuite = 0 self.BaseHP = 0 self.BaseMagicDef = 0 self.MaxAddSkillCnt = 0 self.PetID = 0 self.EquipMagicDefValue = 0 self.EquipMinMagicAtkValue = 0 self.EquipMaxMagicAtkValue = 0 return def GetLength(self): length = 0 length += 4 length += 1 length += 1 length += 2 length += 1 length += 1 length += 4 length += 4 length += 1 length += 1 length += 2 length += 4 length += 33 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 4 length += 1 length += 4 length += 4 length += 4 length += 4 length += len(self.UserData) length += 1 length += 4 length += 1 length += 4 length += 4 length += 1 length += 4 length += 4 length += 4 length += 4 return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.ItemTypeID) data = CommFunc.WriteBYTE(data, self.ItemPlaceType) data = CommFunc.WriteBYTE(data, self.ItemPlaceIndex) data = CommFunc.WriteWORD(data, self.Count) data = CommFunc.WriteBYTE(data, self.ItemStarLV) data = CommFunc.WriteBYTE(data, self.IdentifyPar) data = CommFunc.WriteDWORD(data, self.CurDurg) data = CommFunc.WriteDWORD(data, self.MaxDurg) data = CommFunc.WriteBYTE(data, self.CanPlaceStoneCount) data = CommFunc.WriteBYTE(data, self.ItemProperty) data = CommFunc.WriteWORD(data, self.SoulProperty) data = CommFunc.WriteDWORD(data, self.Maker) data = CommFunc.WriteString(data, 33, self.MakerName) data = CommFunc.WriteDWORD(data, self.Stone1) data = CommFunc.WriteDWORD(data, self.Stone2) data = CommFunc.WriteDWORD(data, self.Stone3) data = CommFunc.WriteDWORD(data, self.Stone4) data = CommFunc.WriteDWORD(data, self.Stone5) data = CommFunc.WriteDWORD(data, self.Stone6) data = CommFunc.WriteDWORD(data, self.Stone7) data = CommFunc.WriteDWORD(data, self.Stone8) data = CommFunc.WriteDWORD(data, self.Stone9) data = CommFunc.WriteBYTE(data, self.IsRenZhu) data = CommFunc.WriteDWORD(data, self.EquipDefenseValue) data = CommFunc.WriteDWORD(data, self.EquipMinAtkValue) data = CommFunc.WriteDWORD(data, self.EquipMaxAtkValue) data = CommFunc.WriteDWORD(data, self.UserDataLen) data = CommFunc.WriteString(data, self.UserDataLen, self.UserData) data = CommFunc.WriteBYTE(data, self.FitLV) data = CommFunc.WriteDWORD(data, self.Proficiency) data = CommFunc.WriteBYTE(data, self.IsSuite) data = CommFunc.WriteDWORD(data, self.BaseHP) data = CommFunc.WriteDWORD(data, self.BaseMagicDef) data = CommFunc.WriteBYTE(data, self.MaxAddSkillCnt) data = CommFunc.WriteDWORD(data, self.PetID) data = CommFunc.WriteDWORD(data, self.EquipMagicDefValue) data = CommFunc.WriteDWORD(data, self.EquipMinMagicAtkValue) data = CommFunc.WriteDWORD(data, self.EquipMaxMagicAtkValue) return data def OutputString(self): DumpString = ''' ItemTypeID:%d, ItemPlaceType:%d, ItemPlaceIndex:%d, Count:%d, ItemStarLV:%d, IdentifyPar:%d, CurDurg:%d, MaxDurg:%d, CanPlaceStoneCount:%d, ItemProperty:%d, SoulProperty:%d, Maker:%d, MakerName:%s, Stone1:%d, Stone2:%d, Stone3:%d, Stone4:%d, Stone5:%d, Stone6:%d, Stone7:%d, Stone8:%d, Stone9:%d, IsRenZhu:%d, EquipDefenseValue:%d, EquipMinAtkValue:%d, EquipMaxAtkValue:%d, UserDataLen:%d, UserData:%s, FitLV:%d, Proficiency:%d, IsSuite:%d, BaseHP:%d, BaseMagicDef:%d, MaxAddSkillCnt:%d, PetID:%d, EquipMagicDefValue:%d, EquipMinMagicAtkValue:%d, EquipMaxMagicAtkValue:%d '''\ %( self.ItemTypeID, self.ItemPlaceType, self.ItemPlaceIndex, self.Count, self.ItemStarLV, self.IdentifyPar, self.CurDurg, self.MaxDurg, self.CanPlaceStoneCount, self.ItemProperty, self.SoulProperty, self.Maker, self.MakerName, self.Stone1, self.Stone2, self.Stone3, self.Stone4, self.Stone5, self.Stone6, self.Stone7, self.Stone8, self.Stone9, self.IsRenZhu, self.EquipDefenseValue, self.EquipMinAtkValue, self.EquipMaxAtkValue, self.UserDataLen, self.UserData, self.FitLV, self.Proficiency, self.IsSuite, self.BaseHP, self.BaseMagicDef, self.MaxAddSkillCnt, self.PetID, self.EquipMagicDefValue, self.EquipMinMagicAtkValue, self.EquipMaxMagicAtkValue ) return DumpString class tagHightLadderPlayerInfo(Structure): PlayerID = 0 #(DWORD PlayerID) Oreder = 0 #(WORD Oreder) PlayerName = "" #(char PlayerName[33]) PlayerLV = 0 #(WORD PlayerLV) FightPower = 0 #(DWORD FightPower) FightPropertyDataLen = 0 #(DWORD FightPropertyDataLen) FightPropertyData = "" #(String FightPropertyData)//Python×Ô¶¨ÒåÊý¾Ý EquipCount = 0 #(BYTE EquipCount) EquipList = list() #(vector EquipList)//×°±¸ÐÅÏ¢Áбí 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.Oreder,_pos = CommFunc.ReadWORD(_lpData, _pos) self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33) self.PlayerLV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.FightPropertyDataLen,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.FightPropertyData,_pos = CommFunc.ReadString(_lpData, _pos,self.FightPropertyDataLen) self.EquipCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.EquipCount): temEquipList = tagHightLadderItemInfo() _pos = temEquipList.ReadData(_lpData, _pos) self.EquipList.append(temEquipList) return _pos def Clear(self): self.PlayerID = 0 self.Oreder = 0 self.PlayerName = "" self.PlayerLV = 0 self.FightPower = 0 self.FightPropertyDataLen = 0 self.FightPropertyData = "" self.EquipCount = 0 self.EquipList = list() return def GetLength(self): length = 0 length += 4 length += 2 length += 33 length += 2 length += 4 length += 4 length += len(self.FightPropertyData) length += 1 for i in range(self.EquipCount): length += self.EquipList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.PlayerID) data = CommFunc.WriteWORD(data, self.Oreder) data = CommFunc.WriteString(data, 33, self.PlayerName) data = CommFunc.WriteWORD(data, self.PlayerLV) data = CommFunc.WriteDWORD(data, self.FightPower) data = CommFunc.WriteDWORD(data, self.FightPropertyDataLen) data = CommFunc.WriteString(data, self.FightPropertyDataLen, self.FightPropertyData) data = CommFunc.WriteBYTE(data, self.EquipCount) for i in range(self.EquipCount): data = CommFunc.WriteString(data, self.EquipList[i].GetLength(), self.EquipList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' PlayerID:%d, Oreder:%d, PlayerName:%s, PlayerLV:%d, FightPower:%d, FightPropertyDataLen:%d, FightPropertyData:%s, EquipCount:%d, EquipList:%s '''\ %( self.PlayerID, self.Oreder, self.PlayerName, self.PlayerLV, self.FightPower, self.FightPropertyDataLen, self.FightPropertyData, self.EquipCount, "..." ) return DumpString class tagHightLadderTopPlayerList(Structure): Head = tagHead() Size = 0 #(BYTE Size) PlayerList = list() #(vector PlayerList)//Íæ¼ÒÐÅÏ¢Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0x1A self.Head.SubCmd = 0x11 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.Size,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Size): temPlayerList = tagHightLadderPlayerInfo() _pos = temPlayerList.ReadData(_lpData, _pos) self.PlayerList.append(temPlayerList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x1A self.Head.SubCmd = 0x11 self.Size = 0 self.PlayerList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.Size): 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.Size) for i in range(self.Size): data = CommFunc.WriteString(data, self.PlayerList[i].GetLength(), self.PlayerList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, Size:%d, PlayerList:%s '''\ %( self.Head.OutputString(), self.Size, "..." ) return DumpString m_NAtagHightLadderTopPlayerList=tagHightLadderTopPlayerList() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagHightLadderTopPlayerList.Head.Cmd,m_NAtagHightLadderTopPlayerList.Head.SubCmd))] = m_NAtagHightLadderTopPlayerList #------------------------------------------------------ #1A 13 ÌìÌݾº¼¼³¡¶ÔÕ½Íæ¼ÒÊý¾Ý#tagHightLadderVSPlayerInfo class tagHightLadderVSPlayerInfo(Structure): Head = tagHead() VSPlayer=tagHightLadderPlayerInfo() #(tagHightLadderPlayerInfo VSPlayer)//Íæ¼ÒÐÅÏ¢ result = 0 #(BYTE result)//¶ÔÕ½½á¹û PlusInfoSize = 0 #(WORD PlusInfoSize) PlusInfo = "" #(String PlusInfo)//¸½´øÐÅÏ¢ data = None def __init__(self): self.Clear() self.Head.Cmd = 0x1A self.Head.SubCmd = 0x13 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) _pos = self.VSPlayer.ReadData(_lpData,_pos) self.result,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.PlusInfoSize,_pos = CommFunc.ReadWORD(_lpData, _pos) self.PlusInfo,_pos = CommFunc.ReadString(_lpData, _pos,self.PlusInfoSize) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x1A self.Head.SubCmd = 0x13 self.VSPlayer=tagHightLadderPlayerInfo() self.VSPlayer.Clear() self.result = 0 self.PlusInfoSize = 0 self.PlusInfo = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += self.VSPlayer.GetLength() length += 1 length += 2 length += len(self.PlusInfo) return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteString(data,self.VSPlayer.GetLength(),self.VSPlayer.GetBuffer()) data = CommFunc.WriteBYTE(data, self.result) data = CommFunc.WriteWORD(data, self.PlusInfoSize) data = CommFunc.WriteString(data, self.PlusInfoSize, self.PlusInfo) return data def OutputString(self): DumpString = ''' Head:%s, VSPlayer:%s, result:%d, PlusInfoSize:%d, PlusInfo:%s '''\ %( self.Head.OutputString(), self.VSPlayer.OutputString(), self.result, self.PlusInfoSize, self.PlusInfo ) return DumpString m_NAtagHightLadderVSPlayerInfo=tagHightLadderVSPlayerInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagHightLadderVSPlayerInfo.Head.Cmd,m_NAtagHightLadderVSPlayerInfo.Head.SubCmd))] = m_NAtagHightLadderVSPlayerInfo #------------------------------------------------------ #1A 05 Ìß³ö·¿¼ä#tagKickoutVsRoom class tagKickoutVsRoom(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ] def __init__(self): self.Clear() self.Cmd = 0x1A 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 = 0x1A self.SubCmd = 0x05 return def GetLength(self): return sizeof(tagKickoutVsRoom) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''//1A 05 Ìß³ö·¿¼ä//tagKickoutVsRoom: Cmd:%s, SubCmd:%s '''\ %( self.Cmd, self.SubCmd ) return DumpString m_NAtagKickoutVsRoom=tagKickoutVsRoom() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagKickoutVsRoom.Cmd,m_NAtagKickoutVsRoom.SubCmd))] = m_NAtagKickoutVsRoom #------------------------------------------------------ #1A 08 ·¿¼äÐÅϢˢÐÂ#tagRoomInfo class tagVsMemberInfo(Structure): PlayerID = 0 #(DWORD PlayerID)// ½ÇÉ«ID PlayerName = "" #(char PlayerName[33])//½ÇÉ«Ãû£¬size = 14 LV = 0 #(int LV)//µÈ¼¶ Job = 0 #(BYTE Job)//Ö°Òµ IsReady = 0 #(BYTE IsReady)//ÊÇ·ñ×¼±¸ºÃ 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.LV,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.IsReady,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): self.PlayerID = 0 self.PlayerName = "" self.LV = 0 self.Job = 0 self.IsReady = 0 return def GetLength(self): length = 0 length += 4 length += 33 length += 4 length += 1 length += 1 return length def GetBuffer(self): data = '' data = CommFunc.WriteDWORD(data, self.PlayerID) data = CommFunc.WriteString(data, 33, self.PlayerName) data = CommFunc.WriteDWORD(data, self.LV) data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteBYTE(data, self.IsReady) return data def OutputString(self): DumpString = ''' PlayerID:%d, PlayerName:%s, LV:%d, Job:%d, IsReady:%d '''\ %( self.PlayerID, self.PlayerName, self.LV, self.Job, self.IsReady ) return DumpString class tagVsTeam(Structure): TeamIndex = 0 #(BYTE TeamIndex)// ¾º¼¼¶ÓIndex MemberCount = 0 #(WORD MemberCount)// ³ÉÔ±ÈËÊý Members = list() #(vector Members)// ³ÉÔ±Áбí data = None def __init__(self): self.Clear() return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() self.TeamIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.MemberCount,_pos = CommFunc.ReadWORD(_lpData, _pos) for i in range(self.MemberCount): temMembers = tagVsMemberInfo() _pos = temMembers.ReadData(_lpData, _pos) self.Members.append(temMembers) return _pos def Clear(self): self.TeamIndex = 0 self.MemberCount = 0 self.Members = list() return def GetLength(self): length = 0 length += 1 length += 2 for i in range(self.MemberCount): length += self.Members[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteBYTE(data, self.TeamIndex) data = CommFunc.WriteWORD(data, self.MemberCount) for i in range(self.MemberCount): data = CommFunc.WriteString(data, self.Members[i].GetLength(), self.Members[i].GetBuffer()) return data def OutputString(self): DumpString = ''' TeamIndex:%d, MemberCount:%d, Members:%s '''\ %( self.TeamIndex, self.MemberCount, "..." ) return DumpString class tagRoomInfo(Structure): Head = tagHead() TeamCount = 0 #(BYTE TeamCount)//¶ÓÎé¸öÊý Teams = list() #(vector Teams) data = None def __init__(self): self.Clear() self.Head.Cmd = 0x1A self.Head.SubCmd = 0x08 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): temTeams = tagVsTeam() _pos = temTeams.ReadData(_lpData, _pos) self.Teams.append(temTeams) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x1A self.Head.SubCmd = 0x08 self.TeamCount = 0 self.Teams = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.TeamCount): length += self.Teams[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.Teams[i].GetLength(), self.Teams[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, TeamCount:%d, Teams:%s '''\ %( self.Head.OutputString(), self.TeamCount, "..." ) return DumpString m_NAtagRoomInfo=tagRoomInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagRoomInfo.Head.Cmd,m_NAtagRoomInfo.Head.SubCmd))] = m_NAtagRoomInfo #------------------------------------------------------ #1A 12 ÌìÌݾº¼¼³¡¿ÉÌôÕ½Íæ¼ÒÁбí#tagHightLadderCanFightPlayerList class tagHightLadderCanFightPlayerList(Structure): Head = tagHead() MyOrder = 0 #(WORD MyOrder)//×ÔÉíÅÅÃû Size = 0 #(BYTE Size) PlayerList = list() #(vector PlayerList)//Íæ¼ÒÐÅÏ¢Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0x1A self.Head.SubCmd = 0x12 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.MyOrder,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Size,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.Size): temPlayerList = tagHightLadderPlayerInfo() _pos = temPlayerList.ReadData(_lpData, _pos) self.PlayerList.append(temPlayerList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x1A self.Head.SubCmd = 0x12 self.MyOrder = 0 self.Size = 0 self.PlayerList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 length += 1 for i in range(self.Size): length += self.PlayerList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteWORD(data, self.MyOrder) data = CommFunc.WriteBYTE(data, self.Size) for i in range(self.Size): data = CommFunc.WriteString(data, self.PlayerList[i].GetLength(), self.PlayerList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, MyOrder:%d, Size:%d, PlayerList:%s '''\ %( self.Head.OutputString(), self.MyOrder, self.Size, "..." ) return DumpString m_NAtagHightLadderCanFightPlayerList=tagHightLadderCanFightPlayerList() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagHightLadderCanFightPlayerList.Head.Cmd,m_NAtagHightLadderCanFightPlayerList.Head.SubCmd))] = m_NAtagHightLadderCanFightPlayerList #------------------------------------------------------ #1A 02 ¼ÓÈë·¿¼ä³É¹¦#tagJoinVsRoomOk class tagJoinVsRoomOk(Structure): Head = tagHead() RoomId = 0 #(DWORD RoomId)// ·¿¼äID RoomName = "" #(char RoomName[15])// ·¿¼äÃû RoomType = 0 #(BYTE RoomType)// ·¿¼äÀàÐÍ VsValueMode = 0 #(BYTE VsValueMode)//¾ö¶·ÉèÖÃģʽ VsMode = 0 #(BYTE VsMode)//Õýа¾öģʽ LeftTime = 0 #(DWORD LeftTime)// Ê£Óàʱ¼ä Pwd = "" #(char Pwd[7])//ÃÜÂë data = None def __init__(self): self.Clear() self.Head.Cmd = 0x1A self.Head.SubCmd = 0x02 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.RoomId,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.RoomName,_pos = CommFunc.ReadString(_lpData, _pos,15) self.RoomType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.VsValueMode,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.VsMode,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LeftTime,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Pwd,_pos = CommFunc.ReadString(_lpData, _pos,7) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x1A self.Head.SubCmd = 0x02 self.RoomId = 0 self.RoomName = "" self.RoomType = 0 self.VsValueMode = 0 self.VsMode = 0 self.LeftTime = 0 self.Pwd = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 15 length += 1 length += 1 length += 1 length += 4 length += 7 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.RoomId) data = CommFunc.WriteString(data, 15, self.RoomName) data = CommFunc.WriteBYTE(data, self.RoomType) data = CommFunc.WriteBYTE(data, self.VsValueMode) data = CommFunc.WriteBYTE(data, self.VsMode) data = CommFunc.WriteDWORD(data, self.LeftTime) data = CommFunc.WriteString(data, 7, self.Pwd) return data def OutputString(self): DumpString = ''' Head:%s, RoomId:%d, RoomName:%s, RoomType:%d, VsValueMode:%d, VsMode:%d, LeftTime:%d, Pwd:%s '''\ %( self.Head.OutputString(), self.RoomId, self.RoomName, self.RoomType, self.VsValueMode, self.VsMode, self.LeftTime, self.Pwd ) return DumpString m_NAtagJoinVsRoomOk=tagJoinVsRoomOk() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagJoinVsRoomOk.Head.Cmd,m_NAtagJoinVsRoomOk.Head.SubCmd))] = m_NAtagJoinVsRoomOk #------------------------------------------------------ #1B 01 ²éÑ¯Íæ¼ÒÉϼÜÎïÆ·ÐÅÏ¢½á¹û#tagPlayerBourseItemResult class tagBourseItem(Structure): ItemGUID = "" #(char ItemGUID[40]) PlayerID = 0 #(DWORD PlayerID)//¹Òµ¥Íæ¼ÒID ItemTypeID = 0 #(DWORD ItemTypeID)//ÎïÆ·ID PriceType = 0 #(BYTE PriceType)//³öÊÛ¼Û¸ñÀàÐÍ PriceCount = 0 #(DWORD PriceCount)//³öÊÛ¼Û¸ñ Count = 0 #(WORD Count)//µ¥×éÊýÁ¿ UserDataLen = 0 #(DWORD UserDataLen) UserData = "" #(String UserData)//×Ô¶¨ÒåÊý¾Ý NeadPwd = 0 #(BYTE NeadPwd)//ÊÇ·ñÓн»Ò×ÃÜÂë EquipGS = 0 #(DWORD EquipGS)//×°±¸ÆÀ·Ö 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.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ItemTypeID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.PriceType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.PriceCount,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos) self.UserDataLen,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen) self.NeadPwd,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.EquipGS,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): self.ItemGUID = "" self.PlayerID = 0 self.ItemTypeID = 0 self.PriceType = 0 self.PriceCount = 0 self.Count = 0 self.UserDataLen = 0 self.UserData = "" self.NeadPwd = 0 self.EquipGS = 0 return def GetLength(self): length = 0 length += 40 length += 4 length += 4 length += 1 length += 4 length += 2 length += 4 length += len(self.UserData) length += 1 length += 4 return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, 40, self.ItemGUID) data = CommFunc.WriteDWORD(data, self.PlayerID) data = CommFunc.WriteDWORD(data, self.ItemTypeID) data = CommFunc.WriteBYTE(data, self.PriceType) data = CommFunc.WriteDWORD(data, self.PriceCount) data = CommFunc.WriteWORD(data, self.Count) data = CommFunc.WriteDWORD(data, self.UserDataLen) data = CommFunc.WriteString(data, self.UserDataLen, self.UserData) data = CommFunc.WriteBYTE(data, self.NeadPwd) data = CommFunc.WriteDWORD(data, self.EquipGS) return data def OutputString(self): DumpString = ''' ItemGUID:%s, PlayerID:%d, ItemTypeID:%d, PriceType:%d, PriceCount:%d, Count:%d, UserDataLen:%d, UserData:%s, NeadPwd:%d, EquipGS:%d '''\ %( self.ItemGUID, self.PlayerID, self.ItemTypeID, self.PriceType, self.PriceCount, self.Count, self.UserDataLen, self.UserData, self.NeadPwd, self.EquipGS ) return DumpString class tagPlayerBourseItemResult(Structure): Head = tagHead() ItemCount = 0 #(BYTE ItemCount) ItemList = list() #(vector ItemList) data = None def __init__(self): self.Clear() self.Head.Cmd = 0x1B self.Head.SubCmd = 0x01 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.ItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.ItemCount): temItemList = tagBourseItem() _pos = temItemList.ReadData(_lpData, _pos) self.ItemList.append(temItemList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x1B self.Head.SubCmd = 0x01 self.ItemCount = 0 self.ItemList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 1 for i in range(self.ItemCount): 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.ItemCount) for i in range(self.ItemCount): data = CommFunc.WriteString(data, self.ItemList[i].GetLength(), self.ItemList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, ItemCount:%d, ItemList:%s '''\ %( self.Head.OutputString(), self.ItemCount, "..." ) return DumpString m_NAtagPlayerBourseItemResult=tagPlayerBourseItemResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerBourseItemResult.Head.Cmd,m_NAtagPlayerBourseItemResult.Head.SubCmd))] = m_NAtagPlayerBourseItemResult #------------------------------------------------------ #1B 02 ²éѯ½»Ò×ËùÕýÔÚ³öÊÛÎïÆ·½á¹û#tagBourseItemOnSaleResult class tagBourseItemOnSaleResult(Structure): Head = tagHead() QueryType = 0 #(DWORD QueryType)//²éѯµÄ·ÖÀà±êʶ FirstIndex = 0 #(WORD FirstIndex)//²éѯÆðʼÊý £¨´Ó1¿ªÊ¼£© Count = 0 #(WORD Count)//²éѯÌõÊý TypeItemCount = 0 #(WORD TypeItemCount)//²éѯÀàÐÍÎïÆ·×ÜÊýÁ¿ ItemCount = 0 #(WORD ItemCount)//·µ»ØÎïÆ·ÊýÁ¿ ItemList = list() #(vector ItemList)//·µ»ØÎïÆ·Áбí data = None def __init__(self): self.Clear() self.Head.Cmd = 0x1B self.Head.SubCmd = 0x02 return def ReadData(self, _lpData, _pos=0, _Len=0): self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.QueryType,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.FirstIndex,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos) self.TypeItemCount,_pos = CommFunc.ReadWORD(_lpData, _pos) self.ItemCount,_pos = CommFunc.ReadWORD(_lpData, _pos) for i in range(self.ItemCount): temItemList = tagBourseItem() _pos = temItemList.ReadData(_lpData, _pos) self.ItemList.append(temItemList) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x1B self.Head.SubCmd = 0x02 self.QueryType = 0 self.FirstIndex = 0 self.Count = 0 self.TypeItemCount = 0 self.ItemCount = 0 self.ItemList = list() return def GetLength(self): length = 0 length += self.Head.GetLength() length += 4 length += 2 length += 2 length += 2 length += 2 for i in range(self.ItemCount): length += self.ItemList[i].GetLength() return length def GetBuffer(self): data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteDWORD(data, self.QueryType) data = CommFunc.WriteWORD(data, self.FirstIndex) data = CommFunc.WriteWORD(data, self.Count) data = CommFunc.WriteWORD(data, self.TypeItemCount) data = CommFunc.WriteWORD(data, self.ItemCount) for i in range(self.ItemCount): data = CommFunc.WriteString(data, self.ItemList[i].GetLength(), self.ItemList[i].GetBuffer()) return data def OutputString(self): DumpString = ''' Head:%s, QueryType:%d, FirstIndex:%d, Count:%d, TypeItemCount:%d, ItemCount:%d, ItemList:%s '''\ %( self.Head.OutputString(), self.QueryType, self.FirstIndex, self.Count, self.TypeItemCount, self.ItemCount, "..." ) return DumpString m_NAtagBourseItemOnSaleResult=tagBourseItemOnSaleResult() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagBourseItemOnSaleResult.Head.Cmd,m_NAtagBourseItemOnSaleResult.Head.SubCmd))] = m_NAtagBourseItemOnSaleResult #------------------------------------------------------ #32 02 ·þÎñÆ÷»ØÓ¦¿Í»§¶ËÏûÏ¢#tagServerResponse class tagServerResponse(Structure): Head = tagHead() Len = 0 #(WORD Len) Message = "" #(String Message)//size = Len data = None def __init__(self): self.Clear() self.Head.Cmd = 0x32 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.Message,_pos = CommFunc.ReadString(_lpData, _pos,self.Len) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x32 self.Head.SubCmd = 0x02 self.Len = 0 self.Message = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 length += len(self.Message) 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.Message) return data def OutputString(self): DumpString = ''' Head:%s, Len:%d, Message:%s '''\ %( self.Head.OutputString(), self.Len, self.Message ) return DumpString m_NAtagServerResponse=tagServerResponse() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagServerResponse.Head.Cmd,m_NAtagServerResponse.Head.SubCmd))] = m_NAtagServerResponse #------------------------------------------------------ #32 01 GMÃüÁî»ØÓ¦#tagGMCmdAnswer class tagGMCmdAnswer(Structure): Head = tagHead() Len = 0 #(WORD Len) Answer = "" #(String Answer)//size = Len data = None def __init__(self): self.Clear() self.Head.Cmd = 0x32 self.Head.SubCmd = 0x01 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.Answer,_pos = CommFunc.ReadString(_lpData, _pos,self.Len) return _pos def Clear(self): self.Head = tagHead() self.Head.Clear() self.Head.Cmd = 0x32 self.Head.SubCmd = 0x01 self.Len = 0 self.Answer = "" return def GetLength(self): length = 0 length += self.Head.GetLength() length += 2 length += len(self.Answer) 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.Answer) return data def OutputString(self): DumpString = ''' Head:%s, Len:%d, Answer:%s '''\ %( self.Head.OutputString(), self.Len, self.Answer ) return DumpString m_NAtagGMCmdAnswer=tagGMCmdAnswer() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGMCmdAnswer.Head.Cmd,m_NAtagGMCmdAnswer.Head.SubCmd))] = m_NAtagGMCmdAnswer