#!/usr/bin/python # -*- coding: GBK -*- # ##@package E:/GameSVN/U3DGame/ProjectSServer/ServerPython/CoreServerGroup/GameServer/Script/PyGameDataStruct.py # @todo: # # @author: Alee # @date 2017-8-21 ÏÂÎç04:21:36 # @version 1.0 # # @note: CodeMaker PyGameServerSaveData.pyÉú³É # #--------------------------------------------------------------------- import ctypes from ctypes import (Structure, memset, memmove, sizeof, addressof, create_string_buffer, string_at) import CommFunc # ÅÄÂô¹Ø×¢±í #tagDBAuctionAttention class tagDBAuctionAttention(Structure): _pack_ = 1 _fields_ = [ ('PlayerID', ctypes.c_ulong), ('AttentionLen', ctypes.c_ubyte), ('AttentionInfo', ctypes.c_char_p), ('ADOResult', ctypes.c_ulong), ] def __init__(self): Structure.__init__(self) self.clear() def clear(self): self.PlayerID = 0 self.AttentionLen = 0 self.AttentionInfo = '' def readData(self, buf, pos = 0, length = 0): if not pos <= length: return -1 if len(buf) < pos + self.getLength(): return -1 self.clear() self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos) self.AttentionLen, pos = CommFunc.ReadBYTE(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.AttentionLen) self.AttentionInfo = ctypes.c_char_p(tmp) return self.getLength() def getBuffer(self): buf = '' buf = CommFunc.WriteDWORD(buf, self.PlayerID) buf = CommFunc.WriteBYTE(buf, self.AttentionLen) buf = CommFunc.WriteString(buf, self.AttentionLen, self.AttentionInfo) return buf def getLength(self): length = 0 length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ubyte) length += self.AttentionLen return length def outputString(self): output = '''// ÅÄÂô¹Ø×¢±í #tagDBAuctionAttention: PlayerID = %s, AttentionLen = %s, AttentionInfo = %s, ADOResult = %s, '''%( self.PlayerID, self.AttentionLen, self.AttentionInfo, self.ADOResult, ) return output # ÅÄÂô¼Ç¼±í #tagDBAuctionRecord class tagDBAuctionRecord(Structure): _pack_ = 1 _fields_ = [ ('ItemGUID', ctypes.c_char * 40), ('PlayerID', ctypes.c_ulong), ('FamilyID', ctypes.c_ulong), ('RecordType', ctypes.c_ubyte), ('RecordResult', ctypes.c_ubyte), ('RecordTime', ctypes.c_char * 19), ('BidderPrice', ctypes.c_ulong), ('BidderName', ctypes.c_char * 33), ('ItemID', ctypes.c_ulong), ('Count', ctypes.c_ushort), ('UserDataLen', ctypes.c_ushort), ('UserData', ctypes.c_char_p), ('ADOResult', ctypes.c_ulong), ] def __init__(self): Structure.__init__(self) self.clear() def clear(self): self.ItemGUID = '' self.PlayerID = 0 self.FamilyID = 0 self.RecordType = 0 self.RecordResult = 0 self.RecordTime = '' self.BidderPrice = 0 self.BidderName = '' self.ItemID = 0 self.Count = 0 self.UserDataLen = 0 self.UserData = '' def readData(self, buf, pos = 0, length = 0): if not pos <= length: return -1 if len(buf) < pos + self.getLength(): return -1 self.clear() self.ItemGUID, pos = CommFunc.ReadString(buf, pos, 40) self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos) self.FamilyID, pos = CommFunc.ReadDWORD(buf, pos) self.RecordType, pos = CommFunc.ReadBYTE(buf, pos) self.RecordResult, pos = CommFunc.ReadBYTE(buf, pos) self.RecordTime, pos = CommFunc.ReadString(buf, pos, 19) self.BidderPrice, pos = CommFunc.ReadDWORD(buf, pos) self.BidderName, pos = CommFunc.ReadString(buf, pos, 33) self.ItemID, pos = CommFunc.ReadDWORD(buf, pos) self.Count, pos = CommFunc.ReadWORD(buf, pos) self.UserDataLen, pos = CommFunc.ReadWORD(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.UserDataLen) self.UserData = ctypes.c_char_p(tmp) return self.getLength() def getBuffer(self): buf = '' buf = CommFunc.WriteString(buf, sizeof(ctypes.c_char) * 40, self.ItemGUID) buf = CommFunc.WriteDWORD(buf, self.PlayerID) buf = CommFunc.WriteDWORD(buf, self.FamilyID) buf = CommFunc.WriteBYTE(buf, self.RecordType) buf = CommFunc.WriteBYTE(buf, self.RecordResult) buf = CommFunc.WriteString(buf, sizeof(ctypes.c_char) * 19, self.RecordTime) buf = CommFunc.WriteDWORD(buf, self.BidderPrice) buf = CommFunc.WriteString(buf, sizeof(ctypes.c_char) * 33, self.BidderName) buf = CommFunc.WriteDWORD(buf, self.ItemID) buf = CommFunc.WriteWORD(buf, self.Count) buf = CommFunc.WriteWORD(buf, self.UserDataLen) buf = CommFunc.WriteString(buf, self.UserDataLen, self.UserData) return buf def getLength(self): length = 0 length += sizeof(ctypes.c_char) * 40 length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ubyte) length += sizeof(ctypes.c_ubyte) length += sizeof(ctypes.c_char) * 19 length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_char) * 33 length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ushort) length += sizeof(ctypes.c_ushort) length += self.UserDataLen return length def outputString(self): output = '''// ÅÄÂô¼Ç¼±í #tagDBAuctionRecord: ItemGUID = %s, PlayerID = %s, FamilyID = %s, RecordType = %s, RecordResult = %s, RecordTime = %s, BidderPrice = %s, BidderName = %s, ItemID = %s, Count = %s, UserDataLen = %s, UserData = %s, ADOResult = %s, '''%( self.ItemGUID, self.PlayerID, self.FamilyID, self.RecordType, self.RecordResult, self.RecordTime, self.BidderPrice, self.BidderName, self.ItemID, self.Count, self.UserDataLen, self.UserData, self.ADOResult, ) return output #CharÊý×éÀàÐÍSet½Ó¿Ú,ʹÓøýӿڶԴËÀàÐÍÊý¾Ý¸³Öµ£¬·ÀÖ¹¸³ÖµµÄÊý¾Ý¹ý³¤±¨´í def SetItemGUID(self,Str): if len(Str)<=40: self.ItemGUID = Str else: self.ItemGUID = Str[:40] def SetRecordTime(self,Str): if len(Str)<=19: self.RecordTime = Str else: self.RecordTime = Str[:19] def SetBidderName(self,Str): if len(Str)<=33: self.BidderName = Str else: self.BidderName = Str[:33] # ÅÄÂôÎïÆ·±í #tagDBAuctionItem class tagDBAuctionItem(Structure): _pack_ = 1 _fields_ = [ ('ItemGUID', ctypes.c_char * 40), ('PlayerID', ctypes.c_ulong), ('FamilyID', ctypes.c_ulong), ('ItemID', ctypes.c_ulong), ('Count', ctypes.c_ushort), ('AuctionType', ctypes.c_ubyte), ('AddTime', ctypes.c_char * 19), ('BiddingTime', ctypes.c_char * 19), ('BidderID', ctypes.c_ulong), ('BidderName', ctypes.c_char * 33), ('BidderPrice', ctypes.c_ulong), ('ItemType', ctypes.c_ubyte), ('ItemJobLimit', ctypes.c_ubyte), ('ItemClassLV', ctypes.c_ubyte), ('UserDataLen', ctypes.c_ushort), ('UserData', ctypes.c_char_p), ('FamilyPlayerIDLen', ctypes.c_ushort), ('FamilyPlayerIDInfo', ctypes.c_char_p), ('BidderIDLen', ctypes.c_ubyte), ('BidderIDInfo', ctypes.c_char_p), ('ADOResult', ctypes.c_ulong), ] def __init__(self): Structure.__init__(self) self.clear() def clear(self): self.ItemGUID = '' self.PlayerID = 0 self.FamilyID = 0 self.ItemID = 0 self.Count = 0 self.AuctionType = 0 self.AddTime = '' self.BiddingTime = '' self.BidderID = 0 self.BidderName = '' self.BidderPrice = 0 self.ItemType = 0 self.ItemJobLimit = 0 self.ItemClassLV = 0 self.UserDataLen = 0 self.UserData = '' self.FamilyPlayerIDLen = 0 self.FamilyPlayerIDInfo = '' self.BidderIDLen = 0 self.BidderIDInfo = '' def readData(self, buf, pos = 0, length = 0): if not pos <= length: return -1 if len(buf) < pos + self.getLength(): return -1 self.clear() self.ItemGUID, pos = CommFunc.ReadString(buf, pos, 40) self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos) self.FamilyID, pos = CommFunc.ReadDWORD(buf, pos) self.ItemID, pos = CommFunc.ReadDWORD(buf, pos) self.Count, pos = CommFunc.ReadWORD(buf, pos) self.AuctionType, pos = CommFunc.ReadBYTE(buf, pos) self.AddTime, pos = CommFunc.ReadString(buf, pos, 19) self.BiddingTime, pos = CommFunc.ReadString(buf, pos, 19) self.BidderID, pos = CommFunc.ReadDWORD(buf, pos) self.BidderName, pos = CommFunc.ReadString(buf, pos, 33) self.BidderPrice, pos = CommFunc.ReadDWORD(buf, pos) self.ItemType, pos = CommFunc.ReadBYTE(buf, pos) self.ItemJobLimit, pos = CommFunc.ReadBYTE(buf, pos) self.ItemClassLV, pos = CommFunc.ReadBYTE(buf, pos) self.UserDataLen, pos = CommFunc.ReadWORD(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.UserDataLen) self.UserData = ctypes.c_char_p(tmp) self.FamilyPlayerIDLen, pos = CommFunc.ReadWORD(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.FamilyPlayerIDLen) self.FamilyPlayerIDInfo = ctypes.c_char_p(tmp) self.BidderIDLen, pos = CommFunc.ReadBYTE(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.BidderIDLen) self.BidderIDInfo = ctypes.c_char_p(tmp) return self.getLength() def getBuffer(self): buf = '' buf = CommFunc.WriteString(buf, sizeof(ctypes.c_char) * 40, self.ItemGUID) buf = CommFunc.WriteDWORD(buf, self.PlayerID) buf = CommFunc.WriteDWORD(buf, self.FamilyID) buf = CommFunc.WriteDWORD(buf, self.ItemID) buf = CommFunc.WriteWORD(buf, self.Count) buf = CommFunc.WriteBYTE(buf, self.AuctionType) buf = CommFunc.WriteString(buf, sizeof(ctypes.c_char) * 19, self.AddTime) buf = CommFunc.WriteString(buf, sizeof(ctypes.c_char) * 19, self.BiddingTime) buf = CommFunc.WriteDWORD(buf, self.BidderID) buf = CommFunc.WriteString(buf, sizeof(ctypes.c_char) * 33, self.BidderName) buf = CommFunc.WriteDWORD(buf, self.BidderPrice) buf = CommFunc.WriteBYTE(buf, self.ItemType) buf = CommFunc.WriteBYTE(buf, self.ItemJobLimit) buf = CommFunc.WriteBYTE(buf, self.ItemClassLV) buf = CommFunc.WriteWORD(buf, self.UserDataLen) buf = CommFunc.WriteString(buf, self.UserDataLen, self.UserData) buf = CommFunc.WriteWORD(buf, self.FamilyPlayerIDLen) buf = CommFunc.WriteString(buf, self.FamilyPlayerIDLen, self.FamilyPlayerIDInfo) buf = CommFunc.WriteBYTE(buf, self.BidderIDLen) buf = CommFunc.WriteString(buf, self.BidderIDLen, self.BidderIDInfo) return buf def getLength(self): length = 0 length += sizeof(ctypes.c_char) * 40 length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ushort) length += sizeof(ctypes.c_ubyte) length += sizeof(ctypes.c_char) * 19 length += sizeof(ctypes.c_char) * 19 length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_char) * 33 length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ubyte) length += sizeof(ctypes.c_ubyte) length += sizeof(ctypes.c_ubyte) length += sizeof(ctypes.c_ushort) length += self.UserDataLen length += sizeof(ctypes.c_ushort) length += self.FamilyPlayerIDLen length += sizeof(ctypes.c_ubyte) length += self.BidderIDLen return length def outputString(self): output = '''// ÅÄÂôÎïÆ·±í #tagDBAuctionItem: ItemGUID = %s, PlayerID = %s, FamilyID = %s, ItemID = %s, Count = %s, AuctionType = %s, AddTime = %s, BiddingTime = %s, BidderID = %s, BidderName = %s, BidderPrice = %s, ItemType = %s, ItemJobLimit = %s, ItemClassLV = %s, UserDataLen = %s, UserData = %s, FamilyPlayerIDLen = %s, FamilyPlayerIDInfo = %s, BidderIDLen = %s, BidderIDInfo = %s, ADOResult = %s, '''%( self.ItemGUID, self.PlayerID, self.FamilyID, self.ItemID, self.Count, self.AuctionType, self.AddTime, self.BiddingTime, self.BidderID, self.BidderName, self.BidderPrice, self.ItemType, self.ItemJobLimit, self.ItemClassLV, self.UserDataLen, self.UserData, self.FamilyPlayerIDLen, self.FamilyPlayerIDInfo, self.BidderIDLen, self.BidderIDInfo, self.ADOResult, ) return output #CharÊý×éÀàÐÍSet½Ó¿Ú,ʹÓøýӿڶԴËÀàÐÍÊý¾Ý¸³Öµ£¬·ÀÖ¹¸³ÖµµÄÊý¾Ý¹ý³¤±¨´í def SetItemGUID(self,Str): if len(Str)<=40: self.ItemGUID = Str else: self.ItemGUID = Str[:40] def SetAddTime(self,Str): if len(Str)<=19: self.AddTime = Str else: self.AddTime = Str[:19] def SetBiddingTime(self,Str): if len(Str)<=19: self.BiddingTime = Str else: self.BiddingTime = Str[:19] def SetBidderName(self,Str): if len(Str)<=33: self.BidderName = Str else: self.BidderName = Str[:33] # ¿ç·þ¾º¼¼³¡Î´Í¨ÖªÍæ¼ÒµÄ±ÈÈü½á¹û±í #tagDBCrossPKUnNotifyOverInfo class tagDBCrossPKUnNotifyOverInfo(Structure): _pack_ = 1 _fields_ = [ ('ZoneID', ctypes.c_ubyte), ('SeasonID', ctypes.c_ubyte), ('RoomID', ctypes.c_ushort), ('TimeStr', ctypes.c_char * 19), ('OverType', ctypes.c_ubyte), ('PlayerID', ctypes.c_ulong), ('WinnerID', ctypes.c_ulong), ('RoundWinnerLen', ctypes.c_ubyte), ('RoundWinnerInfo', ctypes.c_char_p), ('PKScore', ctypes.c_ulong), ('DanLV', ctypes.c_ubyte), ('CWinCount', ctypes.c_ushort), ('AddScore', ctypes.c_ushort), ('TagPlayerID', ctypes.c_ulong), ('TagPlayerName', ctypes.c_char * 33), ('ADOResult', ctypes.c_ulong), ] def __init__(self): Structure.__init__(self) self.clear() def clear(self): self.ZoneID = 0 self.SeasonID = 0 self.RoomID = 0 self.TimeStr = '' self.OverType = 0 self.PlayerID = 0 self.WinnerID = 0 self.RoundWinnerLen = 0 self.RoundWinnerInfo = '' self.PKScore = 0 self.DanLV = 0 self.CWinCount = 0 self.AddScore = 0 self.TagPlayerID = 0 self.TagPlayerName = '' def readData(self, buf, pos = 0, length = 0): if not pos <= length: return -1 if len(buf) < pos + self.getLength(): return -1 self.clear() self.ZoneID, pos = CommFunc.ReadBYTE(buf, pos) self.SeasonID, pos = CommFunc.ReadBYTE(buf, pos) self.RoomID, pos = CommFunc.ReadWORD(buf, pos) self.TimeStr, pos = CommFunc.ReadString(buf, pos, 19) self.OverType, pos = CommFunc.ReadBYTE(buf, pos) self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos) self.WinnerID, pos = CommFunc.ReadDWORD(buf, pos) self.RoundWinnerLen, pos = CommFunc.ReadBYTE(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.RoundWinnerLen) self.RoundWinnerInfo = ctypes.c_char_p(tmp) self.PKScore, pos = CommFunc.ReadDWORD(buf, pos) self.DanLV, pos = CommFunc.ReadBYTE(buf, pos) self.CWinCount, pos = CommFunc.ReadWORD(buf, pos) self.AddScore, pos = CommFunc.ReadWORD(buf, pos) self.TagPlayerID, pos = CommFunc.ReadDWORD(buf, pos) self.TagPlayerName, pos = CommFunc.ReadString(buf, pos, 33) return self.getLength() def getBuffer(self): buf = '' buf = CommFunc.WriteBYTE(buf, self.ZoneID) buf = CommFunc.WriteBYTE(buf, self.SeasonID) buf = CommFunc.WriteWORD(buf, self.RoomID) buf = CommFunc.WriteString(buf, sizeof(ctypes.c_char) * 19, self.TimeStr) buf = CommFunc.WriteBYTE(buf, self.OverType) buf = CommFunc.WriteDWORD(buf, self.PlayerID) buf = CommFunc.WriteDWORD(buf, self.WinnerID) buf = CommFunc.WriteBYTE(buf, self.RoundWinnerLen) buf = CommFunc.WriteString(buf, self.RoundWinnerLen, self.RoundWinnerInfo) buf = CommFunc.WriteDWORD(buf, self.PKScore) buf = CommFunc.WriteBYTE(buf, self.DanLV) buf = CommFunc.WriteWORD(buf, self.CWinCount) buf = CommFunc.WriteWORD(buf, self.AddScore) buf = CommFunc.WriteDWORD(buf, self.TagPlayerID) buf = CommFunc.WriteString(buf, sizeof(ctypes.c_char) * 33, self.TagPlayerName) return buf def getLength(self): length = 0 length += sizeof(ctypes.c_ubyte) length += sizeof(ctypes.c_ubyte) length += sizeof(ctypes.c_ushort) length += sizeof(ctypes.c_char) * 19 length += sizeof(ctypes.c_ubyte) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ubyte) length += self.RoundWinnerLen length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ubyte) length += sizeof(ctypes.c_ushort) length += sizeof(ctypes.c_ushort) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_char) * 33 return length def outputString(self): output = '''// ¿ç·þ¾º¼¼³¡Î´Í¨ÖªÍæ¼ÒµÄ±ÈÈü½á¹û±í #tagDBCrossPKUnNotifyOverInfo: ZoneID = %s, SeasonID = %s, RoomID = %s, TimeStr = %s, OverType = %s, PlayerID = %s, WinnerID = %s, RoundWinnerLen = %s, RoundWinnerInfo = %s, PKScore = %s, DanLV = %s, CWinCount = %s, AddScore = %s, TagPlayerID = %s, TagPlayerName = %s, ADOResult = %s, '''%( self.ZoneID, self.SeasonID, self.RoomID, self.TimeStr, self.OverType, self.PlayerID, self.WinnerID, self.RoundWinnerLen, self.RoundWinnerInfo, self.PKScore, self.DanLV, self.CWinCount, self.AddScore, self.TagPlayerID, self.TagPlayerName, self.ADOResult, ) return output #CharÊý×éÀàÐÍSet½Ó¿Ú,ʹÓøýӿڶԴËÀàÐÍÊý¾Ý¸³Öµ£¬·ÀÖ¹¸³ÖµµÄÊý¾Ý¹ý³¤±¨´í def SetTimeStr(self,Str): if len(Str)<=19: self.TimeStr = Str else: self.TimeStr = Str[:19] def SetTagPlayerName(self,Str): if len(Str)<=33: self.TagPlayerName = Str else: self.TagPlayerName = Str[:33] # ¿ç·þ¾º¼¼³¡PKÅÅÐаñ #tagDBCrossPKBillboard class tagDBCrossPKBillboard(Structure): _pack_ = 1 _fields_ = [ ('ZoneID', ctypes.c_ubyte), ('SeasonID', ctypes.c_ubyte), ('PlayerID', ctypes.c_ulong), ('PlayerName', ctypes.c_char * 33), ('Job', ctypes.c_ubyte), ('FightPower', ctypes.c_ulong), ('RealmLV', ctypes.c_ushort), ('PKScore', ctypes.c_ulong), ('DanLV', ctypes.c_ubyte), ('Time', ctypes.c_ulong), ('ADOResult', ctypes.c_ulong), ] def __init__(self): Structure.__init__(self) self.clear() def clear(self): memset(addressof(self), 0, self.getLength()) def readData(self, buf, pos = 0, length = 0): if not pos <= length: return -1 if len(buf) < pos + self.getLength(): return -1 self.clear() self.ZoneID, pos = CommFunc.ReadBYTE(buf, pos) self.SeasonID, pos = CommFunc.ReadBYTE(buf, pos) self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos) self.PlayerName, pos = CommFunc.ReadString(buf, pos, 33) self.Job, pos = CommFunc.ReadBYTE(buf, pos) self.FightPower, pos = CommFunc.ReadDWORD(buf, pos) self.RealmLV, pos = CommFunc.ReadWORD(buf, pos) self.PKScore, pos = CommFunc.ReadDWORD(buf, pos) self.DanLV, pos = CommFunc.ReadBYTE(buf, pos) self.Time, pos = CommFunc.ReadDWORD(buf, pos) return self.getLength() def getBuffer(self): buf = create_string_buffer(self.getLength()) memmove(addressof(buf), addressof(self), self.getLength()) return string_at(addressof(buf), self.getLength()) def getLength(self): return sizeof(tagDBCrossPKBillboard) def outputString(self): output = '''// ¿ç·þ¾º¼¼³¡PKÅÅÐаñ #tagDBCrossPKBillboard: ZoneID = %s, SeasonID = %s, PlayerID = %s, PlayerName = %s, Job = %s, FightPower = %s, RealmLV = %s, PKScore = %s, DanLV = %s, Time = %s, ADOResult = %s, '''%( self.ZoneID, self.SeasonID, self.PlayerID, self.PlayerName, self.Job, self.FightPower, self.RealmLV, self.PKScore, self.DanLV, self.Time, self.ADOResult, ) return output #CharÊý×éÀàÐÍSet½Ó¿Ú,ʹÓøýӿڶԴËÀàÐÍÊý¾Ý¸³Öµ£¬·ÀÖ¹¸³ÖµµÄÊý¾Ý¹ý³¤±¨´í def SetPlayerName(self,Str): if len(Str)<=33: self.PlayerName = Str else: self.PlayerName = Str[:33] #ÏÉħ֮Õù¼Ç¼±í#tagDBPyXMZZ class tagDBPyXMZZ(Structure): _pack_ = 1 _fields_ = [ ('PlayerID', ctypes.c_ulong), ('Name', ctypes.c_char * 33), ('Faction', ctypes.c_ubyte), ('Score', ctypes.c_ushort), ('WinCnt', ctypes.c_ubyte), ('LoseCnt', ctypes.c_ubyte), ('ConWinCnt', ctypes.c_ubyte), ('WinAwardRecord', ctypes.c_ulong), ('Len', ctypes.c_ushort), ('BetRecord', ctypes.c_char_p), ('ADOResult', ctypes.c_ulong), ] def __init__(self): Structure.__init__(self) self.clear() def clear(self): self.PlayerID = 0 self.Name = '' self.Faction = 0 self.Score = 0 self.WinCnt = 0 self.LoseCnt = 0 self.ConWinCnt = 0 self.WinAwardRecord = 0 self.Len = 0 self.BetRecord = '' def readData(self, buf, pos = 0, length = 0): if not pos <= length: return -1 if len(buf) < pos + self.getLength(): return -1 self.clear() self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos) self.Name, pos = CommFunc.ReadString(buf, pos, 33) self.Faction, pos = CommFunc.ReadBYTE(buf, pos) self.Score, pos = CommFunc.ReadWORD(buf, pos) self.WinCnt, pos = CommFunc.ReadBYTE(buf, pos) self.LoseCnt, pos = CommFunc.ReadBYTE(buf, pos) self.ConWinCnt, pos = CommFunc.ReadBYTE(buf, pos) self.WinAwardRecord, pos = CommFunc.ReadDWORD(buf, pos) self.Len, pos = CommFunc.ReadWORD(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.Len) self.BetRecord = ctypes.c_char_p(tmp) return self.getLength() def getBuffer(self): buf = '' buf = CommFunc.WriteDWORD(buf, self.PlayerID) buf = CommFunc.WriteString(buf, sizeof(ctypes.c_char) * 33, self.Name) buf = CommFunc.WriteBYTE(buf, self.Faction) buf = CommFunc.WriteWORD(buf, self.Score) buf = CommFunc.WriteBYTE(buf, self.WinCnt) buf = CommFunc.WriteBYTE(buf, self.LoseCnt) buf = CommFunc.WriteBYTE(buf, self.ConWinCnt) buf = CommFunc.WriteDWORD(buf, self.WinAwardRecord) buf = CommFunc.WriteWORD(buf, self.Len) buf = CommFunc.WriteString(buf, self.Len, self.BetRecord) return buf def getLength(self): length = 0 length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_char) * 33 length += sizeof(ctypes.c_ubyte) length += sizeof(ctypes.c_ushort) length += sizeof(ctypes.c_ubyte) length += sizeof(ctypes.c_ubyte) length += sizeof(ctypes.c_ubyte) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ushort) length += self.Len return length def outputString(self): output = '''//ÏÉħ֮Õù¼Ç¼±í#tagDBPyXMZZ: PlayerID = %s, Name = %s, Faction = %s, Score = %s, WinCnt = %s, LoseCnt = %s, ConWinCnt = %s, WinAwardRecord = %s, Len = %s, BetRecord = %s, ADOResult = %s, '''%( self.PlayerID, self.Name, self.Faction, self.Score, self.WinCnt, self.LoseCnt, self.ConWinCnt, self.WinAwardRecord, self.Len, self.BetRecord, self.ADOResult, ) return output #CharÊý×éÀàÐÍSet½Ó¿Ú,ʹÓøýӿڶԴËÀàÐÍÊý¾Ý¸³Öµ£¬·ÀÖ¹¸³ÖµµÄÊý¾Ý¹ý³¤±¨´í def SetName(self,Str): if len(Str)<=33: self.Name = Str else: self.Name = Str[:33] #·âħ̳¼Ç¼±í#tagDBPySealDemonRecord class tagDBPySealDemonRecord(Structure): _pack_ = 1 _fields_ = [ ('PlayerID', ctypes.c_ulong), ('LineID', ctypes.c_ubyte), ('Rank', ctypes.c_ushort), ('ADOResult', ctypes.c_ulong), ] def __init__(self): Structure.__init__(self) self.clear() def clear(self): memset(addressof(self), 0, self.getLength()) def readData(self, buf, pos = 0, length = 0): if not pos <= length: return -1 if len(buf) < pos + self.getLength(): return -1 self.clear() self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos) self.LineID, pos = CommFunc.ReadBYTE(buf, pos) self.Rank, pos = CommFunc.ReadWORD(buf, pos) return self.getLength() def getBuffer(self): buf = create_string_buffer(self.getLength()) memmove(addressof(buf), addressof(self), self.getLength()) return string_at(addressof(buf), self.getLength()) def getLength(self): return sizeof(tagDBPySealDemonRecord) def outputString(self): output = '''//·âħ̳¼Ç¼±í#tagDBPySealDemonRecord: PlayerID = %s, LineID = %s, Rank = %s, ADOResult = %s, '''%( self.PlayerID, self.LineID, self.Rank, self.ADOResult, ) return output #Boss¹Ø×¢¼Ç¼±í#tagDBPyBossAttention class tagDBPyBossAttention(Structure): _pack_ = 1 _fields_ = [ ('PlayerID', ctypes.c_ulong), ('DataLen', ctypes.c_ushort), ('RecordData', ctypes.c_char_p), ('ADOResult', ctypes.c_ulong), ] def __init__(self): Structure.__init__(self) self.clear() def clear(self): self.PlayerID = 0 self.DataLen = 0 self.RecordData = '' def readData(self, buf, pos = 0, length = 0): if not pos <= length: return -1 if len(buf) < pos + self.getLength(): return -1 self.clear() self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos) self.DataLen, pos = CommFunc.ReadWORD(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.DataLen) self.RecordData = ctypes.c_char_p(tmp) return self.getLength() def getBuffer(self): buf = '' buf = CommFunc.WriteDWORD(buf, self.PlayerID) buf = CommFunc.WriteWORD(buf, self.DataLen) buf = CommFunc.WriteString(buf, self.DataLen, self.RecordData) return buf def getLength(self): length = 0 length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ushort) length += self.DataLen return length def outputString(self): output = '''//Boss¹Ø×¢¼Ç¼±í#tagDBPyBossAttention: PlayerID = %s, DataLen = %s, RecordData = %s, ADOResult = %s, '''%( self.PlayerID, self.DataLen, self.RecordData, self.ADOResult, ) return output #½»Ò×ËùÎïÆ·×î½ü³É½»µ¥¼Û±í#tagDBPyBourseItemLastPrice class tagDBPyBourseItemLastPrice(Structure): _pack_ = 1 _fields_ = [ ('ItemID', ctypes.c_ulong), ('LastPrice', ctypes.c_ulong), ('ADOResult', ctypes.c_ulong), ] def __init__(self): Structure.__init__(self) self.clear() def clear(self): memset(addressof(self), 0, self.getLength()) def readData(self, buf, pos = 0, length = 0): if not pos <= length: return -1 if len(buf) < pos + self.getLength(): return -1 self.clear() self.ItemID, pos = CommFunc.ReadDWORD(buf, pos) self.LastPrice, pos = CommFunc.ReadDWORD(buf, pos) return self.getLength() def getBuffer(self): buf = create_string_buffer(self.getLength()) memmove(addressof(buf), addressof(self), self.getLength()) return string_at(addressof(buf), self.getLength()) def getLength(self): return sizeof(tagDBPyBourseItemLastPrice) def outputString(self): output = '''//½»Ò×ËùÎïÆ·×î½ü³É½»µ¥¼Û±í#tagDBPyBourseItemLastPrice: ItemID = %s, LastPrice = %s, ADOResult = %s, '''%( self.ItemID, self.LastPrice, self.ADOResult, ) return output #½»Ò×Ëù¼Ç¼±í#tagDBPyBourseRecord class tagDBPyBourseRecord(Structure): _pack_ = 1 _fields_ = [ ('PlayerID', ctypes.c_ulong), ('Type', ctypes.c_ubyte), ('Timestamp', ctypes.c_ulong), ('TradeTax', ctypes.c_ulong), ('TradeMoney', ctypes.c_ulong), ('UserDataLen', ctypes.c_ushort), ('UserData', ctypes.c_char_p), ('ADOResult', ctypes.c_ulong), ] def __init__(self): Structure.__init__(self) self.clear() def clear(self): self.PlayerID = 0 self.Type = 0 self.Timestamp = 0 self.TradeTax = 0 self.TradeMoney = 0 self.UserDataLen = 0 self.UserData = '' def readData(self, buf, pos = 0, length = 0): if not pos <= length: return -1 if len(buf) < pos + self.getLength(): return -1 self.clear() self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos) self.Type, pos = CommFunc.ReadBYTE(buf, pos) self.Timestamp, pos = CommFunc.ReadDWORD(buf, pos) self.TradeTax, pos = CommFunc.ReadDWORD(buf, pos) self.TradeMoney, pos = CommFunc.ReadDWORD(buf, pos) self.UserDataLen, pos = CommFunc.ReadWORD(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.UserDataLen) self.UserData = ctypes.c_char_p(tmp) return self.getLength() def getBuffer(self): buf = '' buf = CommFunc.WriteDWORD(buf, self.PlayerID) buf = CommFunc.WriteBYTE(buf, self.Type) buf = CommFunc.WriteDWORD(buf, self.Timestamp) buf = CommFunc.WriteDWORD(buf, self.TradeTax) buf = CommFunc.WriteDWORD(buf, self.TradeMoney) buf = CommFunc.WriteWORD(buf, self.UserDataLen) buf = CommFunc.WriteString(buf, self.UserDataLen, self.UserData) return buf def getLength(self): length = 0 length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ubyte) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ushort) length += self.UserDataLen return length def outputString(self): output = '''//½»Ò×Ëù¼Ç¼±í#tagDBPyBourseRecord: PlayerID = %s, Type = %s, Timestamp = %s, TradeTax = %s, TradeMoney = %s, UserDataLen = %s, UserData = %s, ADOResult = %s, '''%( self.PlayerID, self.Type, self.Timestamp, self.TradeTax, self.TradeMoney, self.UserDataLen, self.UserData, self.ADOResult, ) return output # ¼Ò×å²Ö¿âÎïÆ·±í#tagDBPyFamilyStoreItem class tagDBPyFamilyStoreItem(Structure): _pack_ = 1 _fields_ = [ ('FamilyID', ctypes.c_ulong), ('ItemIndex', ctypes.c_ubyte), ('ItemID', ctypes.c_ulong), ('UserDataLen', ctypes.c_ulong), ('UserData', ctypes.c_char_p), ('ADOResult', ctypes.c_ulong), ] def __init__(self): Structure.__init__(self) self.clear() def clear(self): self.FamilyID = 0 self.ItemIndex = 0 self.ItemID = 0 self.UserDataLen = 0 self.UserData = '' def readData(self, buf, pos = 0, length = 0): if not pos <= length: return -1 if len(buf) < pos + self.getLength(): return -1 self.clear() self.FamilyID, pos = CommFunc.ReadDWORD(buf, pos) self.ItemIndex, pos = CommFunc.ReadBYTE(buf, pos) self.ItemID, pos = CommFunc.ReadDWORD(buf, pos) self.UserDataLen, pos = CommFunc.ReadDWORD(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.UserDataLen) self.UserData = ctypes.c_char_p(tmp) return self.getLength() def getBuffer(self): buf = '' buf = CommFunc.WriteDWORD(buf, self.FamilyID) buf = CommFunc.WriteBYTE(buf, self.ItemIndex) buf = CommFunc.WriteDWORD(buf, self.ItemID) buf = CommFunc.WriteDWORD(buf, self.UserDataLen) buf = CommFunc.WriteString(buf, self.UserDataLen, self.UserData) return buf def getLength(self): length = 0 length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ubyte) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) length += self.UserDataLen return length def outputString(self): output = '''// ¼Ò×å²Ö¿âÎïÆ·±í#tagDBPyFamilyStoreItem: FamilyID = %s, ItemIndex = %s, ItemID = %s, UserDataLen = %s, UserData = %s, ADOResult = %s, '''%( self.FamilyID, self.ItemIndex, self.ItemID, self.UserDataLen, self.UserData, self.ADOResult, ) return output #Íæ¼ÒºÚÃûµ¥ #tagDBPyPlayerBlack class tagDBPyPlayerBlack(Structure): _pack_ = 1 _fields_ = [ ('PlayerID', ctypes.c_ulong), ('TagID', ctypes.c_ulong), ('ADOResult', ctypes.c_ulong), ] def __init__(self): Structure.__init__(self) self.clear() def clear(self): memset(addressof(self), 0, self.getLength()) def readData(self, buf, pos = 0, length = 0): if not pos <= length: return -1 if len(buf) < pos + self.getLength(): return -1 self.clear() self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos) self.TagID, pos = CommFunc.ReadDWORD(buf, pos) return self.getLength() def getBuffer(self): buf = create_string_buffer(self.getLength()) memmove(addressof(buf), addressof(self), self.getLength()) return string_at(addressof(buf), self.getLength()) def getLength(self): return sizeof(tagDBPyPlayerBlack) def outputString(self): output = '''//Íæ¼ÒºÚÃûµ¥ #tagDBPyPlayerBlack: PlayerID = %s, TagID = %s, ADOResult = %s, '''%( self.PlayerID, self.TagID, self.ADOResult, ) return output #×î½üÁªÏµÈË #tagDBPyPlayerContacts class tagDBPyPlayerContacts(Structure): _pack_ = 1 _fields_ = [ ('PlayerID', ctypes.c_ulong), ('TagID', ctypes.c_ulong), ('Timestamp', ctypes.c_ulong), ('ADOResult', ctypes.c_ulong), ] def __init__(self): Structure.__init__(self) self.clear() def clear(self): memset(addressof(self), 0, self.getLength()) def readData(self, buf, pos = 0, length = 0): if not pos <= length: return -1 if len(buf) < pos + self.getLength(): return -1 self.clear() self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos) self.TagID, pos = CommFunc.ReadDWORD(buf, pos) self.Timestamp, pos = CommFunc.ReadDWORD(buf, pos) return self.getLength() def getBuffer(self): buf = create_string_buffer(self.getLength()) memmove(addressof(buf), addressof(self), self.getLength()) return string_at(addressof(buf), self.getLength()) def getLength(self): return sizeof(tagDBPyPlayerContacts) def outputString(self): output = '''//×î½üÁªÏµÈË #tagDBPyPlayerContacts: PlayerID = %s, TagID = %s, Timestamp = %s, ADOResult = %s, '''%( self.PlayerID, self.TagID, self.Timestamp, self.ADOResult, ) return output #Íæ¼ÒºÃÓѱí#tagDBPyPlayerFriend class tagDBPyPlayerFriend(Structure): _pack_ = 1 _fields_ = [ ('PlayerID', ctypes.c_ulong), ('TagID', ctypes.c_ulong), ('ADOResult', ctypes.c_ulong), ] def __init__(self): Structure.__init__(self) self.clear() def clear(self): memset(addressof(self), 0, self.getLength()) def readData(self, buf, pos = 0, length = 0): if not pos <= length: return -1 if len(buf) < pos + self.getLength(): return -1 self.clear() self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos) self.TagID, pos = CommFunc.ReadDWORD(buf, pos) return self.getLength() def getBuffer(self): buf = create_string_buffer(self.getLength()) memmove(addressof(buf), addressof(self), self.getLength()) return string_at(addressof(buf), self.getLength()) def getLength(self): return sizeof(tagDBPyPlayerFriend) def outputString(self): output = '''//Íæ¼ÒºÃÓѱí#tagDBPyPlayerFriend: PlayerID = %s, TagID = %s, ADOResult = %s, '''%( self.PlayerID, self.TagID, self.ADOResult, ) return output #Íæ¼Ò³ðÈ˱í#tagPlayerEnemy class tagPlayerEnemy(Structure): _pack_ = 1 _fields_ = [ ('PlayerID', ctypes.c_ulong), ('TagID', ctypes.c_ulong), ('Timestamp', ctypes.c_ulong), ('ADOResult', ctypes.c_ulong), ] def __init__(self): Structure.__init__(self) self.clear() def clear(self): memset(addressof(self), 0, self.getLength()) def readData(self, buf, pos = 0, length = 0): if not pos <= length: return -1 if len(buf) < pos + self.getLength(): return -1 self.clear() self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos) self.TagID, pos = CommFunc.ReadDWORD(buf, pos) self.Timestamp, pos = CommFunc.ReadDWORD(buf, pos) return self.getLength() def getBuffer(self): buf = create_string_buffer(self.getLength()) memmove(addressof(buf), addressof(self), self.getLength()) return string_at(addressof(buf), self.getLength()) def getLength(self): return sizeof(tagPlayerEnemy) def outputString(self): output = '''//Íæ¼Ò³ðÈ˱í#tagPlayerEnemy: PlayerID = %s, TagID = %s, Timestamp = %s, ADOResult = %s, '''%( self.PlayerID, self.TagID, self.Timestamp, self.ADOResult, ) return output #¸öÈËÉç½»×ܱí #tagPersonalSocial class tagPersonalSocial(Structure): _pack_ = 1 _fields_ = [ ('PlayerID', ctypes.c_ulong), ('PlayerName', ctypes.c_char * 33), ('Job', ctypes.c_ubyte), ('LV', ctypes.c_ushort), ('RealmLV', ctypes.c_ushort), ('OnlineType', ctypes.c_ubyte), ('RefCount', ctypes.c_ulong), ('ADOResult', ctypes.c_ulong), ] def __init__(self): Structure.__init__(self) self.clear() def clear(self): memset(addressof(self), 0, self.getLength()) def readData(self, buf, pos = 0, length = 0): if not pos <= length: return -1 if len(buf) < pos + self.getLength(): return -1 self.clear() self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos) self.PlayerName, pos = CommFunc.ReadString(buf, pos, 33) self.Job, pos = CommFunc.ReadBYTE(buf, pos) self.LV, pos = CommFunc.ReadWORD(buf, pos) self.RealmLV, pos = CommFunc.ReadWORD(buf, pos) self.OnlineType, pos = CommFunc.ReadBYTE(buf, pos) self.RefCount, pos = CommFunc.ReadDWORD(buf, pos) return self.getLength() def getBuffer(self): buf = create_string_buffer(self.getLength()) memmove(addressof(buf), addressof(self), self.getLength()) return string_at(addressof(buf), self.getLength()) def getLength(self): return sizeof(tagPersonalSocial) def outputString(self): output = '''//¸öÈËÉç½»×ܱí #tagPersonalSocial: PlayerID = %s, PlayerName = %s, Job = %s, LV = %s, RealmLV = %s, OnlineType = %s, RefCount = %s, ADOResult = %s, '''%( self.PlayerID, self.PlayerName, self.Job, self.LV, self.RealmLV, self.OnlineType, self.RefCount, self.ADOResult, ) return output #CharÊý×éÀàÐÍSet½Ó¿Ú,ʹÓøýӿڶԴËÀàÐÍÊý¾Ý¸³Öµ£¬·ÀÖ¹¸³ÖµµÄÊý¾Ý¹ý³¤±¨´í def SetPlayerName(self,Str): if len(Str)<=33: self.PlayerName = Str else: self.PlayerName = Str[:33]