From 021437fc736fafdb8608933ebe095b93cfb9b8ed Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 11 七月 2024 19:31:05 +0800
Subject: [PATCH] 10192 【越南】【主干】【港台】【砍树】上线增加膜拜主动推送(修改为可膜拜自己;)

---
 ServerPython/CoreServerGroup/GameServer/Script/PyGameDataStruct.py |  545 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 537 insertions(+), 8 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/PyGameDataStruct.py b/ServerPython/CoreServerGroup/GameServer/Script/PyGameDataStruct.py
index 0556db9..67dbe48 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/PyGameDataStruct.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/PyGameDataStruct.py
@@ -160,6 +160,7 @@
             self.LimitTime = Str[:30]
             
 
+#------------------------------------------------------
 # 跨服排行榜 #tagDBCrossBillboard
 class tagDBCrossBillboard(Structure):
     _pack_ = 1
@@ -174,9 +175,17 @@
         ('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),
     ]
 
@@ -184,9 +193,28 @@
         Structure.__init__(self)
         self.clear()
 
-
     def clear(self):
-        memset(addressof(self), 0, self.getLength())
+        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:
@@ -204,19 +232,69 @@
         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 = create_string_buffer(self.getLength())
-        memmove(addressof(buf), addressof(self), self.getLength())
-        return string_at(addressof(buf), self.getLength())
+        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):
-        return sizeof(tagDBCrossBillboard)
+        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:
@@ -230,9 +308,17 @@
             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,
@@ -245,9 +331,17 @@
                 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
@@ -265,6 +359,8 @@
         else:
             self.Name2 = Str[:33]
             
+
+
 
 # 协助感谢表 #tagDBAssistThanks
 class tagDBAssistThanks(Structure):
@@ -2303,6 +2399,7 @@
         ('RealmLV', ctypes.c_ushort),
         ('OnlineType', ctypes.c_ubyte),
         ('RefCount', ctypes.c_ulong),
+        ('Face', ctypes.c_ulong),
         ('ADOResult', ctypes.c_ulong),
     ]
 
@@ -2327,6 +2424,7 @@
         self.RealmLV, pos = CommFunc.ReadWORD(buf, pos)
         self.OnlineType, pos = CommFunc.ReadBYTE(buf, pos)
         self.RefCount, pos = CommFunc.ReadDWORD(buf, pos)
+        self.Face, pos = CommFunc.ReadDWORD(buf, pos)
         return self.getLength()
 
 
@@ -2347,6 +2445,7 @@
             RealmLV = %s,
             OnlineType = %s,
             RefCount = %s,
+            Face = %s,
             ADOResult = %s,
             '''%(
                 self.PlayerID,
@@ -2356,6 +2455,7 @@
                 self.RealmLV,
                 self.OnlineType,
                 self.RefCount,
+                self.Face,
                 self.ADOResult,
             )
         return output
@@ -2618,4 +2718,433 @@
                 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
+

--
Gitblit v1.8.0