#!/usr/bin/python
|
# -*- coding: GBK -*-
|
#
|
##@package E:/GameSVN/U3DGame/ProjectSServer/ServerPython/CoreServerGroup/GameServer/Script/PyGameDataStruct.py
|
# @todo:
|
#
|
# @author: Alee
|
# @date 2017-8-21 ÏÂÎç04:21:36
|
# @version 1.0
|
#
|
# @note: CodeMaker PyGameServerSaveData.pyÉú³É
|
#
|
#---------------------------------------------------------------------
|
import ctypes
|
from ctypes import (Structure, memset, memmove, sizeof, addressof, create_string_buffer, string_at)
|
import CommFunc
|
|
# ÅÄÂô¹Ø×¢±í #tagDBAuctionAttention
|
class tagDBAuctionAttention(Structure):
|
_pack_ = 1
|
_fields_ = [
|
('PlayerID', ctypes.c_ulong),
|
('AttentionLen', ctypes.c_ubyte),
|
('AttentionInfo', ctypes.c_char_p),
|
('ADOResult', ctypes.c_ulong),
|
]
|
|
def __init__(self):
|
Structure.__init__(self)
|
self.clear()
|
|
def clear(self):
|
self.PlayerID = 0
|
self.AttentionLen = 0
|
self.AttentionInfo = ''
|
|
def readData(self, buf, pos = 0, length = 0):
|
if not pos <= length:
|
return -1
|
if len(buf) < pos + self.getLength():
|
return -1
|
self.clear()
|
self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos)
|
self.AttentionLen, pos = CommFunc.ReadBYTE(buf, pos)
|
tmp, pos = CommFunc.ReadString(buf, pos, self.AttentionLen)
|
self.AttentionInfo = ctypes.c_char_p(tmp)
|
return self.getLength()
|
|
def getBuffer(self):
|
buf = ''
|
buf = CommFunc.WriteDWORD(buf, self.PlayerID)
|
buf = CommFunc.WriteBYTE(buf, self.AttentionLen)
|
buf = CommFunc.WriteString(buf, self.AttentionLen, self.AttentionInfo)
|
return buf
|
|
def getLength(self):
|
length = 0
|
length += sizeof(ctypes.c_ulong)
|
length += sizeof(ctypes.c_ubyte)
|
length += self.AttentionLen
|
return length
|
|
def outputString(self):
|
output = '''// ÅÄÂô¹Ø×¢±í #tagDBAuctionAttention:
|
PlayerID = %s,
|
AttentionLen = %s,
|
AttentionInfo = %s,
|
ADOResult = %s,
|
'''%(
|
self.PlayerID,
|
self.AttentionLen,
|
self.AttentionInfo,
|
self.ADOResult,
|
)
|
return output
|
|
|
# ÅÄÂô¼Ç¼±í #tagDBAuctionRecord
|
class tagDBAuctionRecord(Structure):
|
_pack_ = 1
|
_fields_ = [
|
('ItemGUID', ctypes.c_char * 40),
|
('PlayerID', ctypes.c_ulong),
|
('FamilyID', ctypes.c_ulong),
|
('RecordType', ctypes.c_ubyte),
|
('RecordTime', ctypes.c_char * 19),
|
('RecordPrice', ctypes.c_ulong),
|
('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.RecordTime = ''
|
self.RecordPrice = 0
|
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.RecordTime, pos = CommFunc.ReadString(buf, pos, 19)
|
self.RecordPrice, pos = CommFunc.ReadDWORD(buf, pos)
|
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.WriteString(buf, sizeof(ctypes.c_char) * 19, self.RecordTime)
|
buf = CommFunc.WriteDWORD(buf, self.RecordPrice)
|
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_char) * 19
|
length += sizeof(ctypes.c_ulong)
|
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,
|
RecordTime = %s,
|
RecordPrice = %s,
|
ItemID = %s,
|
Count = %s,
|
UserDataLen = %s,
|
UserData = %s,
|
ADOResult = %s,
|
'''%(
|
self.ItemGUID,
|
self.PlayerID,
|
self.FamilyID,
|
self.RecordType,
|
self.RecordTime,
|
self.RecordPrice,
|
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]
|
|
|
# ÅÄÂôÎïÆ·±í #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()
|
memmove(addressof(self), buf[pos:], self.getLength())
|
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()
|
memmove(addressof(self), buf[pos:], self.getLength())
|
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()
|
memmove(addressof(self), buf[pos:], self.getLength())
|
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()
|
memmove(addressof(self), buf[pos:], self.getLength())
|
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()
|
memmove(addressof(self), buf[pos:], self.getLength())
|
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()
|
memmove(addressof(self), buf[pos:], self.getLength())
|
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()
|
memmove(addressof(self), buf[pos:], self.getLength())
|
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()
|
memmove(addressof(self), buf[pos:], self.getLength())
|
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]
|
|
|
|