#!/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
|
|
# ¿ç·þ²¹³¥¸öÈËÁìÈ¡±í #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 * 33),
|
('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, 33)
|
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) * 33, 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) * 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_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)<=33:
|
self.Name2 = Str
|
else:
|
self.Name2 = Str[:33]
|
|
|
|
|
# ÐÖú¸Ðл±í #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),
|
('ADOResult', ctypes.c_ulong),
|
]
|
|
def __init__(self):
|
Structure.__init__(self)
|
self.clear()
|
|
|
def clear(self):
|
memset(addressof(self), 0, self.getLength())
|
|
def readData(self, buf, pos = 0, length = 0):
|
if not pos <= length:
|
return -1
|
if len(buf) < pos + self.getLength():
|
return -1
|
self.clear()
|
self.ZoneID, pos = CommFunc.ReadBYTE(buf, pos)
|
self.SeasonID, pos = CommFunc.ReadBYTE(buf, pos)
|
self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos)
|
self.PlayerName, pos = CommFunc.ReadString(buf, pos, 33)
|
self.Job, pos = CommFunc.ReadBYTE(buf, pos)
|
self.FightPower, pos = CommFunc.ReadDWORD(buf, pos)
|
self.RealmLV, pos = CommFunc.ReadWORD(buf, pos)
|
self.PKScore, pos = CommFunc.ReadDWORD(buf, pos)
|
self.DanLV, pos = CommFunc.ReadBYTE(buf, pos)
|
self.Time, pos = CommFunc.ReadDWORD(buf, pos)
|
return self.getLength()
|
|
|
def getBuffer(self):
|
buf = create_string_buffer(self.getLength())
|
memmove(addressof(buf), addressof(self), self.getLength())
|
return string_at(addressof(buf), self.getLength())
|
|
def getLength(self):
|
return sizeof(tagDBCrossPKBillboard)
|
|
def outputString(self):
|
output = '''// ¿ç·þ¾º¼¼³¡PKÅÅÐаñ #tagDBCrossPKBillboard:
|
ZoneID = %s,
|
SeasonID = %s,
|
PlayerID = %s,
|
PlayerName = %s,
|
Job = %s,
|
FightPower = %s,
|
RealmLV = %s,
|
PKScore = %s,
|
DanLV = %s,
|
Time = %s,
|
ADOResult = %s,
|
'''%(
|
self.ZoneID,
|
self.SeasonID,
|
self.PlayerID,
|
self.PlayerName,
|
self.Job,
|
self.FightPower,
|
self.RealmLV,
|
self.PKScore,
|
self.DanLV,
|
self.Time,
|
self.ADOResult,
|
)
|
return output
|
|
#CharÊý×éÀàÐÍSet½Ó¿Ú,ʹÓøýӿڶԴËÀàÐÍÊý¾Ý¸³Öµ£¬·ÀÖ¹¸³ÖµµÄÊý¾Ý¹ý³¤±¨´í
|
def SetPlayerName(self,Str):
|
if len(Str)<=33:
|
self.PlayerName = Str
|
else:
|
self.PlayerName = Str[:33]
|
|
|
#ÏÉħ֮Õù¼Ç¼±í#tagDBPyXMZZ
|
class tagDBPyXMZZ(Structure):
|
_pack_ = 1
|
_fields_ = [
|
('PlayerID', ctypes.c_ulong),
|
('Name', ctypes.c_char * 33),
|
('Faction', ctypes.c_ubyte),
|
('Score', ctypes.c_ushort),
|
('WinCnt', ctypes.c_ubyte),
|
('LoseCnt', ctypes.c_ubyte),
|
('ConWinCnt', ctypes.c_ubyte),
|
('WinAwardRecord', ctypes.c_ulong),
|
('Len', ctypes.c_ushort),
|
('BetRecord', ctypes.c_char_p),
|
('ADOResult', ctypes.c_ulong),
|
]
|
|
def __init__(self):
|
Structure.__init__(self)
|
self.clear()
|
|
def clear(self):
|
self.PlayerID = 0
|
self.Name = ''
|
self.Faction = 0
|
self.Score = 0
|
self.WinCnt = 0
|
self.LoseCnt = 0
|
self.ConWinCnt = 0
|
self.WinAwardRecord = 0
|
self.Len = 0
|
self.BetRecord = ''
|
|
def readData(self, buf, pos = 0, length = 0):
|
if not pos <= length:
|
return -1
|
if len(buf) < pos + self.getLength():
|
return -1
|
self.clear()
|
self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos)
|
self.Name, pos = CommFunc.ReadString(buf, pos, 33)
|
self.Faction, pos = CommFunc.ReadBYTE(buf, pos)
|
self.Score, pos = CommFunc.ReadWORD(buf, pos)
|
self.WinCnt, pos = CommFunc.ReadBYTE(buf, pos)
|
self.LoseCnt, pos = CommFunc.ReadBYTE(buf, pos)
|
self.ConWinCnt, pos = CommFunc.ReadBYTE(buf, pos)
|
self.WinAwardRecord, pos = CommFunc.ReadDWORD(buf, pos)
|
self.Len, pos = CommFunc.ReadWORD(buf, pos)
|
tmp, pos = CommFunc.ReadString(buf, pos, self.Len)
|
self.BetRecord = ctypes.c_char_p(tmp)
|
return self.getLength()
|
|
def getBuffer(self):
|
buf = ''
|
buf = CommFunc.WriteDWORD(buf, self.PlayerID)
|
buf = CommFunc.WriteString(buf, sizeof(ctypes.c_char) * 33, self.Name)
|
buf = CommFunc.WriteBYTE(buf, self.Faction)
|
buf = CommFunc.WriteWORD(buf, self.Score)
|
buf = CommFunc.WriteBYTE(buf, self.WinCnt)
|
buf = CommFunc.WriteBYTE(buf, self.LoseCnt)
|
buf = CommFunc.WriteBYTE(buf, self.ConWinCnt)
|
buf = CommFunc.WriteDWORD(buf, self.WinAwardRecord)
|
buf = CommFunc.WriteWORD(buf, self.Len)
|
buf = CommFunc.WriteString(buf, self.Len, self.BetRecord)
|
return buf
|
|
def getLength(self):
|
length = 0
|
length += sizeof(ctypes.c_ulong)
|
length += sizeof(ctypes.c_char) * 33
|
length += sizeof(ctypes.c_ubyte)
|
length += sizeof(ctypes.c_ushort)
|
length += sizeof(ctypes.c_ubyte)
|
length += sizeof(ctypes.c_ubyte)
|
length += sizeof(ctypes.c_ubyte)
|
length += sizeof(ctypes.c_ulong)
|
length += sizeof(ctypes.c_ushort)
|
length += self.Len
|
return length
|
|
def outputString(self):
|
output = '''//ÏÉħ֮Õù¼Ç¼±í#tagDBPyXMZZ:
|
PlayerID = %s,
|
Name = %s,
|
Faction = %s,
|
Score = %s,
|
WinCnt = %s,
|
LoseCnt = %s,
|
ConWinCnt = %s,
|
WinAwardRecord = %s,
|
Len = %s,
|
BetRecord = %s,
|
ADOResult = %s,
|
'''%(
|
self.PlayerID,
|
self.Name,
|
self.Faction,
|
self.Score,
|
self.WinCnt,
|
self.LoseCnt,
|
self.ConWinCnt,
|
self.WinAwardRecord,
|
self.Len,
|
self.BetRecord,
|
self.ADOResult,
|
)
|
return output
|
|
#CharÊý×éÀàÐÍSet½Ó¿Ú,ʹÓøýӿڶԴËÀàÐÍÊý¾Ý¸³Öµ£¬·ÀÖ¹¸³ÖµµÄÊý¾Ý¹ý³¤±¨´í
|
def SetName(self,Str):
|
if len(Str)<=33:
|
self.Name = Str
|
else:
|
self.Name = Str[:33]
|
|
|
|
#·âħ̳¼Ç¼±í#tagDBPySealDemonRecord
|
class tagDBPySealDemonRecord(Structure):
|
_pack_ = 1
|
_fields_ = [
|
('PlayerID', ctypes.c_ulong),
|
('LineID', ctypes.c_ubyte),
|
('Rank', ctypes.c_ushort),
|
('ADOResult', ctypes.c_ulong),
|
]
|
|
def __init__(self):
|
Structure.__init__(self)
|
self.clear()
|
|
|
def clear(self):
|
memset(addressof(self), 0, self.getLength())
|
|
def readData(self, buf, pos = 0, length = 0):
|
if not pos <= length:
|
return -1
|
if len(buf) < pos + self.getLength():
|
return -1
|
self.clear()
|
self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos)
|
self.LineID, pos = CommFunc.ReadBYTE(buf, pos)
|
self.Rank, pos = CommFunc.ReadWORD(buf, pos)
|
return self.getLength()
|
|
|
def getBuffer(self):
|
buf = create_string_buffer(self.getLength())
|
memmove(addressof(buf), addressof(self), self.getLength())
|
return string_at(addressof(buf), self.getLength())
|
|
def getLength(self):
|
return sizeof(tagDBPySealDemonRecord)
|
|
def outputString(self):
|
output = '''//·âħ̳¼Ç¼±í#tagDBPySealDemonRecord:
|
PlayerID = %s,
|
LineID = %s,
|
Rank = %s,
|
ADOResult = %s,
|
'''%(
|
self.PlayerID,
|
self.LineID,
|
self.Rank,
|
self.ADOResult,
|
)
|
return output
|
|
|
#Boss¹Ø×¢¼Ç¼±í#tagDBPyBossAttention
|
class tagDBPyBossAttention(Structure):
|
_pack_ = 1
|
_fields_ = [
|
('PlayerID', ctypes.c_ulong),
|
('DataLen', ctypes.c_ushort),
|
('RecordData', ctypes.c_char_p),
|
('ADOResult', ctypes.c_ulong),
|
]
|
|
def __init__(self):
|
Structure.__init__(self)
|
self.clear()
|
|
def clear(self):
|
self.PlayerID = 0
|
self.DataLen = 0
|
self.RecordData = ''
|
|
def readData(self, buf, pos = 0, length = 0):
|
if not pos <= length:
|
return -1
|
if len(buf) < pos + self.getLength():
|
return -1
|
self.clear()
|
self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos)
|
self.DataLen, pos = CommFunc.ReadWORD(buf, pos)
|
tmp, pos = CommFunc.ReadString(buf, pos, self.DataLen)
|
self.RecordData = ctypes.c_char_p(tmp)
|
return self.getLength()
|
|
def getBuffer(self):
|
buf = ''
|
buf = CommFunc.WriteDWORD(buf, self.PlayerID)
|
buf = CommFunc.WriteWORD(buf, self.DataLen)
|
buf = CommFunc.WriteString(buf, self.DataLen, self.RecordData)
|
return buf
|
|
def getLength(self):
|
length = 0
|
length += sizeof(ctypes.c_ulong)
|
length += sizeof(ctypes.c_ushort)
|
length += self.DataLen
|
return length
|
|
def outputString(self):
|
output = '''//Boss¹Ø×¢¼Ç¼±í#tagDBPyBossAttention:
|
PlayerID = %s,
|
DataLen = %s,
|
RecordData = %s,
|
ADOResult = %s,
|
'''%(
|
self.PlayerID,
|
self.DataLen,
|
self.RecordData,
|
self.ADOResult,
|
)
|
return output
|
|
|
#½»Ò×ËùÎïÆ·×î½ü³É½»µ¥¼Û±í#tagDBPyBourseItemLastPrice
|
class tagDBPyBourseItemLastPrice(Structure):
|
_pack_ = 1
|
_fields_ = [
|
('ItemID', ctypes.c_ulong),
|
('LastPrice', ctypes.c_ulong),
|
('ADOResult', ctypes.c_ulong),
|
]
|
|
def __init__(self):
|
Structure.__init__(self)
|
self.clear()
|
|
|
def clear(self):
|
memset(addressof(self), 0, self.getLength())
|
|
def readData(self, buf, pos = 0, length = 0):
|
if not pos <= length:
|
return -1
|
if len(buf) < pos + self.getLength():
|
return -1
|
self.clear()
|
self.ItemID, pos = CommFunc.ReadDWORD(buf, pos)
|
self.LastPrice, pos = CommFunc.ReadDWORD(buf, pos)
|
return self.getLength()
|
|
|
def getBuffer(self):
|
buf = create_string_buffer(self.getLength())
|
memmove(addressof(buf), addressof(self), self.getLength())
|
return string_at(addressof(buf), self.getLength())
|
|
def getLength(self):
|
return sizeof(tagDBPyBourseItemLastPrice)
|
|
def outputString(self):
|
output = '''//½»Ò×ËùÎïÆ·×î½ü³É½»µ¥¼Û±í#tagDBPyBourseItemLastPrice:
|
ItemID = %s,
|
LastPrice = %s,
|
ADOResult = %s,
|
'''%(
|
self.ItemID,
|
self.LastPrice,
|
self.ADOResult,
|
)
|
return output
|
|
|
#½»Ò×Ëù¼Ç¼±í#tagDBPyBourseRecord
|
class tagDBPyBourseRecord(Structure):
|
_pack_ = 1
|
_fields_ = [
|
('PlayerID', ctypes.c_ulong),
|
('Type', ctypes.c_ubyte),
|
('Timestamp', ctypes.c_ulong),
|
('TradeTax', ctypes.c_ulong),
|
('TradeMoney', ctypes.c_ulong),
|
('UserDataLen', ctypes.c_ushort),
|
('UserData', ctypes.c_char_p),
|
('ADOResult', ctypes.c_ulong),
|
]
|
|
def __init__(self):
|
Structure.__init__(self)
|
self.clear()
|
|
def clear(self):
|
self.PlayerID = 0
|
self.Type = 0
|
self.Timestamp = 0
|
self.TradeTax = 0
|
self.TradeMoney = 0
|
self.UserDataLen = 0
|
self.UserData = ''
|
|
def readData(self, buf, pos = 0, length = 0):
|
if not pos <= length:
|
return -1
|
if len(buf) < pos + self.getLength():
|
return -1
|
self.clear()
|
self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos)
|
self.Type, pos = CommFunc.ReadBYTE(buf, pos)
|
self.Timestamp, pos = CommFunc.ReadDWORD(buf, pos)
|
self.TradeTax, pos = CommFunc.ReadDWORD(buf, pos)
|
self.TradeMoney, pos = CommFunc.ReadDWORD(buf, pos)
|
self.UserDataLen, pos = CommFunc.ReadWORD(buf, pos)
|
tmp, pos = CommFunc.ReadString(buf, pos, self.UserDataLen)
|
self.UserData = ctypes.c_char_p(tmp)
|
return self.getLength()
|
|
def getBuffer(self):
|
buf = ''
|
buf = CommFunc.WriteDWORD(buf, self.PlayerID)
|
buf = CommFunc.WriteBYTE(buf, self.Type)
|
buf = CommFunc.WriteDWORD(buf, self.Timestamp)
|
buf = CommFunc.WriteDWORD(buf, self.TradeTax)
|
buf = CommFunc.WriteDWORD(buf, self.TradeMoney)
|
buf = CommFunc.WriteWORD(buf, self.UserDataLen)
|
buf = CommFunc.WriteString(buf, self.UserDataLen, self.UserData)
|
return buf
|
|
def getLength(self):
|
length = 0
|
length += sizeof(ctypes.c_ulong)
|
length += sizeof(ctypes.c_ubyte)
|
length += sizeof(ctypes.c_ulong)
|
length += sizeof(ctypes.c_ulong)
|
length += sizeof(ctypes.c_ulong)
|
length += sizeof(ctypes.c_ushort)
|
length += self.UserDataLen
|
return length
|
|
def outputString(self):
|
output = '''//½»Ò×Ëù¼Ç¼±í#tagDBPyBourseRecord:
|
PlayerID = %s,
|
Type = %s,
|
Timestamp = %s,
|
TradeTax = %s,
|
TradeMoney = %s,
|
UserDataLen = %s,
|
UserData = %s,
|
ADOResult = %s,
|
'''%(
|
self.PlayerID,
|
self.Type,
|
self.Timestamp,
|
self.TradeTax,
|
self.TradeMoney,
|
self.UserDataLen,
|
self.UserData,
|
self.ADOResult,
|
)
|
return output
|
|
|
# ¼Ò×å²Ö¿âÎïÆ·±í#tagDBPyFamilyStoreItem
|
class tagDBPyFamilyStoreItem(Structure):
|
_pack_ = 1
|
_fields_ = [
|
('FamilyID', ctypes.c_ulong),
|
('ItemIndex', ctypes.c_ubyte),
|
('ItemID', ctypes.c_ulong),
|
('UserDataLen', ctypes.c_ulong),
|
('UserData', ctypes.c_char_p),
|
('ADOResult', ctypes.c_ulong),
|
]
|
|
def __init__(self):
|
Structure.__init__(self)
|
self.clear()
|
|
def clear(self):
|
self.FamilyID = 0
|
self.ItemIndex = 0
|
self.ItemID = 0
|
self.UserDataLen = 0
|
self.UserData = ''
|
|
def readData(self, buf, pos = 0, length = 0):
|
if not pos <= length:
|
return -1
|
if len(buf) < pos + self.getLength():
|
return -1
|
self.clear()
|
self.FamilyID, pos = CommFunc.ReadDWORD(buf, pos)
|
self.ItemIndex, pos = CommFunc.ReadBYTE(buf, pos)
|
self.ItemID, pos = CommFunc.ReadDWORD(buf, pos)
|
self.UserDataLen, pos = CommFunc.ReadDWORD(buf, pos)
|
tmp, pos = CommFunc.ReadString(buf, pos, self.UserDataLen)
|
self.UserData = ctypes.c_char_p(tmp)
|
return self.getLength()
|
|
def getBuffer(self):
|
buf = ''
|
buf = CommFunc.WriteDWORD(buf, self.FamilyID)
|
buf = CommFunc.WriteBYTE(buf, self.ItemIndex)
|
buf = CommFunc.WriteDWORD(buf, self.ItemID)
|
buf = CommFunc.WriteDWORD(buf, self.UserDataLen)
|
buf = CommFunc.WriteString(buf, self.UserDataLen, self.UserData)
|
return buf
|
|
def getLength(self):
|
length = 0
|
length += sizeof(ctypes.c_ulong)
|
length += sizeof(ctypes.c_ubyte)
|
length += sizeof(ctypes.c_ulong)
|
length += sizeof(ctypes.c_ulong)
|
length += self.UserDataLen
|
return length
|
|
def outputString(self):
|
output = '''// ¼Ò×å²Ö¿âÎïÆ·±í#tagDBPyFamilyStoreItem:
|
FamilyID = %s,
|
ItemIndex = %s,
|
ItemID = %s,
|
UserDataLen = %s,
|
UserData = %s,
|
ADOResult = %s,
|
'''%(
|
self.FamilyID,
|
self.ItemIndex,
|
self.ItemID,
|
self.UserDataLen,
|
self.UserData,
|
self.ADOResult,
|
)
|
return output
|
|
#Íæ¼ÒºÚÃûµ¥ #tagDBPyPlayerBlack
|
class tagDBPyPlayerBlack(Structure):
|
_pack_ = 1
|
_fields_ = [
|
('PlayerID', ctypes.c_ulong),
|
('TagID', ctypes.c_ulong),
|
('ADOResult', ctypes.c_ulong),
|
]
|
|
def __init__(self):
|
Structure.__init__(self)
|
self.clear()
|
|
|
def clear(self):
|
memset(addressof(self), 0, self.getLength())
|
|
def readData(self, buf, pos = 0, length = 0):
|
if not pos <= length:
|
return -1
|
if len(buf) < pos + self.getLength():
|
return -1
|
self.clear()
|
self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos)
|
self.TagID, pos = CommFunc.ReadDWORD(buf, pos)
|
return self.getLength()
|
|
|
def getBuffer(self):
|
buf = create_string_buffer(self.getLength())
|
memmove(addressof(buf), addressof(self), self.getLength())
|
return string_at(addressof(buf), self.getLength())
|
|
def getLength(self):
|
return sizeof(tagDBPyPlayerBlack)
|
|
def outputString(self):
|
output = '''//Íæ¼ÒºÚÃûµ¥ #tagDBPyPlayerBlack:
|
PlayerID = %s,
|
TagID = %s,
|
ADOResult = %s,
|
'''%(
|
self.PlayerID,
|
self.TagID,
|
self.ADOResult,
|
)
|
return output
|
|
#×î½üÁªÏµÈË #tagDBPyPlayerContacts
|
class tagDBPyPlayerContacts(Structure):
|
_pack_ = 1
|
_fields_ = [
|
('PlayerID', ctypes.c_ulong),
|
('TagID', ctypes.c_ulong),
|
('Timestamp', ctypes.c_ulong),
|
('ADOResult', ctypes.c_ulong),
|
]
|
|
def __init__(self):
|
Structure.__init__(self)
|
self.clear()
|
|
|
def clear(self):
|
memset(addressof(self), 0, self.getLength())
|
|
def readData(self, buf, pos = 0, length = 0):
|
if not pos <= length:
|
return -1
|
if len(buf) < pos + self.getLength():
|
return -1
|
self.clear()
|
self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos)
|
self.TagID, pos = CommFunc.ReadDWORD(buf, pos)
|
self.Timestamp, pos = CommFunc.ReadDWORD(buf, pos)
|
return self.getLength()
|
|
|
def getBuffer(self):
|
buf = create_string_buffer(self.getLength())
|
memmove(addressof(buf), addressof(self), self.getLength())
|
return string_at(addressof(buf), self.getLength())
|
|
def getLength(self):
|
return sizeof(tagDBPyPlayerContacts)
|
|
def outputString(self):
|
output = '''//×î½üÁªÏµÈË #tagDBPyPlayerContacts:
|
PlayerID = %s,
|
TagID = %s,
|
Timestamp = %s,
|
ADOResult = %s,
|
'''%(
|
self.PlayerID,
|
self.TagID,
|
self.Timestamp,
|
self.ADOResult,
|
)
|
return output
|
|
#Íæ¼ÒºÃÓѱí#tagDBPyPlayerFriend
|
class tagDBPyPlayerFriend(Structure):
|
_pack_ = 1
|
_fields_ = [
|
('PlayerID', ctypes.c_ulong),
|
('TagID', ctypes.c_ulong),
|
('ADOResult', ctypes.c_ulong),
|
]
|
|
def __init__(self):
|
Structure.__init__(self)
|
self.clear()
|
|
|
def clear(self):
|
memset(addressof(self), 0, self.getLength())
|
|
def readData(self, buf, pos = 0, length = 0):
|
if not pos <= length:
|
return -1
|
if len(buf) < pos + self.getLength():
|
return -1
|
self.clear()
|
self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos)
|
self.TagID, pos = CommFunc.ReadDWORD(buf, pos)
|
return self.getLength()
|
|
|
def getBuffer(self):
|
buf = create_string_buffer(self.getLength())
|
memmove(addressof(buf), addressof(self), self.getLength())
|
return string_at(addressof(buf), self.getLength())
|
|
def getLength(self):
|
return sizeof(tagDBPyPlayerFriend)
|
|
def outputString(self):
|
output = '''//Íæ¼ÒºÃÓѱí#tagDBPyPlayerFriend:
|
PlayerID = %s,
|
TagID = %s,
|
ADOResult = %s,
|
'''%(
|
self.PlayerID,
|
self.TagID,
|
self.ADOResult,
|
)
|
return output
|
|
|
#Íæ¼Ò³ðÈ˱í#tagPlayerEnemy
|
class tagPlayerEnemy(Structure):
|
_pack_ = 1
|
_fields_ = [
|
('PlayerID', ctypes.c_ulong),
|
('TagID', ctypes.c_ulong),
|
('Timestamp', ctypes.c_ulong),
|
('ADOResult', ctypes.c_ulong),
|
]
|
|
def __init__(self):
|
Structure.__init__(self)
|
self.clear()
|
|
|
def clear(self):
|
memset(addressof(self), 0, self.getLength())
|
|
def readData(self, buf, pos = 0, length = 0):
|
if not pos <= length:
|
return -1
|
if len(buf) < pos + self.getLength():
|
return -1
|
self.clear()
|
self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos)
|
self.TagID, pos = CommFunc.ReadDWORD(buf, pos)
|
self.Timestamp, pos = CommFunc.ReadDWORD(buf, pos)
|
return self.getLength()
|
|
|
def getBuffer(self):
|
buf = create_string_buffer(self.getLength())
|
memmove(addressof(buf), addressof(self), self.getLength())
|
return string_at(addressof(buf), self.getLength())
|
|
def getLength(self):
|
return sizeof(tagPlayerEnemy)
|
|
def outputString(self):
|
output = '''//Íæ¼Ò³ðÈ˱í#tagPlayerEnemy:
|
PlayerID = %s,
|
TagID = %s,
|
Timestamp = %s,
|
ADOResult = %s,
|
'''%(
|
self.PlayerID,
|
self.TagID,
|
self.Timestamp,
|
self.ADOResult,
|
)
|
return output
|
|
|
#¸öÈËÉç½»×ܱí #tagPersonalSocial
|
class tagPersonalSocial(Structure):
|
_pack_ = 1
|
_fields_ = [
|
('PlayerID', ctypes.c_ulong),
|
('PlayerName', ctypes.c_char * 33),
|
('Job', ctypes.c_ubyte),
|
('LV', ctypes.c_ushort),
|
('RealmLV', ctypes.c_ushort),
|
('OnlineType', ctypes.c_ubyte),
|
('RefCount', ctypes.c_ulong),
|
('ADOResult', ctypes.c_ulong),
|
]
|
|
def __init__(self):
|
Structure.__init__(self)
|
self.clear()
|
|
|
def clear(self):
|
memset(addressof(self), 0, self.getLength())
|
|
def readData(self, buf, pos = 0, length = 0):
|
if not pos <= length:
|
return -1
|
if len(buf) < pos + self.getLength():
|
return -1
|
self.clear()
|
self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos)
|
self.PlayerName, pos = CommFunc.ReadString(buf, pos, 33)
|
self.Job, pos = CommFunc.ReadBYTE(buf, pos)
|
self.LV, pos = CommFunc.ReadWORD(buf, pos)
|
self.RealmLV, pos = CommFunc.ReadWORD(buf, pos)
|
self.OnlineType, pos = CommFunc.ReadBYTE(buf, pos)
|
self.RefCount, pos = CommFunc.ReadDWORD(buf, pos)
|
return self.getLength()
|
|
|
def getBuffer(self):
|
buf = create_string_buffer(self.getLength())
|
memmove(addressof(buf), addressof(self), self.getLength())
|
return string_at(addressof(buf), self.getLength())
|
|
def getLength(self):
|
return sizeof(tagPersonalSocial)
|
|
def outputString(self):
|
output = '''//¸öÈËÉç½»×ܱí #tagPersonalSocial:
|
PlayerID = %s,
|
PlayerName = %s,
|
Job = %s,
|
LV = %s,
|
RealmLV = %s,
|
OnlineType = %s,
|
RefCount = %s,
|
ADOResult = %s,
|
'''%(
|
self.PlayerID,
|
self.PlayerName,
|
self.Job,
|
self.LV,
|
self.RealmLV,
|
self.OnlineType,
|
self.RefCount,
|
self.ADOResult,
|
)
|
return output
|
|
#CharÊý×éÀàÐÍSet½Ó¿Ú,ʹÓøýӿڶԴËÀàÐÍÊý¾Ý¸³Öµ£¬·ÀÖ¹¸³ÖµµÄÊý¾Ý¹ý³¤±¨´í
|
def SetPlayerName(self,Str):
|
if len(Str)<=33:
|
self.PlayerName = Str
|
else:
|
self.PlayerName = Str[:33]
|
|
|
# Íæ¼ÒÇ×Ãܱí #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
|
|