|  |  |  | 
|---|
|  |  |  | from ctypes import (Structure, memset, memmove, sizeof, addressof, create_string_buffer, string_at) | 
|---|
|  |  |  | import CommFunc | 
|---|
|  |  |  |  | 
|---|
|  |  |  | # 协助感谢表 #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), | 
|---|
|  |  |  | ('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 = '' | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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) | 
|---|
|  |  |  | 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) | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  | 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, | 
|---|
|  |  |  | 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.ADOResult, | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | return output | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | # 拍卖关注表 #tagDBAuctionAttention | 
|---|
|  |  |  | class tagDBAuctionAttention(Structure): | 
|---|
|  |  |  | _pack_ = 1 | 
|---|
|  |  |  | 
|---|
|  |  |  | 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), | 
|---|
|  |  |  | ('RecordPrice', ctypes.c_ulong), | 
|---|
|  |  |  | ('BidderPrice', ctypes.c_ulong), | 
|---|
|  |  |  | ('BidderName', ctypes.c_char * 33), | 
|---|
|  |  |  | ('ItemID', ctypes.c_ulong), | 
|---|
|  |  |  | ('Count', ctypes.c_ushort), | 
|---|
|  |  |  | ('UserDataLen', ctypes.c_ushort), | 
|---|
|  |  |  | 
|---|
|  |  |  | self.clear() | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def clear(self): | 
|---|
|  |  |  | self.ItemGUID = '' | 
|---|
|  |  |  | self.PlayerID = 0 | 
|---|
|  |  |  | self.FamilyID = 0 | 
|---|
|  |  |  | self.RecordType = 0 | 
|---|
|  |  |  | self.RecordResult = 0 | 
|---|
|  |  |  | self.RecordTime = '' | 
|---|
|  |  |  | self.RecordPrice = 0 | 
|---|
|  |  |  | self.BidderPrice = 0 | 
|---|
|  |  |  | self.BidderName = '' | 
|---|
|  |  |  | self.ItemID = 0 | 
|---|
|  |  |  | self.Count = 0 | 
|---|
|  |  |  | self.UserDataLen = 0 | 
|---|
|  |  |  | 
|---|
|  |  |  | 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.RecordPrice, pos = CommFunc.ReadDWORD(buf, pos) | 
|---|
|  |  |  | 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) | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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.RecordPrice) | 
|---|
|  |  |  | 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) | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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) | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def outputString(self): | 
|---|
|  |  |  | output = '''// 拍卖记录表 #tagDBAuctionRecord: | 
|---|
|  |  |  | ItemGUID = %s, | 
|---|
|  |  |  | PlayerID = %s, | 
|---|
|  |  |  | FamilyID = %s, | 
|---|
|  |  |  | RecordType = %s, | 
|---|
|  |  |  | RecordResult = %s, | 
|---|
|  |  |  | RecordTime = %s, | 
|---|
|  |  |  | RecordPrice = %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.RecordPrice, | 
|---|
|  |  |  | self.BidderPrice, | 
|---|
|  |  |  | self.BidderName, | 
|---|
|  |  |  | self.ItemID, | 
|---|
|  |  |  | self.Count, | 
|---|
|  |  |  | self.UserDataLen, | 
|---|
|  |  |  | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  | 
|---|
|  |  |  | 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() | 
|---|
|  |  |  | memmove(addressof(self), buf[pos:], self.getLength()) | 
|---|
|  |  |  | self.ZoneID, pos = CommFunc.ReadBYTE(buf, pos) | 
|---|
|  |  |  | self.SeasonID, pos = CommFunc.ReadBYTE(buf, pos) | 
|---|
|  |  |  | self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos) | 
|---|
|  |  |  | self.PlayerName, pos = CommFunc.ReadString(buf, pos, 33) | 
|---|
|  |  |  | self.Job, pos = CommFunc.ReadBYTE(buf, pos) | 
|---|
|  |  |  | self.FightPower, pos = CommFunc.ReadDWORD(buf, pos) | 
|---|
|  |  |  | self.RealmLV, pos = CommFunc.ReadWORD(buf, pos) | 
|---|
|  |  |  | self.PKScore, pos = CommFunc.ReadDWORD(buf, pos) | 
|---|
|  |  |  | self.DanLV, pos = CommFunc.ReadBYTE(buf, pos) | 
|---|
|  |  |  | self.Time, pos = CommFunc.ReadDWORD(buf, pos) | 
|---|
|  |  |  | return self.getLength() | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | self.PlayerName = Str | 
|---|
|  |  |  | else: | 
|---|
|  |  |  | self.PlayerName = Str[:33] | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #仙魔之争记录表#tagDBPyXMZZ | 
|---|
|  |  |  | class tagDBPyXMZZ(Structure): | 
|---|
|  |  |  | 
|---|
|  |  |  | 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() | 
|---|
|  |  |  | memmove(addressof(self), buf[pos:], self.getLength()) | 
|---|
|  |  |  | self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos) | 
|---|
|  |  |  | self.LineID, pos = CommFunc.ReadBYTE(buf, pos) | 
|---|
|  |  |  | self.Rank, pos = CommFunc.ReadWORD(buf, pos) | 
|---|
|  |  |  | return self.getLength() | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | self.ADOResult, | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | return output | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #Boss关注记录表#tagDBPyBossAttention | 
|---|
|  |  |  | 
|---|
|  |  |  | return output | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #交易所物品最近成交单价表#tagDBPyBourseItemLastPrice | 
|---|
|  |  |  | class tagDBPyBourseItemLastPrice(Structure): | 
|---|
|  |  |  | _pack_ = 1 | 
|---|
|  |  |  | 
|---|
|  |  |  | 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() | 
|---|
|  |  |  | memmove(addressof(self), buf[pos:], self.getLength()) | 
|---|
|  |  |  | self.ItemID, pos = CommFunc.ReadDWORD(buf, pos) | 
|---|
|  |  |  | self.LastPrice, pos = CommFunc.ReadDWORD(buf, pos) | 
|---|
|  |  |  | return self.getLength() | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | return output | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #玩家黑名单 #tagDBPyPlayerBlack | 
|---|
|  |  |  | class tagDBPyPlayerBlack(Structure): | 
|---|
|  |  |  | _pack_ = 1 | 
|---|
|  |  |  | 
|---|
|  |  |  | 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() | 
|---|
|  |  |  | memmove(addressof(self), buf[pos:], self.getLength()) | 
|---|
|  |  |  | self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos) | 
|---|
|  |  |  | self.TagID, pos = CommFunc.ReadDWORD(buf, pos) | 
|---|
|  |  |  | return self.getLength() | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | 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() | 
|---|
|  |  |  | memmove(addressof(self), buf[pos:], self.getLength()) | 
|---|
|  |  |  | 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 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() | 
|---|
|  |  |  | memmove(addressof(self), buf[pos:], self.getLength()) | 
|---|
|  |  |  | self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos) | 
|---|
|  |  |  | self.TagID, pos = CommFunc.ReadDWORD(buf, pos) | 
|---|
|  |  |  | return self.getLength() | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | return output | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #玩家仇人表#tagPlayerEnemy | 
|---|
|  |  |  | class tagPlayerEnemy(Structure): | 
|---|
|  |  |  | _pack_ = 1 | 
|---|
|  |  |  | 
|---|
|  |  |  | 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() | 
|---|
|  |  |  | memmove(addressof(self), buf[pos:], self.getLength()) | 
|---|
|  |  |  | self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos) | 
|---|
|  |  |  | self.TagID, pos = CommFunc.ReadDWORD(buf, pos) | 
|---|
|  |  |  | self.Timestamp, pos = CommFunc.ReadDWORD(buf, pos) | 
|---|
|  |  |  | return self.getLength() | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | return output | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #个人社交总表 #tagPersonalSocial | 
|---|
|  |  |  | class tagPersonalSocial(Structure): | 
|---|
|  |  |  | _pack_ = 1 | 
|---|
|  |  |  | 
|---|
|  |  |  | 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() | 
|---|
|  |  |  | memmove(addressof(self), buf[pos:], self.getLength()) | 
|---|
|  |  |  | self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos) | 
|---|
|  |  |  | self.PlayerName, pos = CommFunc.ReadString(buf, pos, 33) | 
|---|
|  |  |  | self.Job, pos = CommFunc.ReadBYTE(buf, pos) | 
|---|
|  |  |  | self.LV, pos = CommFunc.ReadWORD(buf, pos) | 
|---|
|  |  |  | self.RealmLV, pos = CommFunc.ReadWORD(buf, pos) | 
|---|
|  |  |  | self.OnlineType, pos = CommFunc.ReadBYTE(buf, pos) | 
|---|
|  |  |  | self.RefCount, pos = CommFunc.ReadDWORD(buf, pos) | 
|---|
|  |  |  | return self.getLength() | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | else: | 
|---|
|  |  |  | self.PlayerName = Str[:33] | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|