hxp
2019-02-25 905bad6a43c7ed07a436781600c8fe7ad41dd887
ServerPython/CoreServerGroup/GameServer/Script/PyGameDataStruct.py
@@ -15,10 +15,71 @@
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),
@@ -36,6 +97,7 @@
        self.clear()
    def clear(self):
        self.ItemGUID = ''
        self.PlayerID = 0
        self.FamilyID = 0
        self.RecordType = 0
@@ -52,6 +114,7 @@
        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)
@@ -66,6 +129,7 @@
    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)
@@ -79,6 +143,7 @@
    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)
@@ -92,6 +157,7 @@
    def outputString(self):
        output = '''// 拍卖记录表 #tagDBAuctionRecord:
            ItemGUID = %s,
            PlayerID = %s,
            FamilyID = %s,
            RecordType = %s,
@@ -103,6 +169,7 @@
            UserData = %s,
            ADOResult = %s,
            '''%(
                self.ItemGUID,
                self.PlayerID,
                self.FamilyID,
                self.RecordType,
@@ -117,6 +184,12 @@
        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
@@ -133,17 +206,21 @@
        ('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_ulong),
        ('ItemJobLimit', 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),
    ]
@@ -157,6 +234,7 @@
        self.FamilyID = 0
        self.ItemID = 0
        self.Count = 0
        self.AuctionType = 0
        self.AddTime = ''
        self.BiddingTime = ''
        self.BidderID = 0
@@ -164,10 +242,13 @@
        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:
@@ -180,19 +261,24 @@
        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.ReadDWORD(buf, pos)
        self.ItemJobLimit, 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):
@@ -202,17 +288,21 @@
        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.WriteDWORD(buf, self.ItemType)
        buf = CommFunc.WriteDWORD(buf, self.ItemJobLimit)
        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):
@@ -222,17 +312,21 @@
        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_ulong)
        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):
@@ -242,6 +336,7 @@
            FamilyID = %s,
            ItemID = %s,
            Count = %s,
            AuctionType = %s,
            AddTime = %s,
            BiddingTime = %s,
            BidderID = %s,
@@ -249,10 +344,13 @@
            BidderPrice = %s,
            ItemType = %s,
            ItemJobLimit = %s,
            ItemClassLV = %s,
            UserDataLen = %s,
            UserData = %s,
            FamilyPlayerIDLen = %s,
            FamilyPlayerIDInfo = %s,
            BidderIDLen = %s,
            BidderIDInfo = %s,
            ADOResult = %s,
            '''%(
                self.ItemGUID,
@@ -260,6 +358,7 @@
                self.FamilyID,
                self.ItemID,
                self.Count,
                self.AuctionType,
                self.AddTime,
                self.BiddingTime,
                self.BidderID,
@@ -267,10 +366,13 @@
                self.BidderPrice,
                self.ItemType,
                self.ItemJobLimit,
                self.ItemClassLV,
                self.UserDataLen,
                self.UserData,
                self.FamilyPlayerIDLen,
                self.FamilyPlayerIDInfo,
                self.BidderIDLen,
                self.BidderIDInfo,
                self.ADOResult,
            )
        return output