#!/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 #Íæ¼ÒÏêϸÐÅÏ¢#tagDBPlayer class tagDBPlayer(Structure): _pack_ = 1 _fields_ = [ ('PlayerID', ctypes.c_ulong), ('AccID', ctypes.c_char * 65), ('PlayerName', ctypes.c_char * 33), ('AccState', ctypes.c_ubyte), ('IsDeleted', ctypes.c_ubyte), ('GMLevel', ctypes.c_ubyte), ('Sex', ctypes.c_int), ('Hair', ctypes.c_int), ('HairColor', ctypes.c_int), ('Face', ctypes.c_int), ('FacePic', ctypes.c_int), ('Job', ctypes.c_int), ('RoleType', ctypes.c_ulong), ('ReincarnationLv', ctypes.c_ushort), ('LV', ctypes.c_int), ('TotalExp', ctypes.c_ulong), ('FamilyID', ctypes.c_ulong), ('FamilyName', ctypes.c_char * 33), ('Country', ctypes.c_int), ('TeamHornor', ctypes.c_ulong), ('FamilyHornor', ctypes.c_ulong), ('FamilyActiveValue', ctypes.c_ulong), ('LastWeekFamilyActiveValue', ctypes.c_ulong), ('CountryHornor', ctypes.c_ulong), ('CountryLastWeekHornor', ctypes.c_ulong), ('Mate', ctypes.c_ulong), ('Gold', ctypes.c_ulong), ('GoldPaper', ctypes.c_ulong), ('Silver', ctypes.c_ulong), ('SilverPaper', ctypes.c_ulong), ('FightPoint', ctypes.c_ulong), ('HappyPoint', ctypes.c_ulong), ('MapID', ctypes.c_ulong), ('DataMapID', ctypes.c_ulong), ('CopyMapID', ctypes.c_ulong), ('PosX', ctypes.c_ushort), ('PosY', ctypes.c_ushort), ('FromMapID', ctypes.c_ulong), ('FromCopyMapID', ctypes.c_ulong), ('FromPosX', ctypes.c_ushort), ('FromPosY', ctypes.c_ushort), ('State', ctypes.c_int), ('HP', ctypes.c_ulong), ('MP', ctypes.c_ulong), ('XP', ctypes.c_ulong), ('HPRestoreSetting', ctypes.c_ushort), ('MPRestoreSetting', ctypes.c_ushort), ('FreePoint', ctypes.c_ulong), ('FreeSkillPoint', ctypes.c_ulong), ('STR', ctypes.c_int), ('PNE', ctypes.c_int), ('PHY', ctypes.c_int), ('CON', ctypes.c_int), ('TotalSTR', ctypes.c_int), ('TotalPNE', ctypes.c_int), ('TotalPHY', ctypes.c_int), ('TotalCON', ctypes.c_int), ('Setting', ctypes.c_char * 100), ('PKValue', ctypes.c_ushort), ('FightPower', ctypes.c_ulong), ('ActiveValue', ctypes.c_ushort), ('PlayerType', ctypes.c_ubyte), ('BackpackLV', ctypes.c_ubyte), ('WarehouseLV', ctypes.c_ubyte), ('HaveWarehousePsw', ctypes.c_ubyte), ('WarehousePsw', ctypes.c_char * 15), ('WarehouseLocked', ctypes.c_ubyte), ('WarehouseGold', ctypes.c_ulong), ('WarehouseSilver', ctypes.c_ulong), ('TeamID', ctypes.c_ulong), ('UseGoldType', ctypes.c_ubyte), ('UseSilverType', ctypes.c_ubyte), ('AttackMode', ctypes.c_ubyte), ('RebornMapID', ctypes.c_ushort), ('RebornPosX', ctypes.c_ushort), ('RebornPosY', ctypes.c_ushort), ('WeekOnlineTime', ctypes.c_ulong), ('LastWeekOnlineTime', ctypes.c_ulong), ('LogoffTime', ctypes.c_char * 30), ('IsHideMask', ctypes.c_ubyte), ('DayProcessGameEventCount', ctypes.c_ulong), ('LoginIP', ctypes.c_char * 20), ('LoginTime', ctypes.c_char * 30), ('OnlineTime', ctypes.c_ulong), ('FriendFavor', ctypes.c_ulong), ('TeamPrivity', ctypes.c_ulong), ('OfflineMinutes', ctypes.c_ulong), ('Energy', ctypes.c_ulong), ('ReceivedSalary', ctypes.c_ulong), ('EquipShowSwitch', ctypes.c_ulong), ('LuckValue', ctypes.c_ushort), ('ExAttr1', ctypes.c_ulong), ('ExAttr2', ctypes.c_ulong), ('ExAttr3', ctypes.c_ulong), ('ExAttr4', ctypes.c_ulong), ('ExAttr5', ctypes.c_ulong), ('Faction', ctypes.c_int), ('InfamyValue', ctypes.c_ulong), ('OfficialRank', ctypes.c_ubyte), ('IsFindByLabel', ctypes.c_ubyte), ('IsCloseFriendLabel', ctypes.c_ubyte), ('ChangeCoinPointTotal', ctypes.c_ulong), ('VIPLv', ctypes.c_ubyte), ('VIPLvForPhone', ctypes.c_ubyte), ('PhoneVIPStartTime', ctypes.c_double), ('PhoneVIPEndTime', ctypes.c_double), ('VsRoomId', ctypes.c_ulong), ('ExAttr6', ctypes.c_ulong), ('ExAttr7', ctypes.c_ulong), ('ExAttr8', ctypes.c_ulong), ('ExAttr9', ctypes.c_ulong), ('ExAttr10', ctypes.c_ulong), ('ModelMark', ctypes.c_ulong), ('FromDataMapID', ctypes.c_ulong), ('LastOrderId', ctypes.c_char * 40), ('PrizeCoin', ctypes.c_ulong), ('ExAttr11', ctypes.c_ulong), ('ExAttr12', ctypes.c_ulong), ('ExAttr13', ctypes.c_ulong), ('ExAttr14', ctypes.c_ulong), ('CreateRoleTime', ctypes.c_char * 30), ('LVEx', ctypes.c_ushort), ('LV2', ctypes.c_ushort), ('ExpPoint', ctypes.c_ulong), ('OperateInfo', ctypes.c_ulong), ('Operate', ctypes.c_char * 15), ('ServerID', ctypes.c_ulong), ('ExAttr15', ctypes.c_ulong), ('ExAttr16', ctypes.c_ulong), ('ExAttr17', ctypes.c_ulong), ('ExAttr18', ctypes.c_ulong), ('ExAttr19', ctypes.c_ulong), ('ExAttr20', ctypes.c_ulong), ('HPEx', ctypes.c_ulong), ('FightPowerEx', 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.AccID, pos = CommFunc.ReadString(buf, pos, 65) self.PlayerName, pos = CommFunc.ReadString(buf, pos, 33) self.AccState, pos = CommFunc.ReadBYTE(buf, pos) self.IsDeleted, pos = CommFunc.ReadBYTE(buf, pos) self.GMLevel, pos = CommFunc.ReadBYTE(buf, pos) self.Sex, pos = CommFunc.ReadDWORD(buf, pos) self.Hair, pos = CommFunc.ReadDWORD(buf, pos) self.HairColor, pos = CommFunc.ReadDWORD(buf, pos) self.Face, pos = CommFunc.ReadDWORD(buf, pos) self.FacePic, pos = CommFunc.ReadDWORD(buf, pos) self.Job, pos = CommFunc.ReadDWORD(buf, pos) self.RoleType, pos = CommFunc.ReadDWORD(buf, pos) self.ReincarnationLv, pos = CommFunc.ReadWORD(buf, pos) self.LV, pos = CommFunc.ReadDWORD(buf, pos) self.TotalExp, pos = CommFunc.ReadDWORD(buf, pos) self.FamilyID, pos = CommFunc.ReadDWORD(buf, pos) self.FamilyName, pos = CommFunc.ReadString(buf, pos, 33) self.Country, pos = CommFunc.ReadDWORD(buf, pos) self.TeamHornor, pos = CommFunc.ReadDWORD(buf, pos) self.FamilyHornor, pos = CommFunc.ReadDWORD(buf, pos) self.FamilyActiveValue, pos = CommFunc.ReadDWORD(buf, pos) self.LastWeekFamilyActiveValue, pos = CommFunc.ReadDWORD(buf, pos) self.CountryHornor, pos = CommFunc.ReadDWORD(buf, pos) self.CountryLastWeekHornor, pos = CommFunc.ReadDWORD(buf, pos) self.Mate, pos = CommFunc.ReadDWORD(buf, pos) self.Gold, pos = CommFunc.ReadDWORD(buf, pos) self.GoldPaper, pos = CommFunc.ReadDWORD(buf, pos) self.Silver, pos = CommFunc.ReadDWORD(buf, pos) self.SilverPaper, pos = CommFunc.ReadDWORD(buf, pos) self.FightPoint, pos = CommFunc.ReadDWORD(buf, pos) self.HappyPoint, pos = CommFunc.ReadDWORD(buf, pos) self.MapID, pos = CommFunc.ReadDWORD(buf, pos) self.DataMapID, pos = CommFunc.ReadDWORD(buf, pos) self.CopyMapID, pos = CommFunc.ReadDWORD(buf, pos) self.PosX, pos = CommFunc.ReadWORD(buf, pos) self.PosY, pos = CommFunc.ReadWORD(buf, pos) self.FromMapID, pos = CommFunc.ReadDWORD(buf, pos) self.FromCopyMapID, pos = CommFunc.ReadDWORD(buf, pos) self.FromPosX, pos = CommFunc.ReadWORD(buf, pos) self.FromPosY, pos = CommFunc.ReadWORD(buf, pos) self.State, pos = CommFunc.ReadDWORD(buf, pos) self.HP, pos = CommFunc.ReadDWORD(buf, pos) self.MP, pos = CommFunc.ReadDWORD(buf, pos) self.XP, pos = CommFunc.ReadDWORD(buf, pos) self.HPRestoreSetting, pos = CommFunc.ReadWORD(buf, pos) self.MPRestoreSetting, pos = CommFunc.ReadWORD(buf, pos) self.FreePoint, pos = CommFunc.ReadDWORD(buf, pos) self.FreeSkillPoint, pos = CommFunc.ReadDWORD(buf, pos) self.STR, pos = CommFunc.ReadDWORD(buf, pos) self.PNE, pos = CommFunc.ReadDWORD(buf, pos) self.PHY, pos = CommFunc.ReadDWORD(buf, pos) self.CON, pos = CommFunc.ReadDWORD(buf, pos) self.TotalSTR, pos = CommFunc.ReadDWORD(buf, pos) self.TotalPNE, pos = CommFunc.ReadDWORD(buf, pos) self.TotalPHY, pos = CommFunc.ReadDWORD(buf, pos) self.TotalCON, pos = CommFunc.ReadDWORD(buf, pos) self.Setting, pos = CommFunc.ReadString(buf, pos, 100) self.PKValue, pos = CommFunc.ReadWORD(buf, pos) self.FightPower, pos = CommFunc.ReadDWORD(buf, pos) self.ActiveValue, pos = CommFunc.ReadWORD(buf, pos) self.PlayerType, pos = CommFunc.ReadBYTE(buf, pos) self.BackpackLV, pos = CommFunc.ReadBYTE(buf, pos) self.WarehouseLV, pos = CommFunc.ReadBYTE(buf, pos) self.HaveWarehousePsw, pos = CommFunc.ReadBYTE(buf, pos) self.WarehousePsw, pos = CommFunc.ReadString(buf, pos, 15) self.WarehouseLocked, pos = CommFunc.ReadBYTE(buf, pos) self.WarehouseGold, pos = CommFunc.ReadDWORD(buf, pos) self.WarehouseSilver, pos = CommFunc.ReadDWORD(buf, pos) self.TeamID, pos = CommFunc.ReadDWORD(buf, pos) self.UseGoldType, pos = CommFunc.ReadBYTE(buf, pos) self.UseSilverType, pos = CommFunc.ReadBYTE(buf, pos) self.AttackMode, pos = CommFunc.ReadBYTE(buf, pos) self.RebornMapID, pos = CommFunc.ReadWORD(buf, pos) self.RebornPosX, pos = CommFunc.ReadWORD(buf, pos) self.RebornPosY, pos = CommFunc.ReadWORD(buf, pos) self.WeekOnlineTime, pos = CommFunc.ReadDWORD(buf, pos) self.LastWeekOnlineTime, pos = CommFunc.ReadDWORD(buf, pos) self.LogoffTime, pos = CommFunc.ReadString(buf, pos, 30) self.IsHideMask, pos = CommFunc.ReadBYTE(buf, pos) self.DayProcessGameEventCount, pos = CommFunc.ReadDWORD(buf, pos) self.LoginIP, pos = CommFunc.ReadString(buf, pos, 20) self.LoginTime, pos = CommFunc.ReadString(buf, pos, 30) self.OnlineTime, pos = CommFunc.ReadDWORD(buf, pos) self.FriendFavor, pos = CommFunc.ReadDWORD(buf, pos) self.TeamPrivity, pos = CommFunc.ReadDWORD(buf, pos) self.OfflineMinutes, pos = CommFunc.ReadDWORD(buf, pos) self.Energy, pos = CommFunc.ReadDWORD(buf, pos) self.ReceivedSalary, pos = CommFunc.ReadDWORD(buf, pos) self.EquipShowSwitch, pos = CommFunc.ReadDWORD(buf, pos) self.LuckValue, pos = CommFunc.ReadWORD(buf, pos) self.ExAttr1, pos = CommFunc.ReadDWORD(buf, pos) self.ExAttr2, pos = CommFunc.ReadDWORD(buf, pos) self.ExAttr3, pos = CommFunc.ReadDWORD(buf, pos) self.ExAttr4, pos = CommFunc.ReadDWORD(buf, pos) self.ExAttr5, pos = CommFunc.ReadDWORD(buf, pos) self.Faction, pos = CommFunc.ReadDWORD(buf, pos) self.InfamyValue, pos = CommFunc.ReadDWORD(buf, pos) self.OfficialRank, pos = CommFunc.ReadBYTE(buf, pos) self.IsFindByLabel, pos = CommFunc.ReadBYTE(buf, pos) self.IsCloseFriendLabel, pos = CommFunc.ReadBYTE(buf, pos) self.ChangeCoinPointTotal, pos = CommFunc.ReadDWORD(buf, pos) self.VIPLv, pos = CommFunc.ReadBYTE(buf, pos) self.VIPLvForPhone, pos = CommFunc.ReadBYTE(buf, pos) self.PhoneVIPStartTime, pos = CommFunc.ReadDouble(buf, pos) self.PhoneVIPEndTime, pos = CommFunc.ReadDouble(buf, pos) self.VsRoomId, pos = CommFunc.ReadDWORD(buf, pos) self.ExAttr6, pos = CommFunc.ReadDWORD(buf, pos) self.ExAttr7, pos = CommFunc.ReadDWORD(buf, pos) self.ExAttr8, pos = CommFunc.ReadDWORD(buf, pos) self.ExAttr9, pos = CommFunc.ReadDWORD(buf, pos) self.ExAttr10, pos = CommFunc.ReadDWORD(buf, pos) self.ModelMark, pos = CommFunc.ReadDWORD(buf, pos) self.FromDataMapID, pos = CommFunc.ReadDWORD(buf, pos) self.LastOrderId, pos = CommFunc.ReadString(buf, pos, 40) self.PrizeCoin, pos = CommFunc.ReadDWORD(buf, pos) self.ExAttr11, pos = CommFunc.ReadDWORD(buf, pos) self.ExAttr12, pos = CommFunc.ReadDWORD(buf, pos) self.ExAttr13, pos = CommFunc.ReadDWORD(buf, pos) self.ExAttr14, pos = CommFunc.ReadDWORD(buf, pos) self.CreateRoleTime, pos = CommFunc.ReadString(buf, pos, 30) self.LVEx, pos = CommFunc.ReadWORD(buf, pos) self.LV2, pos = CommFunc.ReadWORD(buf, pos) self.ExpPoint, pos = CommFunc.ReadDWORD(buf, pos) self.OperateInfo, pos = CommFunc.ReadDWORD(buf, pos) self.Operate, pos = CommFunc.ReadString(buf, pos, 15) self.ServerID, pos = CommFunc.ReadDWORD(buf, pos) self.ExAttr15, pos = CommFunc.ReadDWORD(buf, pos) self.ExAttr16, pos = CommFunc.ReadDWORD(buf, pos) self.ExAttr17, pos = CommFunc.ReadDWORD(buf, pos) self.ExAttr18, pos = CommFunc.ReadDWORD(buf, pos) self.ExAttr19, pos = CommFunc.ReadDWORD(buf, pos) self.ExAttr20, pos = CommFunc.ReadDWORD(buf, pos) self.HPEx, pos = CommFunc.ReadDWORD(buf, pos) self.FightPowerEx, 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(tagDBPlayer) def outputString(self): output = '''//Íæ¼ÒÏêϸÐÅÏ¢#tagDBPlayer: PlayerID = %s, AccID = %s, PlayerName = %s, AccState = %s, IsDeleted = %s, GMLevel = %s, Sex = %s, Hair = %s, HairColor = %s, Face = %s, FacePic = %s, Job = %s, RoleType = %s, ReincarnationLv = %s, LV = %s, TotalExp = %s, FamilyID = %s, FamilyName = %s, Country = %s, TeamHornor = %s, FamilyHornor = %s, FamilyActiveValue = %s, LastWeekFamilyActiveValue = %s, CountryHornor = %s, CountryLastWeekHornor = %s, Mate = %s, Gold = %s, GoldPaper = %s, Silver = %s, SilverPaper = %s, FightPoint = %s, HappyPoint = %s, MapID = %s, DataMapID = %s, CopyMapID = %s, PosX = %s, PosY = %s, FromMapID = %s, FromCopyMapID = %s, FromPosX = %s, FromPosY = %s, State = %s, HP = %s, MP = %s, XP = %s, HPRestoreSetting = %s, MPRestoreSetting = %s, FreePoint = %s, FreeSkillPoint = %s, STR = %s, PNE = %s, PHY = %s, CON = %s, TotalSTR = %s, TotalPNE = %s, TotalPHY = %s, TotalCON = %s, Setting = %s, PKValue = %s, FightPower = %s, ActiveValue = %s, PlayerType = %s, BackpackLV = %s, WarehouseLV = %s, HaveWarehousePsw = %s, WarehousePsw = %s, WarehouseLocked = %s, WarehouseGold = %s, WarehouseSilver = %s, TeamID = %s, UseGoldType = %s, UseSilverType = %s, AttackMode = %s, RebornMapID = %s, RebornPosX = %s, RebornPosY = %s, WeekOnlineTime = %s, LastWeekOnlineTime = %s, LogoffTime = %s, IsHideMask = %s, DayProcessGameEventCount = %s, LoginIP = %s, LoginTime = %s, OnlineTime = %s, FriendFavor = %s, TeamPrivity = %s, OfflineMinutes = %s, Energy = %s, ReceivedSalary = %s, EquipShowSwitch = %s, LuckValue = %s, ExAttr1 = %s, ExAttr2 = %s, ExAttr3 = %s, ExAttr4 = %s, ExAttr5 = %s, Faction = %s, InfamyValue = %s, OfficialRank = %s, IsFindByLabel = %s, IsCloseFriendLabel = %s, ChangeCoinPointTotal = %s, VIPLv = %s, VIPLvForPhone = %s, PhoneVIPStartTime = %s, PhoneVIPEndTime = %s, VsRoomId = %s, ExAttr6 = %s, ExAttr7 = %s, ExAttr8 = %s, ExAttr9 = %s, ExAttr10 = %s, ModelMark = %s, FromDataMapID = %s, LastOrderId = %s, PrizeCoin = %s, ExAttr11 = %s, ExAttr12 = %s, ExAttr13 = %s, ExAttr14 = %s, CreateRoleTime = %s, LVEx = %s, LV2 = %s, ExpPoint = %s, OperateInfo = %s, Operate = %s, ServerID = %s, ExAttr15 = %s, ExAttr16 = %s, ExAttr17 = %s, ExAttr18 = %s, ExAttr19 = %s, ExAttr20 = %s, HPEx = %s, FightPowerEx = %s, ADOResult = %s, '''%( self.PlayerID, self.AccID, self.PlayerName, self.AccState, self.IsDeleted, self.GMLevel, self.Sex, self.Hair, self.HairColor, self.Face, self.FacePic, self.Job, self.RoleType, self.ReincarnationLv, self.LV, self.TotalExp, self.FamilyID, self.FamilyName, self.Country, 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.MapID, self.DataMapID, self.CopyMapID, self.PosX, self.PosY, self.FromMapID, self.FromCopyMapID, self.FromPosX, self.FromPosY, self.State, self.HP, self.MP, self.XP, self.HPRestoreSetting, self.MPRestoreSetting, self.FreePoint, self.FreeSkillPoint, self.STR, self.PNE, self.PHY, self.CON, self.TotalSTR, self.TotalPNE, self.TotalPHY, self.TotalCON, self.Setting, self.PKValue, self.FightPower, self.ActiveValue, self.PlayerType, self.BackpackLV, self.WarehouseLV, self.HaveWarehousePsw, self.WarehousePsw, self.WarehouseLocked, self.WarehouseGold, self.WarehouseSilver, self.TeamID, self.UseGoldType, self.UseSilverType, self.AttackMode, self.RebornMapID, self.RebornPosX, self.RebornPosY, self.WeekOnlineTime, self.LastWeekOnlineTime, self.LogoffTime, self.IsHideMask, self.DayProcessGameEventCount, self.LoginIP, self.LoginTime, self.OnlineTime, self.FriendFavor, self.TeamPrivity, self.OfflineMinutes, self.Energy, self.ReceivedSalary, self.EquipShowSwitch, self.LuckValue, self.ExAttr1, self.ExAttr2, self.ExAttr3, self.ExAttr4, self.ExAttr5, self.Faction, self.InfamyValue, self.OfficialRank, self.IsFindByLabel, self.IsCloseFriendLabel, self.ChangeCoinPointTotal, self.VIPLv, self.VIPLvForPhone, self.PhoneVIPStartTime, self.PhoneVIPEndTime, self.VsRoomId, self.ExAttr6, self.ExAttr7, self.ExAttr8, self.ExAttr9, self.ExAttr10, self.ModelMark, self.FromDataMapID, self.LastOrderId, self.PrizeCoin, self.ExAttr11, self.ExAttr12, self.ExAttr13, self.ExAttr14, self.CreateRoleTime, self.LVEx, self.LV2, self.ExpPoint, self.OperateInfo, self.Operate, self.ServerID, self.ExAttr15, self.ExAttr16, self.ExAttr17, self.ExAttr18, self.ExAttr19, self.ExAttr20, self.HPEx, self.FightPowerEx, self.ADOResult, ) return output #CharÊý×éÀàÐÍSet½Ó¿Ú,ʹÓøýӿڶԴËÀàÐÍÊý¾Ý¸³Öµ£¬·ÀÖ¹¸³ÖµµÄÊý¾Ý¹ý³¤±¨´í def SetAccID(self,Str): if len(Str)<=65: self.AccID = Str else: self.AccID = Str[:65] def SetPlayerName(self,Str): if len(Str)<=33: self.PlayerName = Str else: self.PlayerName = Str[:33] def SetFamilyName(self,Str): if len(Str)<=33: self.FamilyName = Str else: self.FamilyName = Str[:33] def SetSetting(self,Str): if len(Str)<=100: self.Setting = Str else: self.Setting = Str[:100] def SetWarehousePsw(self,Str): if len(Str)<=15: self.WarehousePsw = Str else: self.WarehousePsw = Str[:15] def SetLogoffTime(self,Str): if len(Str)<=30: self.LogoffTime = Str else: self.LogoffTime = Str[:30] def SetLoginIP(self,Str): if len(Str)<=20: self.LoginIP = Str else: self.LoginIP = Str[:20] def SetLoginTime(self,Str): if len(Str)<=30: self.LoginTime = Str else: self.LoginTime = Str[:30] def SetLastOrderId(self,Str): if len(Str)<=40: self.LastOrderId = Str else: self.LastOrderId = Str[:40] def SetCreateRoleTime(self,Str): if len(Str)<=30: self.CreateRoleTime = Str else: self.CreateRoleTime = Str[:30] def SetOperate(self,Str): if len(Str)<=15: self.Operate = Str else: self.Operate = Str[:15] # ¿ç·þ²¹³¥¸öÈËÁìÈ¡±í #tagDBCrossPersonalCompensation class tagDBCrossPersonalCompensation(Structure): _pack_ = 1 _fields_ = [ ('PlayerID', ctypes.c_ulong), ('GUID', ctypes.c_char * 40), ('LimitTime', ctypes.c_char * 30), ('TextLen', ctypes.c_ulong), ('Text', ctypes.c_char_p), ('Gold', ctypes.c_ulong), ('GoldPaper', ctypes.c_ulong), ('Silver', ctypes.c_ulong), ('ItemLen', ctypes.c_ushort), ('ItemInfo', ctypes.c_char_p), ('DetailLen', ctypes.c_ushort), ('Detail', ctypes.c_char_p), ('MoneySource', ctypes.c_ushort), ('ADOResult', ctypes.c_ulong), ] def __init__(self): Structure.__init__(self) self.clear() def clear(self): self.PlayerID = 0 self.GUID = '' self.LimitTime = '' self.TextLen = 0 self.Text = '' self.Gold = 0 self.GoldPaper = 0 self.Silver = 0 self.ItemLen = 0 self.ItemInfo = '' self.DetailLen = 0 self.Detail = '' self.MoneySource = 0 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.GUID, pos = CommFunc.ReadString(buf, pos, 40) self.LimitTime, pos = CommFunc.ReadString(buf, pos, 30) self.TextLen, pos = CommFunc.ReadDWORD(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.TextLen) self.Text = ctypes.c_char_p(tmp) self.Gold, pos = CommFunc.ReadDWORD(buf, pos) self.GoldPaper, pos = CommFunc.ReadDWORD(buf, pos) self.Silver, pos = CommFunc.ReadDWORD(buf, pos) self.ItemLen, pos = CommFunc.ReadWORD(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.ItemLen) self.ItemInfo = ctypes.c_char_p(tmp) self.DetailLen, pos = CommFunc.ReadWORD(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.DetailLen) self.Detail = ctypes.c_char_p(tmp) self.MoneySource, pos = CommFunc.ReadWORD(buf, pos) return self.getLength() def getBuffer(self): buf = '' buf = CommFunc.WriteDWORD(buf, self.PlayerID) buf = CommFunc.WriteString(buf, sizeof(ctypes.c_char) * 40, self.GUID) buf = CommFunc.WriteString(buf, sizeof(ctypes.c_char) * 30, self.LimitTime) buf = CommFunc.WriteDWORD(buf, self.TextLen) buf = CommFunc.WriteString(buf, self.TextLen, self.Text) buf = CommFunc.WriteDWORD(buf, self.Gold) buf = CommFunc.WriteDWORD(buf, self.GoldPaper) buf = CommFunc.WriteDWORD(buf, self.Silver) buf = CommFunc.WriteWORD(buf, self.ItemLen) buf = CommFunc.WriteString(buf, self.ItemLen, self.ItemInfo) buf = CommFunc.WriteWORD(buf, self.DetailLen) buf = CommFunc.WriteString(buf, self.DetailLen, self.Detail) buf = CommFunc.WriteWORD(buf, self.MoneySource) return buf def getLength(self): length = 0 length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_char) * 40 length += sizeof(ctypes.c_char) * 30 length += sizeof(ctypes.c_ulong) length += self.TextLen length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ushort) length += self.ItemLen length += sizeof(ctypes.c_ushort) length += self.DetailLen length += sizeof(ctypes.c_ushort) return length def outputString(self): output = '''// ¿ç·þ²¹³¥¸öÈËÁìÈ¡±í #tagDBCrossPersonalCompensation: PlayerID = %s, GUID = %s, LimitTime = %s, TextLen = %s, Text = %s, Gold = %s, GoldPaper = %s, Silver = %s, ItemLen = %s, ItemInfo = %s, DetailLen = %s, Detail = %s, MoneySource = %s, ADOResult = %s, '''%( self.PlayerID, self.GUID, self.LimitTime, self.TextLen, self.Text, self.Gold, self.GoldPaper, self.Silver, self.ItemLen, self.ItemInfo, self.DetailLen, self.Detail, self.MoneySource, self.ADOResult, ) return output #CharÊý×éÀàÐÍSet½Ó¿Ú,ʹÓøýӿڶԴËÀàÐÍÊý¾Ý¸³Öµ£¬·ÀÖ¹¸³ÖµµÄÊý¾Ý¹ý³¤±¨´í def SetGUID(self,Str): if len(Str)<=40: self.GUID = Str else: self.GUID = Str[:40] def SetLimitTime(self,Str): if len(Str)<=30: self.LimitTime = Str else: self.LimitTime = Str[:30] #------------------------------------------------------ # ¿ç·þÅÅÐаñ #tagDBCrossBillboard class tagDBCrossBillboard(Structure): _pack_ = 1 _fields_ = [ ('GroupValue1', ctypes.c_ubyte), ('GroupValue2', ctypes.c_ubyte), ('BillboardType', ctypes.c_ubyte), ('ID', ctypes.c_ulong), ('ID2', ctypes.c_ulong), ('Name1', ctypes.c_char * 33), ('Name2', ctypes.c_char * 65), ('Type2', ctypes.c_ubyte), ('Value1', ctypes.c_ulong), ('Value2', ctypes.c_ulong), ('Value3', ctypes.c_ulong), ('Value4', ctypes.c_ulong), ('Value5', ctypes.c_ulong), ('Value6', ctypes.c_ulong), ('Value7', ctypes.c_ulong), ('Value8', ctypes.c_ulong), ('CmpValue', ctypes.c_ulong), ('CmpValue2', ctypes.c_ulong), ('CmpValue3', ctypes.c_ulong), ('DataLen', ctypes.c_ushort), ('UserData', ctypes.c_char_p), ('ADOResult', ctypes.c_ulong), ] def __init__(self): Structure.__init__(self) self.clear() def clear(self): self.GroupValue1 = 0 self.GroupValue2 = 0 self.BillboardType = 0 self.ID = 0 self.ID2 = 0 self.Name1 = '' self.Name2 = '' self.Type2 = 0 self.Value1 = 0 self.Value2 = 0 self.Value3 = 0 self.Value4 = 0 self.Value5 = 0 self.Value6 = 0 self.Value7 = 0 self.Value8 = 0 self.CmpValue = 0 self.CmpValue2 = 0 self.CmpValue3 = 0 self.DataLen = 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.GroupValue1, pos = CommFunc.ReadBYTE(buf, pos) self.GroupValue2, pos = CommFunc.ReadBYTE(buf, pos) self.BillboardType, pos = CommFunc.ReadBYTE(buf, pos) self.ID, pos = CommFunc.ReadDWORD(buf, pos) self.ID2, pos = CommFunc.ReadDWORD(buf, pos) self.Name1, pos = CommFunc.ReadString(buf, pos, 33) self.Name2, pos = CommFunc.ReadString(buf, pos, 65) self.Type2, pos = CommFunc.ReadBYTE(buf, pos) self.Value1, pos = CommFunc.ReadDWORD(buf, pos) self.Value2, pos = CommFunc.ReadDWORD(buf, pos) self.Value3, pos = CommFunc.ReadDWORD(buf, pos) self.Value4, pos = CommFunc.ReadDWORD(buf, pos) self.Value5, pos = CommFunc.ReadDWORD(buf, pos) self.Value6, pos = CommFunc.ReadDWORD(buf, pos) self.Value7, pos = CommFunc.ReadDWORD(buf, pos) self.Value8, pos = CommFunc.ReadDWORD(buf, pos) self.CmpValue, pos = CommFunc.ReadDWORD(buf, pos) self.CmpValue2, pos = CommFunc.ReadDWORD(buf, pos) self.CmpValue3, pos = CommFunc.ReadDWORD(buf, pos) self.DataLen, pos = CommFunc.ReadWORD(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.DataLen) self.UserData = ctypes.c_char_p(tmp) return self.getLength() def getBuffer(self): buf = '' buf = CommFunc.WriteBYTE(buf, self.GroupValue1) buf = CommFunc.WriteBYTE(buf, self.GroupValue2) buf = CommFunc.WriteBYTE(buf, self.BillboardType) buf = CommFunc.WriteDWORD(buf, self.ID) buf = CommFunc.WriteDWORD(buf, self.ID2) buf = CommFunc.WriteString(buf, sizeof(ctypes.c_char) * 33, self.Name1) buf = CommFunc.WriteString(buf, sizeof(ctypes.c_char) * 65, self.Name2) buf = CommFunc.WriteBYTE(buf, self.Type2) buf = CommFunc.WriteDWORD(buf, self.Value1) buf = CommFunc.WriteDWORD(buf, self.Value2) buf = CommFunc.WriteDWORD(buf, self.Value3) buf = CommFunc.WriteDWORD(buf, self.Value4) buf = CommFunc.WriteDWORD(buf, self.Value5) buf = CommFunc.WriteDWORD(buf, self.Value6) buf = CommFunc.WriteDWORD(buf, self.Value7) buf = CommFunc.WriteDWORD(buf, self.Value8) buf = CommFunc.WriteDWORD(buf, self.CmpValue) buf = CommFunc.WriteDWORD(buf, self.CmpValue2) buf = CommFunc.WriteDWORD(buf, self.CmpValue3) buf = CommFunc.WriteWORD(buf, self.DataLen) buf = CommFunc.WriteString(buf, self.DataLen, self.UserData) return buf def getLength(self): length = 0 length += sizeof(ctypes.c_ubyte) length += sizeof(ctypes.c_ubyte) length += sizeof(ctypes.c_ubyte) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_char) * 33 length += sizeof(ctypes.c_char) * 65 length += sizeof(ctypes.c_ubyte) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ushort) length += self.DataLen return length def outputString(self): output = '''// ¿ç·þÅÅÐаñ #tagDBCrossBillboard: GroupValue1 = %s, GroupValue2 = %s, BillboardType = %s, ID = %s, ID2 = %s, Name1 = %s, Name2 = %s, Type2 = %s, Value1 = %s, Value2 = %s, Value3 = %s, Value4 = %s, Value5 = %s, Value6 = %s, Value7 = %s, Value8 = %s, CmpValue = %s, CmpValue2 = %s, CmpValue3 = %s, DataLen = %s, UserData = %s, ADOResult = %s, '''%( self.GroupValue1, self.GroupValue2, self.BillboardType, self.ID, self.ID2, self.Name1, self.Name2, self.Type2, self.Value1, self.Value2, self.Value3, self.Value4, self.Value5, self.Value6, self.Value7, self.Value8, self.CmpValue, self.CmpValue2, self.CmpValue3, self.DataLen, self.UserData, self.ADOResult, ) return output #CharÊý×éÀàÐÍSet½Ó¿Ú,ʹÓøýӿڶԴËÀàÐÍÊý¾Ý¸³Öµ£¬·ÀÖ¹¸³ÖµµÄÊý¾Ý¹ý³¤±¨´í def SetName1(self,Str): if len(Str)<=33: self.Name1 = Str else: self.Name1 = Str[:33] def SetName2(self,Str): if len(Str)<=65: self.Name2 = Str else: self.Name2 = Str[:65] # ЭÖú¸Ðл±í #tagDBAssistThanks class tagDBAssistThanks(Structure): _pack_ = 1 _fields_ = [ ('GUID', ctypes.c_char * 40), ('ItemID', ctypes.c_ulong), ('FamilyID', ctypes.c_ulong), ('PlayerID', ctypes.c_ulong), ('PlayerName', ctypes.c_char * 33), ('Job', ctypes.c_ubyte), ('LV', ctypes.c_ushort), ('RealmLV', ctypes.c_ubyte), ('MapID', ctypes.c_ulong), ('LineID', ctypes.c_ulong), ('NPCID', ctypes.c_ulong), ('ExDataLen', ctypes.c_ushort), ('ExData', ctypes.c_char_p), ('DailyDateStr', ctypes.c_char * 10), ('TimeStr', ctypes.c_char * 19), ('ThanksState', ctypes.c_ubyte), ('AssistPlayerLen', ctypes.c_ushort), ('AssistPlayer', ctypes.c_char_p), ('ADOResult', ctypes.c_ulong), ] def __init__(self): Structure.__init__(self) self.clear() def clear(self): self.GUID = '' self.ItemID = 0 self.FamilyID = 0 self.PlayerID = 0 self.PlayerName = '' self.Job = 0 self.LV = 0 self.RealmLV = 0 self.MapID = 0 self.LineID = 0 self.NPCID = 0 self.ExDataLen = 0 self.ExData = '' self.DailyDateStr = '' self.TimeStr = '' self.ThanksState = 0 self.AssistPlayerLen = 0 self.AssistPlayer = '' 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.GUID, pos = CommFunc.ReadString(buf, pos, 40) self.ItemID, pos = CommFunc.ReadDWORD(buf, pos) self.FamilyID, pos = CommFunc.ReadDWORD(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.LV, pos = CommFunc.ReadWORD(buf, pos) self.RealmLV, pos = CommFunc.ReadBYTE(buf, pos) self.MapID, pos = CommFunc.ReadDWORD(buf, pos) self.LineID, pos = CommFunc.ReadDWORD(buf, pos) self.NPCID, pos = CommFunc.ReadDWORD(buf, pos) self.ExDataLen, pos = CommFunc.ReadWORD(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.ExDataLen) self.ExData = ctypes.c_char_p(tmp) self.DailyDateStr, pos = CommFunc.ReadString(buf, pos, 10) self.TimeStr, pos = CommFunc.ReadString(buf, pos, 19) self.ThanksState, pos = CommFunc.ReadBYTE(buf, pos) self.AssistPlayerLen, pos = CommFunc.ReadWORD(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.AssistPlayerLen) self.AssistPlayer = ctypes.c_char_p(tmp) return self.getLength() def getBuffer(self): buf = '' buf = CommFunc.WriteString(buf, sizeof(ctypes.c_char) * 40, self.GUID) buf = CommFunc.WriteDWORD(buf, self.ItemID) buf = CommFunc.WriteDWORD(buf, self.FamilyID) buf = CommFunc.WriteDWORD(buf, self.PlayerID) buf = CommFunc.WriteString(buf, sizeof(ctypes.c_char) * 33, self.PlayerName) buf = CommFunc.WriteBYTE(buf, self.Job) buf = CommFunc.WriteWORD(buf, self.LV) buf = CommFunc.WriteBYTE(buf, self.RealmLV) buf = CommFunc.WriteDWORD(buf, self.MapID) buf = CommFunc.WriteDWORD(buf, self.LineID) buf = CommFunc.WriteDWORD(buf, self.NPCID) buf = CommFunc.WriteWORD(buf, self.ExDataLen) buf = CommFunc.WriteString(buf, self.ExDataLen, self.ExData) buf = CommFunc.WriteString(buf, sizeof(ctypes.c_char) * 10, self.DailyDateStr) buf = CommFunc.WriteString(buf, sizeof(ctypes.c_char) * 19, self.TimeStr) buf = CommFunc.WriteBYTE(buf, self.ThanksState) buf = CommFunc.WriteWORD(buf, self.AssistPlayerLen) buf = CommFunc.WriteString(buf, self.AssistPlayerLen, self.AssistPlayer) 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_char) * 33 length += sizeof(ctypes.c_ubyte) length += sizeof(ctypes.c_ushort) 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.ExDataLen length += sizeof(ctypes.c_char) * 10 length += sizeof(ctypes.c_char) * 19 length += sizeof(ctypes.c_ubyte) length += sizeof(ctypes.c_ushort) length += self.AssistPlayerLen return length def outputString(self): output = '''// ЭÖú¸Ðл±í #tagDBAssistThanks: GUID = %s, ItemID = %s, FamilyID = %s, PlayerID = %s, PlayerName = %s, Job = %s, LV = %s, RealmLV = %s, MapID = %s, LineID = %s, NPCID = %s, ExDataLen = %s, ExData = %s, DailyDateStr = %s, TimeStr = %s, ThanksState = %s, AssistPlayerLen = %s, AssistPlayer = %s, ADOResult = %s, '''%( self.GUID, self.ItemID, self.FamilyID, self.PlayerID, self.PlayerName, self.Job, self.LV, self.RealmLV, self.MapID, self.LineID, self.NPCID, self.ExDataLen, self.ExData, self.DailyDateStr, self.TimeStr, self.ThanksState, self.AssistPlayerLen, self.AssistPlayer, self.ADOResult, ) return output #CharÊý×éÀàÐÍSet½Ó¿Ú,ʹÓøýӿڶԴËÀàÐÍÊý¾Ý¸³Öµ£¬·ÀÖ¹¸³ÖµµÄÊý¾Ý¹ý³¤±¨´í def SetGUID(self,Str): if len(Str)<=40: self.GUID = Str else: self.GUID = Str[:40] def SetPlayerName(self,Str): if len(Str)<=33: self.PlayerName = Str else: self.PlayerName = Str[:33] def SetDailyDateStr(self,Str): if len(Str)<=10: self.DailyDateStr = Str else: self.DailyDateStr = Str[:10] def SetTimeStr(self,Str): if len(Str)<=19: self.TimeStr = Str else: self.TimeStr = Str[:19] # ЭÖú±í #tagDBAssist class tagDBAssist(Structure): _pack_ = 1 _fields_ = [ ('GUID', ctypes.c_char * 40), ('FamilyID', ctypes.c_ulong), ('PlayerID', ctypes.c_ulong), ('PlayerName', ctypes.c_char * 33), ('Job', ctypes.c_ubyte), ('LV', ctypes.c_ushort), ('RealmLV', ctypes.c_ubyte), ('MapID', ctypes.c_ulong), ('LineID', ctypes.c_ulong), ('NPCID', ctypes.c_ulong), ('ExDataLen', ctypes.c_ushort), ('ExData', ctypes.c_char_p), ('ADOResult', ctypes.c_ulong), ] def __init__(self): Structure.__init__(self) self.clear() def clear(self): self.GUID = '' self.FamilyID = 0 self.PlayerID = 0 self.PlayerName = '' self.Job = 0 self.LV = 0 self.RealmLV = 0 self.MapID = 0 self.LineID = 0 self.NPCID = 0 self.ExDataLen = 0 self.ExData = '' 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.GUID, pos = CommFunc.ReadString(buf, pos, 40) self.FamilyID, pos = CommFunc.ReadDWORD(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.LV, pos = CommFunc.ReadWORD(buf, pos) self.RealmLV, pos = CommFunc.ReadBYTE(buf, pos) self.MapID, pos = CommFunc.ReadDWORD(buf, pos) self.LineID, pos = CommFunc.ReadDWORD(buf, pos) self.NPCID, pos = CommFunc.ReadDWORD(buf, pos) self.ExDataLen, pos = CommFunc.ReadWORD(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.ExDataLen) self.ExData = ctypes.c_char_p(tmp) return self.getLength() def getBuffer(self): buf = '' buf = CommFunc.WriteString(buf, sizeof(ctypes.c_char) * 40, self.GUID) buf = CommFunc.WriteDWORD(buf, self.FamilyID) buf = CommFunc.WriteDWORD(buf, self.PlayerID) buf = CommFunc.WriteString(buf, sizeof(ctypes.c_char) * 33, self.PlayerName) buf = CommFunc.WriteBYTE(buf, self.Job) buf = CommFunc.WriteWORD(buf, self.LV) buf = CommFunc.WriteBYTE(buf, self.RealmLV) buf = CommFunc.WriteDWORD(buf, self.MapID) buf = CommFunc.WriteDWORD(buf, self.LineID) buf = CommFunc.WriteDWORD(buf, self.NPCID) buf = CommFunc.WriteWORD(buf, self.ExDataLen) buf = CommFunc.WriteString(buf, self.ExDataLen, self.ExData) 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_char) * 33 length += sizeof(ctypes.c_ubyte) length += sizeof(ctypes.c_ushort) 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.ExDataLen return length def outputString(self): output = '''// ЭÖú±í #tagDBAssist: GUID = %s, FamilyID = %s, PlayerID = %s, PlayerName = %s, Job = %s, LV = %s, RealmLV = %s, MapID = %s, LineID = %s, NPCID = %s, ExDataLen = %s, ExData = %s, ADOResult = %s, '''%( self.GUID, self.FamilyID, self.PlayerID, self.PlayerName, self.Job, self.LV, self.RealmLV, self.MapID, self.LineID, self.NPCID, self.ExDataLen, self.ExData, self.ADOResult, ) return output #CharÊý×éÀàÐÍSet½Ó¿Ú,ʹÓøýӿڶԴËÀàÐÍÊý¾Ý¸³Öµ£¬·ÀÖ¹¸³ÖµµÄÊý¾Ý¹ý³¤±¨´í def SetGUID(self,Str): if len(Str)<=40: self.GUID = Str else: self.GUID = Str[:40] def SetPlayerName(self,Str): if len(Str)<=33: self.PlayerName = Str else: self.PlayerName = Str[:33] # Íæ¼ÒÊý¾Ý²é¿´»º´æ±íPy #tagPlayerViewCachePy class tagPlayerViewCachePy(Structure): _pack_ = 1 _fields_ = [ ('PlayerID', ctypes.c_ulong), ('GeTuiIDSize', ctypes.c_ubyte), ('GeTuiID', ctypes.c_char_p), ('LV', ctypes.c_ushort), ('OffTime', ctypes.c_ulong), ('PropDataSize', ctypes.c_ushort), ('PropData', ctypes.c_char_p), ('PlusDataSize', ctypes.c_ushort), ('PlusData', ctypes.c_char_p), ('ItemDataSize1', ctypes.c_ushort), ('ItemData1', ctypes.c_char_p), ('ItemDataSize2', ctypes.c_ushort), ('ItemData2', ctypes.c_char_p), ('ItemDataSize3', ctypes.c_ushort), ('ItemData3', ctypes.c_char_p), ('ItemDataSize4', ctypes.c_ushort), ('ItemData4', ctypes.c_char_p), ('ItemDataSize5', ctypes.c_ushort), ('ItemData5', ctypes.c_char_p), ('ItemDataSize6', ctypes.c_ushort), ('ItemData6', ctypes.c_char_p), ('ItemDataSize7', ctypes.c_ushort), ('ItemData7', ctypes.c_char_p), ('ItemDataSize8', ctypes.c_ushort), ('ItemData8', ctypes.c_char_p), ('ItemDataSize9', ctypes.c_ushort), ('ItemData9', ctypes.c_char_p), ('ItemDataSize10', ctypes.c_ushort), ('ItemData10', ctypes.c_char_p), ('ItemDataSize11', ctypes.c_ushort), ('ItemData11', ctypes.c_char_p), ('ItemDataSize12', ctypes.c_ushort), ('ItemData12', ctypes.c_char_p), ('ItemDataSize13', ctypes.c_ushort), ('ItemData13', ctypes.c_char_p), ('ItemDataSize14', ctypes.c_ushort), ('ItemData14', ctypes.c_char_p), ('ItemDataSize15', ctypes.c_ushort), ('ItemData15', ctypes.c_char_p), ('ItemDataSize16', ctypes.c_ushort), ('ItemData16', ctypes.c_char_p), ('ItemDataSize17', ctypes.c_ushort), ('ItemData17', ctypes.c_char_p), ('ItemDataSize18', ctypes.c_ushort), ('ItemData18', ctypes.c_char_p), ('ItemDataSize19', ctypes.c_ushort), ('ItemData19', ctypes.c_char_p), ('ItemDataSize20', ctypes.c_ushort), ('ItemData20', ctypes.c_char_p), ('ADOResult', ctypes.c_ulong), ] def __init__(self): Structure.__init__(self) self.clear() def clear(self): self.PlayerID = 0 self.GeTuiIDSize = 0 self.GeTuiID = '' self.LV = 0 self.OffTime = 0 self.PropDataSize = 0 self.PropData = '' self.PlusDataSize = 0 self.PlusData = '' self.ItemDataSize1 = 0 self.ItemData1 = '' self.ItemDataSize2 = 0 self.ItemData2 = '' self.ItemDataSize3 = 0 self.ItemData3 = '' self.ItemDataSize4 = 0 self.ItemData4 = '' self.ItemDataSize5 = 0 self.ItemData5 = '' self.ItemDataSize6 = 0 self.ItemData6 = '' self.ItemDataSize7 = 0 self.ItemData7 = '' self.ItemDataSize8 = 0 self.ItemData8 = '' self.ItemDataSize9 = 0 self.ItemData9 = '' self.ItemDataSize10 = 0 self.ItemData10 = '' self.ItemDataSize11 = 0 self.ItemData11 = '' self.ItemDataSize12 = 0 self.ItemData12 = '' self.ItemDataSize13 = 0 self.ItemData13 = '' self.ItemDataSize14 = 0 self.ItemData14 = '' self.ItemDataSize15 = 0 self.ItemData15 = '' self.ItemDataSize16 = 0 self.ItemData16 = '' self.ItemDataSize17 = 0 self.ItemData17 = '' self.ItemDataSize18 = 0 self.ItemData18 = '' self.ItemDataSize19 = 0 self.ItemData19 = '' self.ItemDataSize20 = 0 self.ItemData20 = '' 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.GeTuiIDSize, pos = CommFunc.ReadBYTE(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.GeTuiIDSize) self.GeTuiID = ctypes.c_char_p(tmp) self.LV, pos = CommFunc.ReadWORD(buf, pos) self.OffTime, pos = CommFunc.ReadDWORD(buf, pos) self.PropDataSize, pos = CommFunc.ReadWORD(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.PropDataSize) self.PropData = ctypes.c_char_p(tmp) self.PlusDataSize, pos = CommFunc.ReadWORD(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.PlusDataSize) self.PlusData = ctypes.c_char_p(tmp) self.ItemDataSize1, pos = CommFunc.ReadWORD(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.ItemDataSize1) self.ItemData1 = ctypes.c_char_p(tmp) self.ItemDataSize2, pos = CommFunc.ReadWORD(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.ItemDataSize2) self.ItemData2 = ctypes.c_char_p(tmp) self.ItemDataSize3, pos = CommFunc.ReadWORD(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.ItemDataSize3) self.ItemData3 = ctypes.c_char_p(tmp) self.ItemDataSize4, pos = CommFunc.ReadWORD(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.ItemDataSize4) self.ItemData4 = ctypes.c_char_p(tmp) self.ItemDataSize5, pos = CommFunc.ReadWORD(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.ItemDataSize5) self.ItemData5 = ctypes.c_char_p(tmp) self.ItemDataSize6, pos = CommFunc.ReadWORD(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.ItemDataSize6) self.ItemData6 = ctypes.c_char_p(tmp) self.ItemDataSize7, pos = CommFunc.ReadWORD(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.ItemDataSize7) self.ItemData7 = ctypes.c_char_p(tmp) self.ItemDataSize8, pos = CommFunc.ReadWORD(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.ItemDataSize8) self.ItemData8 = ctypes.c_char_p(tmp) self.ItemDataSize9, pos = CommFunc.ReadWORD(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.ItemDataSize9) self.ItemData9 = ctypes.c_char_p(tmp) self.ItemDataSize10, pos = CommFunc.ReadWORD(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.ItemDataSize10) self.ItemData10 = ctypes.c_char_p(tmp) self.ItemDataSize11, pos = CommFunc.ReadWORD(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.ItemDataSize11) self.ItemData11 = ctypes.c_char_p(tmp) self.ItemDataSize12, pos = CommFunc.ReadWORD(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.ItemDataSize12) self.ItemData12 = ctypes.c_char_p(tmp) self.ItemDataSize13, pos = CommFunc.ReadWORD(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.ItemDataSize13) self.ItemData13 = ctypes.c_char_p(tmp) self.ItemDataSize14, pos = CommFunc.ReadWORD(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.ItemDataSize14) self.ItemData14 = ctypes.c_char_p(tmp) self.ItemDataSize15, pos = CommFunc.ReadWORD(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.ItemDataSize15) self.ItemData15 = ctypes.c_char_p(tmp) self.ItemDataSize16, pos = CommFunc.ReadWORD(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.ItemDataSize16) self.ItemData16 = ctypes.c_char_p(tmp) self.ItemDataSize17, pos = CommFunc.ReadWORD(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.ItemDataSize17) self.ItemData17 = ctypes.c_char_p(tmp) self.ItemDataSize18, pos = CommFunc.ReadWORD(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.ItemDataSize18) self.ItemData18 = ctypes.c_char_p(tmp) self.ItemDataSize19, pos = CommFunc.ReadWORD(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.ItemDataSize19) self.ItemData19 = ctypes.c_char_p(tmp) self.ItemDataSize20, pos = CommFunc.ReadWORD(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.ItemDataSize20) self.ItemData20 = ctypes.c_char_p(tmp) return self.getLength() def getBuffer(self): buf = '' buf = CommFunc.WriteDWORD(buf, self.PlayerID) buf = CommFunc.WriteBYTE(buf, self.GeTuiIDSize) buf = CommFunc.WriteString(buf, self.GeTuiIDSize, self.GeTuiID) buf = CommFunc.WriteWORD(buf, self.LV) buf = CommFunc.WriteDWORD(buf, self.OffTime) buf = CommFunc.WriteWORD(buf, self.PropDataSize) buf = CommFunc.WriteString(buf, self.PropDataSize, self.PropData) buf = CommFunc.WriteWORD(buf, self.PlusDataSize) buf = CommFunc.WriteString(buf, self.PlusDataSize, self.PlusData) buf = CommFunc.WriteWORD(buf, self.ItemDataSize1) buf = CommFunc.WriteString(buf, self.ItemDataSize1, self.ItemData1) buf = CommFunc.WriteWORD(buf, self.ItemDataSize2) buf = CommFunc.WriteString(buf, self.ItemDataSize2, self.ItemData2) buf = CommFunc.WriteWORD(buf, self.ItemDataSize3) buf = CommFunc.WriteString(buf, self.ItemDataSize3, self.ItemData3) buf = CommFunc.WriteWORD(buf, self.ItemDataSize4) buf = CommFunc.WriteString(buf, self.ItemDataSize4, self.ItemData4) buf = CommFunc.WriteWORD(buf, self.ItemDataSize5) buf = CommFunc.WriteString(buf, self.ItemDataSize5, self.ItemData5) buf = CommFunc.WriteWORD(buf, self.ItemDataSize6) buf = CommFunc.WriteString(buf, self.ItemDataSize6, self.ItemData6) buf = CommFunc.WriteWORD(buf, self.ItemDataSize7) buf = CommFunc.WriteString(buf, self.ItemDataSize7, self.ItemData7) buf = CommFunc.WriteWORD(buf, self.ItemDataSize8) buf = CommFunc.WriteString(buf, self.ItemDataSize8, self.ItemData8) buf = CommFunc.WriteWORD(buf, self.ItemDataSize9) buf = CommFunc.WriteString(buf, self.ItemDataSize9, self.ItemData9) buf = CommFunc.WriteWORD(buf, self.ItemDataSize10) buf = CommFunc.WriteString(buf, self.ItemDataSize10, self.ItemData10) buf = CommFunc.WriteWORD(buf, self.ItemDataSize11) buf = CommFunc.WriteString(buf, self.ItemDataSize11, self.ItemData11) buf = CommFunc.WriteWORD(buf, self.ItemDataSize12) buf = CommFunc.WriteString(buf, self.ItemDataSize12, self.ItemData12) buf = CommFunc.WriteWORD(buf, self.ItemDataSize13) buf = CommFunc.WriteString(buf, self.ItemDataSize13, self.ItemData13) buf = CommFunc.WriteWORD(buf, self.ItemDataSize14) buf = CommFunc.WriteString(buf, self.ItemDataSize14, self.ItemData14) buf = CommFunc.WriteWORD(buf, self.ItemDataSize15) buf = CommFunc.WriteString(buf, self.ItemDataSize15, self.ItemData15) buf = CommFunc.WriteWORD(buf, self.ItemDataSize16) buf = CommFunc.WriteString(buf, self.ItemDataSize16, self.ItemData16) buf = CommFunc.WriteWORD(buf, self.ItemDataSize17) buf = CommFunc.WriteString(buf, self.ItemDataSize17, self.ItemData17) buf = CommFunc.WriteWORD(buf, self.ItemDataSize18) buf = CommFunc.WriteString(buf, self.ItemDataSize18, self.ItemData18) buf = CommFunc.WriteWORD(buf, self.ItemDataSize19) buf = CommFunc.WriteString(buf, self.ItemDataSize19, self.ItemData19) buf = CommFunc.WriteWORD(buf, self.ItemDataSize20) buf = CommFunc.WriteString(buf, self.ItemDataSize20, self.ItemData20) return buf def getLength(self): length = 0 length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ubyte) length += self.GeTuiIDSize length += sizeof(ctypes.c_ushort) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ushort) length += self.PropDataSize length += sizeof(ctypes.c_ushort) length += self.PlusDataSize length += sizeof(ctypes.c_ushort) length += self.ItemDataSize1 length += sizeof(ctypes.c_ushort) length += self.ItemDataSize2 length += sizeof(ctypes.c_ushort) length += self.ItemDataSize3 length += sizeof(ctypes.c_ushort) length += self.ItemDataSize4 length += sizeof(ctypes.c_ushort) length += self.ItemDataSize5 length += sizeof(ctypes.c_ushort) length += self.ItemDataSize6 length += sizeof(ctypes.c_ushort) length += self.ItemDataSize7 length += sizeof(ctypes.c_ushort) length += self.ItemDataSize8 length += sizeof(ctypes.c_ushort) length += self.ItemDataSize9 length += sizeof(ctypes.c_ushort) length += self.ItemDataSize10 length += sizeof(ctypes.c_ushort) length += self.ItemDataSize11 length += sizeof(ctypes.c_ushort) length += self.ItemDataSize12 length += sizeof(ctypes.c_ushort) length += self.ItemDataSize13 length += sizeof(ctypes.c_ushort) length += self.ItemDataSize14 length += sizeof(ctypes.c_ushort) length += self.ItemDataSize15 length += sizeof(ctypes.c_ushort) length += self.ItemDataSize16 length += sizeof(ctypes.c_ushort) length += self.ItemDataSize17 length += sizeof(ctypes.c_ushort) length += self.ItemDataSize18 length += sizeof(ctypes.c_ushort) length += self.ItemDataSize19 length += sizeof(ctypes.c_ushort) length += self.ItemDataSize20 return length def outputString(self): output = '''// Íæ¼ÒÊý¾Ý²é¿´»º´æ±íPy #tagPlayerViewCachePy: PlayerID = %s, GeTuiIDSize = %s, GeTuiID = %s, LV = %s, OffTime = %s, PropDataSize = %s, PropData = %s, PlusDataSize = %s, PlusData = %s, ItemDataSize1 = %s, ItemData1 = %s, ItemDataSize2 = %s, ItemData2 = %s, ItemDataSize3 = %s, ItemData3 = %s, ItemDataSize4 = %s, ItemData4 = %s, ItemDataSize5 = %s, ItemData5 = %s, ItemDataSize6 = %s, ItemData6 = %s, ItemDataSize7 = %s, ItemData7 = %s, ItemDataSize8 = %s, ItemData8 = %s, ItemDataSize9 = %s, ItemData9 = %s, ItemDataSize10 = %s, ItemData10 = %s, ItemDataSize11 = %s, ItemData11 = %s, ItemDataSize12 = %s, ItemData12 = %s, ItemDataSize13 = %s, ItemData13 = %s, ItemDataSize14 = %s, ItemData14 = %s, ItemDataSize15 = %s, ItemData15 = %s, ItemDataSize16 = %s, ItemData16 = %s, ItemDataSize17 = %s, ItemData17 = %s, ItemDataSize18 = %s, ItemData18 = %s, ItemDataSize19 = %s, ItemData19 = %s, ItemDataSize20 = %s, ItemData20 = %s, ADOResult = %s, '''%( self.PlayerID, self.GeTuiIDSize, self.GeTuiID, self.LV, self.OffTime, self.PropDataSize, self.PropData, self.PlusDataSize, self.PlusData, self.ItemDataSize1, self.ItemData1, self.ItemDataSize2, self.ItemData2, self.ItemDataSize3, self.ItemData3, self.ItemDataSize4, self.ItemData4, self.ItemDataSize5, self.ItemData5, self.ItemDataSize6, self.ItemData6, self.ItemDataSize7, self.ItemData7, self.ItemDataSize8, self.ItemData8, self.ItemDataSize9, self.ItemData9, self.ItemDataSize10, self.ItemData10, self.ItemDataSize11, self.ItemData11, self.ItemDataSize12, self.ItemData12, self.ItemDataSize13, self.ItemData13, self.ItemDataSize14, self.ItemData14, self.ItemDataSize15, self.ItemData15, self.ItemDataSize16, self.ItemData16, self.ItemDataSize17, self.ItemData17, self.ItemDataSize18, self.ItemData18, self.ItemDataSize19, self.ItemData19, self.ItemDataSize20, self.ItemData20, self.ADOResult, ) return output # ÅÄÂô¹Ø×¢±í #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), ('Face', ctypes.c_ulong), ('FacePic', 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) self.Face, pos = CommFunc.ReadDWORD(buf, pos) self.FacePic, 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, Face = %s, FacePic = %s, ADOResult = %s, '''%( self.ZoneID, self.SeasonID, self.PlayerID, self.PlayerName, self.Job, self.FightPower, self.RealmLV, self.PKScore, self.DanLV, self.Time, self.Face, self.FacePic, 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), ('Face', ctypes.c_ulong), ('FacePic', 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) self.Face, pos = CommFunc.ReadDWORD(buf, pos) self.FacePic, 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, Face = %s, FacePic = %s, ADOResult = %s, '''%( self.PlayerID, self.PlayerName, self.Job, self.LV, self.RealmLV, self.OnlineType, self.RefCount, self.Face, self.FacePic, self.ADOResult, ) return output #CharÊý×éÀàÐÍSet½Ó¿Ú,ʹÓøýӿڶԴËÀàÐÍÊý¾Ý¸³Öµ£¬·ÀÖ¹¸³ÖµµÄÊý¾Ý¹ý³¤±¨´í def SetPlayerName(self,Str): if len(Str)<=33: self.PlayerName = Str else: self.PlayerName = Str[:33] # Íæ¼ÒÇ×Ãܱí #tagDBPyPlayerIntimacy class tagDBPyPlayerIntimacy(Structure): _pack_ = 1 _fields_ = [ ('PlayerID', ctypes.c_ulong), ('TagID', ctypes.c_ulong), ('Intimacy', 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.Intimacy, 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(tagDBPyPlayerIntimacy) def outputString(self): output = '''// Íæ¼ÒÇ×Ãܱí #tagDBPyPlayerIntimacy: PlayerID = %s, TagID = %s, Intimacy = %s, ADOResult = %s, '''%( self.PlayerID, self.TagID, self.Intimacy, self.ADOResult, ) return output # ÷ÈÁ¦¹±Ï×Öµ¼Ç¼±í #tagDBPyCharmValueRec class tagDBPyCharmValueRec(Structure): _pack_ = 1 _fields_ = [ ('PlayerID', ctypes.c_ulong), ('Type', ctypes.c_ubyte), ('OfferPlayerID', ctypes.c_ulong), ('CharmValue', ctypes.c_ulong), ('UpdTime', 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.Type, pos = CommFunc.ReadBYTE(buf, pos) self.OfferPlayerID, pos = CommFunc.ReadDWORD(buf, pos) self.CharmValue, pos = CommFunc.ReadDWORD(buf, pos) self.UpdTime, 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(tagDBPyCharmValueRec) def outputString(self): output = '''// ÷ÈÁ¦¹±Ï×Öµ¼Ç¼±í #tagDBPyCharmValueRec: PlayerID = %s, Type = %s, OfferPlayerID = %s, CharmValue = %s, UpdTime = %s, ADOResult = %s, '''%( self.PlayerID, self.Type, self.OfferPlayerID, self.CharmValue, self.UpdTime, self.ADOResult, ) return output # δ֪ͨµÄÇéÔµËÍÀñ¼Ç¼ #tagDBPyUnNotifyLoveGiftRec class tagDBPyUnNotifyLoveGiftRec(Structure): _pack_ = 1 _fields_ = [ ('PlayerID', ctypes.c_ulong), ('GivePlayerID', ctypes.c_ulong), ('GiftNum', ctypes.c_ushort), ('GiftCount', ctypes.c_ulong), ('SendTime', 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.GivePlayerID, pos = CommFunc.ReadDWORD(buf, pos) self.GiftNum, pos = CommFunc.ReadWORD(buf, pos) self.GiftCount, pos = CommFunc.ReadDWORD(buf, pos) self.SendTime, 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(tagDBPyUnNotifyLoveGiftRec) def outputString(self): output = '''// δ֪ͨµÄÇéÔµËÍÀñ¼Ç¼ #tagDBPyUnNotifyLoveGiftRec: PlayerID = %s, GivePlayerID = %s, GiftNum = %s, GiftCount = %s, SendTime = %s, ADOResult = %s, '''%( self.PlayerID, self.GivePlayerID, self.GiftNum, self.GiftCount, self.SendTime, self.ADOResult, ) return output # °é±í #tagDBPyCouple class tagDBPyCouple(Structure): _pack_ = 1 _fields_ = [ ('PlayerIDA', ctypes.c_ulong), ('PlayerIDB', ctypes.c_ulong), ('NewMarryTime', ctypes.c_ulong), ('MarryTime', ctypes.c_ulong), ('BridePriceState', ctypes.c_ulong), ('BreakRequestID', ctypes.c_ulong), ('BreakRequestTime', ctypes.c_ulong), ('BreakRequestTimeA', ctypes.c_ulong), ('BreakRequestTimeB', 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.PlayerIDA, pos = CommFunc.ReadDWORD(buf, pos) self.PlayerIDB, pos = CommFunc.ReadDWORD(buf, pos) self.NewMarryTime, pos = CommFunc.ReadDWORD(buf, pos) self.MarryTime, pos = CommFunc.ReadDWORD(buf, pos) self.BridePriceState, pos = CommFunc.ReadDWORD(buf, pos) self.BreakRequestID, pos = CommFunc.ReadDWORD(buf, pos) self.BreakRequestTime, pos = CommFunc.ReadDWORD(buf, pos) self.BreakRequestTimeA, pos = CommFunc.ReadDWORD(buf, pos) self.BreakRequestTimeB, 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(tagDBPyCouple) def outputString(self): output = '''// °é±í #tagDBPyCouple: PlayerIDA = %s, PlayerIDB = %s, NewMarryTime = %s, MarryTime = %s, BridePriceState = %s, BreakRequestID = %s, BreakRequestTime = %s, BreakRequestTimeA = %s, BreakRequestTimeB = %s, ADOResult = %s, '''%( self.PlayerIDA, self.PlayerIDB, self.NewMarryTime, self.MarryTime, self.BridePriceState, self.BreakRequestID, self.BreakRequestTime, self.BreakRequestTimeA, self.BreakRequestTimeB, self.ADOResult, ) return output # ¸£µØ¿óÎï±í #tagDBPyMineAreaItem class tagDBPyMineAreaItem(Structure): _pack_ = 1 _fields_ = [ ('PlayerID', ctypes.c_ulong), ('Index', ctypes.c_ubyte), ('MineID', ctypes.c_ushort), ('MineType', ctypes.c_ubyte), ('UpdTime', ctypes.c_ulong), ('PosLen', ctypes.c_ubyte), ('Position', ctypes.c_char_p), ('WorkerCount', ctypes.c_ubyte), ('WorkerState', ctypes.c_ubyte), ('RobPlayerID', ctypes.c_ulong), ('RobWorkerCount', ctypes.c_ubyte), ('RobWorkerState', ctypes.c_ubyte), ('ADOResult', ctypes.c_ulong), ] def __init__(self): Structure.__init__(self) self.clear() def clear(self): self.PlayerID = 0 self.Index = 0 self.MineID = 0 self.MineType = 0 self.UpdTime = 0 self.PosLen = 0 self.Position = '' self.WorkerCount = 0 self.WorkerState = 0 self.RobPlayerID = 0 self.RobWorkerCount = 0 self.RobWorkerState = 0 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.Index, pos = CommFunc.ReadBYTE(buf, pos) self.MineID, pos = CommFunc.ReadWORD(buf, pos) self.MineType, pos = CommFunc.ReadBYTE(buf, pos) self.UpdTime, pos = CommFunc.ReadDWORD(buf, pos) self.PosLen, pos = CommFunc.ReadBYTE(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.PosLen) self.Position = ctypes.c_char_p(tmp) self.WorkerCount, pos = CommFunc.ReadBYTE(buf, pos) self.WorkerState, pos = CommFunc.ReadBYTE(buf, pos) self.RobPlayerID, pos = CommFunc.ReadDWORD(buf, pos) self.RobWorkerCount, pos = CommFunc.ReadBYTE(buf, pos) self.RobWorkerState, pos = CommFunc.ReadBYTE(buf, pos) return self.getLength() def getBuffer(self): buf = '' buf = CommFunc.WriteDWORD(buf, self.PlayerID) buf = CommFunc.WriteBYTE(buf, self.Index) buf = CommFunc.WriteWORD(buf, self.MineID) buf = CommFunc.WriteBYTE(buf, self.MineType) buf = CommFunc.WriteDWORD(buf, self.UpdTime) buf = CommFunc.WriteBYTE(buf, self.PosLen) buf = CommFunc.WriteString(buf, self.PosLen, self.Position) buf = CommFunc.WriteBYTE(buf, self.WorkerCount) buf = CommFunc.WriteBYTE(buf, self.WorkerState) buf = CommFunc.WriteDWORD(buf, self.RobPlayerID) buf = CommFunc.WriteBYTE(buf, self.RobWorkerCount) buf = CommFunc.WriteBYTE(buf, self.RobWorkerState) return buf def getLength(self): length = 0 length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ubyte) length += sizeof(ctypes.c_ushort) length += sizeof(ctypes.c_ubyte) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ubyte) length += self.PosLen length += sizeof(ctypes.c_ubyte) length += sizeof(ctypes.c_ubyte) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ubyte) length += sizeof(ctypes.c_ubyte) return length def outputString(self): output = '''// ¸£µØ¿óÎï±í #tagDBPyMineAreaItem: PlayerID = %s, Index = %s, MineID = %s, MineType = %s, UpdTime = %s, PosLen = %s, Position = %s, WorkerCount = %s, WorkerState = %s, RobPlayerID = %s, RobWorkerCount = %s, RobWorkerState = %s, ADOResult = %s, '''%( self.PlayerID, self.Index, self.MineID, self.MineType, self.UpdTime, self.PosLen, self.Position, self.WorkerCount, self.WorkerState, self.RobPlayerID, self.RobWorkerCount, self.RobWorkerState, self.ADOResult, ) return output # ¸£µØ¼Ç¼±í #tagDBPyMineAreaRecord class tagDBPyMineAreaRecord(Structure): _pack_ = 1 _fields_ = [ ('PlayerID', ctypes.c_ulong), ('RecordType', ctypes.c_ulong), ('TagPlayerID', ctypes.c_ulong), ('RecordTime', ctypes.c_ulong), ('MineID', ctypes.c_ushort), ('DataLen', ctypes.c_ushort), ('Data', ctypes.c_char_p), ('ADOResult', ctypes.c_ulong), ] def __init__(self): Structure.__init__(self) self.clear() def clear(self): self.PlayerID = 0 self.RecordType = 0 self.TagPlayerID = 0 self.RecordTime = 0 self.MineID = 0 self.DataLen = 0 self.Data = '' 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.RecordType, pos = CommFunc.ReadDWORD(buf, pos) self.TagPlayerID, pos = CommFunc.ReadDWORD(buf, pos) self.RecordTime, pos = CommFunc.ReadDWORD(buf, pos) self.MineID, pos = CommFunc.ReadWORD(buf, pos) self.DataLen, pos = CommFunc.ReadWORD(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.DataLen) self.Data = ctypes.c_char_p(tmp) return self.getLength() def getBuffer(self): buf = '' buf = CommFunc.WriteDWORD(buf, self.PlayerID) buf = CommFunc.WriteDWORD(buf, self.RecordType) buf = CommFunc.WriteDWORD(buf, self.TagPlayerID) buf = CommFunc.WriteDWORD(buf, self.RecordTime) buf = CommFunc.WriteWORD(buf, self.MineID) buf = CommFunc.WriteWORD(buf, self.DataLen) buf = CommFunc.WriteString(buf, self.DataLen, self.Data) return buf def getLength(self): length = 0 length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ushort) length += sizeof(ctypes.c_ushort) length += self.DataLen return length def outputString(self): output = '''// ¸£µØ¼Ç¼±í #tagDBPyMineAreaRecord: PlayerID = %s, RecordType = %s, TagPlayerID = %s, RecordTime = %s, MineID = %s, DataLen = %s, Data = %s, ADOResult = %s, '''%( self.PlayerID, self.RecordType, self.TagPlayerID, self.RecordTime, self.MineID, self.DataLen, self.Data, self.ADOResult, ) return output # ¸£µØ½áËã½±Àø±í #tagDBPyMineAreaAward class tagDBPyMineAreaAward(Structure): _pack_ = 1 _fields_ = [ ('GUIDLen', ctypes.c_ubyte), ('GUID', ctypes.c_char_p), ('PlayerID', ctypes.c_ulong), ('AwardTime', ctypes.c_ulong), ('MineID', ctypes.c_ushort), ('WorkerCount', ctypes.c_ubyte), ('AreaPlayerID', ctypes.c_ulong), ('ADOResult', ctypes.c_ulong), ] def __init__(self): Structure.__init__(self) self.clear() def clear(self): self.GUIDLen = 0 self.GUID = '' self.PlayerID = 0 self.AwardTime = 0 self.MineID = 0 self.WorkerCount = 0 self.AreaPlayerID = 0 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.GUIDLen, pos = CommFunc.ReadBYTE(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.GUIDLen) self.GUID = ctypes.c_char_p(tmp) self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos) self.AwardTime, pos = CommFunc.ReadDWORD(buf, pos) self.MineID, pos = CommFunc.ReadWORD(buf, pos) self.WorkerCount, pos = CommFunc.ReadBYTE(buf, pos) self.AreaPlayerID, pos = CommFunc.ReadDWORD(buf, pos) return self.getLength() def getBuffer(self): buf = '' buf = CommFunc.WriteBYTE(buf, self.GUIDLen) buf = CommFunc.WriteString(buf, self.GUIDLen, self.GUID) buf = CommFunc.WriteDWORD(buf, self.PlayerID) buf = CommFunc.WriteDWORD(buf, self.AwardTime) buf = CommFunc.WriteWORD(buf, self.MineID) buf = CommFunc.WriteBYTE(buf, self.WorkerCount) buf = CommFunc.WriteDWORD(buf, self.AreaPlayerID) return buf def getLength(self): length = 0 length += sizeof(ctypes.c_ubyte) length += self.GUIDLen length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ushort) length += sizeof(ctypes.c_ubyte) length += sizeof(ctypes.c_ulong) return length def outputString(self): output = '''// ¸£µØ½áËã½±Àø±í #tagDBPyMineAreaAward: GUIDLen = %s, GUID = %s, PlayerID = %s, AwardTime = %s, MineID = %s, WorkerCount = %s, AreaPlayerID = %s, ADOResult = %s, '''%( self.GUIDLen, self.GUID, self.PlayerID, self.AwardTime, self.MineID, self.WorkerCount, self.AreaPlayerID, self.ADOResult, ) return output # Íæ¼Ò¼Ç¼±í #tagDBPlayerRecData class tagDBPlayerRecData(Structure): _pack_ = 1 _fields_ = [ ('PlayerID', ctypes.c_ulong), ('RecType', ctypes.c_ushort), ('Time', ctypes.c_double), ('Value1', ctypes.c_ulong), ('Value2', ctypes.c_ulong), ('Value3', ctypes.c_ulong), ('Value4', ctypes.c_ulong), ('Value5', ctypes.c_ulong), ('Value6', ctypes.c_ulong), ('Value7', ctypes.c_ulong), ('Value8', 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.RecType = 0 self.Time = 0.0 self.Value1 = 0 self.Value2 = 0 self.Value3 = 0 self.Value4 = 0 self.Value5 = 0 self.Value6 = 0 self.Value7 = 0 self.Value8 = 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.RecType, pos = CommFunc.ReadWORD(buf, pos) self.Time, pos = CommFunc.ReadDouble(buf, pos) self.Value1, pos = CommFunc.ReadDWORD(buf, pos) self.Value2, pos = CommFunc.ReadDWORD(buf, pos) self.Value3, pos = CommFunc.ReadDWORD(buf, pos) self.Value4, pos = CommFunc.ReadDWORD(buf, pos) self.Value5, pos = CommFunc.ReadDWORD(buf, pos) self.Value6, pos = CommFunc.ReadDWORD(buf, pos) self.Value7, pos = CommFunc.ReadDWORD(buf, pos) self.Value8, 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.WriteWORD(buf, self.RecType) buf = CommFunc.WriteDouble(buf, self.Time) buf = CommFunc.WriteDWORD(buf, self.Value1) buf = CommFunc.WriteDWORD(buf, self.Value2) buf = CommFunc.WriteDWORD(buf, self.Value3) buf = CommFunc.WriteDWORD(buf, self.Value4) buf = CommFunc.WriteDWORD(buf, self.Value5) buf = CommFunc.WriteDWORD(buf, self.Value6) buf = CommFunc.WriteDWORD(buf, self.Value7) buf = CommFunc.WriteDWORD(buf, self.Value8) 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_ushort) length += sizeof(ctypes.c_double) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) 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 = '''// Íæ¼Ò¼Ç¼±í #tagDBPlayerRecData: PlayerID = %s, RecType = %s, Time = %s, Value1 = %s, Value2 = %s, Value3 = %s, Value4 = %s, Value5 = %s, Value6 = %s, Value7 = %s, Value8 = %s, UserDataLen = %s, UserData = %s, ADOResult = %s, '''%( self.PlayerID, self.RecType, self.Time, self.Value1, self.Value2, self.Value3, self.Value4, self.Value5, self.Value6, self.Value7, self.Value8, self.UserDataLen, self.UserData, self.ADOResult, ) return output # ¹¦ÄܶÓÎé³ÉÔ±±í #tagDBPyFuncTeamMem class tagDBPyFuncTeamMem(Structure): _pack_ = 1 _fields_ = [ ('TeamID', ctypes.c_ulong), ('PlayerID', ctypes.c_ulong), ('Value1', ctypes.c_ulong), ('Value2', ctypes.c_ulong), ('Value3', ctypes.c_ulong), ('Value4', ctypes.c_ulong), ('Value5', 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.TeamID, pos = CommFunc.ReadDWORD(buf, pos) self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos) self.Value1, pos = CommFunc.ReadDWORD(buf, pos) self.Value2, pos = CommFunc.ReadDWORD(buf, pos) self.Value3, pos = CommFunc.ReadDWORD(buf, pos) self.Value4, pos = CommFunc.ReadDWORD(buf, pos) self.Value5, 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(tagDBPyFuncTeamMem) def outputString(self): output = '''// ¹¦ÄܶÓÎé³ÉÔ±±í #tagDBPyFuncTeamMem: TeamID = %s, PlayerID = %s, Value1 = %s, Value2 = %s, Value3 = %s, Value4 = %s, Value5 = %s, ADOResult = %s, '''%( self.TeamID, self.PlayerID, self.Value1, self.Value2, self.Value3, self.Value4, self.Value5, self.ADOResult, ) return output # ¹¦ÄܶÓÎé±í #tagDBPyFuncTeam class tagDBPyFuncTeam(Structure): _pack_ = 1 _fields_ = [ ('TeamID', ctypes.c_ulong), ('TeamName', ctypes.c_char * 33), ('ZoneID', ctypes.c_ubyte), ('FuncMapID', ctypes.c_ulong), ('FuncMapEx', ctypes.c_ulong), ('CreateTime', ctypes.c_ulong), ('CaptainID', ctypes.c_ulong), ('MinLV', ctypes.c_ushort), ('MinFightPower', ctypes.c_ulong), ('MinFightPowerEx', ctypes.c_ulong), ('ServerOnly', ctypes.c_ubyte), ('NeedCheck', ctypes.c_ubyte), ('ApplyIDLen', ctypes.c_ushort), ('ApplyIDList', ctypes.c_char_p), ('Value1', ctypes.c_ulong), ('Value2', ctypes.c_ulong), ('Value3', ctypes.c_ulong), ('Value4', ctypes.c_ulong), ('Value5', ctypes.c_ulong), ('ADOResult', ctypes.c_ulong), ] def __init__(self): Structure.__init__(self) self.clear() def clear(self): self.TeamID = 0 self.TeamName = '' self.ZoneID = 0 self.FuncMapID = 0 self.FuncMapEx = 0 self.CreateTime = 0 self.CaptainID = 0 self.MinLV = 0 self.MinFightPower = 0 self.MinFightPowerEx = 0 self.ServerOnly = 0 self.NeedCheck = 0 self.ApplyIDLen = 0 self.ApplyIDList = '' self.Value1 = 0 self.Value2 = 0 self.Value3 = 0 self.Value4 = 0 self.Value5 = 0 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.TeamID, pos = CommFunc.ReadDWORD(buf, pos) self.TeamName, pos = CommFunc.ReadString(buf, pos, 33) self.ZoneID, pos = CommFunc.ReadBYTE(buf, pos) self.FuncMapID, pos = CommFunc.ReadDWORD(buf, pos) self.FuncMapEx, pos = CommFunc.ReadDWORD(buf, pos) self.CreateTime, pos = CommFunc.ReadDWORD(buf, pos) self.CaptainID, pos = CommFunc.ReadDWORD(buf, pos) self.MinLV, pos = CommFunc.ReadWORD(buf, pos) self.MinFightPower, pos = CommFunc.ReadDWORD(buf, pos) self.MinFightPowerEx, pos = CommFunc.ReadDWORD(buf, pos) self.ServerOnly, pos = CommFunc.ReadBYTE(buf, pos) self.NeedCheck, pos = CommFunc.ReadBYTE(buf, pos) self.ApplyIDLen, pos = CommFunc.ReadWORD(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.ApplyIDLen) self.ApplyIDList = ctypes.c_char_p(tmp) self.Value1, pos = CommFunc.ReadDWORD(buf, pos) self.Value2, pos = CommFunc.ReadDWORD(buf, pos) self.Value3, pos = CommFunc.ReadDWORD(buf, pos) self.Value4, pos = CommFunc.ReadDWORD(buf, pos) self.Value5, pos = CommFunc.ReadDWORD(buf, pos) return self.getLength() def getBuffer(self): buf = '' buf = CommFunc.WriteDWORD(buf, self.TeamID) buf = CommFunc.WriteString(buf, sizeof(ctypes.c_char) * 33, self.TeamName) buf = CommFunc.WriteBYTE(buf, self.ZoneID) buf = CommFunc.WriteDWORD(buf, self.FuncMapID) buf = CommFunc.WriteDWORD(buf, self.FuncMapEx) buf = CommFunc.WriteDWORD(buf, self.CreateTime) buf = CommFunc.WriteDWORD(buf, self.CaptainID) buf = CommFunc.WriteWORD(buf, self.MinLV) buf = CommFunc.WriteDWORD(buf, self.MinFightPower) buf = CommFunc.WriteDWORD(buf, self.MinFightPowerEx) buf = CommFunc.WriteBYTE(buf, self.ServerOnly) buf = CommFunc.WriteBYTE(buf, self.NeedCheck) buf = CommFunc.WriteWORD(buf, self.ApplyIDLen) buf = CommFunc.WriteString(buf, self.ApplyIDLen, self.ApplyIDList) buf = CommFunc.WriteDWORD(buf, self.Value1) buf = CommFunc.WriteDWORD(buf, self.Value2) buf = CommFunc.WriteDWORD(buf, self.Value3) buf = CommFunc.WriteDWORD(buf, self.Value4) buf = CommFunc.WriteDWORD(buf, self.Value5) 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_ulong) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ushort) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ubyte) length += sizeof(ctypes.c_ubyte) length += sizeof(ctypes.c_ushort) length += self.ApplyIDLen length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) return length def outputString(self): output = '''// ¹¦ÄܶÓÎé±í #tagDBPyFuncTeam: TeamID = %s, TeamName = %s, ZoneID = %s, FuncMapID = %s, FuncMapEx = %s, CreateTime = %s, CaptainID = %s, MinLV = %s, MinFightPower = %s, MinFightPowerEx = %s, ServerOnly = %s, NeedCheck = %s, ApplyIDLen = %s, ApplyIDList = %s, Value1 = %s, Value2 = %s, Value3 = %s, Value4 = %s, Value5 = %s, ADOResult = %s, '''%( self.TeamID, self.TeamName, self.ZoneID, self.FuncMapID, self.FuncMapEx, self.CreateTime, self.CaptainID, self.MinLV, self.MinFightPower, self.MinFightPowerEx, self.ServerOnly, self.NeedCheck, self.ApplyIDLen, self.ApplyIDList, self.Value1, self.Value2, self.Value3, self.Value4, self.Value5, self.ADOResult, ) return output #CharÊý×éÀàÐÍSet½Ó¿Ú,ʹÓøýӿڶԴËÀàÐÍÊý¾Ý¸³Öµ£¬·ÀÖ¹¸³ÖµµÄÊý¾Ý¹ý³¤±¨´í def SetTeamName(self,Str): if len(Str)<=33: self.TeamName = Str else: self.TeamName = Str[:33] # ͨÓüǼ±íР#tagDBGameRec class tagDBGameRec(Structure): _pack_ = 1 _fields_ = [ ('RecType', ctypes.c_ushort), ('RecID', ctypes.c_ulong), ('Time', ctypes.c_double), ('Value1', ctypes.c_ulong), ('Value2', ctypes.c_ulong), ('Value3', ctypes.c_ulong), ('Value4', ctypes.c_ulong), ('Value5', ctypes.c_ulong), ('Value6', ctypes.c_ulong), ('Value7', ctypes.c_ulong), ('Value8', 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.RecType = 0 self.RecID = 0 self.Time = 0.0 self.Value1 = 0 self.Value2 = 0 self.Value3 = 0 self.Value4 = 0 self.Value5 = 0 self.Value6 = 0 self.Value7 = 0 self.Value8 = 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.RecType, pos = CommFunc.ReadWORD(buf, pos) self.RecID, pos = CommFunc.ReadDWORD(buf, pos) self.Time, pos = CommFunc.ReadDouble(buf, pos) self.Value1, pos = CommFunc.ReadDWORD(buf, pos) self.Value2, pos = CommFunc.ReadDWORD(buf, pos) self.Value3, pos = CommFunc.ReadDWORD(buf, pos) self.Value4, pos = CommFunc.ReadDWORD(buf, pos) self.Value5, pos = CommFunc.ReadDWORD(buf, pos) self.Value6, pos = CommFunc.ReadDWORD(buf, pos) self.Value7, pos = CommFunc.ReadDWORD(buf, pos) self.Value8, 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.WriteWORD(buf, self.RecType) buf = CommFunc.WriteDWORD(buf, self.RecID) buf = CommFunc.WriteDouble(buf, self.Time) buf = CommFunc.WriteDWORD(buf, self.Value1) buf = CommFunc.WriteDWORD(buf, self.Value2) buf = CommFunc.WriteDWORD(buf, self.Value3) buf = CommFunc.WriteDWORD(buf, self.Value4) buf = CommFunc.WriteDWORD(buf, self.Value5) buf = CommFunc.WriteDWORD(buf, self.Value6) buf = CommFunc.WriteDWORD(buf, self.Value7) buf = CommFunc.WriteDWORD(buf, self.Value8) 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_ushort) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_double) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) 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 = '''// ͨÓüǼ±íР#tagDBGameRec: RecType = %s, RecID = %s, Time = %s, Value1 = %s, Value2 = %s, Value3 = %s, Value4 = %s, Value5 = %s, Value6 = %s, Value7 = %s, Value8 = %s, UserDataLen = %s, UserData = %s, ADOResult = %s, '''%( self.RecType, self.RecID, self.Time, self.Value1, self.Value2, self.Value3, self.Value4, self.Value5, self.Value6, self.Value7, self.Value8, self.UserDataLen, self.UserData, self.ADOResult, ) return output # Íæ¼ÒÊý¾Ý´ò°ü±í #tagDBPlayerPackData class tagDBPlayerPackData(Structure): _pack_ = 1 _fields_ = [ ('PlayerID', ctypes.c_ulong), ('UpdTime', ctypes.c_ulong), ('PackDataSize', ctypes.c_ulong), ('PackData', ctypes.c_char_p), ('ADOResult', ctypes.c_ulong), ] def __init__(self): Structure.__init__(self) self.clear() def clear(self): self.PlayerID = 0 self.UpdTime = 0 self.PackDataSize = 0 self.PackData = '' 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.UpdTime, pos = CommFunc.ReadDWORD(buf, pos) self.PackDataSize, pos = CommFunc.ReadDWORD(buf, pos) tmp, pos = CommFunc.ReadString(buf, pos, self.PackDataSize) self.PackData = ctypes.c_char_p(tmp) return self.getLength() def getBuffer(self): buf = '' buf = CommFunc.WriteDWORD(buf, self.PlayerID) buf = CommFunc.WriteDWORD(buf, self.UpdTime) buf = CommFunc.WriteDWORD(buf, self.PackDataSize) buf = CommFunc.WriteString(buf, self.PackDataSize, self.PackData) return buf def getLength(self): length = 0 length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) length += sizeof(ctypes.c_ulong) length += self.PackDataSize return length def outputString(self): output = '''// Íæ¼ÒÊý¾Ý´ò°ü±í #tagDBPlayerPackData: PlayerID = %s, UpdTime = %s, PackDataSize = %s, PackData = %s, ADOResult = %s, '''%( self.PlayerID, self.UpdTime, self.PackDataSize, self.PackData, self.ADOResult, ) return output